rAthena: Версия пакетов (PACKETVER) - npctheory/roguides GitHub Wiki

В каких файлах определяется или переопределяется версия пакетов

Есть в rAthena такая очень важная переменная: PACKETVER. Она много на что влияет.
Файлы, в которых вы определяете, какое значение будет использоваться на вашем сервере rAthena:

  • src/config/packets.hpp, в котором объявляется переменная PACKETVER.
  • src/custom/defines_pre.hpp, где по инструкции значение PACKETVER надо переопределять, когда это необходимо (можно переопределять и в packets.hpp, если вы не собираетесь качать обновления с Github).

Пример файла defines_pre.hpp, где я поменял значение PACKETVER на 20200401:

#ifndef CONFIG_CUSTOM_DEFINES_PRE_HPP
#define CONFIG_CUSTOM_DEFINES_PRE_HPP
#undef PACKETVER
#define PACKETVER 20200401
#endif

Допустимые значения PACKETVER

Какие значения PACKETVER используются в коде rAthena 3 4 5 6 7 20060819 20061218 20070227 20070521 20070711 20070904 20070918 20071002 20071106 20071113 20071128 20080102 20081112 20081126 20081217 20090218 20090603 20090922 20091103 20091104 20091117 20091124 20091201 20100000 20100105 20100119 20100223 20100309 20100413 20100420 20100427 20100629 20100701 20100714 20100803 20101124 20110111 20110208 20110222 20110718 20110928 20111005 20111010 20111025 20111101 20111108 20111122 20120000 20120101 20120221 20120307 20120404 20120410 20120418 20120618 20120702 20120925 20121010 20121128 20130000 20130710 20130717 20130724 20130731 20130821 20131218 20131223 20140000 20140205 20140423 20140613 20141008 20141016 20141022 20141119 20150101 20150225 20150226 20150513 20150826 20151001 20151104 20151202 20151223 20160113 20160302 20160316 20160323 20160330 20160525 20160921 20161012 20161116 20161207 20170208 20170315 20170419 20170502 20170726 20170830 20170920 20171025 20171122 20171207 20180103 20180207 20180221 20180307 20180321 20180511 20180516 20180704 20181002 20190724 20191106 20191204 20191224 20200724 20200902 20211103

Из названия "PACKETVER" вы могли догадаться, что переменная задает некую "версию пакетов". Когда встанет вопрос, а какую версию PACKETVER выбрать и надо ли ее вообще менять, вы найдете прямо в коде rAthena примеры разных значений переменной и связь этих значений с изменениями в структурах пакетов, в файлах вроде src/map/packets_struct.hpp или src/map/clif_packetdb.hpp.
Вы заметите, что переменная в коде rAthena используется вот таким способом:

#define PACKETVER_SUPPORTS_PINCODE PACKETVER >= 20110309

Что это значит? Что есть только пороговые значения переменной, а не какие-то фиксированные "версии протокола". Можете установить значение, которого нет в списке, например 20200401, тогда будет использоваться "версия" 20191224. Разные значения не только задают разные структуры пакетов но и включают-выключают фичи.

Какую версию ragexe выбрать для вашей rAthena

Выбрать ту версию ragexe, у которой дата в названии идеально совпадает с датой в PACKETVER.
Итак, у вас в rAthena установлено значение

 #define PACKETVER 20200401

А на сайте http://nemo.herc.ws/downloads/ вы нашли, что за эту дату есть целых шесть версий ragexe.exe:
2021-11-03_Ragexe_1635415878
2021-11-03_Ragexe_1635475013
2021-11-03_Ragexe_1635668972
2021-11-03_Ragexe_1635737028
2021-11-03_Ragexe_1635824489
2021-11-03_Ragexe_1635926200

Какой выбрать? Самый последний. Может быть там исправили какой-то баг, который присутствовал в предыдущих версиях.

⚠️ **GitHub.com Fallback** ⚠️