Project1

标题: 如何当角色学习到某个技能后触发事件? [打印本页]

作者: bloodyliao    时间: 2014-9-3 08:34
标题: 如何当角色学习到某个技能后触发事件?
本帖最后由 bloodyliao 于 2014-9-3 08:41 编辑

就是当角色学会某个技能,如升级学会或者用物品学会,学会后能够触发事件,事件里能读取学习技能的角色id,请问要如何实现?
咱想做成,角色学习某个技能后,给他永久附加一个状态。
作者: 三途亚梦    时间: 2014-9-3 12:30
本帖最后由 三途亚梦 于 2014-9-3 12:46 编辑

只要用一个并行处理的公共事件就可以检测人物是否学习了某技能;
加个60帧等待减少游戏处理上的负担,让它每1秒检测现有队员中是否有人学会了该技能,并给该角色附加一个状态,这个状态让它死亡不会解除基本上就是永久状态。
不过只要这个公共事件还存在即使死后消除了也会马上再附上新的状态。
另外论坛应该是有关于如何设置一个永久状态的方法的,模仿那个做就可以。

$game_party.members[0].skill_learn?($data_skills[3])
这个句子用来检测领队是否学会了3号技能
如果你还想让这个技能可能被遗忘,就在否则里消除掉附加的状态

以这个方法把所有队员处理一遍应该就可以解决了。
作者: bloodyliao    时间: 2014-9-3 12:42
三途亚梦 发表于 2014-9-3 12:30
只要用一个并行处理的公共事件就可以检测人物是否学习了某技能;
加个60帧等待减少游戏处理上的负担,让它 ...

因为角色很多……要一个个检查吗?每个地图都要运行担心影响负担啊……
咱有个永久状态脚本,所以只要学习后添加状态就好了,不用重复检查
问题是,如何在学习技能时添加这个永久状态呢?
作者: 三途亚梦    时间: 2014-9-3 12:53
bloodyliao 发表于 2014-9-3 12:42
因为角色很多……要一个个检查吗?每个地图都要运行担心影响负担啊……
咱有个永久状态脚本,所以只要学 ...

如果你获得这个技能的方法很多,我觉得用公共事件处理是比较得当的。而且比较能够适应随时产生的变化。

其实只要加了等待处理起来负担就不会有多大,你实在担心的话就得操作开关了。
并行处理的公共事件是接受开关控制的,你只要在需要的时候打开这个开关,一定用不到的时候解除。
不过这个方法大概不能一劳永逸,是否繁琐取决于你怎么给这个技能获得的方法定位。

如果这个技能只有某一种途径获得,你在获得这个技能的事件里进行一次检测就足够了。




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