Атака по сигналу из журнала

Anything and all.

Moderators: Murderator+, Murderator

Kynep
Expert!
Posts: 1348
Joined: 2006-02-07 08:51:40
Location: г. Старый Оскол
Contact:

Post by Kynep »

Вот немнога подредактировал скриптик, теперь он лутает с трупа Рипера камушки, золото и иногда попадаются мешочки с разными прикольными вещями типа: оружие, броня с приписками... так же пока ждет следующего Рипера, потихоньку качает Форенсик на трупе убиенного и безсовестно облутанного только что Рипера...
:) Легко редактируется под любых монстриков... Кстати галочка "Corpses Auto Open" ДОЛЖНА СТОЯТЬ ВКЛЮЧЕНА!!!
Пользуйтесь :D (Шард ДРВ)

Code: Select all

sub GrimKill() 

    Var hrsT, hrsC
    hrsT = "0x03CA" # тип зверька
    hrsC = "0x0901" # его цвет
    UO.Set('finddistance', '10')

repeat
Uo.DeleteJournal()
   UO.FindType(hrsT, hrsC, "ground")
       If UO.FindCount() > 0 Then
         UO.WarMode(1)
         walk(0,0,'finditem')
         wait(100)
         UO.Attack('finditem')
         repeat
         wait(100)
         until UO.InJournal('Body of Grim')
       Else
   looting()
   wait(100)
       End If
         UO.WarMode(0)
         UO.WaitTargetObject('lastcorpse')
         UO.UseSkill('Forensic Evaluation')
         wait(3500)
         UO.FindType(hrsT, hrsC, "ground")
until UO.dead()
end sub

Sub Walk(X,Y,Target)
var Targeting=''
var Result
var DX,DY,GLX,GLY
var DirW=0
var exit=0
while exit<>1
if Target<>'' then
Targeting=Target
DX=uo.GetX(Target)-uo.GetX()
DY=uo.GetY(Target)-uo.GetY()
if uo.GetDistance(Target)<2 then
exit=1
end if
else
DX=X-uo.GetX()
DY=Y-uo.GetY()
GLX=DX
GLY=DY
if DX==0 and DY==0 then
exit=1
end if
end if
if exit==0 then
if DX>0 and DY>0 then
DirW=9
end if
if DX>0 and DY<0 then
DirW=7
end if
if DX<0 and DY>0 then
DirW=3
end if
if DX<0 and DY<0 then
DirW=5
end if
if DX<>0 and DY==0 then
if DX>0 then
DirW=8
else
DirW=4
end if
end if
if DX==0 and DY<>0 then
if DY>0 then
DirW=2
else
DirW=6
end if
end if
Result=Go(DirW)
if Result==0 then
Result=Go(DirW-2)
if Result==0 then
Result=Go(DirW+2)
end if
end if
end if
wend
end sub

sub Go(dir)
var WalkWait=100
var Targeting=''
var X,Y,GLX,GLY
var check=1
var StartingDir=uo.GetDir()
X=uo.GetX()
Y=uo.GetY()
dim MoveKey[12]
MoveKey[0]=34
MoveKey[1]=40
MoveKey[2]=35
MoveKey[3]=37
MoveKey[4]=36
MoveKey[5]=38
MoveKey[6]=33
MoveKey[7]=39
MoveKey[8]=34
MoveKey[9]=40
MoveKey[10]=35
MoveKey[11]=37
dim StartDir[12]
StartDir[0]=2
StartDir[1]=3
StartDir[2]=4
StartDir[3]=5
StartDir[4]=6
StartDir[5]=7
StartDir[6]=0
StartDir[7]=1
StartDir[8]=2
StartDir[9]=3
StartDir[10]=4
StartDir[11]=5
while uo.GetDir()<>StartDir[dir]
uo.Press(MoveKey[dir])
wait(WalkWait)
if uo.GetDir()==StartingDir then
end if
if (Targeting<>'' and uo.GetDistance(Targeting)<2) or (GLX==0 and GLY==0) then
return 1
end if
wend
uo.Press(MoveKey[dir])
wait(WalkWait)
if X==uo.GetX() and Y==uo.GetY() then
uo.Press(MoveKey[dir])
wait(WalkWait)
wait(100)
end if
if X==uo.GetX() and Y==uo.GetY() then
return 0
else
return 1
end if
end sub

