Page 2 of 3
Posted: 2008-03-11 00:16:52
by Виталь
Инжект: 712.28
Клиент: 203
Шард: DrW
> правда ли на этом шарде можно копать квадрат 9х9 вокруг чара
Правда. От 4,4, до -4,-4.
Когда достать не может (сталагмит или нет тайла), пишет "too far".
Он просто не реагирует на сообщение о результате. Начинает копать тайл, выкапывает (или не выкапывает) и стоит тупит, пока я не копну еще раз, чтобы отослать результат.
Мой единственный вариант — это лаги (инвизку в сейфе он тоже иногда не находит), потому как коннект последние несколько дней в полной заднице из-за помехов на линии, а до этого проблемы не наблюдалось. Но дело в том, что скрипт я закончил именно в период хренового инета, поэтому уверенно рассуждать не могу.
Posted: 2008-03-11 00:36:50
by Grin
инжект не может не увидить сообщение, если оно появилось в журнале уо клиента.
Posted: 2008-03-11 01:04:24
by Виталь
Grin wrote:инжект не может не увидить сообщение, если оно появилось в журнале уо клиента.
А какие еще варианты? Ну может он к лопате не обращается.
Но вообще ничего не пишется и скрипты в состоянии запущенности.
О, блин. Забыл про контроль опасности, который запускается параллельно.
Может он и стирает журнал? о_о
Code: Select all
sub safecontrol()
var danger
while 1
uo.deletejournal()
while not uo.InJournal(':')
wait(200)
wend
if uo.InJournal('You loosen') then
wait(200)
else
danger=uo.GetNotoriety(uo.JournalSerial(0))
if RecallDetect==1 then
if uo.InJournal("revealed") then
checklag()
uo.snap()
danger()
uo.textopen()
uo.textprint("Раздетектили!")
endif
endif
if RecallElement==1 then
if uo.InJournal("Element") then
checklag()
uo.snap()
danger()
uo.textopen()
uo.textprint("Выкопал элемента!")
endif
endif
if RecallPhysicalDanger==1 then
if uo.InJournal('attacking you') then
checklag()
uo.snap()
danger()
uo.textopen()
uo.textprint("Кто-то атакует!")
endif
endif
if RecallSeenDanger==1 then
if danger==6 and uo.JournalSerial(0)<>uo.GetSerial() then
checklag()
uo.snap()
danger()
uo.textopen()
uo.textprint("В шахте оказался ПК - "+UO.GetName(UO.JournalSerial(0)))
endif
if danger==5 and uo.JournalSerial(0)<>uo.GetSerial() then
checklag()
uo.snap()
danger()
uo.textopen()
uo.textprint("В шахте вражеский гильдиец - "+UO.GetName(UO.JournalSerial(0)))
endif
if danger==4 and uo.JournalSerial(0)<>uo.GetSerial() then
checklag()
uo.snap()
danger()
uo.textopen()
uo.textprint("В шахте оказался криминал - "+UO.GetName(UO.JournalSerial(0)))
endif
endif
if RecallBluePlayer==1 then
if danger==1 and uo.JournalSerial(0)<>uo.GetSerial() then
checklag()
uo.print('синий')
uo.snap()
danger()
uo.textopen()
uo.textprint("В шахте оказался синий - "+UO.GetName(UO.JournalSerial(0)))
endif
endif
endif
wend
end sub
Posted: 2008-03-11 01:07:06
by Виталь
Раз уж дело дошло до контроля опасности, помогите, пожалуйста, дописать в него время событий. Я пытался вытащить из реконнекта, но не очень понял, как это работает xD
А еще ники не записываются ._.
Posted: 2008-03-11 01:31:55
by korzh
Code: Select all
...
while 1
uo.deletejournal()
while not uo.InJournal(':')
wait(200)
wend
...
Обрати внимание на то, что все сообщения из журнала типа yoo cant see... no ore..revealed.. и прочий системный флуд, в журнале инжекта отображается как
Имя_персонажа: ляляля...Cоответсвенно благодаря скрипту safecontrol() у тебя каждые ~0.2секунды чиститься журнал, вне зависимости от того копает ли чар, пряечтся и тд. Испольуй deljournal() и пусть у тебя голова не болит

