collapse collapse

 Community


 User Info




Willkommen Gast. Bitte einloggen oder registrieren.

 Partnerseiten

rpgvx.net

Das Forum ist offline

Autor Thema: KGC_Steal  (Gelesen 3399 mal)

ERZENGEL

  • Gast
KGC_Steal
« am: März 15, 2008, 01:20:51 »
CREDITS
  • KGC Software
ANLEITUNG
In der Note des Steal-Skills <Stehlen> eintragen. Um festzulegen was man stehlen kann begibt man sich zu der Note des Enemy und trägt dort <Stehlen n:ID Wahrscheinlichkeit%> ein. n kann durch diese Buchstaben ersetzt werden: I (Items), W (Weapons), A (Armors) und G (Gold). Die ID steht im jeweiligen Tab vor den Namen des jeweiligen Gegenstandes und bei G gibt man hier den Wert an, der gestohlen werden kann. Wahrscheinlichkeit erklärt sich von selbst. Um mehr Gegenstände bzw. Gold von einem Gegner stehlen zu können, fügt man es zum 2. Mal, 3. Mal usw. in der Note ein und füllt es entsprechend aus.

SKRIPT
Spoiler for Hiden:
#==============================================================================
# ** Stehlen (von KGC und zuletzt aktualisiert am 13. März 2008)
#------------------------------------------------------------------------------
#  Ermöglicht Items und Skills mit denen man Gold oder Gegenstände wie Items,
#  Armors und Weapons von einem oder mehreren Enemy/Enemies stehlen kann.
#==============================================================================

#==============================================================================
# * Einstellungen
#==============================================================================
module KGC
module Steal
  # Wenn das Ziel nichts besitzt zum Stehlen
  #  1. %s : Name des Ziels
  VOCAB_STEAL_NO_ITEM = "%s besitzt nichts!"
  # Wenn der Diebstahl fehlgeschlagen ist
  VOCAB_STEAL_FAILURE = "Diebstahl fehlgeschlagen!"
  # Wenn Item gestohlen wurde
  #  1. %s : Name des Ziels
  #  2. %s : Name des Items
  VOCAB_STEAL_ITEM    = "Von %s wurde %s gestohlen!"
  # Wenn Gold gestohlen wurde
  #  1. %s : Name des Ziels
  #  2. %s : Wert
  #  3. %s : Währungseinheit
  VOCAB_STEAL_GOLD    = "Von %s wurden %s%s gestohlen!"
end
end

$imported = {} if $imported == nil
$imported["Steal"] = true

module KGC::Steal
  # ????
  module Regexp
    # Skills
    module Skill
      # Stehlen
      STEAL = /<(?:STEAL|Stehlen)>/i
    end

    # Enemy
    module Enemy
      # ?????????
      STEAL_OBJECT = /<(?:STEAL|Stehlen)\s*([IWAG]):(\d+)\s+(\d+)([%%])?>/i
    end
  end
end

#==============================================================================
# ** Vocab
#==============================================================================

module Vocab
  # Stehlen
  StealItem    = KGC::Steal::VOCAB_STEAL_ITEM
  StealGold    = KGC::Steal::VOCAB_STEAL_GOLD
  StealNoItem  = KGC::Steal::VOCAB_STEAL_NO_ITEM
  StealFailure = KGC::Steal::VOCAB_STEAL_FAILURE
end

#==============================================================================
# ** RPG::Skill
#==============================================================================

class RPG::Skill < RPG::UsableItem
  #--------------------------------------------------------------------------
  # * ????????????
  #--------------------------------------------------------------------------
  def create_steal_cache
    @__steal = false

    self.note.split(/[\r\n]+/).each { |line|
      case line
      when KGC::Steal::Regexp::Skill::STEAL
        # ??
        @__steal = true
      end
    }
  end
  #--------------------------------------------------------------------------
  # * ??
  #--------------------------------------------------------------------------
  def steal?
    create_steal_cache if @__steal == nil
    return @__steal
  end
