Добрый день!
Нужна маленькая помощь, давно не скриптил и не могу разобраться.
Грубо есть журнал, у меня в журнале постоянно появляются строки, типа:
"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().
Нуждаюсь в помощи по написанию.) Заодно вспомню.
Взять кусок из строки в журнале.
Moderators: Murderator+, Murderator
Re: Взять кусок из строки в журнале.
вот такой кусок
минусы - в таком виде он будет реагировать и на 6 и на 456 и на 654 (но в последнем случае напишет 4 так как берет 1 число справа).
Есть еще один вариант только он дюже секретный
PS ищи скупку или мининги по рунам - там есть перезарядка рунок при определенном значении.
Code: Select all
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 число справа).
Есть еще один вариант только он дюже секретный

PS ищи скупку или мининги по рунам - там есть перезарядка рунок при определенном значении.
Re: Взять кусок из строки в журнале.
Code: Select all
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.
Re: Взять кусок из строки в журнале.
Code: Select all
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
правда это считывает инфу с окошка гампа но принцип похожий.
Text: ____________
0] Владелец Cecmpa
1] Товаров на продажу: 36
2] 131 Ancient Logs
3] 4000
hozjain - 0 строка справа от символа ц_ = Cecmpa
KolTov - 1 строка справа от символа :_ = 36
Re: Взять кусок из строки в журнале.
Vse sdelali sps )