На тему времени и даты, можно например так:
Code: Select all
sub now()
return getDate( '-' ) + ' ' + getTime( ':' )
endsub
Sub getDate( n )
var d = str( uo.date() )
if strlen( d ) == 5 then
d = "0" + d
endif
return right( d, 2 ) + n + mid( d, 2, 2 ) + n + left( d, 2 )
endsub
Sub getTime( n )
var t = str( uo.time() )
if strlen( t ) == 5 then
t = "0" + t
endif
return left( t, 2 ) + n + mid( t, 2, 2 ) + n + right( t, 2 )
endsub
Используешь так:
Code: Select all
sub test()
uo.print( now() )
endsub
Posted: 2008-03-11 01:41:29
by Виталь
korzh wrote:Cоответсвенно благодаря скрипту safecontrol() у тебя каждые ~0.2секунды чиститься журнал, вне зависимости от того копает ли чар, пряечтся и тд. Испольуй deljournal() и пусть у тебя голова не болит

Я так понял, сэйфконтрол будет работать с отдельным журналом, не мешая копанию? Очень хорошо, открыл для себя функцию
Спасибо! Кстати, пишется она без "uo."?
upd: а, туплю. Конечно, с "уо".
Posted: 2008-03-11 01:45:41
by Виталь
korzh wrote:На тему времени и даты, можно например так:
Code: Select all
sub now()
return getDate( '-' ) + ' ' + getTime( ':' )
endsub
Sub getDate( n )
var d = str( uo.date() )
if strlen( d ) == 5 then
d = "0" + d
endif
return right( d, 2 ) + n + mid( d, 2, 2 ) + n + left( d, 2 )
endsub
Sub getTime( n )
var t = str( uo.time() )
if strlen( t ) == 5 then
t = "0" + t
endif
return left( t, 2 ) + n + mid( t, 2, 2 ) + n + right( t, 2 )
endsub
Используешь так:
Code: Select all
sub test()
uo.print( now() )
endsub
Ое! Спасибо большое!
К сожалению, сейчас не могу опробовать, но как опробую, обязательно отпишусь! Чую, этим все не закончится

Posted: 2008-03-11 01:52:55
by korzh
Виталь wrote:korzh wrote:Cоответсвенно благодаря скрипту safecontrol() у тебя каждые ~0.2секунды чиститься журнал, вне зависимости от того копает ли чар, пряечтся и тд. Испольуй deljournal() и пусть у тебя голова не болит

Я так понял, сэйфконтрол будет работать с отдельным журналом, не мешая копанию? Очень хорошо, открыл для себя функцию
Спасибо! Кстати, пишется она без "uo."?
upd: а, туплю. Конечно, с "уо".
Нет, не совсем

Она будет удалять все строки журнала содержащие определенные сообщения.
сама функция:
Code: Select all
sub deljournal( msg )
while uo.injournal( msg )
uo.setjournalline( uo.injournal(msg) - 1, "" )
wend
endsub
Используешь так:
Code: Select all
sub test()
deljournal( 'текст' )
endsub
sub test2()
if uo.injournal( 'текст' ) then
deljournal( 'текст' )
endif
endsub
Posted: 2008-03-11 01:58:05
by Виталь
korzh wrote:Нет, не совсем

Она будет удалять все строки журнала содержащие определенные сообщения.
Вот оно что! И что же мне удалять в моем случае? ._.
Ведь если удалять двоеточие, скрипт все равно слетать будет.
Posted: 2008-03-11 02:06:58
by korzh
Виталь wrote:korzh wrote:Нет, не совсем