Sub looting()
dim Loot[28]
var i
Loot[0]=0x0F16 ; Ametist
Loot[1]=0x0F20 ; Tourmaline
Loot[2]=0x0F26 ; Diamond
Loot[3]=0x0F30 ; Diamond
Loot[4]=0x0F10
Loot[5]=0x0F2D
Loot[6]=0x0F2C
Loot[7]=0x0F28
Loot[8]=0x0F11
Loot[9]=0x0F2A
Loot[10]=0x0F1E
Loot[11]=0x0F22
Loot[12]=0x0F2D
Loot[13]=0x0F30
Loot[14]=0x0F2E
Loot[15]=0x0F2F
Loot[16]=0x0F15
Loot[17]=0x0F17
Loot[18]=0x0EED
Loot[19]=0x0F29
Loot[20]=0x0F1A
Loot[21]=0x0F24
Loot[22]=0x0E76
Loot[23]=0x0F1F
Loot[24]=0x0F2B
Loot[25]=0x0F25
Loot[26]=0x0F23
Loot[27]=0x0F13
for i = 0 to 27
      UO.FindType(Loot[i],'-1', 'lastcorpse')
     if UO.FindCount() > 0 then
      UO.MoveItem('finditem', '-1')
      wait(1000)
   else
   wait(100)
     endif
next
Uo.DeleteJournal()
end sub
Geroy
Posts: 6
Joined: 2006-04-18 08:22:07

Post by Geroy »

Не работает, а именно он не хочет убивать монстра, если сам убью то форенсинг юзает и труп лутит.
я даже "Corpses Auto Open" поставил всёравно не работает.
Работа способность скриптов зависет от версии инжы?
Kynep
Expert!
Posts: 1348
Joined: 2006-02-07 08:51:40
Location: г. Старый Оскол
Contact:

Post by Kynep »

Geroy wrote:Не работает, а именно он не хочет убивать монстра, если сам убью то форенсинг юзает и труп лутит.
я даже "Corpses Auto Open" поставил всёравно не работает.
Работа способность скриптов зависет от версии инжы?


Тип и цвет монстра поставь свои, и включи Track World Items
Geroy
Posts: 6
Joined: 2006-04-18 08:22:07

Post by Geroy »

Ура заработало, причём все :D
kotvsapogah
Posts: 17
Joined: 2006-03-29 14:24:09

Post by kotvsapogah »

А как мне сделать так чтобы чар сам атаковал того кто атакует меня?
(по сигналу из журнала)
Пробовал так:

Code: Select all

sub AutoAttack() 
var msg = "attacking you"
Uo.DeleteJournal(msg) 
while 1
if uo.injournal(msg) then
Uo.warmode(1)
uo.attack('Uo.injournal(msg)')
Uo.DeleteJournal(msg) 
endif
wait(100)
wend
endsub


Не работает :cry:
Miha*
Posts: 14
Joined: 2006-10-23 14:18:19

Post by Miha* »

Kynep wrote:Вот немнога подредактировал скриптик, теперь он лутает с трупа Рипера камушки, золото и иногда попадаются мешочки с разными прикольными вещями типа: оружие, броня с приписками... так же пока ждет следующего Рипера, потихоньку качает Форенсик на трупе убиенного и безсовестно облутанного только что Рипера...
:) Легко редактируется под любых монстриков... Кстати галочка "Corpses Auto Open" ДОЛЖНА СТОЯТЬ ВКЛЮЧЕНА!!!
Пользуйтесь :D (Шард ДРВ)

Code: Select all

sub GrimKill() 

    Var hrsT, hrsC
    hrsT = "0x03CA" # тип зверька
    hrsC = "0x0901" # его цвет
    UO.Set('finddistance', '10')

repeat
Uo.DeleteJournal()
   UO.FindType(hrsT, hrsC, "ground")
       If UO.FindCount() > 0 Then
         UO.WarMode(1)
         walk(0,0,'finditem')
         wait(100)
         UO.Attack('finditem')
         repeat
         wait(100)
         until UO.InJournal('Body of Grim')
       Else
   looting()
   wait(100)
       End If
         UO.WarMode(0)
         UO.WaitTargetObject('lastcorpse')
         UO.UseSkill('Forensic Evaluation')
         wait(3500)
         UO.FindType(hrsT, hrsC, "ground")
until UO.dead()
end sub

