1. Гость, мы просим Вас ознакомиться с Правилами Форума и Отказом от ответственности!

Результаты поиска

  1. Vorobey
  2. Vorobey
  3. Vorobey
  4. Vorobey
  5. Vorobey
  6. Vorobey
  7. Vorobey
  8. Vorobey
    Пытаюсь прибавить голды, но получается только пакетом: 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. Может что-то не так делаю? Спасибо
    Автор темы: Vorobey, 23 фев 2018, ответов - 6, в разделе: PW Web
  9. Vorobey
  10. Vorobey
  11. Vorobey
    ---
    Сообщение от: Vorobey, 21 фев 2018 в разделе: PW Web
  12. Vorobey
    Немного начинаю понимать, но все-же на примере было бы понятнее. Взял для примера пакет для просмотра информации о игроке 0x1F43 http://pwdev.ru/index.php?title=GetRoleDataRes Вот пример кода, который работает include 'ReadPacket.php'; $GetRoleData = new WritePacket(); $GetRoleData -> WriteUInt32(-1); // always $GetRoleData -> WriteUInt32(1024); // roleid $GetRoleData -> Pack(0x1F43); // opcode if (!$GetRoleData -> Send("localhost", 29400)) // send to gamedbd return; $GetRoleData_Re = new ReadPacket($GetRoleData); $GetRoleData_Re -> ReadPacketInfo(); $GetRoleData_Re -> ReadUInt32(); // -1 $GetRoleData_Re -> ReadUInt32(); // retcode $GRoleData['base']['version'] = $GetRoleData_Re -> ReadUByte(); $GRoleData['base']['id'] = $GetRoleData_Re -> ReadUInt32(); $GRoleData['base']['name'] = $GetRoleData_Re -> ReadUString(); $GRoleData['base']['race'] = $GetRoleData_Re -> ReadUInt32(); var_dump($GRoleData); И выдаёт мне результат: array(1) { ["base"]=> array(13) { ["version"]=> int(1) ["id"]=> int(1024) ["name"]=> string(3) "PersonName" } } Все вроде-бы хорошо, но мне не понятно откуда узнать, какие данные передать, и какие я получу... $GetRoleData = new WritePacket(); $GetRoleData -> WriteUInt32(-1); // что это за параметр, и почему он первый $GetRoleData -> WriteUInt32(1024); // Этот второй $GetRoleData -> Pack(0x1F43); // opcode $GetRoleData_Re = new ReadPacket($GetRoleData); $GetRoleData_Re -> ReadPacketInfo(); $GetRoleData_Re -> ReadUInt32(); // -1 $GetRoleData_Re -> ReadUInt32(); // retcode $GRoleData['base']['version'] = $GetRoleData_Re -> ReadUByte();// где узнать список послеодовательностей полей, которые приходят в $GetRoleData_Re $GRoleData['base']['id'] = $GetRoleData_Re -> ReadUInt32(); $GRoleData['base']['name'] = $GetRoleData_Re -> ReadUString(); $GRoleData['base']['race'] = $GetRoleData_Re -> ReadUInt32(); Спасибо --- добавлено: 20 фев 2018 в 22:25 --- Вот например на pwdev нашел пакет, который по идее отправляет анонс. http://pwdev.ru/index.php?title=OnlineAnnounce Тип: пакет (ProtocolType) Сервис: gdeliveryd Опкод: 0x4 Тип данных Название int userid int localsid int remain_time byte zoneid int free_time_left int free_time_end int creatime byte referrer_flag byte passwd_flag byte usbbind byte accountinfo_flag Как мне его использовать, имея такой шаблон? $GetRoleData = new WritePacket(); $GetRoleData -> WriteUInt32(-1); // always $GetRoleData -> WriteUInt32(1024); // roleid $GetRoleData -> Pack(0x1F43); // opcode Это было бы отличным примером, спасибо
    Сообщение от: Vorobey, 20 фев 2018 в разделе: PW Web
  13. Vorobey
    Всем привет! Знаю немного 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 этот код?... Если да, то где можно взять список этих опкодов? Спасибо за любые ответы
    Автор темы: Vorobey, 20 фев 2018, ответов - 14, в разделе: PW Web