Master
22.11.2008, 19:06
Начну пожалуй с того что ГМ как и любой другой игрок в любом случаи всегда виден для других игроков. От сервера приходят пакеты сообщающие о том какие мобы и и игроки находятся рядом с нашим чаром. 14 и 15 символы пакета отвечают за статус игрока / моба. Так вот, ГМ Хайд это тоже статус и на пакетном уровне выглядит это так (40 00) скил клоак которые все так любят ломать на гв выглядит так (04 00)
чтоб было более поняно откуда все это приведу фрагмент нагло спертый с какого о форума
Суть дела: когда к вам приближается персонаж, то к вам приходит пакет из 64 символов. 14 и 15 символ отвечает за статус игрока. Вот это взято из хелпа по афинке:
01 Sight
02 Hide
04 Cloak
08 Level 1 Cart
16 Falcon
32 Peco Peco riding
64 GM Perfect Hide
0128 Level 2 Cart
0256 Level 3 Cart
0512 Level 4 Cart
1024 Level 5 Cart
2048 Orc Head
4096 Wedding Sprites
8192 Ruwach
эти числа обозначают ваш статус.
идём дальше (про группировку статусов):
если ассассин невидим, значит он использует cloak. следовательно его статус равняется 04. Если при этом у него лицо орка, значит статусы складываются: 04+2048=2052. 2052 это и есть текущий статус. Если он к тому-же ещё и в смокинге, то 04+2048+4096=6148
и углубляемся вглубь (про закодированность):
описанный выше статус равен числу 6148. но в пакетах это передаётся чуть иначе, там это слегка закодировано. берём калькулятор из винды, включаем научный вид, режим ставим "dec". теперь печатаем в него 6148. нам нужно перевести это число в шеснадцатиричную систему. для этого нажмиаем "Hex". Вуаля, видим число 1804. В пакетах будет это число перевёрнуто группами по 2. было 1804 а передаётся 0418. Думаю понятно. Внимание, нюанс - если число в hex виде трёхзначное, то перед переворотом приписываем спереди нолик. A23 - 0A23 - 230A.
А теперь внимание вопрос, как в ОК реализована информация о статусах других игроков и возможно ли написать макрос который при виде таких вот наблюдающий с левым статусом (ГМ Хайд) вырубал бы бота или чтонить на подобии, интересен сам момент работы с информацией полученой ботом от серва и обнаружение ГМ))
чтоб было более поняно откуда все это приведу фрагмент нагло спертый с какого о форума
Суть дела: когда к вам приближается персонаж, то к вам приходит пакет из 64 символов. 14 и 15 символ отвечает за статус игрока. Вот это взято из хелпа по афинке:
01 Sight
02 Hide
04 Cloak
08 Level 1 Cart
16 Falcon
32 Peco Peco riding
64 GM Perfect Hide
0128 Level 2 Cart
0256 Level 3 Cart
0512 Level 4 Cart
1024 Level 5 Cart
2048 Orc Head
4096 Wedding Sprites
8192 Ruwach
эти числа обозначают ваш статус.
идём дальше (про группировку статусов):
если ассассин невидим, значит он использует cloak. следовательно его статус равняется 04. Если при этом у него лицо орка, значит статусы складываются: 04+2048=2052. 2052 это и есть текущий статус. Если он к тому-же ещё и в смокинге, то 04+2048+4096=6148
и углубляемся вглубь (про закодированность):
описанный выше статус равен числу 6148. но в пакетах это передаётся чуть иначе, там это слегка закодировано. берём калькулятор из винды, включаем научный вид, режим ставим "dec". теперь печатаем в него 6148. нам нужно перевести это число в шеснадцатиричную систему. для этого нажмиаем "Hex". Вуаля, видим число 1804. В пакетах будет это число перевёрнуто группами по 2. было 1804 а передаётся 0418. Думаю понятно. Внимание, нюанс - если число в hex виде трёхзначное, то перед переворотом приписываем спереди нолик. A23 - 0A23 - 230A.
А теперь внимание вопрос, как в ОК реализована информация о статусах других игроков и возможно ли написать макрос который при виде таких вот наблюдающий с левым статусом (ГМ Хайд) вырубал бы бота или чтонить на подобии, интересен сам момент работы с информацией полученой ботом от серва и обнаружение ГМ))