Page 1 of 1

какой командой узнать ID сообщений сервера

Posted: 2008-12-08 21:18:59
by ychenik
сабж, у моего сервера айди сообщений не стандартные 0x01010101

Posted: 2008-12-08 22:15:39
by Edikus
имееш в виду clicloq?

если да тогда:

,showjournal 10

Posted: 2008-12-08 22:53:16
by ychenik
нет мне нужна команда либо на проверку айди сообщений сервера либо на проверку цвета сообщений сервера. я уже как тока не пробывал все не то)

Posted: 2008-12-08 22:54:05
by ychenik
а та команда которую ты написал просто открывает журнал инжекта.

Posted: 2008-12-08 23:28:26
by GAUHAR
Это?
http://yoko.netroof.net/help/help.php?l ... rnalSerial
Экспериментальным путем узнав ID сообщений своего сервера, сравниваешь его с тем с чем тебе надо.

Posted: 2008-12-09 00:02:38
by ychenik
эт я нашел, ток как это применить не могу понять) я когда захожу в уо мне пишет например Welcome to Ultima Online, вот как мне узнать айди этого сообщения?

Posted: 2008-12-09 02:34:54
by GAUHAR

Code: Select all

sub test()
   VAR ServerMsg = "Welcome to Ultima Online"
   VAR idServerMsg = UO.JournalSerial(UO.InJournal(ServerMsg)-1)
   VAR clrServerMsg = UO.JournalColor(UO.InJournal(ServerMsg)-1)
   UO.Print("ID сообщения сервера: " + idServerMsg)
   UO.Print("COLOR сообщения сервера: " + clrServerMsg)
endsub

Примерно так.

Posted: 2008-12-10 12:32:52
by ychenik
хмм... а может быть так что айди сообщений сервера 0x00000000? наверное нет) а скрипт который ты написал отказывается определять айди определяет только цвет.

Posted: 2008-12-10 14:18:16
by Destruction
ychenik wrote:хмм... а может быть так что айди сообщений сервера 0x00000000? наверное нет) а скрипт который ты написал отказывается определять айди определяет только цвет.

Может. Скрипт правильный.

Posted: 2008-12-10 16:08:43
by ychenik
хмм...) ну не знаю, мне кажется просто что это глюк, какой обыно бывает в инжекте, например я пишу ,addobject KASTRULA кликаю на эту кастрюлю и мне пишет что айди 0x000000 хотя при повторном указании того же обьекта кастрюли выдает правильный айди. есть ли какято возможность проверить это другим способом?

Posted: 2008-12-10 16:16:48
by ychenik
допустим у меня вот такой скрипт

Code: Select all

sub chto-to()
VAR idServerMsg=0x00000000
repeat
if uo.injournal('You are now under protection of city guards')=="idServerMsg" then
UO.say('Ура я спасен!')
wait(1400)
endif
uo.deletejournal()
wait(200)
until uo.life<5
end sub



при таком айди сообщений скрипт не работает, хотя без вписания айди все нормально. поэтому я все таки склонен к тому, что скрипт проверки выдал неверный айди. Кто что может подсказать по этому поводу?

Posted: 2008-12-10 19:26:06
by GAUHAR
почувству разницу между тем что ты написал

Code: Select all

if uo.injournal('You are now under protection of city guards')=="idServerMsg" then

м тем как должно быть

Code: Select all

if UO.JournalSerial(uo.injournal('You are now under protection of city guards')-1) == idServerMsg then

кстати у меня тоже ID серверных сообщений 0х00000000, меняется только цвет, тестировал этим:

Code: Select all

sub test()
   var i
   uo.textclear()
   for i=10 to 0 step -1
      uo.textprint(uo.JournalSerial(i)+"| "+uo.JournalColor(i)+"| "+uo.Journal(i))
   next
   uo.textopen()
end sub

Posted: 2008-12-11 13:46:39
by ychenik
заменил свою строчку в скрипте на твою

Code: Select all

 if UO.JournalSerial(uo.injournal('You are now under protection of city guards')-1) == idServerMsg then


но скрипт также не работает, точнее ничего не происходит, пробовал также делать проверку не на айди а на цвет сообщения все равно тишина, есть ли еще какие-то варианты?

Posted: 2008-12-11 18:46:02
by GAUHAR

Code: Select all

sub chto_to()
   VAR idServerMsg = '0x00000000'
   VAR TextMsg = "You are now under the protection of the city guards"
   UO.DeleteJournal()
   repeat
      if UO.InJournal(TextMsg) then
         if UO.JournalSerial(UO.InJournal(TextMsg)-1) == idServerMsg then
            UO.Say('Ура я спасен!')
          else
            UO.Say("Со мной сыграли злую щутку.")
         endif
         UO.DeleteJournal()
      endif
      wait(200)
   until UO.Life < 5
endsub

Posted: 2008-12-12 01:22:24
by ychenik
спасиб большое, то, что нужно.

Posted: 2008-12-12 01:56:40
by GAUHAR
поставь после каста жесткую паузу (стоко сколько надо на завершение каста) или динамичесткую пока не снимится мана, можно влепить всякие проверки (на физл и повторное кастование), вообще вариантов может быть много.
делай.

Posted: 2008-12-12 02:40:24
by ychenik
пасиб огромное, разобрался)

Posted: 2008-12-12 10:40:13
by admir
Давно писал такую простую функцию по определению системного сообщения.
Они начинались с 0х40... (на обычных серваках)

Code: Select all

sub isSystemMsg(msg) ;AdmiR™
  if uo.JournalSerial(uo.InJournal(msg)-1) > '0x40000000' then
    return 1
  else
    return 0
  end if
end sub