Yoko

All sides of Injection
It is currently 2024-03-28 12:54:22

All times are UTC+02:00




Post new topic  Reply to topic  [ 5 posts ] 
Author Message
PostPosted: 2014-06-27 17:39:28 
Offline

Joined: 2005-03-22 14:28:36
Posts: 6
Добрый день!

Нужна маленькая помощь, давно не скриптил и не могу разобраться.
Грубо есть журнал, у меня в журнале постоянно появляются строки, типа:
"Zergushka's mode - 6"
"Zergushka's mode - 6"
"Zergushka's mode - 6"
"Zergushka's mode - 5"
"Zergushka's mode - 5"
"Zergushka's mode - 5"
"Zergushka's mode - 4"

Мне нужно брать из журнала строку с цифрой 6.
Затем добираться текстовым поиском до цифры 6.
Затем цифру 6 (изначально она как текст) переваривать в числовое значение 6.
Затем, сравнивать цифру 6, взятую, со следующей строкой мода, с цифрой опять 6.
Как только цифра изменится на -1 цифру, с 6 на 5 или с 5 на 4, мне надо делать скрипт допустим abvgd().

Нуждаюсь в помощи по написанию.) Заодно вспомню.


Top
   
PostPosted: 2014-06-27 18:03:26 
Offline
User avatar

Joined: 2009-05-28 09:58:28
Posts: 2802
Location: Иваново
вот такой кусок

Code:
sub main()
 var nomer, line
   UO.DeleteJournal()
   while not (uo.InJournal('6'))
      wait(100)
   wend
   line=UO.injournal('6')
   nomer=str(val(Trim(right(UO.Journal(line-1),1))))
   uo.print(nomer)
end sub


минусы - в таком виде он будет реагировать и на 6 и на 456 и на 654 (но в последнем случае напишет 4 так как берет 1 число справа).

Есть еще один вариант только он дюже секретный :shock:

PS ищи скупку или мининги по рунам - там есть перезарядка рунок при определенном значении.

_________________
Image
YokoInjection CodeSweeper
Ошибка "Unhandled exception in parser"
Стрелялка для олдов.


Top
   
PostPosted: 2014-06-29 11:25:20 
Offline

Joined: 2005-03-22 14:28:36
Posts: 6
Code:
sub spisok(vendor,sector)

dim m[23]
m[1]  = 'Electrum'
m[2]  = 'Snow'
m[3]  = 'Silver'
m[4]  = 'Sky'
m[5]  = 'Steel'
m[6]  = 'Monk`s'
m[7]  = 'Blood'
m[8]  = 'Bronze'
m[9]  = 'Gold'
m[10] = 'Scorpion'
m[11] = 'Fire'
m[12] = 'Red Devil`s'
m[13] = 'Brilliance'
m[14] = 'Water'
m[15] = 'Crystal'
m[16] = 'Black'
m[17] = 'Crusader`s'
m[18] = 'Assasin'
m[19] = 'Druid`s'
m[20] = 'Ice'
m[21] = 'Acid'
m[22] = 'Copper'
m[23] = 'Goblin`s'

var i,j,k,s=0, KolTov
var X,Y,kol,tovar,cena,name,hozjain
uo.warmode(0)
UO.RClick(Xclick,Yclick)
      CheckLag()
      wait(200)
uo.useobject(vendor)
      CheckLag()
      wait(200)
uo.useobject(vendor)
      CheckLag()
      wait(200)
uo.deletejournal()
   UO.LDblClick(Xclick,Yclick)
   CheckLag()
   wait(200)
   if uo.injournal('данный момент') || uo.injournal('open profile') || uo.LastGump('gumpid')<>gumptype then
      CheckLag()
      wait(200)
      uo.ignore(vendor)
      return 0
   end if
   if uo.LastGump('gumpid')<>gumptype then
      UO.RClick(400,300)
      CheckLag()
      wait(200)
   end if
while not f.eof()
   s=safe call f.ReadLn()   
wend
X=str(uo.getx(vendor))
Y=str(uo.gety(vendor))
name=uo.GetName(vendor)
hozjain=uo.LastGump('text',0)
for i=0 to len(hozjain)
   if mid(hozjain,i,1)=='ц' then
      hozjain=mid(hozjain,i+2,len(hozjain)-(i+2))
   end if
