Script criado por sandgolem para o RPG Maker XP que ao inserido em um game ou projeto deste maker, que cada vez que o jogador mata um inimigo ou monstro, ele ganha um bônus em XP além do padrão configurado nos inimigos do RMXP.
O bônus, por padrão, é a quantidade de XP do inimigo dividida pelo SG_KillBonus_Divisor
, valor que está definido como 3, na linha: Scene_Battle::SG_KillBonus_Divisor = 3
Eu ACHO que o bônus pode ser alterado conforme o número de vezes que se mata inimigos, por causa do SG Bonus Kill Experience precisar do SG Actor Kill Counter, instalado. Vamos pesquisar isso e atualizar aqui quando pudermos! Aliás, se alguém com experiência em RGSS puder ajudar, por favor!
Para usar o código, você deve adiciona-lo acima do Main
, mas abaixo dos scripts padrões, e do SDK, se você está usando. O SG Actor Kill Counter precisa estar acima do SG Bonus Kill Experience.
#========================================================================== # ** SG Bonus Kill Experience #========================================================================== # sandgolem # Version 1 # 26.06.06 #========================================================================== Scene_Battle::SG_KillBonus_Divisor = 3 #========================================================================== # # To use this script, copy it and insert it in a new section above "Main", # but under the default scripts and the SDK (if using). # # SG Actor Kill Counter is required for this script and must be above. # #========================================================================== begin SDK.log('SG Bonus Kill Experience', 'sandgolem', 1, '26.06.06') if SDK.state('SG Bonus Kill Experience') != true @sg_bonuskillexp_disabled = true end rescue end if !@sg_bonuskillexp_disabled #-------------------------------------------------------------------------- class Game_Actor < Game_Battler attr_accessor :sg_killbonus_exp end class Scene_Battle alias sg_bonusskillexp_killadd sg_killcheck_add def sg_killcheck_add(enemy) if @active_battler.sg_killbonus_exp == nil @active_battler.sg_killbonus_exp = enemy.exp / SG_KillBonus_Divisor else @active_battler.sg_killbonus_exp += enemy.exp / SG_KillBonus_Divisor end sg_bonusskillexp_killadd(enemy) end alias sandgolem_bonuskillxp_battle_startph5 start_phase5 def start_phase5 sandgolem_bonuskillxp_battle_startph5 for i in 0...$game_party.actors.size actor = $game_party.actors[i] if !actor.cant_get_exp? if actor.sg_killbonus_exp != nil last_level = actor.level actor.exp += actor.sg_killbonus_exp actor.sg_killbonus_exp = nil if actor.level > last_level @status_window.level_up(i) end 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!