Project1

标题: 请问怎么获得选中敌人的id? [打印本页]

作者: 冰舞蝶恋    时间: 2010-11-4 13:12
标题: 请问怎么获得选中敌人的id?
怎么判断?比方说技能或是物品,让选中一个敌人,怎么获取这个敌人的ID并代入变量?
作者: 迷路子    时间: 2010-11-4 13:32
如果是要在选定目标并应用攻击後将敌人id代入变量
用脚本只要在game_battler的应用伤害处加入指令就好
事件应该做不到这么细微的判断…
作者: 冰舞蝶恋    时间: 2010-11-4 13:37
回复 迷路子 的帖子

呃,不是攻击后,是选中并按下确认键以后…………用脚本语句做得到吗?
作者: 迷路子    时间: 2010-11-4 14:15
你说的时间点和我说的是一样的   用脚本语句办得到
作者: wangswz    时间: 2010-11-4 15:13
本帖最后由 wangswz 于 2010-11-4 15:22 编辑

Game_Enemy里前几行有写
index# 队伍中索引
类似的修改
Game_Battler
def make_obj_damage_value(user, obj)中

    if self.index == 2
      damage += 100000
    end
第三个人所受到的伤害增加100000
self.is_a?(Game_Actor)                 #判断是否己方角色

不自觉想到DQ里回旋镖打人都是递减的效果
作者: 冰舞蝶恋    时间: 2010-11-4 17:38
回复 wangswz 的帖子

不是伤害啊。。是选中的敌人获取敌人的id并代入变量。。
作者: wangswz    时间: 2010-11-4 17:57
self.index 。。。仔细看脚本啊  后面我只是解释一下 index=2时是第三个单位位置
自然的
Game_Enemy里
enemy_id                 # 敌人 ID
original_name            # 原名称
这些属性也是这样用的
作者: 冰舞蝶恋    时间: 2010-11-4 18:06
回复 wangswz 的帖子

还是不懂……求范例
作者: 迷路子    时间: 2010-11-4 19:16
你是要对方怪物在敌人队伍中的序列号
还是要对方怪物在资料库中的编号?
又或是要对方怪物在资料库中的名称?
作者: 沉影不器    时间: 2010-11-4 19:31
提示: 作者被禁止或删除 内容自动屏蔽
作者: SOU    时间: 2010-11-4 19:47
用状态判定不好嘛
作者: 冰舞蝶恋    时间: 2010-11-4 20:16
回复 迷路子 的帖子

编号。。。
作者: 迷路子    时间: 2010-11-4 20:47
回复 冰舞蝶恋 的帖子

这样是可以获得最後一个使用技能的我方角色攻击的敌方目标在资料库中的编号
例如拉尔夫用技能或物品攻击史莱姆    则变数1会储存史莱姆在资料库中的编号
如果对方队伍有两只史莱姆   不管攻击哪个都是储存史莱姆在资料库的编号
而且只能获取最後一个被技能攻击到的目标
如果拉尔夫攻击完後    第二个角色也使用了技能或物品攻击同一队伍中的蝙蝠
则变数1储存的会是蝙蝠在资料库中的编号
  1. class Game_Battler
  2.   #--------------------------------------------------------------------------
  3.   # ● 计算技能/物品伤害
  4.   #     user : 技能或物品的使用者
  5.   #     obj  : 使用的技能或物品
  6.   #    计算结果赋值入 @hp_damage
  7.   #--------------------------------------------------------------------------
  8.   def make_obj_damage_value(user, obj)
  9.     damage = obj.base_damage                        # 基础计算
  10.     if damage > 0                                   # 若伤害为正
  11.       damage += user.atk * 4 * obj.atk_f / 100      # 使用者攻击力关系度
  12.       damage += user.spi * 2 * obj.spi_f / 100      # 使用者精神力关系度
  13.       unless obj.ignore_defense                     # 除非无视防御力
  14.         damage -= self.def * 2 * obj.atk_f / 100    # 目标攻击力关系度
  15.         damage -= self.spi * 1 * obj.spi_f / 100    # 目标精神力关系度
  16.       end
  17.       damage = 0 if damage < 0                      # 设负数伤害为0
  18.     elsif damage < 0                                # 若伤害为负
  19.       damage -= user.atk * 4 * obj.atk_f / 100      # 使用者攻击力关系度
  20.       damage -= user.spi * 2 * obj.spi_f / 100      # 使用者精神力关系度
  21.     end
  22.     damage *= elements_max_rate(obj.element_set)    # 属性校正
  23.     damage /= 100
  24.     damage = apply_variance(damage, obj.variance)   # 分散度
  25.     damage = apply_guard(damage)                    # 防御校正
  26.     if obj.damage_to_mp  
  27.       @mp_damage = damage                           # 伤害魔力
  28.     else
  29.       @hp_damage = damage                           # 伤害体力
  30.     end
  31.     if user.is_a?(Game_Actor)
  32.       $game_variables[1] = self.enemy_id
  33.     end
  34.   end
  35. end
复制代码

作者: 冰舞蝶恋    时间: 2010-11-6 18:35
回复 迷路子 的帖子

请问:为什么当主角使用恢复类特技(就是使用范围是主角的那种特技)的时候,脚本会出错~?
作者: 迷路子    时间: 2010-11-6 19:42
回复 冰舞蝶恋 的帖子

替换成这个就行了
  1. class Game_Battler  
  2.   #--------------------------------------------------------------------------
  3.   # ● 計算技能/物品傷害
  4.   #     user : 技能或物品的使用者
  5.   #     obj  : 使用的技能或物品
  6.   #    計算結果賦值入 @hp_damage
  7.   #--------------------------------------------------------------------------
  8.   def make_obj_damage_value(user, obj)
  9.     damage = obj.base_damage                        # 基礎計算
  10.     if damage > 0                                   # 若傷害為正
  11.       damage += user.atk * 4 * obj.atk_f / 100      # 使用者攻擊力關係度
  12.       damage += user.spi * 2 * obj.spi_f / 100      # 使用者精神力關係度
  13.       unless obj.ignore_defense                     # 除非無視防禦力
  14.         damage -= self.def * 2 * obj.atk_f / 100    # 目標攻擊力關係度
  15.         damage -= self.spi * 1 * obj.spi_f / 100    # 目標精神力關係度
  16.       end
  17.       damage = 0 if damage < 0                      # 設負數傷害為0
  18.     elsif damage < 0                                # 若傷害為負
  19.       damage -= user.atk * 4 * obj.atk_f / 100      # 使用者攻擊力關係度
  20.       damage -= user.spi * 2 * obj.spi_f / 100      # 使用者精神力關係度
  21.     end
  22.     damage *= elements_max_rate(obj.element_set)    # 屬性校正
  23.     damage /= 100
  24.     damage = apply_variance(damage, obj.variance)   # 分散度
  25.     damage = apply_guard(damage)                    # 防禦校正
  26.     if obj.damage_to_mp  
  27.       @mp_damage = damage                           # 傷害魔力
  28.     else
  29.       @hp_damage = damage                           # 傷害體力
  30.     end
  31.     if user.is_a?(Game_Actor) && !self.is_a?(Game_Actor)
  32.       $game_variables[1] = self.enemy_id
  33.     end
  34.   end
  35. end
复制代码

作者: 黑白旋律    时间: 2010-11-6 19:50
我也需要啊




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