МПМ Былины - Мир Древней Руси

МПМ Былины - Мир Древней Руси (https://www.bylins.su/vbb/index.php)
-   Ф/\Ей|\/| (https://www.bylins.su/vbb/forumdisplay.php?f=44)
-   -   О пользе публикации кода (https://www.bylins.su/vbb/showthread.php?t=4271)

prool 01.04.2012 01:08

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

Посмотрите в файл 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. Проверил, вроде работает


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

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