end

#==============================================================================
# ** RPG::Enemy
#==============================================================================

class RPG::Enemy
  #--------------------------------------------------------------------------
  # * ????????????
  #--------------------------------------------------------------------------
  def create_steal_cache
    @__steal_objects = []

    self.note.split(/[\r\n]+/).each { |line|
      case line
      when KGC::Steal::Regexp::Enemy::STEAL_OBJECT
        # ?????????
        obj = RPG::Enemy::StealObject.new
        case $1.upcase
        when "I"  # Item
          obj.kind = 1
          obj.item_id = $2.to_i
        when "W"  # Weapon
          obj.kind = 2
          obj.weapon_id = $2.to_i
        when "A"  # Armor
          obj.kind = 3
          obj.armor_id = $2.to_i
        when "G"  # Gold
          obj.kind = 4
          obj.gold = $2.to_i
        else
          next
        end
        # Erfolgsrate
        if $4 != nil
          obj.success_prob = $3.to_i
        else
          obj.denominator = $3.to_i
        end
        @__steal_objects << obj
      end
    }
  end
  #--------------------------------------------------------------------------
  # * ?????????
  #--------------------------------------------------------------------------
  def steal_objects
    create_steal_cache if @__steal_objects == nil
    return @__steal_objects
  end
end

#==============================================================================
# ** RPG::Enemy::StealObject
#==============================================================================

class RPG::Enemy::StealObject < RPG::Enemy::DropItem
  #--------------------------------------------------------------------------
  # * Konstanten
  #--------------------------------------------------------------------------
  KIND_ITEM   = 1
  KIND_WEAPON = 2
  KIND_ARMOR  = 3
  KIND_GOLD   = 4
  #--------------------------------------------------------------------------
  # * Instanzvariablen
  #--------------------------------------------------------------------------
  attr_accessor :gold                     # Gold
  attr_accessor :success_prob             # Erfolgsrate
  #--------------------------------------------------------------------------
  # * Initialisierung
  #--------------------------------------------------------------------------
  def initialize
    super
    @gold = 0
    @success_prob = 0
  end
end

#==============================================================================
# ** Game_Battler
#==============================================================================

class Game_Battler
  #--------------------------------------------------------------------------
  # * Instanzvariablen
  #--------------------------------------------------------------------------
  attr_accessor :steal_objects            # ?????????
  attr_accessor :stolen_object            # Letzte gestohlene Gegenstände
  #--------------------------------------------------------------------------
  # * Initialisierung
  #--------------------------------------------------------------------------
  alias initialize_Battler_KGC_Steal initialize
  def initialize
    initialize_Battler_KGC_Steal

    @steal_objects = []
    @stolen_object = nil
  end
  #--------------------------------------------------------------------------
  # * Skill effect
  #     user  : ???????
  #     skill : Skills
  #--------------------------------------------------------------------------
  alias skill_effect_KGC_Steal skill_effect
  def skill_effect(user, skill)
    skill_effect_KGC_Steal(user, skill)

    make_obj_steal_result(user, skill)
  end
  #--------------------------------------------------------------------------
  # * ?????????????????
  #     user : ??????????????
  #     obj  : ??????????
  #    ??? @stolen_object ??????
  #--------------------------------------------------------------------------
  def make_obj_steal_result(user, obj)
    return unless obj.steal?                  # ??????
    return if @skipped || @missed || @evaded  # Kein Effekt

    # ????????
    if self.steal_objects.empty?
      @stolen_object = :no_item
      return
    end

    @stolen_object = nil
    self.steal_objects.each { |sobj|
      # ??????
      if sobj.success_prob > 0
        # ????
        next if sobj.success_prob < rand(100)
      else
        # ????
        next if rand(sobj.denominator) != 0
      end
      # ????
      @stolen_object = sobj
      break
    }
    @steal_objects.delete(@stolen_object)
  end
end

#==============================================================================
# ** Game_Enemy
#==============================================================================

