Помогите со скриптом на ламбер.

Anything and all.

Moderators: Murderator+, Murderator

Post Reply
Monk
Posts: 3
Joined: 2005-08-24 21:15:53

Помогите со скриптом на ламбер.

Post by Monk »

Доброе время суток.
Сделайте пожалуста скрипт на ламбер - ток самый простой (не надо хайда, реколов, убеганий от других чаров и всякое такое) - чтоб он просто брал из сундука топоры(просто быстро ломаются) с хавкой и шел рубить(желательно с проверкой на голод), по возвращению скидывал логи в сундук(но есть ограничение на вместимость сундуков, поэтому если переполнен то чтоб кидал под себя в кучу).
Тайлы чтоб брал из файла.

Инфа по логам(различие по цвету).

type = "0x1BDD"
derevo[1] = "0x0000" # Logs
derevo[2] = "0x0362" # jade
derevo[3] = "0x010D" # oak
derevo[4] = "0x0094" # karund
derevo[5] = "0x01B0" # leshram
derevo[6] = "0x01A2" # turmalit
derevo[7] = "0x0026" # emerint
derevo[8] = "0x00CB" # legrand
derevo[9] = "0x094A" # solmur
derevo[10] = "0x092B" # kleor
derevo[11] = "0x0931" # logradum
derevo[12] = "0x093F" # vialonit
derevo[13] = "0x0074" # stardust
derevo[14] = "0x09EF" # pironil
derevo[15] = "0x006F" # mystic
derevo[16] = "0x0119" # elvin
derevo[17] = "0x000B" # elkris

Думаю что не сильно сложный скрипт - прост я в этом полный ноль, если есть описания настроить могу - но не больше, а на форуме ничего кроме скриптов с реколами не нашел -((

Заранее очень благодарен.
Don SpiL
Posts: 108
Joined: 2005-05-03 11:51:04
Location: KDK Elite Group (c)
Contact:

Re: Помогите со скриптом на ламбер.

Post by Don SpiL »

Monk wrote: Думаю что не сильно сложный скрипт - прост я в этом полный ноль, если есть описания настроить могу - но не больше, а на форуме ничего кроме скриптов с реколами не нашел -((

Заранее очень благодарен.
Не так уш и прост нужный тебе скриптец! да и толку от него мало потому как все это до первого рипера а потом что ? риперы нынче мощные пошли ))

Ладно! ща порежу свой скпритец,да к вечеру кину ))
Monk
Posts: 3
Joined: 2005-08-24 21:15:53

Re: Помогите со скриптом на ламбер.

Post by Monk »

Спасибо большое.

Дело в том что никаких тварей в округе нет, поэтому и нет нужды в больших скриптах.
И совсем забыл - сундук закрывается на ключ - кидать логи не проблемма но чтоб взять хавку и топоры надо открывать сундук юзанием ключа.Можнго ли это тож добавить - если долго то не стоит, затарюсь всем что надо на время (прост топора на час хватает).
Monk
Posts: 3
Joined: 2005-08-24 21:15:53

Post by Monk »

Я нашел скрипт - можете изменить еге немного - чтоб брал координаты деревьев из файла(их туда сам засуну).

Code: Select all

var command_use = 0 
var wood_needed = 1 

var near_lodka_x = 2247 #указываем координаты с которых будем заходить на лодку .where
var near_lodka_y = 764  

var on_board_x = 2247  #указываем координаты где надо сбрасывать дерево .where
var on_board_y = 760 

var id_keys = "0x54EBC7DC" #ИД ключей в бек паке
var id_trap = "0x54F38A19" #ИД Трапа

var opt_weight = 130

sub main() 
uo.exec ("terminate reconnector") 
uo.exec ("exec reconnector") 
uo.deletejournal() 
uo.exec ("set finddistance 1") 
uo.exec ("useobject backpack") 
var i,b,f,tile,xx,yy,j 
dim x[50] 
dim y[50] 
dim t[50] 
dim a[50] 

start: 

