最终整理版

This commit is contained in:
2026-06-03 17:04:06 +08:00
commit 959055ce90
1240 changed files with 80570 additions and 0 deletions
+111
View File
@@ -0,0 +1,111 @@
extends NpcScript
# Reward items
var croissantID : int = DB.GetCellHash("Croissant")
var cactusSourCandyID : int = DB.GetCellHash("Cactus Sour Candy")
#
func OnStart():
var questState : int = GetQuest(ProgressCommons.Quest.GRAIN_IN_THE_SAND)
match questState:
ProgressCommons.GRAIN_IN_THE_SAND.INACTIVE:
OnInactive()
ProgressCommons.GRAIN_IN_THE_SAND.SEARCHED_CRATES:
OnReward()
ProgressCommons.GRAIN_IN_THE_SAND.REWARDS_WITHDREW:
OnComplete()
_:
OnKeepLooking()
# Quest states
func OnInactive():
Mes("欢迎,旅人。你来得正巧,也来得不太巧:架子上的面包刚刚卖空。")
Mes("图利姆沙 没有像样的农田,城外除了沙、风和仙人掌,几乎什么都长不稳。")
Mes("我的面粉都从 阿尔蒂斯 坐船运来。靠它做出的 沙暴面包,已经养活这座城很多年了。")
Mes("今天清晨有一批货到了码头,可这天气来回跑一趟,回来就没力气揉面了。")
Mes("阿尔蒂斯 面包坊的货桶上有深蓝色蜡封。你能去码头帮我把里面的面粉袋带回来吗?")
QuestChoice()
func QuestChoice(previousChoice : int = -1):
Choice("我去码头看看。", OnAccept)
if previousChoice != 1:
Choice("沙暴面包 是什么?", OnAskBread)
if previousChoice != 2:
Choice("沙漠里真的种不出粮食吗?", OnAskDesert)
Choice("晚点再说。", OnDecline)
func OnKeepLooking():
Mes("码头那边有线索吗?记住,找带深蓝色蜡封的货桶。")
Mes("我会把炉火留着,面粉一到就能开工。")
func OnComplete():
Mes("就算热得像站在炉膛旁边,刚出炉的面包也没人舍得错过。")
CompleteChoice()
func CompleteChoice(previousChoice : int = -1):
if previousChoice != 0:
Choice("给我讲讲 阿尔蒂斯。", OnAskArtis)
if previousChoice != 1:
Choice("图利姆沙 靠什么活下来?", OnAskCity)
if previousChoice != 2:
Choice("沙暴面包 是什么?", OnAskBread)
if previousChoice != 3:
Choice("沙漠里真的种不出粮食吗?", OnAskDesert)
if previousChoice != -1:
Choice("你忙吧。", OnFarewell)
# Optional dialogue
func OnAskBread():
Mes("我的招牌配方:阿尔蒂斯 的细面粉、仙人掌汁代替清水,再加一撮晒干的沙盐。")
Mes("这种面包外壳结实,穿过沙暴也不容易碎,第二天早上还带着香气,所以才叫 沙暴面包。")
if IsQuestCompleted(ProgressCommons.Quest.GRAIN_IN_THE_SAND):
CompleteChoice(2)
else:
QuestChoice(1)
func OnAskDesert():
Mes("能长的主要是仙人掌。它们很硬气,我们也很会利用:糖果、饮料、药膏,什么都能做。")
Mes("可粮食不一样。托诺里 从来不是产麦子的地方,没有商船,城里的炉火会先灭,人的肚子也会跟着空。")
if IsQuestCompleted(ProgressCommons.Quest.GRAIN_IN_THE_SAND):
CompleteChoice(3)
else:
QuestChoice(2)
func OnAskArtis():
Mes("阿尔蒂斯 是海对岸 奥罗拉 海岸上的大港,农田肥沃,工匠也多。")
Mes("我妹妹就住在那里。她烤的小饼干特别香,我这里用的面粉也来自她的面包坊。")
Mes("图利姆沙 市场上一半的货都靠 阿尔蒂斯 商船补给。少了它们,我们能吃的就只剩仙人掌和耐心了。")
CompleteChoice(0)
func OnAskCity():
Mes("贸易。图利姆沙 最擅长的不是种地,而是让来自三片大陆的货物在这里停脚。")
Mes("港口、城墙、商队、守卫,还有像我这样盯着下一船面粉的人,拼在一起才撑起这座沙漠城市。")
Mes("这也说明了一件事:码头上每一个迟到的货桶,都会让城里某个炉子安静下来。")
CompleteChoice(1)
func OnFarewell():
Mes("有空再来。只要炉火还亮,就会有一块新面包等着你。")
# Transitions to next states
func OnAccept():
SetQuest(ProgressCommons.Quest.GRAIN_IN_THE_SAND, ProgressCommons.GRAIN_IN_THE_SAND.STARTED)
Mes("太感谢了,朋友。")
Mes("找深蓝色蜡封。看到 阿尔蒂斯 的印记,就说明货没错。")
func OnDecline():
Mes("没关系。炉火会等一会儿,只是别让它等到天黑。")
func OnReward():
Mes("你找到了!太好了。")
Mes("有了这些面粉,日落前 图利姆沙 就能闻到 沙暴面包 的香味。")
SetQuest(ProgressCommons.Quest.GRAIN_IN_THE_SAND, ProgressCommons.GRAIN_IN_THE_SAND.REWARDS_WITHDREW)
AddItem(cactusSourCandyID, 5)
AddItem(croissantID, 5)
AddKarma(1)
AddExp(20)
Mes("这些给你:可颂 和 仙人掌酸糖。一个是家传手艺,一个是我在沙暴天里琢磨出来的小发明。")