骑马与砍杀中文站论坛

 找回密码
 注册(Register!)

QQ登录

只需一步,快速开始

搜索
购买CDKEY 衣谷三国
查看: 2759|回复: 14

[功能与代码] 玩家阵亡附魂战斗(py代码)

[复制链接]

30

主题

267

回帖

274

积分

见习骑士

Rank: 3

UID
3225805
第纳尔
1399
精华
0
互助
37
荣誉
0
贡献
0
魅力
259
注册时间
2021-3-14
鲜花(53) 鸡蛋(0)
发表于 2025-5-25 04:39:48 | 显示全部楼层 |阅读模式
本帖最后由 快乐风猫 于 2025-6-16 14:31 编辑

类似于AD1257的附魂,但我目前还没有找到什么方法可以不切屏直接控制场上的agent或troop,所以需要牺牲士兵来继承重生。


类容:玩家被击晕后选取一个士兵继承他的装备继续战斗,只检测玩家自己部队的士兵,盟军排除再外,玩家的人死完了就结束了,不能去操纵盟军这应该很河狸吧


先放代码后续继续完善 ,已经算是简洁的新手代码了,保姆级注释! 这排版真麻烦




module_mission_templates里添加两个新的触发器
  1. #新的战败检测触发器
  2. common_detect_conditions_battle_failure = (
  3.   1, 4, 0,
  4.   [
  5.     (main_hero_fallen),
  6.     (assign, ":youjun", 0), #开始计算我军
  7.     (try_for_agents, ":agent_no"),
  8.     (agent_is_human, ":agent_no"),
  9.     (agent_is_alive,":agent_no"),
  10.     (agent_is_ally, ":agent_no"),
  11.     (agent_get_party_id, ":agent_party", ":agent_no"),
  12.     (eq, ":agent_party", "p_main_party"), #只计算玩家直系部队
  13.     (val_add, ":youjun", 1), #还有剩余的我军
  14.    (try_end),
  15.     (eq, ":youjun", 0), #场内玩家和玩家部队的士兵全部阵亡
  16.     ],
  17.   [
  18.     (str_store_string, s5, "str_retreat"),
  19.     (call_script, "script_simulate_retreat", 10, 20, 1),
  20.     (assign, "$g_battle_result", -1),
  21.     (set_mission_result,-1),
  22.     (call_script, "script_count_mission_casualties_from_agents"),
  23.     (finish_mission,0),
  24.     ])



  25. #重生触发器
  26. common_death_rebirth = (
  27.   1, 3, 0, [(main_hero_fallen),],
  28.   [
  29.     (get_player_agent_no, ":player_agent"),
  30.     (agent_get_team, ":player_team", ":player_agent"),
  31.    
  32.     #开始寻找适合的agent
  33.     (assign, ":new_agent", -1),
  34.     (try_for_agents, ":agent_no"),
  35.     (neq, ":agent_no", ":player_agent"),
  36.     (agent_is_human, ":agent_no"),
  37.     (agent_is_alive, ":agent_no"),
  38.     (agent_is_ally, ":agent_no"),
  39.    
  40.     #双重过滤  过滤玩家组和部队
  41.     (agent_get_team, ":agent_team", ":agent_no"),
  42.     (eq, ":agent_team", ":player_team"),
  43.     (agent_get_party_id, ":agent_party", ":agent_no"),
  44.     (eq, ":agent_party", "p_main_party"),
  45.     (assign, ":new_agent", ":agent_no"), #记录选中的agent
  46.    (try_end),
  47.    
  48.     #有存活的士兵才进行下一步
  49.     (gt, ":new_agent", 0),
  50.    
  51.    (try_begin),
  52.     (set_show_messages, 0),
  53.    
  54.     #清空玩家的所有装备
  55.     (troop_get_inventory_capacity, ":inv_size", "trp_player"),
  56.     (try_for_range, ":i_slot", 0, ":inv_size"),
  57.     (troop_get_inventory_slot, ":all_item", "trp_player", ":i_slot"),
  58.     (gt, ":all_item", 0),
  59.     (troop_remove_item, "trp_player", ":all_item"),
  60.    (try_end),
  61.    
  62.     #继承agent的装备(只继承武器装备,马匹除外)
  63.     (try_for_range, ":slot", 0, 8),
  64.     (agent_get_item_slot, ":item_id", ":new_agent", ":slot"),
  65.     (gt, ":item_id", 0),
  66.     (troop_add_item, "trp_player", ":item_id"),
  67.     (troop_equip_items, "trp_player"),
  68.    (try_end),
  69.    
  70. #分开处理步兵和骑兵方便处理玩家重生兵种

  71.     #如果agent是骑兵,继承agent的马匹
  72.    (try_begin),
  73.     (agent_get_horse, ":horse", ":new_agent"),
  74.     (gt, ":horse", 0),
  75.     (agent_get_item_id, ":horse_id", ":horse"),
  76.     (gt, ":horse_id", 0),
  77.     (troop_add_item, "trp_player", ":horse_id"),
  78.     (troop_equip_items, "trp_player"),
  79.    (try_end),
  80.    
  81.    #开始重生玩家
  82.    (try_begin),
  83.     (gt, ":horse",0), #骑兵agent处理
  84.     (agent_get_position, pos1, ":new_agent"),
  85.     (set_spawn_position, pos1),
  86.     (agent_get_position, pos2, ":new_agent"),
  87.     (position_move_y, pos2, 999999),
  88.     (agent_set_position, ":horse", pos2),
  89.     (spawn_agent, "trp_player"),
  90.    (else_try),
  91.     (agent_get_position, pos1, ":new_agent"), #步兵agent处理
  92.     (set_spawn_position, pos1),
  93.     (agent_get_position, pos2, ":new_agent"),
  94.     (position_move_y, pos2, 999999),
  95.     (agent_set_position, ":new_agent", pos2),
  96.     (spawn_agent, "trp_player"),
  97.    (try_end),
  98.    
  99.     #继承agent的血量
  100.     (store_agent_hit_points, ":agent_hp", ":new_agent", 0),
  101.     (agent_set_hit_points, reg0, ":agent_hp", 0),
  102.    
  103.     #标记玩家agent(用于统计伤亡信息)
  104.     (agent_set_slot, reg0, slot_agent_troop, 1),
  105.    
  106.     #继承agent的组并操纵玩家
  107.     (agent_set_team, reg0, ":agent_team"),
  108.     (set_player_troop, "trp_player"),        
  109.    
  110.     #移除这个agent(防止循环重复)
  111.     (remove_agent, ":new_agent"),
  112.    
  113.     (set_show_messages, 1),
  114.    (try_end),
  115.   ])
