Вернуться   МПМ Былины - Мир Древней Руси > Для игроков > Ф/\Ей|\/|

Ф/\Ей|\/| Ну сами понимаете... должно быть место, которое не модерируется... Но не злоупотребляйте...

Ответ
 
Опции темы Опции просмотра
Старый 01.04.2012, 01:08   #1
prool
Занятой мадер
 
Регистрация: 25.09.2007
Адрес: Харьков
Сообщений: 149
По умолчанию О пользе публикации кода

Многие удивляются, зачем публиковать свой код в открытом доступе, ведь это же ноухау и его надо продавать. А в этом есть польза, например, если на базе этого кода кто-то будет делать что-то своё и найдет ошибку. Так вот, я нашел небольшую ошибку в коде Былин:

Посмотрите в файл char_player.cpp

Вот фрагмент

//added by WorM 2010.08.27 лоадим мыло и последний ip даже при считывании индексов
while((reboot) && (!*GET_EMAIL(this) || !*GET_LASTIP(this)))
{
if (!fbgetline(fl, line))
{
log(”SYSERROR: Wrong file ascii %d %s”, id, filename);
return (-1);
}

Так начинается цикл, который не успокоится, пока не прочитает пользовательский файл до конца и не найдет там е-мейл игрока (параметр Emal) и последний хост (Host). Так вот, иногда поле хост становится пустым. Я не совсем понял, когда это происходит, то ли при неправильной перезагрузке мада (shutdown reboot и shutdown die работают чуть-чуть по разному), то ли при неправильном выходе пользователя (обрыве связи), то ли при одновременном заходе с одного IP, то ли при перелогинивании, то ли для только что созданных чаров, то ли это глюки резольвера на моём компьтере. Так вот, когда поле Host становится пустым, пользовательский файл считается неверным (wrong) и удаляется. Я подумал, что это неправильно и что пустое поле host можно пережить, тем более, что при следующем заходе игрока оно наверняка заполнится. И внес изменение, такое, чтобы игрока не удаляло. Вместо return (-1) я поставил break. Проверил, вроде работает
__________________
Prool

http://prool.kharkov.org
prool вне форума   Ответить с цитированием
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Часовой пояс GMT +4, время: 21:59.


Powered by vBulletin® Version 3.8.1
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot