Project1

标题: 关于Game_Enemy的问题 [打印本页]

作者: 化螺耕    时间: 2014-4-10 16:02
标题: 关于Game_Enemy的问题
RT,又来请教各位大神了,这次主要是有一些名词不大懂
1.
  1.   #--------------------------------------------------------------------------
  2.   # ● 属性防御判定
  3.   #     state_id : 状态 ID
  4.   #--------------------------------------------------------------------------
  5.   def state_guard?(state_id)
  6.     return false
  7.   end
复制代码
这里为什么是直接返回false呢,难道是直接让状态不可抵抗,可是我看数据库中有些状态还是没有勾选无法抵抗的选项的,或者是初始化的效果??{:2_276:}
2.
  1.     # 抽取现在有效的行动
  2.     available_actions = []
  3.     rating_max = 0
  4.     for action in self.actions
  5.       # 确认回合条件
  6.       n = $game_temp.battle_turn
  7.       a = action.condition_turn_a
  8.       b = action.condition_turn_b
  9.       if (b == 0 and n != a) or
  10.          (b > 0 and (n < 1 or n < a or n % b != a % b))
  11.         next
  12.       end
  13.       # 确认 HP 条件
  14.       if self.hp * 100.0 / self.maxhp > action.condition_hp
  15.         next
  16.       end
  17.       # 确认等级条件
  18.       if $game_party.max_level < action.condition_level
  19.         next
  20.       end
  21.       # 确认开关条件
  22.       switch_id = action.condition_switch_id
  23.       if switch_id > 0 and $game_switches[switch_id] == false
  24.         next
  25.       end
  26.       # 符合条件 : 添加本行动
  27.       available_actions.push(action)
  28.       if action.rating > rating_max
  29.         rating_max = action.rating
  30.       end
  31.     end
  32.     # 最大概率值作为 3 合计计算(0 除外)
  33.     ratings_total = 0
  34.     for action in available_actions
  35.       if action.rating > rating_max - 3
  36.         ratings_total += action.rating - (rating_max - 3)
  37.       end
  38.     end
  39.     # 概率合计不为 0 的情况下
  40.     if ratings_total > 0
  41.       # 生成随机数
  42.       value = rand(ratings_total)
  43.       # 设置对应生成随机数的当前行动
  44.       for action in available_actions
  45.         if action.rating > rating_max - 3
  46.           if value < action.rating - (rating_max - 3)
  47.             self.current_action.kind = action.kind
  48.             self.current_action.basic = action.basic
  49.             self.current_action.skill_id = action.skill_id
  50.             self.current_action.decide_random_target_for_enemy
  51.             return
  52.           else
  53.             value -= action.rating - (rating_max - 3)
  54.           end
  55.         end
  56.       end
  57.     end
  58.   end
复制代码
哪位大大能够有时间稍微解释一下这里首先是rating_max = 0这里不懂,查看帮助是额定值的意思。。。但是。。。感觉说了跟没说一样
还有action.condition_turn_a和action.condition_turn_b又是指什么呢?没时间的话解释一下这三个也行的,拜托各位了


作者: fux2    时间: 2014-4-10 16:35
因为调用state_guard?这个方法判定是针对Game_Battler的,所以Game_Actor和Game_Enemy都有这个方法,而默认系统里属性防御对敌人没有意义,故相当于留空。

后面一个问题你可以在F1帮助手册里面查看RPG::Enemy::Action相关说明。
作者: atom0520    时间: 2014-4-10 17:46
在设置战斗中事件或动作的触发条件时不是可以选择在第_+_x回合触发吗,action.condition_turn_a和action.condition_turn_b就是用来表示这个触发条件的,即在第action.condition_turn_a+action.condition_turn_b * x回合触发
作者: 化螺耕    时间: 2014-4-11 13:33
fux2 发表于 2014-4-10 16:35
因为调用state_guard?这个方法判定是针对Game_Battler的,所以Game_Actor和Game_Enemy都有这个方法,而默认 ...

求版主大大解释额定值的意思。。。




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