骑马与砍杀中文站论坛

 找回密码
 注册(Register!)

QQ登录

只需一步,快速开始

搜索
购买CDKEY 小黑盒加速器
查看: 1747|回复: 7

[功能与代码] [狂人的知识]动态兵种图鉴

[复制链接]

42

主题

94

回帖

221

积分

见习骑士

Rank: 3

UID
3199602
第纳尔
1162
精华
0
互助
36
荣誉
0
贡献
1
魅力
227
注册时间
2020-9-4
鲜花(60) 鸡蛋(0)
发表于 2024-1-30 22:12:18 | 显示全部楼层 |阅读模式
本帖最后由 奥杜因阿卡托什 于 2024-1-31 10:14 编辑

    mission template上能显示prsnt,这个是人尽皆知的功能。很早以前我就考虑过要不要把mt和prsnt结合起来做一个界面,不过之前一直没有很好的效果,就没放出来。最近有了点起色,效果如附图。
    动态界面的好处是,第一,只需比一般prsnt多不了多少的功夫就能得到动态的效果,显得很牛。第二,可以实时换装、展示动作、粒子效果。第三、有些在静态兵种树上发现不了的问题,这里一眼就能看出来。我这两天就发现了至少四处模型凹凸和specular的问题。
    我这个界面目前的使用方式是:在左侧选择兵种,点击即可切换显示。上面三个按钮可以调整范围。右侧的兵种描述是写在troop的复数那里的。如果有什么XXX_end,XXX_temp_array之类不希望出现的兵种,加上tf_hero的词条屏蔽掉即可。另外还需注意的是,这个界面本质上是mission template,所以需要从menu进入。推荐入口放在扎营里。
    代码如下:
    menus里的入口(一个选项):

  1.       ("enemy_set",[],
  2.       "enemy_set.",[
  3.          (modify_visitors_at_site, "scn_character_window_dungon"),
  4.          (reset_visitors),
  5.          (set_visitor, 2, "trp_farmer"),
  6.          (assign, "$troop_show_2", "trp_farmer"),
  7.          (set_visitor, 4, "trp_player"),
  8.          (set_jump_mission,"mt_troop_window"),
  9.          (jump_to_scene,"scn_character_window_dungon"),
  10.          (change_screen_mission),]),
