Browse Source

remove somewhat duplicate directory of upper case Generic

Emagi 2 weeks ago
parent
commit
dbe82f8eff
1 changed files with 0 additions and 297 deletions
  1. 0 297
      server/SpawnScripts/generic/DialogModuleTest.lua

+ 0 - 297
server/SpawnScripts/generic/DialogModuleTest.lua

@@ -1,297 +0,0 @@
-Dialog = { }
-
--- defines for the requirement types
-REQ_RACE							= 1
-REQ_CLASS							= 2
-REQ_LEVEL							= 3
-REQ_LEVEL_GREATER_OR_EQUAL			= 4
-REQ_LEVEL_LESS_OR_EQUAL				= 5
-REQ_QUEST_ELIGIBLE					= 6
-REQ_QUEST_ON_STEP					= 7
-REQ_QUEST_BEFORE_STEP				= 8
-REQ_QUEST_PAST_STEP					= 9
-REQ_QUEST_HAS_QUEST					= 10
-REQ_QUEST_DOESNT_HAVE_QUEST			= 11
-REQ_QUEST_NOT_ON_STEP				= 12
-REQ_QUEST_HAS_COMPLETED_QUEST		= 13
-REQ_QUEST_NOT_HAS_COMPLETED_QUEST	= 14
-REQ_TEMP_VAR_NOT_SET				= 15
-REQ_TEMP_VAR_SET					= 16
-REQ_LUA_HISTORY_SET					= 17
-REQ_LUA_HISTORY_NOT_SET				= 18
-REQ_LOCATION_ID						= 19
-REQ_TSLEVEL							= 20
-REQ_TSLEVEL_GREATER_OR_EQUAL		= 21
-REQ_TSLEVEL_LESS_OR_EQUAL			= 22
-
-
-
--- Dialog variables
-Dialog.NPC = nil
-Dialog.Player = nil
-Dialog.Dialog = {}
-
--- private functions go at the top
-
--- Checks the requirement table and returns false if the player failed a check or true if they pass ALL checks
-local function CheckRequirements(reqs)
-	local ret = true
-	
-	-- if no requirements then return true
-	if reqs ~= nil then
-		-- loop through the requirements and check to see if the player fails them, if so set the return value 
-		-- to false and break the loop as we don't need to check any of the other requirements
-		for k, v in pairs(reqs) do
-			if v.Type == REQ_RACE  and GetRace(Dialog.Player) ~= v.Value1 then
-				ret = false
-				break
-			elseif v.Type == REQ_CLASS and GetClass(Dialog.Player) ~= v.Value1 then
-				ret = false
-				break
-			elseif v.Type == REQ_LEVEL and GetLevel(Dialog.Player) ~= v.Value1 then
-				ret = false
-				break
-			elseif v.Type == REQ_LEVEL_GREATER_OR_EQUAL and GetLevel(Dialog.Player) < v.Value1 then
-				ret = false
-				break
-			elseif v.Type == REQ_LEVEL_LESS_OR_EQUAL and GetLevel(Dialog.Player) > v.Value1 then
-				ret = false
-				break
-			elseif v.Type == REQ_QUEST_ELIGIBLE and not CanReceiveQuest(Dialog.Player, v.Value1) then
-				ret = false
-				break
-			elseif v.Type == REQ_QUEST_ON_STEP and GetQuestStep(Dialog.Player, v.Value1) ~= v.Value2 then
-				ret = false
-				break
-			elseif v.Type == REQ_QUEST_BEFORE_STEP and GetQuestStep(Dialog.Player, v.Value1) >= v.Value2 then
-				ret = false
-				break
-			elseif v.Type == REQ_QUEST_PAST_STEP and GetQuestStep(Dialog.Player, v.Value1) <= v.Value2 then
-				ret = false
-				break
-			elseif v.Type == REQ_QUEST_HAS_QUEST and not HasQuest(Dialog.Player, v.Value1) then
-				ret = false
-				break
-			elseif v.Type == REQ_QUEST_DOESNT_HAVE_QUEST and HasQuest(Dialog.Player, v.Value1) then
-				ret = false
-				break
-			elseif v.Type == REQ_QUEST_NOT_ON_STEP and GetQuestStep(Dialog.Player, v.Value1) == v.Value2 then
-				ret = false
-				break
-			elseif v.Type == REQ_QUEST_HAS_COMPLETED_QUEST and not HasCompletedQuest(Dialog.Player, v.Value1) then
-				ret = false
-				break
-			elseif v.Type == REQ_QUEST_NOT_HAS_COMPLETED_QUEST and HasCompletedQuest(Dialog.Player, v.Value1) then
-				ret = false
-				break
-			elseif v.Type == REQ_TEMP_VAR_NOT_SET and GetTempVariable(Dialog.Player, v.Value1) == v.Value2 then
-				ret = false
-				break
-			elseif v.Type == REQ_TEMP_VAR_SET and GetTempVariable(Dialog.Player, v.Value1) ~= v.Value2 then
-				ret = false
-				break
-			elseif v.Type == REQ_LUA_HISTORY_SET then
-				local value1, value2 = GetPlayerHistory(Dialog.Player, v.Value1)
-				if v.Value2 ~= value1 then
-					ret = false
-					break
-				elseif v.Value3 ~= nil and v.Value3 ~= value2 then
-					ret = false
-					break
-				end
-			elseif v.Type == REQ_LUA_HISTORY_NOT_SET then
-				local value1, value2 = GetPlayerHistory(Dialog.Player, v.Value1)
-				if v.Value2 == value1 then
-					ret = false
-					break
-				elseif v.Value3 ~= nil and v.Value3 == value2 then
-					ret = false
-					break
-				end
-			elseif v.Type == REQ_LOCATION_ID and GetSpawnLocationID(Dialog.NPC) ~= v.Value1 then
-				ret = false
-				break
-			elseif v.Type == REQ_TSLEVEL and GetTradeskillLevel(Dialog.Player) ~= v.Value1 then
-				ret = false
-				break
-			elseif v.Type == REQ_TSLEVEL_GREATER_OR_EQUAL and GetTradeskillLevel(Dialog.Player) < v.Value1 then
-				ret = false
-				break
-			elseif v.Type == REQ_TSLEVEL_LESS_OR_EQUAL and GetTradeskillLevel(Dialog.Player) > v.Value1 then
-				ret = false
-				break
-			end
-		end
-	end
-	
-	return ret
-end
-
--- Helper function to check requirements on options and actually use the option
-local function PrintOptions(dlg, con)
-	-- loop through the options and check their requirements, if they pass add the option
-	for k, v in pairs(dlg.Options) do
-		if CheckRequirements(v.Requirements) == true then
-			AddConversationOption(con, v.option, v.callback)
-			ret=true
-		end
-	end
-	return ret
-end
-
--- Actual member functions are below, these are what you call in the other scripts
-
--- Set up the spawn pointers to use
-function Dialog.New(NPC, Player)
-	Dialog.NPC = NPC
-	Dialog.Player = Player
-end
-
--- Test function, left it in for now as it may be useful but it is just a Say()
-function Dialog.Test(Msg)
-	if Dialog.NPC ~= nil then
-		Say(Dialog.NPC, Msg)
-	end
-end
-
--- Add a dialog
-function Dialog.AddDialog(text)
-	local dlg = {}
-	dlg.Text = text
-	dlg.Options = {}
-	dlg.Requirements = nil
-	dlg.VOFile = nil
-	dlg.VOKey1 = nil
-	dlg.VOKey2 = nil
-	dlg.Emote = nil
-	table.insert(Dialog.Dialog, dlg)
-end
-
--- Adds requirements to the last added dialog
-function Dialog.AddRequirement(req_type, value1, value2, value3)
-	local dlg = Dialog.Dialog[#Dialog.Dialog]
-	if dlg.Requirements == nil then
-		dlg.Requirements = {}
-	end
-	local req = {}
-	req.Type = req_type
-	req.Value1 = value1
-	req.Value2 = value2
-	req.Value3 = value3
-	table.insert(dlg.Requirements, req)
-end
-
--- Adds a voiceover to the last added dialog
-function Dialog.AddVoiceover(file, key1, key2)
-	local dlg = Dialog.Dialog[#Dialog.Dialog]
-	dlg.VOFile = file
-	dlg.VOKey1 = key1
-	dlg.VOKey2 = key2
-end
-
--- Adds an emote to the last added dialog
-function Dialog.AddEmote(emote)
-	local dlg = Dialog.Dialog[#Dialog.Dialog]
-	dlg.Emote = emote
-end
-
--- Adds options to the last added dialog
-function Dialog.AddOption(opt, cb)
-	local dlg = Dialog.Dialog[#Dialog.Dialog]
-	local option = {}
-	option.option = opt
-	option.callback = cb
-	option.Requirements = nil
-	table.insert(dlg.Options, option)
-end
-
--- Adds requirements to the last added option
-function Dialog.AddOptionRequirement(req_type, value1, value2, value3)
-	local dlg = Dialog.Dialog[#Dialog.Dialog]
-	local option = dlg.Options[#dlg.Options]
-	if option.Requirements == nil then
-		option.Requirements = {}
-	end
-	local req = {}
-	req.Type = req_type
-	req.Value1 = value1
-	req.Value2 = value2
-	req.Value3 = value3
-	table.insert(option.Requirements, req)
-end
-
--- Actually sends the dialog to the player
-function Dialog.Start()
-	-- if NPC or Player are nil then return out so we don't cause a null pointer error on the server
-	if Dialog.NPC == nil or Dialog.Player == nil then
-		-- would be great to print a lua error here
-		return
-	end
-	
-	-- create the conversation
-	local con = CreateConversation()
-	
-	-- bool to see if we found a dialog to send
-	local found = false
-	
-	-- loop through all the dialogs
-	for key, dlg in pairs(Dialog.Dialog) do
-		-- Check the dialog requirements if there are any and set the found bool
-		if dlg.Requirements ~= nil then
-			found = CheckRequirements(dlg.Requirements)
-		else
-			-- no requirements for this dialog so lets use it
-			found = true
-		end
-		
-		-- if we found a dialog to use lets set up the options for it and send it
-		if found == true then
-		    HadOptions =  PrintOptions(dlg, con)
-			Say(Dialog.NPC,"found true")
-			if dlg.Emote ~= nil then
-				Say(Dialog.NPC,"Emote true")
-				if HadOptions == true then
-					StartConversation(con, Dialog.NPC, Dialog.Player, dlg.Text)
-				else
-					Say(Dialog.NPC,dlg.Text)
-				end
-				if dlg.VOFile ~= nil then
-					Say(Dialog.NPC,"emote true VO true ")
-				    PlayFlavor(Dialog.NPC, dlg.VOFile, "", dlg.Emote, dlg.VOKey1, dlg.VOKey2, Dialog.Player)
-				else
-					Say(Dialog.NPC,"emote true VO false ")
-				    PlayFlavor(Dialog.NPC, "", "", dlg.Emote, 0, 0, Dialog.Player)
-				end
-				if HadOptions == true then
-					StartConversation(con, Dialog.NPC, Dialog.Player, dlg.Text)
-				else
-					Say(Dialog.NPC,dlg.Text)
-				end
-			else
-			     
-				 if dlg.VOFile ~= nil then
-				    if HadOptions == true then
-						StartConversation(con, Dialog.NPC, Dialog.Player, dlg.Text, dlg.VOFile, dlg.VOKey1, dlg.VOKey2)
-					else
-						PlayFlavor(Dialog.NPC, dlg.VOFile, dlg.Text, "", dlg.VOKey1, dlg.VOKey2, Dialog.Player)
-					end
-				else
-				    if HadOptions == true then
-						StartConversation(con, Dialog.NPC, Dialog.Player, dlg.Text)
-					else 
-						Say(Dialog.NPC,dlg.Text)
-					end
-				end
-						
-			end
-			
-			-- we sent a dialog so get out of the loop
-			break;
-		end
-	end
-	
-	-- clear the list to avoid duplicates
-	Dialog.Dialog = {}
-end
-
-return Dialog