Детект качаем до 100 на обычных трапленных сумках от мага 5-6й лвл - это для вора чистого
Для Пландера - этот скилл не доступен пока вы не выполните условия классового вора
после 100 , качаем до 150 на трапленных шкатулках от кравта тинкером , болты
Код: Выделить всё
program Detect;
var t:Integer;
{$Include 'all.inc'}
Begin
SetARStatus(true);
Hungry(1,ground);
while not dead do
begin
if connected then
begin
for t:= 0 to 30 do
begin
CheckSave;
UseSkill('Detect Hidden');
Wait(11000);
end;
CheckSave;
Hungry(1,ground);
end;
end;
End.
Hiding
просто встаем в хайд - ничего сверх естественного
Код: Выделить всё
program Hiding;
var t:Integer;
{$Include 'all.inc'}
Begin
SetARStatus(true);
Hungry(1,ground);
while not dead do
begin
if connected then
begin
for t:= 0 to 30 do
begin
CheckSave;
UseSkill('Hiding');
Wait(10000);
end;
CheckSave;
Hungry(1,ground);
end;
end;
End.
тут лучше качать только стелс когда у вас уже есть 130-140 хайда , потому что профитнее если вы будете качать только один скилл или хайд или стелс
Код: Выделить всё
program Stealth;
var
t: integer;
{$Include 'all.inc'}
begin
SetARStatus(True);
Hungry(1, -1);
while not Dead do
begin
if connected then
begin
for t := 0 to 10 do
begin
while not hidden do
begin
UseSkill('Hiding');
wait(11000);
end;
UseSkill('Stealth');
wait(11000);
end;
Hungry(1, -1);
end;
end;
end.
в данном скилле нам понадобится помощ Кравта , накравтить нам шкатулки от 30-150 или выше (если у вас имеются плюса на локпикинг и тинкеринг )
для профитного роста скилла - Локпикинг Вора должен быть ниже на 5-10 скиллов - тоесть , у нашего вора 110 Локпикинга - , значить берем шкатулку равную 115-120 шкатулке сделанной тинкерингом
кравтим шкатулки при 30 , 40 , 50 , 60 , 70 , 80 , 90 , 100 , 110 , 120 , 130 , 140 , 150 и так далее равному скиллу тинкеринг кравта
Код: Выделить всё
program asd;
var
PouchID : cardinal;
KeyID : cardinal;
a,b,c : integer;
stime : tdatetime;
{$Include 'all.inc'}
begin
setarstatus(true);
{-----------------------------------------}
PouchID := $4D8E302A;
KeyID := $7387E7FC;
{-----------------------------------------}
hungry(1,ground);
while true do
begin
checksave;
waitconnection(5000);
findtype($14FB,ground);
if findfullquantity > 5 then
begin
if targetpresent then canceltarget;
waittargetobject(PouchID);
useobject(finditem);
stime := now;
repeat
wait(500);
waitconnection(5000);
checksave;
a := injournalbetweentimes('fail',stime,now);
b := injournalbetweentimes('Unlocked|not locked',stime,now);
until (a >= 0) or (b >= 0) or (now > stime + (0.5/1440));
if (b >= 0) then
begin
stime := now;
if targetpresent then canceltarget;
waittargetobject(PouchID);
useobject(KeyID);
repeat
checksave;
wait(500);
waitconnection(5000);
a := injournalbetweentimes('lock',stime,now);
until (a >= 0) or (now > stime + (0.5/1440));
end;
end
else begin wait(40000); uosay('.online'); end;
c := c + 1;
if c > 30 then
begin
c := 0;
hungry(1,ground);
end;
end;
end.
качается в паре с Кравтом (Тинкеринг ) исрользуем ловушки с Болтами (для арбалета) , Ремув трап вора для профитного роста скилла - должен быть ниже на 5-10 скиллов - чем тинкеринг кравта ( напарника )
снимаем ловушку качаем Ремув Трап
в скрипте используется Тип шкатулки , в радиусе не должно быть лишних шкатулок
Инструменты/болты/металл под себя в радиусе 2ух клеток , в скрипте используются Тотэмы (Тотэмов тоже ставить в радиусе досягаемости - что бы мог хилить) , в место лечущих воинов
Крафт
Код: Выделить всё
Program Trap;
var
i:Integer;
a: Integer;
b: Integer;
cyndyk: cardinal;
stime:TDatetime;
{$Include 'all.inc'}
procedure Trap;
begin
If TargetPresent then CancelTarget;
CheckSave;
If GetQuantity(FindType($1BFB,backpack))>0 then
begin
Finddistance:=2;
CheckSave;
WaitGump('4402');
waittargetobject(findtype($1BF2,ground));
waitconnection(1000);
If (FindCount=0) and Connected then
begin
FullDisconnect;
end;
useobject(findtype($1EB9,ground));
stime := Now;
repeat
waitconnection(1000);
CheckSave;
a := InJournalBetweenTimes('select the', stime, Now);
b := InJournalBetweenTimes('I am already|You must wait|canceled|You can"t|failed|You fail', stime, Now);
wait(100);
until (a >= 0) or (b >= 0) or (Now > stime + (1.0/1440));
if (b > 0) then
begin
waitconnection(500);
if(hp < 110) then begin
uosay('heal');
end;
CheckSave;
wait(1020);
trap;
end;
CheckSave;
waittargetobject(findtype(cyndyk,ground));
stime := Now;
repeat
waitconnection(500);
CheckSave;
a := InJournalBetweenTimes('The carefully|That chest', stime, Now);
b := InJournalBetweenTimes('I am already|You must wait|canceled|You can"t|You fail', stime, Now);
wait(500);
until (a >= 0) or (b >= 0) or (Now > stime + (1.0/1440));
if (b > 0) then
begin
waitconnection(500);
if(hp < 110) then begin
uosay('heal');
end;
CheckSave;
wait(1020);
trap;
end;
end
else
begin
findtype($1BFB,ground);
If (FindCount=0) and Connected then
begin
FullDisconnect;
end;
grab(finditem,500);
end
end;
Begin
{==========================}
cyndyk:=$09AA; {wooden chest}
{==========================}
SetARStatus(true);
waitconnection(3000);
Finddistance:=2;
ClearJournal;
Hungry(1,ground);
UOSay ('Trap!');
while not dead do
begin
for i:=1 to 8 do
begin
If Connected then
begin
trap;
CheckSave;
UOSay ('Trap!');
stime:=Now;
repeat
waitconnection(3000);
CheckSave;
InJournalBetweenTimes('Untrap!', stime, Now);
wait(500);
until (LineCount >= 1) or (Now > stime + (0.5/1440));
end;
end;
If Connected then
Hungry(1,ground);
end;
End.
Код: Выделить всё
Program RemoveTrap;
var
i: Integer;
a: Integer;
b: Integer;
cyndyk: cardinal;
stime: TDatetime;
{$Include 'all.inc'}
procedure remove;
begin
waitconnection(3000);
CheckTargetError(2,10000);
waittargetobject(findtype(cyndyk,ground));
useskill('Remove Trap');
stime:=Now;
repeat
waitconnection(3000);
CheckSave;
a := InJournalBetweenTimes('You sucessfully|That may|You set off', stime, Now);
b:= InJournalBetweenTimes('You failed|You narrowly|I am already|You must wait', stime, Now);
until (a >= 0) or (b >= 0) or (Now > stime + (1.0/1440));
if (b > 0) then
begin
waitconnection(3000);
if(hp < 90) then begin
uosay('heal');
end;
CheckSave;
wait(10000);
remove;
end;
end;
Begin
{==========================}
cyndyk:=$09AA; {wooden chest}
{==========================}
Finddistance:=1;
SetARStatus(true);
Hungry(1,ground);
UOSay ('Untrap!');
while not dead do
begin
for i:=1 to 10 do
begin
If Connected then begin
CheckSave;
remove;
CheckSave;
wait(1000);
UOSay ('Untrap!');
stime:=Now;
repeat
waitconnection(3000);
CheckSave;
InJournalBetweenTimes('Trap!', stime, Now);
wait(3000);
until (LineCount >= 1) or (Now > stime + (0.5/1440));
end;
end;
If Connected then Hungry(1,ground);
end;
End.
данный скил влияет на то - сколько веса вы можете своровать у жертвы ( тут еще влияет СТР )
Чем больше мы на вора наденем СТР тем больше веса будет воровать
Жертву выбираем с наименьшим показателем дексы - но с наибольшим показателем СТР - что бы жертва могла как можно больше веса взять в свой пак - для прокачки
И так - идеально что бы жертва с 10 дексы - но в плюсах на СТР брала как можно больше сырых Фиш Стейков , что бы вор мог как можно больше своровать
Жертва
Код: Выделить всё
Program StealingPartner;
var
j, SSize, fCount, MaxItem : integer;
Const
ItemType = $097A; // Рыбные котлеты
{$Include 'all.inc'}
Begin
FindDistance := 2; // Радиус поиска
WaitConnection(3000); // Ожидаем соединения
CheckSave; // Проверка на сохранение мира
SetARStatus(true); // Включаем реконектор
Stack($097A, $0000);
SSize := 1150; // Количество в кучке
MaxItem := 1; // Количество кучек
while not dead do // Пока жив
begin
if Connected then
Begin
Hungry(1,Ground); // Поедим
CheckSave; // Проверка на сохранение мира
FindType(ItemType,backpack); // Поищем стейки в паке
fCount := FindCount;
if fCount < MaxItem then
Begin
fCount := MaxItem - fCount;
for j := 1 to fCount do // Добросим в пак до MaxItem стопок
Begin
MoveItem (FindType(ItemType,ground), SSize, backpack, j*40,0,0);
Wait(4000);
End;
End;
wait(4000);
end
else wait(30000); // Подождем конекта
end;
AddToSystemJournal('I am dead'); // Запишем в журнал, что умерли
Disconnect; // Если умерли - то завершаем работу
End.
Код: Выделить всё
program stiling;
var c: integer;
stime : TDateTime;
Const
victim = $00398F22; // ID жертвы
item = $097A; // Итем того что воруем
{$Include 'all.inc'}
Begin
CheckSave;
SetARStatus(true);
Waitconnection(3000);
While not dead do
begin
for c:= 0 to 5 do
begin
CheckSave;
WaitTargetObject(victim);
UseSkill('Stealing');
WaitJournalLine(Now,'opened|fail|need to stay close|cannot be stolen|perform|noticed',10000);
WaitTargetObject(findtype(item,lastcontainer));
UseSkill('Stealing');
WaitJournalLine(Now,'cannot be stolen|successfully stolen|perform|noticed',10000);
findtype(item,backpack);
if findfullquantity > 0 then stack(item,$0000);
wait(1000);
NewMoveXY(2214,794,True,0,True);;// координаты за 3 клетки от жертвы
wait(1000);
NewMoveXY(2217,794,True,0,True);;// координаты возле жертвы
wait(4000);
end;
Hungry(1,ground);
end
End.
Данный скил отвечает за то , что - можем ли мы заглянуть в пак жертве , просто заглянуть
У вора всегда Декса + снупинг должно быть на 10 больше - чем Снупинг+Декса жертвы
Можно надеть вора в минус дексу , а жертву в пдюс дексу
Вор
Код: Выделить всё
// отдельным потоком можно запустить музицирование для накачки дексы и инты
// заглядывание в карманы, цель должна стоять на расстоянии 1 от рабочей точки
// должен быть свободный проход длиной в три клетки на юг от рабочей точки
// еда в пределах доступности из рабочей точки
// Снупинг+декса вора < снупинг+декса цели+10 = 100% фейл снупинга.
// Снупинг+декса вора >= снупинг+декса цели+10 = 100% успех снупинга, но кач идёт.
// Снупинг+декса вора = снупинг+декса цели+31 = навык уже не качается.
// минус дексы от плейта работает, по крайней мере на неклассовом воре...
Program Snooping_v_0_02;
{$Include 'all.inc'}
Const
Maneken = $001EF73F; // ID цели
WorkX = 2224; // X координата рабочей точки
WorkY = 787; // Y координата рабочей точки
Var
Eat : TDateTime; // таймер еды
Begin
Eat := Now;
CheckStability;
Wait(3000);
MoveXY(WorkX, WorkY, True, 0, True);
Hungry(1,-1);
Wait(500);
While True Do Begin // скрипт не будет выключаться при разрыве связи или смерти перса
While Connected AND Not Dead Do // при разрыве связи или смерти перса скрипт ставится на паузу
Begin
If TargetPresent Then CancelTarget;
WaitTargetObject(Maneken);
UseSkill('Stealing');
WaitJournalLine(Now, 'backpack opened', 10000);
MoveXY(WorkX -3 , WorkY , True, 0, True);
Wait(3000);
MoveXY(WorkX, WorkY, True, 0, True);
If Now > (Eat + 7.0/1440) Then
Begin
Hungry(1,-1);
Eat := Now;
Wait(500);
End;
End;
End;
End.
просто режет труп и кушает
Код: Выделить всё
program CutCorpse;
{$Include 'all.inc'}
begin
while True do
begin
waitconnection(2000);
Hungry(1, ground);
if findtype($2006, ground) > 0 then
begin
WaitTargetObject(finditem);
usetype($0F51, $ffff);
end;
wait(10000);
end;
end.
Относительно сложный скилл , тут понадобится маги - те кто вам будут варить Яд , уровень скилла и мага влияет на все - в табличке приведен пример , кем варить , при каком скилле алхимии
Настраиваем желательно дагер нюбайный в паке , отравляем его и тд.... , тем самым прокачиваем пойзан , ставим воина что бы вас хилил
Poisoning
Код: Выделить всё
Program Poisoning;
var
syndyk1,syndyk2,orywie :cardinal;
me : TDateTime;
e,o,b,t,m,q,w,h : Integer;
{$Include 'all.inc'}
{Function HealSelf() : boolean;
Var bandage : Cardinal;
Begin
bandage := FindType($0E21,ground); // Ищем бинты
if (bandage > 0) and Connected and (Life < Str) then
Begin
if TargetPresent then CancelTarget;
WaitTargetSelf;
UseObject(bandage);
WaitJournalline(Now,'successfully|completely|full|could',30000);
Wait( 4000 );
end;
Result := false;
end;}
Begin
SetARStatus(true);
Hungry(1,ground);
{=Требуется настройка ! ! !=}
syndyk1 := $58CF9F75; {Указать ID сундука с полными кегами}
syndyk2 := $50301792; {Указать ID сундука с пустыми кегами}
orywie := $5B741DB9; {Указать ID какого либо оружия, которое находится у себя в сумке, например даггер}
{=Требуется настройка ! ! !=}
while not Dead do
begin
waitconnection(3000);
Hungry(1,ground);
for t:=1 to 100 do
begin
if (not dead) and (connected) then
begin
CheckSave;
FindType($1940,backpack);
if FindCount <= 0 then
begin
if (GetDistance(syndyk1)> 2) or (GetDistance(syndyk1)< 0) then
begin
AddToSystemJournal('Your chest #1 far lays or does not exist! Disconnecting...');
disconnect;
end;
useobject(syndyk1);
wait(3000);
FindType($1940,syndyk1);
if (FindCount <= 0) and (connected) then
begin
AddToSystemJournal('Your chest is empty! Disconnecting...');
disconnect;
end;
if FindCount > 0 then
begin
Grab(finditem,0);
q := 1;
repeat {ждать пока в паке найдеться кег или пройдет 10000 сек}
wait(500);
q := q + 1;
until (findtype($1940,backpack) > 0) or (q > 20)
end;
end;
me := Now;
wait(500);
UseObject(finditem);
//me := Now;
h := 1;
repeat
e := InJournalBetweenTimes('That keg is empty.', me, Now);
if (e >= 0) then
begin
wait(3000);
me := Now;
CheckSave;
if (GetDistance(syndyk2)> 2) or (GetDistance(syndyk2)< 0) then
begin
AddToSystemJournal('Your chest #2 far lays or does not exist! Disconnecting...');
disconnect;
end;
FindType($1940,backpack);
if FindCount > 0 then
MoveItem(finditem,0,syndyk2,0,0,0);
CheckSave;
if (GetDistance(syndyk1)> 2) or (GetDistance(syndyk1)< 0) then
begin
AddToSystemJournal('Your chest #1 far lays or does not exist! Disconnecting...');
disconnect;
end;
useobject(syndyk1);
wait(3000);
FindType($1940,syndyk1);
if (FindCount <= 0) and (connected) then
begin
AddToSystemJournal('Your chest is empty! Disconnecting...');
disconnect;
end;
if FindCount > 0 then
begin
Grab(finditem,0);
m := 1;
repeat {ждать пока в паке найдеться кег или пройдет 10000 сек}
wait(500);
m := m + 1;
until (findtype($1940,backpack) > 0) or (m > 20)
UOSay('The new keg is taken!');
end;
end;
w := InJournalBetweenTimes('The new keg', me, Now);
b := InJournalBetweenTimes('You fill a bottle', me, Now);
o := InJournalBetweenTimes('You are out', me, Now);
wait(200);
h := h +1;
until (h > 250) or (b >= 0) or (o >= 0) or (w >= 0);
{Часть с пойзоном}
FindType($0F0A,backpack); // Ищем бутылку с ядом
if FindCount > 0 then // если нашли
begin
checksave;
if targetpresent then canceltarget; // Если есть таргет курсор - отменяем его
useskill('Poisoning'); // Используем скилл пойзонинг
waitfortarget(5000); // ждем появления курсора
if targetpresent then // Если он есть
begin
TargetToObject(finditem); // щелкаем по найденой бутылке
Wait(1000);
waitfortarget(5000); // ждем появления курсора
if targetpresent then targettoobject(Orywie); // щелкаем по оружию
waitjournalline(Now,'You fail to apply|You have successfully|You fail and poison',15000);
wait(8000);
while Life < Str do
Begin
// HealSelf();
// UOSay('Heal');
// wait(10000);
End;
end;
end;
end;
end;
end;
End.
Код: Выделить всё
4лвл маг 120 алхимии
lesser poison - 3 = 22,5 пойзона
poison - 6 = 45 пойзона
greater poison - 9 = 67,5 пойзона
deadly poison - 12 = 90 пойзона
4лвл маг 150 алхимии
lesser poison - 3 = 22,5 пойзона
poison - 7 = 52,5 пойзона
greater poison - 10 = 75 пойзона
deadly poison - 14 = 105 пойзона
5лвл маг 135 алхимии
lesser poison - 4 = 30 пойзона
poison - 8 = 60 пойзона
greater poison - 12 = 90 пойзона
deadly poison - 16 = 120 пойзона
5лвл маг 150 алхимии
lesser poison - 4 = 30 пойзона
poison - 9 = 67,5 пойзона
greater poison - 13 = 97,5 пойзона
deadly poison - 18 = 135 пойзона
6лвл маг 150 алхимии
lesser poison - 5 = 37,5 пойзона
poison - 10 = 75 пойзона
greater poison - 15 = 112 пойзона
deadly poison - 20 = 150 пойзона
может качать все выше упомянутого - кроме Пойзонинга и Детект Хайда , пока не станет классовым Пландером (1 лвл вор)
Когда детектит - получает ловушку на себя , а когда качает пойзан - ломает бутылки и все время фэйлит