MOG Cursed Weapon é um script para o RPG Maker XP, desenvolvido pelo Moghunter, que implementa armas amaldiçoadas, que, quando usadas causam no personagem perda de HP, SP ou alguma condição adicionada.
Também adiciona a chance da arma quebrar.
Para instalar basta inserir o código abaixo acima do “Main”:
#_________________________________________________ # MOG_Cursed Weapon V2.0 (Lasted Update 26/05/2007) #_________________________________________________ # By Moghunter # http://www.atelier-rgss.com #_________________________________________________ # Quando o personagem usar uma arma amaldiçoada ele #receberá dano de hp, sp ou será adicionado uma condição. # Adiciona a chance da arma quebrar. #__________________________________________________ module MOG #Apresentar o texto ou o valor real do dano. CURSED_DAM_TEXT = true #Definição do texto. CURSED_TEXT = "Cursed Weapon" #Definição do audio quando a arma é almadiçoada. CURSED_SE = RPG::AudioFile.new("144-Support02", 100, 100) #Definição do texto quando a arma é quebrada. BROKEN_SWORD_TEXT = "Weapon Broken" #Definição do audio quando a arma é quebrada. BROKEN_SE = RPG::AudioFile.new("097-Attack09", 100, 50) #Definição das armas que causam dano de HP e a #sua % de dano ou a ID do Status. # # HPDAM = {A=>B ,A=>B,...} # # A = ID da arma # B = % de dano ,ID do status ou a chance de quebrar. # #CAUSAR DANO DE HP.(% de dano) HPDAM = { 29=>5 , #Bronze Rod 3=>30 , #Steel Sword 4=>15 #Mythril Sword } #CAUSAR DANO DE SP.(% de dano) SPDAM = { 5=>6 , #Bronze Spear 6=>10 , #Iron Spear 7=>3 , #Steel Spear 8=>32 #Mythril Spear } #ADICIONAR UMA CONDIÇÃO.(ID do Status) STDAM = { 10=>2 , #Iron Axe 11=>3 , #Steel Axe 12=>4 , #Mythril Axe 25=>1 #Bronze Mace } #Porcentagem de chance para quebrar a arma. BROKEN_PERCE = { 1=>100, #Bronze Sword 14=>30, #Iron Knife 15=>50, #Steel Knife 16=>12 #Mythril Knife } #__________________________________________________ end $mogscript = {} if $mogscript == nil $mogscript["cursed_weapon"] = true ################ # Scene_Battle # ################ class Scene_Battle include MOG alias mog27_update_phase4_step5 update_phase4_step5 def update_phase4_step5 mog27_update_phase4_step5 for target in @target_battlers if target.is_a?(Game_Enemy) and target.damage != "Miss" battler = @active_battler if battler.current_action.kind == 0 and battler.current_action.basic == 0 weapon_cursed_hp = HPDAM[battler.weapon_id] if weapon_cursed_hp != nil and battler.damage == nil dmg = battler.maxhp * weapon_cursed_hp / 100 battler.hp -= dmg $game_system.se_play(CURSED_SE) $game_screen.start_flash(Color.new(150,150,0,150), 20) if CURSED_DAM_TEXT == true battler.damage = CURSED_TEXT else battler.damage = dmg end battler.damage_pop = true end weapon_cursed_sp = SPDAM[battler.weapon_id] if weapon_cursed_sp != nil and battler.damage == nil dmg = battler.maxsp * weapon_cursed_sp / 100 battler.sp -= dmg $game_system.se_play(CURSED_SE) $game_screen.start_flash(Color.new(0,150,150,150), 20) if CURSED_DAM_TEXT == true battler.damage = CURSED_TEXT else battler.damage = "-SP " + dmg.to_s end battler.damage_pop = true end weapon_cursed_st = STDAM[battler.weapon_id] if weapon_cursed_st != nil and battler.damage == nil battler.add_state(weapon_cursed_st) $game_system.se_play(CURSED_SE) $game_screen.start_flash(Color.new(150,0,150,150), 20) if CURSED_DAM_TEXT == true battler.damage = CURSED_TEXT else stname = $data_states[weapon_cursed_st].name rescue nil battler.damage = stname.to_s end battler.damage_pop = true end weapon_broken = BROKEN_PERCE[battler.weapon_id] if weapon_broken != nil and rand(100) < weapon_broken and battler.damage == nil $game_screen.start_flash(Color.new(250,150,0,150), 20) $game_screen.start_shake(5,10,20) wb = battler.weapon_id battler.equip(0, 0) $game_party.lose_weapon(wb, 1) $game_system.se_play(BROKEN_SE) battler.damage_pop = true battler.damage = BROKEN_SWORD_TEXT end end end end end end
Observação: se você gostou deste post ou ele lhe foi útil de alguma forma, por favor considere apoiar financeiramente a Gaming Room. Fico feliz só de ajudar, mas a contribuição do visitante é muito importante para que este site continua existindo e para que eu possa continuar provendo este tipo de conteúdo e melhorar cada vez mais. Acesse aqui e saiba como. Obrigado!
Post muito bom ! Queria saber se funciona no VX/ACE?
Creio que não, a não ser que exista algum modo de compatibilidade de RGSS.