复制代码



查找所有这个检测战败的源代码
(1, 4, ti_once, [(main_hero_fallen)],
          [
              (assign, "$pin_player_fallen", 1),
              (str_store_string, s5, "str_retreat"),
              (call_script, "script_simulate_retreat", 10, 20, 1),
              (assign, "$g_battle_result", -1),
              (set_mission_result,-1),
              (call_script, "script_count_mission_casualties_from_agents"),
              (finish_mission,0)]),
全部替换成
  1. common_detect_conditions_battle_failure,
  2. common_death_rebirth,
复制代码



继续查找common_siege_check_defeat_condition = (   替换整个触发器
  1. #修改围攻检测失败触发器
  2. common_siege_check_defeat_condition = (
  3.   1, 4, ti_once,
  4.   [
  5.     (main_hero_fallen),
  6.     (assign, ":youjun", 0), #开始计算我军
  7.     (try_for_agents, ":agent_no"),
  8.     (agent_is_human, ":agent_no"),
  9.     (agent_is_alive,":agent_no"),
  10.     (agent_get_party_id, ":agent_party", ":agent_no"),
  11.     (eq, ":agent_party", "p_main_party"), #只计算玩家直系部队
  12.     (val_add, ":youjun", 1), #还有活着的我军士兵或者玩家
  13.    (try_end),
  14.     (eq, ":youjun", 0), #场内玩家和玩家部队士兵全部阵亡
  15.     ],
  16.   [
  17.     (assign, "$pin_player_fallen", 1),
  18.     (get_player_agent_no, ":player_agent"),
  19.     (agent_get_team, ":agent_team", ":player_agent"),
  20.     (try_begin),
  21.       (neq, "$attacker_team", ":agent_team"),
  22.       (neq, "$attacker_team_2", ":agent_team"),
  23.       (str_store_string, s5, "str_siege_continues"),
  24.       (call_script, "script_simulate_retreat", 8, 15, 0),
  25.     (else_try),
  26.       (str_store_string, s5, "str_retreat"),
  27.       (call_script, "script_simulate_retreat", 5, 20, 0),
  28.     (try_end),
  29.     (assign, "$g_battle_result", -1),
  30.     (set_mission_result,-1),
  31.     (call_script, "script_count_mission_casualties_from_agents"),
  32.     (finish_mission,0),
  33.     ])
复制代码



查找common_siege_check_defeat_condition, 在下面挨着添加
  1. common_death_rebirth,
复制代码


  1. 一个新的slot槽    slot_agent_troop       = 29
复制代码



module_scripts查找#count and save killed agents in player party, ally parties and enemy parties  把下面的替换成
  1. #count and save killed agents in player party, ally parties and enemy parties
  2.        (neg|agent_is_alive, ":cur_agent"),
  3.        (agent_get_troop_id, ":agent_troop_id", ":cur_agent"),
  4.        (try_begin),
  5.          (eq, ":agent_party", "p_main_party"),
  6.          (neg|agent_slot_eq, ":cur_agent", slot_agent_troop, 1),#过滤玩家重生agent不分配伤亡
  7.          (party_add_members, "p_player_casualties", ":agent_troop_id", 1),
  8.          (try_begin),
  9.            (agent_is_wounded, ":cur_agent"),
  10.            (neg|agent_slot_eq, ":cur_agent", slot_agent_troop, 1), #过滤玩家重生agent不分配伤亡
  11.            (party_wound_members, "p_player_casualties", ":agent_troop_id", 1),
  12.          (try_end),
  13.        (else_try),
  14.          (agent_is_ally, ":cur_agent"),
  15.          (neg|agent_slot_eq, ":cur_agent", slot_agent_troop, 1),#过滤玩家重生agent不分配伤亡
  16.          (party_add_members, "p_ally_casualties", ":agent_troop_id", 1),
  17.          (try_begin),
  18.            (agent_is_wounded, ":cur_agent"),
  19.          (neg|agent_slot_eq, ":cur_agent", slot_agent_troop, 1),#过滤玩家重生agent不分配伤亡
  20.            (party_wound_members, "p_ally_casualties", ":agent_troop_id", 1),
  21.          (try_end),
  22.        (else_try),
  23.          (neg|agent_slot_eq, ":cur_agent", slot_agent_troop, 1),#过滤玩家重生agent不分配伤亡
  24.          (party_add_members, "p_enemy_casualties", ":agent_troop_id", 1),
  25.          (try_begin),
  26.            (agent_is_wounded, ":cur_agent"),
  27.          (neg|agent_slot_eq, ":cur_agent", slot_agent_troop, 1),#过滤玩家重生agent不分配伤亡
  28.            (party_wound_members, "p_enemy_casualties", ":agent_troop_id", 1),
  29.          (try_end),
  30.        (try_end),
  31.      (try_end),
  32.      ]),
