骑马与砍杀中文站论坛

 找回密码
 注册(Register!)

QQ登录

只需一步,快速开始

搜索
购买CDKEY 衣谷三国
查看: 4312|回复: 5

分享战场玩家杀敌奖励功能

[复制链接]

6

主题

40

回帖

14

积分

随仆

Rank: 1

UID
2806072
第纳尔
270
精华
0
互助
0
荣誉
0
贡献
0
魅力
0
注册时间
2017-2-10
鲜花(8) 鸡蛋(0)
发表于 2021-7-25 00:29:37 | 显示全部楼层 |阅读模式

最近中文站有一个小萌新问了一个小问题,发现中文站一些人在帖子下面都回答不准确,
特地来解答一下,顺便开源这个小功能,功能比较多样:
玩家击杀(击晕)一定数量敌人后,会播放音乐,提升部队勇气,士气。也可以加入
自己想要的功能(比如回血子类的)该功能比较开放,小框架我已经搭建好了。
整合到自己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代表玩家累计击晕数量,没有则是击杀数量

因为只能找到累计击杀数量,所以我用了槽的减法记录当局击杀数。

评分

参与人数 1第纳尔 +23 收起 理由
stevenxxy007 + 23 文章不错,继续努力!

查看全部评分

鲜花鸡蛋

只是个过路的  在2021-8-2 13:11  送朵鲜花  并说:我非常同意你的观点,送朵鲜花鼓励一下
NEW_SHIT  在2021-7-25 17:36  送朵鲜花  并说:我非常同意你的观点,送朵鲜花鼓励一下
您需要登录后才可以回帖 登录 | 注册(Register!)

本版积分规则

Archiver|手机版|小黑屋|骑马与砍杀中文站

GMT+8, 2025-9-15 03:06 , Processed in 0.096360 second(s), 21 queries , Gzip On, MemCached On.

Powered by Discuz! X3.4 Licensed

© 2001-2023 Discuz! Team.

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