Скрипт на прокачку Lockpicking

Материал из Wiki Legnes
Перейти к: навигация, поиск

Скрипт на прокачку навыка Взламывание замков (Lockpicking)
Автор скрипта: Frydex

Скачать скрипт в виде файла lockpicking.oajs

//настройки скрипта
var containerWithIron = '0x400E92DC'; //serial мешока с айроном узнаем через _info
var lockContainer = '0x401AAA29'; //serial locked chest узнаем через _info

//static variables
var lockKey = '0x1010'; //ключ от сундука
var lockpickings = '0x14FC'; //отмычки
var tinkerTool = '0x1EBC'; //тинкертул
var iron = '0x1BEF'; //айрон

function Autostart() {
	while (!Player.Dead() && Orion.SkillValue('Lockpicking') !== 1000) {
		if(Orion.Count(lockpickings) === 0) {
			if(!pickupIron()) {
				Orion.Print('Недостаточно айрона');
				break;
			}
			craftLockpickings();
		}
		lock();
		while (unlock()) {
			Orion.Wait(100);
		}
	}
}

function unlock() {
	Orion.WaitTargetObject(lockContainer);
	if(!Orion.UseType(lockpickings)) {
		return false;
	}
	var msg = Orion.WaitJournal('be locked|quickly|Locked Chest|closed', Orion.Now(), Orion.Now() + 1800, 'sys|my|item|name');
	if(msg != null && msg.FindTextID() === 0) {
		false;
	}
	return true;
}

function lock() {
	Orion.WaitTargetObject(lockContainer);
	Orion.UseType(lockKey);
	var msg = Orion.WaitJournal('You lock|You unlock', Orion.Now(), Orion.Now() + 3500, 'sys|my');
	if (msg != null && msg.FindTextID() > 0) {
		lock();
	}
}

function pickupIron() {
	Orion.UseObject(containerWithIron);
	Orion.Wait(300);
	
	if (Orion.DragItemType(iron, 'any', containerWithIron, 50)) {
		Orion.Wait(300);
		Orion.DropDraggedItem('backpack');
		Orion.Wait(300);
	} else {
		return false;
	}
	
	if(Orion.Count(iron, 'any', 'backpack') < 50) {
		return false;
	}

	return true;
}

function craftLockpickings() {
	Orion.UseType(tinkerTool);
	if (Orion.WaitForMenu(1000))
	{
		var menu0 = Orion.GetMenu('last');
		if (menu0 !== null)
		{
			if (menu0.Name() === "Tinkering")
				menu0.Select('Tools');
		}
	}
	if (Orion.WaitForMenu(1000))
	{
		var menu1 = Orion.GetMenu('last');
		if (menu1 !== null)
		{
			if (menu1.Name() === "Tools") {
				menu1.Select('Lockpick (50 ingots)');
				Orion.WaitJournal('put|fail', Orion.Now(), Orion.Now() + 3500, 'sys|my');
			}
		}
	}
}