复制代码


补上继承/还原属性、技能、熟练度的东西吧,继承名字/性别也是同样的方法,先储存再使用最后还原,用法都是一样的,但是必须在spawn玩家之前操作这些东西,弊端是触发附魂后不要按C打开角色栏加点,会被吃点
  1. #储存玩家属性/技能/熟练度
  2.   ("save_initial_values",
  3.    [
  4.       (try_begin),
  5.         (store_skill_level, ":skill_id", "skl_ironflesh", "trp_player"),
  6.         (assign, "$g_player_initial_skill_ironflesh", ":skill_id"),

  7.         (store_skill_level, ":skill_id", "skl_power_strike", "trp_player"),
  8.         (assign, "$g_player_initial_skill_power_strike", ":skill_id"),

  9.         (store_skill_level, ":skill_id", "skl_power_throw", "trp_player"),
  10.         (assign, "$g_player_initial_skill_power_throw", ":skill_id"),

  11.         (store_skill_level, ":skill_id", "skl_power_draw", "trp_player"),
  12.         (assign, "$g_player_initial_skill_power_draw", ":skill_id"),

  13.         (store_skill_level, ":skill_id", "skl_shield", "trp_player"),
  14.         (assign, "$g_player_initial_skill_shield", ":skill_id"),

  15.         (store_skill_level, ":skill_id", "skl_riding", "trp_player"),
  16.         (assign, "$g_player_initial_skill_riding", ":skill_id"),

  17.         (store_skill_level, ":skill_id", "skl_athletics", "trp_player"),
  18.         (assign, "$g_player_initial_skill_athletics", ":skill_id"),

  19.         (store_skill_level, ":skill_id", "skl_horse_archery", "trp_player"),
  20.         (assign, "$g_player_initial_skill_horse_archery", ":skill_id"),
  21.       (try_end),
  22.    
  23.     # 保存武器熟练度
  24.    (try_begin),
  25.     (store_proficiency_level, ":current", "trp_player", wpt_one_handed_weapon),
  26.     (assign, "$g_player_initial_proficiency_one_handed", ":current"),
  27.    
  28.     (store_proficiency_level, ":current", "trp_player", wpt_two_handed_weapon),
  29.     (assign, "$g_player_initial_proficiency_two_handed", ":current"),
  30.    
  31.     (store_proficiency_level, ":current", "trp_player", wpt_polearm),
  32.     (assign, "$g_player_initial_proficiency_polearm", ":current"),
  33.    
  34.     (store_proficiency_level, ":current", "trp_player", wpt_archery),
  35.     (assign, "$g_player_initial_proficiency_archery", ":current"),
  36.    
  37.     (store_proficiency_level, ":current", "trp_player", wpt_crossbow),
  38.     (assign, "$g_player_initial_proficiency_crossbow", ":current"),
  39.    
  40.     (store_proficiency_level, ":current", "trp_player", wpt_throwing),
  41.     (assign, "$g_player_initial_proficiency_throwing", ":current"),
  42.    (try_end),
  43.    
  44.    (try_begin),
  45.      # 力量 (ca_strength)
  46.     (store_attribute_level, ":current", "trp_player", ca_strength),
  47.     (assign, "$g_player_initial_attr_strength", ":current"),
  48.    
  49.     # 敏捷 (ca_agility)
  50.     (store_attribute_level, ":current", "trp_player", ca_agility),
  51.     (assign, "$g_player_initial_attr_agility", ":current"),
  52.    
  53.     # 智力 (ca_intelligence)
  54.     (store_attribute_level, ":current", "trp_player", ca_intelligence),
  55.     (assign, "$g_player_initial_attr_intelligence", ":current"),
  56.    
  57.     # 魅力 (ca_charisma)
  58.     (store_attribute_level, ":current", "trp_player", ca_charisma),
  59.     (assign, "$g_player_initial_attr_charisma", ":current"),
  60.    (try_end),
  61.   ]),
  62.   
  63.   
  64.   
  65. #继承兵种属性/技能/熟练度
  66.   ("inherit_troop_values",
  67.   [
  68.     (store_script_param_1, ":troop_no"),  # 目标兵种ID
  69.    
  70.    (try_begin),
  71.     (store_skill_level, ":skill_id", "skl_ironflesh", "trp_player"),
  72.     (store_skill_level, ":skill_troop", "skl_ironflesh", ":troop_no"),
  73.     (store_sub, ":initial_value", 0, ":skill_id"),
  74.     (troop_raise_skill, "trp_player", "skl_ironflesh", ":initial_value"),
  75.     (troop_raise_skill, "trp_player", "skl_ironflesh", ":skill_troop"),
  76.    
  77.     (store_skill_level, ":skill_id", "skl_power_strike", "trp_player"),
  78.     (store_skill_level, ":skill_troop", "skl_power_strike", ":troop_no"),
  79.     (store_sub, ":initial_value", 0, ":skill_id"),
  80.     (troop_raise_skill, "trp_player", "skl_power_strike", ":initial_value"),
  81.     (troop_raise_skill, "trp_player", "skl_power_strike", ":skill_troop"),

  82.     (store_skill_level, ":skill_id", "skl_power_throw", "trp_player"),
  83.     (store_skill_level, ":skill_troop", "skl_power_throw", ":troop_no"),
  84.     (store_sub, ":initial_value", 0, ":skill_id"),
  85.     (troop_raise_skill, "trp_player", "skl_power_throw", ":initial_value"),
  86.     (troop_raise_skill, "trp_player", "skl_power_throw", ":skill_troop"),

  87.     (store_skill_level, ":skill_id", "skl_power_draw", "trp_player"),
  88.     (store_skill_level, ":skill_troop", "skl_power_draw", ":troop_no"),
  89.     (store_sub, ":initial_value", 0, ":skill_id"),
  90.     (troop_raise_skill, "trp_player", "skl_power_draw", ":initial_value"),
  91.     (troop_raise_skill, "trp_player", "skl_power_draw", ":skill_troop"),

  92.     (store_skill_level, ":skill_id", "skl_shield", "trp_player"),
  93.     (store_skill_level, ":skill_troop", "skl_shield", ":troop_no"),
  94.     (store_sub, ":initial_value", 0, ":skill_id"),
  95.     (troop_raise_skill, "trp_player", "skl_shield", ":initial_value"),
  96.     (troop_raise_skill, "trp_player", "skl_shield", ":skill_troop"),

  97.     (store_skill_level, ":skill_id", "skl_riding", "trp_player"),
  98.     (store_skill_level, ":skill_troop", "skl_riding", ":troop_no"),
  99.     (store_sub, ":initial_value", 0, ":skill_id"),
  100.     (troop_raise_skill, "trp_player", "skl_riding", ":initial_value"),
  101.     (troop_raise_skill, "trp_player", "skl_riding", ":skill_troop"),

  102.     (store_skill_level, ":skill_id", "skl_athletics", "trp_player"),
  103.     (store_skill_level, ":skill_troop", "skl_athletics", ":troop_no"),
  104.     (store_sub, ":initial_value", 0, ":skill_id"),
  105.     (troop_raise_skill, "trp_player", "skl_athletics", ":initial_value"),
  106.     (troop_raise_skill, "trp_player", "skl_athletics", ":skill_troop"),

  107.     (store_skill_level, ":skill_id", "skl_horse_archery", "trp_player"),
  108.     (store_skill_level, ":skill_troop", "skl_horse_archery", ":troop_no"),
  109.     (store_sub, ":initial_value", 0, ":skill_id"),
  110.     (troop_raise_skill, "trp_player", "skl_horse_archery", ":initial_value"),
  111.     (troop_raise_skill, "trp_player", "skl_horse_archery", ":skill_troop"),
  112.    (try_end),
  113.    
  114.    (try_begin),
  115.     (store_proficiency_level, ":troop_current", ":troop_no", wpt_one_handed_weapon),
  116.     (store_proficiency_level, ":current", "trp_player", wpt_one_handed_weapon),
  117.     (store_sub, ":initial_value", 0, ":current"),
  118.     (troop_raise_proficiency_linear, "trp_player", wpt_one_handed_weapon, ":initial_value"),
  119.     (troop_raise_proficiency_linear, "trp_player", wpt_one_handed_weapon, ":troop_current"),
  120.    
  121.     (store_proficiency_level, ":troop_current", ":troop_no", wpt_two_handed_weapon),
  122.     (store_proficiency_level, ":current", "trp_player", wpt_two_handed_weapon),
  123.     (store_sub, ":initial_value", 0, ":current"),
  124.     (troop_raise_proficiency_linear, "trp_player", wpt_two_handed_weapon, ":initial_value"),
  125.     (troop_raise_proficiency_linear, "trp_player", wpt_two_handed_weapon, ":troop_current"),
  126.    
  127.     (store_proficiency_level, ":troop_current", ":troop_no", wpt_polearm),
  128.     (store_proficiency_level, ":current", "trp_player", wpt_polearm),
  129.     (store_sub, ":initial_value", 0, ":current"),
  130.     (troop_raise_proficiency_linear, "trp_player", wpt_polearm, ":initial_value"),
  131.     (troop_raise_proficiency_linear, "trp_player", wpt_polearm, ":troop_current"),
  132.    
  133.     (store_proficiency_level, ":troop_current", ":troop_no", wpt_archery),
  134.     (store_proficiency_level, ":current", "trp_player", wpt_archery),
  135.     (store_sub, ":initial_value", 0, ":current"),
  136.     (troop_raise_proficiency_linear, "trp_player", wpt_archery, ":initial_value"),
  137.     (troop_raise_proficiency_linear, "trp_player", wpt_archery, ":troop_current"),
  138.    
  139.     (store_proficiency_level, ":troop_current", ":troop_no", wpt_crossbow),
  140.     (store_proficiency_level, ":current", "trp_player", wpt_crossbow),
  141.     (store_sub, ":initial_value", 0, ":current"),
  142.     (troop_raise_proficiency_linear, "trp_player", wpt_crossbow, ":initial_value"),
  143.     (troop_raise_proficiency_linear, "trp_player", wpt_crossbow, ":troop_current"),
  144.    
  145.     (store_proficiency_level, ":troop_current", ":troop_no", wpt_throwing),
  146.     (store_proficiency_level, ":current", "trp_player", wpt_throwing),
  147.     (store_sub, ":initial_value", 0, ":current"),
  148.     (troop_raise_proficiency_linear, "trp_player", wpt_throwing, ":initial_value"),
  149.     (troop_raise_proficiency_linear, "trp_player", wpt_throwing, ":troop_current"),
  150.    (try_end),
  151.    
  152.    (try_begin),
  153.      # 力量 (ca_strength)
  154.     (store_attribute_level, ":current", "trp_player", ca_strength),
  155.     (store_attribute_level, ":troop_current", ":troop_no", ca_strength),
  156.     (store_sub, ":initial_value", 0, ":current"),
  157.     (troop_raise_attribute, "trp_player", ca_strength, ":initial_value"),
  158.     (troop_raise_attribute, "trp_player", ca_strength, ":troop_current"),
  159.    
  160.     # 敏捷 (ca_agility)
  161.     (store_attribute_level, ":current", "trp_player", ca_agility),
  162.     (store_attribute_level, ":troop_current", ":troop_no", ca_agility),
  163.     (store_sub, ":initial_value", 0, ":current"),
  164.     (troop_raise_attribute, "trp_player", ca_agility, ":initial_value"),
  165.     (troop_raise_attribute, "trp_player", ca_agility, ":troop_current"),
  166.    
  167.     # 智力 (ca_intelligence)
  168.     (store_attribute_level, ":current", "trp_player", ca_intelligence),
  169.     (store_attribute_level, ":troop_current", ":troop_no", ca_intelligence),
  170.     (store_sub, ":initial_value", 0, ":current"),
  171.     (troop_raise_attribute, "trp_player", ca_intelligence, ":initial_value"),
  172.     (troop_raise_attribute, "trp_player", ca_intelligence, ":troop_current"),
  173.    
  174.     # 魅力 (ca_charisma)
  175.     (store_attribute_level, ":current", "trp_player", ca_charisma),
  176.     (store_attribute_level, ":troop_current", ":troop_no", ca_charisma),
  177.     (store_sub, ":initial_value", 0, ":current"),
  178.     (troop_raise_attribute, "trp_player", ca_charisma, ":initial_value"),
  179.     (troop_raise_attribute, "trp_player", ca_charisma, ":troop_current"),
  180.    (try_end),
  181.    
  182.   ]),
  183.   
  184.   
  185.   
  186. #恢复玩家属性/技能/熟练度
  187.   ("restore_initial_values",
  188.   [
  189.    (try_begin),
  190.     (store_skill_level, ":skill_id", "skl_ironflesh", "trp_player"),
  191.     (store_sub, ":initial_value", 0, ":skill_id"),
  192.     (troop_raise_skill, "trp_player", "skl_ironflesh", ":initial_value"),
  193.     (troop_raise_skill, "trp_player", "skl_ironflesh", "$g_player_initial_skill_ironflesh"),
  194.    
  195.     (store_skill_level, ":skill_id", "skl_power_strike", "trp_player"),
  196.     (store_sub, ":initial_value", 0, ":skill_id"),
  197.     (troop_raise_skill, "trp_player", "skl_power_strike", ":initial_value"),
  198.     (troop_raise_skill, "trp_player", "skl_power_strike", "$g_player_initial_skill_power_strike"),
  199.    
  200.     (store_skill_level, ":skill_id", "skl_power_throw", "trp_player"),
  201.     (store_sub, ":initial_value", 0, ":skill_id"),
  202.     (troop_raise_skill, "trp_player", "skl_power_throw", ":initial_value"),
  203.     (troop_raise_skill, "trp_player", "skl_power_throw", "$g_player_initial_skill_power_throw"),
  204.    
  205.     (store_skill_level, ":skill_id", "skl_power_draw", "trp_player"),
  206.     (store_sub, ":initial_value", 0, ":skill_id"),
  207.     (troop_raise_skill, "trp_player", "skl_power_draw", ":initial_value"),
  208.     (troop_raise_skill, "trp_player", "skl_power_draw", "$g_player_initial_skill_power_draw"),
  209.    
  210.     (store_skill_level, ":skill_id", "skl_shield", "trp_player"),
  211.     (store_sub, ":initial_value", 0, ":skill_id"),
  212.     (troop_raise_skill, "trp_player", "skl_shield", ":initial_value"),
  213.     (troop_raise_skill, "trp_player", "skl_shield", "$g_player_initial_skill_shield"),
  214.    
  215.     (store_skill_level, ":skill_id", "skl_riding", "trp_player"),
  216.     (store_sub, ":initial_value", 0, ":skill_id"),
  217.     (troop_raise_skill, "trp_player", "skl_riding", ":initial_value"),
  218.     (troop_raise_skill, "trp_player", "skl_riding", "$g_player_initial_skill_riding"),
  219.    
  220.     (store_skill_level, ":skill_id", "skl_athletics", "trp_player"),
  221.     (store_sub, ":initial_value", 0, ":skill_id"),
  222.     (troop_raise_skill, "trp_player", "skl_athletics", ":initial_value"),
  223.     (troop_raise_skill, "trp_player", "skl_athletics", "$g_player_initial_skill_athletics"),
  224.    
  225.     (store_skill_level, ":skill_id", "skl_horse_archery", "trp_player"),
  226.     (store_sub, ":initial_value", 0, ":skill_id"),
  227.     (troop_raise_skill, "trp_player", "skl_horse_archery", ":initial_value"),
  228.     (troop_raise_skill, "trp_player", "skl_horse_archery", "$g_player_initial_skill_horse_archery"),
  229.    (try_end),
  230.    
  231.    (try_begin),
  232.     (store_proficiency_level, ":current", "trp_player", wpt_one_handed_weapon),
  233.     (store_sub, ":initial_value", 0, ":current"),
  234.     (troop_raise_proficiency_linear, "trp_player", wpt_one_handed_weapon, ":initial_value"),
  235.     (troop_raise_proficiency_linear, "trp_player", wpt_one_handed_weapon, "$g_player_initial_proficiency_one_handed"),
  236.    
  237.     (store_proficiency_level, ":current", "trp_player", wpt_two_handed_weapon),
  238.     (store_sub, ":initial_value", 0, ":current"),
  239.     (troop_raise_proficiency_linear, "trp_player", wpt_two_handed_weapon, ":initial_value"),
  240.     (troop_raise_proficiency_linear, "trp_player", wpt_two_handed_weapon, "$g_player_initial_proficiency_two_handed"),
  241.         
  242.     (store_proficiency_level, ":current", "trp_player", wpt_polearm),
  243.     (store_sub, ":initial_value", 0, ":current"),
  244.     (troop_raise_proficiency_linear, "trp_player", wpt_polearm, ":initial_value"),
  245.     (troop_raise_proficiency_linear, "trp_player", wpt_polearm, "$g_player_initial_proficiency_polearm"),
  246.         
  247.     (store_proficiency_level, ":current", "trp_player", wpt_archery),
  248.     (store_sub, ":initial_value", 0, ":current"),
  249.     (troop_raise_proficiency_linear, "trp_player", wpt_archery, ":initial_value"),
  250.     (troop_raise_proficiency_linear, "trp_player", wpt_archery, "$g_player_initial_proficiency_archery"),
  251.         
  252.     (store_proficiency_level, ":current", "trp_player", wpt_crossbow),
  253.     (store_sub, ":initial_value", 0, ":current"),
  254.     (troop_raise_proficiency_linear, "trp_player", wpt_crossbow, ":initial_value"),
  255.     (troop_raise_proficiency_linear, "trp_player", wpt_crossbow, "$g_player_initial_proficiency_crossbow"),
  256.         
  257.     (store_proficiency_level, ":current", "trp_player", wpt_throwing),
  258.     (store_sub, ":initial_value", 0, ":current"),
  259.     (troop_raise_proficiency_linear, "trp_player", wpt_throwing, ":initial_value"),
  260.     (troop_raise_proficiency_linear, "trp_player", wpt_throwing, "$g_player_initial_proficiency_throwing"),
  261.    (try_end),
  262.    
  263.    (try_begin),
  264.      # 力量 (ca_strength)
  265.     (store_attribute_level, ":current", "trp_player", ca_strength),
  266.     (store_sub, ":initial_value", 0, ":current"),
  267.     (troop_raise_attribute, "trp_player", ca_strength, ":initial_value"),
  268.     (troop_raise_attribute, "trp_player", ca_strength, "$g_player_initial_attr_strength"),
  269.    
  270.     # 敏捷 (ca_agility)
  271.     (store_attribute_level, ":current", "trp_player", ca_agility),
  272.     (store_sub, ":initial_value", 0, ":current"),
  273.     (troop_raise_attribute, "trp_player", ca_agility, ":initial_value"),
  274.     (troop_raise_attribute, "trp_player", ca_agility, "$g_player_initial_attr_agility"),
  275.    
  276.     # 智力 (ca_intelligence)
  277.     (store_attribute_level, ":current", "trp_player", ca_intelligence),
  278.     (store_sub, ":initial_value", 0, ":current"),
  279.     (troop_raise_attribute, "trp_player", ca_intelligence, ":initial_value"),
  280.     (troop_raise_attribute, "trp_player", ca_intelligence, "$g_player_initial_attr_intelligence"),
  281.    
  282.     # 魅力 (ca_charisma)
  283.     (store_attribute_level, ":current", "trp_player", ca_charisma),
  284.     (store_sub, ":initial_value", 0, ":current"),
  285.     (troop_raise_attribute, "trp_player", ca_charisma, ":initial_value"),
  286.     (troop_raise_attribute, "trp_player", ca_charisma, "$g_player_initial_attr_charisma"),
  287.    (try_end),
  288.    
  289.   ]),
