collapse collapse

 Community


 User Info




Willkommen Gast. Bitte einloggen oder registrieren.

 Partnerseiten

rpgvx.net

Das Forum ist offline

Autor Thema: KGC_Steal  (Gelesen 3398 mal)

Cege

  • Gast
KGC_Steal
« Antwort #15 am: März 27, 2008, 13:41:01 »
Ähm müsste das selbe sein das Ray Phoenix hat...
Also das BattleModule, SV1, SV2 version 1.2 :)
Wär cool wennu da mal nachschauen könntest *smile*

KGC_Steal

ERZENGEL

  • Gast
KGC_Steal
« Antwort #16 am: März 27, 2008, 14:14:14 »
Habs kurz und schnell mal angepasst. Sollten jedoch alle Meldungen erscheinen.
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
    # NEU
    @help_window.set_text(text, 1)
    @help_window.visible = true
    wait(45)
    @help_window.visible = false
    #@message_window.add_instant_text(text)
    unless skill.message2.empty?
      wait(10)
      # NEU
      @help_window.set_text(skill.message2, 1)
      @help_window.visible = true
      wait(45)
      @help_window.visible = false
      #@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)
    # NEU
    @help_window.set_text(Vocab::StealFailure, 1)
    @help_window.visible = true
    wait(45)
    @help_window.visible = false
    #@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)
    # NEU
    @help_window.set_text(text, 1)
    @help_window.visible = true
    wait(45)
    @help_window.visible = false
    #@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)
    # NEU
    @help_window.set_text(text, 1)
    @help_window.visible = true
    wait(45)
    @help_window.visible = false
    #@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)
    # NEU
    @help_window.set_text(text, 1)
    @help_window.visible = true
    wait(45)
    @help_window.visible = false
    #@message_window.add_instant_text(text)
    wait(30)
  end
end
« Letzte Änderung: März 27, 2008, 14:14:55 von ERZENGEL »

KGC_Steal

Cege

  • Gast
KGC_Steal
« Antwort #17 am: März 27, 2008, 14:33:39 »
Perfekt ^^ Hab das selbe Prob bei dem Konterskript auch... Geht das genauso ?

Du bist echt der one and only Skript Guru überhaupt ^^ Respekt :DThx!!!

KGC_Steal

ERZENGEL

  • Gast
KGC_Steal
« Antwort #18 am: März 28, 2008, 02:21:08 »
Das mit dem Konterskript müsste man sich die SKS-Skripte näher angucken und darauf hab ich derzeit nicht genug Lust. Sorry.
Und falls du noch was findest was mit den SKS-Skripten nicht richtig funktioniert beim Stehlenskript, dann schreibs hier rein ;)

 


 Bild des Monats

rooftop party

Views: 3128
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