- 好友
- 0
- 在线时间
- 457 小时
- 最后登录
- 2025-10-14
见习骑士

- UID
- 1404850
- 第纳尔
- 875
- 精华
- 0
- 互助
- 9
- 荣誉
- 0
- 贡献
- 0
- 魅力
- 14
- 注册时间
- 2013-6-9
 鲜花( 46)  鸡蛋( 0)
|
战团版本1.174
* 为 下蹲键 增加一个新功能:可在玩家 步行时 慢步穿过拥挤的友方单位与中立单位。
- 遇到人员拥挤的情况,按住 下蹲键 与 前进键 即可穿过人群(提供最低移动距离)。无法穿过敌人与墙体。
- 如果不慎跳跃时被人群顶住无法行动,按住 下蹲键 但不要按 前进键 即可逐渐滑落(自由落体时同样会加速下落)。
…… 慢步穿越的速度不享受移动速度加成,为 平面时 0敏捷 0跑动 常态行走的速度 * 0.45 。
* 该段代码需放在 mst 里 0.00 秒持续触发(每帧触发)。或者放到 prnst 里持续触发。
- (try_begin),
- (game_key_clicked, gk_crouch), # 初次按下 下蹲键 初始化帧时记录
- (reset_mission_timer_c),
- (else_try),
- (game_key_is_down, gk_crouch), # 后续按住 下蹲键 开始启用慢步推行
- (store_mission_timer_c_msec, ":frame_time"), # 记录逐帧时长(60帧 17ms;120帧 9ms)
- (reset_mission_timer_c),
-
- (get_player_agent_no, ":player"), # 确保玩家存在
- (ge, ":player", 0),
- (neg|main_hero_fallen),
-
- (agent_get_horse, ":horse", ":player"), # 只有步行时才能借道
- (eq, ":horse", -1),
-
- (set_fixed_point_multiplier, 1000), # 单位 mm
- (agent_get_position, pos1, ":player"),
-
- (agent_get_speed, pos2, ":player"),
- (position_get_y, ":speed_y", pos2),
- (position_get_x, ":speed_x", pos2),
- (assign, ":movement_y", 0), # 位移距离
- (assign, ":movement_x", 0),
-
- '''---------------------------------------------------------------------
- * BUG:agent_get_speed 对于被阻挡的情况,
- 只有 向前方向 的速度是 实际速度,
- 其它方向 的速度都是未被阻挡时的 常态速度 。
-
- 为了避免此功能会产生移动加速的效果,
- 判断标准仅取 向前方向 的速度,若低于阈值,则视为被阻挡,开始位移。
-
- 位移速度 = (常态平面最低速度 * 0.9 - 实际速度)/ 2
-
- * 备注:常态平面最低速度 是在 0敏捷0跑动 平地地形 情况下测试而得(每点敏捷+0.5%)
- 实际会因地形坡度而无法达到该速度。
- ---------------------------------------------------------------------'''
- (try_begin),
- (game_key_is_down, gk_move_forward), # 向前 375 cm/s
- (neg|game_key_is_down, gk_move_backward),
- (neg|game_key_is_down, gk_move_right),
- (neg|game_key_is_down, gk_move_left),
- (try_begin),
- (ge, ":speed_y", 0),
- (store_sub, ":movement_y", 3375, ":speed_y"),
- (val_max, ":movement_y", 0),
- (val_div, ":movement_y", 2),
- (try_end),
- (else_try),
- (game_key_is_down, gk_move_forward), # 前&右 225 215 cm/s
- (neg|game_key_is_down, gk_move_backward),
- (game_key_is_down, gk_move_right),
- (neg|game_key_is_down, gk_move_left),
- (try_begin),
- (ge, ":speed_y", 0),
- (store_sub, ":movement_y", 2240, ":speed_y"),
- (val_max, ":movement_y", 0),
- (val_div, ":movement_y", 2),
- (try_end),
- (try_begin),
- (gt, ":movement_y", 0),
- (store_div, ":movement_x", ":movement_y", 2),
- (try_end),
- (else_try),
- (game_key_is_down, gk_move_forward), # 前&左 225 -215 cm/s
- (neg|game_key_is_down, gk_move_backward),
- (neg|game_key_is_down, gk_move_right),
- (game_key_is_down, gk_move_left),
- (try_begin),
- (ge, ":speed_y", 0),
- (store_sub, ":movement_y", 2240, ":speed_y"),
- (val_max, ":movement_y", 0),
- (val_div, ":movement_y", 2),
- (try_end),
- (try_begin),
- (gt, ":movement_y", 0),
- (store_div, ":movement_x", ":movement_y", -2),
- (try_end),
- (try_end),
-
- '''---------------------------------------------------------------------
- 60帧率下,常态平面最低速度 起步约为 20cm/s,加速度约为 25cm/s/帧 。
- 60帧率下,即便每帧提供的位移只有 2cm ,也会感觉出些许提速效果。
- ---------------------------------------------------------------------'''
- (try_begin), # 转为帧时距离
- (gt, ":movement_y", 0),
- (val_mul, ":movement_y", ":frame_time"),
- (val_div, ":movement_y", 1000),
- (val_max, ":movement_y", 1),
- (try_end),
- (try_begin),
- (gt, ":movement_x", 0),
- (val_mul, ":movement_x", ":frame_time"),
- (val_div, ":movement_x", 1000),
- (val_max, ":movement_x", 1),
- (else_try),
- (neg|ge, ":movement_x", 0),
- (val_mul, ":movement_x", ":frame_time"),
- (val_div, ":movement_x", 1000),
- (val_min, ":movement_x", -1),
- (try_end),
-
- (try_begin),
- (gt, ":movement_y", 0), # 玩家穿越兵堆
-
- (assign, ":break", 5), # 若前方是墙体,则不能借道,避免横向穿模
- (copy_position, pos2, pos1),
- (position_move_z, pos2, 90),
- (position_rotate_z, pos2, -135, 0),
- (try_for_range, ":truns", 0, ":break"),
- (position_rotate_z, pos2, 45, 0),
- (cast_ray, ":scene_id", pos3, pos2, 430),
- (assign, ":break", 0),
- (try_end),
-
- (eq, ":break", 5), # 若与敌人过于贴近,则不能借道
- (agent_get_team, ":player_team", ":player"),
- (try_for_agents, ":agent"),
- (eq, ":break", 5),
- (neg|eq, ":agent", ":player"),
- (agent_is_alive, ":agent"),
- (agent_is_human, ":agent"),
- (agent_get_team, ":agent_team", ":agent"),
- (teams_are_enemies, ":agent_team", ":player_team"),
- (agent_get_position, pos2, ":agent"),
- (get_distance_between_positions, ":distance", pos2, pos1),
- (neg|gt, ":distance", 72),
- (assign, ":break", 0),
- (try_end),
-
- (eq, ":break", 5), # 预设位移点的位置
- (init_position, pos2),
- (position_set_y, pos2, ":movement_y"),
- (position_set_x, pos2, ":movement_x"),
- (position_transform_position_to_parent, pos3, pos1, pos2),
- (position_move_z, pos3, 17),
- (position_set_z_to_ground_level, pos3),
-
- (position_get_z, ":player_level", pos1), # 如 攻城战 拥有的复杂地形,多一重检测,避免纵向穿模
- (position_get_z, ":new_level", pos3),
- (val_sub, ":new_level", ":player_level"),
- (val_abs, ":new_level"),
- (neg|ge, ":new_level", 300),
-
- (agent_set_position, ":player", pos3), # 当前帧会在 计算完单位的位置与运动状态 之后再执行脚本
- (else_try),
- (eq, ":movement_y", 0), # 玩家因跳跃动作被卡在兵堆上面无法动弹
- (copy_position, pos2, pos1),
- (position_get_z, ":player_level", pos1),
-
- (position_set_z_to_ground_level, pos1),
- (position_get_z, ":new_level", pos1),
- (store_sub, ":movement_y", ":player_level", ":new_level"),
-
- (gt, ":movement_y", 50),
- (position_move_z, pos2, 5),
- (position_rotate_x, pos2, -90, 0),
- (try_begin),
- (cast_ray, ":scene_id", pos3, pos2, 60),
- (ge, ":scene_id", 0), # 一些有碰撞的场景道具不会被纳入 ground level 的考量
- (else_try),
- (val_div, ":frame_time", 2),
- (val_sub, ":player_level", ":frame_time"),
- (val_max, ":player_level", ":new_level"),
- (position_set_z, pos1, ":player_level"),
-
- (agent_set_no_dynamics, ":player", 1),
- (agent_set_position, ":player", pos1),
- (agent_set_no_dynamics, ":player", 0),
- (try_end),
- (try_end),
- (try_end),
复制代码
txt代码:
0.000000 0.000000 0.000000 0 140 4 0 73 1 49 2377 0 5 0 72 1 49 2367 1 1224979098644774912 2377 0 1700 1 1224979098644774913 30 2 1224979098644774913 0 2147484654 0 1714 2 1224979098644774914 1224979098644774913 31 2 1224979098644774914 -1 2124 1 1000 1710 2 1 1224979098644774913 1689 2 2 1224979098644774913 727 2 1224979098644774915 2 726 2 1224979098644774916 2 2133 2 1224979098644774917 0 2133 2 1224979098644774918 0 4 0 72 1 0 2147483720 1 1 2147483720 1 3 2147483720 1 2 4 0 30 2 1224979098644774915 0 2121 3 1224979098644774917 3375 1224979098644774915 2111 2 1224979098644774917 0 2108 2 1224979098644774917 2 3 0 5 0 72 1 0 2147483720 1 1 72 1 3 2147483720 1 2 4 0 30 2 1224979098644774915 0 2121 3 1224979098644774917 2240 1224979098644774915 2111 2 1224979098644774917 0 2108 2 1224979098644774917 2 3 0 4 0 32 2 1224979098644774917 0 2123 3 1224979098644774918 1224979098644774917 2 3 0 5 0 72 1 0 2147483720 1 1 2147483720 1 3 72 1 2 4 0 30 2 1224979098644774915 0 2121 3 1224979098644774917 2240 1224979098644774915 2111 2 1224979098644774917 0 2108 2 1224979098644774917 2 3 0 4 0 32 2 1224979098644774917 0 2123 3 1224979098644774918 1224979098644774917 -2 3 0 3 0 4 0 32 2 1224979098644774917 0 2107 2 1224979098644774917 1224979098644774912 2108 2 1224979098644774917 1000 2111 2 1224979098644774917 1 3 0 4 0 32 2 1224979098644774918 0 2107 2 1224979098644774918 1224979098644774912 2108 2 1224979098644774918 1000 2111 2 1224979098644774918 1 5 0 2147483678 2 1224979098644774918 0 2107 2 1224979098644774918 1224979098644774912 2108 2 1224979098644774918 1000 2110 2 1224979098644774918 -1 3 0 4 0 32 2 1224979098644774917 0 2133 2 1224979098644774919 5 700 2 2 1 722 2 2 90 725 3 2 -135 0 6 3 1224979098644774920 0 1224979098644774919 725 3 2 45 0 1900 4 1224979098644774921 3 2 430 2133 2 1224979098644774919 0 3 0 31 2 1224979098644774919 5 1770 2 1224979098644774922 1224979098644774913 12 1 1224979098644774923 31 2 1224979098644774919 5 2147483679 2 1224979098644774923 1224979098644774913 1702 1 1224979098644774923 1704 1 1224979098644774923 1770 2 1224979098644774924 1224979098644774923 1788 2 1224979098644774924 1224979098644774922 1710 2 2 1224979098644774923 710 3 1224979098644774925 2 1 2147483680 2 1224979098644774925 72 2133 2 1224979098644774919 0 3 0 31 2 1224979098644774919 5 701 1 2 730 2 2 1224979098644774917 729 2 2 1224979098644774918 716 3 3 1 2 722 2 3 17 791 1 3 728 2 1224979098644774926 1 728 2 1224979098644774927 3 2106 2 1224979098644774927 1224979098644774926 2113 1 1224979098644774927 2147483678 2 1224979098644774927 300 1711 2 1224979098644774913 3 5 0 31 2 1224979098644774917 0 700 2 2 1 728 2 1224979098644774926 1 791 1 1 728 2 1224979098644774927 1 2121 3 1224979098644774917 1224979098644774926 1224979098644774927 32 2 1224979098644774917 50 722 2 2 5 723 3 2 -90 0 4 0 1900 4 1224979098644774921 3 2 60 30 2 1224979098644774921 0 5 0 2108 2 1224979098644774912 2 2106 2 1224979098644774926 1224979098644774912 2111 2 1224979098644774926 1224979098644774927 731 2 1 1224979098644774926 1762 2 1224979098644774913 1 1711 2 1224979098644774913 1 1762 2 1224979098644774913 0 3 0 3 0 3 0
|
|