复制代码

评分

参与人数 1魅力 +1 收起 理由
英勇的苹果 + 1 保姆级注释好评!

查看全部评分

鲜花鸡蛋

路见不平拔刀侠  在2025-6-10 21:38  送朵鲜花  并说:我非常同意你的观点,送朵鲜花鼓励一下
英勇的苹果  在2025-5-26 10:21  送朵鲜花  并说:保姆级注释好评!

5

主题

3023

回帖

943

积分

骑士

Rank: 4Rank: 4

UID
86936
第纳尔
12666
精华
0
互助
5
荣誉
1
贡献
0
魅力
71
注册时间
2008-8-10

原版正版勋章战团正版勋章元老骑士勋章汉匈决战正版勋章维京征服正版勋章霸主正版勋章

鲜花(65) 鸡蛋(1)
发表于 2025-5-26 10:21:24 | 显示全部楼层
感谢大佬分享,保姆级注释好评!

鲜花鸡蛋

快乐风猫  在2025-5-26 10:50  送朵鲜花  并说:我非常同意你的观点,送朵鲜花鼓励一下

18

主题

689

回帖

377

积分

见习骑士

Rank: 3

UID
3102512
第纳尔
2430
精华
0
互助
33
荣誉
0
贡献
0
魅力
84
注册时间
2019-9-6