Она будет удалять все строки журнала содержащие определенные сообщения.
Вот оно что! И что же мне удалять в моем случае? ._.
Ведь если удалять двоеточие, скрипт все равно слетать будет.
Ну во первых удалять сообещния
revealed, Element, attacking you
Во вторых не чень понимаю зачем по двоеточию проверять?
Code: Select all
...
while 1
uo.deletejournal()
while (not uo.InJournal('revealed') || not uo.Injournal('Element') || not .... и так все "опасные" сообщения
wait(200)
wend
....
Posted: 2008-03-11 02:15:13
by Виталь
Потому что мне нужно проверять по нику, который в журнале появляется после слов «You see:». Однако на сообщение «You see:», в отличие от одинокого двоеточия, сэйфконтрол мистическим образом не реагирует. Проверял не один раз.
Posted: 2008-03-11 02:41:44
by korzh
Виталь wrote:Потому что мне нужно проверять по нику, который в журнале появляется после слов «You see:». Однако на сообщение «You see:», в отличие от одинокого двоеточия, сэйфконтрол мистическим образом не реагирует. Проверял не один раз.
Чтото не очень понял..
Posted: 2008-03-11 03:12:17
by Grin
отладить скрипт, не представляет никакой сложности на месте...
не можешь понять что происходит... определись хотяб с местом...
за принтуй каждую строчку...
Posted: 2008-03-11 07:47:26
by Виталь
korzh wrote:Чтото не очень понял..
Ну проверка появления опасности
Когда пк приходит.
Posted: 2008-03-11 07:50:55
by Виталь
Grin wrote:отладить скрипт, не представляет никакой сложности на месте...
не можешь понять что происходит... определись хотяб с местом...
за принтуй каждую строчку...
На элементалей реагирует, на пк — нет.
Не раз проверялось.
Обрезаешь до двоеточия — ведет себя, как надо.
Posted: 2008-03-11 12:26:31
by Grin
потому что ты гадаешь на кофейной гуще...
Posted: 2008-03-11 13:23:30
by Виталь
Ладно, что спорить. Проверю еще раз. Спасибо за это.
А с вытягиванием ников поможете? А то записал только один раз — и то синего майнера в пк-шники.
Posted: 2008-03-11 21:51:24
by Edred
Виталь wrote:О, блин. Забыл про контроль опасности, который запускается параллельно.
Может он и стирает журнал? о_о
Вот классический вариант для объяснения, что "телепаты в отпуске". Если уж ты забыл, то кто, интересно, может это помнить? Естественно, этот скрипт и трет тебе журнал. Более того, и мининг трет журнал для этого скрипта! Так что проверка на опасность весьма дырявая... Запомни: журнал у инжекта
один на все скрипты. Решение - использование функции удаления конкретных строк из журнала. Что тебе и посоветовали.
Виталь wrote:Потому что мне нужно проверять по нику, который в журнале появляется после слов «You see:». Однако на сообщение «You see:», в отличие от одинокого двоеточия, сэйфконтрол мистическим образом не реагирует. Проверял не один раз.
Ну раз есть желание гробить время и проверять - флаг в руки. А надо было просто почитать форум, здесь неоднократно объяснялось, что фраза "You see:" добавляется
клиентом УО в журнал этого самого клиента. А не в журнал инжекта. А инжект такую фразу не добавляет. А значит и шансов ее увидеть в журнале инжекта нет никаких.
Posted: 2008-03-11 22:04:34
by Виталь
Edred wrote:фраза "You see:" добавляется клиентом УО в журнал этого самого клиента. А не в журнал инжекта. А инжект такую фразу не добавляет. А значит и шансов ее увидеть в журнале инжекта нет никаких.
Ну заебца, так что мне все-таки тереть?

Posted: 2008-03-11 22:16:34
by Edred
Как, как... Молча.
В общем, так. Идешь в раздел со скриптами, там есть прилепленный топик "Наследство от Edred-а". Там есть мой скрипт на майнинг. В нем есть соответствующая аналогичная процедура, которая тоже запускается параллельно (автоматически, естественно). И отслеживает врагов, элемов и прочее. Разбираешь по косточкам и делаешь. Что непонятно - спрашиваешь.