Yoko

All sides of Injection
It is currently 2025-12-19 14:14:29

All times are UTC+02:00




Post new topic  Reply to topic  [ 11 posts ] 
Author Message
PostPosted: 2006-05-21 12:47:33 
Offline

Joined: 2006-05-17 10:16:25
Posts: 4
Как заставить инжу отличать сообщения сервера от речи игроков?

Я имею ввиду сообщения типа "There is no ore..." или "You are frozen..." и т.п.

P.S.
на пример, скрипте:
Code:
if uo.injournal("There is no ore") then 
uo.exec.......
так вот, это сработает даже если какой-нить чар напишет эту строку. Как сделать, чтобы обрабатывались только сообщения, посланные сервером?


Top
   
PostPosted: 2006-05-21 13:03:29 
Offline
Expert!
User avatar

Joined: 2006-02-07 08:51:40
Posts: 1348
Location: г. Старый Оскол
alconst wrote:
Как заставить инжу отличать сообщения сервера от речи игроков?

Я имею ввиду сообщения типа "There is no ore..." или "You are frozen..." и т.п.

P.S.
на пример, скрипте:
Code:
if uo.injournal("There is no ore") then 
uo.exec.......
так вот, это сработает даже если какой-нить чар напишет эту строку. Как сделать, чтобы обрабатывались только сообщения, посланные сервером?


ИМХО Никак... :roll:


Top
   
PostPosted: 2006-05-21 13:13:54 
Offline

Joined: 2006-05-17 10:16:25
Posts: 4
Cooper wrote:
ИМХО Никак... :roll:

Я где-то видел, что можно, но тогда не обратил внимания.. А сейчас не могу найти...
Может быть как-то по цвету различать, или еще что-то? Например, если это пишет чар, то в журнале перед текстом пишется ник (типа Player: ...) Так вот н-пр не реагировать, если перед сообщением двоеточие стоит?

Я прост новичек в этом деле, поэтому и обращаюсь за помощью


Top
   
 Post subject:
PostPosted: 2006-05-21 13:44:29 
Offline
Expert!

Joined: 2004-04-03 17:36:29
Posts: 2544
Location: Saint-Petersburg
Только так и можно. Написать собственную функцию в скрипте по поиску строки в журнале, где дополнительной проверкой ввести проверку на многоточие в строке. В принципе, ничего сложного.

_________________
Ни один скрипт не работает? Пора обновить Инжект...
Все работает, но хочется большего? Пора переходить на стелс...


Top
   
 Post subject:
PostPosted: 2006-05-21 13:53:53 
Offline

Joined: 2006-05-17 10:16:25
Posts: 4
Edred wrote:
Только так и можно. Написать собственную функцию в скрипте по поиску строки в журнале, где дополнительной проверкой ввести проверку на многоточие в строке. В принципе, ничего сложного.

Спасибо, но не могли бы вы объяснить/показать это на примере?


Top
   
 Post subject:
PostPosted: 2006-05-21 14:30:31 
Offline
Expert!

Joined: 2004-04-03 17:36:29
Posts: 2544
Location: Saint-Petersburg
Что именно? Делай в скрипте так:

Code:
if MyInJournal("There is no ore") then 
uo.exec.......


А дальше в файл добавь функции:

Code:
Sub MyInJournal( mes )
   VAR nom, st
   nom = uo.InJournal( mes )
   If mes > 0 Then
      ; найдена строка в журнале
      st = UO.Journal( nom - 1 )
      ; тут уже проверяем, есть ли в строке двоеточие.
      If CheckColon( st )  == 1 Then
         return 0
      else
         return 1
      endif
   endif
   return 0
endsub

Sub CheckColon( st )
   ; Функция ищет в переданной строке двоеточие и возвращает 1 если найдено, 0 если нет.
.........
endsub


ЗЫ: естественно, не забудь написать последнюю функцию. Поищи, тут на форуме кто-то где-то клал функцию поиска подстроки в строке. Кроме того такую функцию легко слепить на основе GetWord.

_________________
Ни один скрипт не работает? Пора обновить Инжект...

Все работает, но хочется большего? Пора переходить на стелс...


Top
   
 Post subject:
PostPosted: 2006-05-21 15:28:17 
Offline

Joined: 2006-02-10 13:26:37
Posts: 173
Edred wrote:
Поищи, тут на форуме кто-то где-то клал функцию поиска подстроки в строке. Кроме того такую функцию легко слепить на основе GetWord.

Тут.


Top
   
 Post subject:
PostPosted: 2006-05-21 17:03:53 
Offline
Junior Expert
User avatar

Joined: 2004-06-24 22:08:56
Posts: 3220
Эмм, а journalserial отменили?

Сервер обычно с одного серийника рисует..


Top
   
 Post subject:
PostPosted: 2006-05-21 18:45:47 
Offline
Expert!

Joined: 2004-04-03 17:36:29
Posts: 2544
Location: Saint-Petersburg
Destruction wrote:
Эмм, а journalserial отменили?

Сервер обычно с одного серийника рисует..


Гимор это. Нет гарантий никаких что сервер будет с одного серийника "рисовать" все время...

_________________
Ни один скрипт не работает? Пора обновить Инжект...

Все работает, но хочется большего? Пора переходить на стелс...


Top
   
 Post subject:
PostPosted: 2006-05-21 19:42:48 
Offline
Junior Expert
User avatar

Joined: 2004-06-24 22:08:56
Posts: 3220
Edred wrote:
Destruction wrote:
Эмм, а journalserial отменили?

Сервер обычно с одного серийника рисует..


Гимор это. Нет гарантий никаких что сервер будет с одного серийника "рисовать" все время...

Ну хз, у меня с одного рисует, и гемора никакого..

if uo.journalserial(uo.injournal( "My Message" )) == ServerID then
...
endif

Как раз надо в первую очередь проверять такой вариант, а затем изобретать гимор. Еще можно графический тип получить, побаловаться.


Top
   
 Post subject:
PostPosted: 2006-05-21 20:25:26 
Offline

Joined: 2006-05-17 10:16:25
Posts: 4
Destruction wrote:
if uo.journalserial(uo.injournal( "My Message" )) == ServerID then
...
endif

А где взять ServerID?

пробвал
Code:
UO.Print(UO.JournalSerial(uo.InJournal("сообщение...")))
UO.Print(UO.JournalSerial( uo.InJournal() ) )
UO.Print(UO.JournalSerial(uo.InJournal(-1)))

Всегда выдает 0x00000000, но с ним не пашет.
Еще пробвал 0x01010101 (как о большинстве серверных сказано в хелпе), тож не пашет.


Top
   
Display posts from previous:  Sort by  
Post new topic  Reply to topic  [ 11 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:  
Powered by phpBB® Forum Software © phpBB Limited