复制代码
   prnst:
  1.   ("troop_window", 0, 0,[
  2.       (ti_on_presentation_load,
  3.        [(set_fixed_point_multiplier, 1000),

  4.         (assign, "$troop_faction_choose", -1),#所属阵营选择
  5.         (assign, "$troop_grade_choose", -1),#等级选择
  6.         (assign, "$troop_class_choose", -1),#兵种选择
  7.         (try_for_range, ":count_no", 0, 1000),
  8.            (troop_set_slot, "trp_temp_array_a", ":count_no", -1),#清理数列信息
  9.         (try_end),

  10.         (create_button_overlay, "$g_presentation_obj_1", "@Back", tf_center_justify),
  11.         (position_set_x, pos1, 840),
  12.         (position_set_y, pos1, 30),
  13.         (overlay_set_position, "$g_presentation_obj_1", pos1),
  14.         (overlay_set_color, "$g_presentation_obj_1", 0xFFFFFF),

  15.         (create_mesh_overlay, reg1, "mesh_black_panel"),
  16.         (position_set_x, pos1, 25),
  17.         (position_set_y, pos1, 80),
  18.         (overlay_set_position, reg1, pos1),
  19.         (position_set_x, pos1, 200),
  20.         (position_set_y, pos1, 700),
  21.         (overlay_set_size, reg1, pos1),
  22.         (overlay_set_additional_render_height, reg1, -2),

  23.         (create_text_overlay, "$g_presentation_container_1", "@ ", tf_scrollable),
  24.         (position_set_x, pos1, 20),
  25.         (position_set_y, pos1, 90),
  26.         (overlay_set_position, "$g_presentation_container_1", pos1),
  27.         (position_set_x, pos1, 180),
  28.         (position_set_y, pos1, 400),
  29.         (overlay_set_area_size, "$g_presentation_container_1", pos1),
  30.         (set_container_overlay, "$g_presentation_container_1"),

  31.         (assign, ":cur_y", 5),
  32.         (try_for_range, ":troop_no", "trp_farmer", "trp_knight_master_1_1"),
  33.            (neg|troop_is_hero, ":troop_no"),
  34.            (val_add, ":cur_y", 20),
  35.         (try_end),

  36.         (try_for_range, ":troop_no", "trp_farmer", "trp_knight_master_1_1"),
  37.            (neg|troop_is_hero, ":troop_no"),
  38.            (str_store_troop_name, s1, ":troop_no"),
  39.            (create_button_overlay, reg1 , s1),
  40.            (val_sub, ":cur_y", 20),
  41.            (position_set_x, pos1, 10),
  42.            (position_set_y, pos1, ":cur_y"),
  43.            (overlay_set_position, reg1, pos1),
  44.            (position_set_x, pos1, 800),
  45.            (position_set_y, pos1, 800),
  46.            (overlay_set_size, reg1, pos1),
  47.            (overlay_set_color, reg1, 0xFFFFFF),
  48.            (troop_set_slot, "trp_temp_array_a", reg1, ":troop_no"),#store troop id
  49.         (try_end),
  50.         (set_container_overlay, -1),

  51.         (str_store_string, s1, "@total"),
  52.         (str_store_string, s2, "@troop_faction_choose"),
  53.         (create_button_overlay, "$g_presentation_obj_2" , "@{s2}:_{s1}"),#阵营选择
  54.         (position_set_x, pos1, 27),
  55.         (position_set_y, pos1, 560),
  56.         (overlay_set_position,"$g_presentation_obj_2", pos1),
  57.         (position_set_x, pos1, 700),
  58.         (position_set_y, pos1, 700),
  59.         (overlay_set_size, "$g_presentation_obj_2", pos1),
  60.         (overlay_set_color, "$g_presentation_obj_2", 0xFFFFFF),

  61.         (str_store_string, s1, "@total"),
  62.         (str_store_string, s2, "@troop_grade_choose"),
  63.         (create_button_overlay, "$g_presentation_obj_3" , "@{s2}:_{s1}"),#等级选择
  64.         (position_set_x, pos1, 27),
  65.         (position_set_y, pos1, 535),
  66.         (overlay_set_position,"$g_presentation_obj_3", pos1),
  67.         (position_set_x, pos1, 700),
  68.         (position_set_y, pos1, 700),
  69.         (overlay_set_size, "$g_presentation_obj_3", pos1),
  70.         (overlay_set_color, "$g_presentation_obj_3", 0xFFFFFF),

  71.         (str_store_string, s1, "@total"),
  72.         (str_store_string, s2, "@troop_class_choose"),
  73.         (create_button_overlay, "$g_presentation_obj_4" , "@{s2}:_{s1}"),#兵种选择
  74.         (position_set_x, pos1, 27),
  75.         (position_set_y, pos1, 510),
  76.         (overlay_set_position,"$g_presentation_obj_4", pos1),
  77.         (position_set_x, pos1, 700),
  78.         (position_set_y, pos1, 700),
  79.         (overlay_set_size, "$g_presentation_obj_4", pos1),
  80.         (overlay_set_color, "$g_presentation_obj_4", 0xFFFFFF),

  81.         (create_mesh_overlay, reg1, "mesh_white_plane"),
  82.         (position_set_x, pos1, 25),
  83.         (position_set_y, pos1, 500),
  84.         (overlay_set_position, reg1, pos1),
  85.         (position_set_x, pos1, 9000),
  86.         (position_set_y, pos1, 50),
  87.         (overlay_set_size, reg1, pos1),

  88. #——————————————————————————————————右侧信息框——————————————————————————————————
  89.         (create_text_overlay, "$g_presentation_text_1", "@_", tf_center_justify),#名字
  90.         (position_set_x, pos1, 500),
  91.         (position_set_y, pos1, 30),
  92.         (overlay_set_position, "$g_presentation_text_1", pos1),
  93.         (overlay_set_color, "$g_presentation_text_1", 0xFFFFFF),

  94.         (create_text_overlay, "$g_presentation_text_2", "@_",  tf_scrollable),#介绍
  95.         (position_set_x, pos1, 630),
  96.         (position_set_y, pos1, 600),
  97.         (overlay_set_position, "$g_presentation_text_2", pos1),
  98.         (position_set_x, pos1, 700),
  99.         (position_set_y, pos1, 700),
  100.         (overlay_set_size, "$g_presentation_text_2", pos1),
  101.         (position_set_x, pos1, 320),
  102.         (position_set_y, pos1, 115),
  103.         (overlay_set_area_size, "$g_presentation_text_2", pos1),
  104.         (overlay_set_color, "$g_presentation_text_2", 0xFFFFFF),

  105.         (create_mesh_overlay, "$g_presentation_mesh_1", "mesh_white_plane"),
  106.         (position_set_x, pos1, 630),
  107.         (position_set_y, pos1, 590),
  108.         (overlay_set_position, "$g_presentation_mesh_1", pos1),
  109.         (position_set_x, pos1, 16000),
  110.         (position_set_y, pos1, 50),
  111.         (overlay_set_size, "$g_presentation_mesh_1", pos1),

  112.         (assign, ":cur_x", 625),
  113.         (try_for_range, ":count", 0, 4),
  114.            (store_add, ":string_no", ":count", "str_strength"),
  115.            (str_store_string, s1, ":string_no"),

  116.            (store_add, ":attribute_no", ":count", ca_strength),
  117.            (store_attribute_level, ":attribute_level", "$troop_show_2", ":attribute_no"),
  118.            (assign, reg2, ":attribute_level"),

  119.            (create_text_overlay, reg1, "@{s1}_{reg2}"),
  120.            (position_set_x, pos1, ":cur_x"),
  121.            (position_set_y, pos1, 560),
  122.            (overlay_set_position, reg1, pos1),
  123.            (position_set_x, pos1, 800),
  124.            (position_set_y, pos1, 800),
  125.            (overlay_set_size, reg1, pos1),
  126.            (overlay_set_color, reg1, 0xFFFFFF),
  127.            (val_add, ":cur_x", 70),
  128.         (try_end),

  129.         (try_for_range, ":count", 0, 7),
  130.            (store_add, ":string_no", ":count", "str_wpt_one_handed"),
  131.            (str_store_string, s1, ":string_no"),

  132.            (store_add, ":weapon_no", wpt_one_handed_weapon, ":count"),
  133.            (store_proficiency_level, ":weapon_level", "$troop_show_2", ":weapon_no"),
  134.            (assign, reg2, ":weapon_level"),

  135.            (create_button_overlay, reg1, "@{s1}_{reg2}"),
  136.            (position_set_x, pos1, 625),
  137.            (store_mul, ":high", ":count", -20),
  138.            (val_add, ":high", 530),
  139.            (position_set_y, pos1, ":high"),
  140.            (overlay_set_position, reg1, pos1),
  141.            (position_set_x, pos1, 800),
  142.            (position_set_y, pos1, 800),
  143.            (overlay_set_size, reg1, pos1),
  144.            (overlay_set_color, reg1, 0xFFFFFF),
  145.         (try_end),

  146.         (try_for_range, ":count", 0, 42),
  147.            (store_add, ":string_no", ":count", "str_reserved_18"),
  148.            (str_store_string, s1, ":string_no"),

  149.            (store_sub, ":skill_no", skl_reserved_18, ":count"),
  150.            (store_skill_level, ":skill_level", ":skill_no", "$troop_show_2"),
  151.            (assign, reg2, ":skill_level"),

  152.            (create_button_overlay, reg1, "@{s1}_{reg2}"),
  153.            (position_set_x, pos1, 765),
  154.            (store_mul, ":high", ":count", -20),
  155.            (val_add, ":high", 530),
  156.            (position_set_y, pos1, ":high"),
  157.            (overlay_set_position, reg1, pos1),
  158.            (position_set_x, pos1, 800),
  159.            (position_set_y, pos1, 800),
  160.            (overlay_set_size, reg1, pos1),
  161.            (overlay_set_color, reg1, 0xFFFFFF),
  162.         (try_end),

  163.         (create_text_overlay, "$g_presentation_text_3", "@_", tf_right_align),#阵营
  164.         (position_set_x, pos1, 970),
  165.         (position_set_y, pos1, 720),
  166.         (overlay_set_position, "$g_presentation_text_3", pos1),
  167.         (position_set_x, pos1, 900),
  168.         (position_set_y, pos1, 900),
  169.         (overlay_set_size, "$g_presentation_text_3", pos1),
  170.         (overlay_set_color, "$g_presentation_text_3", 0xFFFFFF),

  171.         (create_text_overlay, "$g_presentation_text_4", "@_", tf_left_align),#等级
  172.         (position_set_x, pos1, 630),
  173.         (position_set_y, pos1, 720),
  174.         (overlay_set_position, "$g_presentation_text_4", pos1),
  175.         (position_set_x, pos1, 900),
  176.         (position_set_y, pos1, 900),
  177.         (overlay_set_size, "$g_presentation_text_4", pos1),
  178.         (overlay_set_color, "$g_presentation_text_4", 0xFFFFFF),

  179.         (call_script, "script_troop_attribute_refresh", "$troop_show_2"),#刷新数据

  180.         (create_mesh_overlay, reg1, "mesh_black_panel"),
  181.         (position_set_x, pos1, 625),
  182.         (position_set_y, pos1, 80),
  183.         (overlay_set_position, reg1, pos1),
  184.         (position_set_x, pos1, 350),
  185.         (position_set_y, pos1, 853),
  186.         (overlay_set_size, reg1, pos1),
  187.         (overlay_set_additional_render_height, reg1, -2),

  188.         (create_mesh_overlay, "$g_presentation_mesh_2", "mesh_white_plane"),
  189.         (position_set_x, pos1, 630),
  190.         (position_set_y, pos1, 400),
  191.         (overlay_set_position, "$g_presentation_mesh_2", pos1),
  192.         (position_set_x, pos1, 16000),
  193.         (position_set_y, pos1, 50),
  194.         (overlay_set_size, "$g_presentation_mesh_2", pos1),

  195.             ####### mouse fix pos system #######
  196.         (call_script, "script_mouse_fix_pos_load"),
  197.             ####### mouse fix pos system #######

  198.         (presentation_set_duration, 999999),
  199.        ]),

  200.       (ti_on_presentation_run,
  201.        [
  202.             ####### mouse fix pos system #######
  203.         (call_script, "script_mouse_fix_pos_run"),
  204.             ####### mouse fix pos system #######
  205.         ]),

  206.       (ti_on_presentation_event_state_change,
  207.        [(store_trigger_param_1, ":object"),
  208.         (try_begin),
  209.            (eq, ":object", "$g_presentation_obj_1"),
  210.            (presentation_set_duration, 0),
  211.            (show_object_details_overlay, 1),
  212.            (finish_mission, 0),
  213.         (else_try),
  214.            (is_between, ":object", "$g_presentation_obj_1", "$g_presentation_obj_2"),#选择兵种
  215.            (troop_get_slot, ":troop_no", "trp_temp_array_a", ":object"),
  216.            (call_script, "script_troop_attribute_refresh", ":troop_no"),#刷新数据
  217.            (assign, "$troop_show_2", ":troop_no"),#用于记录当前troop
  218.            (assign, "$troop_show", ":troop_no"),#用于刷新agent

  219.         (else_try),
  220.            (eq, ":object", "$g_presentation_obj_2"),#阵营筛选
  221.            (try_begin),
  222.               (eq, "$troop_faction_choose", -1),
  223.               (assign, "$troop_faction_choose", "fac_commoners"),
  224.               (str_store_faction_name, s1, "$troop_faction_choose"),
  225.            (else_try),
  226.               (is_between, "$troop_faction_choose", "fac_commoners", "fac_faction_end"),
  227.               (val_add, "$troop_faction_choose", 1),
  228.               (str_store_faction_name, s1, "$troop_faction_choose"),
  229.            (else_try),
  230.               (eq, "$troop_faction_choose", "fac_faction_end"),
  231.               (assign, "$troop_faction_choose", -1),
  232.               (str_store_string, s1, "@total"),
  233.            (try_end),
  234.            (str_store_string, s2, "@troop_faction_choose"),
  235.            (overlay_set_text, "$g_presentation_obj_2", "@{s2}:_{s1}"),
  236.            (call_script, "script_troop_retrieve_refresh"),

  237.         (else_try),
  238.            (eq, ":object", "$g_presentation_obj_3"),#等级筛选
  239.            (try_begin),
  240.               (ge, "$troop_grade_choose", 6),
  241.               (assign, "$troop_grade_choose", -1),
  242.               (str_store_string, s1, "@total"),
  243.            (else_try),
  244.               (val_add, "$troop_grade_choose", 1),
  245.               (store_add, ":string_no", "$troop_grade_choose", "str_grade_blackiron"),
  246.               (str_store_string, s1, ":string_no"),
  247.            (try_end),
  248.            (str_store_string, s2, "@troop_grade_choose"),
  249.            (overlay_set_text, "$g_presentation_obj_3", "@{s2}:_{s1}"),
  250.            (call_script, "script_troop_retrieve_refresh"),

  251.         (else_try),
  252.            (eq, ":object", "$g_presentation_obj_4"),#兵种筛选
  253.            (try_begin),
  254.               (ge, "$troop_class_choose", 3),
  255.               (assign, "$troop_class_choose", -1),
  256.               (str_store_string, s1, "@total"),
  257.            (else_try),
  258.               (val_add, "$troop_class_choose", 1),
  259.               (store_add, ":string_no", "$troop_class_choose", "str_class_infantry"),
  260.               (str_store_string, s1, ":string_no"),
  261.            (try_end),
  262.            (str_store_string, s2, "@troop_class_choose"),
  263.            (overlay_set_text, "$g_presentation_obj_4", "@{s2}:_{s1}"),
  264.            (call_script, "script_troop_retrieve_refresh"),
  265.         (try_end),
  266.        ]),
  267.   ]),
