extends NpcScript # func OnStart(): match GetQuest(WaterPondGlobal.QUEST_ID): ProgressCommons.SNAKE_PIT_BITING_THIRST.INACTIVE: OnInactive() ProgressCommons.SNAKE_PIT_BITING_THIRST.STARTED: OnCheckProgress() ProgressCommons.SNAKE_PIT_BITING_THIRST.REWARDS_WITHDREW: OnComplete() _: OnInProgress() # Quest states func OnInactive(): Mes("我的水全洒了。没有水,我回不到图利姆沙。") Mes("几天前我以为自己能征服这片沙地,就进了这座洞。里面有一处很干净的地下水池,以前旅人会来这里补水。") Mes("后来蛇越来越多。它们毒性不强,但咬得很凶,我每次装好水,走不到一半就被咬到手抖,把水全洒掉。") Mes("你能替我试一次吗?只要把水罐装满带回来,我就能回城。") Mes("洞里还有些旧刻字,像是某个盗贼留下的路线。你如果看见,最好记下来,蛇坑里没有无用的线索。") Choice("我去试试。", OnAccept) Choice("今天不行。", OnDecline) func OnCheckProgress(): var rid : int = own.get_rid().get_id() if WaterPondGlobal.biteCounters.get(rid, 0) == 0: OnInProgress() else: OnDeliverWater() func OnInProgress(): Mes("清水池在洞穴深处,不是每一处水都能喝,脏水只会害你白跑。") Mes("找到清水池后别乱动,等水罐装满,再尽快带回来。") Mes("路上被蛇咬会漏水。漏光了就回水池重新装,别拿空罐子回来安慰我。") func OnDeliverWater(): WaterPondGlobal.StopJugTransport(own) ClearTracker() Mes("你回来了!水还在,太好了。") Mes("拿着这些,这是我剩下的东西。比不上你救我一命,但至少能让你少受点苦。") SetQuest(WaterPondGlobal.QUEST_ID, ProgressCommons.SNAKE_PIT_BITING_THIRST.REWARDS_WITHDREW) AddItem(DB.GetCellHash("Cactus Drink"), 10) AddExp(50) AddGP(1000) AddKarma(1) Mes("我现在就回图利姆沙。这里太危险了。") Mes("以后我会乖乖用城里的井水。蛇坑里的水,就留给蛇和胆子太大的人吧。") func OnComplete(): Mes("谢谢你帮我取回那罐水。现在我可以慢慢走回城,不用每一步都想着自己会不会倒下。") Mes("沙漠很美,但我已经受够了它的待客方式。") func OnDecline(): Mes("我明白。要是你改变主意,我还会在这里,希望不会太久。") # Transitions func OnAccept(): SetQuest(WaterPondGlobal.QUEST_ID, ProgressCommons.SNAKE_PIT_BITING_THIRST.STARTED) Mes("拿着这个水罐。清水池在洞穴深处。") Mes("我只记得一开始往北,之后转向东边。再后面也许是向南,也许是追着没有风的地方走。") Mes("说实话,我记得最清楚的是蛇咬上来的声音。") Mes("如果你在墙上看到旧盗贼的刻字,就照着记。那些字也许比我的脑袋可靠。") Mes("最好带上可靠的宠物伙伴。蛇很多,单靠胆量装不满水。")