GetRoleBase - Там есть вектор GRoleForbid, это и есть список банов на аккаунте GetRoleBase - Пакет такой, запрос отправлять к gamedbd Это только на персонаже, на аккаунте другой пакет ForbidUser, id - 8004 Так этот пакет ведь банит, а не показывает баны. struct __cppobj ForbidUserArg : Rpc::Data { char operation; int gmuserid; int source; int userid; int time; Octets reason; };
Как узнать, есть ли бан на аккаунте, пакетом, или как можно?.. Спасибо
Взял функцию у Вас GetRoleData $r = GetRoleData(1024); echo '<pre>'; print_r($r); echo '</pre>'; Вывело все как надо, все окей работает. Но есть вопросик, в status есть поле var_data, с таким содержимым: [var_data] => 06000000000000003a8c0000010000005c769f0a39423443313030301000000000000000ffffffff0000000000000000000000000f000000 Не подскажите, как его перевести в человекопонятный вид, или может где почитать про это? Спасибо
По названию темы ожидал увидеть здесь описание какой-то уязвимости. Но судя по тому, что ТС хочет сделать, так оно и будет в его случае Скоро будет тема "меня взломали памагите"
Привет Вот если работать с сервера где запущен сам сервер игры, то работает такое подключение: fp = fsockopen('127.0.0.1', 29300); if (!$fp) { die('Соединение с игровой базой не установлено'); } var_dump($fp);// resource(7) of type (stream) А если я с любого хостинга, или своего сервера другого пытаюсь подключится так-же, только ставлю ИП сервера к которому подключаюсь, мне выбивает ошибку: Error 10061 - No connection could be made because the target machine actively refused it $fp = fsockopen('IP', 29300); if (!$fp) { die('Соединение с игровой базой не установлено'); } Как правильно подключится к игровой базе не из локального сервера? Что я не так делаю? Спасибо
Но этот пакет не прибавляет, а просто устанавливает кол-во голды. Было 5, дал еще 10 = в итоге на аккаунте 10, и общее кол-во тоже 10. Ваш код взял А в чем проблема использовать другой пакет,который получает кол-во голде на акке(вроде такой есть)?Прибавить свое количество,и отправить на аккаунт. В том, что этот метод полностью очищает историю голды на аккаунте. Если было за всю историю аккаунта 100 голды, и этим пакетом поставить 10, то в истории будет всего 10 уже. Можно так-же через mysql, но там интервал вроде какой-то идет
<?php 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)); } if (isset($_POST['Send'])) { $data = pack('N*', $_POST['acc_id'], $_POST['gold_num']); $send = Cuint(521).Cuint(strlen($data)).$data; $sock = socket_create(AF_INET, SOCK_STREAM, SOL_TCP); socket_connect($sock, "127.0.0.1", 29400); socket_set_block($sock); socket_send($sock, $send, 8192, 0); socket_set_nonblock($sock); socket_close($sock); } ?> <center> <form method="POST"> ID аккаунта <input type="text" name="acc_id"><br> Кол-во голды <input type="text" name="gold_num"><br> <input type="submit" value="Отправить" name="Send"> </center> --- добавлено: 23 фев 2018 в 13:57 --- Так-же можете забрать голд отправив отрицательное количество Но этот пакет не прибавляет, а просто устанавливает кол-во голды. Было 5, дал еще 10 = в итоге на аккаунте 10, и общее кол-во тоже 10. Ваш код взял
Пытаюсь прибавить голды, но получается только пакетом: DEBUGADDCASH , но при добавлении через этот пакет - перезаписывается вся информация о голде на аккаунте, и она не прибавляется - а просто устанавливается в то значение которое я установлю. В логе сервера при использовании DEBUGADDCASH , вот что: info : GameDBServer::OnAddSession, sid=342. info : GameDBServer::OnAddSession, sid=343. info : GameDBServer::OnDelSession, sid=342. TRACE : debugaddcash userid=1024:cash_add=110 info : GameDBServer::OnDelSession, sid=343. $DebugAddCash = new WritePacket(); $DebugAddCash -> getresponse = false; // without response $DebugAddCash -> WriteUInt32(1024); // userid $DebugAddCash -> WriteUInt32(5 * 100); // cash $DebugAddCash -> Pack(0x209); // opcode $DebugAddCash -> Send("localhost", 29400); // send to gamedbd Нашел пакет: ADDCASH, но при попытке его использовать - голда не прибавляется. struct __cppobj AddCash : Protocol { int userid; int zoneid; int sn; int cash; }; $AddCash = new WritePacket(); $AddCash -> WriteUInt32(1024); // userid $AddCash -> WriteUInt32(1); // zoneid $AddCash -> WriteUInt32(65536); // sn (установил такое значение, ибо похоже на конфиг [so_sndbuf = 65536] ) $AddCash -> WriteUInt32(5 * 100); // cash $AddCash -> Pack(0x203); // opcode $AddCash -> Send("localhost", 29400); // send to gamedbd $Re_AddCash = new ReadPacket($AddCash); $Re_AddCash -> ReadPacketInfo(); $res = []; $res['retcode'] = $Re_AddCash -> ReadUInt32(); $res['userid'] = $Re_AddCash -> ReadUInt32(); $res['zoneid'] = $Re_AddCash -> ReadUInt32(); $res['sn'] = $Re_AddCash -> ReadUInt32(); /* Результат: array(4) { ["retcode"]=> int(0) ["userid"]=> int(1024) ["zoneid"]=> int(1) ["sn"]=> int(65536) } */ Но голда не прибавляется. В логе сервера при использовании AddCash, вот что: info : GameDBServer::OnAddSession, sid=333. info : GameDBServer::OnDelSession, sid=333. Может что-то не так делаю? Спасибо
Правильно сформулированный вопрос творит чудеса. Название пакета, с помощью которого можно будет получить список предметов у персонажа. И еще один пакет, с помощью которого удалять эти предметы можно было бы. Если такие пакеты естьконечно же
Всем привет! Каким пакетом можно у игрока посмотреть список предметов которые у него есть, удалить предмет? И еще пакет интересует, которым можно изменять уровень персонажа, его харакктеристики (хп, ману...) Искал по пвкоду не могу найти подходящий пакет, их много, может прпоустил.. спасибо!
---
用逗号分隔用户名