Project1

标题: 请教一个脚本 [打印本页]

作者: 七仙女    时间: 2008-4-20 16:12
提示: 作者被禁止或删除 内容自动屏蔽
作者: 禾西    时间: 2008-4-20 17:13
1.target = $game_troop.random_target_enemy 的作用?
讀取敵人的攻擊目標數據(隨機)
具體操作看以下方法:
  1.   #--------------------------------------------------------------------------
  2.   # ● 对像敌人的随机确定
  3.   #     hp0 : 限制 HP 0 的敌人
  4.   #--------------------------------------------------------------------------
  5.   def random_target_enemy(hp0 = false)
  6.     # 初始化轮流
  7.     roulette = []
  8.     # 循环
  9.     for enemy in @enemies
  10.       # 条件符合的情况下
  11.       if (not hp0 and enemy.exist?) or (hp0 and enemy.hp0?)
  12.         # 添加敌人到轮流
  13.         roulette.push(enemy)
  14.       end
  15.     end
  16.     # 轮流尺寸为 0 的情况下
  17.     if roulette.size == 0
  18.       return nil
  19.     end
  20.     # 转轮盘赌,决定敌人
  21.     return roulette[rand(roulette.size)]
  22.   end
复制代码

1.5 target = $game_party.random_target_actor
同上,不過變成了角色

2.index = @active_battler.current_action.target_index 的作用?
讀取攻擊目標的index(目錄?位置?不會翻譯==|||)
如果行動者是角色(actor)
這個變量在 Scene_Battle 3 的 311 行被初始化,記錄了你選擇的敵人的在隊伍中的位置

  1.       # 设置行动
  2.       @active_battler.current_action.target_index = @actor_arrow.index
复制代码

如果現在行動者是敵人(Enemy)的話
會由於 Scene_Battle 4 的 38 ~ 40 的 enemy.make_action 語句自動調用位於
Game_Enemy 的 308 行的
            self.current_action.decide_random_target_for_enemy

語句來記錄攻擊目標

3.target = $game_party.smooth_target_actor(index)的作用?
.smooth_target_actor 是位於 Game_Party 343行的一個方法(也就是位於最後的一個方法)
此方法的 return 值記錄了任意位置的角色(actor)數據

  1.   #--------------------------------------------------------------------------
  2.   # ● 对像角色的顺序确定
  3.   #     actor_index : 角色索引
  4.   #--------------------------------------------------------------------------
  5.   def smooth_target_actor(actor_index)
  6.     # 取得对像
  7.     actor = @actors[actor_index]
  8.     # 对像存在的情况下
  9.     if actor != nil and actor.exist?
  10.       return actor
  11.     end
  12.     # 循环
  13.     for actor in @actors
  14.       # 对像存在的情况下
  15.       if actor.exist?
  16.         return actor
  17.       end
  18.     end
  19.   end
复制代码


4.设置对像方的战斗者序列
  @target_battlers = [target] 的作用?
將目標數據記錄進 @target_battlers 變量當中

@target_battlers 變量稍後會在 Scene_Battle 4 的 354~356 行被調用:

  1.     # 应用特技效果
  2.     for target in @target_battlers
  3.       target.skill_effect(@active_battler, @skill)
  4.     end
复制代码

目的是産生每個受攻擊者的傷害效果。 [LINE]1,#dddddd[/LINE]系统信息:本贴由楼主认可为正确答案,66RPG感谢您的热情解答~
作者: 仙`飛狐    时间: 2008-4-20 17:24
看见脚本就头疼啊…………{/ll}
作者: wsffx13    时间: 2008-4-20 17:54
不久前就自己写一个能移动的战场战斗系统。为了设计敌人AI,对上面的几个东西不知道修改了多少遍,后来却发现敌人还是很笨…………所以,删除。

的确挺头痛的…………
作者: 七仙女    时间: 2008-4-20 20:13
提示: 作者被禁止或删除 内容自动屏蔽




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