Page 1 of 1

kill All

Posted: 2010-03-07 07:17:59
by kostya.1991
Приветствую всех :lol: !
Хотел попросить подправить немного скрип .
После убийства лича или другого моба он автоматически лутает всё что в нём есть но мне нужно только гп , подскажите где и что нужно изменить?

Code: Select all

sub KillThemAll() 
Var Victim=0x03CA
var CuttingTool=0x143E #Чем рЭзать (в данном случае - алебардой)
var n=6
var x=uo.GetX()
var y=uo.GetY()
;uo.print('001')
uo.ignorereset()
;uo.print('002')
;uo.forget('far')
;uo.print('003')
;uo.forget('counters')
;uo.print('004')
uo.SetGlobal('KillCount', 0)
;uo.print('005')

uo.Set('finddistance',str(n))

Repeat
wait(500)
uo.FindType(victim, -1,'ground')
if uo.FindCount() then
wait(100)
if uo.IsNPC('finditem') then
; uo.info('finditem')
while uo.IsNPC('finditem')
if uo.GetDistance('finditem') > 1 then
MoveTo('finditem', 1)
uo.attack('finditem')
end if
wait(100)
wend
uo.SetGlobal('KillCount', val(uo.GetGlobal('KillCount'))+1)
uo.forget('finditem')
; uo.warmode(0)
uo.waittargetobject('lastcorpse')
wait(100)
uo.usetype(CuttingTool)
wait(100)
uo.useobject('lastcorpse')
wait(550)
uo.waittargetobject('lastcorpse')
uo.say(',emptycontainer 550')
while uo.waiting()
wait(100)
wend
; uo.disarm()
n=1
else
uo.Ignore('finditem')
end if
else
n=n+1
if n > 20 then
if (uo.GetX() <> x) or (uo.GetY() <> y) then
MoveToXY(x, y, 1)
end if
n=1
end if
end if
Until uo.Dead()
end sub

sub Stat()
uo.charprint(257, 'Х-ха! Уже '+uo.GetGlobal('KillCount')+' скелетов заготовлено!')
end sub

sub Abs(num)
if num < 0 then
return -num
end if
return num
end sub

sub Sig(num)
if num < 0 then
return -1
else
if num == 0 then
return 0
endif
endif
return 1
end sub

sub MoveToXY(x, y, prec)
var dx, dy
dim Key[9]
Key[0]=37
Key[1]=35
Key[2]=40
Key[3]=36
Key[4]=12
Key[5]=34
Key[6]=38
Key[7]=33
Key[8]=39
dx=x-uo.GetX()
dy=-y+uo.GetY()
while (Abs(dx) > prec) or (Abs(dy) > prec)
dx=x-uo.GetX()
dy=-y+uo.GetY()
uo.Press(Key[(sig(dy)+1)*3+1+sig(dx)])
wait(10)
wend
end sub

sub MoveTo(object, prec)
var dx, dy
dim Key[9]
Key[0]=37
Key[1]=35
Key[2]=40
Key[3]=36
Key[4]=12
Key[5]=34
Key[6]=38
Key[7]=33
Key[8]=39
while uo.GetDistance(object) > prec
dx=uo.GetX(object)-uo.GetX()
dy=-uo.GetY(object)+uo.GetY()
uo.Press(Key[(sig(dy)+1)*3+1+sig(dx)])
wait(10)
wend
end sub

sub ExtendedInfo()

var ObjectSerial
var ObjectGraphics
var ObjectIsNPC
var ObjectNotoriety

UO.Print('Select object to explore')
UO.AddObject('ObjectToExplore')
While UO.Targeting()==2
Wait(50)
WEnd

UO.Click('ObjectToExplore')
Wait(500)

UO.Print('Object name is: '+UO.GetName('ObjectToExplore'))

ObjectSerial = UO.GetSerial('ObjectToExplore')
UO.Print('Object serial is : '+ObjectSerial)
ObjectGraphics = UO.GetGraphic('ObjectToExplore')
UO.Print('Object type is : '+ObjectGraphics)
ObjectIsNPC = UO.IsNPC('ObjectToExplore')
UO.Print('Object IsNPC number is : '+str(ObjectIsNPC))
ObjectNotoriety = UO.GetNotoriety('ObjectToExplore')
UO.Print('Object notoriety is : '+str(ObjectNotoriety))

end sub

