返回
返回

战斗中召唤单位 及报红修复

触发器是箭矢击中或武器攻击请看清楚 所有人均可使用
1.箭矢击中触发器;在以箭矢落点为重心的等边三角形的三个顶点上分别生成1名设定好的友方士兵:(300为重心到顶点的距离)
(store_trigger_param_1, ":var_0"),
(agent_get_group, ":var_1"":var_0"),
(agent_get_team, ":var_2"":var_0"),
(position_rotate_z, pos1, -30),
(position_move_x, pos1, -3000),
(set_spawn_position, pos1),
(spawn_agent, "trp_bandit"),
(agent_set_group, reg0, ":var_1"),
(agent_set_team, reg0, ":var_2"),
(agent_add_relation_with_agent, reg0, ":var_0"1),
(position_move_x, pos1, 3000),
(position_rotate_z, pos1, -120),
(position_move_x, pos1, -3000),
(set_spawn_position, pos1),
(spawn_agent, "trp_bandit"),
(agent_set_group, reg0, ":var_1"),
(agent_set_team, reg0, ":var_2"),
(agent_add_relation_with_agent, reg0, ":var_0"1),
(position_move_x, pos1, 3000),
(position_rotate_z, pos1, -120),
(position_move_x, pos1, -3000),
(set_spawn_position, pos1),
(spawn_agent, "trp_bandit"),
(agent_set_group, reg0, ":var_1"),
(agent_set_team, reg0, ":var_2"),
(agent_add_relation_with_agent, reg0, ":var_0"1),
2.箭矢击中或武器攻击触发器,在以召唤者为重心的等边三角形的三个顶点上分别生成1名设定好的友方士兵:(300为重心到顶点的距离)
(store_trigger_param_1, ":var_0"),
(agent_get_group, ":var_1"":var_0"),
(agent_get_team, ":var_2"":var_0"),
(agent_get_position, pos2, ":var_0"),
(position_rotate_z, pos2, -30),
(position_move_x, pos2, -3000),
(set_spawn_position, pos2),
(spawn_agent, "trp_bandit"),
(agent_set_group, reg0, ":var_1"),
(agent_set_team, reg0, ":var_2"),
(agent_add_relation_with_agent, reg0, ":var_0"1),
(position_move_x, pos2, 3000),
(position_rotate_z, pos2, -120),
(position_move_x, pos2, -3000),
(set_spawn_position, pos2),
(spawn_agent, "trp_bandit"),
(agent_set_group, reg0, ":var_1"),
(agent_set_team, reg0, ":var_2"),
(agent_add_relation_with_agent, reg0, ":var_0"1),
(position_move_x, pos2, 3000),
(position_rotate_z, pos2, -120),
(position_move_x, pos2, -3000),
(set_spawn_position, pos2),
(spawn_agent, "trp_bandit"),
(agent_set_group, reg0, ":var_1"),
(agent_set_team, reg0, ":var_2"),
(agent_add_relation_with_agent, reg0, ":var_0"1),
3.箭矢击中触发器;在以箭矢落点位置为重心的等边三角形的三个顶点上分别生成一名与距离与该位置最近的一名敌方士兵相同的友方士兵 (300为重心到顶点的距离)
(store_trigger_param_1, ":var_0"),
(agent_get_group, ":var_1"":var_0"),
(agent_get_team, ":var_2"":var_0"),
(assign, ":var_3"100000),
(assign, ":var_4"-1),
(try_for_agents, ":var_5"),
    (agent_is_alive, ":var_5"),
    (agent_is_human, ":var_5"),
    (agent_get_position, pos2, ":var_5"),
    (agent_get_team, ":var_6"":var_5"),
    (teams_are_enemies, ":var_2"":var_6"),
    (get_distance_between_positions, ":var_7", pos1, pos2),
    (neg|ge, ":var_7"":var_3"),
    (assign, ":var_3"":var_7"),
    (assign, ":var_4"":var_5"),
