骑马与砍杀中文站论坛

 找回密码
 注册(Register!)

QQ登录

只需一步,快速开始

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

[经验与教程] 【新手向】实现特定地点招募特定兵种(slot入门教学)

[复制链接]

16

主题

152

回帖

160

积分

见习骑士

Rank: 3

UID
3048044
第纳尔
2061
精华
0
互助
18
荣誉
2
贡献
20
魅力
289
注册时间
2018-12-15
鲜花(34) 鸡蛋(0)
发表于 2022-12-14 17:03:53 | 显示全部楼层 |阅读模式
我已经知道自己的才能应该用到哪里了(指幼教),因此我以后会多做一些幼教osp帮助新手成长,让新手自己学着写功能(屑),顺便科普一下一些功能怎么用写这个帖子是因为我帮别人写这个基础功能时,由于我编功能有记录在一个txt里的,所以顺便发个osp做个幼教
我那个迷你游戏目前由于涉及东西略多,加上txt记录是一开始做完1.4版本的时候记录的,后面有几个bug所以没同步更新,因此还没干净的拆出来,故暂时不发出来献丑

constant部分
首先要在constant文件搜索PARTY SLOT来添加两个slot分别对应这个地点对应的兵种和cd时间
首先,找到partyslot的末尾,添加两个slot,注意这个数字不能是重复的,我根据经验表示如果你比较怂,是新手,那可以直接从500开始
slot的就是给物体赋予的额外属性,例如本文中的这两个属性就是给party这类物体赋予绑定兵种和招募倒计时这两个原本没有的属性
希望看了教学的萌新能光速举一反三出来
slot_center_specialtroop =  数字#特殊兵种
slot_center_specialtroop_cd =  数字#招募cd


然后,用任意方式在游戏开始时的脚本里给指定的party赋值,鉴于这里是幼教栏目我建议直接搜索item_info这个脚本,在这个脚本添加你想要绑定的地点和兵种
格式为(party_set_slot, "部队", slot_center_specialtroop, “兵种”),
这个是set的部分,打开你的header_operation还可以看到slot的其他用法
然后你可以用这个知识和你的英文储备/翻译软件去看看下面那些item的slot分别代表什么

然后打开menus菜单,在town这个大界面底下添加一个选项,用途是检查条件符合就跳转到新菜单
      ("recruit_special_troop",[
        (party_slot_ge,"$g_encountered_party",slot_center_specialtroop,1),#检查是否有特殊兵种
        (party_slot_eq,"$g_encountered_party",slot_center_specialtroop_cd,0),#检查是否在cd中

         ],"Take an action.",
       [(jump_to_menu, "mnu_recruit_special_troop_menu"),]),#如果没有,那么跳转到新界面

然后接下来
在menus最底下那个]前面加上一个新菜单
  ("recruit_special_troop_menu",0,
   "{s1}",
   "none",
   [
    (party_get_slot,":troop_id","$g_encountered_party",slot_center_specialtroop),
    (store_character_level,":level",":troop_id"),
    (store_div,":level_div10",":level",10),
    (store_sub,"$st_upper_limit",8,":level_div10"),#将8-这个城市绑定兵种等级的1/10,作为招募的上限数量
    (store_div,":level_div25",":level",25),
    (store_sub,"$st_lower_limit",3,":level_div25"),#将3-这个城市绑定兵种等级的1/25,作为招募的下限数量
    (val_mul,":level",25),#将这个兵种等级*25作为招募费用
   (try_begin),
    (troop_is_mounted,":troop_id"),#如果是骑兵价格*2
    (val_mul,":level",2),
   (else_try),
     (troop_is_guarantee_ranged,":troop_id"),#如果是射手价格*1.5
    (val_mul,":level",3),
    (val_div,":level",2),
   (try_end),
    (assign,"$st_cause",":level"),
    (str_store_party_name,s11,"$g_encountered_party"),
    (str_store_troop_name,s6,":troop_id"),
    (assign,reg20,":level"),
    (str_store_string, s1, "@shuodedaoli"),
        ],
    [

      ("recruit_st",[
           (store_mul,":max_cause","$st_upper_limit","$st_cause"),#确定玩家金钱超过最大随机数的兵种招募数量
           (store_troop_gold,":gold","trp_player"),
           (ge,":gold",":max_cause"),
           (troops_can_join,"$st_lower_limit"),#和大于最小数量的位置
                            ],"Back to camp menu.",
       [   (val_add,"$st_upper_limit",1),#众所周知,骑砍取得上限实际上是上限-1
           (store_random_in_range,":number","$st_lower_limit","$st_upper_limit"),#在最大随机数和最小随机数之间选取一个数
           (party_get_slot,":troop_id","$g_encountered_party",slot_center_specialtroop),
           (party_add_members,"p_main_party",":troop_id",":number"),#添加到玩家部队里
           (store_mul,":gold_sub",":number","$st_cause"),
           (troop_remove_gold,"trp_player",":gold_sub"),#扣钱
           (party_set_slot,"$g_encountered_party",slot_center_specialtroop_cd,168),#这个是设置cd,自己调
           (jump_to_menu, "mnu_town"),#返回
        ]),

        ]
       ),

      ("exit",[],"Back to camp menu.",
       [(jump_to_menu, "mnu_town"),#无条件返回
        ]),
      ]),

