Как узнать, есть ли бан на аккаунте, пакетом, или как можно?.. Спасибо
Привет Вот если работать с сервера где запущен сам сервер игры, то работает такое подключение: 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('Соединение с игровой базой не установлено'); } Как правильно подключится к игровой базе не из локального сервера? Что я не так делаю? Спасибо
Пытаюсь прибавить голды, но получается только пакетом: 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. Может что-то не так делаю? Спасибо
Всем привет! Каким пакетом можно у игрока посмотреть список предметов которые у него есть, удалить предмет? И еще пакет интересует, которым можно изменять уровень персонажа, его харакктеристики (хп, ману...) Искал по пвкоду не могу найти подходящий пакет, их много, может прпоустил.. спасибо!
Всем привет! Знаю немного php, и начал интересоваться как взаимодействует сайт-сервер, и немного запутался, а точнее - не понимаю связь пакетов, шифраций... Вот например, я хочу достать максимум информации по персонажу, как это реализовать, имея просто ид персонажа? Нашел "пример работы с пакетами" http://pwdev.ru/index.php?title=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%D1%8B_%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D1%8B_%D1%81_%D0%BF%D0%B0%D0%BA%D0%B5%D1%82%D0%B0%D0%BC%D0%B8 Там вначале страницы генерируется запрос как я понимаю $GetRoleBase = new WritePacket(); $GetRoleBase -> WriteUInt32(-1); // always $GetRoleBase -> WriteUInt32(1024); // roleid $GetRoleBase -> Pack(0xBC5); // opcode Данные преобразуются с помощью WriteUInt32 public function WriteUInt32($value) { $this -> request .= pack("N", $value); } И самое последнее и самое интересное, это "опкод". $GetRoleBase -> Pack(0xBC5); // opcode Это я так понимаю "команда" серверу, что я хочу взять инфу о персонаже? Именно: 0xBC5 этот код?... Если да, то где можно взять список этих опкодов? Спасибо за любые ответы
用逗号分隔用户名