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

Project1

 找回密码
 注册会员
搜索
12
返回列表 发新帖
楼主: taeckle
打印 上一主题 下一主题

[已经解决] 请教队伍里有人有第2号状态的话对方的群攻技能变成单体

[复制链接]

Lv4.逐梦者

梦石
0
星屑
6483
在线时间
119 小时
注册时间
2020-1-8
帖子
234
11
发表于 2020-12-28 12:17:58 | 只看该作者
本帖最后由 RPGzh500223 于 2020-12-28 12:24 编辑


假如@target_battlers为空之前就胜负判定,结束战斗了
不从@active_battler角度写
是因为担心“混乱”,尽管RMXP默认的限制行动没有 “技能攻击队友”

我都忘了Game_Battler.state? 方法了
更简单了

点评

判断目标对象个数是否大于1,不是为空。如果目标只有一个,那就没必要转换全体到单体了。  发表于 2020-12-28 13:32
限制越多,越不容易混乱。  发表于 2020-12-28 13:30
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
6483
在线时间
119 小时
注册时间
2020-1-8
帖子
234
12
发表于 2020-12-28 14:15:37 | 只看该作者
本帖最后由 RPGzh500223 于 2020-12-28 14:29 编辑
RPGzh500223 发表于 2020-12-28 12:17
假如@target_battlers为空之前就胜负判定,结束战斗了
不从@active_battler角度写
是因为担心“混乱”, ...


我表达错了  "@target_battlers为空"
我想表达的意思是 @target_battlers.empty?
不是@terget_battlers == nil……

好尴尬我把@target_battlers.size > 1 看成  >0

评分

参与人数 1+1 收起 理由
taeckle + 1 我很赞同

查看全部评分

回复 支持 反对

使用道具 举报

Lv5.捕梦者 (版主)

梦石
1
星屑
23994
在线时间
3339 小时
注册时间
2011-7-8
帖子
3926

开拓者

13
发表于 2020-12-28 23:24:12 | 只看该作者
另一种方案是按照字面意思,在对方行动前把技能改成群攻就行了。在update_phase4_step2之前执行:
  1. $origin_skill = Marshal.dump($data_skills[100])
  2. if $game_party.actors.find{|a| a.state?(2)}
  3.   if $data_skills[100].scope == 2
  4.     $data_skills[100].scope = 1
  5.   end
  6. end
复制代码

然后在update_phase4_step5之后执行:
  1. $data_skills[100] = $origin_skill
复制代码

评分

参与人数 2星屑 +50 +1 收起 理由
RyanBern + 50 我很赞同
taeckle + 1 多谢大神指点!

查看全部评分

熟悉rgss和ruby,xp区版主~
正在填坑:《膜拜组传奇》讲述膜拜组和学霸们的故事。
已上steam:与TXBD合作的Reformers《变革者》
* 战斗调用公共事件 *
* RGSOS 网络脚本 *
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-22 11:08

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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