骑马与砍杀中文站论坛

 找回密码
 注册(Register!)

QQ登录

只需一步,快速开始

搜索
购买霸主CDKEY 购买战帆CDKEY
查看: 90|回复: 1

[功能与代码] 联邦党人文集之骑砍双持左轮手枪OSP

[复制链接]

7

主题

21

回帖

8

积分

平民

Rank: 1

UID
3683912
第纳尔
9
精华
0
互助
0
荣誉
0
贡献
0
魅力
0
注册时间
2024-8-2
鲜花(1) 鸡蛋(0)
发表于 昨天 14:09 | 显示全部楼层 |阅读模式

以下为我的开源代码双持左轮的实现

使用要求:必须对于作者也就是我,致谢,贡献者,Credit等署名

署名为:夜幕

效果:【【骑砍】双持左轮手枪-哔哩哔哩】 https://b23.tv/ehHw0Jp

有任何不懂的地方或bug可以私信和评论告诉我

双持动作部分则必须使用wse2

  1. agent_set_personal_animation
  2. agent_set_default_animations#这俩操作符为wse专属
复制代码

以下为主体代码:

  1. m_zuolun_she  =   (
  2. 0, 0, 0.05, [],
  3. [
  4.     (get_player_agent_no, ":ym_1"),
  5.     (agent_is_alive, ":ym_1"),
  6.     (agent_get_wielded_item, ":ym_2", ":ym_1", 0),
  7.     (agent_get_animation,":ym_3",":ym_1",1),
  8.     (agent_get_slot, ":ym_4", ":ym_1", slot_agent_dual_draw_state),
  9.     (agent_get_slot, ":ym_5", ":ym_1", slot_agent_dual_fire_latch),
  10.     (agent_get_slot, ":ym_6", ":ym_1", slot_agent_du_gun),

  11.     (assign, ":ym_7", 0),
  12.     (assign, ":ym_8", 0),
  13.     (try_begin),
  14.       (gt, ":ym_2", 0),
  15.       (item_get_slot, ":ym_8", ":ym_2", slot_item_dual_offhand_scene_prop),
  16.       (gt, ":ym_8", 0),
  17.       (assign, ":ym_7", 1),
  18.     (try_end),

  19.     (try_begin),
  20.       (this_or_next|eq, ":ym_7", 0),
  21.       (eq, ":ym_4", 0),
  22.       (agent_set_slot, ":ym_1", slot_agent_dual_fire_latch, 0),
  23.       (assign, ":ym_5", 0),
  24.     (try_end),

  25.     (try_begin),
  26.       (eq, ":ym_7", 1),
  27.       (eq, ":ym_4", 1),
  28.       (ge, ":ym_6", 1),
  29.       (game_key_is_down, gk_defend),

  30.       (try_begin),
  31.         (neq, ":ym_3", "anim_ready_pistol_zuoyou"),
  32.         (agent_set_animation, ":ym_1", "anim_ready_pistol_zuoyou", 1),
  33.       (try_end),

  34.       (agent_set_slot, ":ym_1", slot_agent_dual_fire_latch, 1),

  35.     (else_try),
  36.       (eq, ":ym_7", 1),
  37.       (eq, ":ym_4", 1),
  38.       (neg|game_key_is_down, gk_defend),
  39.       (eq, ":ym_5", 1),
  40.       (neq, ":ym_3", "anim_du_gun_reload"),
  41.       (eq, ":ym_3", "anim_ready_pistol_zuoyou"),

  42.       (agent_get_slot,":ym_9",":ym_1",slot_agent_du_gun),
  43.       (ge,":ym_9",1),

  44.       (store_mission_timer_c_msec, ":ym_10"),
  45.       (agent_get_slot, ":ym_11", ":ym_1", slot_agent_dual_offhand_last_fire_msec),

  46.       (item_get_speed_rating, ":ym_12", ":ym_2"),
  47.       (assign, ":ym_13", ":ym_12"),
  48.       (val_mul, ":ym_13", 2),
  49.       (val_max, ":ym_13", 60),

  50.       (store_div, ":ym_14", 60000, ":ym_13"),
  51.       (store_sub, ":ym_15", ":ym_10", ":ym_11"),
  52.       (ge, ":ym_15", ":ym_14"),

  53.       (item_get_missile_speed, ":ym_16", ":ym_2"),
  54.       (convert_to_fixed_point, ":ym_16"),
  55.       (agent_set_animation, ":ym_1", "anim_release_pistol_zuo", 1),

  56.       (agent_get_bone_position, pos1, ":ym_1", 19, 1),
  57.       (agent_get_look_position, pos2, ":ym_1"),
  58.       (position_copy_rotation, pos1, pos2),

  59.       (agent_get_bone_position, pos4, ":ym_1", 13, 1),
  60.       (position_move_y, pos4, 28, 0),
  61.       (position_move_z, pos4, 3, 0),
  62.       (position_move_x, pos4, 37),

  63.       (particle_system_burst, "psys_pistol_smoke", pos4, 7),
  64.       (particle_system_burst, "psys_muzzle_flash", pos4, 1),
  65.       (agent_play_sound,":ym_1", "snd_revolver_shot_005"),
  66.       (add_missile, ":ym_1", pos1, ":ym_16", ":ym_2", 0, "itm_cartridges_bolts1", 0),

  67.       (val_sub, ":ym_9", 1),
  68.       (val_max, ":ym_9", 0),
  69.       (agent_set_slot, ":ym_1", slot_agent_du_gun, ":ym_9"),
  70.       (assign, reg0, ":ym_9"),
  71.       (display_message, "@副 枪 子 弹 剩 余 {reg0}"),

  72.       (agent_set_slot, ":ym_1", slot_agent_dual_offhand_last_fire_msec, ":ym_10"),
  73.       (agent_set_slot, ":ym_1", slot_agent_dual_fire_latch, 0),

  74.     (else_try),
  75.       (agent_set_slot, ":ym_1", slot_agent_dual_fire_latch, 0),
  76.     (try_end),
  77. ])

  78. ym_du_gun  =   (
  79. 1, 0, ti_once, [],
  80. [
  81.     (get_player_agent_no, ":ym_1"),
  82.     (gt, ":ym_1", -1),

  83.     (agent_set_slot, ":ym_1", slot_agent_dual_offhand_prop_instance, 0),
  84.     (agent_set_slot, ":ym_1", slot_agent_dual_holster_loaded_prop_instance, 0),
  85.     (agent_set_slot, ":ym_1", slot_agent_dual_holster_empty_prop_instance, 0),

  86.     (agent_set_slot, ":ym_1", slot_agent_dual_draw_state, 0),
  87.     (agent_set_slot, ":ym_1", slot_agent_dual_cached_item, -1),
  88.     (agent_set_slot, ":ym_1", slot_agent_dual_fire_latch, 0),
  89.     (agent_set_slot, ":ym_1", slot_agent_dual_offhand_hide_deadline, 0),
  90.     (agent_set_slot, ":ym_1", slot_agent_dual_offhand_last_fire_msec, 0),
  91.     (agent_set_slot, ":ym_1", slot_agent_du_gun, 6),
  92. ])




  93. ym_d  =   (
  94. 0, 0, 0, [],
  95. [
  96.     (get_player_agent_no, ":ym_1"),
  97.     (agent_is_alive, ":ym_1"),
  98.     (agent_get_wielded_item, ":ym_2", ":ym_1", 0),

  99.     (agent_get_slot, ":ym_3", ":ym_1", slot_agent_dual_offhand_prop_instance),
  100.     (agent_get_slot, ":ym_4", ":ym_1", slot_agent_dual_holster_loaded_prop_instance),
  101.     (agent_get_slot, ":ym_5", ":ym_1", slot_agent_dual_holster_empty_prop_instance),

  102.     (agent_get_slot, ":ym_6", ":ym_1", slot_agent_dual_draw_state),
  103.     (agent_get_slot, ":ym_7", ":ym_1", slot_agent_dual_cached_item),

  104.     (agent_get_position, pos20, ":ym_1"),
  105.     (position_move_y, pos20, 999999, 0),

  106.     (assign, ":ym_8", 7),
  107.     (assign, ":ym_9", -35),
  108.     (assign, ":ym_10", 8),
  109.     (assign, ":ym_11", 13),
  110.     (assign, ":ym_12", 85),

  111.     (assign, ":ym_13", 0),
  112.     (assign, ":ym_14", 0),
  113.     (assign, ":ym_15", -1),

  114.     (assign, ":ym_16", 0),
  115.     (assign, ":ym_17", 0),
  116.     (assign, ":ym_18", 0),

  117.     (try_begin),
  118.       (gt, ":ym_2", 0),
  119.       (item_get_slot, ":ym_19", ":ym_2", slot_item_dual_offhand_scene_prop),
  120.       (gt, ":ym_19", 0),
  121.       (assign, ":ym_13", 1),
  122.       (assign, ":ym_14", 1),
  123.       (assign, ":ym_15", ":ym_2"),
  124.     (try_end),

  125.     (try_for_range, ":ym_20", 0, 4),
  126.       (agent_get_item_slot, ":ym_21", ":ym_1", ":ym_20"),
  127.       (gt, ":ym_21", 0),
  128.       (item_get_slot, ":ym_22", ":ym_21", slot_item_dual_offhand_scene_prop),
  129.       (gt, ":ym_22", 0),
  130.       (assign, ":ym_14", 1),
  131.       (try_begin),
  132.         (lt, ":ym_15", 0),
  133.         (assign, ":ym_15", ":ym_21"),
  134.       (try_end),
  135.     (try_end),

  136.     (try_begin),
  137.       (gt, ":ym_15", 0),
  138.       (item_get_slot, ":ym_16", ":ym_15", slot_item_dual_offhand_scene_prop),
  139.       (item_get_slot, ":ym_17", ":ym_15", slot_item_dual_holster_loaded_scene_prop),
  140.       (item_get_slot, ":ym_18", ":ym_15", slot_item_dual_holster_empty_scene_prop),
  141.     (try_end),

  142.     (try_begin),
  143.       (eq, ":ym_13", 0),
  144.       (try_begin),
  145.         (eq, ":ym_6", 1),
  146.         (store_mission_timer_c_msec, ":ym_23"),
  147.         (store_add, ":ym_24", ":ym_23", 500),
  148.         (agent_set_slot, ":ym_1", slot_agent_dual_offhand_hide_deadline, ":ym_24"),
  149.       (try_end),
  150.       (agent_set_slot, ":ym_1", slot_agent_dual_draw_state, 0),
  151.       (agent_set_slot, ":ym_1", slot_agent_dual_fire_latch, 0),
  152.       (agent_set_slot, ":ym_1", slot_agent_dual_offhand_last_fire_msec, 0),
  153.       (assign, ":ym_6", 0),
  154.     (try_end),

  155.     (try_begin),
  156.       (eq, ":ym_14", 1),
  157.       (neq, ":ym_15", ":ym_7"),

  158.       (try_begin),
  159.         (gt, ":ym_3", 0),
  160.         (prop_instance_set_position, ":ym_3", pos20),
  161.       (try_end),
  162.       (try_begin),
  163.         (gt, ":ym_4", 0),
  164.         (prop_instance_set_position, ":ym_4", pos20),
  165.       (try_end),
  166.       (try_begin),
  167.         (gt, ":ym_5", 0),
  168.         (prop_instance_set_position, ":ym_5", pos20),
  169.       (try_end),

  170.       (agent_set_slot, ":ym_1", slot_agent_dual_draw_state, 0),
  171.       (agent_set_slot, ":ym_1", slot_agent_dual_offhand_prop_instance, 0),
  172.       (agent_set_slot, ":ym_1", slot_agent_dual_holster_loaded_prop_instance, 0),
  173.       (agent_set_slot, ":ym_1", slot_agent_dual_holster_empty_prop_instance, 0),
  174.       (agent_set_slot, ":ym_1", slot_agent_dual_fire_latch, 0),
  175.       (agent_set_slot, ":ym_1", slot_agent_dual_offhand_hide_deadline, 0),
  176.       (agent_set_slot, ":ym_1", slot_agent_dual_offhand_last_fire_msec, 0),

  177.       (try_begin),
  178.         (gt, ":ym_16", 0),
  179.         (spawn_scene_prop, ":ym_16"),
  180.         (scene_prop_get_num_instances, ":ym_25", ":ym_16"),
  181.         (val_sub, ":ym_25", 1),
  182.         (scene_prop_get_instance, ":ym_3", ":ym_16", ":ym_25"),
  183.         (agent_set_slot, ":ym_1", slot_agent_dual_offhand_prop_instance, ":ym_3"),
  184.       (try_end),

  185.       (try_begin),
  186.         (gt, ":ym_17", 0),
  187.         (spawn_scene_prop, ":ym_17"),
  188.         (scene_prop_get_num_instances, ":ym_26", ":ym_17"),
  189.         (val_sub, ":ym_26", 1),
  190.         (scene_prop_get_instance, ":ym_4", ":ym_17", ":ym_26"),
  191.         (agent_set_slot, ":ym_1", slot_agent_dual_holster_loaded_prop_instance, ":ym_4"),
  192.       (try_end),

  193.       (try_begin),
  194.         (gt, ":ym_18", 0),
  195.         (spawn_scene_prop, ":ym_18"),
  196.         (scene_prop_get_num_instances, ":ym_27", ":ym_18"),
  197.         (val_sub, ":ym_27", 1),
  198.         (scene_prop_get_instance, ":ym_5", ":ym_18", ":ym_27"),
  199.         (agent_set_slot, ":ym_1", slot_agent_dual_holster_empty_prop_instance, ":ym_5"),
  200.       (try_end),

  201.       (agent_set_slot, ":ym_1", slot_agent_dual_cached_item, ":ym_15"),
  202.       (assign, ":ym_6", 0),

  203.     (else_try),
  204.       (eq, ":ym_14", 0),
  205.       (agent_set_slot, ":ym_1", slot_agent_dual_draw_state, 0),
  206.       (agent_set_slot, ":ym_1", slot_agent_dual_cached_item, -1),
  207.       (agent_set_slot, ":ym_1", slot_agent_dual_fire_latch, 0),
  208.       (agent_set_slot, ":ym_1", slot_agent_dual_offhand_last_fire_msec, 0),
  209.       (assign, ":ym_6", 0),
  210.     (try_end),

  211.     (try_begin),
  212.       (key_clicked, key_v),
  213.       (eq, ":ym_13", 1),
  214.       (try_begin),
  215.         (eq, ":ym_6", 0),
  216.         (agent_set_slot, ":ym_1", slot_agent_dual_draw_state, 1),
  217.         (assign, ":ym_6", 1),
  218.         (agent_set_animation, ":ym_1", "anim_revolver_right", 1),
  219.         (agent_set_slot, ":ym_1", slot_agent_dual_fire_latch, 0),
  220.         (agent_set_slot, ":ym_1", slot_agent_dual_offhand_hide_deadline, 0),
  221.         (agent_set_slot, ":ym_1", slot_agent_dual_offhand_last_fire_msec, 0),
  222.         (agent_set_personal_animation, ":ym_1", "anim_ready_pistol", "anim_ready_pistol_zuoyou"),
  223.         (agent_set_personal_animation, ":ym_1", "anim_release_pistol", "anim_release_pistol_you"),
  224.         (agent_set_personal_animation, ":ym_1", "anim_reload_pistol", "anim_du_gun_reload"),
  225.         (agent_set_personal_animation, ":ym_1", "anim_equip_revolver_right", "anim_equip_re"),
  226.         (agent_play_sound, ":ym_1", "snd_dual_gun_draw"),
  227.         (agent_set_animation, ":ym_1", "anim_equip_revolver_right_du",1),
  228.         (display_message, "@双 持:已 掏 枪"),
  229.       (else_try),
  230.         (agent_set_slot, ":ym_1", slot_agent_dual_draw_state, 0),
  231.         (assign, ":ym_6", 0),
  232.         (agent_set_default_animations, ":ym_1"),
  233.         (agent_set_slot, ":ym_1", slot_agent_dual_fire_latch, 0),
  234.         (store_mission_timer_c_msec, ":ym_23"),
  235.         (store_add, ":ym_24", ":ym_23", 450),
  236.         (agent_set_slot, ":ym_1", slot_agent_dual_offhand_hide_deadline, ":ym_24"),
  237.         (agent_set_default_animations, ":ym_1"),
  238.         (agent_set_animation, ":ym_1", "anim_putback_revolver_right_du",1),
  239.         (agent_play_sound, ":ym_1", "snd_put_back_revolver"),
  240.         (agent_set_slot, ":ym_1", slot_agent_dual_fire_latch, 0),
  241.         (display_message, "@双 持:已 收 枪"),
  242.       (try_end),
  243.     (try_end),

  244.     (agent_get_slot, ":ym_3", ":ym_1", slot_agent_dual_offhand_prop_instance),
  245.     (agent_get_slot, ":ym_4", ":ym_1", slot_agent_dual_holster_loaded_prop_instance),
  246.     (agent_get_slot, ":ym_5", ":ym_1", slot_agent_dual_holster_empty_prop_instance),

  247.     (try_begin),
  248.         (eq, ":ym_13", 1),
  249.         (eq, ":ym_6", 1),

  250.         (try_begin),
  251.           (gt, ":ym_3", 0),
  252.           (agent_get_bone_position, pos1, ":ym_1", 13, 1),
  253.           (position_move_y, pos1, 4, 0),
  254.           (position_move_z, pos1, -1, 0),
  255.           (position_rotate_z, pos1, 90),
  256.           (position_rotate_x, pos1, 180),
  257.           (prop_instance_set_position, ":ym_3", pos1),
  258.         (try_end),

  259.         (agent_get_bone_position, pos11, ":ym_1", ":ym_8", 1),
  260.         (position_move_x, pos11, ":ym_9"),
  261.         (position_move_y, pos11, ":ym_10"),
  262.         (position_move_z, pos11, ":ym_11"),
  263.         (position_rotate_z, pos11, ":ym_12"),

  264.         (try_begin),
  265.           (gt, ":ym_4", 0),
  266.           (prop_instance_set_position, ":ym_4", pos20),
  267.         (try_end),
  268.         (try_begin),
  269.           (gt, ":ym_5", 0),
  270.           (prop_instance_set_position, ":ym_5", pos11),
  271.         (try_end),

  272.     (else_try),
  273.         (try_begin),
  274.           (gt, ":ym_3", 0),
  275.           (agent_get_slot, ":ym_28", ":ym_1", slot_agent_dual_offhand_hide_deadline),
  276.           (store_mission_timer_c_msec, ":ym_23"),

  277.           (try_begin),
  278.             (gt, ":ym_28", 0),
  279.             (lt, ":ym_23", ":ym_28"),
  280.             (agent_get_bone_position, pos1, ":ym_1", 13, 1),
  281.             (position_move_y, pos1, 4, 0),
  282.             (position_move_z, pos1, -1, 0),
  283.             (position_rotate_z, pos1, 90),
  284.             (position_rotate_x, pos1, 180),
  285.             (prop_instance_set_position, ":ym_3", pos1),
  286.           (else_try),
  287.             (prop_instance_set_position, ":ym_3", pos20),
  288.             (agent_set_slot, ":ym_1", slot_agent_dual_offhand_hide_deadline, 0),
  289.           (try_end),
  290.         (try_end),
  291.         (try_begin),
  292.           (gt, ":ym_5", 0),
  293.           (prop_instance_set_position, ":ym_5", pos20),
  294.         (try_end),

  295.         (try_begin),
  296.           (eq, ":ym_14", 1),
  297.           (eq, ":ym_6", 0),

  298.           (agent_get_bone_position, pos12, ":ym_1", ":ym_8", 1),
  299.           (position_move_x, pos12, ":ym_9"),
  300.           (position_move_y, pos12, ":ym_10"),
  301.           (position_move_z, pos12, ":ym_11"),
  302.           (position_rotate_z, pos12, ":ym_12"),

  303.           (try_begin),
  304.             (gt, ":ym_4", 0),
  305.             (prop_instance_set_position, ":ym_4", pos12),
  306.           (try_end),
  307.         (else_try),
  308.           (try_begin),
  309.             (gt, ":ym_4", 0),
  310.             (prop_instance_set_position, ":ym_4", pos20),
  311.           (try_end),
  312.         (try_end),
  313.     (try_end),
  314. ])
复制代码



1

主题

36

回帖

11

积分

随仆

Rank: 1

UID
2557955
第纳尔
129
精华
0
互助
0
荣誉
0
贡献
0
魅力
0
注册时间
2015-7-9
鲜花(0) 鸡蛋(0)
发表于 昨天 22:20 | 显示全部楼层
本帖最后由 afl001 于 2026-2-15 22:23 编辑

美式传武,很屌很强大

怎么标准的,难道是信仰射击
您需要登录后才可以回帖 登录 | 注册(Register!)

本版积分规则

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

GMT+8, 2026-2-16 07:40 , Processed in 0.099942 second(s), 20 queries , Gzip On, MemCached On.

Powered by Discuz! X3.4 Licensed

© 2001-2023 Discuz! Team.

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