- 好友
- 0
- 在线时间
- 0 小时
- 最后登录
- 2026-10-31
平民

- UID
- 3897508
- 第纳尔
- 0
- 精华
- 0
- 互助
- 1
- 荣誉
- 0
- 贡献
- 0
- 魅力
- 0
- 注册时间
- 2026-9-20
 鲜花( 0)  鸡蛋( 0)
|
本帖最后由 Bluet 于 2026-10-31 17:02 编辑
之前做了一个弓骑射手的准心修正,主要是为了修复骑射手移动时弹道有固定偏移的bug,避免出现几十个骑兵围着一个敌人转很久都射不中的情况。但改后预瞄得太准了,相比而言步兵射手打移动敌人时不会预瞄就显得很呆,于是我干脆直接给所有远程单位,包括弓、弩、投掷、火枪,骑马的、不骑马的,全加上预瞄。弹药飞行速度修正参考了君悦的测试结果,并经过大量测试和调参,基本上各种情况都能达到比较好的预瞄效果。
之前只加骑射手预瞄时测试过配合骑射AI用100顶级自建骑射手打1000人恐惧军团,上场人数比也是1:10,能在伤亡一半的情况下获胜,甚至大部分伤亡是箭射完后冲进人堆被打死的,强度属实逆天,不加误差的话可想而知会让游戏变成弓箭的预言(虽然本来就是),所以做了额外加随机误差的版本,简单来说就是距离越远、射手和目标速度越快误差越大,熟练度和骑兵的骑射可以降低误差。加误差后弓箭手的随机误差比原版大,但因为有预瞄总的来说应该比较平衡。就对弓骑兵的测试结果而言弓骑兵强度比原版高一些,比同级别的近战骑兵也高点。不同远程单位误差系数不同,弩比弓小,火枪和投掷更小,算是加强一下这几个在原版中存在感比较低的武器。
加误差后即便有预瞄也能保证玩家有足够长的存活时间,对单刷还是比较友好的(打诺多另说),如果确实要追求极致单刷,可以用不预瞄玩家的版本。如果是原版潘德3.9.5直接替换mission_templates.txt即可,否则需要手动把txt代码加到相应场景中。
源代码和txt代码都是加误差的版本,误差系数都设为0就是不加。
- # ============================================================
- # 综合远程 AI:弓/弩/投掷/火枪 × 骑乘/步行
- # ============================================================
- (0.0, 0.0, 0.0,
- [
- (get_player_agent_no, ":player_no"),
- (store_mission_timer_a_msec, ":now"),
- (try_for_agents, ":agent_no"),
- (agent_is_active, ":agent_no"),
- (agent_is_alive, ":agent_no"),
- (agent_is_human, ":agent_no"),
- (neg|eq, ":agent_no", ":player_no"),
- (agent_get_slot, ":was_mode", ":agent_no", 1018),
- (assign, ":need_cleanup", 0),
- # ------------------------------------------------------------
- # 1. 识别武器类型与骑乘状态
- # ------------------------------------------------------------
- (assign, ":weapon_kind", 0),
- (agent_get_wielded_item, ":weapon", ":agent_no", 0),
- (try_begin),
- (gt, ":weapon", 0),
- (item_get_type, ":type", ":weapon"),
- (try_begin),
- (eq, ":type", itp_type_bow),
- (assign, ":weapon_kind", 1), # 弓
- (else_try),
- (eq, ":type", itp_type_crossbow),
- (assign, ":weapon_kind", 2), # 弩
- (else_try),
- (eq, ":type", itp_type_thrown),
- (assign, ":weapon_kind", 3), # 投掷
- (else_try),
- (this_or_next|eq, ":type", itp_type_pistol),
- (eq, ":type", itp_type_musket),
- (assign, ":weapon_kind", 4), # 火枪
- (try_end),
- (try_end),
- (assign, ":mounted", 0),
- (try_begin),
- (agent_get_horse, ":horse_no", ":agent_no"),
- (gt, ":horse_no", -1),
- (assign, ":mounted", 1),
- (try_end),
- (assign, ":this_mode", 0),
- (try_begin),
- (gt, ":weapon_kind", 0),
- (try_begin),
- (eq, ":mounted", 1),
- (assign, ":this_mode", ":weapon_kind"),
- (else_try),
- (store_add, ":this_mode", ":weapon_kind", 3),
- (try_end),
- (try_end),
- # ------------------------------------------------------------
- # 2. 状态变更检测(换武器/上下马 触发重置)
- # ------------------------------------------------------------
- (agent_get_slot, ":last_weapon_kind", ":agent_no", 1029),
- (agent_get_slot, ":last_mounted", ":agent_no", 1030),
- (assign, ":state_changed", 0),
- (try_begin),
- (neq, ":weapon_kind", ":last_weapon_kind"),
- (assign, ":state_changed", 1),
- (else_try),
- (neq, ":mounted", ":last_mounted"),
- (assign, ":state_changed", 1),
- (try_end),
-
- (try_begin),
- (eq, ":state_changed", 1),
- (agent_set_slot, ":agent_no", 1029, ":weapon_kind"),
- (agent_set_slot, ":agent_no", 1030, ":mounted"),
- (assign, ":need_cleanup", 1),
- (assign, ":was_mode", 0),
- (try_end),
- # ------------------------------------------------------------
- # 3. 胜利/撤退检测
- # ------------------------------------------------------------
- (agent_get_team, ":team_no", ":agent_no"),
- (agent_get_division, ":division_no", ":agent_no"),
- (team_get_movement_order, ":movement_order", ":team_no", ":division_no"),
- (try_begin),
- (this_or_next|all_enemies_defeated),
- (eq, ":movement_order", mordr_retreat),
- (assign, ":need_cleanup", 1),
- (assign, ":was_mode", 0),
- (try_end),
- # ------------------------------------------------------------
- # 4. 攻击状态判定与 500ms 去抖
- # ------------------------------------------------------------
- (assign, ":attacking_now", 0),
- (try_begin),
- (agent_get_attack_action, ":cur_action", ":agent_no"),
- (eq, ":cur_action", 1),
- (assign, ":attacking_now", 1),
- (try_end),
- (assign, ":effective_ok", 0),
- (try_begin),
- (eq, ":need_cleanup", 1),
- (agent_set_slot, ":agent_no", 1018, 0),
- (else_try),
- (eq, ":this_mode", 0),
- (agent_set_slot, ":agent_no", 1018, 0),
- (try_begin),
- (neq, ":was_mode", 0),
- (assign, ":need_cleanup", 1),
- (try_end),
- (else_try),
- (eq, ":attacking_now", 1),
- (agent_set_slot, ":agent_no", 1018, ":this_mode"),
- (agent_set_slot, ":agent_no", 1026, ":now"),
- (assign, ":effective_ok", 1),
- (else_try),
- (agent_get_slot, ":last_ok_time", ":agent_no", 1026),
- (store_sub, ":gap", ":now", ":last_ok_time"),
- (try_begin),
- (lt, ":gap", 500),
- (neq, ":was_mode", 0),
- (agent_set_slot, ":agent_no", 1018, ":this_mode"),
- (assign, ":effective_ok", 1),
- (else_try),
- (agent_set_slot, ":agent_no", 1018, 0),
- (try_begin),
- (neq, ":was_mode", 0),
- (assign, ":need_cleanup", 1),
- (try_end),
- (try_end),
- (try_end),
- # ------------------------------------------------------------
- # 5. 弹药不足检测(切近战)
- # ------------------------------------------------------------
- (try_begin),
- (eq, ":effective_ok", 1),
- (agent_get_ammo, ":ammo_check", ":agent_no", 1),
- (le, ":ammo_check", 0),
- (assign, ":melee_weapon", -1),
- (try_for_range, ":slot_idx", 0, 4),
- (agent_get_item_slot, ":slot_item", ":agent_no", ":slot_idx"),
- (gt, ":slot_item", 0),
- (item_get_type, ":slot_type", ":slot_item"),
- (try_begin),
- (this_or_next|eq, ":slot_type", itp_type_one_handed_wpn),
- (this_or_next|eq, ":slot_type", itp_type_two_handed_wpn),
- (eq, ":slot_type", itp_type_polearm),
- (eq, ":melee_weapon", -1),
- (assign, ":melee_weapon", ":slot_item"),
- (try_end),
- (try_end),
- (try_begin),
- (gt, ":melee_weapon", 0),
- (agent_set_wielded_item, ":agent_no", ":melee_weapon"),
- (try_end),
-
- (assign, ":need_cleanup", 1),
- (assign, ":effective_ok", 0),
- (try_end),
- # ------------------------------------------------------------
- # 6. 主射击逻辑
- # ------------------------------------------------------------
- (try_begin),
- (eq, ":effective_ok", 1),
- (eq, ":need_cleanup", 0),
- # 获取有效目标
- (agent_ai_get_look_target, ":target", ":agent_no"),
- (gt, ":target", -1),
- (agent_is_alive, ":target"),
- (agent_is_human, ":target"),
- (agent_get_team, ":team1", ":agent_no"),
- (agent_get_team, ":team2", ":target"),
- (teams_are_enemies, ":team1", ":team2"),
- # 设定瞄准高度基准
- (agent_get_position, pos1, ":target"),
- (agent_get_horse, ":target_horse", ":target"),
- (try_begin),
- (gt, ":target_horse", -1),
- (position_move_z, pos1, 220, 1),
- (else_try),
- (position_move_z, pos1, 110, 1),
- (try_end),
- (agent_get_position, pos2, ":agent_no"),
- (try_begin),
- (eq, ":mounted", 1),
- (position_move_z, pos2, 250, 1),
- (else_try),
- (position_move_z, pos2, 140, 1),
- (try_end),
- # 读取三维相对坐标
- (set_fixed_point_multiplier, 1000),
- (position_get_x, ":tx", pos1),
- (position_get_y, ":ty", pos1),
- (position_get_z, ":tz", pos1),
- (position_get_x, ":px2", pos2),
- (position_get_y, ":py2", pos2),
- (position_get_z, ":pz2", pos2),
- (store_sub, ":dx", ":tx", ":px2"),
- (store_sub, ":dy", ":ty", ":py2"),
- (store_sub, ":dz", ":tz", ":pz2"),
- # 目标切换检测(重置缓存)
- (agent_get_slot, ":last_target", ":agent_no", 1034),
- (try_begin),
- (neq, ":target", ":last_target"),
- (store_random_in_range, ":switch_cd", 200, 1001),
- (store_add, ":switch_until", ":now", ":switch_cd"),
- (agent_set_slot, ":agent_no", 1028, ":switch_until"),
- (agent_set_slot, ":agent_no", 1034, ":target"),
- (agent_set_slot, ":agent_no", 1013, 0),
- (agent_set_slot, ":agent_no", 1019, 0),
- (agent_set_slot, ":agent_no", 1025, 0),
- (agent_get_position, pos5, ":target"),
- (agent_get_speed, pos0, ":target"),
- (position_transform_position_to_parent, pos6, pos5, pos0),
- (position_get_x, ":tvx", pos6),
- (position_get_y, ":tvy", pos6),
- (position_get_z, ":tvz", pos6),
- (position_get_x, ":tsx", pos5),
- (position_get_y, ":tsy", pos5),
- (position_get_z, ":tsz", pos5),
- (store_sub, ":tvx", ":tvx", ":tsx"),
- (store_sub, ":tvy", ":tvy", ":tsy"),
- (store_sub, ":tvz", ":tvz", ":tsz"),
- (position_get_z, ":current_tz", pos5),
- (agent_set_slot, ":agent_no", 1035, ":tvx"),
- (agent_set_slot, ":agent_no", 1036, ":tvy"),
- (agent_set_slot, ":agent_no", 1037, ":tvz"),
- (agent_set_slot, ":agent_no", 1038, ":current_tz"),
- (try_end),
- # ------------------------------------------------------------
- # 0.3 秒物理计算冷却块
- # ------------------------------------------------------------
- (agent_get_slot, ":offset_time", ":agent_no", 1019),
- (store_sub, ":offset_elapsed", ":now", ":offset_time"),
- (try_begin),
- (ge, ":offset_elapsed", 300),
- # 计算距离
- (store_mul, ":dx_sq", ":dx", ":dx"),
- (store_mul, ":dy_sq", ":dy", ":dy"),
- (store_mul, ":dz_sq", ":dz", ":dz"),
- (store_add, ":dist_sq", ":dx_sq", ":dy_sq"),
- (store_add, ":dist_sq", ":dist_sq", ":dz_sq"),
- (set_fixed_point_multiplier, 1),
- (store_sqrt, ":dist", ":dist_sq"),
- (set_fixed_point_multiplier, 1000),
- # 目标世界速度
- (agent_get_position, pos5, ":target"),
- (agent_get_speed, pos0, ":target"),
- (position_transform_position_to_parent, pos6, pos5, pos0),
- (position_get_x, ":tvx", pos6),
- (position_get_y, ":tvy", pos6),
- (position_get_z, ":tvz", pos6),
- (position_get_x, ":tsx", pos5),
- (position_get_y, ":tsy", pos5),
- (position_get_z, ":tsz", pos5),
- (store_sub, ":tvx", ":tvx", ":tsx"),
- (store_sub, ":tvy", ":tvy", ":tsy"),
- (store_sub, ":tvz", ":tvz", ":tsz"),
- (position_get_z, ":current_tz", pos5),
- # 地形 Z 轴速度补偿
- (agent_get_slot, ":prev_tz", ":agent_no", 1038),
- (store_sub, ":dz_val", ":current_tz", ":prev_tz"),
- (try_begin),
- (gt, ":offset_elapsed", 0),
- (store_mul, ":tvz_terrain", ":dz_val", 1000),
- (val_div, ":tvz_terrain", ":offset_elapsed"),
- (val_add, ":tvz", ":tvz_terrain"),
- (try_end),
- (agent_set_slot, ":agent_no", 1038, ":current_tz"),
- # 目标加速度计算
- (agent_get_slot, ":prev_tvx", ":agent_no", 1035),
- (agent_get_slot, ":prev_tvy", ":agent_no", 1036),
- (agent_get_slot, ":prev_tvz", ":agent_no", 1037),
- (store_sub, ":d_vx", ":tvx", ":prev_tvx"),
- (store_sub, ":d_vy", ":tvy", ":prev_tvy"),
- (store_sub, ":d_vz", ":tvz", ":prev_tvz"),
- (try_begin),
- (gt, ":offset_elapsed", 0),
- (store_mul, ":acc_x", ":d_vx", 1000),
- (val_div, ":acc_x", ":offset_elapsed"),
- (store_mul, ":acc_y", ":d_vy", 1000),
- (val_div, ":acc_y", ":offset_elapsed"),
- (store_mul, ":acc_z", ":d_vz", 1000),
- (val_div, ":acc_z", ":offset_elapsed"),
- (try_end),
- (agent_set_slot, ":agent_no", 1035, ":tvx"),
- (agent_set_slot, ":agent_no", 1036, ":tvy"),
- (agent_set_slot, ":agent_no", 1037, ":tvz"),
- (set_fixed_point_multiplier, 1000),
- # 射手自身速度 (仅骑乘)
- (assign, ":shooter_vx", 0),
- (assign, ":shooter_vy", 0),
- (assign, ":shooter_vz", 0),
- (try_begin),
- (eq, ":mounted", 1),
- (agent_get_position, pos3, ":agent_no"),
- (agent_get_speed, pos0, ":agent_no"),
- (position_transform_position_to_parent, pos4, pos3, pos0),
- (position_get_x, ":swx", pos4),
- (position_get_y, ":swy", pos4),
- (position_get_z, ":swz", pos4),
- (position_get_x, ":sx", pos3),
- (position_get_y, ":sy", pos3),
- (position_get_z, ":sz", pos3),
- (store_sub, ":shooter_vx", ":swx", ":sx"),
- (store_sub, ":shooter_vy", ":swy", ":sy"),
- (store_sub, ":shooter_vz", ":swz", ":sz"),
- (try_end),
- # 相对速度
- (store_sub, ":relvx", ":tvx", ":shooter_vx"),
- (store_sub, ":relvy", ":tvy", ":shooter_vy"),
- (store_sub, ":relvz", ":tvz", ":shooter_vz"),
- # 弹速修正
- (assign, ":speed_mul", 1000),
- (agent_get_troop_id, ":troop_no_bt", ":agent_no"),
- (try_begin),
- (eq, ":weapon_kind", 1), # 弓
- (store_skill_level, ":pd_level", 33, ":troop_no_bt"),
- (assign, ":speed_mul", ":pd_level"),
- (val_mul, ":speed_mul", 50),
- (val_add, ":speed_mul", 1250),
- (try_begin),
- (eq, ":mounted", 1),
- (store_skill_level, ":h_archery", 23, ":troop_no_bt"),
- (assign, ":bonus", ":h_archery"),
- (val_sub, ":bonus", 6),
- (val_mul, ":bonus", 40),
- (val_add, ":speed_mul", ":bonus"),
- (try_end),
- (val_max, ":speed_mul", 500),
- (else_try),
- (eq, ":weapon_kind", 2), # 弩
- (try_begin),
- (eq, ":mounted", 1),
- (assign, ":speed_mul", 1300),
- (else_try),
- (assign, ":speed_mul", 1180),
- (try_end),
-
- (else_try),
- (eq, ":weapon_kind", 3), # 投掷
- (store_skill_level, ":pt_level", 34, ":troop_no_bt"),
- (assign, ":speed_mul", ":pt_level"),
- (val_mul, ":speed_mul", 60),
- (val_add, ":speed_mul", 1250),
- (try_begin),
- (eq, ":mounted", 1),
- (store_skill_level, ":h_archery", 23, ":troop_no_bt"),
- (assign, ":throw_bonus", ":h_archery"),
- (val_mul, ":throw_bonus", 20),
- (val_add, ":speed_mul", ":throw_bonus"),
- (try_end),
-
- (else_try),
- (eq, ":weapon_kind", 4), # 火枪
- (try_begin),
- (eq, ":mounted", 1),
- (assign, ":speed_mul", 1300),
- (else_try),
- (assign, ":speed_mul", 1180),
- (try_end),
- (try_end),
- (item_get_missile_speed, ":speed", ":weapon"),
- (val_mul, ":speed", ":speed_mul"),
- (val_div, ":speed", 1000),
- # 基础飞行时间
- (assign, ":t_ms", 0),
- (try_begin),
- (gt, ":speed", 0),
- (store_div, ":t_ms", ":dist", ":speed"),
- (try_end),
- # 修正 1:径向速度补偿
- (assign, ":dt1_ms", 0),
- (try_begin),
- (gt, ":dist", 0),
- (gt, ":speed", 0),
- (gt, ":t_ms", 0),
- (store_div, ":dx_1000", ":dx", 1000),
- (store_div, ":dy_1000", ":dy", 1000),
- (store_div, ":dz_1000", ":dz", 1000),
- (store_mul, ":vr_num", ":tvx", ":dx_1000"),
- (store_mul, ":tmp", ":tvy", ":dy_1000"),
- (val_add, ":vr_num", ":tmp"),
- (store_mul, ":tmp", ":tvz", ":dz_1000"),
- (val_add, ":vr_num", ":tmp"),
- (store_div, ":dist_div", ":dist", 1000),
- (try_begin),
- (gt, ":dist_div", 0),
- (store_div, ":vr_p", ":vr_num", ":dist_div"),
- (store_mul, ":dt1_ms", ":t_ms", ":vr_p"),
- (val_div, ":dt1_ms", ":speed"),
- (val_div, ":dt1_ms", 1000),
- (try_end),
- (try_end),
- (try_begin),
- (gt, ":t_ms", 0),
- (val_add, ":t_ms", ":dt1_ms"),
- (val_max, ":t_ms", 1),
- (try_end),
- # 修正 2:仰角一阶修正
- (assign, ":dt_elev", 0),
- (try_begin),
- (gt, ":t_ms", 0),
- (gt, ":speed", 0),
- (store_div, ":t_10", ":t_ms", 10),
- (store_mul, ":t_10_sq", ":t_10", ":t_10"),
- (store_mul, ":t_10_cb", ":t_10_sq", ":t_10"),
- (store_mul, ":v_sq", ":speed", ":speed"),
- (try_begin),
- (gt, ":v_sq", 0),
- (store_div, ":dt_elev", ":t_10_cb", ":v_sq"),
- (val_div, ":dt_elev", 80),
- (try_end),
- (try_end),
- (try_begin),
- (gt, ":dt_elev", 0),
- (val_add, ":t_ms", ":dt_elev"),
- (try_end),
- # 修正 3:相对高度修正
- (assign, ":dt_height", 0),
- (try_begin),
- (gt, ":dist", 0),
- (gt, ":speed", 0),
- (gt, ":t_ms", 0),
- (neq, ":dz", 0),
- (store_mul, ":k_1000", ":dz", 1000),
- (val_div, ":k_1000", ":dist"),
- (store_div, ":t_10_h", ":t_ms", 10),
- (store_mul, ":t_10_h_sq", ":t_10_h", ":t_10_h"),
- (store_mul, ":dt_height", ":k_1000", ":t_10_h_sq"),
- (val_div, ":dt_height", ":speed"),
- (val_div, ":dt_height", 2000),
- (try_end),
- (try_begin),
- (neq, ":dt_height", 0),
- (val_add, ":t_ms", ":dt_height"),
- (try_end),
- # 修正 4:空气阻力修正
- (assign, ":dt2_ms", 0),
- (try_begin),
- (gt, ":t_ms", 0),
- (gt, ":dist", 0),
- (assign, ":k_micro", 1200),
- (store_div, ":dist_m", ":dist", 1000),
- (store_mul, ":u_1000", ":dist_m", ":k_micro"),
- (val_div, ":u_1000", 1000),
- (try_begin),
- (gt, ":u_1000", 0),
- (store_mul, ":dt_a", ":t_ms", ":u_1000"),
- (val_div, ":dt_a", 2000),
- (store_mul, ":dt_b", ":dt_a", ":u_1000"),
- (val_div, ":dt_b", 3000),
- (store_add, ":dt2_ms", ":dt_a", ":dt_b"),
- (try_end),
- (try_end),
- (try_begin),
- (gt, ":dt2_ms", 0),
- (val_add, ":t_ms", ":dt2_ms"),
- (try_end),
- # 重力下坠补偿
- (store_mul, ":gravity_dz", ":t_ms", ":t_ms"),
- (val_div, ":gravity_dz", 200),
- # 提前量计算 (投掷含出手前摇)
- (assign, ":ahead_t_ms", ":t_ms"),
- (try_begin),
- (eq, ":weapon_kind", 3),
- (item_get_speed_rating, ":weapon_speed", ":weapon"),
- (try_begin),
- (gt, ":weapon_speed", 0),
- (store_div, ":throw_delay", 6000, ":weapon_speed"),
- (val_add, ":ahead_t_ms", ":throw_delay"),
- (try_end),
- (try_end),
- (store_mul, ":ahead_dx", ":tvx", ":ahead_t_ms"),
- (val_div, ":ahead_dx", 1000),
- (store_mul, ":ahead_dy", ":tvy", ":ahead_t_ms"),
- (val_div, ":ahead_dy", 1000),
- (store_mul, ":ahead_dz", ":tvz", ":ahead_t_ms"),
- (val_div, ":ahead_dz", 1000),
- # 加速度提前量 (含 150ms 补偿)
- (store_mul, ":tvx_sq", ":tvx", ":tvx"),
- (store_mul, ":tvy_sq", ":tvy", ":tvy"),
- (store_mul, ":tvz_sq", ":tvz", ":tvz"),
- (store_add, ":tv_sq_sum", ":tvx_sq", ":tvy_sq"),
- (store_add, ":tv_sq_sum", ":tv_sq_sum", ":tvz_sq"),
- (try_begin),
- (gt, ":tv_sq_sum", 1000000),
- (store_add, ":acc_time_ms", ":ahead_t_ms", 150),
- (store_mul, ":acc_t2", ":acc_time_ms", ":acc_time_ms"),
- (val_div, ":acc_t2", 1000),
- (store_mul, ":acc_off_x", ":acc_x", ":acc_t2"),
- (val_div, ":acc_off_x", 2000),
- (val_add, ":ahead_dx", ":acc_off_x"),
- (store_mul, ":acc_off_y", ":acc_y", ":acc_t2"),
- (val_div, ":acc_off_y", 2000),
- (val_add, ":ahead_dy", ":acc_off_y"),
- (store_mul, ":acc_off_z", ":acc_z", ":acc_t2"),
- (val_div, ":acc_off_z", 2000),
- (val_add, ":ahead_dz", ":acc_off_z"),
- (try_end),
- # 固定偏差
- (store_add, ":dist_plus", ":dist", 135000),
- (store_mul, ":bias_x", ":relvx", ":dist_plus"),
- (val_div, ":bias_x", 1500000),
- (store_mul, ":bias_y", ":relvy", ":dist_plus"),
- (val_div, ":bias_y", 1500000),
- # 随机误差 (每 0.5 秒刷新)
- (agent_get_slot, ":noise_time", ":agent_no", 1013),
- (store_sub, ":noise_elapsed", ":now", ":noise_time"),
- (try_begin),
- (ge, ":noise_elapsed", 500),
- (try_begin),
- (eq, ":weapon_kind", 1), # 弓
- (assign, ":noise_mul", 2000),
- (else_try),
- (eq, ":weapon_kind", 2), # 弩
- (assign, ":noise_mul", 1000),
- (else_try),
- (eq, ":weapon_kind", 3), # 投掷
- (assign, ":noise_mul", 500),
- (else_try),
- (eq, ":weapon_kind", 4), # 火枪
- (assign, ":noise_mul", 500),
- (try_end),
- (try_begin),
- (gt, ":noise_mul", 0),
- (agent_get_troop_id, ":troop_no", ":agent_no"),
- (assign, ":weapon_prof", 0),
- (try_begin),
- (eq, ":weapon_kind", 1),
- (store_proficiency_level, ":weapon_prof", ":troop_no", 3),
- (else_try),
- (eq, ":weapon_kind", 2),
- (store_proficiency_level, ":weapon_prof", ":troop_no", 4),
- (else_try),
- (eq, ":weapon_kind", 3),
- (store_proficiency_level, ":weapon_prof", ":troop_no", 5),
- (else_try),
- (eq, ":weapon_kind", 4),
- (store_proficiency_level, ":weapon_prof", ":troop_no", 6),
- (try_end),
- (set_fixed_point_multiplier, 1000),
- (assign, ":sqrt_bp", ":weapon_prof"),
- (val_mul, ":sqrt_bp", 1000),
- (store_sqrt, ":sqrt_bp", ":sqrt_bp"),
- (store_mul, ":bp_temp", ":sqrt_bp", 3),
- (val_div, ":bp_temp", 10),
- (store_add, ":bp_den", 1000, ":bp_temp"),
- (assign, ":bp_factor", 1000000),
- (val_div, ":bp_factor", ":bp_den"),
- (assign, ":h_factor", 0),
- (try_begin),
- (eq, ":mounted", 1),
- (store_skill_level, ":h_archery", 23, ":troop_no"),
- (assign, ":sqrt_h", ":h_archery"),
- (val_mul, ":sqrt_h", 1000),
- (store_sqrt, ":sqrt_h", ":sqrt_h"),
- (store_mul, ":h_temp", ":sqrt_h", 2),
- (store_add, ":h_den", 1000, ":h_temp"),
- (assign, ":h_factor", 1000000),
- (val_div, ":h_factor", ":h_den"),
- (try_end),
- (store_div, ":base_sigma", ":dist", 20),
- (val_max, ":base_sigma", 1),
- (val_mul, ":base_sigma", ":bp_factor"),
- (val_div, ":base_sigma", 1000),
- (val_max, ":base_sigma", 1),
- (assign, ":neg_b", ":base_sigma"),
- (val_mul, ":neg_b", -1),
- (assign, ":pos_b", ":base_sigma"),
- (val_add, ":pos_b", 1),
- (assign, ":base_x", 0),
- (try_for_range, ":i", 0, 3),
- (store_random_in_range, ":r", ":neg_b", ":pos_b"),
- (val_add, ":base_x", ":r"),
- (try_end),
- (assign, ":base_y", 0),
- (try_for_range, ":i", 0, 3),
- (store_random_in_range, ":r", ":neg_b", ":pos_b"),
- (val_add, ":base_y", ":r"),
- (try_end),
- (assign, ":base_z", 0),
- (try_for_range, ":i", 0, 3),
- (store_random_in_range, ":r", ":neg_b", ":pos_b"),
- (val_add, ":base_z", ":r"),
- (try_end),
- (store_mul, ":shift_x", ":relvx", ":t_ms"),
- (val_div, ":shift_x", 1000),
- (store_mul, ":shift_y", ":relvy", ":t_ms"),
- (val_div, ":shift_y", 1000),
- (store_mul, ":shift_z", ":relvz", ":t_ms"),
- (val_div, ":shift_z", 1000),
- (assign, ":g_shared", 0),
- (try_for_range, ":i", 0, 3),
- (store_random_in_range, ":r", -1000, 1001),
- (val_add, ":g_shared", ":r"),
- (try_end),
- (store_mul, ":rel_x", ":shift_x", ":g_shared"),
- (val_div, ":rel_x", 1000),
- (val_mul, ":rel_x", ":bp_factor"),
- (val_div, ":rel_x", 1000),
- (store_mul, ":rel_y", ":shift_y", ":g_shared"),
- (val_div, ":rel_y", 1000),
- (val_mul, ":rel_y", ":bp_factor"),
- (val_div, ":rel_y", 1000),
- (store_mul, ":rel_z", ":shift_z", ":g_shared"),
- (val_div, ":rel_z", 1000),
- (val_mul, ":rel_z", ":bp_factor"),
- (val_div, ":rel_z", 1000),
- (store_add, ":noise_x", ":base_x", ":rel_x"),
- (store_add, ":noise_y", ":base_y", ":rel_y"),
- (store_add, ":noise_z", ":base_z", ":rel_z"),
- (try_begin),
- (eq, ":mounted", 1),
- (store_mul, ":v_sq_x", ":shooter_vx", ":shooter_vx"),
- (store_mul, ":v_sq_y", ":shooter_vy", ":shooter_vy"),
- (store_mul, ":v_sq_z", ":shooter_vz", ":shooter_vz"),
- (store_add, ":v_sq_sum", ":v_sq_x", ":v_sq_y"),
- (store_add, ":v_sq_sum", ":v_sq_sum", ":v_sq_z"),
- (set_fixed_point_multiplier, 1),
- (store_sqrt, ":speed_mag", ":v_sq_sum"),
- (set_fixed_point_multiplier, 1000),
- (store_mul, ":n2base", ":speed_mag", ":t_ms"),
- (val_div, ":n2base", 1000),
- (assign, ":gauss_x", 0),
- (try_for_range, ":i", 0, 3),
- (store_random_in_range, ":r", -1000, 1001),
- (val_add, ":gauss_x", ":r"),
- (try_end),
- (assign, ":gauss_y", 0),
- (try_for_range, ":i", 0, 3),
- (store_random_in_range, ":r", -1000, 1001),
- (val_add, ":gauss_y", ":r"),
- (try_end),
- (assign, ":gauss_z", 0),
- (try_for_range, ":i", 0, 3),
- (store_random_in_range, ":r", -1000, 1001),
- (val_add, ":gauss_z", ":r"),
- (try_end),
- (store_mul, ":noise2_x", ":n2base", ":gauss_x"),
- (val_div, ":noise2_x", 1000),
- (val_mul, ":noise2_x", ":h_factor"),
- (val_div, ":noise2_x", 1000),
- (store_mul, ":noise2_y", ":n2base", ":gauss_y"),
- (val_div, ":noise2_y", 1000),
- (val_mul, ":noise2_y", ":h_factor"),
- (val_div, ":noise2_y", 1000),
- (store_mul, ":noise2_z", ":n2base", ":gauss_z"),
- (val_div, ":noise2_z", 1000),
- (val_mul, ":noise2_z", ":h_factor"),
- (val_div, ":noise2_z", 1000),
- (val_add, ":noise_x", ":noise2_x"),
- (val_add, ":noise_y", ":noise2_y"),
- (val_add, ":noise_z", ":noise2_z"),
- (try_end),
- (val_mul, ":noise_x", ":noise_mul"),
- (val_div, ":noise_x", 1000),
- (val_mul, ":noise_y", ":noise_mul"),
- (val_div, ":noise_y", 1000),
- (val_mul, ":noise_z", ":noise_mul"),
- (val_div, ":noise_z", 1000),
- (else_try),
- (assign, ":noise_x", 0),
- (assign, ":noise_y", 0),
- (assign, ":noise_z", 0),
- (try_end),
- (agent_set_slot, ":agent_no", 1014, ":noise_x"),
- (agent_set_slot, ":agent_no", 1015, ":noise_y"),
- (agent_set_slot, ":agent_no", 1016, ":noise_z"),
- (agent_set_slot, ":agent_no", 1013, ":now"),
- (try_end),
- (agent_get_slot, ":noise_x", ":agent_no", 1014),
- (agent_get_slot, ":noise_y", ":agent_no", 1015),
- (agent_get_slot, ":noise_z", ":agent_no", 1016),
- # 汇总所有偏移并缓存
- (store_add, ":total_offset_x", ":ahead_dx", ":bias_x"),
- (val_add, ":total_offset_x", ":noise_x"),
- (store_add, ":total_offset_y", ":ahead_dy", ":bias_y"),
- (val_add, ":total_offset_y", ":noise_y"),
- (store_add, ":total_offset_z", ":ahead_dz", ":noise_z"),
- (val_add, ":total_offset_z", ":gravity_dz"),
- (agent_set_slot, ":agent_no", 1020, ":total_offset_x"),
- (agent_set_slot, ":agent_no", 1021, ":total_offset_y"),
- (agent_set_slot, ":agent_no", 1022, ":total_offset_z"),
- (agent_set_slot, ":agent_no", 1023, ":t_ms"),
- # 视线与分兵种方位检查
- (try_begin),
- (position_has_line_of_sight_to_position, pos2, pos1),
- (assign, ":los_check", 1),
- (try_begin),
- (eq, ":mounted", 1),
- (agent_get_position, pos7, ":agent_no"),
- (position_transform_position_to_local, pos8, pos7, pos1),
- (position_get_x, ":enemy_local_x", pos8),
- (position_get_y, ":enemy_local_y", pos8),
- (assign, ":side_ok", 0),
-
- (try_begin),
- (eq, ":weapon_kind", 1), # 弓骑兵: 左180 右20
- (try_begin),
- (le, ":enemy_local_x", 0),
- (assign, ":side_ok", 1),
- (else_try),
- (gt, ":enemy_local_y", 0),
- (store_mul, ":check_x", ":enemy_local_x", 1000),
- (store_mul, ":check_y", ":enemy_local_y", 364),
- (le, ":check_x", ":check_y"),
- (assign, ":side_ok", 1),
- (try_end),
-
- (else_try),
- (this_or_next|eq, ":weapon_kind", 2), # 弩/火枪骑兵: 左150 右80
- (eq, ":weapon_kind", 4),
- (try_begin),
- (le, ":enemy_local_x", 0),
- (ge, ":enemy_local_y", 0),
- (assign, ":side_ok", 1),
- (else_try),
- (lt, ":enemy_local_x", 0),
- (lt, ":enemy_local_y", 0),
- (store_mul, ":check_y", ":enemy_local_y", 577),
- (store_mul, ":check_x", ":enemy_local_x", 1000),
- (ge, ":check_y", ":check_x"),
- (assign, ":side_ok", 1),
- (else_try),
- (gt, ":enemy_local_x", 0),
- (gt, ":enemy_local_y", 0),
- (store_mul, ":check_x", ":enemy_local_x", 1000),
- (store_mul, ":check_y", ":enemy_local_y", 5671),
- (le, ":check_x", ":check_y"),
- (assign, ":side_ok", 1),
- (try_end),
-
- (else_try),
- (eq, ":weapon_kind", 3), # 投掷骑兵: 左165 右70
- (try_begin),
- (le, ":enemy_local_x", 0),
- (ge, ":enemy_local_y", 0),
- (assign, ":side_ok", 1),
- (else_try),
- (lt, ":enemy_local_x", 0),
- (lt, ":enemy_local_y", 0),
- (store_mul, ":check_y", ":enemy_local_y", 268),
- (store_mul, ":check_x", ":enemy_local_x", 1000),
- (ge, ":check_y", ":check_x"),
- (assign, ":side_ok", 1),
- (else_try),
- (gt, ":enemy_local_x", 0),
- (gt, ":enemy_local_y", 0),
- (store_mul, ":check_x", ":enemy_local_x", 1000),
- (store_mul, ":check_y", ":enemy_local_y", 2747),
- (le, ":check_x", ":check_y"),
- (assign, ":side_ok", 1),
- (try_end),
- (try_end),
-
- (try_begin),
- (eq, ":side_ok", 0),
- (assign, ":los_check", 0),
- (try_end),
- (try_end),
- (agent_set_slot, ":agent_no", 1025, ":los_check"),
- (else_try),
- (agent_set_slot, ":agent_no", 1025, 0),
- (try_end),
- (agent_set_slot, ":agent_no", 1019, ":now"),
- (try_end),
- # 应用缓存并瞄准
- (agent_get_slot, ":los_ok", ":agent_no", 1025),
- (agent_get_slot, ":offset_x", ":agent_no", 1020),
- (agent_get_slot, ":offset_y", ":agent_no", 1021),
- (agent_get_slot, ":offset_z", ":agent_no", 1022),
- (agent_get_slot, ":t_ms", ":agent_no", 1023),
- (position_get_x, ":px", pos1),
- (position_get_y, ":py", pos1),
- (position_get_z, ":pz", pos1),
- (val_add, ":px", ":offset_x"),
- (val_add, ":py", ":offset_y"),
- (val_add, ":pz", ":offset_z"),
- (position_set_x, pos1, ":px"),
- (position_set_y, pos1, ":py"),
- (position_set_z, pos1, ":pz"),
- (try_begin),
- (eq, ":movement_order", mordr_follow),
- (neq, ":cur_action", 1),
- (gt, ":target", -1),
- (agent_set_look_target_agent, ":agent_no", ":target"),
- (else_try),
- (agent_set_look_target_position, ":agent_no", pos1),
- (try_end),
-
- # 拉弓追踪
- (try_begin),
- (eq, ":cur_action", 1),
- (agent_get_slot, ":draw_start", ":agent_no", 1027),
- (try_begin),
- (eq, ":draw_start", 0),
- (agent_set_slot, ":agent_no", 1027, ":now"),
- (assign, ":draw_start", ":now"),
-
- # 分兵种生成最短准备时长
- (try_begin),
- (eq, ":weapon_kind", 3),
- (store_random_in_range, ":new_req", 800, 1201),
- (else_try),
- (eq, ":weapon_kind", 2),
- (store_random_in_range, ":new_req", 1200, 1801),
- (else_try),
- (eq, ":weapon_kind", 4),
- (store_random_in_range, ":new_req", 1200, 1801),
- (else_try),
- (store_random_in_range, ":new_req", 1600, 2401),
- (try_end),
-
- (agent_set_slot, ":agent_no", 1012, ":new_req"),
- (try_end),
- (else_try),
- (agent_set_slot, ":agent_no", 1027, 0),
- (assign, ":draw_start", ":now"),
- (try_end),
- (store_sub, ":draw_duration", ":now", ":draw_start"),
- (agent_get_slot, ":cd", ":agent_no", 1012),
- (agent_get_slot, ":switch_until", ":agent_no", 1028),
- # 步兵站桩逻辑
- (assign, ":near_release", 0),
- (try_begin),
- (eq, ":mounted", 0),
- (eq, ":los_ok", 1),
- (try_begin),
- (this_or_next|eq, ":weapon_kind", 1),
- (this_or_next|eq, ":weapon_kind", 4),
- (eq, ":weapon_kind", 2),
- (eq, ":cur_action", 1),
- (store_sub, ":cd_minus_1000", ":cd", 1000),
- (ge, ":draw_duration", ":cd_minus_1000"),
- (assign, ":near_release", 1),
-
- (else_try),
- (eq, ":weapon_kind", 2),
- (eq, ":cur_action", 5),
- (assign, ":near_release", 1),
- (try_end),
- (try_end),
- (try_begin),
- (eq, ":near_release", 1),
- (agent_get_slot, ":move_locked", ":agent_no", 1031),
- (try_begin),
- (eq, ":move_locked", 0),
- (agent_force_rethink, ":agent_no"),
- (agent_set_slot, ":agent_no", 1031, 1),
- (try_end),
- (agent_get_position, pos9, ":agent_no"),
- (agent_set_scripted_destination, ":agent_no", pos9, 1, 1),
- (else_try),
- (agent_get_slot, ":move_locked", ":agent_no", 1031),
- (try_begin),
- (eq, ":move_locked", 1),
- (agent_clear_scripted_mode, ":agent_no"),
- (agent_force_rethink, ":agent_no"),
- (agent_set_slot, ":agent_no", 1031, 0),
- (try_end),
- (try_end),
- # 动作决策
- (try_begin),
- (eq, ":los_ok", 1),
- (lt, ":t_ms", 500),
- (agent_set_attack_action, ":agent_no", 3, 1),
- (try_end),
- (try_begin),
- (eq, ":cur_action", 1),
- (agent_set_attack_action, ":agent_no", 3, 1),
- (try_end),
- (try_begin),
- (gt, ":draw_duration", 6000),
- (agent_set_attack_action, ":agent_no", -2, 1),
- (agent_set_slot, ":agent_no", 1027, 0),
- (try_end),
- (try_begin),
- (eq, ":los_ok", 1),
- (ge, ":draw_duration", ":cd"),
- (ge, ":now", ":switch_until"),
- (agent_set_attack_action, ":agent_no", 3, 0),
- (agent_set_slot, ":agent_no", 1027, 0),
- (try_end),
- (try_begin),
- (eq, ":los_ok", 0),
- (neq, ":cur_action", 1),
- (agent_set_attack_action, ":agent_no", -2, 1),
- (try_end),
- (try_end),
- # ------------------------------------------------------------
- # 7. 统一清理区
- # ------------------------------------------------------------
- (try_begin),
- (eq, ":need_cleanup", 1),
-
- (agent_set_attack_action, ":agent_no", -2, 1),
- (agent_clear_scripted_mode, ":agent_no"),
- (agent_force_rethink, ":agent_no"),
- (agent_set_slot, ":agent_no", 1018, 0),
- (agent_set_slot, ":agent_no", 1025, 0),
- (agent_set_slot, ":agent_no", 1027, 0),
- (agent_set_slot, ":agent_no", 1028, 0),
- (agent_set_slot, ":agent_no", 1031, 0),
- (agent_set_slot, ":agent_no", 1034, 0),
- (try_end),
- (try_end),
- ],
- []),
复制代码 |
0.000000 0.000000 0.000000 833 1700 1 1224979098644774912 2365 1 1224979098644774913 12 1 1224979098644774914 1712 1 1224979098644774914 1702 1 1224979098644774914 1704 1 1224979098644774914 2147483679 2 1224979098644774914 1224979098644774912 525 3 1224979098644774915 1224979098644774914 1018 2133 2 1224979098644774916 0 2133 2 1224979098644774917 0 1726 3 1224979098644774918 1224979098644774914 0 4 0 32 2 1224979098644774918 0 1570 2 1224979098644774919 1224979098644774918 4 0 31 2 1224979098644774919 8 2133 2 1224979098644774917 1 5 0 31 2 1224979098644774919 9 2133 2 1224979098644774917 2 5 0 31 2 1224979098644774919 10 2133 2 1224979098644774917 3 5 0 1073741855 2 1224979098644774919 16 31 2 1224979098644774919 17 2133 2 1224979098644774917 4 3 0 3 0 2133 2 1224979098644774920 0 4 0 1714 2 1224979098644774921 1224979098644774914 32 2 1224979098644774921 -1 2133 2 1224979098644774920 1 3 0 2133 2 1224979098644774922 0 4 0 32 2 1224979098644774917 0 4 0 31 2 1224979098644774920 1 2133 2 1224979098644774922 1224979098644774917 5 0 2120 3 1224979098644774922 1224979098644774917 3 3 0 3 0 525 3 1224979098644774923 1224979098644774914 1029 525 3 1224979098644774924 1224979098644774914 1030 2133 2 1224979098644774925 0 4 0 2147483679 2 1224979098644774917 1224979098644774923 2133 2 1224979098644774925 1 5 0 2147483679 2 1224979098644774920 1224979098644774924 2133 2 1224979098644774925 1 3 0 4 0 31 2 1224979098644774925 1 505 3 1224979098644774914 1029 1224979098644774917 505 3 1224979098644774914 1030 1224979098644774920 2133 2 1224979098644774916 1 2133 2 1224979098644774915 0 3 0 1770 2 1224979098644774926 1224979098644774914 1773 2 1224979098644774927 1224979098644774914 1785 3 1224979098644774928 1224979098644774926 1224979098644774927 4 0 1073742827 0 31 2 1224979098644774928 14 2133 2 1224979098644774916 1 2133 2 1224979098644774915 0 3 0 2133 2 1224979098644774929 0 4 0 1763 2 1224979098644774930 1224979098644774914 31 2 1224979098644774930 1 2133 2 1224979098644774929 1 3 0 2133 2 1224979098644774931 0 4 0 31 2 1224979098644774916 1 505 3 1224979098644774914 1018 0 5 0 31 2 1224979098644774922 0 505 3 1224979098644774914 1018 0 4 0 2147483679 2 1224979098644774915 0 2133 2 1224979098644774916 1 3 0 5 0 31 2 1224979098644774929 1 505 3 1224979098644774914 1018 1224979098644774922 505 3 1224979098644774914 1026 1224979098644774913 2133 2 1224979098644774931 1 5 0 525 3 1224979098644774932 1224979098644774914 1026 2121 3 1224979098644774933 1224979098644774913 1224979098644774932 4 0 2147483678 2 1224979098644774933 500 2147483679 2 1224979098644774915 0 505 3 1224979098644774914 1018 1224979098644774922 2133 2 1224979098644774931 1 5 0 505 3 1224979098644774914 1018 0 4 0 2147483679 2 1224979098644774915 0 2133 2 1224979098644774916 1 3 0 3 0 3 0 4 0 31 2 1224979098644774931 1 1727 3 1224979098644774934 1224979098644774914 1 2147483680 2 1224979098644774934 0 2133 2 1224979098644774935 -1 6 3 1224979098644774936 0 4 1804 3 1224979098644774937 1224979098644774914 1224979098644774936 32 2 1224979098644774937 0 1570 2 1224979098644774938 1224979098644774937 4 0 1073741855 2 1224979098644774938 2 1073741855 2 1224979098644774938 3 31 2 1224979098644774938 4 31 2 1224979098644774935 -1 2133 2 1224979098644774935 1224979098644774937 3 0 3 0 4 0 32 2 1224979098644774935 0 1747 2 1224979098644774914 1224979098644774935 3 0 2133 2 1224979098644774916 1 2133 2 1224979098644774931 0 3 0 4 0 31 2 1224979098644774931 1 31 2 1224979098644774916 0 2080 2 1224979098644774939 1224979098644774914 32 2 1224979098644774939 -1 1702 1 1224979098644774939 1704 1 1224979098644774939 1770 2 1224979098644774940 1224979098644774914 1770 2 1224979098644774941 1224979098644774939 1788 2 1224979098644774940 1224979098644774941 1710 2 1 1224979098644774939 1714 2 1224979098644774942 1224979098644774939 4 0 32 2 1224979098644774942 -1 722 3 1 220 1 5 0 722 3 1 110 1 3 0 1710 2 2 1224979098644774914 4 0 31 2 1224979098644774920 1 722 3 2 250 1 5 0 722 3 2 140 1 3 0 2124 1 1000 726 2 1224979098644774943 1 727 2 1224979098644774944 1 728 2 1224979098644774945 1 726 2 1224979098644774946 2 727 2 1224979098644774947 2 728 2 1224979098644774948 2 2121 3 1224979098644774949 1224979098644774943 1224979098644774946 2121 3 1224979098644774950 1224979098644774944 1224979098644774947 2121 3 1224979098644774951 1224979098644774945 1224979098644774948 525 3 1224979098644774952 1224979098644774914 1034 4 0 2147483679 2 1224979098644774939 1224979098644774952 2136 3 1224979098644774953 200 1001 2120 3 1224979098644774954 1224979098644774913 1224979098644774953 505 3 1224979098644774914 1028 1224979098644774954 505 3 1224979098644774914 1034 1224979098644774939 505 3 1224979098644774914 1013 0 505 3 1224979098644774914 1019 0 505 3 1224979098644774914 1025 0 1710 2 5 1224979098644774939 1689 2 0 1224979098644774939 716 3 6 5 0 726 2 1224979098644774955 6 727 2 1224979098644774956 6 728 2 1224979098644774957 6 726 2 1224979098644774958 5 727 2 1224979098644774959 5 728 2 1224979098644774960 5 2121 3 1224979098644774955 1224979098644774955 1224979098644774958 2121 3 1224979098644774956 1224979098644774956 1224979098644774959 2121 3 1224979098644774957 1224979098644774957 1224979098644774960 728 2 1224979098644774961 5 505 3 1224979098644774914 1035 1224979098644774955 505 3 1224979098644774914 1036 1224979098644774956 505 3 1224979098644774914 1037 1224979098644774957 505 3 1224979098644774914 1038 1224979098644774961 3 0 525 3 1224979098644774962 1224979098644774914 1019 2121 3 1224979098644774963 1224979098644774913 1224979098644774962 4 0 30 2 1224979098644774963 300 2122 3 1224979098644774964 1224979098644774949 1224979098644774949 2122 3 1224979098644774965 1224979098644774950 1224979098644774950 2122 3 1224979098644774966 1224979098644774951 1224979098644774951 2120 3 1224979098644774967 1224979098644774964 1224979098644774965 2120 3 1224979098644774967 1224979098644774967 1224979098644774966 2124 1 1 2125 2 1224979098644774968 1224979098644774967 2124 1 1000 1710 2 5 1224979098644774939 1689 2 0 1224979098644774939 716 3 6 5 0 726 2 1224979098644774955 6 727 2 1224979098644774956 6 728 2 1224979098644774957 6 726 2 1224979098644774958 5 727 2 1224979098644774959 5 728 2 1224979098644774960 5 2121 3 1224979098644774955 1224979098644774955 1224979098644774958 2121 3 1224979098644774956 1224979098644774956 1224979098644774959 2121 3 1224979098644774957 1224979098644774957 1224979098644774960 728 2 1224979098644774961 5 525 3 1224979098644774969 1224979098644774914 1038 2121 3 1224979098644774970 1224979098644774961 1224979098644774969 4 0 32 2 1224979098644774963 0 2122 3 1224979098644774971 1224979098644774970 1000 2108 2 1224979098644774971 1224979098644774963 2105 2 1224979098644774957 1224979098644774971 3 0 505 3 1224979098644774914 1038 1224979098644774961 525 3 1224979098644774972 1224979098644774914 1035 525 3 1224979098644774973 1224979098644774914 1036 525 3 1224979098644774974 1224979098644774914 1037 2121 3 1224979098644774975 1224979098644774955 1224979098644774972 2121 3 1224979098644774976 1224979098644774956 1224979098644774973 2121 3 1224979098644774977 1224979098644774957 1224979098644774974 4 0 32 2 1224979098644774963 0 2122 3 1224979098644774978 1224979098644774975 1000 2108 2 1224979098644774978 1224979098644774963 2122 3 1224979098644774979 1224979098644774976 1000 2108 2 1224979098644774979 1224979098644774963 2122 3 1224979098644774980 1224979098644774977 1000 2108 2 1224979098644774980 1224979098644774963 3 0 505 3 1224979098644774914 1035 1224979098644774955 505 3 1224979098644774914 1036 1224979098644774956 505 3 1224979098644774914 1037 1224979098644774957 2124 1 1000 2133 2 1224979098644774981 0 2133 2 1224979098644774982 0 2133 2 1224979098644774983 0 4 0 31 2 1224979098644774920 1 1710 2 3 1224979098644774914 1689 2 0 1224979098644774914 716 3 4 3 0 726 2 1224979098644774984 4 727 2 1224979098644774985 4 728 2 1224979098644774986 4 726 2 1224979098644774987 3 727 2 1224979098644774988 3 728 2 1224979098644774989 3 2121 3 1224979098644774981 1224979098644774984 1224979098644774987 2121 3 1224979098644774982 1224979098644774985 1224979098644774988 2121 3 1224979098644774983 1224979098644774986 1224979098644774989 3 0 2121 3 1224979098644774990 1224979098644774955 1224979098644774981 2121 3 1224979098644774991 1224979098644774956 1224979098644774982 2121 3 1224979098644774992 1224979098644774957 1224979098644774983 2133 2 1224979098644774993 1000 1718 2 1224979098644774994 1224979098644774914 4 0 31 2 1224979098644774917 1 2170 3 1224979098644774995 33 1224979098644774994 2133 2 1224979098644774993 1224979098644774995 2107 2 1224979098644774993 50 2105 2 1224979098644774993 1250 4 0 31 2 1224979098644774920 1 2170 3 1224979098644774996 23 1224979098644774994 2133 2 1224979098644774997 1224979098644774996 2106 2 1224979098644774997 6 2107 2 1224979098644774997 40 2105 2 1224979098644774993 1224979098644774997 3 0 2111 2 1224979098644774993 500 5 0 31 2 1224979098644774917 2 4 0 31 2 1224979098644774920 1 2133 2 1224979098644774993 1300 5 0 2133 2 1224979098644774993 1180 3 0 5 0 31 2 1224979098644774917 3 2170 3 1224979098644774998 34 1224979098644774994 2133 2 1224979098644774993 1224979098644774998 2107 2 1224979098644774993 60 2105 2 1224979098644774993 1250 4 0 31 2 1224979098644774920 1 2170 3 1224979098644774996 23 1224979098644774994 2133 2 1224979098644774999 1224979098644774996 2107 2 1224979098644774999 20 2105 2 1224979098644774993 1224979098644774999 3 0 5 0 31 2 1224979098644774917 4 4 0 31 2 1224979098644774920 1 2133 2 1224979098644774993 1300 5 0 2133 2 1224979098644774993 1180 3 0 3 0 2709 2 1224979098644775000 1224979098644774918 2107 2 1224979098644775000 1224979098644774993 2108 2 1224979098644775000 1000 2133 2 1224979098644775001 0 4 0 32 2 1224979098644775000 0 2123 3 1224979098644775001 1224979098644774968 1224979098644775000 3 0 2133 2 1224979098644775002 0 4 0 32 2 1224979098644774968 0 32 2 1224979098644775000 0 32 2 1224979098644775001 0 2123 3 1224979098644775003 1224979098644774949 1000 2123 3 1224979098644775004 1224979098644774950 1000 2123 3 1224979098644775005 1224979098644774951 1000 2122 3 1224979098644775006 1224979098644774955 1224979098644775003 2122 3 1224979098644775007 1224979098644774956 1224979098644775004 2105 2 1224979098644775006 1224979098644775007 2122 3 1224979098644775007 1224979098644774957 1224979098644775005 2105 2 1224979098644775006 1224979098644775007 2123 3 1224979098644775008 1224979098644774968 1000 4 0 32 2 1224979098644775008 0 2123 3 1224979098644775009 1224979098644775006 1224979098644775008 2122 3 1224979098644775002 1224979098644775001 1224979098644775009 2108 2 1224979098644775002 1224979098644775000 2108 2 1224979098644775002 1000 3 0 3 0 4 0 32 2 1224979098644775001 0 2105 2 1224979098644775001 1224979098644775002 2111 2 1224979098644775001 1 3 0 2133 2 1224979098644775010 0 4 0 32 2 1224979098644775001 0 32 2 1224979098644775000 0 2123 3 1224979098644775011 1224979098644775001 10 2122 3 1224979098644775012 1224979098644775011 1224979098644775011 2122 3 1224979098644775013 1224979098644775012 1224979098644775011 2122 3 1224979098644775014 1224979098644775000 1224979098644775000 4 0 32 2 1224979098644775014 0 2123 3 1224979098644775010 1224979098644775013 1224979098644775014 2108 2 1224979098644775010 80 3 0 3 0 4 0 32 2 1224979098644775010 0 2105 2 1224979098644775001 1224979098644775010 3 0 2133 2 1224979098644775015 0 4 0 32 2 1224979098644774968 0 32 2 1224979098644775000 0 32 2 1224979098644775001 0 2147483679 2 1224979098644774951 0 2122 3 1224979098644775016 1224979098644774951 1000 2108 2 1224979098644775016 1224979098644774968 2123 3 1224979098644775017 1224979098644775001 10 2122 3 1224979098644775018 1224979098644775017 1224979098644775017 2122 3 1224979098644775015 1224979098644775016 1224979098644775018 2108 2 1224979098644775015 1224979098644775000 2108 2 1224979098644775015 2000 3 0 4 0 2147483679 2 1224979098644775015 0 2105 2 1224979098644775001 1224979098644775015 3 0 2133 2 1224979098644775019 0 4 0 32 2 1224979098644775001 0 32 2 1224979098644774968 0 2133 2 1224979098644775020 1200 2123 3 1224979098644775021 1224979098644774968 1000 2122 3 1224979098644775022 1224979098644775021 1224979098644775020 2108 2 1224979098644775022 1000 4 0 32 2 1224979098644775022 0 2122 3 1224979098644775023 1224979098644775001 1224979098644775022 2108 2 1224979098644775023 2000 2122 3 1224979098644775024 1224979098644775023 1224979098644775022 2108 2 1224979098644775024 3000 2120 3 1224979098644775019 1224979098644775023 1224979098644775024 3 0 3 0 4 0 32 2 1224979098644775019 0 2105 2 1224979098644775001 1224979098644775019 3 0 2122 3 1224979098644775025 1224979098644775001 1224979098644775001 2108 2 1224979098644775025 200 2133 2 1224979098644775026 1224979098644775001 4 0 31 2 1224979098644774917 3 2708 2 1224979098644775027 1224979098644774918 4 0 32 2 1224979098644775027 0 2123 3 1224979098644775028 6000 1224979098644775027 2105 2 1224979098644775026 1224979098644775028 3 0 3 0 2122 3 1224979098644775029 1224979098644774955 1224979098644775026 2108 2 1224979098644775029 1000 2122 3 1224979098644775030 1224979098644774956 1224979098644775026 2108 2 1224979098644775030 1000 2122 3 1224979098644775031 1224979098644774957 1224979098644775026 2108 2 1224979098644775031 1000 2122 3 1224979098644775032 1224979098644774955 1224979098644774955 2122 3 1224979098644775033 1224979098644774956 1224979098644774956 2122 3 1224979098644775034 1224979098644774957 1224979098644774957 2120 3 1224979098644775035 1224979098644775032 1224979098644775033 2120 3 1224979098644775035 1224979098644775035 1224979098644775034 4 0 32 2 1224979098644775035 1000000 2120 3 1224979098644775036 1224979098644775026 150 2122 3 1224979098644775037 1224979098644775036 1224979098644775036 2108 2 1224979098644775037 1000 2122 3 1224979098644775038 1224979098644774978 1224979098644775037 2108 2 1224979098644775038 2000 2105 2 1224979098644775029 1224979098644775038 2122 3 1224979098644775039 1224979098644774979 1224979098644775037 2108 2 1224979098644775039 2000 2105 2 1224979098644775030 1224979098644775039 2122 3 1224979098644775040 1224979098644774980 1224979098644775037 2108 2 1224979098644775040 2000 2105 2 1224979098644775031 1224979098644775040 3 0 2120 3 1224979098644775041 1224979098644774968 135000 2122 3 1224979098644775042 1224979098644774990 1224979098644775041 2108 2 1224979098644775042 1500000 2122 3 1224979098644775043 1224979098644774991 1224979098644775041 2108 2 1224979098644775043 1500000 525 3 1224979098644775044 1224979098644774914 1013 2121 3 1224979098644775045 1224979098644774913 1224979098644775044 4 0 30 2 1224979098644775045 500 4 0 31 2 1224979098644774917 1 2133 2 1224979098644775046 2000 5 0 31 2 1224979098644774917 2 2133 2 1224979098644775046 1000 5 0 31 2 1224979098644774917 3 2133 2 1224979098644775046 500 5 0 31 2 1224979098644774917 4 2133 2 1224979098644775046 500 3 0 4 0 32 2 1224979098644775046 0 1718 2 1224979098644775047 1224979098644774914 2133 2 1224979098644775048 0 4 0 31 2 1224979098644774917 1 2176 3 1224979098644775048 1224979098644775047 3 5 0 31 2 1224979098644774917 2 2176 3 1224979098644775048 1224979098644775047 4 5 0 31 2 1224979098644774917 3 2176 3 1224979098644775048 1224979098644775047 5 5 0 31 2 1224979098644774917 4 2176 3 1224979098644775048 1224979098644775047 6 3 0 2124 1 1000 2133 2 1224979098644775049 1224979098644775048 2107 2 1224979098644775049 1000 2125 2 1224979098644775049 1224979098644775049 2122 3 1224979098644775050 1224979098644775049 3 2108 2 1224979098644775050 10 2120 3 1224979098644775051 1000 1224979098644775050 2133 2 1224979098644775052 1000000 2108 2 1224979098644775052 1224979098644775051 2133 2 1224979098644775053 0 4 0 31 2 1224979098644774920 1 2170 3 1224979098644774996 23 1224979098644775047 2133 2 1224979098644775054 1224979098644774996 2107 2 1224979098644775054 1000 2125 2 1224979098644775054 1224979098644775054 2122 3 1224979098644775055 1224979098644775054 2 2120 3 1224979098644775056 1000 1224979098644775055 2133 2 1224979098644775053 1000000 2108 2 1224979098644775053 1224979098644775056 3 0 2123 3 1224979098644775057 1224979098644774968 20 2111 2 1224979098644775057 1 2107 2 1224979098644775057 1224979098644775052 2108 2 1224979098644775057 1000 2111 2 1224979098644775057 1 2133 2 1224979098644775058 1224979098644775057 2107 2 1224979098644775058 -1 2133 2 1224979098644775059 1224979098644775057 2105 2 1224979098644775059 1 2133 2 1224979098644775060 0 6 3 1224979098644775061 0 3 2136 3 1224979098644775062 1224979098644775058 1224979098644775059 2105 2 1224979098644775060 1224979098644775062 3 0 2133 2 1224979098644775063 0 6 3 1224979098644775061 0 3 2136 3 1224979098644775062 1224979098644775058 1224979098644775059 2105 2 1224979098644775063 1224979098644775062 3 0 2133 2 1224979098644775064 0 6 3 1224979098644775061 0 3 2136 3 1224979098644775062 1224979098644775058 1224979098644775059 2105 2 1224979098644775064 1224979098644775062 3 0 2122 3 1224979098644775065 1224979098644774990 1224979098644775001 2108 2 1224979098644775065 1000 2122 3 1224979098644775066 1224979098644774991 1224979098644775001 2108 2 1224979098644775066 1000 2122 3 1224979098644775067 1224979098644774992 1224979098644775001 2108 2 1224979098644775067 1000 2133 2 1224979098644775068 0 6 3 1224979098644775061 0 3 2136 3 1224979098644775062 -1000 1001 2105 2 1224979098644775068 1224979098644775062 3 0 2122 3 1224979098644775069 1224979098644775065 1224979098644775068 2108 2 1224979098644775069 1000 2107 2 1224979098644775069 1224979098644775052 2108 2 1224979098644775069 1000 2122 3 1224979098644775070 1224979098644775066 1224979098644775068 2108 2 1224979098644775070 1000 2107 2 1224979098644775070 1224979098644775052 2108 2 1224979098644775070 1000 2122 3 1224979098644775071 1224979098644775067 1224979098644775068 2108 2 1224979098644775071 1000 2107 2 1224979098644775071 1224979098644775052 2108 2 1224979098644775071 1000 2120 3 1224979098644775072 1224979098644775060 1224979098644775069 2120 3 1224979098644775073 1224979098644775063 1224979098644775070 2120 3 1224979098644775074 1224979098644775064 1224979098644775071 4 0 31 2 1224979098644774920 1 2122 3 1224979098644775075 1224979098644774981 1224979098644774981 2122 3 1224979098644775076 1224979098644774982 1224979098644774982 2122 3 1224979098644775077 1224979098644774983 1224979098644774983 2120 3 1224979098644775078 1224979098644775075 1224979098644775076 2120 3 1224979098644775078 1224979098644775078 1224979098644775077 2124 1 1 2125 2 1224979098644775079 1224979098644775078 2124 1 1000 2122 3 1224979098644775080 1224979098644775079 1224979098644775001 2108 2 1224979098644775080 1000 2133 2 1224979098644775081 0 6 3 1224979098644775061 0 3 2136 3 1224979098644775062 -1000 1001 2105 2 1224979098644775081 1224979098644775062 3 0 2133 2 1224979098644775082 0 6 3 1224979098644775061 0 3 2136 3 1224979098644775062 -1000 1001 2105 2 1224979098644775082 1224979098644775062 3 0 2133 2 1224979098644775083 0 6 3 1224979098644775061 0 3 2136 3 1224979098644775062 -1000 1001 2105 2 1224979098644775083 1224979098644775062 3 0 2122 3 1224979098644775084 1224979098644775080 1224979098644775081 2108 2 1224979098644775084 1000 2107 2 1224979098644775084 1224979098644775053 2108 2 1224979098644775084 1000 2122 3 1224979098644775085 1224979098644775080 1224979098644775082 2108 2 1224979098644775085 1000 2107 2 1224979098644775085 1224979098644775053 2108 2 1224979098644775085 1000 2122 3 1224979098644775086 1224979098644775080 1224979098644775083 2108 2 1224979098644775086 1000 2107 2 1224979098644775086 1224979098644775053 2108 2 1224979098644775086 1000 2105 2 1224979098644775072 1224979098644775084 2105 2 1224979098644775073 1224979098644775085 2105 2 1224979098644775074 1224979098644775086 3 0 2107 2 1224979098644775072 1224979098644775046 2108 2 1224979098644775072 1000 2107 2 1224979098644775073 1224979098644775046 2108 2 1224979098644775073 1000 2107 2 1224979098644775074 1224979098644775046 2108 2 1224979098644775074 1000 5 0 2133 2 1224979098644775072 0 2133 2 1224979098644775073 0 2133 2 1224979098644775074 0 3 0 505 3 1224979098644774914 1014 1224979098644775072 505 3 1224979098644774914 1015 1224979098644775073 505 3 1224979098644774914 1016 1224979098644775074 505 3 1224979098644774914 1013 1224979098644774913 3 0 525 3 1224979098644775072 1224979098644774914 1014 525 3 1224979098644775073 1224979098644774914 1015 525 3 1224979098644775074 1224979098644774914 1016 2120 3 1224979098644775087 1224979098644775029 1224979098644775042 2105 2 1224979098644775087 1224979098644775072 2120 3 1224979098644775088 1224979098644775030 1224979098644775043 2105 2 1224979098644775088 1224979098644775073 2120 3 1224979098644775089 1224979098644775031 1224979098644775074 2105 2 1224979098644775089 1224979098644775025 505 3 1224979098644774914 1020 1224979098644775087 505 3 1224979098644774914 1021 1224979098644775088 505 3 1224979098644774914 1022 1224979098644775089 505 3 1224979098644774914 1023 1224979098644775001 4 0 707 2 2 1 2133 2 1224979098644775090 1 4 0 31 2 1224979098644774920 1 1710 2 7 1224979098644774914 717 3 8 7 1 726 2 1224979098644775091 8 727 2 1224979098644775092 8 2133 2 1224979098644775093 0 4 0 31 2 1224979098644774917 1 4 0 2147483680 2 1224979098644775091 0 2133 2 1224979098644775093 1 5 0 32 2 1224979098644775092 0 2122 3 1224979098644775094 1224979098644775091 1000 2122 3 1224979098644775095 1224979098644775092 364 2147483680 2 1224979098644775094 1224979098644775095 2133 2 1224979098644775093 1 3 0 5 0 1073741855 2 1224979098644774917 2 31 2 1224979098644774917 4 4 0 2147483680 2 1224979098644775091 0 30 2 1224979098644775092 0 2133 2 1224979098644775093 1 5 0 2147483678 2 1224979098644775091 0 2147483678 2 1224979098644775092 0 2122 3 1224979098644775095 1224979098644775092 577 2122 3 1224979098644775094 1224979098644775091 1000 30 2 1224979098644775095 1224979098644775094 2133 2 1224979098644775093 1 5 0 32 2 1224979098644775091 0 32 2 1224979098644775092 0 2122 3 1224979098644775094 1224979098644775091 1000 2122 3 1224979098644775095 1224979098644775092 5671 2147483680 2 1224979098644775094 1224979098644775095 2133 2 1224979098644775093 1 3 0 5 0 31 2 1224979098644774917 3 4 0 2147483680 2 1224979098644775091 0 30 2 1224979098644775092 0 2133 2 1224979098644775093 1 5 0 2147483678 2 1224979098644775091 0 2147483678 2 1224979098644775092 0 2122 3 1224979098644775095 1224979098644775092 268 2122 3 1224979098644775094 1224979098644775091 1000 30 2 1224979098644775095 1224979098644775094 2133 2 1224979098644775093 1 5 0 32 2 1224979098644775091 0 32 2 1224979098644775092 0 2122 3 1224979098644775094 1224979098644775091 1000 2122 3 1224979098644775095 1224979098644775092 2747 2147483680 2 1224979098644775094 1224979098644775095 2133 2 1224979098644775093 1 3 0 3 0 4 0 31 2 1224979098644775093 0 2133 2 1224979098644775090 0 3 0 3 0 505 3 1224979098644774914 1025 1224979098644775090 5 0 505 3 1224979098644774914 1025 0 3 0 505 3 1224979098644774914 1019 1224979098644774913 3 0 525 3 1224979098644775096 1224979098644774914 1025 525 3 1224979098644775097 1224979098644774914 1020 525 3 1224979098644775098 1224979098644774914 1021 525 3 1224979098644775099 1224979098644774914 1022 525 3 1224979098644775001 1224979098644774914 1023 726 2 1224979098644775100 1 727 2 1224979098644775101 1 728 2 1224979098644775102 1 2105 2 1224979098644775100 1224979098644775097 2105 2 1224979098644775101 1224979098644775098 2105 2 1224979098644775102 1224979098644775099 729 2 1 1224979098644775100 730 2 1 1224979098644775101 731 2 1 1224979098644775102 4 0 31 2 1224979098644774928 1 2147483679 2 1224979098644774930 1 32 2 1224979098644774939 -1 1713 2 1224979098644774914 1224979098644774939 5 0 1744 2 1224979098644774914 1 3 0 4 0 31 2 1224979098644774930 1 525 3 1224979098644775103 1224979098644774914 1027 4 0 31 2 1224979098644775103 0 505 3 1224979098644774914 1027 1224979098644774913 2133 2 1224979098644775103 1224979098644774913 4 0 31 2 1224979098644774917 3 2136 3 1224979098644775104 800 1201 5 0 31 2 1224979098644774917 2 2136 3 1224979098644775104 1200 1801 5 0 31 2 1224979098644774917 4 2136 3 1224979098644775104 1200 1801 5 0 2136 3 1224979098644775104 1600 2401 3 0 505 3 1224979098644774914 1012 1224979098644775104 3 0 5 0 505 3 1224979098644774914 1027 0 2133 2 1224979098644775103 1224979098644774913 3 0 2121 3 1224979098644775105 1224979098644774913 1224979098644775103 525 3 1224979098644775106 1224979098644774914 1012 525 3 1224979098644774954 1224979098644774914 1028 2133 2 1224979098644775107 0 4 0 31 2 1224979098644774920 0 31 2 1224979098644775096 1 4 0 1073741855 2 1224979098644774917 1 1073741855 2 1224979098644774917 4 31 2 1224979098644774917 2 31 2 1224979098644774930 1 2121 3 1224979098644775108 1224979098644775106 1000 30 2 1224979098644775105 1224979098644775108 2133 2 1224979098644775107 1 5 0 31 2 1224979098644774917 2 31 2 1224979098644774930 5 2133 2 1224979098644775107 1 3 0 3 0 4 0 31 2 1224979098644775107 1 525 3 1224979098644775109 1224979098644774914 1031 4 0 31 2 1224979098644775109 0 1732 1 1224979098644774914 505 3 1224979098644774914 1031 1 3 0 1710 2 9 1224979098644774914 1730 4 1224979098644774914 9 1 1 5 0 525 3 1224979098644775109 1224979098644774914 1031 4 0 31 2 1224979098644775109 1 1735 1 1224979098644774914 1732 1 1224979098644774914 505 3 1224979098644774914 1031 0 3 0 3 0 4 0 31 2 1224979098644775096 1 2147483678 2 1224979098644775001 500 1745 3 1224979098644774914 3 1 3 0 4 0 31 2 1224979098644774930 1 1745 3 1224979098644774914 3 1 3 0 4 0 32 2 1224979098644775105 6000 1745 3 1224979098644774914 -2 1 505 3 1224979098644774914 1027 0 3 0 4 0 31 2 1224979098644775096 1 30 2 1224979098644775105 1224979098644775106 30 2 1224979098644774913 1224979098644774954 1745 3 1224979098644774914 3 0 505 3 1224979098644774914 1027 0 3 0 4 0 31 2 1224979098644775096 0 2147483679 2 1224979098644774930 1 1745 3 1224979098644774914 -2 1 3 0 3 0 4 0 31 2 1224979098644774916 1 1745 3 1224979098644774914 -2 1 1735 1 1224979098644774914 1732 1 1224979098644774914 505 3 1224979098644774914 1018 0 505 3 1224979098644774914 1025 0 505 3 1224979098644774914 1027 0 505 3 1224979098644774914 1028 0 505 3 1224979098644774914 1031 0 505 3 1224979098644774914 1034 0 3 0 3 0 0
|
|
|