a[1] = "3283 2248 765 0"  # указываем координаты деревьев с помощью ,infotie
a[2] = "3294 2248 771 0"  # указываем координаты деревьев с помощью ,infotie
a[3] = "3277 2248 774 0"  # указываем координаты деревьев с помощью ,infotie
a[4] = "3296 2252 765 0"  # указываем координаты деревьев с помощью ,infotie
a[5] = "3302 2256 762 0"  # указываем координаты деревьев с помощью ,infotie
a[6] = "3291 2256 768 0"  # указываем координаты деревьев с помощью ,infotie
a[7] = "3291 2260 762 0"  # указываем координаты деревьев с помощью ,infotie
a[8] = "3294 2260 768 0"  # указываем координаты деревьев с помощью ,infotie
a[9] = "3286 2260 771 0"  # указываем координаты деревьев с помощью ,infotie
a[10] = "3296 2260 774 0"  # указываем координаты деревьев с помощью ,infotie
a[11] = "3230 2263 773 0"  # указываем координаты деревьев с помощью ,infotie
a[12] = "3299 2264 768 0"  # указываем координаты деревьев с помощью ,infotie
a[13] = "3289 2264 765 0"  # указываем координаты деревьев с помощью ,infotie
a[14] = "3296 2264 762 0"  # указываем координаты деревьев с помощью ,infotie
a[15] = "3289 2264 759 0"  # указываем координаты деревьев с помощью ,infotie
a[16] = "3280 2264 756 0"  # указываем координаты деревьев с помощью ,infotie
a[17] = "3291 2264 753 0"  # указываем координаты деревьев с помощью ,infotie
a[18] = "3280 2268 756 0"  # указываем координаты деревьев с помощью ,infotie
a[19] = "3283 2268 759 0"  # указываем координаты деревьев с помощью ,infotie
a[20] = "3294 2268 762 0"  # указываем координаты деревьев с помощью ,infotie
a[21] = "3299 2268 765 0"  # указываем координаты деревьев с помощью ,infotie
a[22] = "3277 2268 771 0"  # указываем координаты деревьев с помощью ,infotie
a[23] = "3286 2268 774 0"  # указываем координаты деревьев с помощью ,infotie
a[24] = "3299 2272 771 5"  # указываем координаты деревьев с помощью ,infotie
a[25] = "3299 2276 768 0"  # указываем координаты деревьев с помощью ,infotie
a[26] = "3277 2276 765 0"  # указываем координаты деревьев с помощью ,infotie
a[27] = "3283 2280 765 0"  # указываем координаты деревьев с помощью ,infotie
a[28] = "3296 2280 762 0"  # указываем координаты деревьев с помощью ,infotie
a[29] = "3286 2284 762 0"  # указываем координаты деревьев с помощью ,infotie
a[30] = "3302 2284 765 0"  # указываем координаты деревьев с помощью ,infotie
a[31] = "3299 2284 771 0"  # указываем координаты деревьев с помощью ,infotie
a[32] = "3280 2284 774 0"  # указываем координаты деревьев с помощью ,infotie
a[33] = "3296 2280 774 0"  # указываем координаты деревьев с помощью ,infotie



lodka() 
for j = 1 to 50 
if a[j] then 
b = a[j] 
i = 1 
t[j] = b[0] 
while b[i] <> " " 
t[j] = t[j] + b[i] 
i = i + 1 
wend 
i = i + 1 
x[j] = b[i] 
while b[i] <> " " 
x[j] = x[j] + b[i+1] 
i = i + 1 
wend 
i = i + 1 
y[j] = b[i] 
while b[i] <> " " 
y[j] = y[j] + b[i+1] 
i = i + 1 
wend 
xx = val(x[j]) 
yy = val(y[j]) 
tile = val(t[j]) 
uo.print("Tile: "+t[j]+" X: "+x[j]+" Y: "+y[j]) 
uo.print("Tree number "+str(j)) 
rubka(xx,yy,tile) 
endif 
next 
goto start: 
end sub 

sub rubka(xx,yy,tile) 
uo.deletejournal() 
var a,b,c 
uo.print (str(xx)+" "+str(yy)) 
var D = 1 
var T = "True" 
var x = xx 
var y = yy 
GoToTile(x,y,d,t) 
c = uo.timer() 
uo.exec ("waittargettile "+str(tile)+" "+str(xx)+" "+str(yy)+" 0") 
wait (500) 
uo.exec ("usetype topor") #,addtype topor
repeat 
wait (500) 
until uo.injournal("There's not enough wood here to chop") or uo.timer() > c + 1800 or uo.injournal("That is too far away") 
vibros() 
wait(2000) 
a = uo.getx() 
b = uo.gety() 
lodka() 
end sub 


