Project1
标题:
关于混乱状态
[打印本页]
作者:
miracl
时间:
2010-10-19 11:14
标题:
关于混乱状态
游戏默认的混乱状态是只能打自己人,能不能改成不分敌我随机打呢?
作者:
pan2003abc
时间:
2010-10-19 13:41
如果你非要实现这个,我只能想到一个很笨很复杂的办法,设置战斗中事件,设置条件如果有我方角色中混乱时,用“强制行动”设置这个中混乱的同伴攻击敌人。
这个事件可以再设置个随机变量来实现随机性。
不过比较麻烦,可能和你期望的有差距
作者:
九夜神尊
时间:
2010-10-19 15:05
本帖最后由 九夜神尊 于 2010-10-19 15:07 编辑
未命名.jpg
(51.16 KB, 下载次数: 4)
下载附件
保存到相册
2010-10-19 15:07 上传
你要找的东西在这里(默认战斗系统的情况下)
如果用了别的战斗系统,并且修改这里无效的话。请搜索方法名!
看这一句
battler = $game_party.random_target_actor
复制代码
这个的意思是索取一个同伴作为目标
再往下看两行
battler = $game_troop.random_target_enemy
复制代码
这是索取一个敌人作目标
然而却在两个不同的条件分支下。
很明显,中间的那个是角色攻击同伴的时候索取的目标,在这里只需要把索取敌人也加入就可以了。
那么.请自行理解这一段代码应该替换哪些。
if rand(100)<50 #敌我均一半的受攻击率
battler = $game_party.random_target_actor
else
battler = $game_troop.random_target_enemy
end
复制代码
替换对了,就实现了你要的效果。
然后往下看,那里设置了敌人攻击自己的同伴,同样的替换方法。
当然这只能实现敌我双方各一般受攻击率。如果要根据人数多少而不同的受攻击率的话。
要复杂很多。
作者:
miracl
时间:
2010-10-19 15:34
本帖最后由 miracl 于 2010-10-19 15:47 编辑
回复
九夜神尊
的帖子
#--------------------------------------------------------------------------
# ● 随机目标 (角色用)
#--------------------------------------------------------------------------
def decide_random_target_for_actor
# 效果范围的分支
if for_one_friend_hp0?
battler = $game_party.random_target_actor_hp0
elsif for_one_friend?
if rand(100)<50 #敌我均一半的受攻击率
battler = $game_party.random_target_actor
else
battler = $game_troop.random_target_enemy
end
# 对像存在的话取得索引、
# 对像不存在的场合下清除行动
if battler != nil
@target_index = battler.index
else
clear
end
end
复制代码
我是这么修改的,但是会报错,
# 设置对应生成随机数的当前行动
for action in available_actions
if action.rating > rating_max - 3
if value < action.rating - (rating_max - 3)
self.current_action.kind = action.kind
self.current_action.basic = action.basic
self.current_action.skill_id = action.skill_id
self.current_action.decide_random_target_for_enemy #这句报错
复制代码
作者:
九夜神尊
时间:
2010-10-19 16:02
换错地方了。
作者:
miracl
时间:
2010-10-19 16:24
回复
九夜神尊
的帖子
我这回这么改的,用的时候虽然不报错了,但是依旧是只打自己,还是放错位置了么?
#--------------------------------------------------------------------------
# ● 随机目标 (角色用)
#--------------------------------------------------------------------------
def decide_random_target_for_actor
# 效果范围的分支
if for_one_friend_hp0?
battler = $game_party.random_target_actor_hp0
elsif for_one_friend?
if rand(100)<50 #敌我均一半的受攻击率
battler = $game_party.random_target_actor
else
battler = $game_troop.random_target_enemy
end
else
battler = $game_troop.random_target_enemy
end
# 对像存在的话取得索引、
# 对像不存在的场合下清除行动
if battler != nil
@target_index = battler.index
else
clear
end
end
复制代码
作者:
九夜神尊
时间:
2010-10-19 16:36
回复
miracl
的帖子
多测试,也许一次两次自己打自己很正常
作者:
九夜神尊
时间:
2010-10-19 16:49
试试看你改的这个地方被用到没有,也许这个方法被重新定义在别的地方了。
作者:
miracl
时间:
2010-10-19 17:04
回复
九夜神尊
的帖子
呃,我上传一个工程,里面有我所用的脚本,麻烦你帮我看下吧……
Project4.zip
(251.83 KB, 下载次数: 42)
2010-10-19 17:04 上传
点击文件名下载附件
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1