本帖最后由 卢森堡的夜幕 于 2026-3-19 10:18 编辑
以下为我的代码赛马
严禁任何潘德的预言相关mod及其改版使用我的任何代码
使用要求:必须对于作者也就是我,致谢,贡献者,Credit等署名
署名为:夜幕
效果:【骑砍】康城赛马-哔哩哔哩】 https://b23.tv/Xgbv5ko
原理:很简单,用entry point作为导航,为什么用entry point?因为最简单易懂和精准
有任何不懂的地方或bug可以私信和评论告诉我
- ("go_to_horse_race",
- [
- ],
- "康 城 赛 马",
- [
- (modify_visitors_at_site, "scn_camptown"),
- (reset_visitors,0),
- (set_visitor, 1, "trp_player"),
- (set_visitors, 2, "trp_elite_cavalry",1),
- (set_visitors, 3, "trp_elite_cavalry",1),
- (set_visitors, 4, "trp_elite_cavalry",1),
- (assign, "$g_ym6", 2),#两圈
- (set_jump_mission, "mt_horse_race"),
- (jump_to_scene, "scn_camptown"),
- (assign, "$camptown", 233),
- (play_track, "track_camptown", 1),
- (change_screen_mission),
- ]),
- (ti_before_mission_start, 0, 0,
- [],
- [
- (assign, "$g_ym", 0),
- (assign, "$g_ym1", 0),
- (assign, "$g_ym2", 0),
- (assign, "$g_ym3", 5),
- (assign, "$g_ym4", 0),
- (assign, "$g_ym5", 0),
- (try_for_range, ":ym_0", 0, 256),
- (troop_set_slot, "trp_temp_array_a", ":ym_0", 0),
- (troop_set_slot, "trp_temp_array_b", ":ym_0", 0),
- (try_end),
- (display_message, "@赛 马 准 备 中,5 秒 后 开 始!"),
- ]),
- (0, 0, ti_once,
- [
- (eq, "$g_ym", 0),
- (eq, "$g_ym5", 0),
- (this_or_next|key_clicked, key_w),
- (this_or_next|key_clicked, key_a),
- (this_or_next|key_clicked, key_s),
- (key_clicked, key_d),
- ],
- [
- (assign, "$g_ym5", 1),
- (get_player_agent_no, ":ym_0"),
- (try_begin),
- (ge, ":ym_0", 0),
- (troop_set_slot, "trp_temp_array_a", ":ym_0", 0),
- (troop_set_slot, "trp_temp_array_b", ":ym_0", -1),
- (try_end),
- (call_script, "script_change_player_honor", -1),
- (display_message, "@你 在 开 赛 前 移 动(WASD)被 判 定 为 作 弊,已 取 消 参 赛 资 格!", 0xFF3333),
- (finish_mission, 0),
- ]),
- (ti_on_agent_spawn, 0, 0,
- [],
- [
- (store_trigger_param_1, ":ym_0"),
- (set_fixed_point_multiplier, 100),
- (agent_is_human, ":ym_0"),
- (agent_get_team, ":ym_1", ":ym_0"),
- (this_or_next|eq, ":ym_1", 0),
- (eq, ":ym_1", 1),
- (troop_set_slot, "trp_temp_array_a", ":ym_0", 1),
- (troop_set_slot, "trp_temp_array_b", ":ym_0", 0),
- (agent_set_slot, ":ym_0", slot_slot_ym, 5),
- (agent_set_slot, ":ym_0", slot_ym1, 0),
- (agent_set_slot, ":ym_0", slot_ym2, 0),
- (try_for_range, ":ym_2", 0, 4),
- (agent_get_wielded_item, ":ym_3", ":ym_0", ":ym_2"),
- (gt, ":ym_3", 0),
- (agent_unequip_item, ":ym_0", ":ym_3"),
- (try_end),
- ]),
- (1, 0, 0,
- [
- (eq, "$g_ym", 0),
- (store_mission_timer_a_msec, ":ym_0"),
- (lt, ":ym_0", 5000),
- ],
- [
- (store_sub, ":ym_1", 5000, ":ym_0"),
- (store_add, ":ym_1", ":ym_1", 999),
- (store_div, reg1, ":ym_1", 1000),
- ]),
- (0, 0, ti_once,
- [
- (eq, "$g_ym", 0),
- (store_mission_timer_a_msec, ":ym_0"),
- (ge, ":ym_0", 5000),
- ],
- [
- (assign, "$g_ym", 1),
- (store_mission_timer_a, ":ym_8"),
- (store_add, "$g_ym4", ":ym_8", 5),
- (set_fixed_point_multiplier, 100),
- (try_for_agents, ":ym_1"),
- (agent_is_alive, ":ym_1"),
- (troop_slot_eq, "trp_temp_array_a", ":ym_1", 1),
- (agent_clear_scripted_mode, ":ym_1"),
- (try_end),
- (try_begin),
- (ge, "$g_ym6", 1),
- (assign, reg2, "$g_ym6"),
- (display_message, "@开 始 !赛 道 模 式:共 {reg2}圈"),
- (agent_set_slot, ":ym_1", slot_slot_ym, 5),
- (agent_set_slot, ":ym_1", slot_ym1, 0),
- (agent_set_slot, ":ym_1", slot_ym2, 0),
- (else_try),
- (display_message, "@开 始!冲 向 终 点!"),
- (try_end),
- (set_fixed_point_multiplier, 100),
- (get_player_agent_no, ":player_agent"),
- (agent_is_alive, ":player_agent"),
- (agent_set_speed_modifier, ":player_agent", 100),
- (agent_get_horse, ":horse_agent", ":player_agent"),
- (gt, ":horse_agent", -1),
- (agent_set_speed_modifier, ":horse_agent", 100),
- ]),
- (1, 0, 0,
- [],
- [
- (try_begin),
- (ge,"$camptown",1),
- (val_sub, "$camptown", 1),
- (else_try),
- (le,"$camptown",0),
- (play_track, "track_camptown", 1),
- (assign, "$camptown", 233),
- (try_end),
- ]),
- (0, 0, 0,
- [
- (eq, "$g_ym", 1),
- (eq, "$g_ym1", 0),
- ],
- [
- (try_for_agents, ":ym_0"),
- (agent_is_alive, ":ym_0"),
- (troop_slot_eq, "trp_temp_array_a", ":ym_0", 1),
- (agent_get_slot, ":ym_1", ":ym_0", slot_slot_ym),
- (entry_point_get_position, pos13, ":ym_1"),
- (agent_get_position, pos11, ":ym_0"),
- (position_transform_position_to_local, pos12, pos13, pos11),
- (position_get_x, ":ym_4", pos12),
- (assign, ":ym_7", 0),
- (assign, ":ym_12", 1),
- (scene_prop_get_num_instances, ":ym_8", "spr_crude_fence"),
- (try_for_range, ":ym_9", 0, ":ym_8"),
- (scene_prop_get_instance, ":ym_10", "spr_crude_fence", ":ym_9"),
- (prop_instance_get_position, pos15, ":ym_10"),
- (get_distance_between_positions, ":ym_11", pos11, pos15),
- (try_begin),
- (lt, ":ym_11", 280),
- (assign, ":ym_7", 2),
- (else_try),
- (lt, ":ym_11", 360),
- (lt, ":ym_7", 1),
- (assign, ":ym_7", 1),
- (try_end),
- (try_end),
- (scene_prop_get_num_instances, ":ym_8", "spr_obstacle_fence_1"),
- (try_for_range, ":ym_9", 0, ":ym_8"),
- (scene_prop_get_instance, ":ym_10", "spr_obstacle_fence_1", ":ym_9"),
- (prop_instance_get_position, pos15, ":ym_10"),
- (get_distance_between_positions, ":ym_11", pos11, pos15),
- (try_begin),
- (lt, ":ym_11", 180),
- (assign, ":ym_7", 2),
- (else_try),
- (lt, ":ym_11", 360),
- (lt, ":ym_7", 1),
- (assign, ":ym_7", 1),
- (try_end),
- (try_end),
- (try_begin),
- (eq, ":ym_7", 2),
- (assign, ":ym_12", 0),
- (try_begin),
- (lt, ":ym_4", 0),
- (store_random_in_range, ":ym_3", 1100, 1450),
- (position_move_x, pos13, ":ym_3"),
- (else_try),
- (store_random_in_range, ":ym_3", -1450, -1100),
- (position_move_x, pos13, ":ym_3"),
- (try_end),
- (position_move_y, pos13, 220),
- (else_try),
- (eq, ":ym_7", 1),
- (try_begin),
- (lt, ":ym_4", 0),
- (store_random_in_range, ":ym_3", 860, 1060),
- (position_move_x, pos13, ":ym_3"),
- (else_try),
- (store_random_in_range, ":ym_3", -1060, -860),
- (position_move_x, pos13, ":ym_3"),
- (try_end),
- (position_move_y, pos13, 120),
- (else_try),
- (lt, ":ym_4", -1300),
- (store_random_in_range, ":ym_3", 220, 520),
- (position_move_x, pos13, ":ym_3"),
- (else_try),
- (gt, ":ym_4", 1300),
- (store_random_in_range, ":ym_3", -520, -220),
- (position_move_x, pos13, ":ym_3"),
- (else_try),
- (store_random_in_range, ":ym_3", -90, 91),
- (position_move_x, pos13, ":ym_3"),
- (try_end),
- (agent_set_scripted_destination, ":ym_0", pos13, ":ym_12"),
- (try_end),
- ]),
- (0, 0, 0,
- [
- (eq, "$g_ym", 1),
- (eq, "$g_ym1", 0),
- (ge, "$g_ym6", 1),
- ],
- [
- (get_player_agent_no, ":ym_9"),
- (try_for_agents, ":ym_0"),
- (agent_is_alive, ":ym_0"),
- (troop_slot_eq, "trp_temp_array_a", ":ym_0", 1),
- (troop_slot_eq, "trp_temp_array_b", ":ym_0", 0),
- (agent_get_slot, ":ym_1", ":ym_0", slot_slot_ym),
- (assign, ":ym_6", ":ym_1"),
- (entry_point_get_position, pos14, ":ym_1"),
- (agent_get_position, pos11, ":ym_0"),
- (assign, ":ym_5", 0),
- (get_distance_between_positions, ":ym_2", pos11, pos14),
- (try_begin),
- (eq, ":ym_5", 0),
- (position_transform_position_to_local, pos12, pos14, pos11),
- (position_get_x, ":ym_3", pos12),
- (is_between, ":ym_3", -5000, 5000),
- (position_get_y, ":ym_4", pos12),
- (is_between, ":ym_4", -1200, 1201),
- (assign, ":ym_5", 1),
- (try_end),
- (eq, ":ym_5", 1),
- (store_add, ":ym_1", ":ym_1", 1),
- (try_begin),
- (ge, ":ym_1", 14),
- (assign, ":ym_1", 5),
- (agent_get_slot, ":ym_4", ":ym_0", slot_ym1),
- (val_add, ":ym_4", 1),
- (agent_set_slot, ":ym_0", slot_ym1, ":ym_4"),
- (agent_set_slot, ":ym_0", slot_ym2, 1),
- (try_begin),
- (eq, ":ym_0", ":ym_9"),
- (assign, reg1, ":ym_4"),
- (display_message, "@你 已 完 成 第 {reg1} 圈!"),
- (try_end),
- (try_end),
- (try_begin),
- (eq, ":ym_0", ":ym_9"),
- (assign, reg1, ":ym_6"),
- (display_message, "@[测 试] 通 过 路 点 {reg1}"),
- (try_end),
- (agent_set_slot, ":ym_0", slot_slot_ym, ":ym_1"),
- (entry_point_get_position, pos14, ":ym_1"),
- (agent_set_scripted_destination, ":ym_0", pos14, 0),
- (try_end),
- ]),
- (0, 0, 0,
- [
- (eq, "$g_ym", 1),
- (eq, "$g_ym1", 0),
- (store_mission_timer_a, ":ym_9"),
- (ge, ":ym_9", "$g_ym4"),
- ],
- [
- (entry_point_get_position, pos10, 13),
- (try_for_agents, ":ym_0"),
- (agent_is_alive, ":ym_0"),
- (troop_slot_eq, "trp_temp_array_a", ":ym_0", 1),
- (troop_slot_eq, "trp_temp_array_b", ":ym_0", 0),
- (agent_get_position, pos11, ":ym_0"),
- (position_transform_position_to_local, pos12, pos10, pos11),
- (position_get_x, ":ym_1", pos12),
- (is_between, ":ym_1", -2000, 2000),
- (position_get_y, ":ym_2", pos12),
- (is_between, ":ym_2", -250, 251),
- (try_begin),
- (ge, "$g_ym6", 1),
- (agent_get_slot, ":ym_3", ":ym_0", slot_ym1),
- (ge, ":ym_3", "$g_ym6"),
- (val_add, "$g_ym2", 1),
- (troop_set_slot, "trp_temp_array_b", ":ym_0", "$g_ym2"),
- (assign, reg1, "$g_ym2"),
- (str_store_agent_name, s1, ":ym_0"),
- (display_message, "@第 {reg1}名:{s1}"),
- (try_end),
- (try_end),
- (try_begin),
- (ge, "$g_ym2", 4),
- (assign, "$g_ym1", 1),
- (display_message, "@赛 马 结 束,你 现 在 可 以 离 开 场 景。"),
- (try_end),
- ]),
- (ti_tab_pressed, 0, 0,
- [
- (eq, "$g_ym1", 0),
- ],
- [
- (display_message, "@赛 马 尚 未 结 束,暂 时 不 能 离 开 场 景。", 0xFF3333),
- ]),
- (ti_tab_pressed, 0, 0,
- [
- (eq, "$g_ym1", 1),
- ],
- [
- (finish_mission, 0),
- ]),
复制代码
|