骑马与砍杀中文站论坛

 找回密码
 注册(Register!)

QQ登录

只需一步,快速开始

搜索
购买CDKEY 衣谷三国
查看: 2145|回复: 2

[经验与教程] 整理标注了一下伙伴npc招募对话

[复制链接]

44

主题

101

回帖

224

积分

见习骑士

Rank: 3

UID
3199602
第纳尔
1162
精华
0
互助
36
荣誉
0
贡献
1
魅力
227
注册时间
2020-9-4
鲜花(60) 鸡蛋(0)
发表于 2025-7-26 11:06:00 | 显示全部楼层 |阅读模式
##npc招募结束后,还没离开酒馆时再去和他对话
#固定句式         
  [anyone|plyr, "start", [
    (is_between, "$g_talk_troop", companions_begin, companions_end),
    (this_or_next|eq, "$talk_context", tc_tavern_talk),
    (eq, "$talk_context", tc_court_talk),
    (main_party_has_troop, "$g_talk_troop")
  ], "Let's leave whenever you are ready.", "zhaomu_npc", []],

##npc招募结束后,还没离开酒馆时再去和他对话
#固定句式   
  [anyone, "zhaomu_npc", [], "Let's leave whenever you are ready.", "close_window", []],

#npc招募:连续拒绝两次后,直接关闭对话
#固定句式
  [anyone|plyr, "start", [(is_between, "$g_talk_troop", companions_begin, companions_end),
    (troop_slot_eq, "$g_talk_troop", slot_troop_occupation, 0),
    (troop_slot_eq, "$g_talk_troop", slot_troop_turned_down_twice, 1),
   ], "Please do not waste any more of my time today, {sir/madame}. Perhaps we shall meet again in our travels.", "close_window", []],

##————————————————————————————————第一次招募——————————————————————————
#npc招募:由npc说的第一句话,比如“你好,还招人吗?”
#str_npcX_intro
  [anyone, "start", [(is_between, "$g_talk_troop", companions_begin, companions_end),
    (troop_slot_eq, "$g_talk_troop", slot_troop_occupation, 0),
    (eq, "$g_talk_troop_met", 0),
    (troop_get_slot, ":intro", "$g_talk_troop", slot_troop_intro),
    (str_store_string, 5, ":intro"),
    (str_store_party_name, 20, "$g_encountered_party"),
   ], "{s5}", "companion_recruit_intro_response", [
    (troop_set_slot, "$g_talk_troop", slot_troop_first_encountered, "$g_encountered_party"),
  ]],

#npc招募:玩家回应,比如“是啊,我正在找一个合格的战士”
#str_npcX_intro_response_1
  [anyone|plyr, "companion_recruit_intro_response", [
    (troop_get_slot, ":intro_response", "$g_talk_troop", slot_troop_intro_response_1),
    (str_store_string, 6, ":intro_response")
  ], "{s6}", "companion_recruit_backstory_a", []],

#npc招募:玩家拒绝,比如“不了,现在不行”
#str_npcX_intro_response_2
  [anyone|plyr, "companion_recruit_intro_response", [
    (troop_get_slot, ":intro_response", "$g_talk_troop", slot_troop_intro_response_2),
    (str_store_string, 7, ":intro_response")
  ],  "{s7}", "close_window", []],

#npc招募:npc讲自己背景故事,比如“我来自一个骑士家族……”
#str_npcX_backstory_a
  [anyone, "companion_recruit_backstory_a", [
    (troop_get_slot, ":backstory_a", "$g_talk_troop", slot_troop_backstory_a),
    (str_store_string, 5, ":backstory_a"),
    (str_store_string, 19, "str_here_plus_space"),
    (str_store_party_name, 20, "$g_encountered_party"),
   ], "{s5}", "companion_recruit_backstory_b", []],

#npc招募:npc讲自己背景故事的第二段
#str_npcX_backstory_b
  [anyone, "companion_recruit_backstory_b", [
    (troop_get_slot, ":backstory_b", "$g_talk_troop", slot_troop_backstory_b),
    (str_store_string, 5, ":backstory_b"),
    (str_store_party_name, 20, "$g_encountered_party"),
   ], "{s5}", "companion_recruit_backstory_c", []],

#npc招募:npc讲自己背景故事的第三段
#str_npcX_backstory_c
  [anyone, "companion_recruit_backstory_c", [
    (troop_get_slot, ":backstory_c", "$g_talk_troop", slot_troop_backstory_c),
    (str_store_string, 5, ":backstory_c"),
   ], "{s5}", "companion_recruit_backstory_response", []],

#npc招募:玩家对背景故事的积极回应,比如“好啊,我正要一个骑士”
#str_npcX_backstory_response_1
  [anyone|plyr, "companion_recruit_backstory_response", [
    (troop_get_slot, ":backstory_response", "$g_talk_troop", slot_troop_backstory_response_1),
    (str_store_string, 6, ":backstory_response")
      ], "{s6}", "companion_recruit_signup", []],

