Choco-sama
Grade : Lapin lvl 3 Messages : 1046 Age : 37 Loisirs : Making, gaming, loving... Date d'inscription : 30/01/2012
Caractéristiques du membre Evolution: Animal Job: Indéfini XP: (18/30)
| Sujet: Commande Voler Dim 11 Aoû 2013 - 8:51 | |
| Commande simple "voler" Auteur du script: Zetu Introduction:Beaucoup de gens se sont plaint à ce sujet. VXAce n'a pas de script de vol d'objet par défaut. Donc, Zetu a fait ce script de vol simple. Caractéristiques: * Lier une compétence, comme voler, et de prendre des objets à partir d'un ennemi. - Code:
-
module Z05 STEAL_SKILL = /<steal>/i STEAL_OBJ = /<steal[:]*\s*(WEAPON|ITEM|ARMOR|GOLD)\s*(\d+)>/i NO_STEALS = "%s has nothing to steal." STEAL_GOLD = "Stole %s gold from %s." STEAL_ITEM = "Stole %s from %s." end
class Window_BattleLog < Window_Selectable def display_steal(target) item = target.last_stolen_item print item;print "\n" if item.nil? add_text(sprintf(Z05::NO_STEALS, target.name)) print "Nothing to Steal\n" elsif item.is_a?(Integer) add_text(sprintf(Z05::STEAL_GOLD, item, target.name)) print "Stole #{item} Gold\n" else add_text(sprintf(Z05::STEAL_ITEM, item.name, target.name)) print "Stole #{item.name}\n" end target.reset_steal_item end alias z05dd display_damage def display_damage(target, item) z05dd(target, item) display_steal(target) if item.steal? end end
class RPG::UsableItem < RPG::BaseItem def steal? self.note.scan(Z05::STEAL_SKILL){return true} return false end end
class Game_Enemy < Game_Battler attr_reader :last_stolen_item alias z05_initialize initialize def initialize(index, enemy_id) z05_initialize(index, enemy_id) z05_start end def z05_start @steal_data = [] self.enemy.note.scan(Z05::STEAL_OBJ){|type, id| case type when /item/i @steal_data.push($data_items[id.to_i]) when /weapon/i @steal_data.push($data_weapons[id.to_i]) when /armor/i @steal_data.push($data_armors[id.to_i]) when /gold/i @steal_data.push(id.to_i) end } end def apply_steal_effect return nil if @steal_data.size==0 return @last_stolen_item=@steal_data.delete_at(rand(@steal_data.size)) end def item_apply(user, item) super add_item_steal_effect if item.steal? unless @result.missed end def add_item_steal_effect @stolenitem = apply_steal_effect return if @stolenitem.nil? if @stolenitem.is_a?(Integer) $game_party.gain_gold(@stolenitem) else $game_party.gain_item(@stolenitem, 1) end end def reset_steal_item @last_stolen_item=nil end end
Il est recommandé d'utiliser le script "Exact Extention", pour le faire apparaître comme une commande. |
|