class Game_Enemy < Game_Battler
  #--------------------------------------------------------------------------
  # * Initialisierung
  #     index    : Enemy Troop Index
  #     enemy_id : Enemy ID
  #--------------------------------------------------------------------------
  alias initialize_Enemy_KGC_Steal initialize
  def initialize(index, enemy_id)
    initialize_Enemy_KGC_Steal(index, enemy_id)

    @steal_objects = enemy.steal_objects.clone
  end
end

#==============================================================================
# ** Scene_Battle
#==============================================================================

class Scene_Battle < Scene_Base
  #--------------------------------------------------------------------------
  # * ??????? : ???
  #--------------------------------------------------------------------------
  alias execute_action_skill_KGC_Steal execute_action_skill
  def execute_action_skill
    skill = @active_battler.action.skill
    if skill.steal?
      execute_action_steal
      @status_window.refresh
    else
      execute_action_skill_KGC_Steal
    end
  end
  #--------------------------------------------------------------------------
  # * ??????? : ??
  #--------------------------------------------------------------------------
  def execute_action_steal
    skill = @active_battler.action.skill
    text = @active_battler.name + skill.message1
    @message_window.add_instant_text(text)
    unless skill.message2.empty?
      wait(10)
      @message_window.add_instant_text(skill.message2)
    end
    targets = @active_battler.action.make_targets
    display_animation(targets, skill.animation_id)
    @active_battler.mp -= @active_battler.calc_mp_cost(skill)
    $game_temp.common_event_id = skill.common_event_id
    for target in targets
      target.skill_effect(@active_battler, skill)
      display_steal_effects(target, skill)
    end
  end
  #--------------------------------------------------------------------------
  # * Ergebnisse des Stehlens
  #     target : ???
  #     obj    : Skill oder Item
  #--------------------------------------------------------------------------
  def display_steal_effects(target, obj = nil)
    unless target.skipped
      line_number = @message_window.line_number
      wait(5)
      if target.hp_damage != 0 || target.mp_damage != 0
        display_critical(target, obj)
        display_damage(target, obj)
      end
      display_stole_object(target, obj)
      display_state_changes(target, obj)
      if line_number == @message_window.line_number
        display_failure(target, obj) unless target.states_active?
      end
      if line_number != @message_window.line_number
        wait(30)
      end
      @message_window.back_to(line_number)
    end
  end
  #--------------------------------------------------------------------------
  # * Zeige gestohlene Gegenstände
  #     target : ???
  #     obj    : Skill oder Item
  #--------------------------------------------------------------------------
  def display_stole_object(target, obj = nil)
    if target.missed || target.evaded
      display_steal_failure(target, obj)
      return
    end

    case target.stolen_object
    when nil       # Diebstahl fehlgeschlagen
      display_steal_failure(target, obj)
    when :no_item  # ????????
      display_steal_no_item(target, obj)
    else
      if target.stolen_object.kind == RPG::Enemy::StealObject::KIND_GOLD
        # Gold
        display_steal_gold(target, obj)
      else
        # ???? oder Weapons oder Items
        display_steal_item(target, obj)
      end
      target.stolen_object = nil
    end
  end
  #--------------------------------------------------------------------------
  # ? ???????
  #     target : ??? (????)
  #     obj    : ??????????
  #--------------------------------------------------------------------------
  def display_steal_failure(target, obj)
    @message_window.add_instant_text(Vocab::StealFailure)
    wait(30)
  end
  #--------------------------------------------------------------------------
  # * ?????????????
  #     target : ??? (????)
  #     obj    : Skill oder Item
  #--------------------------------------------------------------------------
  def display_steal_no_item(target, obj)
    text = sprintf(Vocab::StealNoItem, target.name)
    @message_window.add_instant_text(text)
    wait(30)
  end
  #--------------------------------------------------------------------------
  # * ?????????????
  #     target : ??? (????)
  #     obj    : Skill oder Item
  #--------------------------------------------------------------------------
  def display_steal_item(target, obj)
    # ??????????
    sobj = target.stolen_object
    case sobj.kind
    when RPG::Enemy::StealObject::KIND_ITEM
      item = $data_items[sobj.item_id]
    when RPG::Enemy::StealObject::KIND_WEAPON
      item = $data_weapons[sobj.weapon_id]
    when RPG::Enemy::StealObject::KIND_ARMOR
      item = $data_armors[sobj.armor_id]
    else
      return
    end
    $game_party.gain_item(item, 1)

    text = sprintf(Vocab::StealItem, target.name, item.name)
    @message_window.add_instant_text(text)
    wait(30)
  end
  #--------------------------------------------------------------------------
  # * ???????????
  #     target : ??? (????)
  #     obj    : Skill oder Item
  #--------------------------------------------------------------------------
  def display_steal_gold(target, obj)
    gold = target.stolen_object.gold
    $game_party.gain_gold(gold)

    text = sprintf(Vocab::StealGold, target.name, gold, Vocab.gold)
    @message_window.add_instant_text(text)
    wait(30)
  end
