насчет фикса наврятли подскажу, зато есть способ контролировать чат с помощью различного ПО, например http://mmorpg-devs.ru/threads/spyworldchat-0-3.17071/ позволит банить нарушителей чата по ключевым словам, например в список плохих слов вписать ту последовательность текста которым спамят и тогда нарушитель, который будет писать подобные фразы получит бан.
хз, для меня разбор хекса темный лес, методом тыка действую... понять бы формулу разбора... --- добавлено: 13 фев 2015 в 22:04 --- "\x00\x00\x00\x00"; это ТС свой пример формирования пакета давал )
В общем намучился с парсингом, но так и не получилось привести данные в читаемый вид. Только первый элемент из списка читаем получился, остальные нет... что то я не могу видимо понять. Привожу код, может у кого появятся мысли и озвучит решение проблемы. <? function cuint($data) { if($data < 64) return strrev(pack("C", $data)); else if($data < 16384) return strrev(pack("S", ($data | 0x8000))); else if($data < 536870912) return strrev(pack("I", ($data | 0xC0000000))); return strrev(pack("c", -32) . pack("i", $data)); } $bdname = 'factioninfo'; $bdlen = pack("n*", strlen($bdname)+32768); $data = pack('N', -1) . $bdlen . $bdname . "\x00\x00\x00\x00"; $Socket = socket_create(AF_INET,SOCK_STREAM,SOL_TCP); $Data = cuint(3055).cuint(strlen($data)).$data; if(socket_connect($Socket,"127.0.0.1","29400")) { socket_set_block($Socket); $send = socket_send($Socket,$Data,8192,0); $recv = socket_recv($Socket,$buf,8192,0); socket_set_nonblock($Socket); socket_close($Socket); } $var = bin2hex($Data)."<br>-<br>"; $var2 = bin2hex($buf)."<br>-<br>"; echo $var.$var2."<hr>"; $clancount = unpack( "c", substr( $buf, 13, 1 ) ); $start = 13+7; for($c=0; $i<$clancount[1]; $i++) { $clanid = unpack( "N*", substr( $buf, $start, 4 ) ); $start = $start+4; $namelarge = unpack( "c*", substr( $buf, $start, 1 ) ); $start = $start+1; $clanname = iconv( "UTF-16", "UTF-8", substr( $buf, $start, $namelarge[1] ) ); $start = $start+$namelarge[1]; $clan_list .="<font color='red'>[ {$clanid[1]} ] {$clanname}</font><hr>"; } echo $clan_list; ?>
что то я туплю где то... пытаюсь получить список кланов... [IMG] как видите 2 строчки (ответа) нету... [IMG] --- добавлено: 13 фев 2015 в 13:42 --- \xff\xff\x80\x08 интересует, что тут за аргумент передается? видимо из за него список кланов получить не могу --- добавлено: 13 фев 2015 в 13:51 --- спасибо ТСу, помог немного с формированием пакета, теперь осталось нацарапать парсинг вывода информации... --- добавлено: 13 фев 2015 в 13:56 --- странно вот что, неважно из какой таблицы тяну данные (персов или кланов), ответ всегда одинаковый, т.е. хекс получаю один и тот же... разве так и должно быть? --- добавлено: 13 фев 2015 в 13:59 --- однако в 010 показывает то что и ожидаю, список кланов ))
просто попробовал составить пакет, на основе данного хекс кода запроса $Data = cuint(3055)."\xff\xff\xff\xff\x80\x08\x72\x6f\x6c\x65\x6e\x61\x6d\x65\x00\x00"; в итоге ответ не получаю вообще никакой. А длина где? Да запроса на получение, без opcode и длины пакета. понял, теперь вроде получилось: [IMG] 1 строчка пакет запроса, 2 строчка ответ на запрос.
просто попробовал составить пакет, на основе данного хекс кода запроса $Data = cuint(3055)."\xff\xff\xff\xff\x80\x08\x72\x6f\x6c\x65\x6e\x61\x6d\x65\x00\x00"; в итоге ответ не получаю вообще никакой.
ffffffff8008726f6c656e616d650000 это хекс код именно запроса? пакет?
эх, смотрю так с автором темы и не найдем пример рабочего пакета ) Структуры мало, хотелось бы понять как выглядит правильный запрос, хотя бы хекс код его.
сам уже давно задавался вопросом о получении списка кланов, но структуры пакета так и не нашел, в игровом клиенте вообще нет опции, где бы выводился список всех кланов на сервере, иначе бы отловил бы пакет и попробовал бы разобрать его. DBRawRead для версий 1.4.2+, для версий ниже нет таких возможностей. type = struct DBRawReadArg : public Rpc::Data { Octets table; Octets handle; Octets key; } type = struct DBRawReadRes : public Rpc::Data { int retcode; Octets handle; vector<GNET::RawKeyValue, std::allocator<GNET::RawKeyValue> > values; } Например читаем FactionInfo (0x11FE) - values = { key FactionId; value FactionInfo; }; [IMG] спасибо, но вот ещё бы пример правильного построения пакета на вывод списка кланов, я пока смог выстроить пакет. <? function cuint($data) { if($data < 64) return strrev(pack("C", $data)); else if($data < 16384) return strrev(pack("S", ($data | 0x8000))); else if($data < 536870912) return strrev(pack("I", ($data | 0xC0000000))); return strrev(pack("c", -32) . pack("i", $data)); } $Socket = socket_create(AF_INET,SOCK_STREAM,SOL_TCP); if(socket_connect($Socket,"127.0.0.1","29400")) { socket_set_block($Socket); $Data = cuint(3055)."\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff"; $send = socket_send($Socket,$Data,8192,0); $recv = socket_recv($Socket,$buf,8192,0); socket_set_nonblock($Socket); socket_close($Socket); } $var = bin2hex($Data)."<br>-"; $var2 = bin2hex($buf)."<br>"; echo $var.$var2; ?> Специально сделал с выводом в браузер хекс кода запроса и результата. Итог работы этого скрипта в бразуер виден лишь хекс код запроса, хекс кода результата не получаю... это и понятно, видимо потому что нет аргументов в запросе. Хотелось бы понять как правильно выстроить пакет данных на получение списка кланов. $Data = cuint(3055)."\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff";
сам уже давно задавался вопросом о получении списка кланов, но структуры пакета так и не нашел, в игровом клиенте вообще нет опции, где бы выводился список всех кланов на сервере, иначе бы отловил бы пакет и попробовал бы разобрать его.
ну вы блин даёте! [IMG]
Почитал тему... сразу вспомнил, ну не то что бы анекдот, скорее быль... В общем ситуация, вызывает мужик специалиста по вентиляции и говорит, мол шумит в одном месте, уже делал все что только мог, и менял трубы и их диаметр и т.д., но как шумела в одном месте так и шумит... Специалист выслушал его, невозмущенно сказал, помочь смогу, но стоить это будет 5000 руб... Ну мужик заплатил. Специалист осмотрел вентиляцию и сказал сверли отверстие в трубе, где я скажу. Мужик сделал, как сказал специалист и... шум исчез. Потом мужик говорит, и за эту хрень я тебе 5 косарей отдал? Нет - сказал специалист, ты заплатил за знания, которые приходят лишь с годами и неизвестно, сколько бы ты ещё решал проблему с шумом в вентиляции, если бы не вызвал меня. =) Так вот и тут, неважно сколько кликов и т.д., может вообще причина проблемы, что где то символ пропущен и т.п. и 5 баксов тут не за пару кликов, а за знания, которые сразу не придут тебе. Да и 5 баксов это ещё скромно и глупо ещё недовольство своё показывать. Это ведь твоя проблема, не хочешь платить за её решение, сам ищи это решение, либо жди у моря погоды пока тебе кто то поможет... PS: Историю о вентиляционщике я рассказал на память, так как мне её давно кто то рассказывал из знакомых, когда работал на заводе, мог и немного забыть детали той истории, но суть её понятна. Примерно так многие специалисты и работают, те же автослесари, могут перебрать и пол двигателя, чтоб починить машину, а могут всего лишь закрутить пару нужных болтов и взять как за средний ремонт.
Гарантии: Персональный аттестат WM BL: 85 да ну? А ссылку стесняемся показать на аттестат? ) Вебмани не работает ну не совсем так, но частично вы правы: http://joxi.ru/V2VnvpoTd4Bp2v но думаю идентификатор аттестата могли бы написать.
Гарантии: Персональный аттестат WM BL: 85 да ну? А ссылку стесняемся показать на аттестат? )
судя по скринам, вебсервер не до конца сконфигурирован, как это сделать в гугл масса информации, не поверишь, но даже я гуглом пользуюсь, когда занимаюсь конфигурацией сервера и что то не получается )
насколько я понял ему вроде 17 лет и он учится в каком то училище. ну если 17, то рановато он работу ищет, пусть учится дальше. Вот как минимум 20 будет, тогда может и созреет для таких дел.
теперь понятно, почему он в приват тянет, а не здесь анкету разместил. Кстати а сколь годков то ему? --- добавлено: 9 фев 2015 в 15:00 --- Накосячил в обнове? -Не беда,сервер пока полежит 2 часа пока я всё исправлю. (девиз) на такие случаи всегда нужно иметь уже развернутый сервер в виртуалке для всех тестов.
Подробнее о себе расскажу в скайпе. skype - enotus. (С точкой) Такой особенный чтоль админ, что в скайп тянешь? Увы, так дела не делаются...
Если эти фичи должны выполнять какую-то функцию, то не причем, а так только .exe не уверен, но все же http://joxi.ru/52a1eyDHEakR20 просто не совсем понимаю как можно иконки присвоить званиям
как вариант по идее можно сделать функцию, которая Cделать то можно, но сказать точно как я не могу, Смотри gs, elementclient*exe там найти можно. в елементклиентс поиск результата не дал http://joxi.ru/gmvRVONcqE1ema в конфигс паке нашел файл со званиями http://joxi.ru/DmBXR4jHJy4vAP но не думаю, что это то, что надо... заменить текст званий на иконки будет проблемно там. Ведь цель именно поставить иконки званий над головой перса, а не в других местах, где эти звания упоминаются.
Имена участников (разделяйте запятой).