(честно говоря сам в скриптинге не чего не понимаю)

Re: kill All

Posted: 2010-03-07 13:41:47
by kostjan
Держи!

Code: Select all

UO.UseObject( 'lastcorpse' )
wait(500)
  uo.FindType('тип денег','-1','lastcorpse')
  while uo.FindCount()
    uo.FindType('тип денег','-1','lastcorpse')   
    uo.moveitem('finditem','-1','backpack')
  wait(500)
  wend

Re: kill All

Posted: 2010-03-07 14:38:39
by kostya.1991
СПАСИБО !!! :mrgreen:

Re: kill All

Posted: 2010-03-09 11:38:34
by kostya.1991
А как добавить ещё туда камни всех видов :?: ?

Re: kill All

Posted: 2010-03-09 13:38:06
by Mirage
почитать уроки скриптинга (про for next сойдет), открыть в блокноте или редакторе скриптов и вписать. :D

Re: kill All

Posted: 2010-03-10 11:53:11
by kostjan
kostya.1991 wrote:А как добавить ещё туда камни всех видов :?: ?


Если что-то не понятно читаем 3тий урок!

Code: Select all

sub LootLastCorpse()
   DIM Nado[20]
   Nado[0]  = '0x0F7A'   ; pearls, black pearls
   Nado[1]  = '0x0F7B'   ; bood moss
   Nado[2]  = '0x0F84'   ; garlic
   Nado[3]  = '0x0F85'   ; ginseng
   Nado[4]  = '0x0F86'   ; mandrake root
   Nado[5]  = '0x0F88'   ; night shade
   Nado[6]  = '0x0F8C'   ; sulphorous ash
   Nado[7]  = '0x0F8D'   ; spiders silk
   Nado[8] = '0x0E34'   ; blank scrolls
   Nado[9]  = '0x0F78'   ; batwings   
   Nado[10] = '0x0F7E'   ; bones
   Nado[11] = '0x0F7D'   ; vials of blood
   Nado[12] = '0x0F80'   ; daemons bones
   Nado[13] = '0x0F81'   ; fertile dirt
   Nado[14] = '0x0F82'   ; dragons blood
   Nado[15] = '0x0F87'   ; eyes of newt
   Nado[16] = '0x0F8E'   ; serpents scales
   Nado[17] = '0x0F90'   ; dead woods
   Nado[18] = '0x0F91'   ; wyrms hearts
   Nado[19] = '0x0F8F'   ; volcanic ash
   ; я специально ограничился только регами и паган регами, вы сами можете расширять массив
   ; на те предметы, которые хотите лутить
   VAR i
   ; Для начала откроем последний труп на экране
   UO.UseObject( 'lastcorpse' )
   wait(1000)
   For i = 0 To 19
      ; Ищем по очереди весь лут в последнем трупе
      UO.FindType( Nado[i], '-1', 'lastcorpse' )
      ; Пока количество найденного больше 0
      While UO.FindCount() > 0
         ; Забираем найденное в пак
         UO.MoveItem( 'finditem' )
         wait( 1000 )
         ; Ищем снова - вдруг в трупе объектов с таким типом больше одного
         UO.FindType( Nado[i], '-1', Cont )
      Wend
   Next
   UO.Print( 'The loot was finished' )
endsub


Code: Select all

; я специально ограничился только регами и паган регами, вы сами можете расширять массив
; на те предметы, которые хотите лутить

Re: kill All

Posted: 2010-03-10 11:54:30
by kostjan
Mirage wrote:почитать уроки скриптинга (про for next сойдет), открыть в блокноте или редакторе скриптов и вписать. :D


Пока носом не ткнёш не поймут! :D И больше вопросов глупых будет!

Re: kill All

Posted: 2010-03-10 15:28:56
by Mirage
надо учить искать а не толстеть.

Re: kill All

Posted: 2010-03-12 13:06:54
by kostya.1991
"Если бы я что то в этом понимал ... Толстеть ну да , именно по этому я и не могу написать сам этот скрипт так как у меня нету на это время что бы учить писать скрипты и для чего мне его учить что бы написать пару скриптов а потом забыть мне это принципиально не крайняя не жизненно важно, я играю то чеса 3 в неделю , Если было в лом написать так бы и сказали или промолчали а так думаю тогда обойдусь одним гп .... :| 8) *ладно спасибо за то что помогли*

