<waypoints type="RUN"><!-- Malatinas Goblins by Bot_romka v 1.1.6 -->

   <onLoad>
	MainLevel = 50		<!-- Level of character which kill mobs -->
	NumTwinks = 0		<!-- Number of Twinks. For solo = 0, up to 5 in full Party. -->

	----------------------------------------------------------------------------------------
	repeat zoneid=RoMScript("GetZoneID()"); until zoneid
	repeat npcname=RoMScript("TEXT('Sys112651_name')"); until npcname
	repeat dgnname=RoMScript("TEXT('ZONE_DGN_BORSBURS')"); until dgnname
	repeat zonename=RoMScript("TEXT('ZONE_ASLAN')"); until zonename
	repeat curzone=RoMScript("GetZoneName()"); until curzone
	RoMScript("DEFAULT_CHAT_FRAME:AddMessage('|cffffff00Malatinas: "..player.Name.." You are in "..curzone..".|r')")

	--  Check zone
	if(zoneid ~= 4 and zoneid ~= 352) then
		RoMScript("DEFAULT_CHAT_FRAME:AddMessage('|cffffff00Malatinas: "..player.Name.." You are too far from " ..zonename.. ".|r')")
		error("\a\a\Malatinas: "..player.Name.." You are too far from "..zonename..".")
	end;

	--  Check zone and distance to NPC for Main character
	if(zoneid ~= 352 and player.Level >= MainLevel and distance(player.X,player.Z,-5874,3315) > 50) then
		RoMScript("DEFAULT_CHAT_FRAME:AddMessage('|cffffff00Malatinas:Main "..player.Name.." You are too far from NPC " ..npcname.. ".|r')")
		error("\a\a\Malatinas: Mainchar " ..player.Name.. " You are too far from NPC "..npcname..".")
	end

	--  Check Main character or  Twink
	if(player.Level >= MainLevel) then
		if(NumTwinks ~= 0 and NumTwinks+1 > sendMacro('GetNumPartyMembers()')) then
			RoMScript("DEFAULT_CHAT_FRAME:AddMessage('|cffffff00Malatinas: Mainchar "..player.Name.." Stop near Goblins Malatinas. Ivite all Twinks.|r')")
			printf("Malatinas: Mainchar "..player.Name.." Stop near Goblins Malatinas. Ivite all Twinks.\n");
			repeat
				yrest(1000);   
			until RoMScript('GetNumPartyMembers()') >= NumTwinks+1
		end
		player:target_NPC(npcname); yrest(1000);
		RoMScript("ChoiceOption(1);"); yrest(1000);
		RoMScript("StaticPopup_OnClick(StaticPopup1, 1);");
		repeat yrest(5000);loggedin = RoMScript("UnitName('player');"); until loggedin
		player:update();
		repeat zoneid = RoMScript("GetZoneID()"); until zoneid
		if (zoneid ~= 352) then error("\a\a\"Malatinas: Mainchar " ..player.Name.. " You are too far from "..dgnname..".") end;
	else
		printf("Malatinas:Twink " ..player.Name.. " wait for Ivite.\n")
		while not RoMScript("UnitExists('party1')") do
			RoMScript("StaticPopup_OnClick(StaticPopup1, 1);");
			yrest(1000)
		end
		printf("Malatinas:Twink " ..player.Name.. " wait for enter to "..dgnname..".\n")
		while (zoneid ~= 352) do
			RoMScript("StaticPopup_OnClick(StaticPopup1, 1);");
			yrest(1000); player:update();
			zoneid = RoMScript("GetZoneID()"); 
		end
	end

	--  Function open chest for several character in party
	function getTreasureChest()
		EventMonitorStart("TreasureChest", "PLAYER_BAG_CHANGED")
		local retry_count = 0;
		while(retry_count&lt;7)do
			player:target_Object(113137,7000,nil,true)
			local time, moreToCome, msg = EventMonitorCheck("TreasureChest", "1")
			if msg ~= nil then
				EventMonitorStop("TreasureChest")
				break
			end
			retry_count = retry_count + 1;
		end
		printf("Chest opens. continuing.\n")
	end

	--  Function whait for command to twink 
	function PauseTwink()
		EventMonitorStart("PausePARTY", "CHAT_MSG_PARTY")
		repeat
			local time, moreToCome, name, msg = EventMonitorCheck("PausePARTY", "4,1")
			if time ~= nil then
				if string.find(msg,"All Ok") then
					break
				end
			end
			yrest(5)
		until false
	end

	-- Change Profile Option
	changeProfileOption("RES_AUTOMATIC_AFTER_DEATH", false)
	changeProfileOption("TARGET_LEVELDIF_BELOW", 40)
	changeProfileOption("LOOT_IN_COMBAT", false)
	changeProfileOption("AUTO_ELITE_FACTOR", 15)
	changeProfileOption("LOOT_ALL", true)
   </onLoad>

