Yoko

All sides of Injection
It is currently 2025-12-03 03:14:40

All times are UTC+02:00




Post new topic  Reply to topic  [ 6 posts ] 
Author Message
PostPosted: 2006-11-22 04:54:20 
Offline
Junior Expert
User avatar

Joined: 2004-06-24 22:08:56
Posts: 3220
Есть у меня вредная привычка - писать каждый раз новые скрипты -))

Задача: На полу разные инготы, добрать так, чтобы в сумме в бекпаке их было 20-21, и при этом не было ресов, которых меньше 3ёх.

Итак, пишу скрипт на БС, пока проблема с добором ресурсов:
Code:
sub BlackSmithing()
Des.GetResource("0x1BF2", "-1", 20, "backpack", "ground")
while Des.FixResource("0x1BF2", "-1", 3, "backpack")
   Des.GetResource("0x1BF2", "-1", 20, "backpack", "ground")
wend
endsub

; Функция выкидывает кучки в которых слишком мало итемов
; type - тип предмета
; color - цвет предмета
; count - нужное количество
; cont - где проверять
Sub Des.FixResource(type, color, count, cont)
uo.ignorereset()
uo.findtype(type, color, cont)
while uo.findcount()
   if uo.getQuantity("finditem") < count then
      Des.KillItem( uo.getSerial( "finditem" ) )
      return true
   endif
   uo.ignore("finditem")
   uo.findtype(type, color, cont)
wend
return false
endsub

; Функция докладывает нужное количество ресурсов
; type - тип предмета
; color - цвет предмета
; count - нужное количество
; cont - куда класть
; from - где искать
Sub Des.GetResource(type, color, count, cont, from)
var current = Des.GetQuantity(type, color, cont)
if count - current == 1 then
   current = count - 2
endif
if count - current <= 0 then
   return
endif
uo.ignorereset()
uo.findtype(type, color, from)
while uo.findcount()
   if uo.getQuantity( "finditem" ) > 0 then
      uo.moveitem("finditem", str(count-current), cont)
      checklag()
      current = Des.GetQuantity(type, color, cont)
      if count - current == 1 then
         current = count - 2
      endif
      if count - current <= 0 then
         return true
      endif
   endif
   uo.ignore("finditem") ; откуда-то берётся 0xFFFFFFF
   ; и самое странное - лезет invalid object !!!
   uo.findtype(type, color, from)
wend
die( "No resource" )
endsub

; Функция возвращает количество предметов
; type - тип предмета
; color - цвет предмета
; cont - где проверять
Sub Des.GetQuantity(type, color, cont)
var count = 0;
uo.findtype(type, color, cont)
while uo.findcount()
   count = count + uo.getQuantity( "finditem" )
   uo.ignore("finditem")
   uo.findtype(type, color, cont)
wend
uo.ignorereset()
return count
endsub


Где проблема - пометил в скрипте. Спать наверное пора, подскажите кто-нибудь свежую мысль, что не так ?..

Причём проблема вылезает после второго запуска скрипта, видимо инжект в память какую-то лабуду себе записывает..

PS: Пробывал заюзать форгет - не помог.
YokoInjection 505.18 VeNdOr
script.dll из стандартной поставки


Top
   
 Post subject:
PostPosted: 2006-11-22 05:37:02 
Offline
Junior Expert
User avatar

Joined: 2004-06-24 22:08:56
Posts: 3220
аха..

Кажись просто кранты инже -)

Code:
Sub deljournal(msg)
   while uo.injournal(msg)
      uo.setjournalline(uo.injournal(msg)-1,'') ; ошибка - незнаем, что такое msg !!! Бгагага -) Безобразие -(
   wend
endsub

Sub checklag()
   deljournal('ackpack')
   uo.click("backpack")
   repeat
      wait(100)
   until uo.injournal('ackpack')
endsub


Top
   
 Post subject:
PostPosted: 2006-11-22 07:29:58 
Offline
Expert!
User avatar

Joined: 2005-09-14 15:31:58
Posts: 2152
Location: Latvia
:)
viewtopic.php?p=50653#50653
вот возьми как пример... все оказывается намного кароче :roll:

_________________
Уроки языка Injection
Основные команды языка Injection
Yoko Injection Code Sweeper
Drw (2009) скрипты
2017 Начал играть на Uorpg.net


Top
   
 Post subject:
PostPosted: 2006-11-22 16:32:18 
Offline
Expert!
User avatar

Joined: 2005-05-20 20:30:10
Posts: 548
самый короткий скрипт такого рода там последним постом :P

а вообще - примерно это надо?
Code:
var sunduk='0x0000000'

sub regs(Reg,kol)
var i=0, k=0
UO.FindType(Reg,-1,sunduk)
k= kol - uo.count(Reg)
if k>0 and uo.findcount()>0 then
uo.grab(str(k),'finditem')
wait(500+uo.random(3)*100)
checklag()
end if
end sub

_________________
"плагины" для инжекта


Top
   
 Post subject:
PostPosted: 2006-11-22 16:44:28 
Offline
Junior Expert
User avatar

Joined: 2004-06-24 22:08:56
Posts: 3220
NMY wrote:
:)
viewtopic.php?p=50653#50653
вот возьми как пример... все оказывается намного кароче :roll:

Мне не надо коротко, готов поспорить, что тот скрипт не делает всё, что мне надо -)


Top
   
 Post subject:
PostPosted: 2006-11-22 16:46:06 
Offline
Junior Expert
User avatar

Joined: 2004-06-24 22:08:56
Posts: 3220
Mihail wrote:
самый короткий скрипт такого рода там последним постом :P

а вообще - примерно это надо?
Code:
var sunduk='0x0000000'

sub regs(Reg,kol)
var i=0, k=0
UO.FindType(Reg,-1,sunduk)
k= kol - uo.count(Reg)
if k>0 and uo.findcount()>0 then
uo.grab(str(k),'finditem')
wait(500+uo.random(3)*100)
checklag()
end if
end sub


Аха, почти. Надо мой скрипт исправить, а не чужие вталкивать -)

Впринципе, стоило дописать мне процедуру ковки, как проблема себя исчерпала, но теперь мне жутко любопытно, откуда взялась экая проблема -)


Top
   
Display posts from previous:  Sort by  
Post new topic  Reply to topic  [ 6 posts ] 

All times are UTC+02:00


Who is online

Users browsing this forum: No registered users and 3 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
cron
Powered by phpBB® Forum Software © phpBB Limited