Invité Invité
| Sujet: [VX] Multi-Drop VX Jeu 18 Aoû 2011 - 23:29 | |
| Multi-Drop VX Auteur: KGC Instruction Ce script permet d’augmenté le nombre d'objet laisser par les ennemis au combat. Les informations suivantes, sont à placées dans la notebox de l'ennemi I = Pour un objet W = Pour une arme A = Pour une armure Exemple: - Code:
-
<drop W:2 50%> W = donc il s'agit d'une armure 2 = son ID dans la BDD est 2 50% = 50% de chance de l'obtenir en fin de combat Le script est à placer au dessus de mainScript: - Code:
-
# ■ Multi Drop - VX (KGC_ExtraDropItem) # #------------------------------------------------------------------------------ # Script por: KGC traduzido por: Holocaust (Holocaust2) #============================================================================== # Esse Script permite que você aumenta a quantidade de itens e equipamentos # que são dropados por um inimigo após sua morte. #============================================================================== # ● Instruções #------------------------------------------------------------------------------ # Para adicionar um drop extra em um Monstro, você precisa inserir a tag # <drop> na caixa "Histórico" no database do respectivo Monstro. . # # O formato é o seguinte <drop "Tipo":"IDdoItem" "Probabilidade"> (exemplo adiante) # sem as aspas "". # Onde Tipo => A = Armadura, I = Item, W = Arma # Onde ID é o ID do item no respectivo database # Onde probabilidade = chance do item dropar (pode ser em % ou em fração) #============================================================================== # ● Exemplos #------------------------------------------------------------------------------ # Você tem um monstro que você quer que tenha a chance de 50% de Dropar uma Espada. # Basta colocar na parte Histórico a seguinte tag: # # <drop W:2 50%> ou <drop W:2 1/2> # onde W representa Arma, 2 representa o ID da arma, e 50% ou 1/2 a chance de dropar. # # É simples, mas se tiver dúvidas pergunte no tópico desse Script no fórum RPG Brasil. # #---------------------------------------------------------------------------- # Observação: Insira acima dos script KGC_BattleDifficulty and KGC_EnemyGuide. # caso você os tenha em seu projeto. #-------------------------------------------------------------------------
$imported = {} if $imported == nil $imported["ExtraDropItem"] = true
module KGC module ExtraDropItem # Regular Expression Defined module Regexp # Base Enemy Module module Enemy # Drop Item tag string DROP_ITEM = /<(?:DROP|drop)\s*([IWA]):(\d+)\s+(\d+)([%%])?>/i end end end end
#★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★
#============================================================================== # ■ RPG::Enemy #==============================================================================
class RPG::Enemy #-------------------------------------------------------------------------- # ○ Gera Cache de Drop Extra de Itens #-------------------------------------------------------------------------- def create_extra_drop_item_cache @__extra_drop_items = []
self.note.split(/[\r\n]+/).each { |line| case line when KGC::ExtraDropItem::Regexp::Enemy::DROP_ITEM # Drop Item item = RPG::Enemy::DropItem.new case $1.upcase when "I" # Item item.kind = 1 item.item_id = $2.to_i when "W" # Weapon item.kind = 2 item.weapon_id = $2.to_i when "A" # Armor item.kind = 3 item.armor_id = $2.to_i else next end # Drop Rate if $4 != nil item.drop_prob = $3.to_i else item.denominator = $3.to_i end @__extra_drop_items << item end } end #-------------------------------------------------------------------------- # ○ Retorna Drop Extra de Itens #-------------------------------------------------------------------------- def extra_drop_items create_extra_drop_item_cache if @__extra_drop_items == nil return @__extra_drop_items end end
#★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★
#============================================================================== # ■ RPG::Enemy::DropItem #==============================================================================
unless $@ class RPG::Enemy::DropItem #-------------------------------------------------------------------------- # ● Public Instance Variable #-------------------------------------------------------------------------- attr_accessor :drop_prob # Drop rate #-------------------------------------------------------------------------- # ● Inicialização do Objeto #-------------------------------------------------------------------------- def drop_prob @drop_prob = 0 if @drop_prob == nil return @drop_prob end end end
#★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★
#============================================================================== # ■ Game_Enemy #==============================================================================
class Game_Enemy < Game_Battler #-------------------------------------------------------------------------- # ○ Adquirir item dropado #-------------------------------------------------------------------------- def extra_drop_items return enemy.extra_drop_items end end
#★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★
#============================================================================== # ■ Game_Troop #==============================================================================
class Game_Troop < Game_Unit #-------------------------------------------------------------------------- # ● Cria Drop de Itens #-------------------------------------------------------------------------- alias make_drop_items_KGC_ExtraDropItem make_drop_items def make_drop_items drop_items = make_drop_items_KGC_ExtraDropItem
dead_members.each { |enemy| enemy.extra_drop_items.each_with_index { |di, i| next if di.kind == 0 if di.drop_prob > 0 # Probability specification next if di.drop_prob < rand(100) else # Denominator specification next if rand(di.denominator) != 0 end if di.kind == 1 drop_items.push($data_items[di.item_id]) elsif di.kind == 2 drop_items.push($data_weapons[di.weapon_id]) elsif di.kind == 3 drop_items.push($data_armors[di.armor_id]) end # Set up compatability with KGC_EnemyGuide. if $imported["EnemyGuide"] KGC::Commands.set_enemy_item_dropped(enemy.enemy.id, i + 2) end } } return drop_items end end |
|
Jin Ancien staffeux
Messages postés : 8557 Date d'inscription : 08/12/2010 Jauge LPC :
| Sujet: Re: [VX] Multi-Drop VX Ven 19 Aoû 2011 - 17:25 | |
| Ah ça tombe bien j'allais en chercher un :p Merci ruruk !! |
|