最后加一个simple_trigger就可以了
    (2,[
       (try_for_range,":cur_town",centers_begin, villages_end),
           (party_get_slot,":cd",":cur_town",slot_center_specialtroop_cd),
           (gt,":cd",0),
           (val_sub,":cd",2),
           (party_set_slot,":cur_town",slot_center_specialtroop_cd,":cd"),
       (try_end),
    ]),

这个触发器的含义是每两小时循环一遍所有据点,任何在cd内的据点cd时间-2
例如如果要做村子里使用这个功能,应该把所有涉及"mnu_town"的东西改成"mnu_village"

qstr汉化部分
qstr_shuodedaoli|{s11} 的 特 殊 兵 种 为 {s6} ^招 募 每 名 {s6}需 要 消 耗 {reg20} 第 纳 尔  。

menus汉化部分
mno_recruit_special_troop|招 募 当 地 特 色 兵 种 。
mno_recruit_st|招 募 一 队 。
mno_exit|返 回 。


最后建议所有新人在看本板osp的时候应该参考一下headeroperation自己试着解读
好好学习,天天向上

这也是我做幼教贴的目的



评分

参与人数 2第纳尔 +20 互助 +1 魅力 +25 收起 理由
Aomine Daiki + 1 + 20 文章不错,继续努力!
幼稚园殺手 + 20 + 5 您的帖子很有价值!

查看全部评分

鲜花鸡蛋

咸鱼圣代  在2024-4-15 17:21  送朵鲜花  并说:我非常同意你的观点,送朵鲜花鼓励一下
幼稚园殺手  在2022-12-15 21:38  送朵鲜花  并说:我非常同意你的观点,送朵鲜花鼓励一下

4

主题

26

回帖

9

积分

平民

Rank: 1

UID
3130257
第纳尔
358
精华
0
互助
0
荣誉
0
贡献
0
魅力
2
注册时间
2020-1-23
鲜花(10) 鸡蛋(0)
发表于 2022-12-14 17:32:15 来自手机 | 显示全部楼层
支持一下。

29

主题

738

回帖

565

积分

骑士

Rank: 4Rank: 4

UID
3322408
第纳尔
1748
精华
0
互助
67
荣誉
0
贡献
0
魅力
6
注册时间
2022-2-3
鲜花(57) 鸡蛋(0)
发表于 2022-12-15 00:21:40 来自手机 | 显示全部楼层
来自: Android客户端

55

主题

2759

回帖

1769

积分

子爵[版主]

吟游诗人

Rank: 7Rank: 7Rank: 7

UID
3054380
第纳尔
23809
精华
2
互助
57
荣誉
44
贡献
916
魅力
1418
注册时间
2019-1-18

骑砍中文站APP会员勋章原版正版勋章战团正版勋章火与剑正版勋章拿破仑正版勋章维京征服正版勋章霸主正版勋章剧本设计大奖赛骑友真人秀Ⅷ勋章骑友真人秀Ⅶ勋章骑友真人秀Ⅸ勋章

QQ
鲜花(512) 鸡蛋(2)
发表于 2022-12-15 21:39:06 | 显示全部楼层
好东西,对于新人估计帮助会很大
珍惜 奉献 不负韶华
您需要登录后才可以回帖 登录 | 注册(Register!)

本版积分规则

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

GMT+8, 2024-11-19 12:14 , Processed in 0.138963 second(s), 25 queries , Gzip On, MemCached On.

Powered by Discuz! X3.4 Licensed

© 2001-2023 Discuz! Team.

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