Veyn

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

13 сообщений в этой теме

a35a0d0e2bed7f08bc48906f2bae60f1.png

Проблема в том что ехе 2005-12-05 , вариант использовать другой ехе отпадает, есть ли возможность альтернативного решения?

0

Поделиться сообщением


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

какие пакеты в файле \db\packet_db.txt ? какой сервер ?

1

Поделиться сообщением


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

Судя по скрину, ошибка произошла в функции 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

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

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

4

Поделиться сообщением


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

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

mmo.h

#ifndef PACKETVER

#define PACKETVER 20051205

//#define PACKETVER 20120410

#endif

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

1

Поделиться сообщением


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

Все сделал, проблема осталась

0

Поделиться сообщением


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

Возможно Вы:

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

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

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

Проверяйте.

0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
#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).

0

Поделиться сообщением


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

Это Вы отладку запускаете, а не компиляцию.

Жмите F7 или Ctrl + Alt + F7

0

Поделиться сообщением


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

Ошибки в компиляции

4321335342e2146146b83791b6ae7bbc.png

0

Поделиться сообщением


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

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

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

1

Поделиться сообщением


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

Спасибо разобрался , сменил сборку

0

Поделиться сообщением


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

Создайте аккаунт или войдите для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!


Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.


Войти сейчас