next
KolTov=uo.LastGump('text',1)
for i=0 to len(KolTov)
   if mid(KolTov,i,1)==':' then
      KolTov=val(mid(KolTov,i+2,len(KolTov)-(i+2)))
   end if
next
if KolTov==0 then
   UO.LDblClick(Xclick,Yclick)
   CheckLag()
   s=safe call f.writeln('товара нет - '+m[sector]+' - '+hozjain+'`s Vendor  -  '+name+'('+X+','+Y+')')
   CheckLag()
   wait(200)
   uo.ignore(vendor)
   return 0 
end if
#*****************************
while true
   for j=2 to 21
      k=uo.LastGump('text',j)   
      if k=='N/A' then
         UO.LDblClick(Xclick,Yclick)
         CheckLag()
         wait(200)
         uo.ignore(vendor)
         return 0 
      end if     
      for i=0 to len(k)
         if mid(k,i,4)==' за ' || mid(k,i,4)==' по ' then
            kol=kolichestvo(k)
            if kol==0 then
               tovar=mid(k,0,i)
               kol='1'
            else
               tovar=mid(k,kol+1,i-(kol+1))
               kol=mid(k,0,kol)
            end if
            cena=mid(k,i+4,len(k)-(i+4))             
         end if
      next
      for i=0 to len(cena)
         if mid(cena,i,6)==' монет' then
            cena=mid(cena,0,i)
         end if
      next
      #*********************************
            s=safe call f.writeln(tovar+' - '+cena+'gp - '+kol+'  -  '+name+'('+X+','+Y+') - '+hozjain+'`s - '+m[sector]+'')
   next
   KolTov=KolTov-20
   if KolTov<=0 then
      UO.LDblClick(Xclick,Yclick)
      CheckLag()
      wait(200)
      uo.ignore(vendor)
      return 0 
   end if
   UO.LClick(172,146)
   CheckLag()
   wait(100)
wend
end sub


Ну и + сюда ходилка и некоторые модули на поиск, координаты и так далее.
Есть вот такой скрипт, году в 2008 писал его сам с гирником на пару под Антарес, на сбор всей инфы о рынке (обход всех вендоров и перелистывание всех товаров) в Excel табилицу с сортировкой по секторам, ценам, вещам, их количестве, хозяине вендора, нике вендора и так далее. Он идеально отличал все нюансы текста, всех знаков и так далее. Его мы через гампы делали, а тут надо с журналом работать. А с журналом у меня проблемы. Может в нашем старом скрипте есть твой "дюже секретный" вариант?)) Но я не силен в функциях по журналу (

Помогай ещё ! :)

Т.е. грубо это будет один из под_скриптов в большом циклическом скрипте
Цикл предназначен для условного ожидания, пока цифра изменится, когда цифра поменялась на -1, цифра может быть в интервале от 10 до 1, т.е. она всё время падает, сначала 10, потом через какое-то время становится 9. Но через какое, не факт, может и 2 секунды, а может и минута. Вот как только она поменялась, мне надо делать действие.


Last edited by Zergushka on 2014-06-29 13:18:50, edited 1 time in total.

Top
   
PostPosted: 2014-06-29 12:46:40 
Offline
User avatar

Joined: 2009-05-28 09:58:28
Posts: 2802
Location: Иваново
Code:
hozjain=uo.LastGump('text',0)
for i=0 to len(hozjain)
   if mid(hozjain,i,1)=='ц' then
      hozjain=mid(hozjain,i+2,len(hozjain)-(i+2))
   end if
next
KolTov=uo.LastGump('text',1)
for i=0 to len(KolTov)
   if mid(KolTov,i,1)==':' then
      KolTov=val(mid(KolTov,i+2,len(KolTov)-(i+2)))
   end if
next


правда это считывает инфу с окошка гампа но принцип похожий.
Quote:
Text: ____________
0] Владелец Cecmpa
1] Товаров на продажу: 36
2] 131 Ancient Logs
3] 4000


hozjain - 0 строка справа от символа ц_ = Cecmpa
KolTov - 1 строка справа от символа :_ = 36

_________________
Image
YokoInjection CodeSweeper
Ошибка "Unhandled exception in parser"
Стрелялка для олдов.


Top
   
PostPosted: 2014-06-29 14:30:10 
Offline

Joined: 2005-03-22 14:28:36
Posts: 6
Vse sdelali sps )


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

All times are UTC+02:00


Who is online

Users browsing this forum: No registered users and 21 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