sub lodka() 
var x = near_lodka_x 
var y = near_lodka_y 
var prec = 0 
if uo.weight > opt_weight or command() == 1 then 
var d,t 
var f = 0 
d = 1 
t = "True" 
gototile(x,y,d,t) 
while uo.getdistance(id_trap) > 1 
uo.exec ("useobject "+id_trap+";useobject "+id_trap) ### ID trapa 
wait (2000) 
wend 
vibros() 
if command() == 1 then 
uo.print("terminate") 
f = 1 
endif 
hungry() 
if f == 1 then 
uo.exec ("closeuo") 
uo.exec("terminate all") 
endif 
while uo.getdistance(id_trap) < 2 
uo.exec ("useobject "+id_trap) 
gotoxy(uo.getx(id_trap),uo.gety(id_trap),0) 
wait (3000) 
wend 
endif 
end sub 

sub vibros() 
uo.exec ("set finddistance 1") 
var i,l 
var type = "0x1BDD" 
var container, color 
dim derevo[17] 
derevo[1] = "0x0000" # Logs
derevo[2] = "0x0362" # jade 
derevo[3] = "0x010D" # oak 
derevo[4] = "0x0094" # karund 
derevo[5] = "0x01B0" # leshram 
derevo[6] = "0x01A2" # turmalit
derevo[7] = "0x0026" # emerint 
derevo[8] = "0x00CB" # legrand 
derevo[9] = "0x094A" # solmur 
derevo[10] = "0x092B" # kleor 
derevo[11] = "0x0931" # logradum 
derevo[12] = "0x093F" # vialonit 
derevo[13] = "0x0074" # stardust 
derevo[14] = "0x09EF" # pironil 
derevo[15] = "0x006F" # mystic 
derevo[16] = "0x0119" # elvin 
derevo[17] = "0x000B" # elkris 
var nugnoe = wood_needed 
# vibros ne nugnogo dereva 
if nugnoe > 1 then 
for i = 1 to nugnoe - 1 
color = derevo[i] 
l = 0 
container = "ground" 
drop(type,color,l,container) 
next 
endif 
# skladivanie nugnogo dereva 
if uo.getx() == on_board_x and uo.gety() == on_board_y then 
uo.print ("Dropping") 
for i = nugnoe to 17 
if uo.count(type) <> 0 then 
color = derevo[i] 
l = 1 
container = "ground" 
drop(type,color,l,container) 
wait (750) 
endif 
next 
endif 
if uo.count("0x097B") <= 1 then 
uo.exec ("findtype 0x097B -1 ground") 
uo.exec ("moveitem finditem 10 backpack") 
endif 
end sub 

sub drop(type,color,l,container) 
var serial=0 
if l == 1 then 
UO.FindType(type,color,"backpack") 
if uo.findcount() <> 0 then 
serial=UO.GetSerial("finditem") 
UO.Ignore(serial) 
if container=="ground" then 
UO.FindType(type,color,"ground") 
if UO.FindCount()>0 then 
if uo.getquantity("finditem") < 59000 then 
UO.MoveItem(serial,"0","finditem","0","0","0") 
else 
UO.DropHere(serial) 
endif 
else 
uo.ignore ("finditem") 
UO.DropHere(serial) 
endif 
else 
UO.MoveItem(serial,"0",container) 
endif 

wait(1000) 
endif 
else 
uo.findtype(type,color,"backpack") 
if uo.findcount() <> 0 then 
uo.exec ("drop 0 0 0 0 finditem") 
wait (500) 
endif 
wait (500) 
endif 
UO.IgnoreReset() 
end sub 

