Project1

标题: 关于点击战斗后自动对应攻击的问题 [打印本页]

作者: 负零    时间: 2015-1-9 15:12
标题: 关于点击战斗后自动对应攻击的问题
class Scene_Battle < Scene_Base中

#--------------------------------------------------------------------------
  # ● 指令“攻击”
  #--------------------------------------------------------------------------
  def command_attack
    BattleManager.actor.input.set_attack
    p @game_party.battle_members[0].atk
  end

红字部分不能正确获取到指定信息。所以无法实现以下功能
求教如何实现点击“攻击”(第一级菜单)后,战斗队伍中位置1(game_party)的角色攻击敌人队伍位置1的怪物(game.troop)这一代码。
作者: 三途亚梦    时间: 2015-1-9 15:28
本帖最后由 三途亚梦 于 2015-1-9 15:30 编辑

@是个什么鬼啊…… 用$啊……

morningboo
↑关于如何对应自动战斗的目标选择,我建议你看看这个少年发的提问帖。
作者: morningboo    时间: 2015-1-10 11:11
首先VA中其实并不存在位置的概念,我的游戏因为是全自动战斗所以最后通过大幅改造这个脚本实现了效果要求,你的如果还有战斗指令选择界面的话建议用XD大大的扩展目标范围脚本


  1. #=================================================
  2. # ■ 技能组别范围
  3. #



  4. =begin
  5. 脚本名:技能组别范围
  6. 作者:九夜神尊
  7. 使用方法:设置技能的作用范围为四个随机敌人,即定义为组别技能
  8. 这个技能攻击队伍中同一种敌人,原有的4随机敌人定义被取消。

  9. 可能的冲突:新的战斗系统吧
  10. 版本 :1.0

  11. =end

  12. class RPG::UsableItem < RPG::BaseItem
  13. #------------------------------------------------
  14. # ●需要选择
  15. #------------------------------------------------
  16. def need_selection?
  17. [1, 6,7, 9].include?(@scope)
  18. end
  19. #------------------------------------------------
  20. # ●随机对象
  21. #------------------------------------------------

  22. def for_random?
  23. [3, 4, 5].include?(@scope)
  24. end
  25. #------------------------------------------------
  26. # ●组别对象
  27. #------------------------------------------------
  28. def for_group?
  29. @scope==6
  30. end


  31. end

  32. #encoding:utf-8
  33. #==============================================================================
  34. # ■ Game_Action
  35. #------------------------------------------------------------------------------
  36. #  处理战斗中的行动的类。本类在 Game_Battler 类的内部使用。
  37. #==============================================================================

  38. class Game_Action
  39. #--------------------------------------------------------------------------
  40. # ● 目标为敌人
  41. #--------------------------------------------------------------------------
  42. alias swtf_targets_for_opponents targets_for_opponents
  43. def targets_for_opponents
  44. if item.for_group?
  45. return opponents_unit.group_target(@target_index)
  46. end
  47. swtf_targets_for_opponents
  48. end
  49. end
  50. #encoding:utf-8
  51. #==============================================================================
  52. # ■ Game_Unit
  53. #------------------------------------------------------------------------------
  54. #  管理游戏单位的类。是 Game_Party 和 Game_Troop 类的父类。
  55. #==============================================================================

  56. class Game_Unit

  57. #--------------------------------------------------------------------------
  58. # ● 决定组别目标
  59. #
  60. #--------------------------------------------------------------------------


  61. def group_target(index)
  62. group = []
  63. member = members[index]
  64. members.each do |enemy|
  65. if enemy.enemy_id == member.enemy_id
  66. group.push enemy if enemy.alive?
  67. end

  68. end
  69. return group
  70. end
  71. end
复制代码
PS:XD大新出了一个扩展技能和道具范围的脚本,这里推荐使用下,我的因为已经时间很久了,懒得再去一一设置了就将就用了(2000多个技能),你可以用这个脚本来直接指定攻击目标,比我上面的方法好的多,下面提供传送门:https://rpg.blue/thread-374477-1-1.html
注意需要置顶的基础设置
作者: taroxd    时间: 2015-1-10 11:41
本帖最后由 taroxd 于 2015-1-10 11:43 编辑

https://rpg.blue/thread-365973-1-1.html
https://rpg.blue/thread-374477-1-1.html
https://rpg.blue/thread-375289-1-1.html

三个加起来可以完全实现你的功能

其中目标可以用 <target>first</target> 来实现打敌方第一个人

**注意群组里面置顶的公告**




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