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

Project1

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

[已经解决] 战斗对象问题

[复制链接]

Lv3.寻梦者

梦石
0
星屑
995
在线时间
180 小时
注册时间
2013-2-16
帖子
176
跳转到指定楼层
1
发表于 2013-8-1 17:42:38 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
【最近的问题比较多额……】
就是想弄个状态效果,
让a在状态1时,且b在状态2时,若有c攻击a,则b受到同样的攻击。

自己弄了下:
在scene_battle里所有“生成行动结果”的方法里,所有“应用通常攻击/特技效果”的前面,加上:
RUBY 代码复制
  1. if @target_battlers.include?($game_troop.enemies[1]) and $game_troop.enemies[1].state?(1)#只有敌人1会施放这种让自己与对象分别附加状态1和2的特技
  2.   for actor in $game_party.actors
  3.     @target_battlers.push(actor) if actor.state(2)
  4.   end
  5.   for enemy in $game_troop.enemies
  6.     @target_battlers.push(enemy) if enemy.state?(2)
  7.   end
  8.   end

可是测试发现完全没有效果,一点效果都没有……怎么回事?

评分

参与人数 1星屑 +70 收起 理由
弗雷德 + 70 恭喜楼主

查看全部评分

Lv3.寻梦者

梦石
0
星屑
995
在线时间
180 小时
注册时间
2013-2-16
帖子
176
2
 楼主| 发表于 2013-8-2 11:11:35 手机端发表。 | 只看该作者
自顶一下
回复 支持 反对

使用道具 举报

Lv2.观梦者 (暗夜天使)

万兽

梦石
0
星屑
597
在线时间
2271 小时
注册时间
2006-11-4
帖子
4868

贵宾

3
发表于 2013-8-2 11:58:36 | 只看该作者
这么想只是相当于将actor或者enemy添加进@target_battlers列表中,充其量不过是增加了一个攻击目标,把本是单体目标的攻击变成了多体目标。
但是实际上当一个目标从攻击到被攻击以及显示伤害的整个流程结束后,并不会返回重新执行攻击,而是会移到下一个角色的行动。
要实现的话整个战斗流程都得进行修改,到不如试试反击脚本,在里面修改一下,这样比较方便。
http://www.66rpg.com/articles/2899
将遭到的攻击类型改为攻击方的状态判断,应该可以轻松实现的。
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
995
在线时间
180 小时
注册时间
2013-2-16
帖子
176
4
 楼主| 发表于 2013-8-2 21:04:17 | 只看该作者
弗雷德 发表于 2013-8-2 11:58
这么想只是相当于将actor或者enemy添加进@target_battlers列表中,充其量不过是增加了一个攻击目标,把本是 ...

额,我还是有点不理解,
我是在“应用攻击/特技效果” 之前 添加的脚本,如果说真的是因为什么问题而导致添加进去的元素没有被执行的话,那么应该整个数组都应该没有被循环吧……怎么会只有部分元素被循环了呢?
而且我也看了系统默认的“确定特技对象的”(set_target_battlers(scope))的方法,它确定对象的步骤也只不过是把对象序号所确定的对象添加到@target_battlers数组中,怎么会有差别呢?

点评

战斗流程默认一个角色只执行一次轮回,添加进去数组的对象只能说相当于增加了一个攻击目标,也就是把本是单体范围的攻击变成了多体。  发表于 2013-8-3 10:20
回复 支持 反对

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
33656
在线时间
5108 小时
注册时间
2012-11-19
帖子
4878

开拓者

5
发表于 2013-8-3 08:21:29 手机端发表。 | 只看该作者
在显示伤害那儿试试。先判断对象是否有敌人1号;并且处于1号状态。再判断敌人1号的伤害是否是数值。最后循环角色和敌人队伍,如果有处于2号状态的,其伤害就等于1号敌人的伤害。

点评

【真对不起,这么久没回复……】试过了,貌似还是没用  发表于 2013-8-10 19:16
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
995
在线时间
180 小时
注册时间
2013-2-16
帖子
176
6
 楼主| 发表于 2013-8-11 10:08:46 手机端发表。 | 只看该作者
本帖最后由 clear仔 于 2013-8-11 10:09 编辑
芯☆淡茹水 发表于 2013-8-3 08:21
在显示伤害那儿试试。先判断对象是否有敌人1号;并且处于1号状态。再判断敌人1号的伤害是否是数值。最后循 ...


额,好吧,自己解决了,,,,
只要把主楼的脚本改成这样就行了:
for i in $game_troop.enemies
if i.state?(1)
for a in $game_party.actors
@target_battlers.push(a) if a.state?(2)
end
for e in $game_troop.enemies
next if e==i
@target_battlers.push(e) if e.state?(2)
end
end
end
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2025-1-3 03:06

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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