var need_hungry_level = 1 
sub hungry() 
var i,htest,htime,htest2 
dim a[11] 
a[0] = "You are absolutely stuffed" 
a[1] = "You are stuffed" 
a[2] = "You aren't hungry at all" 
a[3] = "You are a little hungry" 
a[4] = "You are somewhat hungry" 
a[5] = "You are REALLY hungry" 
a[6] = "Your stomash hurts" 
a[7] = "Your stomash hurts and you feel dizzy" 
a[8] = "You are starving" 
a[9] = "You are almost dying of hunger" 
a[10] = "You are DYING of hunger" 
htest = 0 
repeat 
uo.deletejournal() 
uo.serverprint(".hungry") 
wait (1000) 
i = 0 
htest2 = 0 
if uo.count("0x097B") > 0 then 
repeat 
if uo.injournal(a[i]) then 
if (i - need_hungry_level) > 0 then 
uo.exec("usetype 0x097B") 
repeat 
wait (50) 
until uo.injournal("Tasty!") or uo.injournal("Good!") or uo.injournal("Yum!") or uo.injournal("I am already") or uo.injournal("123") 
htest2 = 1 
else 
htest = 1 
htest2 = 1 
endif 
endif 
i = i + 1 
until i == 11 or htest2 == 1 
else 
htest = 1 
endif 
until htest == 1 
endsub 

#При работе должна быть "отжата" кнопка NumLock 
Var MoveDelay=500  # Промежуток между шагами 
Var MoveNumber=1  # Количество шагов при смене дислокации 
Var Ep=0.172  # Значение ширины угла хождения при определении направления. Если на пути встречаются сложные и широкие препятствия - увеличить. 0.172 - сбаланчированный. 
Sub Perp(Dir) 
Var D 
D=Dir 
If Dir==1 Then 
D=3 
EndIf 
If Dir==2 Then 
D=4 
EndIf 
If Dir==3 Then 
D=-1 
EndIf 
If Dir==4 Then 
D=-2 
EndIf 
If Dir==-1 Then 
D=-3 
EndIf 
If Dir==-2 Then 
D=-4 
EndIf 
If Dir==-3 Then 
D=1 
EndIf 
If Dir==-4 Then 
D=2 
EndIf 
RETURN D 
EndSub 

Sub MoveOnce(Dir,Del,Rev) 
Var Num 
If Rev Then 
Num=MoveNumber+1 
Else 
Num=MoveNumber 
EndIf 
If (Num>0) and (Dir<>0) Then 
If Dir==1 Then 
UO.Press(38,Num,Del) 
EndIf 
If Dir==2 Then 
UO.Press(33,Num,Del) 
EndIf 
If Dir==3 Then 
UO.Press(39,Num,Del) 
EndIf 
If Dir==4 Then 
UO.Press(34,Num,Del) 
EndIf 
If Dir==-1 Then 
UO.Press(40,Num-1,Del) 
EndIf 
If Dir==-2 Then 
UO.Press(35,Num,Del) 
EndIf 
If Dir==-3 Then 
UO.Press(37,Num,Del) 
EndIf 
If Dir==-4 Then 
UO.Press(36,Num,Del) 
EndIf 
If Rev Then 
If Dir<>-1 Then 
UO.Press(40,1,Del) 
EndIf 
EndIf 
EndIf 
EndSub 

Sub GetQDir(x,y) 
Var J=0 
If X==0 Then 
J=1 
Else 
If (Y/X)<ep Then 
J=3 
Else 
If (X/Y)<ep Then 
J=1 
Else 
J=2 
EndIf 
EndIf 
EndIf 
RETURN J 
EndSub 

sub GetDir(myx,myy,ox,oy) 
Var I,J 
J=0 
Var X=ox-myx 
Var Y=oy-myy 
I=GetQDir(Abs(X),Abs(Y)) 
If X>=0 Then 
If Y>=0 Then 
If I==1 Then 
J=-2 
Else 
If I==2 Then 
J=-1 
Else 
If I==3 Then 
J=4 
EndIf 
EndIf 
EndIf 
Else 
If I==1 Then 
J=2 
Else 
If I==2 Then 
J=3 
Else 
If I==3 Then 
J=4 
EndIf 
EndIf 
EndIf 
EndIf 
Else 
If Y>=0 Then 
If I==1 Then 
J=-2 
Else 
If I==2 Then 
J=-3 
Else 
If I==3 Then 
J=-4 
EndIf 
EndIf 
EndIf 
Else 
If I==1 Then 
J=2 
Else 
If I==2 Then 
J=1 
Else 
If I==3 Then 
J=-4 
EndIf 
EndIf 
EndIf 
EndIf 
EndIf 
RETURN J 
endsub 