(try_end),
(try_begin),
    (neg|eq, ":var_4"-1),
    (agent_get_troop_id, ":var_8"":var_4"),
    (position_rotate_z, pos1, -30),
    (position_move_x, pos1, -3000),
    (set_spawn_position, pos1),
    (spawn_agent, ":var_8"),
    (agent_set_group, reg0, ":var_1"),
    (agent_set_team, reg0, ":var_2"),
    (agent_add_relation_with_agent, reg0, ":var_0"1),
    (position_move_x, pos1, 3000),
    (position_rotate_z, pos1, -120),
    (position_move_x, pos1, -3000),
    (set_spawn_position, pos1),
    (spawn_agent, ":var_8"),
    (agent_set_group, reg0, ":var_1"),
    (agent_set_team, reg0, ":var_2"),
    (agent_add_relation_with_agent, reg0, ":var_0"1),
    (position_move_x, pos1, 3000),
    (position_rotate_z, pos1, -120),
    (position_move_x, pos1, -3000),
    (set_spawn_position, pos1),
    (spawn_agent, ":var_8"),
    (agent_set_group, reg0, ":var_1"),
    (agent_set_team, reg0, ":var_2"),
    (agent_add_relation_with_agent, reg0, ":var_0"1),
(try_end),
4.箭矢击中触发器;在以距离箭矢落点位置最近的一名敌方士兵为重心的等边三角形的三个顶点上分别生成一名与其相同的友方士兵 (300为重心到顶点的距离)
(store_trigger_param_1, ":var_0"),
(agent_get_group, ":var_1"":var_0"),
(agent_get_team, ":var_2"":var_0"),
(assign, ":var_3"100000),
(assign, ":var_4"-1),
(try_for_agents, ":var_5"),
    (agent_is_alive, ":var_5"),
    (agent_is_human, ":var_5"),
    (agent_get_position, pos2, ":var_5"),
    (agent_get_team, ":var_6"":var_5"),
    (teams_are_enemies, ":var_2"":var_6"),
    (get_distance_between_positions, ":var_7", pos1, pos2),
    (neg|ge, ":var_7"":var_3"),
    (assign, ":var_3"":var_7"),
    (assign, ":var_4"":var_5"),
(try_end),
(try_begin),
    (neg|eq, ":var_4"-1),
    (agent_get_troop_id, ":var_8"":var_4"),
    (agent_get_position, pos3, ":var_4"),
    (position_rotate_z, pos3, -30),
    (position_move_x, pos3, -3000),
    (set_spawn_position, pos3),
    (spawn_agent, ":var_8"),
    (agent_set_group, reg0, ":var_1"),
    (agent_set_team, reg0, ":var_2"),
    (agent_add_relation_with_agent, reg0, ":var_0"1),
    (position_move_x, pos3, 3000),
    (position_rotate_z, pos3, -120),
    (position_move_x, pos3, -3000),
    (set_spawn_position, pos3),
    (spawn_agent, ":var_8"),
    (agent_set_group, reg0, ":var_1"),
    (agent_set_team, reg0, ":var_2"),
    (agent_add_relation_with_agent, reg0, ":var_0"1),
    (position_move_x, pos3, 3000),
    (position_rotate_z, pos3, -120),
    (position_move_x, pos3, -3000),
    (set_spawn_position, pos3),
    (spawn_agent, ":var_8"),
    (agent_set_group, reg0, ":var_1"),
    (agent_set_team, reg0, ":var_2"),
    (agent_add_relation_with_agent, reg0, ":var_0"1),
(try_end),

报红问题:

可以看到报红一般会显示:
At xxxxx
就表示是哪里出了问题

以潘德为例,报红显示:
At script agent_reassign_team
就表示script里面的agent_reassign_team有问题,
点进去搜搜看:

(store_script_param, ":var_0"1),
    (get_player_agent_no, ":var_1"),
    (try_begin),
        (ge, ":var_1"0),
        (agent_is_human, ":var_0"),
        (agent_is_ally, ":var_0"),
        (agent_get_party_id, ":var_2"":var_0"),
        (party_get_template_id, ":var_3"":var_2"),
        (this_or_next|eq, ":var_3""pt_merc_army_1"),
        (this_or_next|eq, ":var_3""pt_merc_army_2"),
        (eq, ":var_3""pt_merc_army_3"),
        (party_get_attached_to, ":var_4"":var_2"),
        (party_stack_get_troop_id, ":var_5"":var_4"0),
        (try_for_agents, ":var_6"),
            (agent_is_alive, ":var_6"),
            (agent_is_human, ":var_6"),
            (agent_get_troop_id, ":var_7"":var_6"),
            (eq, ":var_7"":var_5"),
