Project1

标题: 怎么做一个让角色消失的状态 [打印本页]

作者: a1717477    时间: 2020-6-1 11:59
标题: 怎么做一个让角色消失的状态
本帖最后由 a1717477 于 2020-6-4 15:52 编辑

如何做到让敌方使用一个技能后 可以让我方角色暂时消失3回合的效果  我想过用离队入队来做 但是做不出来 求大佬帮忙回复下 谢谢了
作者: a1717477    时间: 2020-6-4 18:03
有没有大佬知道的.
作者: chanszeman1018    时间: 2020-6-4 19:16
提示: 作者被禁止或删除 内容自动屏蔽
作者: a1717477    时间: 2020-6-5 19:46
chanszeman1018 发表于 2020-6-4 19:16
角色暂时消失的目的是啥?
是為了令角色不被攻击么?
是的話用狀态改受攻击率。

角色消失的话除了是不能被操作之外 如果其他角色死亡了 战斗就失败了 这样比限制角色行动更有效果
作者: stidus    时间: 2020-6-5 20:01
本帖最后由 stidus 于 2020-6-5 20:02 编辑

新建个类似于无法战斗的状态 取名消失  设定持续回合数 所有物品和技能都不要设置能解除这个状态 再附加恢复率为0%的特性
作者: a1717477    时间: 2020-6-6 13:31
stidus 发表于 2020-6-5 20:01
新建个类似于无法战斗的状态 取名消失  设定持续回合数 所有物品和技能都不要设置能解除这个状态 再附加恢 ...

看来只能这样了 谢谢了
作者: cinderelmini    时间: 2020-6-6 15:19
照理说战斗者实例可以使用 .hide 和 .appear 实现隐藏和出现(默认的开局隐藏然后通过事件唤出的敌人就是这样做的),
也许在什么地方调用它们能做到吧……(比如黑一下附加状态和移除的地方)
用这种办法的好处就是隐藏时是真的当成不存在的对象。
作者: stidus    时间: 2020-6-6 16:20
a1717477 发表于 2020-6-6 13:31
看来只能这样了 谢谢了

作为脚本苦手 很多想法只能想办法用数据库来实现了
作者: a1717477    时间: 2020-6-7 10:33
cinderelmini 发表于 2020-6-6 15:19
照理说战斗者实例可以使用 .hide 和 .appear 实现隐藏和出现(默认的开局隐藏然后通过事件唤出的敌人就是这 ...

具体要怎么做呢 敌人好隐藏 自己人不知道怎么做了.
作者: chanszeman1018    时间: 2020-6-7 11:14
提示: 作者被禁止或删除 内容自动屏蔽
作者: a1717477    时间: 2020-6-10 10:43
chanszeman1018 发表于 2020-6-7 11:14
新建个状态(下方的脚本假设这狀态的ID為26) 设定持续回合数=3
插入以下脚本
class Game_Battler < Game_Bat ...

谢谢了 但是我试了一下 确实可以消失  但是3回合后角色还在消失  并没有回到战斗 这个怎么办?
作者: chanszeman1018    时间: 2020-6-10 12:08
提示: 作者被禁止或删除 内容自动屏蔽
作者: cinderelmini    时间: 2020-6-10 16:40
本帖最后由 cinderelmini 于 2020-6-10 16:47 编辑
chanszeman1018 发表于 2020-6-10 12:08
唔...好像是因為被附加消失狀態的角色消失了后,
该角色身上的消失狀態沒有跟隨回合数增加而狀態的減少回 ...


你之前那个办法按道理来说没什么问题,
角色消失后再也不回来的原因,是因为被.hide了的角色不计入Game_Party的battle_members里了,
所以在Scene_Battle的回合结束处理阶段时,all_battle_members里这些角色被排除在外了,导致不更新各种回合相关的内容。
因为敌群队伍没有这个区分队员的设定,所以敌人的部分会照常运行并处理,
所以按那个办法的话敌人被消失之后会回来,而角色就真的消失了XD。

找到了原因之后就好办了,只需要把被隐藏了的角色加入到战斗队伍中让系统一起更新回合就可以了。
↓可参考也可直接用↓

然后是一点小说明吧,在默认战斗系统的Scene_Battle里,all_battle_members只有在turn_end里使用,
但安全起见,我没有直接在原本的all_battle_members后面加上被隐藏的角色,
加了个判定标志,只在处理turn_end的时候,才把被隐藏了的角色加入all_battle_members里面去。

PS:用法是在数据库里新建一个状态,设定好解除回合跟说明文字什么的,然后把ID填到脚本的 HideStateID 后面。
作者: a1717477    时间: 2020-6-11 12:10
chanszeman1018 发表于 2020-6-10 12:08
唔...好像是因為被附加消失狀態的角色消失了后,
该角色身上的消失狀態沒有跟隨回合数增加而狀態的減少回 ...

谢谢 我等下去试试
作者: a1717477    时间: 2020-6-11 12:10
cinderelmini 发表于 2020-6-10 16:40
你之前那个办法按道理来说没什么问题,
角色消失后再也不回来的原因,是因为被.hide了的角色不计入Game_P ...

感谢大佬解答
作者: a1717477    时间: 2020-6-11 16:53
cinderelmini 发表于 2020-6-10 16:40
你之前那个办法按道理来说没什么问题,
角色消失后再也不回来的原因,是因为被.hide了的角色不计入Game_P ...

测试完美运行 感谢大佬
作者: a1717477    时间: 2020-6-11 16:55
chanszeman1018 发表于 2020-6-10 12:08
唔...好像是因為被附加消失狀態的角色消失了后,
该角色身上的消失狀態沒有跟隨回合数增加而狀態的減少回 ...

这个角色消失回来后再使用技能就会出错不知道为什么 cinderelmini的那个可以完美运行  也很谢谢你了~!




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