- 好友
- 0
- 在线时间
- 128 小时
- 最后登录
- 2025-4-4
见习骑士

- UID
- 2758789
- 第纳尔
- 2138
- 精华
- 0
- 互助
- 21
- 荣誉
- 1
- 贡献
- 0
- 魅力
- 201
- 注册时间
- 2016-7-18
 鲜花( 24)  鸡蛋( 0)
|
简单来说就是战场离场前,拿store_agent_hit_points设置一遍英雄的生命值。一方面是处理掉进场退场后血量变成百分之几百,另一方面处理不知道咋回事急救不生效
用的时候删一下打的log
#正则表达式替换
#增加脚本
#^(?!#)(.*?)(\(finish_mission.*$)
#($1)\(call_script, "script_cf_fix_first_aid"\),$2
- ("cf_fix_first_aid",
- [
- #正则表达式替换
- #增加脚本
- #^(?!#)(.*?)(\(finish_mission.*$)
- #($1)\(call_script, "script_cf_fix_first_aid"\),$2
- (try_for_agents,":dead_agent_no" ),
- (agent_is_human,":dead_agent_no"),
- (agent_get_troop_id, ":dead_troop", ":dead_agent_no"),
- (troop_is_hero, ":dead_troop"),
- (agent_get_party_id, ":dead_agent_party", ":dead_agent_no"),
- (gt, ":dead_agent_party", -1),
- (try_begin),
- (assign,":merc_lance",":dead_agent_no"),
- (assign,reg52,":merc_lance"),
- (display_message,"@dead_agent_no {reg52}"),
- (party_get_skill_level, ":first_aid_level", ":dead_agent_party", skl_first_aid), # 获取急救等级
- (store_troop_health, ":player_start_hp", ":dead_troop",0),#损失前的生命值
- (store_agent_hit_points, ":player_end_hp", ":dead_agent_no", 1),#损失后的生命值(可能为负数)
- (store_troop_health, ":s_hp_0", ":dead_troop",0),
- (store_troop_health, ":s_hp_1", ":dead_troop",1),
- (val_mul,":s_hp_1",100),
- (store_div,":base_hp",":s_hp_1",":s_hp_0"),
- (val_mul,":player_end_hp",100),
- (val_div,":player_end_hp",":base_hp"),#把mod特殊生命值改为基于原版生命值公式的百分比生命值,用于匹配store_troop_health的数据
- (val_clamp, ":player_end_hp", 0, 10000),#损失后的生命值大于等于0
- (val_mul, ":first_aid_level", 6),
- (try_begin),
- (lt, ":player_end_hp", ":player_start_hp"),#如果回血则不做处理(需要更改,如果当前的血量百分比,高于之前的血量百分比,则将当前的血量百分比,设定为之前的血量百分比)
- (store_sub, ":result_hp", ":player_start_hp", ":player_end_hp"),
- (val_mul, ":result_hp", ":first_aid_level"),
- (val_div, ":result_hp", 100),
- (val_add, ":result_hp", ":player_end_hp"),
- (val_mul, ":result_hp", ":base_hp"),
- (val_div, ":result_hp", 100),
- (agent_set_hit_points, ":dead_agent_no", ":result_hp",1),#agent_set_hit_points的百分比,是按mod特殊血量算的
- (assign,":merc_lance",1),
- (assign,reg52,":merc_lance"),
- (display_message,"@player_start_hp {reg52}"),
- (else_try),
- #(需要更改,如果当前的血量百分比,高于之前的血量百分比,则将当前的血量百分比,设定为之前的血量百分比)
- #(troop_set_health, ":dead_troop", ":player_start_hp"),#这个好像在战场中没用
- (store_troop_health, ":player_start_hp", ":dead_troop",0),#损失前的生命值
- (try_begin),
- #(gt,":player_start_hp",100),
- (val_mul,":base_hp",":player_start_hp"),
- (val_div,":base_hp",100),
- (agent_set_hit_points, ":dead_agent_no", ":base_hp",1),
- (assign,":merc_lance",2),
- (assign,reg52,":merc_lance"),
- (display_message,"@player_start_hp {reg52}"),
- (try_end),
- (try_end),
- (store_troop_health, ":player_start_hp", ":dead_troop",1),#损失前的生命值
- (assign,":merc_lance",":player_start_hp"),
- (assign,reg52,":merc_lance"),
- (display_message,"@player_start_hp {reg52}"),
- (store_agent_hit_points, ":player_end_hp", ":dead_agent_no", 1),#损失后的生命值(可能为负数)
- (val_clamp, ":player_end_hp", 0, 10000),#损失后的生命值大于等于0
- (assign,":merc_lance",":player_end_hp"),
- (assign,reg52,":merc_lance"),
- (display_message,"@player_end_hp {reg52}"),
- (try_end),
- (try_end),
- ]),
复制代码
|
|