Yoko

All sides of Injection
It is currently 2025-11-04 10:32:07

All times are UTC+02:00




Post new topic  Reply to topic  [ 13 posts ] 
Author Message
PostPosted: 2006-03-23 18:53:33 
Offline

Joined: 2006-02-12 16:22:44
Posts: 18
Всем привет! У меня небольшая проблемка! Надо изменить в скрипте, а точнее добавить чтобы когда чара ктото атачит (пк, элемка и т.п.), чар бежал по моим координатом домой, и после того как прибегал банил того кто атачил, тобеш последнего по таргету, ну а после этого через 1 минуту шёл по моим координатом к шахте и продолжал опять копать!

Вот выкладываю скрипт, чей он я без понятия, ктото кинул давно уже, много раз видимо переделывался, да и я там поковырялся немного...

P.S.> Если не сложно то удалите что лишние там ещё... хилинг там, чтобы чар убивал элемок и ну ещё чтото не нужное вроде там есть...
Зарание спасибо!

Code:
#При работе должна быть "отжата" кнопка NumLock
Var MoveDelay=300 # Промежуток между шагами
Var MoveNumber=1 # Количество шагов при смене дислокации
Var Ep=0.172 # Значение ширины угла хождения при определении направления. Если на пути встречаются сложные и широкие препятствия - увеличить. 0.172 - сбалансированный.
Var FileName='C:\TILE3.txt' # В каждой строке файла тайл точки с рудой.

Sub Main()
UO.DeleteJournal()
UO.Exec('exec Lumb')
EndSub

Sub Lumb()
Var Tl,T,X,Y,Z
UO.SetGlobal('process','yes')
Var F=File(FileName)
F.Open()
GoToTile(1921,374,0,False) #Точки от сундука к шахте
GoToTile(1913,374,0,False) #Точки от сундука к шахте
GoToTile(1908,368,0,False) #Точки от сундука к шахте
GoToTile(1901,367,0,False) #Точки от сундука к шахте
wait(6000)
Beg:
presledovanie()
if uo.weight>410 then
GoTo Konec
EndIf
DeleteJournal('0xAD00')
Tl=safecall F.Readln()
Tl=Trim(Tl)
If Tl=='File read error' Then
GoTo Ext
EndIf
T=GetNumb(Tl,0)
X=GetNumb(Tl,1)
Y=GetNumb(Tl,2)
Z=GetNumb(Tl,3)
UO.Print('NEXT IRON!')
UO.Print('Tile '+Tl)
GoToTile(X,Y,1,False)
UO.Exec("useskill Hiding")
uo.deletejournal()
while not (UO.InJournal('cliloc# 0xA867') or UO.InJournal('cliloc# 0xA2DE') or UO.InJournal('cliloc# 0xA20D') or UO.InJournal('cliloc# 0xAD00') or UO.InJournal('cliloc# 0xAD01'))
uo.deletejournal()
UO.WaitTargetTile(Str(t),Str(x),Str(y),Str(z))
wait(700)
UO.Usetype('0x0E86')
Wait(500)

presledovanie()
wend
If UO.InJournal('0xAD00') Then
UO.Print('NO IRON!')
endif
GoTo Beg
Ext:
F.Close()
UO.SetGlobal('process','no')
GoTo Nachalo
Konec:
GoToTile(1921,374,0,False) #Точки от шахты к сундуку
GoToTile(1937,374,0,False) #Точки от шахты к сундуку
GoToTile(1941,376,0,False) #Точки от шахты к сундуку
GoToTile(1943,376,0,False) #Точки от шахты к сундуку
wait(6000)
uo.findtype(0x19B9)
uo.print(uo.FindCount())
while uo.FindCount() > 0
uo.MoveItem("finditem","-1","0x402A1670") #ID'шник сундука куда будет складываться вся руда
wait(2000)
uo.findtype(0x19B9)
wend
dobor()
GoToTile(1921,374,0,False) #Точки от сундука к шахте
GoToTile(1913,374,0,False) #Точки от сундука к шахте
GoToTile(1908,368,0,False) #Точки от сундука к шахте
GoToTile(1901,367,0,False) #Точки от сундука к шахте
wait(6000)
GoTo Beg
Nachalo:
UO.Print('THE END')
uo.say(",exec Main")
EndSub