Re: kill All

Posted: 2010-03-13 23:17:33
by kostjan
Уделить и прочитать урок займёт минут 20... :idea:

Re: kill All

Posted: 2010-03-14 10:00:30
by kostya.1991
чтобы это понять ещё час чтобы написать ещё час или больше и т.д. а вам было бы только написать минут 5 или меньше ... я ведь не настаиваю на помощь , если можете напишите нет так нет... 8)

Re: kill All

Posted: 2010-03-14 14:18:19
by kostjan
kostya.1991 wrote:чтобы это понять ещё час чтобы написать ещё час или больше и т.д. а вам было бы только написать минут 5 или меньше ... я ведь не настаиваю на помощь , если можете напишите нет так нет... 8)


Верху написал скрипт на лут ставиш итемы какие надо и всё тебе он будет лутать ? В чём проблема ?

Re: kill All

Posted: 2010-03-14 15:03:41
by Mirage
:P я про это и говорю. При наличии готового решения не можем ничего сделать. А прочитал бы урок сказал - "Гдето я уже видел такое! Ааа ептить мне же уже ответили!" :mrgreen:

Re: kill All

Posted: 2010-03-15 14:37:05
by kostya.1991
Я не понимаю куда его вставить)

Re: kill All

Posted: 2010-03-15 18:53:23
by Mirage

Code: Select all

sub KillThemAll()
Var Victim=0x03CA
var CuttingTool=0x143E #Чем рЭзать (в данном случае - алебардой)
var n=6
var x=uo.GetX()
var y=uo.GetY()
;uo.print('001')
uo.ignorereset()
;uo.print('002')
;uo.forget('far')
;uo.print('003')
;uo.forget('counters')
;uo.print('004')
uo.SetGlobal('KillCount', 0)
;uo.print('005')

uo.Set('finddistance',str(n))

Repeat
wait(500)
uo.FindType(victim, -1,'ground')
if uo.FindCount() then
wait(100)
if uo.IsNPC('finditem') then
; uo.info('finditem')
while uo.IsNPC('finditem')
if uo.GetDistance('finditem') > 1 then
MoveTo('finditem', 1)
uo.attack('finditem')
end if
wait(100)
wend
uo.SetGlobal('KillCount', val(uo.GetGlobal('KillCount'))+1)
uo.forget('finditem')
; uo.warmode(0)
uo.waittargetobject('lastcorpse')
wait(100)
uo.usetype(CuttingTool)
wait(100)
uo.useobject('lastcorpse')
wait(550)

# ЕСЛИ БЫ ТЫ ПРОЧИТАЛ УРОКИ ТО ПОНЯЛ БЫ ЧТО СЛЕДУЮЩИЕ 2 КОМАНДЫ И ЕСТЬ ЛУТ!!!
#uo.waittargetobject('lastcorpse')
#uo.say(',emptycontainer 550')
#А ТЕБЕ НАДО СДЕТАТЬ ВОТ ТАК

LootLastCorpse()

while uo.waiting()
wait(100)
wend
; uo.disarm()
n=1
else
uo.Ignore('finditem')
end if
else
n=n+1
if n > 20 then
if (uo.GetX() <> x) or (uo.GetY() <> y) then
MoveToXY(x, y, 1)
end if
n=1
end if
end if
Until uo.Dead()
end sub

sub Stat()
uo.charprint(257, 'Х-ха! Уже '+uo.GetGlobal('KillCount')+' скелетов заготовлено!')
end sub

sub Abs(num)
if num < 0 then
return -num
end if
return num
end sub

sub Sig(num)
if num < 0 then
return -1
else
if num == 0 then
return 0
endif
endif
return 1
end sub

sub MoveToXY(x, y, prec)
var dx, dy
dim Key[9]
Key[0]=37
Key[1]=35
Key[2]=40
Key[3]=36
Key[4]=12
Key[5]=34
Key[6]=38
Key[7]=33
Key[8]=39
dx=x-uo.GetX()
dy=-y+uo.GetY()
while (Abs(dx) > prec) or (Abs(dy) > prec)
dx=x-uo.GetX()
dy=-y+uo.GetY()
uo.Press(Key[(sig(dy)+1)*3+1+sig(dx)])
wait(10)
wend
end sub