end

LINKS
« Letzte Änderung: März 15, 2008, 15:34:49 von ERZENGEL »

KGC_Steal

Cege

  • Gast
KGC_Steal
« Antwort #1 am: März 15, 2008, 01:41:09 »
Hey :D
Is sicherlich ein schönes Skript und so... aba wie genau baut man es ein?
Macht man das durch Zauber? Durch common Events oder wie?
Danke fürs Posen und übersetzen ;)

KGC_Steal

ERZENGEL

  • Gast
KGC_Steal
« Antwort #2 am: März 15, 2008, 01:51:41 »
OMG.. hab oben ein Fehler gemacht :oEntschuldigung, ist jetzt ausgebessert. Also einfach, wenn nichts anderes angegeben ist, in der Sektion Materials einfügen. Und ja das macht man mit Zaubern/Skills. Wies funktioniert hab ihch oben ja jetzt ausgebessert erklärt, ansonsten muss es jemand anderes erklären oder ich muss versuchen es anders auszudrücken.

KGC_Steal

Offline Goldenboss

  • Mr. MACK-Tile
  • ***
  • Beiträge: 251
    • http://www.goldenboss.de
KGC_Steal
« Antwort #3 am: März 15, 2008, 10:52:42 »
Hi,

kommt das nicht in die Scripte? *verwirrt*

Wie genau funktioniert das Script und was macht es?

MFG Markus

KGC_Steal

-PX-

  • Gast
KGC_Steal
« Antwort #4 am: März 15, 2008, 11:18:22 »
Zitat von: Goldenboss
Hi,

kommt das nicht in die Scripte? *verwirrt*

Wie genau funktioniert das Script und was macht es?

MFG Markus

Es kommt in Materials der Skripte.  :lol:
Was macht es? Kannst du nicht lesen oder was? ...
« Letzte Änderung: März 15, 2008, 11:18:56 von -PX- »

KGC_Steal

Offline Mclovin

  • Zeitbedürftiger
  • Eventmeister
  • ***
  • Beiträge: 314
  • Mclovin not war!
KGC_Steal
« Antwort #5 am: März 15, 2008, 12:29:26 »
Nicht schlecht! Jetzt gibt es schon so viele Scripte, dass ich gar nicht mehr weiß, welches ich als erstes ausprobieren soll... wacko.gif\" style=\"vertical-align:middle\" emoid=\":wacko:\" border=\"0\" alt=\"wacko.gif\" /]
Aber für dieses werde ich auf jeden Fall Verwendung finden!

KGC_Steal

Offline Goldenboss

  • Mr. MACK-Tile
  • ***
  • Beiträge: 251
    • http://www.goldenboss.de
KGC_Steal
« Antwort #6 am: März 15, 2008, 13:27:40 »
Zitat von: -PX-
Hi,

kommt das nicht in die Scripte? *verwirrt*

Wie genau funktioniert das Script und was macht es?

MFG Markus