复制代码
   用到的脚本:
  1. #用于troop场景图鉴的属性刷新
  2. #输入显示的troop($troop_show_2)
  3.   ("troop_attribute_refresh", [
  4.       (store_script_param, ":troop_no", 1),

  5.       (str_store_troop_name, s1, ":troop_no"),
  6.       (overlay_set_text, "$g_presentation_text_1", s1),#名字
  7.       (str_store_troop_name_plural, s1, ":troop_no"),
  8.       (overlay_set_text, "$g_presentation_text_2", "@{s1}^_"),#介绍

  9.       (store_faction_of_troop, ":faction_no", ":troop_no"),
  10.       (str_store_faction_name, s1, ":faction_no"),
  11.       (overlay_set_text, "$g_presentation_text_3", s1),#阵营

  12.       (store_character_level, reg2, ":troop_no"),
  13.       (overlay_set_text, "$g_presentation_text_4", "@level:{reg2}"),#等级

  14.       (assign, ":count_no_3", 0),
  15.       (try_for_range, ":count_no", 0, 53),
  16.          (lt, ":count_no", 4),
  17.          (store_add, ":overlay_no", ":count_no", "$g_presentation_mesh_1"),
  18.          (val_add, ":overlay_no", 1),                                                               #获取overlay序号
  19.          (store_add, ":string_no", ":count_no", "str_strength"),
  20.          (str_store_string, s1, ":string_no"),                                                   #获取文本
  21.          (store_add, ":attribute_no", ":count_no", ca_strength),
  22.          (store_attribute_level, ":attribute_level", ":troop_no", ":attribute_no"),#获取属性
  23.          (assign, reg2, ":attribute_level"),
  24.          (overlay_set_text, ":overlay_no", "@{s1}_{reg2}"),
  25.       (else_try),
  26.          (lt, ":count_no", 11),
  27.          (store_add, ":overlay_no", ":count_no", "$g_presentation_mesh_1"),
  28.          (val_add, ":overlay_no", 1),                                                              #获取overlay序号
  29.          (store_sub, ":count_no_2", ":count_no", 4),
  30.          (store_add, ":string_no", ":count_no_2", "str_wpt_one_handed"),
  31.          (str_store_string, s1, ":string_no"),                                                  #获取文本
  32.          (store_add, ":weapon_no", wpt_one_handed_weapon, ":count_no_2"),
  33.          (store_proficiency_level, ":weapon_level", ":troop_no", ":weapon_no"),#获取熟练
  34.          (assign, reg2, ":weapon_level"),
  35.          (overlay_set_text, ":overlay_no", "@{s1}_{reg2}"),
  36.       (else_try),
  37.          (lt, ":count_no", 54),
  38.          (store_add, ":overlay_no", ":count_no", "$g_presentation_mesh_1"),
  39.          (val_add, ":overlay_no", 1),                                                             #获取overlay序号
  40.          (store_sub, ":count_no_2", ":count_no", 11),
  41.          (store_sub, ":skill_no", skl_reserved_18, ":count_no_2"),
  42.          (store_skill_level, ":skill_level", ":skill_no", ":troop_no"),
  43.          (try_begin),
  44.             (gt, ":skill_level", 0),
  45.             (assign, reg2, ":skill_level"),
  46.             (store_add, ":string_no", ":count_no_2", "str_reserved_18"),
  47.             (str_store_string, s1, ":string_no"),
  48.             (overlay_set_text, ":overlay_no", "@{s1}_{reg2}"),
  49.             (overlay_set_display, ":overlay_no", 1),

  50.             (store_mod, ":count_no_4", ":count_no_3", 2),
  51.             (store_div, ":count_no_5", ":count_no_3", 2),
  52.             (try_begin),
  53.                (eq, ":count_no_4", 0),
  54.                (position_set_x, pos1, 765),
  55.             (else_try),
  56.                (position_set_x, pos1, 835),
  57.             (try_end),
  58.             (store_mul, ":high", ":count_no_5", -20),
  59.             (val_add, ":high", 530),
  60.             (position_set_y, pos1, ":high"),
  61.             (overlay_set_position, ":overlay_no", pos1),
  62.             (val_add, ":count_no_3", 1),
  63.          (else_try),
  64.             (overlay_set_display, ":overlay_no", 0),
  65.          (try_end),
  66.       (try_end),
  67.     ]),

  68. #用于troop场景图鉴的检索刷新
  69.   ("troop_retrieve_refresh", [
  70.            (store_add, ":troop_begin", "$g_presentation_container_1", 1),
  71.            (try_for_range, ":overlay_no", ":troop_begin", "$g_presentation_obj_2"),
  72.               (overlay_set_display, ":overlay_no", 0),
  73.               (position_set_x, pos1, 10),
  74.               (position_set_y, pos1, 10),
  75.               (overlay_set_position, ":overlay_no", pos1),#全部隐藏
  76.            (try_end),

  77.            (assign, ":cur_y", 5),
  78.            (try_for_range, ":overlay_no", ":troop_begin", "$g_presentation_obj_2"),
  79.               (troop_get_slot, ":troop_no", "trp_temp_array_a", ":overlay_no"),
  80.               (store_troop_faction, ":faction_no", ":troop_no"),
  81.               (this_or_next|eq, ":faction_no", "$troop_faction_choose"),
  82.               (eq, "$troop_faction_choose", -1),#阵营
  83.               (store_character_level, ":level_no", ":troop_no"),
  84.               (val_div, ":level_no", 10),
  85.               (this_or_next|eq, ":level_no", "$troop_grade_choose"),
  86.               (eq, "$troop_grade_choose", -1),#等级

  87.               (assign, ":continue_no", -1),
  88.               (try_begin),
  89.                  (eq, "$troop_class_choose", -1),
  90.                  (assign, ":continue_no", 1),
  91.               (else_try),
  92.                  (eq, "$troop_class_choose", 0),#步兵
  93.                  (neg|troop_is_guarantee_ranged, ":troop_no"),
  94.                  (neg|troop_is_guarantee_horse, ":troop_no"),
  95.                  (assign, ":continue_no", 1),
  96.               (else_try),
  97.                  (eq, "$troop_class_choose", 1),#投射手
  98.                  (troop_is_guarantee_ranged, ":troop_no"),
  99.                  (neg|troop_is_guarantee_horse, ":troop_no"),
  100.                  (assign, ":continue_no", 1),
  101.               (else_try),
  102.                  (eq, "$troop_class_choose", 2),#骑手
  103.                  (neg|troop_is_guarantee_ranged, ":troop_no"),
  104.                  (troop_is_guarantee_horse, ":troop_no"),
  105.                  (assign, ":continue_no", 1),
  106.               (else_try),
  107.                  (eq, "$troop_class_choose", 3),#游骑
  108.                  (troop_is_guarantee_ranged, ":troop_no"),
  109.                  (troop_is_guarantee_horse, ":troop_no"),
  110.                  (assign, ":continue_no", 1),
  111.               (try_end),
  112.               (eq, ":continue_no", 1),

  113.               (overlay_set_display, ":overlay_no", 1),
  114.               (val_add, ":cur_y", 20),#统计高度
  115.            (try_end),

  116.            (try_for_range, ":overlay_no", ":troop_begin", "$g_presentation_obj_2"),
  117.               (troop_get_slot, ":troop_no", "trp_temp_array_a", ":overlay_no"),
  118.               (store_troop_faction, ":faction_no", ":troop_no"),
  119.               (this_or_next|eq, ":faction_no", "$troop_faction_choose"),
  120.               (eq, "$troop_faction_choose", -1),#阵营
  121.               (store_character_level, ":level_no", ":troop_no"),
  122.               (val_div, ":level_no", 10),
  123.               (this_or_next|eq, ":level_no", "$troop_grade_choose"),
  124.               (eq, "$troop_grade_choose", -1),#等级

  125.               (assign, ":continue_no", -1),
  126.               (try_begin),
  127.                  (eq, "$troop_class_choose", -1),
  128.                  (assign, ":continue_no", 1),
  129.               (else_try),
  130.                  (eq, "$troop_class_choose", 0),#步兵
  131.                  (neg|troop_is_guarantee_ranged, ":troop_no"),
  132.                  (neg|troop_is_guarantee_horse, ":troop_no"),
  133.                  (assign, ":continue_no", 1),
  134.               (else_try),
  135.                  (eq, "$troop_class_choose", 1),#投射手
  136.                  (troop_is_guarantee_ranged, ":troop_no"),
  137.                  (neg|troop_is_guarantee_horse, ":troop_no"),
  138.                  (assign, ":continue_no", 1),
  139.               (else_try),
  140.                  (eq, "$troop_class_choose", 2),#骑手
  141.                  (neg|troop_is_guarantee_ranged, ":troop_no"),
  142.                  (troop_is_guarantee_horse, ":troop_no"),
  143.                  (assign, ":continue_no", 1),
  144.               (else_try),
  145.                  (eq, "$troop_class_choose", 3),#游骑
  146.                  (troop_is_guarantee_ranged, ":troop_no"),
  147.                  (troop_is_guarantee_horse, ":troop_no"),
  148.                  (assign, ":continue_no", 1),
  149.               (try_end),
  150.               (eq, ":continue_no", 1),

  151.               (val_sub, ":cur_y", 20),
  152.               (position_set_x, pos1, 10),
  153.               (position_set_y, pos1, ":cur_y"),
  154.               (overlay_set_position, ":overlay_no", pos1),
  155.            (try_end),
  156.     ]),



  157. ##____________________________________________________film related___________________________________________________________________________

  158. #set a substitude for player in film mode. Output two weapon no in game variables.
  159.   ("set_player_substitute", [
  160.       (troop_get_type, ":return_value", "trp_player"),
  161.       (troop_set_type, "trp_temp_substitute", ":return_value"),

  162.       (str_store_troop_face_keys, s1, "trp_player"),
  163.       (troop_set_face_keys, "trp_temp_substitute", s1),

  164.       (troop_clear_inventory, "trp_temp_substitute"),

  165.       (try_for_range, ":count_no", 2, 9),#ammo and armour
  166.          (call_script, "script_player_get_new_inventory_slot", ":count_no"),
  167.          (gt, reg0, 0),
  168.          (troop_set_inventory_slot, "trp_temp_substitute", ":count_no", reg0),
  169.       (try_end),

  170.       (assign, ":end_cond", 13),
  171.       (try_for_range, ":count_no", 10, ":end_cond"),#right hand
  172.          (call_script, "script_player_get_new_inventory_slot", ":count_no"),
  173.          (gt, reg0, 0),
  174.          (troop_set_inventory_slot, "trp_temp_substitute", 0, reg0),
  175.          (assign, ":end_cond", 10),
  176.       (try_end),

  177.       (assign, ":end_cond", 16),
  178.       (try_for_range, ":count_no", 13, ":end_cond"),#left hand
  179.          (call_script, "script_player_get_new_inventory_slot", ":count_no"),
  180.          (gt, reg0, 0),
  181.          (troop_set_inventory_slot, "trp_temp_substitute", 1, reg0),
  182.          (assign, ":end_cond", 13),
  183.       (try_end),
  184.     ]),