骑砍中文站APP会员勋章战团正版勋章霸主正版勋章

鲜花(62) 鸡蛋(0)
发表于 2025-5-26 10:27:32 来自手机 | 显示全部楼层
那为啥不用no death knock down呢来自: Android客户端

30

主题

267

回帖

274

积分

见习骑士

Rank: 3

UID
3225805
第纳尔
1399
精华
0
互助
37
荣誉
0
贡献
0
魅力
259
注册时间
2021-3-14
鲜花(53) 鸡蛋(0)
 楼主| 发表于 2025-5-26 10:49:18 | 显示全部楼层
本帖最后由 快乐风猫 于 2025-5-26 10:53 编辑
huagao 发表于 2025-5-26 10:27
那为啥不用no death knock down呢

agent_set_no_death_knock_down_only用于单纯的复活重生玩家最合适,不用计算伤亡次数,倒地就起,但类似附魂的效果,我找不到直接控制agent的方法,只能移除agent来继承,还是觉得set_player_troop比较合适,毕竟要直观的体现出玩家挂了,哎我又继续操控斯瓦迪亚新兵开始干了

18

主题

689

回帖

377

积分

见习骑士

Rank: 3

UID
3102512
第纳尔
2430
精华
0
互助
33
荣誉
0
贡献
0
魅力
84
注册时间
2019-9-6