Sub GetNumb(C,I)
var J,T,K
J=0
K=1
While K>0
J=J+1
If (Mid(C,J,1)==' ') Or (J>=Len(C)-1) Then
If I==0 Then
T=Val(Left(C,J))
Else
T=GetNumb(Right(C,Len(C)-J-1),I-1)
EndIf
K=0
EndIf
wend
UO.Print(T)
return T
endsub

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()
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 DeleteJournal(What)
Var T,J
J=False
If UO.InJournal(What) Then
J=True
UO.DeleteJournal()
EndIf
RETURN J
EndSub

sub presledovanie()
uo.exec("set finddistance 1")
uo.findtype("0x006C",-1,"ground")
while uo.FindCount()>0
Uo.Exec("waittargetobject finditem")
uo.useobject('Wep') # Wep должен быть обозначен в обжектах как оружее, которым будем мочить крыс и элемов.
uo.deletejournal()
uo.attack('finditem')
wait(6000)
uo.findtype("0x006C",-1,"ground")

while uo.life<100
UO.exec("waittargetself")
UO.exec("usetype bandage")
wait(1000)
UO.exec("useobject Shield") # Тоже самое что с Wep, но тока это щит. (Показать надо через Object)
wait(1000)
UO.exec("waittargetself")
UO.exec("useobject Wep")
wait(1500)
wend

uo.findtype("0x006C",-1,"ground")
wend

uo.findtype("0x00D7",-1,"ground")
while uo.FindCount()>0
Uo.Exec("waittargetobject finditem")
uo.useobject('Wep')
uo.deletejournal()
uo.attack('finditem')
wait(6000)
uo.findtype("0x006C",-1,"ground")

while uo.life<100 # После скольких жизний будем хелиться бинтами.
UO.exec("waittargetself")
UO.exec("usetype bandage")
wait(1000)
UO.exec("useobject Shield")
wait(1000)
UO.exec("waittargetself")
UO.exec("useobject Wep")
wait(1500)
wend

uo.findtype("0x00D7",-1,"ground")
wend
end sub

sub dobor() # Добор кирок из сундука.
while uo.count("0x0E86")<4
uo.print("kirka")
uo.useobject("0x4012ADAC") # ID'шник сундука в котором кирки.
wait(1000)
uo.findtype("0x0E86",-1,"0x4012ADAC") # ID'шник сундука в котором кирки.
wait(700)
uo.moveitem('finditem','4')
wait(700)
wend

end sub


Top
   
 Post subject:
PostPosted: 2006-03-23 20:59:49 
Offline
User avatar

Joined: 2005-08-18 09:09:18
Posts: 104
Location: RUSSIA
Насколько я помню, это макр Джаста :)


Top
   
 Post subject:
PostPosted: 2006-03-23 21:38:56 
Offline

Joined: 2006-02-12 16:22:44
Posts: 18
Мож быть мож быть %) Кто кинул не помню...


Top
   
 Post subject:
PostPosted: 2006-03-25 03:12:16 
Offline

Joined: 2006-02-12 16:22:44
Posts: 18
Ап!!

P.S.> Неужели не кто не может? Или времени нету? :cry:


Top
   
PostPosted: 2006-03-25 17:02:14 
Offline
Expert!

Joined: 2004-04-03 17:36:29
Posts: 2544
Location: Saint-Petersburg
Fraerok wrote:
и после того как прибегал банил того кто атачил, тобеш последнего по таргету


Если ты ГМ, то включи неуязвимость, по фиг кто тебя атачить будет, а если не ГМ, то как ты банить врага собрался?


Top
   
PostPosted: 2006-03-25 19:14:53 
Offline

Joined: 2006-03-23 12:42:01
Posts: 21
Edred wrote:
Fraerok wrote:
и после того как прибегал банил того кто атачил, тобеш последнего по таргету


