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("这些给你:可颂 和 仙人掌酸糖。一个是家传手艺,一个是我在沙暴天里琢磨出来的小发明。")