复制代码
   mission template:
  1.   (
  2.     "troop_window",0,-1,
  3.      "character window background.",
  4.     [
  5.       (0, mtef_visitor_source, af_override_horse, 0, 1, []),
  6.       (1, mtef_visitor_source, af_override_horse, 0, 1, []),
  7.       (2, mtef_visitor_source, af_override_horse, 0, 1, []),
  8.       (3, mtef_visitor_source, af_override_horse, 0, 1, []),
  9.       (4, mtef_visitor_source, af_override_horse, 0, 1, []),
  10.     ],
  11.       [
  12. #      common_battle_init_banner,

  13.       (ti_before_mission_start, 0, 0, [],
  14.       [
  15. #         (show_object_details_overlay, 0),
  16.          (assign, "$mission_show_horse", -1),
  17.          (start_presentation, "prsnt_troop_window"),
  18.       ]),

  19.       (ti_on_agent_spawn, 0, 0, [],#人物
  20.       [
  21.          (store_trigger_param_1, ":agent_no"),
  22.          (agent_set_no_dynamics, ":agent_no", 1),
  23.          (agent_is_human, ":agent_no"),
  24.          (agent_get_troop_id, ":troop_no", ":agent_no"),
  25.          (neq, ":troop_no", "trp_player"),
  26.          (assign, "$mission_show_agent", ":agent_no"),

  27.          (assign, ":proficiency_count", 0),
  28.          (try_for_range, ":count_no", 0, 4),
  29.             (agent_get_item_slot, ":itm_no", ":agent_no", ":count_no"),
  30.             (gt, ":itm_no", 0),
  31.             (item_get_type, ":type_no",":itm_no"),
  32.             (try_begin),
  33.                (eq, ":type_no", itp_type_shield),
  34.                (agent_set_wielded_item, ":agent_no", ":itm_no"),
  35.             (else_try),
  36.                (try_begin),
  37.                   (eq, ":type_no", itp_type_one_handed_wpn),
  38.                   (store_proficiency_level, ":proficiency_count_2", ":troop_no", wpt_one_handed_weapon),
  39.                (else_try),
  40.                   (eq, ":type_no", itp_type_two_handed_wpn),
  41.                   (store_proficiency_level, ":proficiency_count_2", ":troop_no", wpt_two_handed_weapon),
  42.                (else_try),
  43.                   (eq, ":type_no", itp_type_polearm),
  44.                   (store_proficiency_level, ":proficiency_count_2", ":troop_no", wpt_polearm),
  45.                (else_try),
  46.                   (eq, ":type_no", itp_type_bow),
  47.                   (store_proficiency_level, ":proficiency_count_2", ":troop_no", wpt_archery),
  48.                (else_try),
  49.                   (eq, ":type_no", itp_type_crossbow),
  50.                   (store_proficiency_level, ":proficiency_count_2", ":troop_no", wpt_crossbow),
  51.                (else_try),
  52.                   (eq, ":type_no", itp_type_thrown),
  53.                   (store_proficiency_level, ":proficiency_count_2", ":troop_no", wpt_throwing),
  54.                (else_try),
  55.                   (this_or_next|eq, ":type_no", itp_type_pistol),
  56.                   (eq, ":type_no", itp_type_musket),
  57.                   (store_proficiency_level, ":proficiency_count_2", ":troop_no", wpt_firearm),
  58.                (try_end),
  59.                (try_begin),
  60.                  (gt, ":proficiency_count_2", ":proficiency_count"),
  61.                   (agent_set_wielded_item, ":agent_no", ":itm_no"),
  62.                (else_try),
  63.                   (assign, ":proficiency_count", ":proficiency_count_2"),
  64.                (try_end),
  65.             (try_end),
  66.          (try_end),

  67.          (try_begin),
  68.             (this_or_next|troop_is_mounted, ":troop_no"),
  69.             (this_or_next|troop_is_guarantee_horse, ":troop_no"),
  70.             (troop_is_hero, ":troop_no"),
  71.             (troop_get_inventory_capacity, ":inventory_capacity", ":troop_no"),
  72.             (try_for_range, ":count_no", 0, ":inventory_capacity"),
  73.                (troop_get_inventory_slot, ":item_no", ":troop_no", ":count_no"),
  74.                (gt, ":item_no", 0),
  75.                (item_get_type, ":item_type_no", ":item_no"),
  76.                (eq, ":item_type_no", itp_type_horse),#坐骑
  77.                (entry_point_get_position, pos1, 5),
  78.                (set_spawn_position, pos1),
  79.                (spawn_horse, ":item_no"),
  80.                (assign, ":inventory_capacity", 0),#break
  81.             (try_end),
  82.          (try_end),
  83.       ]),

  84.       (ti_on_agent_spawn, 0, 0, [],#坐骑
  85.       [
  86.          (store_trigger_param_1, ":agent_no"),
  87.          (agent_set_no_dynamics, ":agent_no", 1),
  88.          (neg|agent_is_human, ":agent_no"),
  89.          (assign, "$mission_show_horse", ":agent_no"),
  90.       ]),

  91.       (ti_after_mission_start, 0, 0, [],        #cam
  92.       [
  93.          (assign, "$troop_show", -1),
  94.          (entry_point_get_position, pos3, 3),
  95.          (mission_cam_set_mode, 1),   
  96.          (mission_cam_set_position, pos3),   
  97.       ]),
  98. #pos3 is this mission's normal camera position

  99.       (0,0,0,[(gt, "$troop_show", 0),],
  100.       [
  101.          (agent_set_visibility, "$mission_show_agent", 0),
  102.          (agent_fade_out, "$mission_show_agent"),
  103.          (try_begin),
  104.             (ge, "$mission_show_horse", 0),
  105.             (agent_set_visibility, "$mission_show_horse", 0),
  106.             (agent_fade_out, "$mission_show_horse"),
  107.             (assign, "$mission_show_horse", -1),
  108.          (try_end),
  109.          (add_visitors_to_current_scene, 2, "$troop_show", 1),
  110.          (assign, "$troop_show", -1),
  111.       ]),

  112.       (ti_inventory_key_pressed, 0, 0,
  113.       [
  114.          (set_trigger_result, 0),
  115.       ], []),  

  116.       (ti_tab_pressed, 0, 0,
  117.        [],
  118.        [
  119.          (show_object_details_overlay, 1),
  120.          (finish_mission),
  121.        ]),
  122.     ],
  123.   ),
