骑马与砍杀中文站论坛

 找回密码
 注册(Register!)

QQ登录

只需一步,快速开始

搜索
购买霸主CDKEY 购买战帆CDKEY
查看: 462|回复: 0

[功能与代码] 联邦党人文集之飞剑术

[复制链接]

7

主题

21

回帖

8

积分

平民

Rank: 1

UID
3683912
第纳尔
14
精华
0
互助
0
荣誉
0
贡献
0
魅力
0
注册时间
2024-8-2
鲜花(2) 鸡蛋(0)
发表于 7 天前 | 显示全部楼层 |阅读模式
本帖最后由 卢森堡的夜幕 于 2026-2-15 13:55 编辑

[color=var(--Ga9)]

以下为我的开源代码飞剑术的实现

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

署名为:夜幕

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

描述:你穿上指定护甲后,胸前会常驻一把召唤剑。这把剑会自动找敌人,不需要你额外按键

  • 这把剑一次只会盯一个目标,目标没死前不会乱切人。目标死了后,才会重新找最近敌人。

  • 你会看到它真的飞过去再打人

  • 对于骑兵敌人会有以下效果


    • 锁定,追击距离更远约2倍

    • 飞行速度更快2倍更容易追上高速骑兵



以下为主体代码:

  1. ym_summoned_sword = (
  2. 0.1, 0, 0,
  3.     [],
  4.     [
  5.         (get_player_agent_no, ":ym_0"),
  6.         (agent_is_active, ":ym_0"),
  7.         (agent_is_alive, ":ym_0"),
  8.         (agent_is_human, ":ym_0"),

  9.         (agent_get_item_slot, ":ym_1", ":ym_0", ek_body),
  10.         (ge, ":ym_1", 0),
  11.         (item_get_slot, ":ym_2", ":ym_1", ym_slot_item_0),

  12.         (store_mission_timer_a_msec, ":ym_3"),
  13.         (assign, ":ym_4", 0),
  14.         (agent_get_slot, ":ym_5", ":ym_0", ym_slot_agent_0),
  15.         (try_begin),
  16.             (prop_instance_is_valid, ":ym_5"),
  17.             (agent_get_slot, ":ym_6", ":ym_0", ym_slot_agent_1),
  18.             (gt, ":ym_6", ":ym_3"),
  19.             (assign, ":ym_4", 1),
  20.         (try_end),

  21.         (try_begin),
  22.             (eq, ":ym_4", 1),
  23.             (agent_get_slot, ":ym_7", ":ym_0", ym_slot_agent_2),
  24.             (try_begin),
  25.                 (prop_instance_is_valid, ":ym_7"),
  26.                 (agent_get_attached_scene_prop, ":ym_8", ":ym_0"),
  27.                 (try_begin),
  28.                     (eq, ":ym_8", ":ym_7"),
  29.                     (agent_set_attached_scene_prop, ":ym_0", -1),
  30.                 (try_end),
  31.                 (scene_prop_set_visibility, ":ym_7", 0),
  32.             (try_end),
  33.             (agent_set_slot, ":ym_0", ym_slot_agent_2, -1),
  34.         (else_try),

  35.         (try_begin),
  36.             (le, ":ym_2", 0),
  37.             (agent_get_slot, ":ym_9", ":ym_0", ym_slot_agent_2),
  38.             (try_begin),
  39.                 (prop_instance_is_valid, ":ym_9"),
  40.                 (scene_prop_set_visibility, ":ym_9", 0),
  41.                 (scene_prop_set_slot, ":ym_9", ym_slot_scene_prop_0, -1),
  42.                 (scene_prop_set_slot, ":ym_9", ym_slot_scene_prop_1, -1),
  43.                 (scene_prop_set_slot, ":ym_9", ym_slot_scene_prop_2, 0),
  44.                 (scene_prop_set_slot, ":ym_9", ym_slot_scene_prop_3, 0),
  45.                 (scene_prop_set_slot, ":ym_9", ym_slot_scene_prop_4, 0),
  46.                 (scene_prop_set_slot, ":ym_9", ym_slot_scene_prop_5, 0),
  47.             (try_end),
  48.             (agent_set_slot, ":ym_0", ym_slot_agent_2, -1),

  49.         (else_try),
  50.             (item_get_slot, ":ym_10", ":ym_1", ym_slot_item_1),
  51.             (item_get_slot, ":ym_11", ":ym_1", ym_slot_item_2),
  52.             (item_get_slot, ":ym_12", ":ym_1", ym_slot_item_3),

  53.             (assign, ":ym_13", 7),
  54.             (assign, ":ym_14", -35),
  55.             (assign, ":ym_15", 8),
  56.             (assign, ":ym_16", 13),
  57.             (assign, ":ym_17", 0),

  58.             (try_begin),
  59.                 (le, ":ym_10", 0),
  60.                 (assign, ":ym_10", 1400),
  61.             (try_end),
  62.             (try_begin),
  63.                 (le, ":ym_11", 0),
  64.                 (assign, ":ym_11", 40),
  65.             (try_end),
  66.             (try_begin),
  67.                 (le, ":ym_12", 0),
  68.                 (assign, ":ym_12", 700),
  69.             (try_end),

  70.             (agent_get_slot, ":ym_18", ":ym_0", ym_slot_agent_2),
  71.             (try_begin),
  72.                 (neg|prop_instance_is_valid, ":ym_18"),
  73.                 (spawn_scene_prop, "spr_sword_prop_ym"),
  74.                 (assign, ":ym_18", reg0),
  75.                 (scene_prop_set_visibility, ":ym_18", 1),

  76.                 (agent_set_slot, ":ym_0", ym_slot_agent_2, ":ym_18"),

  77.                 (scene_prop_set_slot, ":ym_18", ym_slot_scene_prop_0, ":ym_0),
  78.                 (scene_prop_set_slot, ":ym_18", ym_slot_scene_prop_1, -1),
  79.                 (store_mission_timer_a_msec, ":ym_3"),
  80.                 (scene_prop_set_slot, ":ym_18", ym_slot_scene_prop_2, ":ym_3"),
  81.                 (scene_prop_set_slot, ":ym_18", ym_slot_scene_prop_3, 0),
  82.                 (scene_prop_set_slot, ":ym_18", ym_slot_scene_prop_4, 0),
  83.                 (scene_prop_set_slot, ":ym_18", ym_slot_scene_prop_5, 0),
  84.                 (scene_prop_set_slot, ":ym_18", ym_slot_scene_prop_6, 0),
  85.                 (scene_prop_set_slot, ":ym_18", ym_slot_scene_prop_7, 120),
  86.             (try_end),

  87.             (scene_prop_get_slot, ":ym_19", ":ym_18", ym_slot_scene_prop_6),
  88.             (try_begin),
  89.                 (eq, ":ym_19", 0),
  90.                 (agent_set_attached_scene_prop, ":ym_0", ":ym_18", 0, ":ym_13", 1),
  91.                 (agent_set_attached_scene_prop_x, ":ym_0", ":ym_14", 0),
  92.                 (agent_set_attached_scene_prop_y, ":ym_0", ":ym_15", 0),
  93.                 (agent_set_attached_scene_prop_z, ":ym_0", ":ym_16", 0),
  94.             (try_end),

  95.             (scene_prop_get_slot, ":ym_20", ":ym_18", ym_slot_scene_prop_1),
  96.             (assign, ":ym_21", 0),
  97.             (try_begin),
  98.                 (ge, ":ym_20", 0),
  99.                 (agent_is_active, ":ym_20"),
  100.                 (agent_is_alive, ":ym_20"),
  101.                 (agent_is_human, ":ym_20"),
  102.                 (agent_get_team, ":ym_22", ":ym_0"),
  103.                 (agent_get_team, ":ym_23", ":ym_20"),
  104.                 (teams_are_enemies, ":ym_22", ":ym_23"),

  105.                 (assign, ":ym_24", ":ym_10"),
  106.                 (agent_get_horse, ":ym_25", ":ym_20"),
  107.                 (try_begin),
  108.                     (ge, ":ym_25", 0),
  109.                     (val_mul, ":ym_24", 2),
  110.                 (try_end),
  111.                 (agent_get_position, pos22, ":ym_0"),
  112.                 (agent_get_position, pos23, ":ym_20"),
  113.                 (get_distance_between_positions, ":ym_26", pos22, pos23),
  114.                 (le, ":ym_26", ":ym_24"),

  115.                 (assign, ":ym_21", 1),
  116.             (try_end),

  117.             (try_begin),
  118.                 (eq, ":ym_21", 0),
  119.                 (assign, ":ym_20", -1),
  120.                 (assign, ":ym_27", 100000),
  121.                 (agent_get_team, ":ym_22", ":ym_0"),
  122.                 (agent_get_position, pos20, ":ym_0"),
  123.                 (try_for_agents, ":ym_28"),
  124.                     (agent_is_alive, ":ym_28"),
  125.                     (agent_is_human, ":ym_28"),
  126.                     (agent_get_team, ":ym_29", ":ym_28"),
  127.                     (teams_are_enemies, ":ym_22", ":ym_29"),

  128.                     (assign, ":ym_30", ":ym_10"),
  129.                     (agent_get_horse, ":ym_31", ":ym_28"),
  130.                     (try_begin),
  131.                         (ge, ":ym_31", 0),
  132.                         (val_mul, ":ym_30", 2),
  133.                     (try_end),

  134.                     (agent_get_position, pos21, ":ym_28"),
  135.                     (get_distance_between_positions, ":ym_32", pos20, pos21),
  136.                     (lt, ":ym_32", ":ym_27"),
  137.                     (le, ":ym_32", ":ym_30"),
  138.                     (assign, ":ym_27", ":ym_32"),
  139.                     (assign, ":ym_20", ":ym_28"),
  140.                 (try_end),
  141.                 (scene_prop_set_slot, ":ym_18", ym_slot_scene_prop_1, ":ym_20"),
  142.             (try_end),

  143.             (scene_prop_get_slot, ":ym_19", ":ym_18", ym_slot_scene_prop_6),
  144.             (try_begin),
  145.                 (eq, ":ym_19", 1),
  146.                 (scene_prop_get_slot, ":ym_33", ":ym_18", ym_slot_scene_prop_4),
  147.                 (ge, ":ym_3", ":ym_33"),
  148.                 (scene_prop_get_slot, ":ym_34", ":ym_18", ym_slot_scene_prop_7),
  149.                 (try_begin),
  150.                     (le, ":ym_34", 0),
  151.                     (assign, ":ym_34", 120),
  152.                 (try_end),
  153.                 (try_begin),
  154.                     (ge, ":ym_20", 0),
  155.                     (agent_is_active, ":ym_20"),
  156.                     (agent_is_alive, ":ym_20"),
  157.                     (agent_get_team, ":ym_22", ":ym_0"),
  158.                     (agent_get_team, ":ym_23", ":ym_20"),
  159.                     (teams_are_enemies, ":ym_22", ":ym_23"),
  160.                     (prop_instance_get_position, pos31, ":ym_18"),
  161.                     (agent_get_bone_position, pos32, ":ym_20", 6, 1),
  162.                     (get_distance_between_positions, ":ym_35", pos31, pos32),
  163.                     (le, ":ym_35", ":ym_34"),
  164.                     (agent_deliver_damage_to_agent, ":ym_0", ":ym_20", ":ym_11"),
  165.                     (agent_play_sound, ":ym_20", "snd_metal_hit_high_armor_high_damage"),
  166.                 (try_end),
  167.                 (scene_prop_set_slot, ":ym_18", ym_slot_scene_prop_6, 0),
  168.                 (scene_prop_set_slot, ":ym_18", ym_slot_scene_prop_4, 0),
  169.             (try_end),

  170.             (try_begin),
  171.                 (ge, ":ym_20", 0),
  172.                 (scene_prop_get_slot, ":ym_19", ":ym_18", ym_slot_scene_prop_6),
  173.                 (eq, ":ym_19", 0),
  174.                 (store_mission_timer_a_msec, ":ym_3"),
  175.                 (scene_prop_get_slot, ":ym_36", ":ym_18", ym_slot_scene_prop_2),
  176.                 (ge, ":ym_3", ":ym_36"),

  177.                 (agent_get_look_position, pos30, ":ym_20"),
  178.                 (scene_prop_get_slot, ":ym_37", ":ym_18", ym_slot_scene_prop_3),
  179.                 (store_mul, ":ym_38", ":ym_37", 90),
  180.                 (val_add, ":ym_38", ":ym_17"),
  181.                 (position_rotate_z, pos30, ":ym_38"),
  182.                 (position_move_x, pos30, 95),
  183.                 (position_move_z, pos30, 75),

  184.                 (agent_get_attached_scene_prop, ":ym_8", ":ym_0"),
  185.                 (try_begin),
  186.                     (eq, ":ym_8", ":ym_18"),
  187.                     (agent_set_attached_scene_prop, ":ym_0", -1),
  188.                 (try_end),

  189.                 (prop_instance_get_position, pos31, ":ym_18"),
  190.                 (get_distance_between_positions, ":ym_39", pos31, pos30),
  191.                 (assign, ":ym_40", ":ym_39"),
  192.                 (val_div, ":ym_40", 12),

  193.                 (agent_get_horse, ":ym_25", ":ym_20"),
  194.                 (try_begin),
  195.                     (ge, ":ym_25", 0),
  196.                     (val_div, ":ym_40", 2),
  197.                 (try_end),

  198.                 (val_clamp, ":ym_40", 50, 170),
  199.                 (prop_instance_animate_to_position, ":ym_18", pos30, ":ym_40"),

  200.                 (store_mul, ":ym_41", ":ym_40", 10),
  201.                 (store_add, ":ym_42", ":ym_3", ":ym_41"),
  202.                 (scene_prop_set_slot, ":ym_18", ym_slot_scene_prop_4, ":ym_42"),
  203.                 (scene_prop_set_slot, ":ym_18", ym_slot_scene_prop_6, 1),

  204.                 (val_add, ":ym_37", 1),
  205.                 (val_mod, ":ym_37", 4),
  206.                 (scene_prop_set_slot, ":ym_18", ym_slot_scene_prop_3, ":ym_37"),
  207.                 (store_add, ":ym_36", ":ym_3", ":ym_12"),
  208.                 (scene_prop_set_slot, ":ym_18", ym_slot_scene_prop_2, ":ym_36"),
  209.             (try_end),
  210.         (try_end),
  211.         (try_end),
  212.     ])
复制代码






您需要登录后才可以回帖 登录 | 注册(Register!)

本版积分规则

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

GMT+8, 2026-2-22 06:31 , Processed in 0.065955 second(s), 18 queries , Gzip On, MemCached On.

Powered by Discuz! X3.4 Licensed

© 2001-2023 Discuz! Team.

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