骑砍中文站APP会员勋章战团正版勋章霸主正版勋章

鲜花(62) 鸡蛋(0)
发表于 2025-5-26 16:38:41 来自手机 | 显示全部楼层
快乐风猫 发表于 2025-5-26 10:49
agent_set_no_death_knock_down_only用于单纯的复活重生玩家最合适,不用计算伤亡次数,倒地就起 ...

噢噢,水浒读心术啊来自: Android客户端

30

主题

267

回帖

274

积分

见习骑士

Rank: 3

UID
3225805
第纳尔
1399
精华
0
互助
37
荣誉
0
贡献
0
魅力
259
注册时间
2021-3-14
鲜花(53) 鸡蛋(0)
 楼主| 发表于 2025-5-26 16:43:06 | 显示全部楼层
huagao 发表于 2025-5-26 16:38
噢噢,水浒读心术啊

啥读心术??我没玩过水浒

18

主题

689

回帖

377

积分

见习骑士

Rank: 3

UID
3102512
第纳尔
2430
精华
0
互助
33
荣誉
0
贡献
0
魅力
84
注册时间
2019-9-6

骑砍中文站APP会员勋章战团正版勋章霸主正版勋章

鲜花(62) 鸡蛋(0)
发表于 2025-5-26 17:28:37 来自手机 | 显示全部楼层
和你的大差不差,玩家死了以后直接set player troop来自: Android客户端