复制代码
  最后还有几个string:
  1.   ("total", "total"),
  2.   ("grade_blackiron", "blackiron"),
  3.   ("grade_barecopper", "barecopper"),
  4.   ("grade_whitesilver", "whitesilver"),
  5.   ("grade_gold", "gold"),
  6.   ("grade_blackgold", "blackgold"),
  7.   ("grade_redgold", "redgold"),
  8.   ("grade_whitegold", "whitegold"),

  9.   ("class_infantry", "infantry"),
  10.   ("class_marksman", "marksman"),
  11.   ("class_rider", "rider"),
  12.   ("class_ranger", "ranger"),
复制代码
   汉化之类的,那是小事,就自己去填吧。

    最后,我这里还有许多兵种要填数值、要出装的,一个人实在搞不过来的。诚邀想做mod的人一起来琢磨,只会魔球都可以。群号344394142。


效果图.jpg
效果图2.jpg
预览3.jpg

scn_character_window_dungon.rar

1.25 KB, 下载次数: 28

场景

鲜花鸡蛋

ggfgfgf  在2024-1-31 14:08  送朵鲜花  并说:帅
杰喵喵  在2024-1-31 08:48  送朵鲜花  并说:我非常同意你的观点,送朵鲜花鼓励一下
杰喵喵  在2024-1-31 08:48  送朵鲜花  并说:我非常同意你的观点,送朵鲜花鼓励一下
杰喵喵  在2024-1-31 08:48  送朵鲜花  并说:我非常同意你的观点,送朵鲜花鼓励一下