sub abs(a) 
Var b 
If a<0 Then 
b=-a 
Else 
b=a 
endif 
return b 
endsub 

Sub PermResend() 
Var Mn=9 
Repeat 
UO.Resend() 
Wait(MoveDelay*Mn) 
Until (1>2) 
EndSub 

sub max(A,B) 
Var C 
If A>B Then 
C=A 
Else 
C=B 
EndIf 
Return C 
EndSub 

sub GetDistance(X,Y) 
return max(abs(X-uo.getx()),abs(Y-uo.gety())) 
endsub 

sub GoToTile(OX,OY,N,S) 
var myx, myy, MD, J 
var Lx1 ,Ly1 
var Lx2 ,Ly2 
var Sx ,Sy 
var T 
var Des=N 
J=1 
MD=MoveDelay*1.5 
myx=uo.getx() 
myy=uo.gety() 
MoveOnce(GetDir(uo.getx(),uo.gety(),ox,oy),MD,False) 
Sx=0 
Sy=0 
Lx1=uo.getx()/2 
Ly1=uo.gety()/2 
Lx2=Lx1/2 
Ly2=Ly1/2 
T=UO.Timer() 
If (GetDistance(ox,oy)<>N) or ((not S) and GetDistance(ox,oy)>N) Then 
UO.Exec('exec PermResend') 
EndIf 
While ((GetDistance(ox,oy)<>N) or ((not S) and GetDistance(ox,oy)>N)) and (OX>=0) and (OY>=0) 
If ((UO.Timer()-T)*15>MoveDelay) Then 
T=UO.Timer() 
UO.Print(Str(uo.getx())+' '+Str(uo.gety())+' '+Str(ox)+' '+Str(oy)+' '+Str(GetDir(uo.getx(),uo.gety(),ox,oy))+' '+Str(T)) 
Lx2=Lx1 
Ly2=Ly1 
Lx1=myx 
Ly1=myy 
myx=uo.getx() 
myy=uo.gety() 
endIf 
MD=MoveDelay 
If ((OX-uo.getx())*(OX-uo.getx())+(OY-uo.gety())*(OY-uo.gety())>0) Then 
MD=MD*3/GetDistance(ox,oy) 
EndIf 
wait(MD) 
If GetDistance(OX,OY)>Des Then 
MoveOnce(GetDir(uo.GetX(),uo.GetY(),ox,oy),MD,False) 
Else 
If S Then 
If GetDistance(OX,OY)<Des Then 
If GetDistance(OX,OY)<>0 Then 
MoveOnce(GetDir(ox,oy,uo.GetX(),uo.GetY()),MD,False) 
Else 
MoveOnce(GetDir(uo.GetX(),uo.GetY(),Lx2,Ly2),MD,False) 
EndIf 
EndIf 
EndIf 
EndIf 
If GetDistance(OX,OY)<>Des Then 
If (Lx2==uo.getx()) and (Ly2==uo.gety()) Then 
If (Sx<>uo.getx()) or (Sy<>uo.gety()) Then 
J=1 
EndIf 
J=J+1 
UO.Resend() 
Sx = uo.getx() 
Sy = uo.gety() 
Stun(ox,oy,J) 
EndIf 
EndIf 
Wend 
UO.Exec('terminate PermResend') 
endsub 

Sub Stun(X,Y,N) 
Var I 
Var myx 
Var myy 
myx = uo.getx() 
myy = uo.gety() 
For I=1 to N 
MoveOnce(perp(GetDir(myx,myy,x,y)),MoveDelay,False) 
Next 
Wait(MoveDelay) 
UO.Resend() 
If (myx==uo.getx()) and (myy==uo.gety()) Then 
For I=1 to N 
MoveOnce(-perp(GetDir(myx,myy,x,y)),MoveDelay,False) 
Next 
Wait(MoveDelay) 
UO.Resend() 
EndIf 
If (myx==uo.getx()) and (myy==uo.gety()) Then 
For I=1 to N 
MoveOnce(-GetDir(myx,myy,x,y),MoveDelay,False) 
Next 
Wait(MoveDelay) 
Stun(x,y,N) 
EndIf 
EndSub 

