OrionClient BlacksmithScript UORemedy

Версия от 20:18, 13 марта 2020; Sova (обсуждение | вклад)
(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)

Скрипт тестировался на Orion Assistant v3.0.0.0
Требования : Tinkering 35+, слитки железа в сумке, 1 Tinker Tools для старта, Salvage Bag ( продается к вендора ... the Provisioner ), экипированное оружие для прокачки Arms Lore.
Скрипт сам крафтит Tinker Tools, Tongs, указанный в настройках предмет, для переплавки используется Salvage Bag.
Так же, прокачивается Arms Lore на экипированном оружии.
В зависимости от уровня навыка, убираем // возле crafting_type и crafting_button необходимого предмета.

var config = {
	'tongs' 			: 0x0FBB,
	'tongs_keep' 			: 2,
	'tongs_button' 			: 198,
	'tinkerTools'      		: 0x1EB8,
	'tinkerTools_keep' 		: 2,
	'tinkerTools_button'	        : 128,
	'ingot'				: 0x1BF2,
	'salvage_bag'			: 0x4016C667,
	//////////Dagger 0 - 49.6
	//'crafting_type' 		: 0x0F52,
	//'crafting_button'		: 30,
	/////////Short spear 49.6 - 95.0
	//'crafting_type' 		: 0x1403,
	//'crafting_button'		: 44,
	/////////Royal Circlet 95.0 - 120.0
	'crafting_type' 		: 0x2B6F,
	'crafting_button'		: 100,

};

function start()
{
	while(!Player.Dead())
	{
		var _ingots = Orion.FindType(config["ingot"]);
		if(_ingots && _ingots.length > 0)
		{			
			var _ingots_qty = Orion.Count(config["ingot"]);
			if(_ingots_qty > 50 )
			{
				Orion.CancelWaitGump();
				arms_lore();
				Orion.Print("Total ingots left -> "+_ingots_qty);
				check_and_craft(config["tinkerTools"], config["tinkerTools_keep"], config["tinkerTools_button"]);
				check_and_craft(config["tongs"], config["tongs_keep"], config["tongs_button"]);
				craft(config["tongs"],config["crafting_button"]);
				Orion.Wait(1000);
				smelt();
				Orion.Wait(1000);
			}
			else
			{
				Orion.PauseScript();
				Orion.Wait(1000);
			}			
		}
	}
}

function arms_lore()
{	
	var _target = Orion.ObjAtLayer(1).Serial();
	Orion.WaitTargetObject(Orion.ObjAtLayer(1).Serial());
	Orion.UseSkill("Arms Lore");
	Orion.Wait(1000);	
}

function smelt()
{
	var _crafted = Orion.FindType(config["crafting_type"]);
	if(_crafted && _crafted.length > 0)
	{
		Orion.MoveItem(_crafted[0],0,config['salvage_bag']);
		Orion.Wait(1000);		
		Orion.RequestContextMenu(config["salvage_bag"]);
		Orion.WaitContextMenu(config["salvage_bag"], 0);
		Orion.WaitForContextMenu(1000);							
	}

}



function check_and_craft(_item, _qty, _button)
{
	while (Orion.FindType(_item).length < _qty)
	{
		Orion.Print("[i] Crating required tool")
		craft(config["tinkerTools"],_button);
		Orion.Wait(1000);
	}	
}

function craft(_tools, _button)
{
	Orion.UseType(_tools);
	Orion.WaitGump(Orion.CreateGumpHook(_button));
	if(Orion.WaitForGump(2000))
	{		
		Orion.WaitGump(Orion.CreateGumpHook(0));
		Orion.Print("Crafted -> Closed?");
		Orion.Wait(10000); //Hardcoded! Fix!
	}
	else
	{
		Orion.Print("Error crafting item, WaitForGump timeout exceeded");
		//Orion.PauseScript();
	}
}