Raketchik wrote:Спасибо, твой скрипт единственный, который правильно работает
ХЗ у мя на ДРВ и мой работает норм ))
У меня аттачит одного врага, но не повторяет этого на реснувшемся.
ОНИ РАБОТАЮТ
а можно по подробнее? что тут такого удивительного?
А у меня повторяет, может ты вместо Типа написал ID или у тя инжа другой версии? Только что десяток лучников повалил за бритой и норм, ни разу не сбился
sub autoattack() sub mob repeat wait(500) If UO.InJournal('is attacking you') then mob=uo.getserial(UO.JournalSerial(UO.InJournal('is attacking you')-1)) uo.attack(mob) endif UO.DeleteJournal('is attacking you') Until not UO.Dead()
sub autoattack() sub mob repeat wait(500) If UO.InJournal('is attacking you') then mob=uo.getserial(UO.JournalSerial(UO.InJournal('is attacking you')-1)) uo.attack(mob) endif UO.DeleteJournal('is attacking you') Until not UO.Dead()
пару недочетов: 1. Перед атакой неплохо бы проверить , чтоб моб не равнялся нулю. 2. Делит журнала нада в ифе писать, а не после(да и команда параметров кажись не имеет) :
sub autoattack() var mob repeat If UO.InJournal('is attacking you') then mob=uo.getserial(UO.JournalSerial(UO.InJournal('is attacking you')-1)) UO.DeleteJournal() if mob<>0 and mob<>uo.getserial('self') then uo.attack(mob) wait(1000) end if endif wait(500) Until not UO.Dead()
sub autoattack() var mob repeat If UO.InJournal('is attacking you') then mob=uo.getserial(UO.JournalSerial(UO.InJournal('is attacking you')-1)) UO.DeleteJournal() if mob<>"0x00000000" and mob<>uo.getserial('self') then uo.attack(mob) wait(1000) end if endif wait(500) Until UO.Dead()
sub autoattack() var mob repeat If UO.InJournal('is attacking you') then mob=uo.getserial(UO.JournalSerial(UO.InJournal('is attacking you')-1)) UO.DeleteJournal() if mob<>"0x00000000" and mob<>uo.getserial('self') then uo.attack(mob) wait(1000) end if endif wait(500) Until UO.Dead() end sub
На дрв на скок я понял, вообще в последнем скрипте, который отпостили, условие того что скрипт может вернуть твой ID а не моба предусмотрено.
Заз на ДРВ, то хз что у него не пашет...
Нащёт моего предыдущего поста, на ранУО когда тебя атачит чел то в журнале получается строка (мой ник будит ником того кого атчат):
SLAK: Sanch is attacking you.
И если проверить через джорнал сериал, то месага вернёт ИД Слака, хоть бьёт его Санч А проверка в скрипте : не я ли сказал, из-за того, что на некоторых шардах есть киллселф, попробуй прописать : ,attack self .
Var hrsT, hrsC hrsT = "0x03CA" # тип зверька hrsC = "0x0901" # его цвет
repeat
UO.FindType(hrsT, hrsC, "ground") If UO.FindCount() > 0 Then UO.WarMode(1) walk(0,0,'finditem') wait(100) UO.Attack('finditem') Else End If wait(10000) 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
Церковь совсем рядом, но дорога уж очень скользкая.
Кабак далеко, но мы будем шагать очень внимательно.
Var hrsT, hrsC hrsT = "0x03CA" # тип зверька hrsC = "0x0901" # его цвет
repeat
UO.FindType(hrsT, hrsC, "ground") If UO.FindCount() > 0 Then UO.WarMode(1) walk(0,0,'finditem') wait(100) UO.Attack('finditem') Else End If wait(10000) 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 ...