CaiusNelson

LuaGame - System - Quests

Dec 20th, 2023
1,033
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 1.38 KB | Gaming | 0 0
  1. SaveData.quests={}
  2.  
  3. function Quests.Quest_Begin(quest)
  4.     if Quests.CanActivateQuest()==false then
  5.         SaveData.quests[quest]={active=true}
  6.  
  7.         Quests[quest].Set_QuestState(quest,1)
  8.     end
  9. end
  10.  
  11. function Quests.Quest_Cancel(quest)
  12.     SaveData[quest].cancel=true
  13.     Quests.Set_QuestEnd(quest)
  14. end
  15.  
  16. function Quests.Quest_Complete(quest)
  17.     SaveData[quest].complete=true
  18.     Quests.Set_QuestEnd(quest)
  19. end
  20.  
  21. function Quests.Quest_Fail(quest)
  22.     Quests.Set_QuestEnd(quest)
  23. end
  24.  
  25. --Util
  26. function Quests.Set_QuestEnd(quest)
  27.     SaveData[quest].active=false
  28.     SaveData[quest].ended=true
  29. end
  30.  
  31. function Quests.CanActivateQuest(quest)
  32.     return not SaveData[quest].active and not SaveData[quest].ended
  33. end
  34.  
  35. function Quests.Set_QuestState(quest,state)
  36.     SaveData.quests[quest].state=state
  37.     SaveData.quests[quest].nodes[state].OnStateBegin()
  38. end
  39.  
  40. function ALUA.Quests.Next_QuestState(quest)
  41.     local new_state = SaveData.quests[quest].state+1
  42.     if Quests[quest].nodes[new_state] then
  43.         Quests.Set_QuestState(quest,new_state)
  44.     else
  45.         Quests.Quest_Complete(quest)
  46.     end
  47.    
  48. end
  49.  
  50. -- gets
  51. function Quests.Get_ActiveQuests()
  52.     return {}
  53. end
  54.  
  55. function Quests.Get_CompleteQuests()
  56.     return {}
  57. end
  58.  
  59. function Quests.Get_FailedQuests()
  60.     return {}
  61. end
  62.  
  63. ------------------------------
  64. Quests["example"]={
  65.  
  66.     nodes={}
  67. }
Tags: game lua RPG Quest
Advertisement
Add Comment
Please, Sign In to add comment