Если ты ГМ, то включи неуязвимость, по фиг кто тебя атачить будет, а если не ГМ, то как ты банить врага собрался?


на некоторых серверах в табличке дома есть закладка сделать врагом
примерно также как сделать другом =))

если делать человека врагом для дома то он не может даже зайти в зону дома
его отбрасывает за сейф зону дома.


Top
   
 Post subject:
PostPosted: 2006-03-25 20:56:01 
Offline

Joined: 2006-02-12 16:22:44
Posts: 18
Гы! Видимо не кто на нове не играл %) Банил чтобы он так:

Прибегает в дом, произносит фразу "i ban thee" и прицелом по последниму таргету банит... Короче это элемка, крыса, пк или рипер, без разницы! Главное кто атачит!

P.S.> На нове не так, там когда баниш человека он не может войти в дом и его отбрасывает под табличку дома, а я огорожу табличку дома забором! Тобеш если это элементаль то он просто напросто из-за забора не сможет выйти )))

(Главное чтобы чар начинал убегать от нападавшего когда тот 1 раз ударит, а то просто получится так что когда элемка стоит за забором, она же до сих пор будет атачить, так вот чар наверно и будет бегать из дома в дом... хотя не знаю как это всё происходит т.к. в скриптах почти нечего не понимаю.)


Top
   
 Post subject:
PostPosted: 2006-03-26 17:39:25 
Offline

Joined: 2006-02-12 16:22:44
Posts: 18
И ещё кстати вот у меня выдаёт ошибку: Unhandled exception in parser. Что это значит? И когда такая ошибка виснит клиет и инжа говарит типа закрыть клиет или нет, если нажать чтобы не закрылся, то выдаёт заного. :roll: :(


Top
   
 Post subject:
PostPosted: 2006-03-26 20:02:48 
Offline
Expert!

Joined: 2004-04-03 17:36:29
Posts: 2544
Location: Saint-Petersburg
Fraerok wrote:
И ещё кстати вот у меня выдаёт ошибку: Unhandled exception in parser. Что это значит? И когда такая ошибка виснит клиет и инжа говарит типа закрыть клиет или нет, если нажать чтобы не закрылся, то выдаёт заного. :roll: :(


Скрипт кривой, это она тебе говорит. Без указания места кривости. Так что втыкай по всему скрипту тестовые принты, а дальше лови место и на каком цикле это происходит


Top
   
 Post subject:
PostPosted: 2006-03-27 03:10:27 
Offline

Joined: 2006-02-12 16:22:44
Posts: 18
Ты знаеш, я бы с радостью, но только не умею я скрипты для инжи шпилить :) После 2 уроков по скриптингу на инже, у меня крыша начинает ехать. Если тебе не сложно то плиз поправь и допиши. Буду очень благодарен! :oops:


Top
   
 Post subject:
PostPosted: 2006-03-27 05:55:01 
Offline
Expert!

Joined: 2004-04-03 17:36:29
Posts: 2544
Location: Saint-Petersburg
Я лично не правлю чужие скрипты длиннее 20-30 строк кода. Просто лень разбираться.


Top
   
 Post subject:
PostPosted: 2006-03-27 11:52:05 
Offline

Joined: 2006-02-12 16:22:44
Posts: 18
Ясно. Ну лана... может кто найдётся что поправит :roll: :(


Top
   
 Post subject:
PostPosted: 2006-03-27 13:55:41 
Offline

Joined: 2006-02-12 16:22:44
Posts: 18
Вроде всеми усилиями я сделал чтобы чар при атаке убегал в дом и банил, но появилась встречаная проблема. Чар не открывает дверь в дом! Ставлю задержку в 1 секунду окало двери и дописываю uo.opendoor(), но чар 0 эмоций! Как сделать чтобы он дверь открывал? :roll:


Top
   
Display posts from previous:  Sort by  
Post new topic  Reply to topic  [ 13 posts ] 

All times are UTC+02:00


Who is online

Users browsing this forum: No registered users and 8 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Limited