Page 3 of 3

Posted: 2006-04-25 07:48:10
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

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

Posted: 2006-04-26 13:57:32
by Kynep
Geroy wrote:Не работает, а именно он не хочет убивать монстра, если сам убью то форенсинг юзает и труп лутит.
я даже "Corpses Auto Open" поставил всёравно не работает.
Работа способность скриптов зависет от версии инжы?
Тип и цвет монстра поставь свои, и включи Track World Items

Posted: 2006-04-27 05:51:48
by Geroy
Ура заработало, причём все :D

Posted: 2006-05-01 13:54:45
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:

Posted: 2009-11-29 03:34:23
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') И всё )