sub NearTile(Obj,Des) 
var ox, oy, myx, myy, MD, J 
var Lx1 ,Ly1 
var Lx2 ,Ly2 
var Sx ,Sy 
var T 
UO.Click(Obj) 
MD=MoveDelay*1.5 
ox=uo.GetX(Obj) 
oy=uo.GetY(Obj) 
J=1 
myx = uo.getx() 
myy = uo.gety() 
Sx=0 
Sy=0 
Lx1=myx/2 
Ly1=myy/2 
Lx2=Lx1/2 
Ly2=Ly1/2 
T=UO.Timer() 
If not (UO.GetDistance(Obj)==Des) Then 
UO.Exec('exec PermResend') 
EndIf 
While not (UO.GetDistance(Obj)==Des) 
ox=uo.GetX(Obj) 
oy=uo.GetY(Obj) 
If ((UO.Timer()-T)*15>MoveDelay) Then 
T=UO.Timer() 
UO.Print('Go to '+Str(Des)+' to '+UO.GetName(Obj)) 
UO.Print(Str(UO.GetDistance(Obj))) 
UO.Print(Str(uo.GetX())+' '+Str(uo.GetY())+' '+Str(uo.GetX(Obj))+' '+Str(uo.GetY(Obj))+' '+Str(GetDir(uo.GetX(),uo.GetY(),uo.GetX(Obj),uo.GetY(Obj)))+' '+Str(T)) 
Lx2=Lx1 
Ly2=Ly1 
Lx1=myx 
Ly1=myy 
myx=uo.getx() 
myy=uo.gety() 
endIf 
MD=MoveDelay*1.5 
If (UO.GetDistance(Obj)>0) Then 
MD=MD/UO.GetDistance(Obj) 
EndIf 
wait(MD) 
If UO.GetDistance(Obj)>Des Then 
MoveOnce(GetDir(uo.GetX(),uo.GetY(),uo.GetX(Obj),uo.GetY(Obj)),MD,False) 
Else 
If UO.GetDistance(Obj)<Des Then 
If UO.GetDistance(Obj)<>0 Then 
MoveOnce(GetDir(uo.GetX(obj),uo.GetY(obj),uo.GetX(),uo.GetY()),MD,False) 
Else 
MoveOnce(GetDir(uo.GetX(),uo.GetY(),Lx2,Ly2),MD,False) 
EndIf 
EndIf 
EndIf 
If UO.GetDistance(Obj)<>Des Then 
If (Lx2==uo.getx()) and (Ly2==uo.gety()) Then 
If (Sx<>uo.getx()) or (Sy<>uo.gety()) Then 
J=1 
EndIf 
J=J+1 
UO.Resend() 
Sx = uo.getx() 
Sy = uo.gety() 
Stun(uo.GetX(Obj),uo.GetY(Obj),J) 
EndIf 
EndIf 
Wend 
UO.Exec('terminate PermResend') 
endsub 



var max_wait = 3 #(v secundax) 
sub gotoxy(x,y,prec) 
var ld=0,ldc=0 
var dx,dy 
var mx,my 
var ox,oy,mk,k 
start: 
mx=UO.GetX() 
my=UO.GetY() 
dx=mx-x 
if dx<0 then 
dx=0-dx 
endif 
dy=my-y 
if dy<0 then 
dy=0-dy 
endif 
if dy>dx then 
dx=dy 
end if 
if dx<=prec then 
return 
end if 
if not ldc then 
uo.print("Lag") 
end if 
if dx<3 then 
mk=70 
else 
mk=15 
end if 

ox=mx 
oy=my 
for k=1 to mk 
mx=UO.GetX() 
my=UO.GetY() 
if mx<>ox or my<>oy then 
goto sdidapl 
end if 
wait(10) 
next 
sdidapl: 

mx=UO.GetX() 
my=UO.GetY() 
dx=mx-x 
if dx<0 then 
dx=0-dx 
endif 
dy=my-y 
if dy<0 then 
dy=0-dy 
endif 
if dy>dx then 
dx=dy 
end if 

