Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ---------------------------------------
- --Quest Module
- ---------------------------------------
- local Quest = {}
- Quest.__index = Quest
- function Quest.new(npc, player, questname, itemtype, item, affection)
- local quest = {}
- setmetatable(quest, Quest)
- quest.name = name
- quest.affection
- quest.questParent
- quest.questScripts = require 'npcquestscripts'
- if quest.questScripts[quest.name] then
- quest.giveQuestSucceedScript = quest.questScripts[quest.name][1] or nil
- quest.giveQuestSucceedPrompt = quest.questScripts[quest.name][2] or nil
- quest.giveQuestFailScript = quest.questScripts[quest.name][3] or nil
- quest.completeQuestSucceedScript = quest.questScripts[quest.name][4] or nil
- quest.completeQuestFailScript = quest.questScripts[quest.name][5] or nil
- end
- npc.walking = false
- npc.stare = false
- player.freeze = true
- if player.quest~=nil and player.quest~=quest.name then
- self:giveQuestFail()
- elseif player.quest== quest.name and not player.inventory:hasMaterial('flowers') then
- self:completeQuestFail()
- elseif player.quest== quest.name and player.inventory:hasMaterial('flowers')
- player.inventory:removeManyItems(1,{name='flowers',type='material'})
- self:completeQuestSucceed()
- else
- self:giveQuestSucceed()
- end
- end
- function Quest:giveQuestSucceed(npc, player)
- Dialog.new(self.giveQuestSucceedScript, function()
- prompt.new(self.giveQuestSucceedPrompt, function(result)
- if result == 'Yes' then
- player.quest = self.name
- player.questParent = self.questParent
- end
- self:finish()
- end)
- end
- function Quest:giveQuestFail(npc, player)
- Dialog.new(self.giveQuestFailScript, function()
- self:finish()
- end)
- end
- function Quest:completeQuestSucceed(npc, player, affection)
- Dialog.new(self.completeQuestSucceedScript, function()
- self:affection(self.affection)
- player.quest = nil
- self:finish()
- end)
- end
- function Quest:completeQuestFail(npc, player)
- Dialog.new(self.completeQuestFailScript, function()
- self:finish()
- end)
- end
- function Quest:finish(npc, player)
- npc.prompt = nil
- npc.fixed = false
- npc.walking = true
- f
- npc.menu:close(player)
- end
- function Quest:affection(affection)
- if npc.levels[npc.name] then
- npc.levels[npc.name][1] = npc.levels[npc.name][1] + self.affection
- end
- npc:affectionUpdate(affection)
- player:affectionUpdate(questParent,affection)
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement