Page 1 of 1

Проблема с Cliloc

Posted: 2005-07-10 22:22:27
by omi4
Инжект по чему то не видит некоторые сообщения сервера….

При ловле рыбы сообщения где ловить и нехрена не поймал Видит
А что поймал Нет

В клиенте видно и то и другое.

Лыжи не едут только у меня или это у всех?

Posted: 2005-07-16 16:30:19
by Sullenor
Yoko wrote:чтобы не передавать много букв стандартного сообщения, передаётся только номер сообщения. потом клиент может выдать его сам используя выставленный пользователем "родной" язык, например английский.


Увидеть эти номера ты можешь при помощи журнала инжекта, если я не ошибаюсь. Используй команду ,showjournal

Posted: 2005-07-16 18:57:47
by omi4
Эти сообщения на родном языке я вижу где ловить и нехрена не поймал и инжа видит клилок
В журнале клиента есть еще сообщения на родном поймал!! , а вот в инже их нет.

Раз они на родном, то клилок был (((

Ловлю теперь событие по изменению веса и т.п. извратами (реги, бутылки, инги)

Posted: 2005-07-16 20:53:56
by Grin
это не родной... просто люди научились учить эмуляторы посылать уникод...
вот и все... это не клилок а какраз тот случай когда инжект не сохраняет такие сообщеия как овповещения о скилах и текста от статики

Posted: 2005-07-16 22:52:37
by omi4
Команду ,showjournal я знаю
Можно мне уже звание дать эксперт журнала

Стоит у меня как раз русский клилок (переведенный мутантом, ибо мат сплошной в переводе)
Правда сегодня дали для SE нормальный
Про уни код тоже знаю, только я играю на UOGamers. А там в стафе русских нет 100%.

Глюк это однозначно.

Аналогично и в самураях и на аос (при этом клилок у них разный, у самураев больше фраз)

А в общих чертах инжект вполне работоспособен с клиентами до 4.0.6
На более свежих многие действия вызывают краш. Не скрипты,
а именно действия

Posted: 2005-07-16 23:06:41
by Grin
за клилок отвечает один пакет и тогда странно почему какието его номера он ловит а какието нет...
уменя нету возможности это проверить...

Posted: 2005-08-05 17:25:16
by omi4
Вот как сервер RunUO передает сообщения в клиенту
Как читает их инжа не понял…
Толи в открытых исходниках ни как или туплю?

Описания пакета 0хС1 тоже не нашел


Code: Select all

   public sealed class MessageLocalized : Packet
   {
      private static MessageLocalized[] m_Cache_IntLoc = new MessageLocalized[15000];
      private static MessageLocalized[] m_Cache_CliLoc = new MessageLocalized[100000];
      private static MessageLocalized[] m_Cache_CliLocCmp = new MessageLocalized[5000];

      public static MessageLocalized InstantiateGeneric( int number )
      {
         MessageLocalized[] cache = null;
         int index = 0;

         if ( number >= 3000000 )
         {
            cache = m_Cache_IntLoc;
            index = number - 3000000;
         }
         else if ( number >= 1000000 )
         {
            cache = m_Cache_CliLoc;
            index = number - 1000000;
         }
         else if ( number >= 500000 )
         {
            cache = m_Cache_CliLocCmp;
            index = number - 500000;
         }

         MessageLocalized p;

         if ( cache != null && index >= 0 && index < cache.Length )
         {
            p = cache[index];

            if ( p == null )
               cache[index] = p = new MessageLocalized( Serial.MinusOne, -1, MessageType.Regular, 0x3B2, 3, number, "System", "" );
         }
         else
         {
            p = new MessageLocalized( Serial.MinusOne, -1, MessageType.Regular, 0x3B2, 3, number, "System", "" );
         }

         return p;
      }

      public MessageLocalized( Serial serial, int graphic, MessageType type, int hue, int font, int number, string name, string args ) : base( 0xC1 )
      {
         if ( name == null ) name = "";
         if ( args == null ) args = "";

         if ( hue == 0 )
            hue = 0x3B2;

         this.EnsureCapacity( 50 + (args.Length * 2) );

         m_Stream.Write( (int) serial );
         m_Stream.Write( (short) graphic );
         m_Stream.Write( (byte) type );
         m_Stream.Write( (short) hue );
         m_Stream.Write( (short) font );
         m_Stream.Write( (int) number );
         m_Stream.WriteAsciiFixed( name, 30 );
         m_Stream.WriteLittleUniNull( args );
      }
   }

Posted: 2005-08-08 09:08:21
by omi4
а это ренесанс
пакет немного иной

Code: Select all

0xC1 Packet

Last Modified on Sunday, 30-Jan-2000 

Predefined Message (Variable # of bytes (always 0x32 at present))

·        BYTE cmd

·        BYTE[2] len (0x32)

·        BYTE[4] id

·        BYTE[2] body

·        BYTE type (6 – lower left, 7 on player)

·        BYTE[2] hue

·        BYTE[2] font

·        BYTE[2] type (0x0007 so far)

·        BYTE[2] message number (0xA120 base)

·        0xA12D – “You cannot use skills.”

·        0xA2E2 – “But that’s not dead!”

·        0xA5F3 – “Help request aborted.”

·        0xA5F0 – “Please enter a brief description (up to 40 characters) of your problem:”

·        BYTE[0x20] – speaker’s name

Server message

Note, type could be part of message number…

Posted: 2005-08-09 12:05:49
by Mamoru
Сообщения о том что поймано в журнале инжи не отражаются.
Кто-как, а я использую скрипт, который тестит изменения веса, чтобы определить, что что-то выловилось.