if dx<=prec then 
return 
end if 
if ld==dx then 
ldc=ldc+1 
if ldc>max_wait then 
uo.print("Can not reach location!") 
return 
end if 
else 
ld=dx 
end if 

if mx==x then 
if my==y then 
return 
endif 
if my>y then 
#UO.Print("UR") 
UO.Press(33) 
goto start 
endif 
#UO.Print("DL") 
UO.Press(35) 
goto start 
end if 
if mx<x then 
if my>y then 
#UO.Print("R") 
UO.Press(39) 
goto start 
endif 
if my==y then 
#UO.Print("DR") 
UO.Press(34) 
goto start 
endif 
#UO.Print("D") 
UO.Press(40) 
goto start 
end if 
if my<y then 
#UO.Print("L") 
UO.Press(37) 
goto start 
endif 
if my==y then 
#UO.Print("LU") 
UO.Press(36) 
goto start 
endif 
#UO.Print("U") 
UO.Press(38) 
goto start 
end sub 

################################################################# 

sub command() 
if command_use == 0 then 
if uo.injournal("go to log out") then 
uo.serverprint("Logouting...") 
return 1 
endif 

if uo.injournal("wait here") then 
repeat 
wait (1000) 
until uo.injournal("continue script") 
endif 

if uo.injournal("openup") then 
if uo.getdistance(id_trap) > 1 then 
gototile(near_lodka_x,near_lodka_y,1,"True") 
endif 
var trap = id_trap 
var kl = id_keys 
uo.exec ("waittargetobject "+trap+"; useobject "+kl) 
uo.serverprint ("Come in on board my friends.") 
var t = uo.timer() 
repeat 
wait (10000) 
uo.exec ("msg .c Hey, man, don't forget to close my ship.") 
until uo.injournal("closedup") or uo.timer() > t + 1200 
if uo.timer() > t + 120 then 
uo.exec ("msg .c Autoclosing") 
endif 
uo.exec ("waittargetobject "+trap+"; useobject "+kl) 
uo.serverprint ("Closed.") 
uo.exec ("showjournal 100") 
endif 
if uo.injournal("speak to you") then 
wait (5000) 
uo.textprint("SPEAKING TO ME:") 
uo.exec ("showjournal 100") 
endif 
return 0 
endif 
endsub 



################################################################################

############ 
sub MakeTime() 
VAR D, T, Ret, i 
Ret = STR(UO.Time()) 
T = "" 
For i = 0 To Len(Ret) 
T = Ret[Len(Ret)-i] + T 
If (I == 2) OR (I == 4) Then 
T = ":" + T 
EndIf 
Next 
Ret = STR(UO.Date()) 
D = "" 
For i = 0 To Len(Ret) 
D = Ret[Len(Ret)-i] + D 
If (I == 2) OR (I == 4) Then 
D = "." + D 
EndIf 
Next 
Ret = T + " @ " + D 
RETURN Ret 
end sub 

sub Reconnector() 
var ReconnectTime, RFlag, DisconnectTime 
ReconnectTime = '0' 
RFlag = 1 
Repeat 
While (UO.ObjAtLayer('Bpack') == '') 
if RFlag Then 
ReconnectTime = MakeTime() 
RFlag = 0 
endif 
Wait(30000) # WorldSave Protection 
if (UO.ObjAtLayer('Bpack') == '') then 
DisconnectTime = Maketime() 
UO.Say('') 
Wait(3000) 
UO.Say('') 
Wait(3000) 
UO.Say('') 
Wait(3000) 
UO.LDblClick(357,164) 
UO.LClick(616,459) 
Wait(3000) 
endif 
WEnd 
Wait(3000) 
if (RFlag == 0) and (ReconnectTime <> '0') Then 
UO.Exec('terminate main') 
UO.Exec('exec main') 
UO.TextOpen() 
UO.TextPrint('Disconnected '+DisconnectTime) 
UO.TextPrint('Reconnected '+Maketime()) 
RFlag = 1 
ReconnectTime = '0' 
endif 
Until false 
end sub 

sub test() 
uo.textprint(str(uo.asmmapgettile(2482,3979,0))) 
endsub
Post Reply