Приветствую всех ! Хотел попросить подправить немного скрип . После убийства лича или другого моба он автоматически лутает всё что в нём есть но мне нужно только гп , подскажите где и что нужно изменить?
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
(честно говоря сам в скриптинге не чего не понимаю)
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
"Если бы я что то в этом понимал ... Толстеть ну да , именно по этому я и не могу написать сам этот скрипт так как у меня нету на это время что бы учить писать скрипты и для чего мне его учить что бы написать пару скриптов а потом забыть мне это принципиально не крайняя не жизненно важно, я играю то чеса 3 в неделю , Если было в лом написать так бы и сказали или промолчали а так думаю тогда обойдусь одним гп .... *ладно спасибо за то что помогли*
чтобы это понять ещё час чтобы написать ещё час или больше и т.д. а вам было бы только написать минут 5 или меньше ... я ведь не настаиваю на помощь , если можете напишите нет так нет...
kostya.1991 wrote:чтобы это понять ещё час чтобы написать ещё час или больше и т.д. а вам было бы только написать минут 5 или меньше ... я ведь не настаиваю на помощь , если можете напишите нет так нет...
Верху написал скрипт на лут ставиш итемы какие надо и всё тебе он будет лутать ? В чём проблема ?
я про это и говорю. При наличии готового решения не можем ничего сделать. А прочитал бы урок сказал - "Гдето я уже видел такое! Ааа ептить мне же уже ответили!"
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
Уж если и так не получится то начни с простых скриптов. Всетаки боты на убийство это на любом языке программирования практически высший пилотаж.
окно инжекта, закладка "main"(Главная) должна быть включена галка TWI (Следить за мировыми чтототам) тварюшка видится на дистанции 6 клеток. ХЗ скрипт странный если честно