232

主题

3065

回帖

1629

积分

骑士长

中级译典官

Rank: 5Rank: 5Rank: 5

UID
2572488
第纳尔
4642
精华
0
互助
122
荣誉
3
贡献
355
魅力
306
注册时间
2015-8-1

骑砍中文站APP会员勋章原版正版勋章战团正版勋章火与剑正版勋章拿破仑正版勋章维京征服正版勋章汉匈决战正版勋章霸主正版勋章骑士美德之英勇勋章[杰出会员活跃勋章]骑士美德之仁慈勋章[杰出会员互助勋章]骑士美德之奉献勋章元老骑士勋章丝绸之路勋章

QQ
鲜花(424) 鸡蛋(200)
发表于 2025-5-26 17:29:26 来自手机 | 显示全部楼层
好东西,牛来自: iPhone客户端

鲜花鸡蛋

快乐风猫  在2025-6-5 11:42  送朵鲜花  并说:谢谢

30

主题

267

回帖

274

积分

见习骑士

Rank: 3

UID
3225805
第纳尔
1399
精华
0
互助
37
荣誉
0
贡献
0
魅力
259
注册时间
2021-3-14
鲜花(53) 鸡蛋(0)
 楼主| 发表于 2025-5-26 17:35:11 | 显示全部楼层