29

主题

751

回帖

574

积分

骑士

Rank: 4Rank: 4

UID
3322408
第纳尔
1748
精华
0
互助
68
荣誉
0
贡献
0
魅力
6
注册时间
2022-2-3
鲜花(57) 鸡蛋(0)
发表于 2024-1-30 22:21:16 来自手机 | 显示全部楼层

20240130222114front2_0_3322408_FltewgWZoq4EUhnDHLInNCLFujgy.jpg
20240130222114front2_0_3322408_Fs7sQ-H7IIq_3XnyZdwfspMkiir0.jpg

来自: Android客户端
20240130222114front2_0_3322408_FltewgWZoq4EUhnDHLInNCLFujgy.jpg

29

主题

751

回帖

574

积分

骑士

Rank: 4Rank: 4

UID
3322408
第纳尔
1748
精华
0
互助
68
荣誉
0
贡献
0
魅力
6
注册时间
2022-2-3
鲜花(57) 鸡蛋(0)
发表于 2024-1-30 22:25:04 来自手机 | 显示全部楼层
还有一个问题,就是右下角那个血条。把玩家的visitor关掉,会发现虽然血条没了,但是
1.整个界面上除了左侧兵种一览和右侧兵种介绍(两个container)以外其他的东西都没了,连滚动条都没了。
2.兵种一览的按键还能正常执行,也能正常滚动,这两个overlay位置也没错。
3.检测不见的overlay是否生成,得到的结论也是“是”。
目前推测该问题可能与mt的第一个,触发器,那个init banner的有关,但又又大概率不是fixed point这么简单。这个触发器是战团自带的,有兴趣的可以研究一下看看。来自: Android客户端