Sub Walk(X,Y,Target)
var Targeting=''
var Result
var DX,DY,GLX,GLY
var DirW=0
var exit=0
while exit<>1
if Target<>'' then
Targeting=Target
DX=uo.GetX(Target)-uo.GetX()
DY=uo.GetY(Target)-uo.GetY()
if uo.GetDistance(Target)<2 then
exit=1
end if
else
DX=X-uo.GetX()
DY=Y-uo.GetY()
GLX=DX
GLY=DY
if DX==0 and DY==0 then
exit=1
end if
end if
if exit==0 then
if DX>0 and DY>0 then
DirW=9
end if
if DX>0 and DY<0 then
DirW=7
end if
if DX<0 and DY>0 then
DirW=3
end if
if DX<0 and DY<0 then
DirW=5
end if
if DX<>0 and DY==0 then
if DX>0 then
DirW=8
else
DirW=4
end if
end if
if DX==0 and DY<>0 then
if DY>0 then
DirW=2
else
DirW=6
end if
end if
Result=Go(DirW)
if Result==0 then
Result=Go(DirW-2)
if Result==0 then
Result=Go(DirW+2)
end if
end if
end if
wend
end sub

sub Go(dir)
var WalkWait=100
var Targeting=''
var X,Y,GLX,GLY
var check=1
var StartingDir=uo.GetDir()
X=uo.GetX()
Y=uo.GetY()
dim MoveKey[12]
MoveKey[0]=34
MoveKey[1]=40
MoveKey[2]=35
MoveKey[3]=37
MoveKey[4]=36
MoveKey[5]=38
MoveKey[6]=33
MoveKey[7]=39
MoveKey[8]=34
MoveKey[9]=40
MoveKey[10]=35
MoveKey[11]=37
dim StartDir[12]
StartDir[0]=2
StartDir[1]=3
StartDir[2]=4
StartDir[3]=5
StartDir[4]=6
StartDir[5]=7
StartDir[6]=0
StartDir[7]=1
StartDir[8]=2
StartDir[9]=3
StartDir[10]=4
StartDir[11]=5
while uo.GetDir()<>StartDir[dir]
uo.Press(MoveKey[dir])
wait(WalkWait)
if uo.GetDir()==StartingDir then
end if
if (Targeting<>'' and uo.GetDistance(Targeting)<2) or (GLX==0 and GLY==0) then
return 1
end if
wend
uo.Press(MoveKey[dir])
wait(WalkWait)
if X==uo.GetX() and Y==uo.GetY() then
uo.Press(MoveKey[dir])
wait(WalkWait)
wait(100)
end if
if X==uo.GetX() and Y==uo.GetY() then
return 0
else
return 1
end if
end sub

Sub looting()
dim Loot[28]
var i
Loot[0]=0x0F16 ; Ametist
Loot[1]=0x0F20 ; Tourmaline
Loot[2]=0x0F26 ; Diamond
Loot[3]=0x0F30 ; Diamond
Loot[4]=0x0F10
Loot[5]=0x0F2D
Loot[6]=0x0F2C
Loot[7]=0x0F28
Loot[8]=0x0F11
Loot[9]=0x0F2A
Loot[10]=0x0F1E
Loot[11]=0x0F22
Loot[12]=0x0F2D
Loot[13]=0x0F30
Loot[14]=0x0F2E
Loot[15]=0x0F2F
Loot[16]=0x0F15
Loot[17]=0x0F17
Loot[18]=0x0EED
Loot[19]=0x0F29
Loot[20]=0x0F1A
Loot[21]=0x0F24
Loot[22]=0x0E76
Loot[23]=0x0F1F
Loot[24]=0x0F2B
Loot[25]=0x0F25
Loot[26]=0x0F23
Loot[27]=0x0F13
for i = 0 to 27
      UO.FindType(Loot[i],'-1', 'lastcorpse')
     if UO.FindCount() > 0 then
      UO.MoveItem('finditem', '-1')
      wait(1000)
   else
   wait(100)
     endif
next
Uo.DeleteJournal()
end sub



спасибо за такойхороший скрипт, но правда форенсикс не качаеться, пишит итпо ты находишся в бою.. хотя в скрипте и стоит команда вармод(0), она почему-то не действует.. играю на ДРВ и сижу на томже грим репере. .всё остальное работает нормально, подскажите, чо делать с вармодом? сидесь и самому жать таб? )



ммм, всё, сам нашёл как исправить )) 0 в кавычки взял )) и всё ок, uo.warmode('0') И всё )
Post Reply