huagao 发表于 2025-5-26 17:28
和你的大差不差,玩家死了以后直接set player troop

这玩意儿思路都差不多,只能这么实现了主要是,不知道AD1257那个是哪种,看过他的源码,但是没找到

14

主题

83

回帖

49

积分

扈从

Rank: 2Rank: 2

UID
3476407
第纳尔
9
精华
0
互助
4
荣誉
0
贡献
0
魅力
12
注册时间
2023-1-17
鲜花(7) 鸡蛋(0)
发表于 2025-6-10 21:38:12 | 显示全部楼层
感谢大佬的分享!我发现阵亡附体不会继承agent的性别就自己加上了下面这一段

    (try_begin),
        (agent_get_troop_id, ":agent_troop", ":new_agent"),
        (troop_get_type, ":agent_gender", ":agent_troop"),
        (troop_set_type, "trp_player", ":agent_gender"),
    (try_end),

但随之而来有个新问题,战斗结束后玩家的性别依旧是附体后ai的 。目前我的解决方法是需要在开战前保存玩家性别,战斗结束后恢复性别。
我要一直听同花顺,直到我的人生一帆风顺

30

主题

267

回帖

274

积分

见习骑士

Rank: 3

UID
3225805
第纳尔
1399
精华
0
互助
37
荣誉
0
贡献
0
魅力
259
注册时间
2021-3-14
鲜花(53) 鸡蛋(0)
 楼主| 发表于 2025-6-10 23:30:10 | 显示全部楼层
路见不平拔刀侠 发表于 2025-6-10 21:38
感谢大佬的分享!我发现阵亡附体不会继承agent的性别就自己加上了下面这一段

    (try_begin),

性别、面部代码、兵种名称这些东西,就开战前或者开局后储存一次,战斗结束后马上恢复,挺麻烦的,懒得加,自己DIY吧

22

主题

123

回帖

59

积分

扈从

Rank: 2Rank: 2

UID
3084588
第纳尔
68
精华
0
互助
3
荣誉
0
贡献
0
魅力
1
注册时间
2019-6-29
鲜花(8) 鸡蛋(0)
发表于 2025-6-13 19:45:26 | 显示全部楼层
1257的不是很好找吗?

initialise_auxiliary_player

auxiliary_player_check

现在国外mod提到这个功能基本都管它叫Auxiliary

30

主题

267

回帖

274

积分

见习骑士

Rank: 3

UID
3225805
第纳尔
1399
精华
0
互助
37
荣誉
0
贡献
0
魅力
259
注册时间
2021-3-14
鲜花(53) 鸡蛋(0)
 楼主| 发表于 2025-6-13 21:22:08 | 显示全部楼层
咸鱼圣代 发表于 2025-6-13 19:45
1257的不是很好找吗?

initialise_auxiliary_player

不喜欢搬运别人代码,原创为主

22

主题

123

回帖

59

积分

扈从

Rank: 2Rank: 2

UID
3084588
第纳尔
68
精华
0
互助
3
荣誉
0
贡献
0
魅力
1
注册时间
2019-6-29
鲜花(8) 鸡蛋(0)
发表于 2025-6-13 21:48:40 | 显示全部楼层
快乐风猫 发表于 2025-6-13 21:22
不喜欢搬运别人代码,原创为主

啊,原创挺好的,不过我看楼主说没找到那个部分,就提一下。
这个东西我也想做一个我喜欢的,对比过几个版本,不过还没开始。现在也多一份楼主的可以参考,感谢感谢。

30

主题

267

回帖

274

积分

见习骑士

Rank: 3

UID
3225805
第纳尔
1399
精华
0
互助
37
荣誉
0
贡献
0
魅力
259
注册时间
2021-3-14
鲜花(53) 鸡蛋(0)
 楼主| 发表于 2025-6-13 23:31:30 | 显示全部楼层
咸鱼圣代 发表于 2025-6-13 21:48
啊,原创挺好的,不过我看楼主说没找到那个部分,就提一下。
这个东西我也想做一个我喜欢的,对比过几个 ...

我最近才知道1257是开源的,消息太落后了,我刚刚看了一下他的逻辑,大差不差 始终都要围绕这set_player_troop来,不过1257是获取了兵种id直接生成兵种省区了我那个继承装备,确实要简单粗暴一点
您需要登录后才可以回帖 登录 | 注册(Register!)

本版积分规则

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

GMT+8, 2025-9-4 11:29 , Processed in 0.084953 second(s), 29 queries , Gzip On, MemCached On.

Powered by Discuz! X3.4 Licensed

© 2001-2023 Discuz! Team.

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