Desmond Hume <form method="post"> <input type="text" name="userid"> <input type="submit"> </form> <?php if (!isset($_POST["userid"])) return; include("packet_class.php"); $GetUserRolesArg = new WritePacket(); $GetUserRolesArg -> WriteUInt32(-1); // always $GetUserRolesArg -> WriteUInt32(intval($_POST["userid"])); // userid $GetUserRolesArg -> Pack(0xD49); if (!$GetUserRolesArg -> Send("localhost", 29400)) // send to gamedbd return; $GetUserRolesRes = new ReadPacket($GetRoleBase); // reading packet from stream $GetUserRolesRes -> ReadPacketInfo(); // read opcode and length $GetUserRolesRes -> ReadUInt32(); // always $GetUserRolesRes -> ReadUInt32(); // retcode $count = $GetUserRolesRes -> ReadCUInt32(); for ($i = 0; $i < $count; $i++) { $roleid = $GetUserRolesRes -> ReadUInt32(); $rolename = $GetUserRolesRes -> ReadUString(); echo "[{$roleid}] {$rolename}<br>"; } ?> По поводу реткода, здесь есть для retcode == 4 эксепшн (из аута). simple listing roles from first post worked but with this php code for me if i wrote account id and submitted then nothing happened except the refresh, whats wrong? [1.4.2 v27] простые роли листинга из первого поста работал, но с этим кодом PHP для меня, если я написал идентификатор учетной записи и представил тогда ничего не произошло , за исключением обновления , что не так ? Класс для работы с пакетами закинь в папку со скриптом http://mmorpg-devs.ru/threads/packet-class-pw.17789/
баян Гитара. Мне надоело в скайпе каждому объяснять.
а если будет SSD? HP® BLADE 460g6 2xe5640 CPU 2x5640Mhz RAM 32GB DDR3 SSD 1x 240GB NET 100 Mbit/s До.
RAM 32GB DDR3 При это будут включены все локации. Свап? Было бы SSD...
Как это обычно бывает. Один расказал другому, тот расказал ещё кому-то, в итоге на каком-то шаге появился интересный человек, который бегает по всем серверам и устраивает такую, кхм, "атаку". Суть бага: пакет GetSavedMsg (0xD9) из gdeliveryd можно вызывать хоть сотню раз в секунду через OOG, при этом каждый раз он шлёт 0xD8 в gamedbd и пересылает обратно ответ клиенту, при правильном подборе условий (кол-во сохранённых сообщений в тет-а-тет и скорость отправки пакетов) это заставляет сервер генерировать такие объёмы трафика, что он досит сам себя. Решение — заглушить обработчик пакета GetSavedMsg. Побочный эффект — нельзя будет получить историю беседы тет-а-тет (кто-то этим пользуется?). 1. Открываем gdeliveryd в IDA 2. Переходим в функцию GNET::GetSavedMsg::Process [IMG] [IMG] [IMG] 3. Заменяем push ebp на retn [IMG] Меняем первый байт на C3 [IMG] [IMG] 4. Сохраняем изменения [IMG] [IMG] 5. Загружаем на сервер
Шаблоны — наше всё. Набор <role_ban> <role_gm> <ban_hours> <message> <reason>: <role_ban> - БЧ <ban_hours> ч. (<role_gm> - <reason>). Потом реплейсом замена <ololo> на значение переменных.
Я говорю про пакеты 0х00 и 0х22 Это контейнеры. Какая структура нахрен? Там несколько сотен пакетов GS.
Как сделать предмет передаваемый ? http://mmorpg-devs.ru/threads/proctypegen.17451/
Категорически против БЛ аргентума. За БЛ мипспв.
Из названия мы удаляем PROTOCOL_ получаем название которое должно быть Ты издеваешься? На вики всё есть. Что тебе ещё надо? --- добавлено: 9 июл 2016 в 10:54 --- Но вот вопрос у пакета опкод допустим 0x02 <PacketInfo Type="0x02" Direction="C2S" Container="False" Name="CMKey"> <PacketField Type="Byte" Name="KeyLen" /> <PacketField Type="Bytes" Length="KeyLen.Value" Name="Key" /> <PacketField Type="Byte" Name="Force" /> </PacketInfo>
Давно это допиливание пакетиков в 1.5.1 превращает сервер в 1.5.2? Учитывая то, что один из пакетов (их там меньше десяти) расшарен мной сто лет назад и лежит на мморге.
Найди в ядре функцию установки фракции, воткни туда рандом. Профит. планочку ниже отпусти, тут не все такие прАграммисты как ты Сделать прыжок из функции, взять готовый листинг из интернета и доделать условие — охренеть сложно.
, post: 169454, member: 12202"]Не сохраняет персонажей :( Класс для 1.5.1, на старых версиях там может слать. Смотри лог в сервере.
Найди в ядре функцию установки фракции, воткни туда рандом. Профит.
То, что ты делаешь, уже сделали 4 года назад. В итоге всё это оказалось бессмысленно.
Что у тебя делают русские символы в бд? Тикеты, группы на сайте и прочая хрень. Но не делать же для проверки пароля отдельный класс подключения к БД Не делать. Библиотека для работы с бд давно существует.
О да, это то что надо. Только вот с кодировкой беда теперь точно. т.к. md5(соль,true); отдаем строку "v��M�M�dz����ҧ�" я вытащил хеш из бд не указав кодировку utf-8 все сошлось, но если вытаскивать указав utf-8 (mysql_query("SET NAMES 'utf8'");) то вместо � нужные символы. Вообще вопрос, где я не указал кодировку urf-8 в php (mb_internal_encoding("UTF-8"); есть)? Огромное спасибо всем! Вытаскиваешь из базы данных пароль, клеешь новый пароль — сравниваешь. Я ещё не видел, чтобы руками доставали пароль из бд и в бинарном виде пытались его засунуть как текстовую переменную. о_____О Я так и делаю: <?php mb_internal_encoding("UTF-8"); $link = mysql_connect('localhost', 'root', '5574793'); mysql_select_db ("pw") or die ("Невозможно открыть $db"); mysql_query("SET NAMES 'utf8'"); $query = "SELECT * FROM users WHERE name=\"admin\""; $result = mysql_query ( $query ); $n = mysql_num_rows ( $result ); for ( $i=0; $i<$n; $i++ ) { $row = mysql_fetch_array($result); $Salt = $row[name].$row[idnumber]; $Salt = md5($Salt, true); echo "Хеш из БД: $row[passwd]<br>Пароль: $row[idnumber]<br>Логин+Пароль хеш: $Salt"; } mysql_close ( $link ); ?> Ответ получаю: Хеш из БД: vÈçM®M¢Ç³í²‘ÌÒ§£ Пароль: 5574793 Логин+Пароль хеш: v��M�M�dz����ҧ� Сравниваю... Не сходится Убираю из кода "mysql_query("SET NAMES 'utf8'");" все работает как надо Хеш из БД: v��M�M�dz����ҧ� Пароль: 5574793 Логин+Пароль хеш: v��M�M�dz����ҧ� но убирать это нельзя т.к. будут проблемы с русскими символами из БД Что у тебя делают русские символы в бд?
Но проблемка в том что в БД хеш храниться в непонятной мне кодировке или "шифре" который просто не вытащить от туда. Какой кодировке? Это вообще бинарные данные. Аргумент true в md5() заставляет отдать хеш в сыром виде, не преобразовывая в текстовый. О да, это то что надо. Только вот с кодировкой беда теперь точно. т.к. md5(соль,true); отдаем строку "v��M�M�dz����ҧ�" я вытащил хеш из бд не указав кодировку utf-8 все сошлось, но если вытаскивать указав utf-8 (mysql_query("SET NAMES 'utf8'");) то вместо � нужные символы. Вообще вопрос, где я не указал кодировку urf-8 в php (mb_internal_encoding("UTF-8"); есть)? Огромное спасибо всем! Вытаскиваешь из базы данных пароль, клеешь новый пароль — сравниваешь. Я ещё не видел, чтобы руками доставали пароль из бд и в бинарном виде пытались его засунуть как текстовую переменную. о_____О
how to call roleid 1024 ? like this?? <?php include("packet_class.php"); include("packet.php"); $roleid = '1024'; $001 = new ReadPacket(); $show=$001->GetRoleData(); echo $show; ?> По-моему, я пример написал в первом сообщении темы.
Но проблемка в том что в БД хеш храниться в непонятной мне кодировке или "шифре" который просто не вытащить от туда. Какой кодировке? Это вообще бинарные данные. Аргумент true в md5() заставляет отдать хеш в сыром виде, не преобразовывая в текстовый.
Имена участников (разделяйте запятой).