设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 1510|回复: 4
打印 上一主题 下一主题

[已经过期] 如何设置敌人行动按照设定的技能顺序出招

[复制链接]

Lv3.寻梦者

梦石
0
星屑
1916
在线时间
190 小时
注册时间
2017-12-28
帖子
7
跳转到指定楼层
1
发表于 2022-11-6 02:15:59 | 只看该作者 |只看大图 回帖奖励 |正序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
用了CP制战斗脚本,不能设定回合来实现效果。
要想让敌人按照设定的技能顺序出招,该怎样改动脚本?金——水——木——火——土——五行相生——金——水......按顺出招
  1.   #--------------------------------------------------------------------------
  2.   # ● 生成行动
  3.   #--------------------------------------------------------------------------
  4.   def make_action
  5.     # 清除当前行动
  6.     self.current_action.clear
  7.     # 无法行动的情况
  8.     unless self.movable?
  9.       # 过程结束
  10.       return
  11.     end
  12.     # 抽取现在有效的行动
  13.     available_actions = []
  14.     rating_max = 0
  15.     for action in self.actions
  16.       # 确认回合条件
  17.       n = $game_temp.battle_turn
  18.       a = action.condition_turn_a
  19.       b = action.condition_turn_b
  20.       if (b == 0 and n != a) or
  21.          (b > 0 and (n < 1 or n < a or n % b != a % b))
  22.         next
  23.       end
  24.       # 确认 HP 条件
  25.       if self.hp * 100.0 / self.maxhp > action.condition_hp
  26.         next
  27.       end
  28.       # 确认等级条件
  29.       if $game_party.max_level < action.condition_level
  30.         next
  31.       end
  32.       # 确认开关条件
  33.       switch_id = action.condition_switch_id
  34.       if switch_id > 0 and $game_switches[switch_id] == false
  35.         next
  36.       end
  37.       # 符合条件 : 添加本行动
  38.       available_actions.push(action)
  39.       if action.rating > rating_max
  40.         rating_max = action.rating
  41.       end
  42.     end
  43.     # 最大概率值作为 3 合计计算(0 除外)
  44.     ratings_total = 0
  45.     for action in available_actions
  46.       if action.rating > rating_max - 3
  47.         ratings_total += action.rating - (rating_max - 3)
  48.       end
  49.     end
  50.     # 概率合计不为 0 的情况下
  51.     if ratings_total > 0
  52.       # 生成随机数
  53.       value = rand(ratings_total)
  54.       # 设置对应生成随机数的当前行动
  55.       for action in available_actions
  56.         if action.rating > rating_max - 3
  57.           if value < action.rating - (rating_max - 3)
  58.             self.current_action.kind = action.kind
  59.             self.current_action.basic = action.basic
  60.             self.current_action.skill_id = action.skill_id
  61.             self.current_action.decide_random_target_for_enemy
  62.             return
  63.           else
  64.             value -= action.rating - (rating_max - 3)
  65.           end
  66.         end
  67.       end
  68.     end
  69.   end
复制代码




Lv3.寻梦者

梦石
0
星屑
1916
在线时间
190 小时
注册时间
2017-12-28
帖子
7
5
 楼主| 发表于 2022-11-8 19:09:10 | 只看该作者
纯属小虫 发表于 2022-11-6 18:02
我也玩CP玩了一阵子
整体回合计数的逻辑在这里几乎没法用了,不过单对象的回合计数还是能够使用的
可以新建 ...

谢谢解答..我再看看单对象的回合计数....
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1916
在线时间
190 小时
注册时间
2017-12-28
帖子
7
4
 楼主| 发表于 2022-11-8 19:07:49 | 只看该作者
无忧谷主幻 发表于 2022-11-7 03:29
最笨的方法,给每个技能设置开关和公共事件
技能1需要开关1打开才能使用,技能2需要开关2
开局先打开开关1 ...

谢谢解答,技能太多>>>设不过来
回复 支持 反对

使用道具 举报

Lv4.逐梦者

素材区好人

梦石
3
星屑
7477
在线时间
3539 小时
注册时间
2011-7-21
帖子
2284

极短24参与极短23参与极短22参与极短21参与

3
发表于 2022-11-7 03:29:37 | 只看该作者
本帖最后由 无忧谷主幻 于 2022-11-7 03:30 编辑

最笨的方法,给每个技能设置开关和公共事件
技能1需要开关1打开才能使用,技能2需要开关2
开局先打开开关1,之后技能1的公共事件为打开开关2并关闭开关1

回复 支持 反对

使用道具 举报

Lv5.捕梦者

梦石
24
星屑
7447
在线时间
249 小时
注册时间
2020-12-4
帖子
306

极短24获奖极短23获奖极短22获奖

2
发表于 2022-11-6 18:02:33 | 只看该作者
本帖最后由 纯属小虫 于 2022-11-6 18:04 编辑

我也玩CP玩了一阵子
整体回合计数的逻辑在这里几乎没法用了,不过单对象的回合计数还是能够使用的
可以新建几个全局变量,专门用来记录对应队伍的角色在这场战斗所经历的回合数,如果是默认的队伍上限的话,队友4个变量,敌人8个变量

去Scene_Battle 4 最后找 update_phase4_step*(应该是最后几个),找找【连续伤害(中毒伤害之类)】 相关的step,通常处理了这个step,就是该角色行动了一回合了(即便角色被眩晕导致不行动,也会+1回合计数);
然后在这个step添加一个对@active_battler.**** 的判定,(****是行动者在队伍中的序号,忘记掉是什么了),然后给对应的变量 += 1
当然,前面新建的4+8个全局变量是临时变量,要在Scene_Battle 的 main中进行初始化(每开始一场新的战斗都会初始化)

这样一来,就可以给敌人按照回合数来出招了(当然,由于敌人被眩晕了也会计回合数,所以如果敌人在连招过程中被行为限制,可能会跳招;
建议可以在敌人使用某技能后做一个开关,然后后置技能要在这个开关打开的条件下才能够使用)
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-11-10 18:29

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表