……
……
……

太长不放全部了
可以看到,像agent_get_party_id,party_get_template_id这些OP是有可能get不到的;get不到的时候,会输出-1;那么解决办法就很简单了,在所有的get的下面加一句:
(neq,<:var_?>,-1),
判定一下不为-1,也就是get到了再继续,即可。注意自己修改变量名<:var_?>,需要添加的地方有点多,细心一些。

我这里改好了一份(潘德的):

注意修改行数,我这里修改后的是81行;那么第一个数字就改成81:

agent_reassign_team -1
 81 23 2 1224979098644774912 1 1700 1 1224979098644774913 4 0 30 2 1224979098644774913 0 1704 1 1224979098644774912 1706 1 1224979098644774912 1716 2 1224979098644774914 1224979098644774912 2147483679 2 1224979098644774914 -1 1609 2 1224979098644774915 1224979098644774914 2147483679 2 1224979098644774915 -1 1073741855 2 1224979098644774915 576460752303423667 1073741855 2 1224979098644774915 576460752303423668 31 2 1224979098644774915 576460752303423669 1694 2 1224979098644774916 1224979098644774914 2147483679 2 1224979098644774916 -1 1652 3 1224979098644774917 1224979098644774916 0 2147483679 2 1224979098644774917 -1 12 1 1224979098644774918 1702 1 1224979098644774918 1704 1 1224979098644774918 1718 2 1224979098644774919 1224979098644774918 31 2 1224979098644774919 1224979098644774917 1770 2 1224979098644774920 1224979098644774918 1771 2 1224979098644774912 1224979098644774920 3 0 3 0 4 0 30 2 1224979098644774913 0 1704 1 1224979098644774912 1706 1 1224979098644774912 1716 2 1224979098644774914 1224979098644774912 2147483679 2 1224979098644774914 -1 2147483679 2 1224979098644774914 648518346341351424 2133 2 1224979098644774921 1 2204 2 1224979098644774922 1224979098644774914 2147483679 2 1224979098644774922 -1 1718 2 72057594037927975 1224979098644774912 4 0 1609 2 1224979098644774915 1224979098644774914 2147483679 2 1224979098644774915 -1 1073741855 2 1224979098644774915 576460752303423667 1073741855 2 1224979098644774915 576460752303423668 31 2 1224979098644774915 576460752303423669 1694 2 1224979098644774916 1224979098644774914 2147483679 2 1224979098644774916 -1 2204 2 1224979098644774923 1224979098644774916 2147483679 2 1224979098644774923 -1 542 3 1224979098644774923 8 360287970189639680 2133 2 1224979098644774921 0 5 0 31 2 1224979098644774922 144115188075856294 33 3 144115188075856294 432345564227567630 432345564227567636 542 3 144115188075856294 8 360287970189639680 2133 2 1224979098644774921 0 5 0 1652 3 1224979098644774924 1224979098644774914 0 2147483679 2 1224979098644774924 -1 1073742364 3 1224979098644774924 152 10 1073742364 3 1224979098644774924 2 5 540 3 1224979098644774924 197 1 2133 2 1224979098644774921 0 5 0 1652 3 1224979098644774924 1224979098644774914 0 2147483679 2 1224979098644774924 -1 2147483681 3 1224979098644774924 360287970189640185 360287970189640315 2147483681 3 1224979098644774924 360287970189639980 360287970189639999 2147483679 2 1224979098644774924 360287970189640007 2147483679 2 1224979098644774924 360287970189640030 2147483679 2 1224979098644774924 360287970189640884 2147483679 2 1224979098644774924 360287970189640927 2147483679 2 1224979098644774924 360287970189640951 2190 3 1224979098644774925 1224979098644774922 432345564227567630 2147483679 2 1224979098644774925 -1 30 2 1224979098644774925 0 2133 2 1224979098644774921 0 3 0 31 2 1224979098644774921 1 1770 2 1224979098644774926 1224979098644774913 2105 2 1224979098644774926 2 1771 2 1224979098644774912 1224979098644774926 3 0 

一大串数字看不懂?MBCodeEditor多用用吧。

附一个交流QQ群:855512521(刚创的;没人;真的没有人)

返回
返回