I am trying to set up a very simple quest; 1. Find Commander Draii 2. Talk to Commander Draii Can someone help me set this up? Here is the script I have so far. Code: require "/scripts/util.lua" require "/quests/scripts/questutil.lua" require "/scripts/vec2.lua" require "/quests/scripts/portraits.lua" function init() storage.complete = storage.complete or false self.compassUpdate = config.getParameter("compassUpdate", 0.5) self.descriptions = config.getParameter("descriptions") self.npcUid = config.getParameter("npcUid") self.findRange = config.getParameter("findRange") self.exploreTime = config.getParameter("exploreTime") storage.exploreTimer = storage.exploreTimer or 0 storage.bookmarked = storage.bookmarked or false setPortraits() storage.stage = storage.stage or 1 self.stages = { findNpc, foundNpc, } self.state = FSM:new() self.state:set(self.stages[storage.stage]) storage.gateActive = storage.gateActive or false end function questInteract(entityId) if self.onInteract then return self.onInteract(entityId) end end function questStart() player.upgradeShip(config.getParameter("shipUpgrade")) end function update(dt) self.state:update(dt) end function findNpc() quest.setProgress(nil) quest.setObjectiveList({{self.descriptions.findNpc, false}}) self.state:set(self.stages[storage.stage]) storage.stage = 1 end function foundNpc() quest.setProgress(nil) quest.setCompassDirection(nil) player.radioMessage("gaterepair-foundNpc1") player.radioMessage("gaterepair-foundNpc1b") player.radioMessage("gaterepair-foundNpc2") storage.stage = 2 util.wait(14) self.state:set(self.stages[storage.stage]) end function questComplete() setPortraits() questutil.questCompleteActions() end
I would try something like this... Its pretty cut/paste from the shiprepair quest Code: require "/scripts/util.lua" require "/scripts/vec2.lua" require "/quests/scripts/portraits.lua" require "/quests/scripts/questutil.lua" function init() setPortraits() storage.complete = storage.complete or false self.compassUpdate = config.getParameter("compassUpdate", 0.5) self.DraiiUid = config.getParameter("DraiiUid") storage.stage = storage.stage or 1 self.stages = { findDraii } self.state = FSM:new() self.state:set(self.stages[storage.stage]) end function questInteract(entityId) if self.onInteract then return self.onInteract(entityId) end end function questStart() end function update(dt) self.state:update(dt) if storage.complete then quest.setCanTurnIn(true) end end function questComplete() setPortraits() questutil.questCompleteActions() end function findDraii() quest.setIndicators({}) quest.setCompassDirection(nil) quest.setCanTurnIn(true) quest.setObjectiveList({{config.getParameter("descriptions.findDraii"), false}}) local trackDraii = util.uniqueEntityTracker(self.DraiiUid, self.compassUpdate) while true do questutil.pointCompassAt(trackDraii()) coroutine.yield() end end And something like this for the quest file Code: { "id" : "findDraii", "mainQuest" : true, "title" : "Find Draii Yo!", "prerequisites" : [ "If you want a quest pre-req, put it here" ], "text" : "Text the players sees when reading the quest", "completionText" : "What they see when they are done", "moneyRange" : [50, 50], "rewards" : [ [ ["rewardbag", 1] ] ], "canBeAbandoned" : false, "updateDelta" : 10, "script" : "/quests/scripts/story/YourLuaFile.lua", "scriptConfig" : { "portraits" : { "questStarted" : "questGiver", "questComplete" : "questReceiver" }, "descriptions" : { "findEsther" : "^green;Talk to ^orange;Commander Draii^white; at the ^orange;Insert Location here if there is a set location^white;" }, "compassUpdate" : 0.2, "DraiiUid" : "Enter Draii's Uid, this should be in his file" } }