31

主题

210

回帖

187

积分

见习骑士

Rank: 3

UID
2462463
第纳尔
1587
精华
0
互助
23
荣誉
0
贡献
0
魅力
83
注册时间
2015-3-3
鲜花(58) 鸡蛋(0)
发表于 2024-1-30 22:31:36 | 显示全部楼层
66666666666666666666

26

主题

804

回帖

399

积分

骑士

民间工匠

Rank: 4Rank: 4

UID
1115705
第纳尔
4062
精华
0
互助
26
荣誉
2
贡献
0
魅力
30
注册时间
2012-12-13
鲜花(235) 鸡蛋(10)
发表于 2024-1-30 23:11:46 | 显示全部楼层
非常好代码,使我宾周旋转,并且掂了奥杜因酱一下。

17

主题

633

回帖

345

积分

见习骑士

Rank: 3

UID
3102512
第纳尔
2385
精华
0
互助
30
荣誉
0
贡献
0
魅力
74
注册时间
2019-9-6

骑砍中文站APP会员勋章战团正版勋章霸主正版勋章

鲜花(55) 鸡蛋(0)
发表于 2024-1-30 23:16:33 | 显示全部楼层
非常好代码,使我黑奴兴奋,爱来自虾头群
解解解解解解解解解解解解解解解解解解

16

主题

108

回帖

197

积分

见习骑士

Rank: 3

UID
3304622
第纳尔
690
精华
0
互助
26
荣誉
3
贡献
0
魅力
158
注册时间
2021-12-28
鲜花(31) 鸡蛋(0)
发表于 2024-1-31 08:47:41 | 显示全部楼层
老奥出品必属精品,不说了准备抄

29

主题

202

回帖

69

积分

扈从

Rank: 2Rank: 2

UID
3228783
第纳尔
878
精华
0
互助
0
荣誉
0
贡献
0
魅力
0
注册时间
2021-3-28
鲜花(9) 鸡蛋(0)
发表于 2024-1-31 12:38:05 来自手机 | 显示全部楼层
cool 66666来自: Android客户端
您需要登录后才可以回帖 登录 | 注册(Register!)

本版积分规则

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

GMT+8, 2024-12-27 12:29 , Processed in 0.126432 second(s), 31 queries , Gzip On, MemCached On.

Powered by Discuz! X3.4 Licensed

© 2001-2023 Discuz! Team.

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