Перейти к содержанию

Проблема с пакетами


Рекомендуемые сообщения

Судя по скрину, ошибка произошла в функции parse_char. Эта функция присутствует только в char сервере.

Файл packet_db.txt читается только map сервером. Так что он в этой ситуации не при чем.

0x67 пакет используется при создании персонажа.

Если посмотреть код функции parse_char в эмуляторе rAthena, то мы увидим:


// create new char
#if PACKETVER >= 20120307
// S 0970 <name>.24B <slot>.B <hair color>.W <hair style>.W
case 0x970:
FIFOSD_CHECK(31);
#else
// S 0067 <name>.24B <str>.B <agi>.B <vit>.B <int>.B <dex>.B <luk>.B <slot>.B <hair color>.W <hair style>.W
case 0x67:
FIFOSD_CHECK(37);
#endif

Если PACKETVER >= 20120307, то сервер не будет в курсе о пакете 0x67.

Но поскольку Вы почти не дали информации, то смысла дальше гадать нету.

- выложите EXE на файловый обменник и запостите ссылку

- укажите тип и ревизию эмулятора

- укажите значения для PACKETVER в ../src/common/mmo.h

  • Upvote 1
Ссылка на комментарий
Поделиться на другие сайты

У Вас установлено неправильное значение для PACKETVER.

Но даже если его поправить, то дефолтная rAthena не будет работать с этим EXE.

Я набросал инструкцию(под спойлером), которая поможет подружить 2005-12-05a с rAthena.

Открываем ../src/common/mmo.h и для PACKETVER устанавливаем значение 20051205

Открываем ../db/packet_db.txt и для packet_db_ver устанавливаем значение 19

Открываем ../src/char/char.c и в функции mmo_char_tobuf меняем:


WBUFL(buf,42) = p->hp;
WBUFL(buf,46) = p->max_hp;
offset+=4;
buf = WBUFP(buffer,offset);

на:


#if PACKETVER == 20051205
WBUFW(buf,42) = min(p->hp, INT16_MAX);
WBUFW(buf,44) = min(p->max_hp, INT16_MAX);
#else
WBUFL(buf,42) = p->hp;
WBUFL(buf,46) = p->max_hp;
offset+=4;
buf = WBUFP(buffer,offset);
#endif

после:


WBUFW(buf,104) = p->slot;

пишем:


#if PACKETVER == 20051205
return 106;
#endif

В функции mmo_char_send006b меняем:


j = 24 + offset; // offset

на:


#if PACKETVER == 20051205
j = 4 + offset; // offset
#else
j = 24 + offset; // offset
#endif

Сохраняем изменения и компилируем сервера.

  • Upvote 4
Ссылка на комментарий
Поделиться на другие сайты

ваш exe 2005-12-05 сервер скомпелирован на 2012-03-07

mmo.h

#ifndef PACKETVER

#define PACKETVER 20051205

//#define PACKETVER 20120410

#endif

скомпелировать сервер

  • Upvote 1
Ссылка на комментарий
Поделиться на другие сайты

Возможно Вы:

- неправильно установили значение для PACKETVER

- не сохранили изменения

- не компилировали сервера после изменения исходников

Проверяйте.

Ссылка на комментарий
Поделиться на другие сайты

#ifndef PACKETVER

#define PACKETVER 20051205

//#define PACKETVER 20130320

//#define PACKETVER 20111116

#endif

PACKETVER

При компиляции выдает ошибку только такого характера

'char-server_sql.exe' (Win32): Loaded 'C:\Users\Veyn\Desktop\Server\rA_17690\char-server_sql.exe'. Symbols loaded.

'char-server_sql.exe' (Win32): Loaded 'C:\Windows\SysWOW64\ntdll.dll'. Cannot find or open the PDB file.

'char-server_sql.exe' (Win32): Loaded 'C:\Windows\SysWOW64\kernel32.dll'. Cannot find or open the PDB file.

'char-server_sql.exe' (Win32): Loaded 'C:\Windows\SysWOW64\KernelBase.dll'. Cannot find or open the PDB file.

'char-server_sql.exe' (Win32): Loaded 'C:\Windows\SysWOW64\ws2_32.dll'. Cannot find or open the PDB file.

'char-server_sql.exe' (Win32): Loaded 'C:\Windows\SysWOW64\msvcrt.dll'. Cannot find or open the PDB file.

'char-server_sql.exe' (Win32): Loaded 'C:\Windows\SysWOW64\rpcrt4.dll'. Cannot find or open the PDB file.

'char-server_sql.exe' (Win32): Loaded 'C:\Windows\SysWOW64\sspicli.dll'. Cannot find or open the PDB file.

'char-server_sql.exe' (Win32): Loaded 'C:\Windows\SysWOW64\cryptbase.dll'. Cannot find or open the PDB file.

'char-server_sql.exe' (Win32): Loaded 'C:\Windows\SysWOW64\sechost.dll'. Cannot find or open the PDB file.

'char-server_sql.exe' (Win32): Loaded 'C:\Windows\SysWOW64\nsi.dll'. Cannot find or open the PDB file.

'char-server_sql.exe' (Win32): Loaded 'C:\Users\Veyn\Desktop\Server\rA_17690\libmysql.dll'. Module was built without symbols.

'char-server_sql.exe' (Win32): Loaded 'C:\Windows\SysWOW64\wsock32.dll'. Cannot find or open the PDB file.

'char-server_sql.exe' (Win32): Loaded 'C:\Windows\SysWOW64\advapi32.dll'. Cannot find or open the PDB file.

'char-server_sql.exe' (Win32): Loaded 'C:\Windows\SysWOW64\cryptsp.dll'. Cannot find or open the PDB file.

'char-server_sql.exe' (Win32): Loaded 'C:\Windows\SysWOW64\rsaenh.dll'. Cannot find or open the PDB file.

'char-server_sql.exe' (Win32): Loaded 'C:\Windows\SysWOW64\version.dll'. Cannot find or open the PDB file.

'char-server_sql.exe' (Win32): Unloaded 'C:\Windows\SysWOW64\version.dll'

The program '[8228] char-server_sql.exe' has exited with code 1 (0x1).

Ссылка на комментарий
Поделиться на другие сайты

Либо используйте для компиляции предыдущие версии Visual Studio, либо качайте свежую rAthena и пользуйтесь rAthena-13.sln

Скачать свежую rAthena можно по ссылке - https://github.com/rathena/rathena/archive/master.zip

  • Upvote 1
Ссылка на комментарий
Поделиться на другие сайты

  • 3 недели спустя...
×
×
  • Создать...
Яндекс.Метрика