<?xml version="1.0" encoding="utf-8"?><waypoints>
<onLoad>
	changeProfileOption("MAX_TARGET_DIST", 25);
	changeProfileOption("COMBAT_DISTANCE", 25);
		
	local weapons = 2;
	local weapontype = "BLADE"; -- AXE, AXE2H, BLADE, BLUDGEON, CLAYMORE, DAGGER, HAMMER, POLEARM, STAFF, WAND
	
	if(weapons == 1) then
		cprintf(cli.lightgreen,"Start training with %s %s!\n\n", weapons, weapontype);
	elseif(weapons == 2) then
		cprintf(cli.lightgreen,"Start training with %s %ss!\n\n", weapons, weapontype);
	else
		weapons = 1;
		cprintf(cli.lightred,"Weapons in waypoint file must be 1 or 2, please fix this!\n", weapons);
		cprintf(cli.lightgreen,"Start training with %s %s!\n\n", weapons, weapontype);
	end
	
	local starttime = os.time();
	local startlevel;
	local startpercent;
	local reset = 0;
	
	while true do
		player:clearTarget();
		local egg = player:findNearestNameOrId("106770")
			
		if egg and 50 > distance(egg.X, egg.Z, player.X, player.Z) then
			player:target(egg.Address)
			player:cast("ROGUE_FERVENT_ATTACK")
			inventory:useItem("Magic Lute (3 Days)")
			Attack()
			yrest(10000)
			
			cprintf(cli.lightgreen,"Dura: %s\n", math.floor(inventory:getMainHandDurability()));
			
			local skill = RoMScript("GetPlayerCurrentSkillValue(\""..weapontype.."\")");
			local levelmax = RoMScript("GetPlayerMaxSkillValue(\""..weapontype.."\")");
			local level = math.floor(skill);
			local percent = math.floor((skill-level)*10000+0.5)/100;
			if (startlevel == nil) then
				reset = 1;
				startlevel = level;
				startpercent = skill-level;
			end
			if(startlevel ~= level) then
				reset = 1;
				startlevel = level;
				startpercent = skill-level;
				starttime = os.time();
			end
			cprintf(cli.lightgreen,"%s level: %s/%s ... %s%%\n", weapontype, level, levelmax, percent);
			
			local timediff = os.time() - starttime;
			local currentpercent = skill-level;
			local secondsleft = math.floor(((1-currentpercent)*timediff)/(currentpercent-startpercent));
			local hours = math.floor(secondsleft/3600);
			local minutes = math.floor((secondsleft-(hours*3600))/60);
			local seconds = secondsleft - (hours*3600) - (minutes*60);
			
			if (reset == 1) then
				reset = 0;
				cprintf(cli.lightred,"Estimated time to next level: insufficient data to calculate time...\n");
			else
				cprintf(cli.lightgreen,"Estimated time to next level: %sh %sm %ss\n", hours, minutes, seconds);
			end
			
			local hammer = inventory:itemTotalCount(201967);
			cprintf(cli.lightgreen,"Hammers left: %s\n", hammer);
			
			if ( 5 > inventory:getMainHandDurability() ) then 
				
				if(weapons == 1) then
					if hammer > 0 then
						cprintf(cli.lightred,"repairing mainhand....")
						inventory:useItem(201967);
						RoMScript("PickupEquipmentItem(15)")
						cprintf(cli.yellow,"done!\n")
						inventory:update()
					else
						cprintf(cli.lightred,"No simple rapair hammers in bag!\n")
						player:clearTarget();
						player:sleep()
					end
				end
				
				if(weapons == 2) then
					if hammer > 1 then
						cprintf(cli.lightred,"repairing mainhand....")
						inventory:useItem(201967);
						RoMScript("PickupEquipmentItem(15)")
						cprintf(cli.yellow,"done!\n")
						inventory:update()
						cprintf(cli.lightred,"repairing offhand....")
						inventory:useItem(201967);
						RoMScript("PickupEquipmentItem(16)")
						cprintf(cli.yellow,"done!\n")
						inventory:update()
					else
						cprintf(cli.lightred,"No or insufficient simple rapair hammers in bag!\n")
						player:clearTarget();
						player:sleep()
					end   
				end
			end
		end
	end
</onLoad>
</waypoints>