<!-- Inside Goblin Mines -->
 	<waypoint x="1904" z="2230" y="308" tag="STARTM4">
		--  Check if Twink then whait for Main character kill all mobs near chests
		if(MainLevel > player.Level) then
			PauseTwink()
		end

		--  Enable Swimhack 
		fly();
	</waypoint>
	<waypoint x="2040" z="2226" y="388"></waypoint>
	<waypoint x="2161" z="2231" y="388"></waypoint>
	<waypoint x="2296" z="2214" y="377"></waypoint>
	<waypoint x="2061" z="2789" y="377"></waypoint>
	<waypoint x="2204" z="3071" y="366"></waypoint>
	<waypoint x="2092" z="3628" y="366"></waypoint>
	<waypoint x="2240" z="3628" y="346"></waypoint>
	<waypoint x="2902" z="3632" y="255"></waypoint>
	<waypoint x="3068" z="3620" y="255"></waypoint>
	<waypoint x="3193" z="3888" y="249"></waypoint>
	<waypoint x="3252" z="4163" y="249"></waypoint>
	<waypoint x="3424" z="4295" y="254"></waypoint>
	<waypoint x="3812" z="4335" y="271"></waypoint>
	<waypoint x="4157" z="4188" y="271"></waypoint>
	<waypoint x="4177" z="4042" y="271"></waypoint>
	<waypoint x="4032" z="3974" y="271"></waypoint>
	<waypoint x="3883" z="4062" y="253"></waypoint>
	<waypoint x="3639" z="4115" y="253"></waypoint>
	<waypoint x="3473" z="4085" y="243"></waypoint>
	<waypoint x="3391" z="3846" y="243"></waypoint>
	<waypoint x="3611" z="3812" y="251"></waypoint>
	<waypoint x="3990" z="3818" y="251"></waypoint>
	<waypoint x="4053" z="3741" y="241"></waypoint>
	<waypoint x="4098" z="3522" y="241"></waypoint>
	<waypoint x="3934" z="3472" y="241"></waypoint>
	<waypoint x="3676" z="3607" y="198"></waypoint>
	<waypoint x="3435" z="3590" y="168"></waypoint>
	<waypoint x="3341" z="3445" y="147"></waypoint>
	<waypoint x="3337" z="3208" y="147"></waypoint>
	<waypoint x="3530" z="2630" y="280">
		-- Change Profile Option for combat
		__WPL:setForcedWaypointType("NORMAL")
	</waypoint>
	<waypoint x="3335" z="2574" y="248"></waypoint>
	<waypoint x="3150" z="2629" y="248"></waypoint>
	<waypoint x="3075" z="2710" y="248"></waypoint>
	<waypoint x="3015" z="2742" y="248">
		--  open chest
		getTreasureChest()
	</waypoint>
	<waypoint x="2960" z="2934" y="248"></waypoint>
	<waypoint x="2965" z="3107" y="248"></waypoint>
	<waypoint x="3026" z="3199" y="248"></waypoint>
	<waypoint x="3099" z="3249" y="248"></waypoint>
	<waypoint x="3124" z="3289" y="248">
		--  open chest
		getTreasureChest()
	</waypoint>
	<waypoint x="3254" z="3301" y="248"></waypoint>
	<waypoint x="3465" z="3296" y="248"></waypoint>
	<waypoint x="3581" z="3215" y="248"></waypoint>
	<waypoint x="3666" z="3155" y="248">
		--  open chest
		getTreasureChest()
	</waypoint>
	<waypoint x="3720" z="3013" y="248"></waypoint>
	<waypoint x="3742" z="2843" y="248"></waypoint>
	<waypoint x="3661" z="2707" y="248"></waypoint>
	<waypoint x="3593" z="2644" y="248"></waypoint>
	<waypoint x="3555" z="2603" y="248">
		--  open chest
		getTreasureChest()

		--  Kill process for Twink
		if(MainLevel > player.Level) then
			yrest(2000);
			local PID = findProcessByWindow(getWin());
			os.execute("TASKKILL /PID " .. PID .. " /F");
			os.exit
		end	
	</waypoint>	
	<waypoint x="3335" z="2574" y="248"></waypoint>
	<waypoint x="3150" z="2629" y="248"></waypoint>
	<waypoint x="3075" z="2710" y="250">
		--  Check Number Party Members
		RoMScript('SendChatMessage("All Ok", "PARTY", 0);');
		if(RoMScript('GetNumPartyMembers()') > 2) then
			flyoff();
			RoMScript("LeaveParty();");
			repeat yrest(5000);loggedin = RoMScript("UnitName('player');"); until loggedin
			player:update();
			error("Bot finished.");
		else
			error("\a\a\Bot finished. You are in Goblin Mines");
		end
	</waypoint>

<!-- Go Home -->
</waypoints>