Версия 2.4.8

13.01.2007

  • В таблицах рас и сущностей добавлен столбец Thirst - коэффициент степени жажды. Он же может служить показателем водности существа.
  • При воскрешении теперь удаляется эффект ожидания реинкарнации.
  • Команда сброскоманд теперь также прерывает колдовство.
  • Добавлены условия заклинаний: have_hunger, have_thirst.
  • Добавлено заклинание: иссушение.
  • Изменены условия заклинаний: loc_air, loct_air.
  • Добавлены условия заклинаний: loc_airopen, loct_airopen.
  • Добавлен тип действия заклинания: knockdown.
  • Добавлено заклинание: газовый взрыв.
  • В таблицах рас и сущностей добавлен столбец Warmth - коэффициент степени теплоизлучения.
  • Добавлены эффекты: warmth_up, warmth_down, infravision.
  • Добавлено заклинание: инфразрение.

14.01.2007

  • Добавлены заклинания: прижигание ран, возгорание, оковы плоти.

15.01.2007

  • Добавлена раса: огненный элементаль.
  • Добавлена сущность: берсеркер.
  • Добавлен навык: природная устойчивость.

17.01.2007

  • В таблицы рас и сущностей добавлен столбец Corporeality - коэффициент материальности существа.
  • В тех же таблицах столбцы Soul и Mind изменены с логических на численные, и являются коэффициентами соответственно астральной и ментальной силы существа.

20.01.2007

  • В таблицу эффектов добавлены столбцы AddParam и APCoeff - идентификатор и коэффициент параметра, изменяемого данным эффектом. Теперь для эффектов, просто меняющих параметры, не нужно писать обработку в коде. (итог: +2кб таблица, -7кб код)

22.01.2007

  • Исправлен глюк с минусовым счетчиком атак.
  • Практика владения оружием теперь зависит от базовой скорости этого оружия. Ключевым понятием стало не число раз удачного использования (попаданий), а время удачного использования.

27.01.2007

  • Завершены все изменения, необходимые для новой системы зрения.
  • Функция PositionAsText перенесена как метод TUser.PositionText и оптимизирована с помощью использования TStringBuilder. (-1.5кб кода)
  • Проверка на необходимость отправки шаблона (флаг guestinvis или призрак) перенесена из функции ParseTemplate в метод TUser.SendTemplate.
  • Функция ParseTemplate модернизирована на использование TStringBuilder.
  • Добавлены эффекты: ускорение протрезвления, замедление протрезвления.
  • Добавлены заклинания: северное дыхание, ясность разума.
  • Добавлено влияние опьянения на концентрацию.

28.01.2007

  • Сообщение о появлении персонажа перенесено после самого перемещения, чтобы считалось по освещенности конечной локации. (это касается ВСЕХ видов перемещений)
  • Упрощен метод SendMassMessage.
  • Добавлено понятие режима имен (обычный, знакомства, реальный), и возможность указания данного режима для шаблонов, видимого имени, и поиска по имени.
  • Удалено сохраняемое свойство персонажа Add и добавлен вызываемый при загрузке метод пересчета данного свойства.
  • Добавлено заклинание: сила воздуха.
  • Добавлена команда зрение.

02.02.2007

  • Создан новый итератор персонажей (TUserIterator) и все старые итераторы (TSearchUser) заменены на его использование. (+1.5кб кода новый, -4.5кб кода старый)
  • Исправлена пара ошибок в обработке шаблонов.

03.02.2007

  • Оптимизированы функции работы со списками персонажей под использование TUserIterator_List. (-0.5кб кода и большое ускорение)
  • Все ForEachUL заменены на использование TUserIterator. (-2.5кб кода)
  • В класс локации добавлен список персонажей, находящихся в ней. Этот список не сохраняется на диск, и используется только для быстрого перебора персонажей в данной локации. (по сравнению с перебором ВСЕХ персонажей и фильтра по их свойству Room - это ОЧЕНЬ быстро)

05.02.2007

  • Из расчетов диапазона и точки оптического зрения убрано все относящееся к расчету освещенности и поставлен один запрос освещенности локации.
  • В локации добавлено не сохраняемое свойство Luminosity (текущий уровень освещенности) и метод UpdateLuminosity (расчет и обновление уровня освещенности). Расчет теперь не ведется при каждом запросе освещенности, но необходимо на все события, изменяющие источники света, добавить вызов обновления.
  • Вызов обновления освещенности добавлен во все наиболее очевидные места.
  • Для мобов не считается граница слабой различимости, во избежание их анонимности.
  • Исправлены требования навыков при разборке проекта.

06.02.2007

  • Изменен принцип действия держания: не «локация держащегося всегда равна локации несущего», а «при изменении локации несущего меняются локации всех держащихся».
  • Для большей красивости переименованы свойства: TUser.Room в TUser.RoomId, TUser.RoomC в TUser.Room, TRoom.FileName в TRoom.Id.
  • Исправлена команда !локскрипт: она работала только с текущей локацией.
  • Исправлена ошибка в команде !мобкопия.

07.02.2007

  • Создана таблица команд, куда перенесены все данные о командах. Удалены почти все конструкторы классов команд, так как данные, заполняемые ими, теперь содержатся в таблице. Удалено ручное создание экземпляров команд, заменено на загрузку таблицы. Из статики удален список социалов. (-34кб кода, -3кб статика, +29кб таблица)
  • Все названия доп.команд перенесены из старого списка в общий языковой файл, что упростило их проверку. Список названий команд удален. (-10кб кода, -7кб статика, +4кб язык.файл)
  • Добавлена раса: полуэлементаль (воздух).

08.02.2007

  • Добавлены эффекты стихийных сущностей для возможности интерференций на них.
  • Добавлено влияние материальности на чувствительность к критическому удару и к травмам.
  • Добавлены эффекты: усиление запахов, ослабление запахов, блокировка запахов.

09.02.2007

  • Создан класс TCommandParser, передающийся командам для разбора параметров. Все команды переписаны под его использование. (-11кб кода)
  • Добавлены свойства персонажа Deity и Spouse.
  • Ввиду неиспользуемости удалено свойство персонажа WhoString.
  • Переписан метод получения WhoString и исправлены его применения.
  • Типичная конструкция «ошибка при отсутствии параметра» заменена на один вызов метода. (-1.6кб кода)
  • Доработана команда титул: если во введенном титуле есть имя, то титул заменит собой всю строку из кто, включая имя. Таким образом можно задавать любые титулы, в том числе и со словами перед именем.