Project1

标题: 如何在战斗中给敌人的能力值增加附加值呢? [打印本页]

作者: 三途亚梦    时间: 2014-10-17 13:33
标题: 如何在战斗中给敌人的能力值增加附加值呢?
距离上次提问真是间隔挺久了呢

于是我回来活跃一下提问区了!

基本问题就是如题所示,在敌群中执行事件增减敌人的能力值。

尽管可以通过状态增减,但是不大符合制作的需要。

因为这样的效果会运用到几乎所有敌人上,主要用于制作出“能力值随机浮动”的敌人。

$game_troop.members[0].mhp += rand(10000)
$game_troop.members[0].hp == mhp

是否有类似↑这样方便的句子能写出效果呢?
作者: taroxd    时间: 2014-10-17 15:25
本帖最后由 taroxd 于 2014-10-17 15:27 编辑

可以。在 Game_Enemy 定义一个 mhp= 方法,直接修改数据库的值(不存档)

如果不希望直接修改数据库的话,那么就利用一个实例变量吧
作者: taroxd    时间: 2014-10-18 21:19
随手瞎写,只是提供思路

RUBY 代码复制
  1. class Game_Enemy
  2.   def mhp=(mhp)
  3.     @assigned_mhp = mhp
  4.   end
  5.  
  6.   alias mhp_from_database mhp
  7.   def mhp
  8.     @assigned_mhp || mhp_from_database
  9.   end
  10. end

作者: chd114    时间: 2014-10-18 22:12
制作出“能力值随机浮动”的敌人?那直接在战斗开始的时候加判断呗···XP以前也有人问这样的问题,就是这样解决了···
作者: chd114    时间: 2014-10-18 22:20
Game_Troop

  1.   #--------------------------------------------------------------------------
  2.   # ● 设置
  3.   #--------------------------------------------------------------------------
  4.   def setup(troop_id)
  5.     clear
  6.     @troop_id = troop_id
  7.     @enemies = []
  8.     troop.members.each do |member|
  9.       next unless $data_enemies[member.enemy_id]
  10.       enemy = Game_Enemy.new(@enemies.size, member.enemy_id)
  11.       enemy.hide if member.hidden
  12.       enemy.screen_x = member.x
  13.       enemy.screen_y = member.y
  14.       @enemies.push(enemy)
  15.     end
  16.     init_screen_tone
  17.     make_unique_names
  18.   end
复制代码
  1. init_screen_tone
复制代码
的上面加一段
  1.     for i in [email protected]
  2.       @enemies[i].hp*=1.25
  3.     end
复制代码

作者: chd114    时间: 2014-10-18 22:21
本帖最后由 chd114 于 2014-10-18 05:28 编辑
chd114 发表于 2014-10-18 05:20
Game_Troop

的在的上面加一段


但是有个缺陷,这样处理不能让敌人的HP超过数据库里设置的数,比如数据库里的敌人MHP设置的是1000,那么随机的HP不能超过1000

因为在这处理读取不到mhp
作者: 三途亚梦    时间: 2014-10-20 00:02
得到高人教诲,已经达到了需要的理想效果~

麻烦结贴~  @taroxd @VIPArcher  




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1