骑马与砍杀中文站论坛

 找回密码
 注册(Register!)

QQ登录

只需一步,快速开始

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

[分享] 书籍管理代码——一个微小的改动带来巨大的使用优化

[复制链接]

28

主题

218

回帖

179

积分

见习骑士

Rank: 3

UID
2758789
第纳尔
2118
精华
0
互助
19
荣誉
1
贡献
0
魅力
171
注册时间
2016-7-18
鲜花(18) 鸡蛋(0)
发表于 2023-6-8 12:21:06 | 显示全部楼层 |阅读模式
本帖最后由 路过的罗格 于 2023-6-8 12:23 编辑

module_presentations.py
("book_management"里的
reference books部分,try_for_range改成try_for_range_backwards,别从前往后遍历了,改成从后往前。提升使用体验,新加入的书直接显示在最上面,方便分配。(代码块里加不了加粗,页内搜一下try_for_range_backwards,来找到代码里改了什么)
如果进行了导出书籍,会略微失效,需要点一次整理来保证正常使用。因为这个导出的格子被空出来了,所以下次添加时,会先填上这个格子,所以会乱,而整理功能可以把之前的格子都填满。
  1.         # reference books
  2.         # background
  3.         (call_script, "script_prsnt_line", 320, 665, 20, 70, 0),
  4.         (overlay_set_alpha, reg1, 0x33),
  5.         # background
  6.         (assign, ":reference_books", 0),
  7.         (assign, ":reference_book_holders", 0),
  8.         (troop_get_inventory_capacity, ":inv_cap", "trp_bookcase"),
  9.         (try_for_range, ":i_slot", 10, ":inv_cap"),
  10.           (troop_get_inventory_slot, ":item", "trp_bookcase", ":i_slot"),
  11.           (gt, ":item", -1),
  12.           (is_between, ":item", reference_books_begin, reference_books_end),
  13.           (val_add, ":reference_books", 1),
  14.           (troop_get_slot, ":book_holder", "trp_bookcase", ":i_slot"),
  15.           (gt, ":book_holder", -1),
  16.           (val_add, ":reference_book_holders", 1),
  17.         (try_end),
  18.         (assign, reg4, ":reference_books"),
  19.         (assign, reg3, ":reference_book_holders"),
  20.         
  21.         (create_text_overlay, reg1, "@Reference Books({reg3}/{reg4})", tf_center_justify|tf_double_space),
  22.         (position_set_x, pos1, 1200),
  23.         (position_set_y, pos1, 1200),
  24.         (overlay_set_size, reg1, pos1),
  25.         (position_set_x, pos1, 175),
  26.         (position_set_y, pos1, 700),
  27.         (overlay_set_position, reg1, pos1),
  28.         
  29.         (str_clear, s0),
  30.         (create_text_overlay, reg1, s0, tf_scrollable_style_2),
  31.         (position_set_x, pos1, 20),
  32.         (position_set_y, pos1, 70),
  33.         (overlay_set_position, reg1, pos1),
  34.         (position_set_x, pos1, 300),
  35.         (position_set_y, pos1, 630),
  36.         (overlay_set_area_size, reg1, pos1),
  37.         (set_container_overlay, reg1),
  38.         
  39.         (store_div, ":num_rows", ":reference_books", 2),
  40.         (store_mod, ":col_mod", ":reference_books", 2),
  41.         (val_min, ":col_mod", 1),
  42.         (val_add, ":num_rows", ":col_mod"),
  43.         (store_mul, ":pos_y", ":num_rows", 125),
  44.         (val_max, ":pos_y", 625),
  45.         (val_sub, ":pos_y", 80),
  46.         (assign, ":pos_x", 40),
  47.         (assign, ":slot_no", 0),
  48.         (troop_get_inventory_capacity, ":inv_cap", "trp_bookcase"),
  49.         (<b><i>try_for_range_backwards</i></b>, ":i_slot", 10, ":inv_cap"),
  50.           (troop_get_inventory_slot, ":item", "trp_bookcase", ":i_slot"),
  51.           (gt, ":item", -1),
  52.           (is_between, ":item", reference_books_begin, reference_books_end),
  53.           # item slot
  54.           (create_image_button_overlay, reg1, "mesh_mp_inventory_choose", "mesh_mp_inventory_choose"),
  55.           (position_set_x, pos1, 640),
  56.           (position_set_y, pos1, 640),
  57.           (overlay_set_size, reg1, pos1),
  58.           (position_set_x, pos1, ":pos_x"),
  59.           (position_set_y, pos1, ":pos_y"),
  60.           (overlay_set_position, reg1, pos1),
  61.           (troop_set_slot, "trp_temp_array_a", ":slot_no", reg1),
  62.           # item mesh
  63.           (create_mesh_overlay_with_item_id, reg1, ":item"),
  64.           (position_set_x, pos1, 800),
  65.           (position_set_y, pos1, 800),
  66.           (overlay_set_size, reg1, pos1),
  67.           (store_add, ":item_x", ":pos_x", 40),
  68.           (store_add, ":item_y", ":pos_y", 40),
  69.           (position_set_x, pos1, ":item_x"),
  70.           (position_set_y, pos1, ":item_y"),
  71.           (overlay_set_position, reg1, pos1),
  72.           (troop_set_slot, "trp_temp_array_b", ":slot_no", reg1),
  73.           (troop_set_slot, "trp_temp_array_c", ":slot_no", ":i_slot"),
  74.           # text
  75.           (str_store_item_name, s1, ":item"),
  76.           (troop_get_slot, ":book_holder", "trp_bookcase", ":i_slot"),
  77.           (try_begin),
  78.             (eq, ":book_holder", -1),
  79.             (str_store_string, s2, "@None"),
  80.           (else_try),
  81.             (str_store_troop_name, s2, ":book_holder"),
  82.           (try_end),
  83.           (create_text_overlay, reg1, "@{s1}^Holder: {s2}", tf_center_justify|tf_double_space),
  84.           (position_set_x, pos1, 800),
  85.           (position_set_y, pos1, 800),
  86.           (overlay_set_size, reg1, pos1),
  87.           (store_add, ":text_x", ":pos_x", 40),
  88.           (store_add, ":text_y", ":pos_y", -40),
  89.           (position_set_x, pos1, ":text_x"),
  90.           (position_set_y, pos1, ":text_y"),
  91.           (overlay_set_position, reg1, pos1),
  92.           (val_add, ":pos_x", 150),
  93.           (val_add, ":slot_no", 1),
  94.           (try_begin),
  95.             (ge, ":pos_x", 40+150*2),
  96.             (assign, ":pos_x", 40),
  97.             (val_sub, ":pos_y", 125),
  98.           (try_end),
  99.         (try_end),
  100.         (set_container_overlay, -1),
复制代码



鲜花鸡蛋

滴酒不沾李太白  在2023-6-8 19:38  送朵鲜花  并说:登录就为给你点赞
您需要登录后才可以回帖 登录 | 注册(Register!)

本版积分规则

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

GMT+8, 2024-4-28 22:15 , Processed in 0.096878 second(s), 18 queries , Gzip On, MemCached On.

Powered by Discuz! X3.4 Licensed

© 2001-2023 Discuz! Team.

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