Это код составления сетевого пакета для обновления значения в интерфейсе клиента.
Сейчас нету времени помочь, но искать нужно, скорее всего, в ../src/map/battle.c
Этот EXE файл был распакован после протектора Themida и секция ресурсов находится не последней. И большинство программ портят структуру PE файла при изменении иконки.
Смогу помочь после приезда домой.
Богдан
Днем уезжаю в другую страну на несколько недель. Так что нету времени сидеть в отладчике. Можете взять EXE 2015-05-13aRagexe
../src/config/core.h
Это багнутый EXE. Он иногда начинает посылать серверу битые сетевые пакеты.
Связано это с Вашей проблемой или нет - без понятия.
Но стОит заменить его на 2015-11-04aRagexe
Какой эмуль, EXE, защита используется?
Как часто проявляется проблема?
Когда появится проблема, то подключите WPE и посмотрите исходящие пакеты.
Отправляет EXE пакеты ходьбы при попытке сменить расположение персонажа на мапе?
Да, обязательно 586 - http://www.mediafire.com/download/zpfl4jwvnn9y76b
Или пересохраняем мапу в BrowEdit rev 586 или открываем rsw файл мапы в хекс редакторе и меняем 02 01 на 01 09 по оффсету 4
Все дело в компиляторе. Код функции sscanf в библиотеке Си ошибочно считает значение 0xFF(символ 'я') концом строки.
Вариантов несколько. Либо сменить компилятор, либо заменять вызов sscanf в функции _msg_config_read на свой "велосипед".
Я компилирую с помощью VS2010 и все ОК.
Открываем ../src/map/pc.c и в функции pc_gainexp меняем:
// Give EXP for Base Level
if (base_exp) {
на:
// Give EXP for Base Level
if (base_exp && (sd->status.base_level < 300 || quest == true)) {
Открываем ../src/map/clif.h и перед:
#endif /* _CLIF_H_ */
добавляем:
int clif_vend(struct map_session_data *sd, int skill_lv);