sub MoveTo(object, prec)
var dx, dy
dim Key[9]
Key[0]=37
Key[1]=35
Key[2]=40
Key[3]=36
Key[4]=12
Key[5]=34
Key[6]=38
Key[7]=33
Key[8]=39
while uo.GetDistance(object) > prec
dx=uo.GetX(object)-uo.GetX()
dy=-uo.GetY(object)+uo.GetY()
uo.Press(Key[(sig(dy)+1)*3+1+sig(dx)])
wait(10)
wend
end sub

sub ExtendedInfo()

var ObjectSerial
var ObjectGraphics
var ObjectIsNPC
var ObjectNotoriety

UO.Print('Select object to explore')
UO.AddObject('ObjectToExplore')
While UO.Targeting()==2
Wait(50)
WEnd

UO.Click('ObjectToExplore')
Wait(500)

UO.Print('Object name is: '+UO.GetName('ObjectToExplore'))

ObjectSerial = UO.GetSerial('ObjectToExplore')
UO.Print('Object serial is : '+ObjectSerial)
ObjectGraphics = UO.GetGraphic('ObjectToExplore')
UO.Print('Object type is : '+ObjectGraphics)
ObjectIsNPC = UO.IsNPC('ObjectToExplore')
UO.Print('Object IsNPC number is : '+str(ObjectIsNPC))
ObjectNotoriety = UO.GetNotoriety('ObjectToExplore')
UO.Print('Object notoriety is : '+str(ObjectNotoriety))

end sub

# А НИЖЕ ВПИСАТЬ ТИПЫ ТРЕБУЕМЫХ ПРЕДМЕТОВ

sub LootLastCorpse()
   DIM Nado[20]
   Nado[0]  = '0x0F7A'   ; pearls, black pearls
   Nado[1]  = '0x0F7B'   ; bood moss
   Nado[2]  = '0x0F84'   ; garlic
   Nado[3]  = '0x0F85'   ; ginseng
   Nado[4]  = '0x0F86'   ; mandrake root
   Nado[5]  = '0x0F88'   ; night shade
   Nado[6]  = '0x0F8C'   ; sulphorous ash
   Nado[7]  = '0x0F8D'   ; spiders silk
   Nado[8] = '0x0E34'   ; blank scrolls
   Nado[9]  = '0x0F78'   ; batwings   
   Nado[10] = '0x0F7E'   ; bones
   Nado[11] = '0x0F7D'   ; vials of blood
   Nado[12] = '0x0F80'   ; daemons bones
   Nado[13] = '0x0F81'   ; fertile dirt
   Nado[14] = '0x0F82'   ; dragons blood
   Nado[15] = '0x0F87'   ; eyes of newt
   Nado[16] = '0x0F8E'   ; serpents scales
   Nado[17] = '0x0F90'   ; dead woods
   Nado[18] = '0x0F91'   ; wyrms hearts
   Nado[19] = '0x0F8F'   ; volcanic ash
   ; я специально ограничился только регами и паган регами, вы сами можете расширять массив
   ; на те предметы, которые хотите лутить
   VAR i
   ; Для начала откроем последний труп на экране
   UO.UseObject( 'lastcorpse' )
   wait(1000)
   For i = 0 To 19
      ; Ищем по очереди весь лут в последнем трупе
      UO.FindType( Nado[i], '-1', 'lastcorpse' )
      ; Пока количество найденного больше 0
      While UO.FindCount() > 0
         ; Забираем найденное в пак
         UO.MoveItem( 'finditem' )
         wait( 1000 )
         ; Ищем снова - вдруг в трупе объектов с таким типом больше одного
         UO.FindType( Nado[i], '-1', Cont )
      Wend
   Next
   UO.Print( 'The loot was finished' )
endsub

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

Re: kill All

Posted: 2010-06-08 22:22:18
by rus_lan
народ а у меня этот скрипт вообще не работает... пишет нот фаунд и все( не важно есть кто рядом или нет.
как его запустить?

Re: kill All

Posted: 2010-06-08 23:50:51
by Mirage
окно инжекта, закладка "main"(Главная) должна быть включена галка TWI (Следить за мировыми чтототам)
тварюшка видится на дистанции 6 клеток. ХЗ скрипт странный если честно :)

Re: kill All

Posted: 2010-06-09 10:38:47
by rus_lan
DRW (2009) by Dark Enemy там есть нормальный скрипт на эту тему.... хотя тоже относительно)))