#npc招募:玩家对背景故事的消极回应,比如“不行,我不想和贵族扯上关系”
#str_npcX_backstory_response_2
  [anyone|plyr, "companion_recruit_backstory_response", [
    (troop_get_slot, ":backstory_response", "$g_talk_troop", slot_troop_backstory_response_2),
    (str_store_string, 7, ":backstory_response")
      ], "{s7}", "close_window", []],

#npc招募:npc谈论自己的能力,比如“好啊,我擅长马上作战,一定能帮你……”
#str_npcX_signup
  [anyone, "companion_recruit_signup", [
    (troop_get_slot, ":signup", "$g_talk_troop", slot_troop_signup),
    (str_store_string, 5, ":signup"),
    (str_store_party_name, 20, "$g_encountered_party"),
   ], "{s5}", "companion_recruit_signup_b", []],

#npc招募:npc谈论自己的能力的第二段,比如“我还学过领兵打仗……”
#str_npcX_signup_2
  [anyone, "companion_recruit_signup_b", [
    (troop_get_slot, ":signup", "$g_talk_troop", slot_troop_signup_2),
    (troop_get_slot, reg3, "$g_talk_troop", slot_troop_payment_request),#
    (str_store_string, 5, ":signup"),
    (str_store_party_name, 20, "$g_encountered_party"),
  ], "{s5}", "companion_recruit_signup_response", []],

#npc招募:部队没有空位了
#固定句式
  [anyone|plyr, "companion_recruit_signup_response", [
    (neg|hero_can_join, "p_main_party"),
  ], "Unfortunately, I can't take on any more hands in my party right now.", "close_window", []],

#npc招募:玩家对npc能力的积极回应,比如“太好了,我正缺一个骑兵小队长”
#str_npcX_signup_response_1
  [anyone|plyr, "companion_recruit_signup_response", [
    (hero_can_join, "p_main_party"),
    (troop_get_slot, ":signup_response", "$g_talk_troop", slot_troop_signup_response_1),
    (str_store_string, 6, ":signup_response")
  ], "{s6}", "companion_recruit_payment", []],

#npc招募:玩家对npc能力的消极回应,比如“恐怕不行,我支付不起骑兵的费用”
#str_npcX_signup_response_2
  [anyone|plyr, "companion_recruit_signup_response", [
    (hero_can_join, "p_main_party"),
    (troop_get_slot, ":signup_response", "$g_talk_troop", slot_troop_signup_response_2),
    (str_store_string, 7, ":signup_response")
  ], "{s7}", "close_window", []],

#npc招募:如果这个npc不要钱,就会直接跳过第三阶段,直接进入最后的入队对话
  [anyone|auto_proceed, "companion_recruit_payment", [
    (troop_slot_eq, "$g_talk_troop", slot_troop_payment_request, 0),
   ], ".", "companion_recruit_signup_confirm", []],

#npc招募:npc要钱,比如“我现在还欠酒店6000块……”
#str_npcX_payment
  [anyone, "companion_recruit_payment", [
    (store_sub, ":npc_offset", "$g_talk_troop", "trp_npc1"),
    (store_add, ":dialog_line", "str_npc1_payment", ":npc_offset"),
    (str_store_string, s5, ":dialog_line"),
    (troop_get_slot, reg3, "$g_talk_troop", slot_troop_payment_request),
    (str_store_party_name, s20, "$g_encountered_party"),
  ], "{s5}", "companion_recruit_payment_response", []],

#npc招募:玩家同意给钱
#str_npcX_payment_response
  [anyone|plyr, "companion_recruit_payment_response", [
    (hero_can_join, "p_main_party"),
    (troop_get_slot, ":amount_requested", "$g_talk_troop", slot_troop_payment_request),#
    (store_troop_gold, ":gold", "trp_player"),#
    (ge, ":gold", ":amount_requested"),#
    (assign, reg3, ":amount_requested"),
    (store_sub, ":npc_offset", "$g_talk_troop", "trp_npc1"),
    (store_add, ":dialog_line", "str_npc1_payment_response", ":npc_offset"),
    (str_store_string, s6, ":dialog_line"),
  ], "{s6}", "companion_recruit_signup_confirm", [
    (troop_get_slot, ":amount_requested", "$g_talk_troop", slot_troop_payment_request),#
    (gt, ":amount_requested", 0),#
    (troop_remove_gold, "trp_player", ":amount_requested"),  #                  
    (troop_set_slot, "$g_talk_troop", slot_troop_payment_request, 0),#
  ]],

#npc招募:玩家想给钱或给不起钱
#固定句式
  [anyone|plyr, "companion_recruit_payment_response", [
    (troop_get_slot, ":signup_response", "$g_talk_troop", slot_troop_signup_response_2),
    (str_store_string, s7, ":signup_response")
  ], "Sorry. I can't afford that at the moment.", "close_window", []],


