mirror of
				https://bitbucket.org/Ioncannon/project-meteor-server.git
				synced 2025-05-20 08:26:59 -04:00 
			
		
		
		
	
		
			
				
	
	
		
			57 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Lua
		
	
	
	
	
	
			
		
		
	
	
			57 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Lua
		
	
	
	
	
	
| --[[
 | |
| 
 | |
| RetainerFurniture Script
 | |
| 
 | |
| Functions:
 | |
| 
 | |
| eventPushStepOpenRetainerMenu() - Opens menu to choose retainer
 | |
| eventRingBell() - Plays the bell ring animation
 | |
| eventPushRetainerCallCaution() - Shows warning that a open bazaar will be closed if retainer chosen
 | |
| eventTalkRetainerMenu(hasPossessions, showDispatchChoice) - Opens retainer menu.
 | |
| eventTalkRetainerDismissal(hasPossessions) - Show dismiss confirmation.
 | |
| eventTalkRetainerMannequin(0:Enable/1:Disable) - Shows dialog to enable/disable modeling.
 | |
| eventTalkRetainerItemTrade(operationCode) - Operate RetainerTradeWidget. Codes: 1 - Open, 2 - Select Mode, 3 - Close.
 | |
| eventTalkRetainerItemList(operationCode) -  Operate Bazaar Widget. Codes: 1 - Open, 2 - Select Mode, 3 - Close.
 | |
| eventReturnResult(resultCode, ?) - Redraws the RetainerTrade UI.
 | |
| eventTalkSelectBazaarStreet(limitsWardChoices) - Shows the dialog to send a retainer to a street. Set to 20. 
 | |
| eventTalkFinish() - Finishs the talk with retainer
 | |
| eventPlayerTurn(rotation) - Turns the player
 | |
| --]]
 | |
| 
 | |
| require ("global")
 | |
| require ("retainer")
 | |
| 
 | |
| function init(npc)
 | |
| 	return false, false, 0, 0;	
 | |
| end
 | |
| 
 | |
| function onEventStarted(player, npc, triggerName)
 | |
| 	retainerNumber = callClientFunction(player, "eventPushStepOpenRetainerMenu");
 | |
| 	
 | |
| 	if (retainerNumber == nil or retainerNumber == 0) then
 | |
| 		player:EndEvent();
 | |
| 		return;
 | |
| 	end
 | |
| 	
 | |
| 	callClientFunction(player, "eventRingBell");	
 | |
| 	retainer = player:SpawnMyRetainer(npc, retainerNumber);
 | |
| 	
 | |
| 	while (true) do
 | |
| 		choice = callClientFunction(player, "eventTalkRetainerMenu", false, true);
 | |
| 		if (choice == 1) then
 | |
| 			doItemTrade(player, retainer);
 | |
| 		elseif (choice == 2) then
 | |
| 			doBazaar(player, retainer);
 | |
| 		elseif (choice == 7) then
 | |
| 			callClientFunction(player, "eventTalkRetainerMannequin", 0);		
 | |
| 		elseif (choice == 8) then
 | |
| 			callClientFunction(player, "eventTalkSelectBazaarStreet", 20);
 | |
| 		else
 | |
| 			break;
 | |
| 		end
 | |
| 	end
 | |
| 	
 | |
| 	player:DespawnMyRetainer();
 | |
| 	player:EndEvent();
 | |
| end
 |