Es kommt in Materials der Skripte.  :lol:
Was macht es? Kannst du nicht lesen oder was? ...
Hi...

Was ist denn Materials der Scripte?

Öhm... Oben den Text habe ich schon gelesen, aber wie genau funktioniert das dann. Ist das dann für den Kampf gedacht, oder wie?

MFG Markus

KGC_Steal

ERZENGEL

  • Gast
KGC_Steal
« Antwort #7 am: März 15, 2008, 14:18:15 »
Ich habs falsch erklärt. Nochmal sorry, aber gestern war Freitag ^^ und hab des dann irgendwann nach Mitternacht, also heute übersetzt, da bin ich halt nicht mehr so zum Denken aufgelegt ;)

Bei dem Skill, der etwas stehlen soll, <steal> in den Notes eintragen. Bei dem Enemy, von den man etwas stehlen kann, <Stehlen n:ID Warscheinlichkeit %> ebenfalls in den Notes eintragen und durch die entsprechenden Dinge, die oben richtig erklärt sind, ersetzen.

KGC_Steal

Cege

  • Gast
KGC_Steal
« Antwort #8 am: März 15, 2008, 15:14:11 »
hihi okay jetzt hab ichs auch verstanden... Hab alles gemacht wie dus gemeint hattest...
Ähm aba... Iwie stiehlt der trotzdem nix xD
Also in die ensprechenden Notes das angeben okay... mit oder ohne "<>" ?
Und wie muss das mit den % geschrieben sein... Einfach das % stehen lassen oder zb 90% richtig hinschreiben... hmm...
Danke das du dir aba sone Mühe mit uns begriffsstuzigen machst xD

KGC_Steal

ERZENGEL

  • Gast
KGC_Steal
« Antwort #9 am: März 15, 2008, 15:19:48 »
Also mit <>. Sonst hätte ichs hingeschrieben und das % muss natürlich auch stehen bleiben.

Ich denke ich mache mal an ein Beispielprojekt EDIT: Download
Kannst dir den Skill #83 und die ersten 3 Enemies anschauen und mit deinem vergleichen.
« Letzte Änderung: März 15, 2008, 15:34:00 von ERZENGEL »

KGC_Steal

Offline Razael

  • Helfende Hand.
  • Mr. MACK-Tile
  • ***
  • Beiträge: 282
KGC_Steal
« Antwort #10 am: März 21, 2008, 01:51:44 »
Hy bin neu hier. ^^
Habe auch versucht dieses KGC auszuprobieren und so gemacht wies in der Demo ist aber Irgendwie will er nichts stehlen kommt immer nur (Hatte keine Auswirkung) kann es sein das der sich mit dem Deutschen (Übersetzung sei Dank) Maker nicht veträgt??

Schonmal ein Danke für baldige Antwort.
« Letzte Änderung: März 21, 2008, 01:52:17 von Razael »
Nimm das Leben wies kommt und Geniesse die guten Momente und Lerne aus den Schlechten.
Spoiler for Hiden:
Disorder | Rating
Paranoid: Low
Schizoid: Low
Schizotypal: Low
Antisocial: Low
Borderline: Low
Histrionic: Low
Narcissistic: Low
Avoidant: Low
Dependent: Low
Obsessive-Compulsive: Low

URL of the test: http://www.4degreez.com/misc/personality_disorder_test.mv
URL for more info: http://www.4degreez.com/disorder/index.html
Spoiler for Hiden:
Take the Magic: The Gathering 'What Color Are You?' Quiz.[/div][!--SPOILER DIV--][/div][!--SPOILER DIV--]
Spoiler for Hiden:
Zu 30 % sind Sie: Du bist ein Phönix!
Du bist Jahrtausende alt und weise.
Test[!--SPOILER DIV--][/div][!--SPOILER DIV--]
Spoiler for Hiden:
Zu 69 % sind Sie: Gratulation! Deine emoti

KGC_Steal

ERZENGEL

  • Gast
KGC_Steal
« Antwort #11 am: März 21, 2008, 02:12:46 »
Herzlich Willkommen!