##————————————————————————————————再次招募——————————————————————————
#npc招募:之前见过,但没入队,再次见面
#固定句式
  [anyone, "start", [(is_between, "$g_talk_troop", companions_begin, companions_end),
    (troop_slot_eq, "$g_talk_troop", slot_troop_occupation, 0),
    (troop_slot_eq, "$g_talk_troop", slot_troop_met_previously, 1),
    (troop_slot_eq, "$g_talk_troop", slot_troop_playerparty_history, 0),
  ], "We meet again.", "companion_recruit_meet_again", [
    (troop_set_slot, "$g_talk_troop", slot_troop_turned_down_twice, 1),
  ]],

#npc招募:再次见面的寒暄,“上次之后你又干了什么?”
#固定句式
  [anyone|plyr, "companion_recruit_meet_again", [], "So... What have you been doing since our last encounter?", "companion_recruit_backstory_delayed", []],

#npc招募:再次见面并离开
#固定句式
  [anyone|plyr, "companion_recruit_meet_again", [],  "Good day to you.", "close_window", []],

#npc招募:第一次见面对话了一下立马离开,再次对话,npc表示不爽
#固定句式
  [anyone, "start", [(is_between, "$g_talk_troop", companions_begin, companions_end),
    (troop_slot_eq, "$g_talk_troop", slot_troop_occupation, 0),
    (troop_slot_eq, "$g_talk_troop", slot_troop_met_previously, 0),
    (troop_slot_eq, "$g_talk_troop", slot_troop_playerparty_history, 0),
   ], "Yes?", "companion_recruit_secondchance", [
    (troop_set_slot, "$g_talk_troop", slot_troop_turned_down_twice, 1),
   ]],

#npc招募:第一次见面对话了一下立马离开,再次对话,道歉,“能再给我讲讲你的故事吗?”
#固定句式
  [anyone|plyr, "companion_recruit_secondchance", [], "My apologies if I was rude, earlier. What was your story again?", "companion_recruit_backstory_b", []],
#npc招募:第一次见面对话了一下立马离开,再次对话,还是选择离开
#固定句式
  [anyone|plyr, "companion_recruit_secondchance", [],  "Never mind.", "close_window", []],

##npc招募:再次见面说起自己的近况
#str_npcX_backstory_later
  [anyone, "companion_recruit_backstory_delayed", [
    (troop_get_slot, ":backstory_delayed", "$g_talk_troop", slot_troop_backstory_delayed),
    (str_store_string, 5, ":backstory_delayed")
   ], "{s5}", "companion_recruit_backstory_delayed_response", []],

##npc招募:再次见面邀请入队,转到提报酬的位置
#固定句式
  [anyone|plyr, "companion_recruit_backstory_delayed_response", [], "I might be able to use you in my company.", "companion_recruit_signup_b", []],

##npc招募:再次见面玩家敷衍离开
#固定句式
  [anyone|plyr, "companion_recruit_backstory_delayed_response", [],  "I'll let you know if I hear of anything.", "close_window", []],

##————————————————————————————————最终入队——————————————————————————
#npc招募完成:好!给我几分钟时间准备我们就动身
#固定句式
  [anyone, "companion_recruit_signup_confirm", [], "Good! Give me a few moments to prepare and I'll be ready to move.", "close_window",
   [(call_script, "script_recruit_troop_as_companion", "$g_talk_troop")]],


npc入队对话复杂得批爆,设置了一些slot,在此总结一下,以便需要通过剧情或者彼得方式直接让npc入队的moder使用
  1. (troop_set_slot, "$g_talk_troop", slot_troop_first_encountered, "$g_encountered_party"),#初次见面的城市,不知道哪里有用
  2. (troop_set_slot, "$g_talk_troop", slot_troop_payment_request, 0),#把佣金变成0,应该是为了后续T掉它再次招募时不用重复给钱
  3. (call_script, "script_recruit_troop_as_companion", "$g_talk_troop"),入队脚本,call了就行了
复制代码




0

主题

20

回帖

6

积分

平民

Rank: 1

UID
411164
第纳尔
134
精华
0
互助
0
荣誉
0
贡献
0
魅力
0
注册时间
2011-4-15

原版正版勋章战团正版勋章火与剑正版勋章拿破仑正版勋章维京征服正版勋章

鲜花(1) 鸡蛋(0)
发表于 2025-8-4 10:41:33 | 显示全部楼层
本帖最后由 paul_guo 于 2025-8-4 11:20 编辑

我试着在triggers里调用"script_recruit_troop_as_companion不太成功,是不是需要在那边重新编译啊
我搞错了,直接调用就行

0

主题

25

回帖

13

积分

随仆

Rank: 1

UID
3238515
第纳尔
24
精华
0
互助
1
荣誉
0
贡献
0
魅力
0
注册时间
2021-5-11
鲜花(0) 鸡蛋(0)
发表于 2025-8-12 19:28:40 来自手机 | 显示全部楼层
感谢分享.手动点赞。
您需要登录后才可以回帖 登录 | 注册(Register!)

本版积分规则

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

GMT+8, 2025-9-16 03:18 , Processed in 0.102064 second(s), 24 queries , Gzip On, MemCached On.

Powered by Discuz! X3.4 Licensed

© 2001-2023 Discuz! Team.

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