最近中文站有一个小萌新问了一个小问题,发现中文站一些人在帖子下面都回答不准确,
特地来解答一下,顺便开源这个小功能,功能比较多样:
玩家击杀(击晕)一定数量敌人后,会播放音乐,提升部队勇气,士气。也可以加入
自己想要的功能(比如回血子类的)该功能比较开放,小框架我已经搭建好了。
整合到自己mod就标明:中文站—少林寺。我直接默认同意的。我这个人比较佛系。
先去constants.py增加一个槽
slot_beat_sun_count = 0
再去mt.py增加两个公共触发器(因为有两个战场要用到)
common_kill_count = (0,0,ti_once,
[],
[
(get_player_agent_no, ":player"), #
(agent_is_alive, ":player"), #
(get_player_agent_kill_count,reg4),##记录玩家杀敌数量
(get_player_agent_kill_count,reg5,1),##记录玩家击晕数量
(val_add,reg4,reg5),##两者相加到reg4里面
(agent_set_slot,":player",slot_beat_sun_count,reg4),##记录到槽里面
]) ##设置一下开场记录玩家击杀数,方便接下来统计杀敌数量
common_kill = (0.1,0,ti_once, ##只触发一次,防止击杀一定人数后,一直触发音乐等奖励
[
(get_player_agent_no, ":player"), ##这个应该不用我说了。。。。
(agent_is_alive, ":player"), #这个也是。。。。。
(agent_get_slot,reg6,":player",slot_beat_sun_count),##获取槽,玩家已经击杀的人数,这个不能算在本局击杀人数上面
(get_player_agent_kill_count,reg4),##这个上面说了
(get_player_agent_kill_count,reg5,1),##这个也说了
(val_add,reg4,reg5),##这个也说了
(val_sub,reg4,reg6),##此时reg4已经代表玩家目前击杀数量减去槽里面记录的击杀数量就是本局击杀数量
(eq,reg4, 5), ##如果说本局击杀数量已经达到了5人就会触发执行块内容
],
[
(try_begin),
(get_player_agent_no, ":player"),##这个应该不用我说了。。。。
(assign, ":initial_courage_score", 500),
(val_add,":initial_courage_score",200),
(agent_set_slot, ":player", slot_agent_courage_score, ":initial_courage_score"), ##上面三段是设置玩家部队勇气值为500,如果击杀人数达标奖励200部队勇气
(party_get_morale, ":cur_morale", ":player"),
(val_add,":cur_morale",20),
(party_set_morale, ":player", ":cur_morale"),##跟勇气差不多奖励20部队士气
(play_sound, "snd_"),##这个是播放音乐,自己去选一个,(应该不用我顺便教一下sound吧)
(display_message,"@ok{reg6} 100 5",0x32CD32),##这个可以在奖励后显示文字,如果要显示增加几点勇气的记得要用{reg},这个才能在显示器显示数字,内容自己编吧,后面是字体颜色。
(try_end),
])
如果玩家还要增加回血等等其他奖励,可以塞在第二个触发器的执行块里面
然后去mt.py
去找一下lead_charge_ai_wagenburg的战斗场景触发器在下面增加下面两条就OK
common_kill_count,
common_kill,
去找一下lead_charge的战斗场景触发器在下面增加下面两条就OK
common_kill_count,
common_kill,
这样子你就可以在进攻或者防守的战场上使用这个功能了,要是想在村庄战斗也使用这个
那就自己找村庄战斗场景吧
对于该功能讲解:
(get_player_agent_kill_count,reg5,1),后面加个1代表玩家累计击晕数量,没有则是击杀数量
因为只能找到累计击杀数量,所以我用了槽的减法记录当局击杀数。
|