Kann nicht sein, da der Patch nichts am RGSS2 verändert. Aber nun zu deinen Problem: Hast du <Stehlen> im Note des jeweiligen Skills und beim Note des Gegners sowas ähnliches wie das <Stehlen W:4 85%> stehen?
« Letzte Änderung: März 21, 2008, 02:13:13 von ERZENGEL »

KGC_Steal

Offline Razael

  • Helfende Hand.
  • Mr. MACK-Tile
  • ***
  • Beiträge: 282
KGC_Steal
« Antwort #12 am: März 21, 2008, 04:06:07 »
Aaah Sorry ^^ erst vergessen auf Übernehmen zu klicken als ich den script kopierte und danach auch noch festgestellt das der Stehlenskill nicht im Testkampf funktioniert, hatte mir das schon Gedacht und es durch ein Kampf event ausprobiert Funktioniert ^^ aber Danke für die Hilfe und für die Begrüssung. ^^
« Letzte Änderung: März 21, 2008, 04:32:35 von Razael »
Nimm das Leben wies kommt und Geniesse die guten Momente und Lerne aus den Schlechten.
Spoiler for Hiden:
Disorder | Rating
Paranoid: Low
Schizoid: Low
Schizotypal: Low
Antisocial: Low
Borderline: Low
Histrionic: Low
Narcissistic: Low
Avoidant: Low
Dependent: Low
Obsessive-Compulsive: Low

URL of the test: http://www.4degreez.com/misc/personality_disorder_test.mv
URL for more info: http://www.4degreez.com/disorder/index.html
Spoiler for Hiden:
Take the Magic: The Gathering 'What Color Are You?' Quiz.[/div][!--SPOILER DIV--][/div][!--SPOILER DIV--]
Spoiler for Hiden:
Zu 30 % sind Sie: Du bist ein Phönix!
Du bist Jahrtausende alt und weise.
Test[!--SPOILER DIV--][/div][!--SPOILER DIV--]
Spoiler for Hiden:
Zu 69 % sind Sie: Gratulation! Deine emoti

KGC_Steal

Cege

  • Gast
KGC_Steal
« Antwort #13 am: März 27, 2008, 13:07:10 »
Hmm... Kann es sein das das SKript mit nem Side view Kampf system nicht vollkommen geht?
Also zumindest die übersetzungen wie "konnte nicht gestohlen werden" oda "xxx wurde gestohlen" wird nicht angezeigt.. Man merkt garnich ds man was klaut lol Kann man das iwie sichtbar machen?

EDIT : Verdammt, an falscher Position geschrieben, sry  blush.gif\" style=\"vertical-align:middle\" emoid=\":blush:\" border=\"0\" alt=\"blush.gif\" /]
« Letzte Änderung: März 27, 2008, 13:09:49 von Cege »

KGC_Steal

ERZENGEL

  • Gast
KGC_Steal
« Antwort #14 am: März 27, 2008, 13:18:28 »
Kann sein ;)Könnte man bestimmt schnell ändern, aber ich weiß nicht genau, was vom Sideviewskript überschrieben wird. Ist vllt die Methode execute_action_skill, jedoch ne Angabe zum SKS wäre toll. Autor, Version usw. Dann würde ichs mir mal angucken.

Und falls du das Stealscript über den SKS-Script(en) hast verschieb es mal unter diese und probiers dann mal.

 


 Bild des Monats

rooftop party

Views: 3151
By: papilion

 Umfrage

  • Wer soll das BdM gewinnen?
  • Dot Kandidat 1
  • 3 (25%)
  • Dot Kandidat 2
  • 1 (8%)
  • Dot Kandidat 3
  • 2 (16%)
  • Dot Kandidat 4
  • 0 (0%)
  • Dot Kandidat 5
  • 6 (50%)
  • Stimmen insgesamt: 12
  • View Topic

 Schnellsuche





SimplePortal 2.3.3 © 2008-2010, SimplePortal