####################################################################################################################################### ####################################################################################################################################### ####################################################################################################################################### ##说明 ####################################################################################################################################### ####################################################################################################################################### ####################################################################################################################################### 开新档以后最麻烦的就是找NPC了,16世纪那么大的地图,就算开了作弊瞬移找都要好大一番功夫。 考虑过采用把所有NPC集中到一起的那个办法,但是想想似乎有点太作弊了,对不作弊的玩家很不友好。 于是添加了玩家可以询问酒店老板NPC在哪的功能 以下情况,老板会告知玩家具体信息 NPC未被雇佣,在某个王国(如果NPC所在城镇和酒店所在城镇是一个王国的,则会具体告诉在哪个城镇) NPC被囚禁 NPC在野外某处带兵 测试下来似乎只有一个小BUG。 一旦NPC当了领主,被击败了又逃走的时候,或者刚封为领主的时候,满世界都会找不到他。可是酒店老板还是会收500块钱,然后告诉你他也不知道NPC在哪。。就权当是老板坑人吧。反正自立了也不缺钱。 x4版本添加了召唤NPC来当前城市的功能。必须支付1500第纳尔。条件为NPC在某酒馆等雇佣,NPC所在酒馆不能太遥远。且不能连续找NPC过来。 一般NPC会在两天以内到达。 如果NPC到达酒馆后,没过多久,就碰巧系统刷新NPC位置了。那NPC就会又离开了。这就算被老板坑钱了吧。应该不能说是BUG。这个概率不大,因为系统刷NPC位置是15天刷一次。 ####################################################################################################################################### ####################################################################################################################################### ####################################################################################################################################### ##汉化修改 ####################################################################################################################################### ####################################################################################################################################### ####################################################################################################################################### @game_strings.csv ###################################################################################################################################### 末尾添加 str_calling_npc|{s1}的 酒 馆 老 板 派 人 来 告 诉 你:{s0}已 经 来 了。 @dialog.csv ####################################################################################################################################### 末尾添加 dlga_tavernkeeper_talk:tavernkeeper_ask_npc|我 想 跟 你 打 听 一 个 人。 dlga_tavernkeeper_ask_npc:tavernkeeper_ask_npc_2|我 这 来 来 去 去 的 人 很 多,说 不 定 我 听 到 过 些 什 么。 你 说 说 看? dlga_tavernkeeper_ask_npc_2:tavernkeeper_pretalk|算 了。 dlga_tavernkeeper_ask_npc_2:tavernkeeper_ask_npc_3|他 是 从 大 明 成 都 府 来 的,打 扮 得 像 个 侠 客。据 说 他 的 父 亲 是 商 人。 dlga_tavernkeeper_ask_npc_2:tavernkeeper_ask_npc_3.1|你 有 没 有 听 说 过 那 个 弄 丢 了 哈 密 卫, 不 过 听 说 骑 马 还 不 错 的 军 官? dlga_tavernkeeper_ask_npc_2:tavernkeeper_ask_npc_3.2|我 想 找 大 明 的 奴 婢。听 说 因 为 战 乱,不 少 人 都 另 谋 出 路 了。 dlga_tavernkeeper_ask_npc_2:tavernkeeper_ask_npc_3.3|据 说 有 一 个 日 本 武 士 到 处 流 浪? dlga_tavernkeeper_ask_npc_2:tavernkeeper_ask_npc_3.4|最 近 有 没 有 哥 萨 克 骑 兵 找 工 作 的? dlga_tavernkeeper_ask_npc_2:tavernkeeper_ask_npc_3.5|听 说 有 一 个 大 胆 的 侍 卫 居 然 上 了 领 主 的 夫 人 ,还 把 领 主 杀 了。 dlga_tavernkeeper_ask_npc_2:tavernkeeper_ask_npc_3.6|我 在 找 一 名 弗 兰 德 斯 军 团 的 火 枪 军 士。 dlga_tavernkeeper_ask_npc_2:tavernkeeper_ask_npc_3.7|奥 斯 曼 哪 里 有 个 军 官 的 女 儿 枪 法 不 错,你 听 说 过 么? dlga_tavernkeeper_ask_npc_2:tavernkeeper_ask_npc_3.8|有 一 个 骑 士, 明 明 有 个 城 堡 还 到 处 旅 行。好 像 叫 湖 泊 什 么 的。 dlga_tavernkeeper_ask_npc_2:tavernkeeper_ask_npc_3.9|有 没 有 英 格 兰 长 弓 手 的 消 息? dlga_tavernkeeper_ask_npc_2:tavernkeeper_ask_npc_3.10|波 兰 骑 兵 总 是 对 手 无 寸 铁 的 平 民 下 手,就 没 有 谁 自 责 的 么? dlga_tavernkeeper_ask_npc_2:tavernkeeper_ask_npc_3.11|要 是 我 的 队 伍 里 能 有 个 医 生 就 好 了。 dlga_tavernkeeper_ask_npc_2:tavernkeeper_ask_npc_3.12|他 是 一 个 喀 山 来 的 鞑 靼 人。 dlga_tavernkeeper_ask_npc_2:tavernkeeper_ask_npc_3.13|伊 斯 坦 布 尔 来 得 奥 斯 曼 军 官,年 纪 有 点 大 了。 dlga_tavernkeeper_ask_npc_2:tavernkeeper_ask_npc_3.14|有 没 有 谁 对 建 筑 有 研 究 的? dlga_tavernkeeper_ask_npc_2:tavernkeeper_ask_npc_3.15|一 个 打 扮 得 挺 漂 亮 的 女 子,听 说 在 找 工 作。 dlga_tavernkeeper_ask_npc_3:tavernkeeper_pretalk|你 想 找 的 {s1}不 是 正 和 你 在 一 起 么? dlga_tavernkeeper_ask_npc_3:tavernkeeper_pretalk.1|我 也 不 知 道 {s1}现 在 在 哪 里 dlga_tavernkeeper_ask_npc_3:tavernkeeper_ask_npc_4|你 想 找 的 是 {s1}吧?给 我 500 第 纳 尔 我 就 告 诉 你 在 哪 能 找 到 他。 dlga_tavernkeeper_ask_npc_4:tavernkeeper_ask_npc_5|给,拿 去 吧。 dlga_tavernkeeper_ask_npc_4:tavernkeeper_pretalk|算 了,不 用 了。 dlga_tavernkeeper_ask_npc_5:tavernkeeper_ask_npc_6|前 几 天 路 过 这 里 的 旅 行 者 曾 经 提 到 {s1}正 在 {s2}找 工 作。 dlga_tavernkeeper_ask_npc_5:tavernkeeper_ask_npc_6.1|我 听 说 {s1}现 在 是 {s2}的 俘 虏。 dlga_tavernkeeper_ask_npc_5:tavernkeeper_ask_npc_6.2|{s1} dlga_tavernkeeper_ask_npc_6:tavernkeeper_pretalk|好 的。谢 谢 你! dlga_tavernkeeper_ask_npc_6:tavernkeeper_ask_npc_7|你 能 不 能 派 人 帮 我 送 个 信 给 他, 就 说 我 想 在 这 里 见 他。 我 可 以 给 你 1500第 纳 尔。 dlga_tavernkeeper_ask_npc_7:tavernkeeper_pretalk|{s2}太 远 了。 等 我 的 信 使 到 了 那,他 估 计 就 已 经 又 上 路 了。 dlga_tavernkeeper_ask_npc_7:tavernkeeper_pretalk.1|你 不 是 才 让 我 把 信 使 派 出 去 么,我 可 不 是 人 贩 子。 dlga_tavernkeeper_ask_npc_7:tavernkeeper_pretalk.2|我 听 说 你 才 让 {s1}的 酒 馆 老 板 出 去 找 人, 我 们 是 开 酒 馆 的,又 不 是 职 业 介 绍 所 的。 dlga_tavernkeeper_ask_npc_7:tavernkeeper_pretalk.3|行, 我 这 就 叫 人 送 信 去!我 估 计 顺 利 的 话,他 能 在 两 天 以 内 赶 到。 ####################################################################################################################################### ####################################################################################################################################### ####################################################################################################################################### ##py修改 ####################################################################################################################################### ####################################################################################################################################### ####################################################################################################################################### @module_factions.py ####################################################################################################################################### 在末尾(结构内)添加 ("calling_npc", "tavernkeeper of {s1} has send someone to told you that {s0} is arrived"), @module_factions.py ####################################################################################################################################### 在末尾(结构内)添加 ("mod_variables", "{!}", 0, 0.9, [], []), @module_constants.py ####################################################################################################################################### 在末尾(结构内)添加 slot_Mod_NPC_NPCID_ask = 1 slot_Mod_NPC_NPCState = 2 slot_Mod_NPC_Calling_NPC = 3 slot_Mod_NPC_Call_NPC_town = 4 @module_dialogs.py ####################################################################################################################################### 在 #yifeng doctor [anyone,"start", [(eq, "$g_talk_troop", "trp_doctor_1"), ], "Salutations,I'm a doctor.I cured many people.If people wound,they will come to see me.So,what can I do for you?", "Dijon_jacob1", []], 之前添加 ## Windmelodie Ask_NPC begin ## add dialog in tavernkeeper conversation. ask the current position of chosen NPC [anyone|plyr,"tavernkeeper_talk", [], "I am looking for someone", "tavernkeeper_ask_npc",[]], [anyone,"tavernkeeper_ask_npc", [ ], "Who?", "tavernkeeper_ask_npc_2",[]], [anyone|plyr,"tavernkeeper_ask_npc_2", [], "Nothing", "tavernkeeper_pretalk",[]], #NPC Start [anyone|plyr,"tavernkeeper_ask_npc_2", [], "NPC1", "tavernkeeper_ask_npc_3", [(call_script, "script_npc_states", "trp_npc1"), (faction_set_slot,"fac_mod_variables",slot_Mod_NPC_NPCID_ask,"trp_npc1"), (faction_set_slot,"fac_mod_variables",slot_Mod_NPC_NPCState,reg0), ]], [anyone|plyr,"tavernkeeper_ask_npc_2", [], "NPC2", "tavernkeeper_ask_npc_3", [(call_script, "script_npc_states", "trp_npc2"), (faction_set_slot,"fac_mod_variables",slot_Mod_NPC_NPCID_ask,"trp_npc2"), (faction_set_slot,"fac_mod_variables",slot_Mod_NPC_NPCState,reg0), ]], [anyone|plyr,"tavernkeeper_ask_npc_2", [], "NPC3", "tavernkeeper_ask_npc_3", [(call_script, "script_npc_states", "trp_npc3"), (faction_set_slot,"fac_mod_variables",slot_Mod_NPC_NPCID_ask,"trp_npc3"), (faction_set_slot,"fac_mod_variables",slot_Mod_NPC_NPCState,reg0), ]], [anyone|plyr,"tavernkeeper_ask_npc_2", [], "NPC4", "tavernkeeper_ask_npc_3", [(call_script, "script_npc_states", "trp_npc4"), (faction_set_slot,"fac_mod_variables",slot_Mod_NPC_NPCID_ask,"trp_npc4"), (faction_set_slot,"fac_mod_variables",slot_Mod_NPC_NPCState,reg0), ]], [anyone|plyr,"tavernkeeper_ask_npc_2", [], "NPC5", "tavernkeeper_ask_npc_3", [(call_script, "script_npc_states", "trp_npc5"), (faction_set_slot,"fac_mod_variables",slot_Mod_NPC_NPCID_ask,"trp_npc5"), (faction_set_slot,"fac_mod_variables",slot_Mod_NPC_NPCState,reg0), ]], [anyone|plyr,"tavernkeeper_ask_npc_2", [], "NPC6", "tavernkeeper_ask_npc_3", [(call_script, "script_npc_states", "trp_npc6"), (faction_set_slot,"fac_mod_variables",slot_Mod_NPC_NPCID_ask,"trp_npc6"), (faction_set_slot,"fac_mod_variables",slot_Mod_NPC_NPCState,reg0), ]], [anyone|plyr,"tavernkeeper_ask_npc_2", [], "NPC7", "tavernkeeper_ask_npc_3", [(call_script, "script_npc_states", "trp_npc7"), (faction_set_slot,"fac_mod_variables",slot_Mod_NPC_NPCID_ask,"trp_npc7"), (faction_set_slot,"fac_mod_variables",slot_Mod_NPC_NPCState,reg0), ]], [anyone|plyr,"tavernkeeper_ask_npc_2", [], "NPC8", "tavernkeeper_ask_npc_3", [(call_script, "script_npc_states", "trp_npc8"), (faction_set_slot,"fac_mod_variables",slot_Mod_NPC_NPCID_ask,"trp_npc8"), (faction_set_slot,"fac_mod_variables",slot_Mod_NPC_NPCState,reg0), ]], [anyone|plyr,"tavernkeeper_ask_npc_2", [], "NPC9", "tavernkeeper_ask_npc_3", [(call_script, "script_npc_states", "trp_npc9"), (faction_set_slot,"fac_mod_variables",slot_Mod_NPC_NPCID_ask,"trp_npc9"), (faction_set_slot,"fac_mod_variables",slot_Mod_NPC_NPCState,reg0), ]], [anyone|plyr,"tavernkeeper_ask_npc_2", [], "NPC10", "tavernkeeper_ask_npc_3", [(call_script, "script_npc_states", "trp_npc10"), (faction_set_slot,"fac_mod_variables",slot_Mod_NPC_NPCID_ask,"trp_npc10"), (faction_set_slot,"fac_mod_variables",slot_Mod_NPC_NPCState,reg0), ]], [anyone|plyr,"tavernkeeper_ask_npc_2", [], "NPC11", "tavernkeeper_ask_npc_3", [(call_script, "script_npc_states", "trp_npc11"), (faction_set_slot,"fac_mod_variables",slot_Mod_NPC_NPCID_ask,"trp_npc11"), (faction_set_slot,"fac_mod_variables",slot_Mod_NPC_NPCState,reg0), ]], [anyone|plyr,"tavernkeeper_ask_npc_2", [], "NPC12", "tavernkeeper_ask_npc_3", [(call_script, "script_npc_states", "trp_npc12"), (faction_set_slot,"fac_mod_variables",slot_Mod_NPC_NPCID_ask,"trp_npc12"), (faction_set_slot,"fac_mod_variables",slot_Mod_NPC_NPCState,reg0), ]], [anyone|plyr,"tavernkeeper_ask_npc_2", [], "NPC13", "tavernkeeper_ask_npc_3", [(call_script, "script_npc_states", "trp_npc13"), (faction_set_slot,"fac_mod_variables",slot_Mod_NPC_NPCID_ask,"trp_npc13"), (faction_set_slot,"fac_mod_variables",slot_Mod_NPC_NPCState,reg0), ]], [anyone|plyr,"tavernkeeper_ask_npc_2", [], "NPC14", "tavernkeeper_ask_npc_3", [(call_script, "script_npc_states", "trp_npc14"), (faction_set_slot,"fac_mod_variables",slot_Mod_NPC_NPCID_ask,"trp_npc14"), (faction_set_slot,"fac_mod_variables",slot_Mod_NPC_NPCState,reg0), ]], [anyone|plyr,"tavernkeeper_ask_npc_2", [], "NPC15", "tavernkeeper_ask_npc_3", [(call_script, "script_npc_states", "trp_npc15"), (faction_set_slot,"fac_mod_variables",slot_Mod_NPC_NPCID_ask,"trp_npc15"), (faction_set_slot,"fac_mod_variables",slot_Mod_NPC_NPCState,reg0), ]], [anyone|plyr,"tavernkeeper_ask_npc_2", [], "NPC16", "tavernkeeper_ask_npc_3", [(call_script, "script_npc_states", "trp_npc16"), (faction_set_slot,"fac_mod_variables",slot_Mod_NPC_NPCID_ask,"trp_npc16"), (faction_set_slot,"fac_mod_variables",slot_Mod_NPC_NPCState,reg0), ]], #answer [anyone,"tavernkeeper_ask_npc_3", [(faction_slot_eq,"fac_mod_variables",slot_Mod_NPC_NPCState,-1),], "{s1} is in your team.", "tavernkeeper_pretalk", [(faction_get_slot,":NPCID","fac_mod_variables",slot_Mod_NPC_NPCID_ask), (str_store_troop_name,s1,":NPCID"), ] ], [anyone,"tavernkeeper_ask_npc_3", [(faction_slot_eq,"fac_mod_variables",slot_Mod_NPC_NPCState,0),], "I don't know where is {s1}.", "tavernkeeper_pretalk", [(faction_get_slot,":NPCID","fac_mod_variables",slot_Mod_NPC_NPCID_ask), (str_store_troop_name,s1,":NPCID"), ] ], [anyone,"tavernkeeper_ask_npc_3", [(faction_slot_ge,"fac_mod_variables",slot_Mod_NPC_NPCState,1),], "Are u looking for {s1}? I will tell u if u offer me 500 Denars.", "tavernkeeper_ask_npc_4", [(faction_get_slot,":NPCID","fac_mod_variables",slot_Mod_NPC_NPCID_ask), (str_store_troop_name,s1,":NPCID"), ] ], [anyone|plyr,"tavernkeeper_ask_npc_4", [(store_troop_gold,":gold","trp_player"), (ge,":gold",500),], "Okay, here u r", "tavernkeeper_ask_npc_5", [(troop_remove_gold,"trp_player",500),] ], [anyone|plyr,"tavernkeeper_ask_npc_4", [], "No, thanks", "tavernkeeper_pretalk", [] ], [anyone,"tavernkeeper_ask_npc_5", [(faction_slot_eq,"fac_mod_variables",slot_Mod_NPC_NPCState,1),], "I have heard that {s1} is looking for a job at {s2}", "tavernkeeper_ask_npc_6", [(faction_get_slot,":NPCID","fac_mod_variables",slot_Mod_NPC_NPCID_ask), (str_store_troop_name,s1,":NPCID"), (troop_get_slot,":NPC_location",":NPCID",slot_troop_cur_center), (str_store_party_name,s2,":NPC_location"), #if NPC is in another country, tell only the name of country (store_faction_of_party,":NPC_town_faction",":NPC_location"), (store_faction_of_party,":town_faction", "$current_town"), (neq,":town_faction",":NPC_town_faction"), (str_store_faction_name,s2,":NPC_town_faction"), ] ], [anyone,"tavernkeeper_ask_npc_5", [(faction_slot_eq,"fac_mod_variables",slot_Mod_NPC_NPCState,2),], "{s1} is now a prisoner of {s2}", "tavernkeeper_ask_npc_6", [(faction_get_slot,":NPCID","fac_mod_variables",slot_Mod_NPC_NPCID_ask), (call_script, "script_search_troop_prisoner_of_party", ":NPCID"), (str_store_party_name,s2,reg0), ] ], [anyone,"tavernkeeper_ask_npc_5", [(faction_slot_eq,"fac_mod_variables",slot_Mod_NPC_NPCState,3),], "{s1}", "tavernkeeper_ask_npc_6", [(faction_get_slot,":NPCID","fac_mod_variables",slot_Mod_NPC_NPCID_ask), (call_script, "script_get_information_about_troops_position", ":NPCID",0), ] ], [anyone|plyr,"tavernkeeper_ask_npc_6", [(faction_slot_eq,"fac_mod_variables",slot_Mod_NPC_NPCState,1), (store_troop_gold,":gold","trp_player"), (ge,":gold",1500),], "can you send a message to him that i want to see him? I will give u 1500 Denars.", "tavernkeeper_ask_npc_7", [] ], [anyone|plyr,"tavernkeeper_ask_npc_6", [], "Thanks you", "tavernkeeper_pretalk", [] ], [anyone,"tavernkeeper_ask_npc_7", [(faction_get_slot,":NPCID","fac_mod_variables",slot_Mod_NPC_NPCID_ask), (troop_get_slot,":NPC_location",":NPCID",slot_troop_cur_center), (store_distance_to_party_from_party, ":distance", ":NPC_location", "$current_town"), (gt,":distance",200), ], "{s2} is too far away.", "tavernkeeper_pretalk", [(faction_get_slot,":NPCID","fac_mod_variables",slot_Mod_NPC_NPCID_ask), (str_store_troop_name,s1,":NPCID"), (troop_get_slot,":NPC_location",":NPCID",slot_troop_cur_center), (str_store_party_name,s2,":NPC_location"), #if NPC is in another country, tell only the name of country (store_faction_of_party,":NPC_town_faction",":NPC_location"), (store_faction_of_party,":town_faction", "$current_town"), (neq,":town_faction",":NPC_town_faction"), (str_store_faction_name,s2,":NPC_town_faction"), ] ], [anyone,"tavernkeeper_ask_npc_7", [(neg|faction_slot_eq,"fac_mod_variables",slot_Mod_NPC_Calling_NPC,0), (faction_slot_eq,"fac_mod_variables",slot_Mod_NPC_Call_NPC_town,"$current_town"),], "you have just ask me to send a messager. please wait some days", "tavernkeeper_pretalk", [] ], [anyone,"tavernkeeper_ask_npc_7", [(neg|faction_slot_eq,"fac_mod_variables",slot_Mod_NPC_Calling_NPC,0),], "you have just ask tavernkeeper from {s1} to send a messager. please wait some days", "tavernkeeper_pretalk", [(faction_get_slot,":NPC_aim_town","fac_mod_variables",slot_Mod_NPC_Call_NPC_town), (str_store_party_name,s1,":NPC_aim_town"),] ], [anyone,"tavernkeeper_ask_npc_7", [], "Okay, I will do that", "tavernkeeper_pretalk", [(faction_get_slot,":NPCID","fac_mod_variables",slot_Mod_NPC_NPCID_ask), (faction_set_slot,"fac_mod_variables",slot_Mod_NPC_Calling_NPC,":NPCID"), (faction_set_slot,"fac_mod_variables",slot_Mod_NPC_Call_NPC_town,"$current_town"), (troop_remove_gold,"trp_player",1500),] ], ## Windmelodie Ask_NPC end @scripts.py ####################################################################################################################################### 在末尾(结构内)添加 # script_npc_states by windmelodie # Input: arg1 = npc id # Output: reg0: states of npc; ("npc_states", [(store_script_param_1, ":troop_npc"), (assign,"$state_npc", 0),#del later (assign,":NPCState", 0), (str_store_troop_name,s21,":troop_npc"), (troop_get_slot,":npc_location",":troop_npc",slot_troop_cur_center), (try_begin), (neq,":npc_location",-1), (assign,":NPCState", 1), (else_try), (troop_slot_eq, ":troop_npc", slot_troop_occupation, slto_player_companion), (troop_slot_eq, ":troop_npc", slot_troop_current_mission, 0), (assign,":NPCState", -1), (else_try), (call_script, "script_search_troop_prisoner_of_party", ":troop_npc"), (neq,reg0,-1), (assign,":NPCState", 2), (else_try), (troop_slot_eq, ":troop_npc",slot_troop_occupation, slto_kingdom_hero), (assign,":NPCState", 3), (try_end), (assign,reg0,":NPCState"), ]), #script_cf_update_NPC by windmelodie # INPUT: none # OUTPUT: none ("cf_update_NPC", [(faction_get_slot,":NPCID","fac_mod_variables",slot_Mod_NPC_Calling_NPC), (faction_get_slot,":NPC_aim_town","fac_mod_variables",slot_Mod_NPC_Call_NPC_town), (troop_slot_eq, ":NPCID", slot_troop_days_on_mission, 0), (troop_slot_eq, ":NPCID", slot_troop_occupation, slto_inactive), (neg|troop_slot_ge, ":NPCID", slot_troop_prisoner_of_party, 0), (troop_set_slot, ":NPCID", slot_troop_cur_center, ":NPC_aim_town"), (str_store_troop_name,s0,":NPCID"), (str_store_party_name,s1,":NPC_aim_town"), (display_message, "str_calling_npc"), ]), @module_simple_triggers.py ####################################################################################################################################### 在末尾(结构内)添加 ## Windmelodie Call_npc begin (48, [(try_begin), (neg|faction_slot_eq,"fac_mod_variables",slot_Mod_NPC_Calling_NPC,0), (call_script, "script_cf_update_NPC",), (try_end), (faction_set_slot,"fac_mod_variables",slot_Mod_NPC_Calling_NPC,0), ]), ## Windmelodie Call_npc end