mirror of
				https://bitbucket.org/Ioncannon/project-meteor-server.git
				synced 2025-05-20 08:26:59 -04:00 
			
		
		
		
	Fixed command bug on class change. Implmented more of the local levequest errors and such.
This commit is contained in:
		| @@ -154,20 +154,22 @@ local skillAnim = { | ||||
|     [29531] = 0x10009002; | ||||
| } | ||||
|  | ||||
| local craftStartWidgetOpen = false; | ||||
|  | ||||
| function onEventStarted(player, commandactor, triggerName, arg1, arg2, arg3, arg4, checkedActorId) | ||||
|     local MENU_CANCEL, MENU_MAINHAND, MENU_OFFHAND, MENU_REQUEST = 0, 1, 2, 3; | ||||
|     local MENU_RECENT, MENU_AWARDED, MENU_RECENT_DETAILED, MENU_AWARDED_DETAILED = 7, 8, 9, 10; | ||||
|      | ||||
|     local debugMessage = false; | ||||
|  | ||||
| 	local craftStartWidgetOpen = false; | ||||
|     local isRecipeRecentSent = false; | ||||
|     local isRecipeAwardSent = false; | ||||
| 	 | ||||
| 	local craftJudge = GetStaticActor("CraftJudge"); | ||||
|     local recipeResolver = GetRecipeResolver();	 | ||||
|  | ||||
| 	local chosenOperation; | ||||
| 	local operationResult; | ||||
| 	local operationMode; | ||||
| 	local recipeMode; | ||||
| 	local chosenMaterials; | ||||
| 	 | ||||
| @@ -183,9 +185,9 @@ function onEventStarted(player, commandactor, triggerName, arg1, arg2, arg3, arg | ||||
|  | ||||
| 	player:ChangeState(30);  | ||||
| 	 | ||||
| 	while chosenOperation ~= 0 do | ||||
| 	while operationMode ~= 0 do | ||||
|          | ||||
|         if debugMessage then player:SendMessage(0x20, "", "[DEBUG] Menu ID: "..tostring(chosenOperation).."   Recipe : "..tostring(recipeMode).."   Quest : "..chosenQuest); end         | ||||
|         if debugMessage then player:SendMessage(0x20, "", "[DEBUG] Menu ID: "..tostring(operationMode).."   Recipe : "..tostring(recipeMode).."   Quest : "..chosenQuest); end         | ||||
|          | ||||
| 		-- Operate the start crafting window... confusing shit | ||||
| 		if (craftStartWidgetOpen == false) then | ||||
| @@ -194,32 +196,63 @@ function onEventStarted(player, commandactor, triggerName, arg1, arg2, arg3, arg | ||||
| 			if (isRequestedItemsMode == true) then -- If requested items, preload the quest recipe materials | ||||
| 				startMats = recipeResolver.RecipeToMatIdTable(currentCraftQuestGuildleve.getRecipe()); | ||||
| 			end | ||||
| 			chosenOperation, recipeMode = callClientFunction(player, "delegateCommand", craftJudge, "start", commandactor, facilityId, isRequestedItemsMode, unpack(startMats)); | ||||
| 			operationResult = {callClientFunction(player, "delegateCommand", craftJudge, "start", commandactor, facilityId, isRequestedItemsMode, unpack(startMats))}; | ||||
| 			craftStartWidgetOpen = true; | ||||
| 		elseif ((chosenOperation == MENU_RECENT or chosenOperation == MENU_AWARDED) and recipeMode != 0) then | ||||
| 		elseif ((operationMode == MENU_RECENT or operationMode == MENU_AWARDED) and chosenOperation[2] != 0) then | ||||
| 			local prepedMaterials; | ||||
| 			-- Recent Recipes/Awarded Recipes | ||||
| 			if (chosenOperation == MENU_RECENT) then | ||||
| 				prepedMaterials = recipeResolver.RecipeToMatIdTable(recentRecipes[recipeMode]); | ||||
| 			if (operationMode == MENU_RECENT) then | ||||
| 				prepedMaterials = recipeResolver.RecipeToMatIdTable(recentRecipes[chosenOperation[2]]); | ||||
| 			else 			 | ||||
| 				prepedMaterials = recipeResolver.RecipeToMatIdTable(awardedRecipes[recipeMode]); | ||||
| 				prepedMaterials = recipeResolver.RecipeToMatIdTable(awardedRecipes[chosenOperation[2]]); | ||||
| 			end | ||||
| 			-- Causes the item info window to appear for recent/awarded recipes. Only happens if a recipe was chosen. | ||||
| 			chosenOperation, recipeMode = callClientFunction(player, "delegateCommand", craftJudge, "start", commandactor, -2, isRequestedItemsMode, unpack(prepedMaterials)); | ||||
| 			operationResult = {callClientFunction(player, "delegateCommand", craftJudge, "start", commandactor, -2, isRequestedItemsMode, unpack(prepedMaterials))}; | ||||
| 		else | ||||
| 			-- Keep window going if the user "returned" to the starting point | ||||
| 			chosenOperation, recipeMode = callClientFunction(player, "delegateCommand", craftJudge, "start", commandactor, -1, isRequestedItemsMode); | ||||
| 			operationResult = {callClientFunction(player, "delegateCommand", craftJudge, "start", commandactor, -1, isRequestedItemsMode)}; | ||||
|         end | ||||
| 		 | ||||
| 		operationMode = operationResult[1]; | ||||
| 		recipeMode = operationResult[2]; | ||||
| 		 | ||||
| 		-- Operation  | ||||
|         if chosenOperation == MENU_CANCEL then  | ||||
|             callClientFunction(player, "delegateCommand", craftJudge, "closeCraftStartWidget", commandactor); | ||||
|         elseif (chosenOperation == MENU_MAINHAND or chosenOperation == MENU_OFFHAND) then  | ||||
|         if operationMode == MENU_CANCEL then  | ||||
|             closeCraftStartWidget(player, craftJudge, commandactor); | ||||
|         elseif (operationMode == MENU_MAINHAND or operationMode == MENU_OFFHAND) then  | ||||
|             -- Recipe choosing loop | ||||
| 			while (true) do			 | ||||
| 				-- Figure out the number of preloaded mats | ||||
| 				local numArgs = #operationResult; | ||||
| 				local numMatArgs = numArgs - 2; | ||||
| 				local materials; | ||||
| 				player:SendMessage(0x20, "", "[DEBUG] " .. tostring(numArgs));				 | ||||
| 				player:SendMessage(0x20, "", "[DEBUG] " .. tostring(numMatArgs)); | ||||
| 				 | ||||
| 				-- Handle the possible args returned: Either 0 player items, 1 player item, 2+ palyer items. The rest is always the remaining prepped items. | ||||
| 				if (numMatArgs == 8 and type(operationResult[3]) == "number") then | ||||
| 					materials = {unpack(operationResult, 3)}; | ||||
| 				elseif (numMatArgs == 8 and type(operationResult[3]) ~= "number") then | ||||
| 					player:SendMessage(0x20, "", "[DEBUG] " .. tostring(player:GetItemPackage(operationResult[3].itemPackage):GetItemAtSlot(operationResult[3].slot).itemId)); | ||||
| 					materials = {player:GetItemPackage(operationResult[3].itemPackage):GetItemAtSlot(operationResult[3].slot).itemId, unpack(operationResult, 3)}; | ||||
| 				else | ||||
| 					local itemIds = {}; | ||||
| 					for i=0,operationResult[3].itemSlots.length do | ||||
| 						converted = player:GetItemPackage(operationResult[3].itemPackages[i]):GetItemAtSlot(operationResult[3].slots[i]).itemId | ||||
| 					end | ||||
| 					materials = {unpack(itemIds), unpack(operationResult, 4)}; | ||||
| 				end				 | ||||
| 				 | ||||
| 				-- Choosing a recipe from the given materials | ||||
| 				local recipes = recipeResolver.GetRecipeFromMats(); | ||||
| 				local recipes = recipeResolver.GetRecipeFromMats(unpack(materials));				 | ||||
| 				local itemIds = recipeResolver.RecipesToItemIdTable(recipes); | ||||
| 				 | ||||
| 				-- No recipes found | ||||
| 				if (#itemIds == 0) then | ||||
| 					player:SendGameMessage(GetWorldMaster(), 40201, 0x20); -- You cannot synthesize with those materials. | ||||
| 					break; | ||||
| 				end | ||||
| 				 | ||||
| 				local chosenRecipeIndex = callClientFunction(player, "delegateCommand", craftJudge, "selectRcp", commandactor, unpack(itemIds)); | ||||
| 				 | ||||
| 				-- Hit back on recipe list | ||||
| @@ -240,18 +273,23 @@ function onEventStarted(player, commandactor, triggerName, arg1, arg2, arg3, arg | ||||
| 						0);  | ||||
|  | ||||
| 					if recipeConfirmed then | ||||
| 						callClientFunction(player, "delegateCommand", craftJudge, "closeCraftStartWidget", commandactor); | ||||
| 						closeCraftStartWidget(player, craftJudge, commandactor); | ||||
| 						isRecipeRecentSent = false; | ||||
| 						isRecipeAwardSent = false; | ||||
| 						currentlyCrafting = startCrafting(player, chosenOperation, chosenRecipe, isRequestedItemsMode, 80, 100, 50);  | ||||
| 						currentlyCrafting = startCrafting(player, commandactor, craftJudge, operationMode, chosenRecipe, currentCraftQuestGuildleve, 80, 100, 50);  | ||||
| 						 | ||||
| 						--Once crafting is over, return to the original non-quest state. | ||||
| 						isRequestedItemsMode = false; | ||||
| 						currentCraftQuestGuildleve = nil;   | ||||
| 						currentCraftQuest = nil;            | ||||
| 						 | ||||
| 						break; | ||||
| 					end | ||||
| 				end | ||||
| 			end | ||||
| 			-- End of Recipe choosing loops | ||||
|         elseif chosenOperation == MENU_REQUEST then -- Conditional button label based on isRequestedItemsMode  | ||||
| 			callClientFunction(player, "delegateCommand", craftJudge, "closeCraftStartWidget", commandactor); | ||||
| 			craftStartWidgetOpen = false; | ||||
|         elseif operationMode == MENU_REQUEST then -- Conditional button label based on isRequestedItemsMode  | ||||
| 			closeCraftStartWidget(player, craftJudge, commandactor); | ||||
| 				 | ||||
|             if isRequestedItemsMode == false then    -- "Request Items" hit, close Start and open up the Quest select                 | ||||
|                 isRecipeRecentSent = false; | ||||
| @@ -269,24 +307,24 @@ function onEventStarted(player, commandactor, triggerName, arg1, arg2, arg3, arg | ||||
|             elseif isRequestedItemsMode == true then -- "Normal Synthesis" button hit    | ||||
|                 isRequestedItemsMode = false; | ||||
|                 currentCraftQuestGuildleve = nil;   | ||||
|                 currentCraftQuest = nil;            | ||||
|                 currentCraftQuest = nil; | ||||
|             end         | ||||
|         elseif chosenOperation == MENU_RECENT then -- "Recipes" button hit | ||||
|         elseif operationMode == MENU_RECENT then -- "Recipes" button hit | ||||
|             if isRecipeRecentSent == false then | ||||
| 				recentRecipes = player.GetRecentRecipes(); | ||||
| 				local itemIds = recipeResolver.RecipesToItemIdTable(recentRecipes); | ||||
|                 callClientFunction(player, "delegateCommand", craftJudge, "selectRcp", commandactor, unpack(itemIds)); -- Load up recipe list | ||||
|                 isRecipeRecentSent = true; | ||||
|             end | ||||
|         elseif chosenOperation == MENU_AWARDED then -- "Awarded Recipes" tab hit   | ||||
|         elseif operationMode == MENU_AWARDED then -- "Awarded Recipes" tab hit   | ||||
|             if isRecipeAwardSent == false then | ||||
| 				awardedRecipes = player.GetAwardedRecipes(); | ||||
| 				local itemIds = recipeResolver.RecipesToItemIdTable(awardedRecipes); | ||||
|                 callClientFunction(player, "delegateCommand", craftJudge, "selectRcp", commandactor, unpack(itemIds)); -- Load up Award list | ||||
|                 isRecipeAwardSent = true; | ||||
|             end | ||||
|         elseif ((chosenOperation == MENU_RECENT_DETAILED or chosenOperation == MENU_AWARDED_DETAILED) and recipeMode > 0) then -- Pop-up for an item's stats/craft mats on a recent recipe			 | ||||
| 			local chosenRecipe = chosenOperation == MENU_RECENT_DETAILED and recentRecipes[recipeMode-1] or recentRecipes[awardedMode-1]; | ||||
|         elseif ((operationMode == MENU_RECENT_DETAILED or operationMode == MENU_AWARDED_DETAILED) and recipeMode > 0) then -- Pop-up for an item's stats/craft mats on a recent recipe			 | ||||
| 			local chosenRecipe = operationMode == MENU_RECENT_DETAILED and recentRecipes[recipeMode-1] or recentRecipes[awardedMode-1]; | ||||
| 			local recipeConfirmed = callClientFunction(player, "delegateCommand", craftJudge, "confirmRcp", commandactor,  | ||||
| 				chosenRecipe.resultItemID,  | ||||
| 				chosenRecipe.resultQuantity,  | ||||
| @@ -297,10 +335,10 @@ function onEventStarted(player, commandactor, triggerName, arg1, arg2, arg3, arg | ||||
| 				0,  | ||||
| 				0); | ||||
| 			if (recipeConfirmed) then | ||||
| 				callClientFunction(player, "delegateCommand", craftJudge, "closeCraftStartWidget", commandactor); | ||||
| 				closeCraftStartWidget(player, craftJudge, commandactor); | ||||
| 				isRecipeRecentSent = false; | ||||
| 				isRecipeAwardSent = false; | ||||
| 				currentlyCrafting = startCrafting(player, chosenOperation, chosenRecipe, isRequestedItemsMode, 80, 100, 50); | ||||
| 				currentlyCrafting = startCrafting(player, commandactor, craftJudge, operationMode, chosenRecipe, isRequestedItemsMode, 80, 100, 50); | ||||
| 			end | ||||
|         else | ||||
|             break; | ||||
| @@ -323,39 +361,52 @@ function getCraftQuest(player, craftJudge, commandactor); | ||||
| 		if questCommandId then | ||||
| 			questId = questCommandId - 0xA0F00000; | ||||
| 			 | ||||
| 			-- Craft Quest Chosen | ||||
| 			if isCraftQuest(questId) then | ||||
| 				local quest = player.GetQuest(questId);			 | ||||
| 				local confirm = callClientFunction(player, "delegateCommand", craftJudge, "cfmQst", commandactor, quest.getQuestId(), 20, 1, 1, 1, 0, 0, "<Path Companion>");				 | ||||
| 				if confirm == true then | ||||
| 					player:SendGameMessage(craftJudge, 21, 0x20); | ||||
| 					return quest; | ||||
| 				end                      				 | ||||
| 				end | ||||
| 			-- PassiveGL Quest Chosen | ||||
| 			elseif isLocalLeve(questId) then | ||||
| 				local difficulty = 0; | ||||
| 				local hasMaterials = 1; | ||||
| 				 | ||||
| 				local quest = player.getQuestGuildleve(questId); | ||||
| 				local quest = player:getQuestGuildleve(questId); | ||||
| 				 | ||||
| 				if (quest ~= nil) then				 | ||||
| 					local confirm = callClientFunction(player, "delegateCommand", craftJudge, "confirmLeve", commandactor,  | ||||
| 						quest.getQuestId(), | ||||
| 						quest.getCurrentDifficulty(), | ||||
| 						0,  | ||||
| 						quest.getNumberOfSuccesses(), | ||||
| 						quest.getRemainingMaterials(), | ||||
| 						quest.hasMaterials() and 1 or 0, -- Fucked up way of doing terneries on Lua  | ||||
| 						0 | ||||
| 					); | ||||
| 					 | ||||
| 					if (confirm == true) then           | ||||
| 						return quest; | ||||
| 					end	 | ||||
| 				if (quest ~= nil) then | ||||
| 					-- Did they pickup the materials? | ||||
| 					if (quest:hasMaterials() == false) then | ||||
| 						player:SendGameMessage(GetWorldMaster(), 40210, 0x20); -- You have not obtained the proper materials from the client.						 | ||||
| 					-- Did they use em all up? | ||||
| 					elseif (quest:getRemainingMaterials() == 0) then | ||||
| 						player:SendGameMessage(GetWorldMaster(), 40211, 0x20); -- You have used up all of the provided materials.			 | ||||
| 					-- Confirm dialog | ||||
| 					else | ||||
| 						local confirm = callClientFunction(player, "delegateCommand", craftJudge, "confirmLeve", commandactor,  | ||||
| 							quest:getQuestId(), | ||||
| 							quest:getCurrentDifficulty() + 1, -- Lua, 1-indexed | ||||
| 							0,  | ||||
| 							quest:getCurrentCrafted(), | ||||
| 							quest:getRemainingMaterials(), | ||||
| 							quest:hasMaterials() and 1 or 0, -- Fucked up way of doing terneries on Lua  | ||||
| 							0 | ||||
| 						); | ||||
|  | ||||
| 						-- Quest confirmed | ||||
| 						if (confirm == true) then | ||||
| 							return quest; | ||||
| 						end	 | ||||
| 					end | ||||
| 				else | ||||
| 					return nil; -- Shouldn't happen unless db corrupted | ||||
| 				end				 | ||||
| 					return nil; -- Shouldn't happen unless db fucked with | ||||
| 				end | ||||
| 			-- Scenario Quest Chosen | ||||
| 			else | ||||
| 				-- TEMP for now. Cannot find source for what happens if you confirm a non-craft quest. | ||||
| 			   player:SendGameMessage(GetWorldMaster(), 40209, 0x20); | ||||
| 			   player:SendGameMessage(GetWorldMaster(), 40209, 0x20); -- You cannot undertake that endeavor. | ||||
| 			end | ||||
| 		else | ||||
| 			return nil; | ||||
| @@ -364,7 +415,6 @@ function getCraftQuest(player, craftJudge, commandactor); | ||||
| end | ||||
|  | ||||
| function isScenarioQuest(id) | ||||
|  | ||||
|     if (id >= 110001 and id <= 120026) then | ||||
|         return true; | ||||
|     else | ||||
| @@ -383,7 +433,6 @@ end | ||||
|  | ||||
|  | ||||
| function isLocalLeve(id) | ||||
|  | ||||
|     if (id >= 120001 and id <= 120452) then | ||||
|         return true; | ||||
|     else | ||||
| @@ -391,12 +440,15 @@ function isLocalLeve(id) | ||||
|     end | ||||
| end | ||||
|  | ||||
| function closeCraftStartWidget(player, craftJudge, commandactor) | ||||
| 	callClientFunction(player, "delegateCommand", craftJudge, "closeCraftStartWidget", commandactor); | ||||
| 	craftStartWidgetOpen = false; | ||||
| end | ||||
|  | ||||
| -- No real logic in this function.  Just smoke and mirrors to 'see' the minigame in action at the minimum level. | ||||
| function startCrafting(player, hand, recipe, quest, startDur, startQly, startHQ) | ||||
| function startCrafting(player, commandactor, craftJudge, hand, recipe, quest, startDur, startQly, startHQ) | ||||
|      | ||||
|     local worldMaster = GetWorldMaster(); | ||||
| 	local itemId = recipe.resultItemID; | ||||
|     local progress = 0; | ||||
|     local attempts = 5; | ||||
|     local craftedCount = 0; | ||||
| @@ -406,36 +458,55 @@ function startCrafting(player, hand, recipe, quest, startDur, startQly, startHQ) | ||||
|     player:ChangeMusic(73); | ||||
|     callClientFunction(player, "delegateCommand", craftJudge, "openCraftProgressWidget", commandactor, startDur, startQly, startHQ);  | ||||
|  | ||||
|     while true do  | ||||
|      | ||||
|     while (true) do      | ||||
|         local progDiff = math.random(30,50); | ||||
|         local duraDiff = math.random(1,3); | ||||
|         local qltyDiff = math.random(0,2); | ||||
|  | ||||
|         if progress >= 100 then | ||||
|             player:SendGameMessage(GetWorldMaster(), 40111, 0x20, player, itemId, 3, 8);  -- "You create <#3 quantity> <#1 item> <#2 quality>." | ||||
|         if (progress >= 100) then             | ||||
|             callClientFunction(player, "delegateCommand", craftJudge, "closeCraftProgressWidget", commandactor); | ||||
|              | ||||
|             if quest then | ||||
|                 continueLeve = callClientFunction(player, "delegateCommand", craftJudge, "askContinueLocalLeve", 120001, itemId, craftedCount, craftTotal, attempts); | ||||
| 			-- Handle local levequest craft success | ||||
|             if quest then	 | ||||
| 				quest:craftSuccess(); | ||||
| 				 | ||||
| 				if (quest:getCurrentCrafted() >= quest:getObjectiveQuantity()) then | ||||
| 					attentionMessage(player, 40121, quest:getQuestId(), quest:getCurrentCrafted(), quest:getObjectiveQuantity()); -- "All items for <QuestId> complete!" | ||||
| 				else | ||||
| 					attentionMessage(player, 40119, quest:getQuestId(), quest:getCurrentCrafted(), quest:getObjectiveQuantity()); -- "<QuestId> Successfull. (<crafted> of <attempts>)" | ||||
| 				end | ||||
| 			 | ||||
| 				-- Continue local levequest  (should this be in here??) | ||||
| 				if (quest:getRemainingMaterials() ~= 0) then | ||||
| 					continueLeve = callClientFunction(player, "delegateCommand", craftJudge, "askContinueLocalleve", commandactor, | ||||
| 						quest:getQuestId(), | ||||
| 						quest:getRecipe().resultItemID,  | ||||
| 						quest:getCurrentCrafted(), | ||||
| 						quest:getObjectiveQuantity(),  | ||||
| 						quest:getRemainingMaterials() | ||||
| 					); | ||||
|  | ||||
|                 if continueLeve == true then | ||||
|                     progress = 0; | ||||
|                     callClientFunction(player, "delegateCommand", craftJudge, "openCraftProgressWidget", commandactor, startDur, startQly, startHQ); | ||||
|                 else | ||||
|                     break; | ||||
|                 end | ||||
|             else | ||||
|                 break; | ||||
| 					if (continueLeve == 1) then | ||||
| 						progress = 0; | ||||
| 						callClientFunction(player, "delegateCommand", craftJudge, "openCraftProgressWidget", commandactor, startDur, startQly, startHQ); | ||||
| 					else | ||||
| 						break; | ||||
| 					end | ||||
| 				else | ||||
| 					break; | ||||
| 				end				 | ||||
| 			-- Normal synth craft success | ||||
|             else                 | ||||
| 				player:SendGameMessage(GetWorldMaster(), 40111, 0x20, player, recipe.resultItemID, 1, recipe.resultQuantity);  -- "You create <#3 quantity> <#1 item> <#2 quality>."				 | ||||
| 				player:getItemPackage(location):addItem(recipe.resultItemID, recipe.resultQuantity, 1); | ||||
| 				break; | ||||
|             end | ||||
|         end | ||||
|         end		 | ||||
|          | ||||
|         choice = callClientFunction(player, "delegateCommand", craftJudge, "craftCommandUI", commandactor, 29, 2, 29530,29531,29532,29533,29534); | ||||
|         --player:SendMessage(0x20, "", "[DEBUG] Command id selected: "..choice); | ||||
|          | ||||
|  | ||||
|          | ||||
|         if choice then | ||||
|                  | ||||
|         if (choice) then | ||||
|              | ||||
|             if skillAnim[choice] then | ||||
|                 player:PlayAnimation(skillAnim[choice]); | ||||
| @@ -445,10 +516,10 @@ function startCrafting(player, hand, recipe, quest, startDur, startQly, startHQ) | ||||
|  | ||||
|             player:SendGameMessage(worldMaster, 40108, 0x20, choice,2); | ||||
|              | ||||
|             if choice ~= 29531 then | ||||
|             if (choice ~= 29531) then | ||||
|                 progress = progress + progDiff; | ||||
|                  | ||||
|                 if progress >= 100 then  | ||||
|                 if (progress >= 100) then  | ||||
|                     progress = 100; | ||||
|                 end | ||||
|                  | ||||
| @@ -465,6 +536,4 @@ function startCrafting(player, hand, recipe, quest, startDur, startQly, startHQ) | ||||
|             --testChoice = callClientFunction(player, "delegateCommand", craftJudge, "craftTuningUI", commandactor, 29501, 24233, 29501,29501, 24223, 29501,12008,12004); | ||||
|         end | ||||
|     end | ||||
|  | ||||
|     return -1; | ||||
| end | ||||
| end | ||||
| @@ -174,7 +174,7 @@ function equipItem(player, equipSlot, item) | ||||
| 			if (gItem:IsWeaverWeapon() == true) then graphicSlot = GRAPHICSLOT_SPOFFHAND; end | ||||
| 			if (gItem:IsGoldSmithWeapon() == true) then graphicSlot = GRAPHICSLOT_SPOFFHAND; end | ||||
| 		end | ||||
| 				 | ||||
| 				  | ||||
| 		--Graphic Slot was set, otherwise it's a special case | ||||
| 		if (graphicSlot ~= nil) then | ||||
| 			player:GraphicChange(graphicSlot, item); | ||||
|   | ||||
		Reference in New Issue
	
	Block a user