Здравствуйте, гость ( Вход | Регистрация )

 
Тема закрытаОткрыть новую тему
> Русский Revision для Sphere Server 0.55(R1-R4.0.1)
DihlofozzZ
сообщение 14.11.2005, 18:41
Сообщение #1


***********

Администратор форума
Сообщений: 5.602
Регистрация: 8.3.2003
Группа: Администраторы
Наличность: 0
Из: Москва Россия
Пользователь №: 237



(с) http://rbg.al.ru/spherehelp/

Sphere Server 0.55 R1
Код

11-11-2003, Zorm
- Исправлен баг с покраской всего. Теперь красится только dye tub
- Добавлены проверки на недопустимые символы во входящих текстовых пакетах
- Исправлен баг с дюпом факелов и свечек
- Игроки больше не могут поднимать айтемы из слоя layer_horse
- Игроки больше не могут поднимать айтемы-сообщения из доски объявлений
- Максимальная сумма статсов при создании персонажа изменена с 66 на 80 для поддержки новых prof.txt
- Теперь проверяется цвет одежды при создании чара
- Добавлено несколько проверок для имён персонажей при создании
- Эффект от телепорта (ГМов?) больше не наносит повреждений игрокам
- При смене хозяина животные "забывают" всех старых владельцев
- Исправлен экплоит, когда при помощи программ, аналогичных UO Injection,
 игроки моги видеть реальное количество хитпоинтов других игроков
- Аккаунт Administrator не получает автоматически привилегий администратора
- Если игрок не может использовать команду, она расценивается как обычный спич (появляется над головой)
- Меню воскрешения больше не посылается
- Убийство согильдийцев не меняет кармы/фэйма/киллов
- Расширена поддержка Юникода в спиче. Текст в Юникоде обрабатывается как текст в Юникоде :)
- Текст в формате не Юникод посылается как текст в Юникоде

12-11-2003, Kell
- Добавлен триггер @CallGuards, "return 1" отменяет вызов стражников
- Изменён @Logout так, что "return 1" отменяет инсталогаут (моментальный логаут)
- Добавлена поддержка следующих тэгов на чарах:
 TAG.NAME.ALT - альтернативное имя
 TAG.NAME.PREFIX - альтернативный префикс, если не установлен - используется префикс по-умолчанию
 (Lord/Lady)
 TAG.NAME.SUFFIX - суффикс (после имени)
 Между префиксом, именем и суффиксом автоматически пробелов не добавляется. Чтобы, к примеру,
 префикс был оттделён от имени, пробел должен быть включен в тэг, для чего текст тэга можно
 заключить в кавычки: TAG.NAME.PREFIX="text "
- Макрос "open door" теперь вызывает @DClick (@ItemDClick).
- @DClick вызывается на НПС ДО попытки на него сесть, открытия paperdoll'а или бэкпака
 ("return 1" запрещает действие)
- Если REAPAMOUNT отсутствует в описании добываемых ресурсов, по-умолчанию используется AMOUNT/3

13-11-2003, Kell
- Чары игроков с установленным флагом statf_conjured при смерти "падают с лошади" :) и флаг
 снимается. Полезно, если надо сделать, чтоб при смерти не оставалось трупа
 ( в ON=@Death : flags = <flags> | statf_conjured ).
- Исправлен баг, когда паутина и spider silk оставались лежать на полу сутками

14-11-2003, Zorm
- Исправлена поддержка клиента версии 1.26.x, теперь он может заходить на 55i сервер

Sphere Server 0.55 R2
Код

14-11-2003, Kell
- Исправлена обработка <<args>>. Также исправлена обработка численных команд
 (скиллов), так что <7> используется для доступа к скиллу №7
- Убран лог-файл, создаваемый при запуске в директории со сферой вместо папки с логами.
 Но всё равно будет появляться, когда сфера запускается как NT сервис.

15-11-2003, Zorm
- Добавлена проверка на видимость цели для таминга
- Армор изменён с BYTE на WORD, исправляет баг с AR > 255
- Исправлен CanSeeLOS, проверяет, если z координата цели выше z координаты источника + 14
 и блокирует, если так.
- Исправлен баг с киллами на логауте.
- Запещён стилинг из окна обмена и игровых досок
- Айтемы с аттрибутом ATTR_OWNED не могут быть залочены магией?
- Добавлен триггер @DeathCorpse, argn1 = UID трупа?
- Айтемы из окна обмена падают в пак перед смертью
- Проверка аккаунта при первом подключении (раньше была после выбора сервера)
- Добавлен триггер @start в секции описания скиллов [SKILL x]
- Отключена провокация игроков

16-11-2003, Kell
- Отменённые (сбитые) скиллы не дают прироста скилла/статсов на фэйле. (Исправляет кучу
 всяких багов на скиллы и статсы :)
- Добавлена поддержка тэга TAG.NAME.HUE (цевет отображения имени)
- Добавлен триггер @SkillSelect для чаров и @Select в секции описания скиллов (Срабатывает
 при нажатии кнопки в списке скиллов у тех из них, у которых она есть, "return 1" запрещает
 использование скилла).
- Добавлена поддержка FORCHARS/FORITEMS/FOROBJS: SRC - источник события, объект по-умолчанию
 внутри FOR блока - найденный объект (при этом теряется связь с объектом, на котором цикл
 вызван, так что внтри блока он не доступен)
- Добавлен триггер @SkillSuccess для чаров и @Success в секции описания скиллов
 ("return 1" отменяет действия по-умолчанию).
- Изменён триггер @SkillStart, так что "return 1" отменяет дальнейшую работу скилла
 (то же самое для @Start в [SKILL x]).
- Изменён триггер @Login, так что "return 1" запрещает вход в игру
- Добавлен триггер @UserSkills - срабатывает, когда игроку посылаются апдэйты скиллов
 ("return 1" запрещает открытие списка скиллов).
- Добавлен триггер @UserStats - срабатывает, когда клиент запрашивает апдэйт статсов
- Добавлен триггер @SkillMakeItem для чаров, срабатывает после создания айтема в крафтовых скиллах:
 "return 1" - удаляет созданный айтем
 "return 0" - кладёт айтем в пак, как обычно, но без дополнительных сообщений
              ("The item of superior quality" и т.д.)
 "return"   - действия по-умолчанию

17-11-2003, Kell
- Исправлен баг с ресинком секций [SPELL x].
- Добавлены триггеры в секции описания магии ([SPELL x]):
 @Select ( "return 1" отменяет каст, "return 0" пропускает внутренние проверки, "return" -
         действия по-умолчанию )
 @Start  ( "return 1" отменяет каст )
 @Fail   ( "return 1" отменяет эффекты на фэйле - звук и анимацию ).
 @Success
- Изменён формат SERV.LOG, теперь позволяет писать сообщения в логи. Новый синтаксис:
 serv.log @enable   - Включает лог
 serv.log @disable  - Выключает лог
 serv.log @toggle   - Переключает лог
 serv.log text      - Пишет текст в консоли и в лог-файл

18-11-2003, DarkStorm
- Добавлены цвета в косоли под Linux

18-11-2003, Kell
- Тэги теперь доступны на всех типах объектов.
- Исправлен баг с ресинком секций [SKILL x] (spheretables.scp), когда скиллы теряли дефнэймы.
 Смерть функции FIXACTION! :)

18-11-2003, Zorm
- Исправлен баг с ГМ-скими командами, которые "слышат" НПС. Не работает поддержка Юникода в спиче.
- Исправлено получение fame

19-11-2003, Kell
- Добавлена команда .DBG - исключительно для отладочных целей :)
 Всё, что умеет - генерить исключения (Critical exceptions) :)

19-11-2003, DarkStorm
- Добавлена поддержка MD5-хэширования паролей в аккаунтах. Включается при помощи
 параметра MD5PASSWORDS=1 в sphere.ini. После включения аккаунты сохраняются
 с закодированными паролями. ВНИМАНИЕ: Дальнейшее выключение хэширования не приведёт
 к раскодированию паролей обратно и игроки не смогут войти под своими аккаунтами.
 Однажды включенная, эта опция не должна в последствии быть изменена (если только
 вы не хотите проставить все пароли обратно вручную :)
- Добавлена проверка для предотвращения создания аккаунтов с именем "eof"
- Исправлена помощь, выводимая .serv.accounts

20-11-2003, Kell
- Добавлен параметр INTERRUPT=X,Y в секции описания магии [SPELL x]. Регулирует
 шанс сбить каст магии ударом в бою при разных значениях скилла магии.
 Значения по умолчанию - INTERRUPT=100.0,100.0 (сбивать всегда, как на сферах, начиная с 53).
 При INTERRUPT=100.0,50.0 касты у ГМ-мага сбиваются только в половине случаев.
 (INTERRUPT=100.0,50.0 означает 100.0% фэйлов при скилле 0, 50.0% при скилле 100.0)
- НПС, пытающиеся одеть айтемы, которые для них слишком тяжелы, на @NPCRestock, больше
 не будут вызывать сотни ошибок в консоли и логах.
- Добавлен параметр LOSTNPCTELEPORT=X в sphere.ini. Когда X > 0, НПС с установленной точкой
 HOME будут телепортироваться домой (в эту точку), если расстояние от дома до их текущего
 местоположения больше, чем X. Фиксит "заблудившихся" НПС, зашедших в портал и идущих потом
 домой через всю карту.
- Наконец добился устойчивой работы сферы под Linux - она теперь ловит большинство сигналов
 и нормально вызывает исключения. Проверено в single-thread режиме
 (FREEZERESTARTTIME=0 в sphere.ini) и без бэкграунд сэйва.
- Изменена процедура загрузки, так что sphere.ini грузится до каких-либо сообщений в логи.
 Это позволяет обработать LOG= строку в sphere.ini до создания лог-файла, так что он
 создаётся в указанном месте, поэтому убедитесь, что строчка LOG=%путь к лог-файлу%
 одна из первых в sphere.ini
- "return 1" в триггерах @Start и @Success скиллов не вызывает триггера @Fail. Если нужно,
 чтоб вызывало - можно использовать старый способ ACTION=-1. Это совместимо со скриптами
 .55i, потому что т.к. "return 1" никогда в ней и не работал, там, где нужен @Fail,
 уже итак должно стоять ACTION=-1 :)

21-11-2003, Kell
- Добавлен переключатель в sphere.ini, "EXPERIMENTAL", для установки флагов,
 которые активизируют некоторые эксперементальные возможности (далее EF 0x????)
- EF 0x0001 включает фикс пакетов для серверов под Linux, для XCMD_Spy.
 Следует установить этот флаг, если игроки не могут зайти на сервер.
- EF 0x0002 включает новые исправления для Юникода.
- EF 0x0004 включает фикс CanSeeLOS zorm'а. Это необходимо, т.к. данный фикс не
 позволяет кастовать на горках - проблема, конечно, не большая, но пускай в общем будет
 флаг, чтоб это выключить :))
- EF 0x0008 - боевые скиллы не прерываются при смене ACT. Фикс для скриптов -
 переписанных комбатов, когда при драке с несколькими противниками сбиваются удары.
- EF 0x0010 активизирует параметр INTERRUPT в секциях [SPELL x]
- Рекомендованное значение для параметра EXPERIMENTAL:
 EXPERIMENTAL=013

22-11-2003, Kell
- Попытка исправить баг, когда смена ACT в триггере @Hit сбивает удар,
 путём восставновления ACT после триггера
- Добавлен параметр SKIPDIFFICULTY (0 по-умолчанию или 1) в секции [SKILL x].
 При установке его равным 1 сфера пропускает хардкодовую проверку сложности и
 позволяет вставлять свои проверки в @Success и использовать "return 1" при неудаче.
- Исправлен триггер @Select, когда return 1 оставлял чара ожидать действия.

22-11-2003, Zorm
- Добавлины ключи для клиентов вплоть до 3.0.3
- Думаю, я наконец исправил Юникод спич :))

22-11-2003, Kell
- LOSTNPCTELEPORT теперь проверяет homedist и не НПС не будет телепортироваться, если находится
 в пределах homedist. Это позволяет устанавливать небольшие значения LOSTNPCTELEPORT.
- Ещё фиксы версии для Linux, теперь она должна работать с бэкграунд сэйвами.

23-11-2003, Zorm
- Эксперементальная поддержка прекастинга, включается флагом EF_Precast (020),
 до конца не протестировано - работа в процессе.

24-11-2003, Kell
- Добавлен SERV.SPELL(x).yyy, где x - номер спэлла, а yyy - любой параметр из секции
 [SPELL x], типа MANAUSE или RESOURCES. Также можно использовать RESCAST для описания
 необходимых ресурсов (выводятся их имена и кол-во, как в RESMAKE у айтемов)
- Добавлен SERV.SKILL(x).yyy, где x - номер скилла, а yyy - любой параметр из секции
 [SKILL x], типа KEY или TITLE.

25-11-2003, Kell
- НПС со скиллом SPIRITSPEAK >= 100.0 могут видеть мёртвых игроков, как хилеры.
 Позволяет использовать ON = @NPCSeeNewPlayer и "человеческие мозги" :) для
 взаимодействия НПС с гостами, без использования у НПС "мозгов" хилера.
- Добавлен флаг NORESROBE в sphere.ini. Если равен 1, игрокам не выдаётся роба при воскрешении

26-11-2003, Kell
- Изменены SERV.SPELL и SERV.SKILL, так что позволяют теперь использовать не только номера,
 но и дефнэймы скиллов или спэллов.
 (SERV.SKILL также понимает названия скиллов, как например <SERV.SKILL(Magery).TITLE>)
- SERV.ITEMDEF(x).yyy для доступа к полям секций [ITEMDEF x]
- SERV.CHARDEF(x).yyy для доступа к полям секций [CHARDEF x]

27-11-2003, Kell
- Прямо перед самым релизом исправлен баг, унаследованный от .55j, когда неизвестные слова
 при обработке оставались нетронутыми. Например, '<SERV.NONEXISTANT>' после
 обработки оставалось '<SERV.NONEXISTANT>', а не заменялось на '', как было в 55i.
 Теперь сфера возвращает '', и также выводит сообщение об ошибке в консоли (и в логах).
- Версия под Linux теперь деклалрирована, как стабильная. Незначительные проблемы всё ещё
 существуют, как например нажатие CTRL-C в консоли не есть хороший способ завершить сервер,
 и скорее всего приведёт к зацикливанию. Однако это незначительная проблема, всё ещё пытаюсь
 её решить.
- Добавлена функция CANMAKESKILL для проверки только скиллов, необходимых, чтобы сделать айтем
 (проверяет только поле SKILLMAKE, не обращая внимание на RESOURCES)
- Добавлена функция "fval", работает точно так же, как "eval", но возвращает число в формате x.x
 (с одним знаком после запятой)
- Похоже существует проблема с использованием триггера @Success для прекращения работы скилла -
 иногда скилл нормально не завершается и использование его (или другого скилла) снова
 выводит сообщение "you must wait to perform another action". Игроки могут просто сбить скилл,
 2 раза нажав TAB, или можно использовать ACTION=-1 для принудительного завершения скилла.

Sphere Server 0.55 R2a
Код

30-11-2003, Zorm
- Исправлен текст, иногда идущий целиком в верхнем регистре и команды с body=c_man_gm

01-12-2003, Kell
- Добавлены триггеры @EquipTest (для айтемов) и @ItemEquipTest (для чаров).
 "return 1" запрещает одевать айтем.
- Изменения в @SkillItemMake - "return 1" удаляет айтем только если в триггере не был
 назначен контэйнер для айтема (например через bounce)
- Исправлен баг с незавершающимися скиллами (также исправлена картография)
- Исправлен баг с суммоном (Linux only)
- Удалены все спецефические обработчики для SERV.xxx(y).zzz, теперь используется стандартные.
 Можно использовать как SERV.xxx(y).zzz, так и SERV.xxx.y.zzz формат
- Изменены настройки компилятора для опртимизации по скорости.

02-12-2003, Kell
- Исправлены REAPAMOUNT / AMOUNT. Формат идентичен формату ADVANCE для скиллов
 (например в руде REAPAMOUNT=2,4,8,16,32 означает, что при скилле 0 выкапывается максимум 2
 еденицы руды, при скилле 25.0 - 4, при 50.0 - 8, при 75.0 - 16, при 100.0 - 32).
- Добавлен параметр SPEECHSELF= в sphere.ini для установки дефнэйма спич-блока,
 который будет вызываться для перехвата спича игрока. Рекомендовано: SPEECHSELF=spk_player
 "return 1" "глушит" спич - запрещает игроку говорить.
- Удалён "home home home" - кому надо, может засунуть его в spk_player
- Добавлен параметр SPEECHPET= в sphere.ini - спич-блок для всех НПС, имеющих хозяев.


--------------------
С уважением Администратор Форума.
Контактный Email: dihlofozzz@uokit.com


Topic Closed
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DihlofozzZ
сообщение 14.11.2005, 18:43
Сообщение #2


***********

Администратор форума
Сообщений: 5.602
Регистрация: 8.3.2003
Группа: Администраторы
Наличность: 0
Из: Москва Россия
Пользователь №: 237



(с) http://rbg.al.ru/spherehelp/

Sphere Server 0.55 R3rc1
[code]
09-12-2003
- Добавлены тэги в секции CHARDEF/ITEMDEF. Если аналогичный тэг присутствует на
 экземпляре объекта, он перекрывает тэг в описании объекта (т.е. определённый в указанных
 секциях)

10-12-2003, Kell
- Добавлен параметр OptionFlags в sphere.ini для установки различных опций. (далее OF_????)
- Добавлен OF_Magic_IgnoreAR = 0001 - армор класс не влияет на урон (для переписанных комбатов).
- Добавлен параметр ACTDIFF для чаров - "сложность" текущего действия (используется в расчётах
 fail/success и шанса прироста скилла)
 Рекомендации: ACTDIFF можно использовать, чтобы менять (задавать) сложность в триггере
 @Start скиллов.
- Добавлен триггер @Effect в секции описания спэллов [SPELL x], вызывается после @SpellEffect
- <TAG0.xxx> - возвращает "0" в качестве значения по-умолчанию для тэгов (вместо "",
 когда тэг не определён - смерть "0<tag.xz>" :).
- TAG0.xxx = yyy также может использоваться, если yyy = 0, то тэг не сохраняется (то же самое,
 что "TAG.xxx=" )
 Использование TAG0 позволяет иметь тэги, которые сохраняются только когда отличны от 0.
 Удобно для тэгов, значение которых обычно 0, но которые часто используются
 (например тэги, которые должны существовать на всех чарах).
- Добавлен VAR0 (то же, что и TAG0, но для глобальных переменных VAR).

11-12-2003, Kell
- Добавлен OF_Magic_CanHarmSelf = 0002 спэллы с флагом SPELLFLAG_HARM действуют на себя
- Изменена функция rand(x), теперь позволяет использовать 2-ой параметр, задавая тем самым
 область, в пределах которой должно браться случайное число (от x до y-1)

12-12-2003, Kell
- Новый формат @color,font text для SYSMESSAGE и MESSAGE. Значения шрифтов от 0 до 9:
     FONT_BOLD, // 0 - Жирный текст = большие буквы, как надпись "Server PAUSED..." :)
     FONT_SHAD, // 1 - Текст с тенью = маленький, серый
     FONT_BOLD_SHAD, // 2 - Жирный с тенью = что-то среднее между 2-мя предыдущими :)
     FONT_NORMAL, // 3 - Нормальный (шрифт по-умолчанию)
     FONT_GOTH, // 4 - Готический
     FONT_ITAL, // 5 - Наклонный
     FONT_SM_DARK, // 6 - Мелкий
     FONT_COLOR, // 7 - Полноцветный шрифт (глючный?)
     FONT_RUNE, // 8 - Символы рун (Только буквы в верхнем регистре!)
     FONT_SM_LITE, // 9 - Мелкий
- Изменён SKILLMAKE, теперь позволяет выделять отдельные ресурсы (скиллы) из списка.
 SKILLMAKE.1 возвращает 1-ый скилл, SKILLMAKE.1.VAL возвращает необходимое значение
 и SKILLMAKE.1.KEY - имя скилла.

13-12-2003, Kell
- Добавлена функция RELEASE для НПС, то же самое, что команда "release", сказанная животному.
- Добавлен триггер @NPCFollow, вызывается, когда НПС следует за кем-то.

14-12-2003, Kell
- Изменена функция ATTACK - теперь понимает UID чара, которого следует атаковать, в качестве параметра
- Изменена функция TRY - убрана проверка на плэвел и достягаемость (CanTouch())
 Кому нужны эти проверки - может использовать TRYP
 (TRYP 0 проверяет только на достягаемость).
- Добавлено полезное ключевое слово в скрипты - "OBJ", используется как указатель на айтем.
 Что-то вроде ACT, но может использоваться где угодно.
 Например:
    OBJ = <UID>
    SAY You are <OBJ.NAME>, with uid <OBJ.UID>.
- Изменена функция MEMORY, понимает UID в качестве параметра, позволяет найти память для данного UID.
 Если вызывается без аргументов, используется UID источника (SRC) как обычно.
 Также может теперь использоваться для чтения/записи.
 Пример:
    MEMORY <SRC.UID> 0200 // set memory
    SAY Memory flag regarding <UID> is <MEMORY.<SRC.UID>>.

15-12-2003, Kell
- Изменён @UserSkills, <argn1> теперь номер скилла, -1 - список всех скиллов
 Позволяет запретить посылку ихменений скиллов клиенту.
- НПС не будут говорить "Yes Master", если задан SPEECHPET в sphere.ini (кому надо -
 может сам прописать :) Если SPEECHPET не задан, они всё равно ничего не будут говорить до тех пор
 пока не увидят своего хозяина (Удобно для ГМов). Игроки больше не будут отвечать "Sorry" на комадны ГМа.
- Добыча ресурсов изменена так, что проверяется SKILLMAKE добываемого айтема. Ресурсы, не прошедшие
 проверку canmake игнорируются и в процессе выбора ресурса не учасвтвуют. Если вдруг почему-то
 кому-нибудь захочется вернуться к старому стилю - просто закомментируйте строку со SKILLMAKE
 в секции описания руды.
- return 1 в триггере @Step на айтеме теперь блокирует движение в том направлении (ой ли? :)
 @Step на всех остальных айтемах в той же локации всё равно срабатывает.
- Добавлен OF_Skill_DiffFirst = 0008. Когда флаг установлен, сложность для скилла расчитывается
 до вызоыва триггеров @Start/@SkillStart. Преимущество этого, что сложность может быть изменена внутри
 этих триггеров через ACTDIFF. Чтобы "зафэйлить" скилл, ACTDIFF должен быть установлен больше текущего
 (изменённого) скилла. Отрицательное значение ACTDIFF означает, что скилл будет отменён, т.е. не будет
 вызываться @Fail и не будет расти скилл.
 Пример установки сложности для скилла arms lore как минимум равному скиллу, необходимому для
 изготовления вещи (первичному скиллу). У чара со скиллом больше ACTDIFF попытки будут всегда удачны.
 ON = @Start
  if ( <SRC.ACTDIFF> < <SRC.ACT.SKILLMAKE.1.VAL> )
     SRC.ACTDIFF = <SRC.ACT.SKILLMAKE.1.VAL>
  endif

16-12-2003, Kell
- Теперь можно использовать NEWITEM, NEWNPC и NEWDUPE на айтемах, указатель на созданный
 объект - ключевое слово NEW. При использовании этих функций на чарах укзатели будут оба -
 NEW и ACT. Если надо создать айтем или чара на другом чаре, не меняя его ACT, можно
 использовать SERV.NEWITEM и т.д.
 Пример:
   NEWITEM i_gold
   NEW.AMOUNT 100
   NEW.P = <TOPOBJ.P>
 NEW также может использоваться в качестве временного указателя на объект, как OBJ (или ACT)

17-12-2003, Kell
- Функциям, возвращающим значения, теперь могут передаваться текстовые аргументы в процессе
 вызова, как например IF <SRC.myfunction Say hello> == 1
- Добавлен параметр RANGE=min,max или RANGE=max (min по-умолчанию 0) для описаний айтемов и чаров
 (секции ITEMDEF и CHARDEF). Значение по-умолчанию для оружия и чаров - 1.
 Суммарная дальность считается как RANGE чара + RANGE оружия - 1.
 Например: Допустим у всех чаров RANGE=1 (как на самом деле и есть), установка RANGE=2 для алебадры
 означает, что чар будет бить на 1 клетку дальше.

18-12-2003, Kell
- Основная секция диалогов [DIALOG x] теперь интерпретируется целиком как любой другой скрипт,
 это позволяет добавлять логику в диалоги, использовать условия, и т.д.
 Единственное ограничение на данный момент - это что команды гампов разрешены только в секции
 диалогов, но не внутри функций, ну да пока и так сойдёт :)
- Диалоги больше не конфликтуют друг с другом. INPDLG тоже работает, т.к. только один INPDLG
 одновременно может присутствровать на экране .
- Добавлен RESOURCES.n, RESOURCES.n.KEY и RESOURCES.n.VAL для айтемов/чаров.

19-12-2003, Kell
- Для более удобного написания диалогов добавлен "курсор" и относительные координаты:
    dorigin 50 50 // установить кусор в позицию x=50, y=50
 Использование символа "*" перед координатой обозначает, что координата считается относительно
 положения курсора, и смещает курсор в новое положение:
    dtext     *0    *10    0    // курсор теперь в точке x=50, y=60
 Использование символа "+" перед координатой обозначает, что координата считается относительно
 положения курсора, сам же курсор при этом остаётся на месте:
    dtext     +10     -    0    // добавляет 10 к X
 Как пример, представьте написание списка из 3-х столбцов на расстоянии 200 пикселей друг от друга
 и расстояние между строками 20 пикселей:

 dorigin 10 10
 // первая строка
 dtext     *0   -    5   1:
   dtext  +10   -    0   the text for row1, col1
 dtext   *200   -    5   2:  // x курсора = 200
   dtext  +10   -    0   the text for row1, col2
 dtext   *200   -    5   3:  // x курсора = 400
   dtext  +10   -    0   the text for row1, col2
 
 получится что-то вроде
 1:the text for row1, col1     2:the text for row1, col2     3:the text for row1, col2
 
 Для второй строки надо только сместить Y курсора на 20 вниз: "dorigin 10 *20",
 остальной текст абсолютно идентичен (можно даже организовать цикл, операторы для которого
 которого добавлены позже :)
- Исправлен баг с FORCHARS/ITEMS/OBJS и ключевыми словами, начинающимись с "FOR" (типа FORensics).
- Изменены textadd и gumptext для объединения эквивалентных строк под одним индексом.
 Так что для записи
   gumptext 10 20  This is an example.
   gumptext 10 40  This is an example.
   gumptext 10 60  This is an example.
 сфера создаст только 1 текстовый ID. Это делает ненужным существование отдельной секции
 [DIALOG ... TEXT]. Хотя, подобная секция удобна для хранения всех строк в одном месте.
 В общем кому как больше нравится :)

20-12-2003, Kell
- Одинаковые плэвелы должны видеть друг друга, собственно что они теперь и делают :)
- Теперь можно открывать дилоги на определённой странице, формат DIALOG d_dialog_name pagenumber.
- Добавлена новая команда DTEXT в диалоги, которая заботится об обработке текста сама:
    dtext x y color  Actual text comes here.
 Текст, добавленный подобным образом, на самом деле автоматически добавляется в секцию
 [DIALOG ... TEXT]. Если приведённый текст используется только 1 раз, то это обрабатывается быстрей,
 чем использование обычного "text" и добавление текста в секцию [DIALOG ... TEXT].
 Также добавлены аналогичные комманды DCROPPEDTEXT и DTEXTENTRY, где вместо индэкса строки также
 напрямую используется текст. Также добавлена команда DHTMLGUMP, синтаксис такой же, как HTMLGUMP,
 за исключением того, что индэкс строки текста убран, а сам текст следует последним.
- Команды гампов (диалогов) теперь можно использовать в теле функций! Т.е. теперь по сути возможно
 создавать собственные команды для диалогов! Смерть copy&paste диалогам! :)

21-12-2003, Kell
- Аргументы в функциях теперь изменяемые. Некоторые из триггеров читают изменённые значения
 аргументов и используют их там, где это может на что-то повлиять. На данный момент это триггеры:
    @GetHit, ARGN1 - наносимый урон, ARGN2 - тип урона (как обычно, но теперь их можно менять).
    @Hit, ARGN1 - базовый урон, без учёта армора (изменяемый). ARGO - оружие (если есть).
    @PersonalSpace, ARGN1 - стамина, необходимая для движения (изменяемый).
 "return 1" запрещает движение, "return 0" разрешает движение и не пишет никаких хардкодовых
 сообщений, "return" или вообще отсутсвие return'а - действия по-умолчанию.
 ARGO в @Hit, @HitTry и @HitMiss также указывает на оружие (так что не нужно искать его по слоям :)
 Также хочется заметить, что ACTDIFF тоже доступен и может использоваться для изменения сложности
 скилла, даже заставить скилл сработать тогда, когда он должен бы сфэйлить (присвоив ACTDIFF=0).
 Также теперь он может быть доступен в @HitTry, и если присвоено любое неотрицательное значение,
 вместо попадания будет промах.
- Добавлена функция StrEat, удаляет из строки слово до пробела (<streat("hello there friend")>
 или <streat hello there friend> возвращает "there friend")
- Доавлен <SERV.LOOKUPSKILL skill name>,  возвращает номер скилла по имени или -1,
 если скилл не найден.
- Пара фиксов в диалогах.
- LOCAL.xxx в теле функций для локальных переменных. Они чуть более эффективны нежели куча глобальных
 переменных из-за более быстрого поиска в меньших массивах строк. Локальные переменные всегда
 инициалихзируются со значением "0".
- ARGN1, ARGN2 и ARGN3 определены для функций с численными аргументами. Так что когда возможно, лучше
 использовать их вместо argv. Например: "myfunction  123 50 89" - эти 3 значения будут
 находиться в ARGN1, ARGN2 и ARGN3.

22-12-2003, Kell
- Функции теперь могут возвращать строки, используя "return". При этом они ведут себя как тэги -
 т.е.
    return 2+2
 возвращает строку "2+2", а не "4". Для того, чтоб возврщало "4" придётся принудительно вызывать
 "eval":
    return <eval (2+2)>
 С этим могут возникнуть проблемы, если где-то используется "return rand" или что-нибудь вроде того,
 вместо "return <eval rand..."
 ДЕВЕЛОПЕР! УБЕДИСЬ, что используешь "EVAL" в строках с "return", если хочешь, чтоб они обсчитывались
 перед тем, как возвращаются! :D В следующей версии, видимо, не будет флага EF_ReturnString.

- Изменены функции профайла для слежения за средними показателями. Среднее время считается каждую
 секунду как 90% от предыдущего показателя среднего времени + 10% текущего времени.
- Добавлено новое ключевой слово в триггеры @Create / @NPCRestock и скрипты темплэйтов:
 FULLINTERP. FULLINTERP=1 позволяет использовать там функции, условия и т.д.
 Например:
 ON = @NPCRestock
    ITEM=i_cape
    FULLINTERP
       ITEM=i_robe
       MY_FUNCTION_CALL
 FULLINTERP 0 отключает эту возможность после того, как она была включена, но это обычно
 нафиг не нужно :), т.к. FULLINTERP затьрагивает только оставшуюся часть текущего скрипта.
 Необходимо помнить, что при этом накладываются определённые ограничения, т.к. NPC ещё не
 находится в мире.

23-12-2003, Kell
- Добавлен доступ к параметрам TERRAIN и STATICS либо через P.key, MOREP.key, либо через
 SERV.MAP(x,y).key, где key один из следующих:
   TERRAIN ID тайла карты
   ISDIRT проверяет ID на предмет приндалежности оного к грязи :)
   ISGRASS трава?
   ISROCK камень (скала)?
   ISWATER вода?
   STATICS количество статических айтемов в данной точке
   STATICS(n) ID энного статического айтема (Например: <SERV.MAP(200,300).STATICS(0)>.
Не вызывает ошибок в консоли, если айтем не существует, просто возвращает 0 - удобно для
проверки на статику без пересчитывания и циклов)
   STATICS.n  то же самое
   STATICS(n).key доступ к полям соответствующего ITEMDEF.
Например: <SERV.MAP(200,300).STATICS(0).NAME>

- Добавлены базовые циклы, WHILE, ситаксис:
    WHILE ( выражение )
// тело цикла, текущий номер повторения в <LOCAL._WHILE>
    END // или ENDWHILE

 также добавлен оператор FOR, заканчивается оператором END или ENDFOR, синтаксис:

     FOR 5 // повторяться от 0 до 5, текущий номер повторения в LOCAL._FOR
 или FOR 3 5 // повторяться от 3 до 5, текущий номер повторения в LOCAL._FOR
 или FOR K 5 // повторяться от 0 до 5, текущий номер повторения в LOCAL.K
 или FOR K 3 5 // повторяться от 3 до 5, текущий номер повторения в LOCAL.K
// бла бла бла
     END  // или ENDFOR

 Изменение данных локальных переменных не оказывает влияния на цикл.
- Изменён шрифт в консоли Windows на Courier, у него буквы одинаковой ширины, так что строки в
 консоли выглядят выровнеными.
- Теперь можно добавлять свои секции [SKILL x], до 70. SERV.MAXSKILLS - сколько скиллов загружено.
 Однако они не будут посылаться клиенту, т.к. клиент их не поддерживает (hint: @UserSkills).
 Также добавлен параметр FLAGS в секции [SKILL x], значения флагов следующие:
    [DEFNAME skill_defs]
    SKF_SCRIPTED 01 // Нет хардокодовых действий, только триггеры срабатывают.
    // можете добавлять свои флаги сколько угодно, но желательно после 01000, дабы оставить место
 для будущего расширения.
 Ну это всё, как обычно, очень эксперементальное, так что используйте, естественно,
 на свой страх и риск :)
- SKILLSELECT skill - "нажать" кнопку соответствующего скилла (если скилл с кнопкой)

24-12-2003, Kell
- Исправлен баг, когда типы в секции [TYPEDEFS] теряли свои значения при ресинке.
- Добавлена функция <CANMOVE dir>, аргумент - направление (как для WALK),
 возвращает ID рагиона, в который "идём" или 0, если проход блокирован.
- Добавлена функция <MOVE dir>, аргумент - направление (как для WALK), возвращает флаги
 для тайла в указанной точке. Флаг 04 - можно ходить. Полный список флагов кто-то потёр :)
 Данне ключевое слово может быть изменено в будущем.


27-12-2003, Kell
- добавлена поддержка цвета и режима проприсовки для EFFECT. Если не указаны - используются старые
 пакеты, иначе новые. Проверено и работает на клиентах, начиная с 2.0.3 (вообще должно работать
 на всех клиентах 2.0.* серии).
- Поддержка клиентов 3.0.*, должны нормально работать, вплоть до LBR (Они в общем-то итак работали,
 просто флудили ошибками в консоли).
- Добавлен оператор (%) для численных выражений (например: 12 % 3 == 0).
- Добавлена команда SENDPACKET для клиентов. Для более удобной посылки слов (WORD, 2 байта) и
 двойных слов (DWORD, 4 байта) можно использовать префиксы 'W' и 'D' соответственно (также
 поддерживается префикс 'B' для байтов, но он обычно не нужен). Как пример - установка уровня
 освещённости для клиента:
    SRC.SENDPACKET   04e  D<SRC.UID>  20
 04e и 20 могут использовать префикс 'B', заметьте как <SRC.UID> использует префикс 'D',
 чтобы указать, что оно занимает 4 байта (двойное слово).
 Также необходимо заметить, что каждый параметр сначала обсчитывается и обрезается, и только
 потом используется. Так что если, например, использовать 0fffffffe (который в общем-то далеко
 не байт :) на месте, где предполагается использование байта, то оно превратится в 0fe.
 Если поставить туда (2+2), оно посчитается и станет "4" перед использованием.

28-12-2003, Kell
- Добавлены параметры OSTR, ODEX, OINT для чаров.
- Добавлены параметры MODSTR, MODDEX, MODINT - модифицированные статсы, спэллы теперь меняют их.
 Статсы начинают падать только если сумма O-статсов больше статкапа, модифицированыые статсы в
 статкапе не учитываются.
- STR, DEX и INT теперь всегда равны O + MOD. Если у чара OSTR=50, MODSTR=0 и потом ему меняется
 STR=60, то его MODSTR становится равным 10 (а OSTR не меняется).
 *** ИЗМЕНЕНО! *** См. запись от 19-01-2004
- Добавлены MAXHITS/MAXMANA/MAXSTAM. Если 0, используется максимальное значение по-умолчанию
 (например, MAXSTR по умолчанию равно STR). (Для значения по-умолчанию надо присваивать пустую
 строку, а не 0, например:
   MAXHITS=
 т.к. там учитываются модифицированные статсы.
 MAX всегда содержит MOD для соответствующего статса. Т.е. если у чара MAXHITS=100 и MODSTR=10,
 на самом деле MAXHITS записано, как 90, и при изменении MODSTR меняется и MAXHITS. Это для
 совместимости со спэллами, меняющими статсы, т.к. те меняют не только статсы, но и максимальные
 значения hits/stam/mana.
- Теперь можно использовать тэги на аккаунтах. Оба TAG и TAG0 доступны.
- Исправлен LOCAL._WHILE внтури циклов WHILE.
- Изменена секция BUTTON диалогов, теперь монимает формат
    ON = min max
 для похожих действий на нескольких конпках - используется, если ID конпоки попадает между min и
 max (включительно). ARGN1 - ID кнопки, которая на самом деле нажата (даже если указан не диапазон,
 а всего одна конопка, как обычно).

29-12-2003, Kell
- Исправлен баг, когда некоторые скилл не завершались корректно, если другой скилл использоволся до
 того, как они завершились. Например спэллы не физлились, если использовать какой-то скилл до
 окончания каста.
- Для скиллов триггер @Fail теперь вызывается, когда неудача произошла в результате нормальной
 работы скилла (например, фэйл из-за высокой сложности). Триггер @Abort вызывается, когда скилл
 "сбивается" каким-либо образом, например использованим другого скилла, или в результате каких-то
 ошибок (выбросили реги после начала каста).
 Если @Fail взывается, это означает, что скилл будет расти, хоть и медленней, но при использовании
 "return 1" в теле триггера скилл расти не будет (см. MANUAL.TXT).
- Начал реализовывать нормальную работу для EF_CanSeeLOS. На данный момент она проверяет высоту
 статических айтемов на пути к цели.
- Использование слова "SECTOR" для доступа к параметрам сектора теперь обязательно. Так что для
 доступа к параметрам "light" или "rainchance" надо использовать SRC.SECTOR.RAINCHANCE, в то
 время как раньше можно было просто SRC.RAINCHANCE. У этого есть несколько преимуществ -
 люди итак уже обычно используют SECTOR, так что это позволяет быстрей обрабатывать команды
 на чарах, т.к. меньше строк для проверки.

30-12-2003, Kell
- Исправлен небольшой баг с кармой/фэймом.
- Добавлен параметр FEATURES= в sphere.ini, для задания возможностей, которые сервер включит
 в клиенте в процессе соединения:
  0001 - (T2A) включить кнопку чата
  0002 - (LBR) включить звук из LBR (играет MP3'шки вместо MIDI)
  0004 - (T2A) включить T2A апдэйт
  0008 - (LBR) включить LBR апдэйт (показывать монстров)
 Стандартная .55i автоматически включает 0001, но теперь его можно выключить :)
- Добавлена команда DIALOGCLOSE. Первый аргумент - имя диалога для закрытия, 2-ой аргумент -
 кнопка, нажатием которой закрывается диалог (по-умолчанию 0)
 пример:
   DIALOGCLOSE d_my_dialog
 Можно вставить эту команду одной из 1-ых в секцию диалога, чтобы быть увереным, что только
 один диалог данного типа одновременно открыт у клиента.

02-01-2004, Kell
- Добавлены ключевые слова для управления соединением в sphere.ini, значение 0 отключает
 любую из этих установок.
 Убедитесь, что знаете, что вы делаете, при установке этого:
 * ConnectingMax=x, где x - максимальное количество клиентов, которые могут одновременно
     быть подключёнными к серверу, но не находиться в игре (http, логин и т.д.).
     Самые старые клиенты, которые до сих пор не в игре, отключаются при коннекте новых.
     Значение по-умолчанию: 24
 * ConnectingMaxIP=x, То же самое, но с одного IP. Т.е. максимальное количество клиентов с
     одного IP, которые могут одновременно быть подключёнными к серверу, но не находиться в игре.
     "not in game" connections will be allowed per IP. Notice that HTTP
     Значение по-умолчанию: 8
 * ClientMaxIP=x, максимальное количество соединений с одного IP. ЗНАЧЕНИЕНЕ СЛЕДУЕТ УСТАНАВЛИВАТЬ
     СЛИШКОМ МАЛЕНЬКИМ, или вы рискуете выглядеть глупо :) Куча ситуаций, когда соединения могут
     исходить с одного IP, компьютерные клубы - самая распространённая из них.
     Значение по-умолчанию: 0
- Исправлена серьёзная проблема, когда ошибки при логине могли оставлять висящими сокеты.
- В сообщениях о коннекте/дисконнекте теперь 2 номера после IP-адреса.
 1-ый - количество соединений с данного адреса, которые не в игре, 2-ой - общее число соединений
 с данного адреса.
- В файлы мира OSTR и MODSTR теперь сохраняются вместо STR. Если встречается "STR",
 она интерпретируется как OSTR. Это неплохо работает для конвертирования старых сэйвов,
 даже если чар под воздействием спэллов, меняющих статсы, т.к. они "просто"
 делают MODSTR отрицательным (ага, с таким "просто" мы потом статкапа фиг когда достигнем :)
 ЗЫ: это работает применительно ко всем статсам, STR - это просто как пример.
- Если в перывй раз устанавливается какая-либо характеристика для НПС, когда Ostat = 0,
 сфера установит Ostat, а не MODstat. Другими словами, если в триггере @Create стоит
 STR=20, у НПС будет OSTR=20 и MODSTR=0. Если потом написать STR=30 на том-же НПС,
 OSTR останется 20, а MODSTR станет равна 10.
 *** ИЗМЕНЕНО! *** См. запись от 19-01-2004
- Исправлен небольшой баг, когда спеллы, меняющие статсы, не проставляли правильно MODstat.

03-01-2004, Kell
- Добавлены унарные операторы "*=", "+=", "-=", "/=", "%=", "|=", "&=" and "!=" (стиль C).
 На самом деле сфера просто заменяет строки формата
   XXX += YYY
 на
   XXX = <eval (<XXX> + (YYY))>
 Так что теперь можно писать
   MANA += 10/2  // то же, что и MANA = <eval (<MANA> + (10/2))>
   ATTR &= ~attr_magic  // то же, что и ATTR = <eval (<ATTR> & (~attr_magic))>
- Добавлен оператор ".=", соединяет строки.
 На самом деле сфера просто заменяет строки формата
   XXX .= YYY
 на
   XXX = <XXX>YYY
 Тут подразумеваются параметры, поддерживающие текстовые значения (NAME, TITLE, VAR, LOCAL и т.д.)
- Первая попытка реализовать нормальную проверку линии видимости (LOS) с учётом z координаты.
 Чтобы цель была видна, мы должны быть в состоянии дойти напрямую до неё (здесь ничего нового),
 и заончить путь на допустимой высоте. Так что можно увидеть объект на возвышенности, но нельзя,
 если вы на этаж ниже его. Всё это особо на производительность не влияет, так что можете включить
 эту возможность установкой флага EF_CanSeeLos (04).
- Хотьба по диагонали (например NW) возможна только если чар может пройти в оба из ортогональных
 направлений (NW -> N и W). Это исправляет несколько эксплоитов со стороны клиента, а также
 НПСей, ходящих через углы, Yew tree и т.д. Включается установкой флага EF_DiagonalWalkCheck (010)
- Для определения высоты, находясь на которой над айтемом чар будет вызывать триггер @Step, теперь
 используется высота самого айтема, а не хардкодовое значение "3". Это позволяет иметь триггеры @Step
 на столах, которые будут срабатывать, когда чар стоит на нём.
- Если в триггере @SpellEffect не опрпеделён источник (SRC), то источником принимается сам чар,
 на котором сработал триггер. Исправляет баг с исключениями (Critical exceptions) при вызове функции
 SPELLEFFECT на таймере и т.д.
- Добавлены триггеры @NPCLookAtChar и @NPCLookAtItem (см. manual.txt). Не следует ими злоупотр<вырезано анти-матом>ть,
 т.к. они могут повлиять на производительность.

04-01-2004, Kell
- Добавлена функция ISNEARTYPE, первый аргумент - тип, 2-ой - максимальная дистанция для поиска
 (по-умолчанию 4). Также формат ISNEARTYPE.P, возвращает "0", если ничего не найдено, или
 координаты найденного объекта.
- Изменена функция DISTANCE, теперь понимает UID объекта, до которого надо измерить расстояние,
 в качетсве параметра, либо координаты точки. Так что теперь можно использовать запись типа
    <DISTANCE <MOREP>>  <DISTANCE trinsic>  <DISTANCE <SRC.ACT.UID>>
 Если аргументов не указано, считает расстояние до источника (SRC), как обычно.
 Если передаются неверные координаты или несуществующий UID - пишет ошибку в консоли.
- TIMERD теперь читаемый (десятые доли от TIMER).
- Убрана проверка на видимость из USEITEM. Ибо весь смысл данной команды - активизирование айтема
 из скриптов, без проверки на достягаемость. Тогда, собственно, нафига там нужна проверка на
 видимость? :) Все эи тесты выполняет DCLICK. Ключевое слово "USE" итак позволяло использовать
 формат "USE 0", чтобы не проверять на достягаемость, но также проверяло на видимость.
 Больше не проверяет;)
- Биты спавнов меняют свой вид сразу после изменения MORE1.
- Даблклик по уже сброшенному (more2=0) спавну чаров устанавливает ему таймер 1, так что он
 респавнится через секунду.
- Добавлена команда MOVENEAR для объектов (айтемов/чаров). 1-ый аргумент - UID айтема, рядом
 с который двигать, 2-ой аргумент - дистанция. 3-ий аргумент, если присутсвтует и
 равен "0", то айтем не посылает апдэйт пакетов.
 Пример:
    ON = @DClick
       MOVENEAR <SRC.UID> 5 // подвинуть на 5 шагов от SRC
 При этом подобное передвижение учитывает стены и т.д. (возможность попасть отсюда в ту точку,
 удобно для переписывания спавнов).
- Установка ARGN1=1 в @Login запрещает показывать скролл MOTD.

05-01-2004, Kell
- Исправлен эксплоит с '\n' в textentry и inpdlg.
- Секции AREA и ROOM в формате
    [AREA name here]
 Теперь лучше использовать в формате
    [AREADEF a_some_def] // ROOMDEF для комнат
    NAME=name here
 Так оно ресинкается без конфликтов регионов.
 Совет: Держите регионы в разных форматах в разных файлах. Или найдите скрипт для
 конвертирования из старого формата в новый, или ручками :)
 Секции [Teleporters] и [Moongates] уберите в отдельные файлы (т.к. они не ресинкаются).
 Замечание: Не обязательно использовать новый формат. Однако ж это рекомендуется, т.к.
 позволяет изменять регионы без перезапуска сервера.
 Все последующие возможности сохранения всяких тэгов и т.д. в регионах будут доступны
 только для регионов в новом формате (или для регионов ,у которых определён DEFNAME).
- Добавлна инструкция CALL для вызова функции, но разделяя локальные переменные с вызвавшей функцией.
 Очень удобно для разбиения функции на мелкие куски, не функционирующие по-отдельности.
 Другими словами, если вызвать функцию при помощи CALL, все локальные переменные вызывающей из
 текущей функции будут доступны в вызываемой функции и наоборот (переменные, объявленные внутри
 вызываемой функции будут доступны в вызывающей после окончания работы вызываемой %)
 [FUNCTION myfunction1]
      LOCAL.VAL1 = 12
      CALL myfunction2 1, 2  // LOCAL.VAL1 будет доступна в myfunction2
      // если LOCAL.VAL1 изменится в myfunction2, она также изменится и здесь.
 Если вызываемой функции не передавать аргументов, то аргументы вызывающей (args/argn/argv)
 также будут разделены, и весь процесс быстрей, нежели вызов функций без CALL. Если передавать
 аргументы в функцию, то разделяются только локальные переменные, и сам процесс немного медленней.
 Незаметно, но в принципе.
 Это также может использоваться, как <CALL Function ...>, быстрей без аргументов, медленней с.
- Вдруг осознал, что ВСЕ DEFNAME'ы доступны через VAR. Это означает, что все itemdef'ы, chardef'ы,
 и т.д. имеют записи в списке глобальных переменных VAR (можете попробовать <VAR.i_dagger>).
 Это есть потенциальная причина многих проблем.
    1) Когда сфера пытается получить доступ к глобальной переменной VAR, она ищет её среди ВСЕХ
    существующих дефнэймов (на разных серверах от 2-3 до 5-10 тысяч :).
    2) Вы можете нечаянно создать переменную с именем, таким же, как у какого-нибудь айтема, и...
    ну в общем понятно :)
 Теперь VAR/VAR0 содержат только глобальные переменные, которые могут изменяться, а доступ к
 дефнэймам осуществляется через DEF/DEF0 и они не изменяемые. Разница в скорости заметна
 невооружённым глазом :) Раньше каждый раз, когда использовался VAR, сфера искала его имя во всём
 списке дефнэймов из несколькоих тысяч элементов. Теперь же каждое обращение ищет имя только в
 списке из переменных, созданных вашими скриптами (количество которых даже на шардах-экстремалах
 по-идее не должно превышать сотни :).
 Это также позволяет сохранять глобальные переменные в мире.
 Хотя это довольно здоровое изменение во внутренностях сферы, оно почти не влияет на скрипты, за
 исключением ситуаций, когда:
    1) Вы создали DEFNAME флаг в скриптах и меняете его во время работы сервера. Это очень
       нетипичная ситуация, но если вам это надо - вы можете просто один раз создать VAR в скриптах,
       она сохранится в spherevers.scp (Почему? Очень даже типичная - временные флаги, действующие до
       ручного отключения и сбрасывающиеся при перезапуске сервера - такая удобная вещь была для
       квестов :)
    2) Вы используете дефнэймы через VAR. Однако повода для этого я не вижу, т.к. DEF'ы / VAR'ы
       могут использоваться без префикса "VAR." (Не всегда, есть пара ситуаций, когда не могут :)
 Если не использовать префиксы DEF или VAR to для доступа к переменным, то сначала берётся VAR,
 если существует, если же нет, то DEF, т.е. старый формат сохранён.
- VAR'ы теперь сохраняются в spheredata.scp. Если при загрузке сфера не обнаружит данного файла,
 она выдаст предупреждение, но продолжит загружаться и создаст файл при следующем сохранении мира.
- GM пэйджи также сохраняются в spheredata.scp. Слишком много людей заинтересованы в обработке оных
 для создания всяких вэб интерфэйсов или скриптов для Mirc, Так что теперь им не надо читать весь
 мир для этого.

06-01-2004, Kell
- Добавлен флаг "S" для SENDPACKET, позволяет посылать строки напрямую. Если строка не в кавычках,
 она заканчивается после первого пробела. Пример:
    SENDPACKET 00 S"This is the string to send" 0
    SENDPACKET 00 SUpToTheSpace 0
 Если строка должна заканчиваться нулевым символом, просто поставьте там 0 как показано выше.
 Иначе скорее всего придётся указать длину строки (функция strlen) - в зависимости от пакета.
- Добавлен новый код огранечителя скорости передвижения: существует максимальная скорость, с
 которой чар может двигаться. Если чар передвигается быстрей заданой скорости, каждую десятую
 долю секунды он теряет "единицу хотьбы", каждую десятую долю секунды, в которую чар
 передвигается медленней ожидаемой скорости, он получает дополнительную единицу.
 Количество единиц, с которыми чар начинает и максимальное количество единиц задаются параметром
 WALKBUFFER в sphere.ini. Я тестировал это со значениями около 40 для хороших соединений и 70 для
 лагающих. Если игрок на спидхаке, его буффер скоро окажется < 0 и он не сможет двигаться
 и ему придётся компенсировать это периодами медленной хотьбы, как в лаге.
 WALKREGEN - скорость регенерации единиц хотьбы, в процентах (от чего? :).
 Значения по-умолчанию: WALKBUFFER=50   WALKREGEN=25
 Hints:
WALKBUFFER чем меньше - тем строже контроль. Однако, слишком низкие значения могут "поймать"
   кого-то, кто просто сильно лагает. Следует увеличить это значение при уменьшении
 WALKREGEN.
WALKREGEN чем меньше - тем дольше "лагает" потом чаров. Имеет смысл уменьшить значение при
 увеличении WALKBUFFER.
- Удалены некоторые EF_ флаги, которые более не нужны, т.к. ничего страшного от них, судя по всему,
 не случается. Убедитесь, что прочитали MANUAL.TXT.
- Изменён триггер @DropOn_Item и @ItemDropOn_Item, теперь вызывается при бросании айтемав контэйнер.
 Вызывается, когда айтем с триггером брошен на другой айтем.
- добавлен триггер @DropOn_Self и @ItemDropOn_Self, вызываются, когда на айтем с триггером брошен
 другой айтем.
- Введены триггеры @DropOn_Char и @ItemDropOn_Char.
- при выходе из этих триггеров по "return 1", айтем упадёт обратно в пак только тогда, когда всё ещё
 "перетаскивается" (в слое layer_dragging). Это позволяет задавать новое место для айтема в теле
 триггера.
- Клиенты могут класть вещи в банк только если стоят на том же месте, где его открыли.
 Это также теперь может проверяться в скриптах.
- Исправлен Injection эксплоит, позволявший получать доступ к банку в любой точке мира.
- Добавлены триггеры @SkillGain и @Gain (см. MANUAL.TXT).

07-01-2004, Kell
- Автоматическое присваивание дефнэймов для регионов, объявленных в старом формате
 (AREA / ROOM). Этот дефнэйм строится из имени и делается уникальным путём добавления
 к имени номера.
- В консоли сервера можно набрать "d a" - сфера сохранит все регионы в новом формате в
 файле "map_all.scp". Я настоятельно рекомендую заменить старый файл карты этим файлом,
 т.к. это позволит окончательно уйти от старого формата.
 Замечение: Телепортеры и мунгейты не сохраняются в данном файле, так что их лучше заранее
 засунуть в отдельные файлы, чтобы регионы могли нормально ресинкаться.
- Ещё раз не менее настоятельно рекомендовано выполнить все операции, описаные выше, т.к.
 это даёт следующие преимущества:
 * Загрузка будет осуществляться быстрей, т.к. сервер не будет генерить дефнэ


--------------------
С уважением Администратор Форума.
Контактный Email: dihlofozzz@uokit.com


Topic Closed
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DihlofozzZ
сообщение 14.11.2005, 18:45
Сообщение #3


***********

Администратор форума
Сообщений: 5.602
Регистрация: 8.3.2003
Группа: Администраторы
Наличность: 0
Из: Москва Россия
Пользователь №: 237



(с) http://rbg.al.ru/spherehelp/

Sphere Server 0.55 R3rc4
Код

07-02-2004, Kell
- Добавлен параметр FeaturesLogin= в sphere.ini, позволяет устанавливать флаги, посылаемые
 в пакете 0xA9 при логине.

08-02-2004, Kell
- Добавлены EVENTS/TEVENTS для айтемов. Порядок вызова триггеров следующий:
  1) Если триггер вызван чаром - сначала "айтемовые" триггеры на чаре (@ItemDClick и т.д.).
  2) триггеры в EVENTS на айтеме
  3) триггеры в TEVENTS на айтеме
  4) триггеры в соответствующей типу айтема секции TYPEDEF
  5) триггеры в секции ITEMDEF описания айтема
  6) хардкод (если есть).
 "return 1" в любом месте прекращает дальнейшее выполнение.

21-02-2004, Kell
- Существует особенность/баг - при проверке, имеет ли игрок некоторые определённые айтемы,
 любой из айтемов того же типа используется вместо указанного. Это айтемы:
    0175d (cloth), 01067 (leather), 01078 (hides), 01bdd (log), 01bd7 (boards),
 00f3f (arrow), 01bfb (bolt).
 например, когда сервер пытается найти стрелу (arrow), любой айтем с типом t_weapon_arrow
 подойдёт, и так далее.
 Добавлен флаг EF_Item_Strict_Comparison (0200) для выключения подобного поведения.

25-03-2004, Radiant
- Добавлены некоторые боевые, серверные сообщения и сообщения от команд в sphere_msgs.scp.
- Добавлены 2 команды для работы с файлами:
  SERV.WRITEFILE <filename> <text>
  SERV.DELETEFILE <filename>
 так как команды могут нести довольно деструктивный характер, флаг OF_FileCommands (080)
 должен быть установлен, чтоб они работали.
 Будте осторожны, любой GM с доступом к SERV.* может использовать данные команды!
 (с доступом к SERV.* он, кстати, может и флаг OF_FileCommands установить, так что смысл? :)
- Добавлен триггер @UserChatButton (return 1 запрещает открытие окна чата)
- Добавлен триггер @UserMailBag (return 1 запрещает действия по умолчанию (сообщение))
 Замечание: Он, кажется, также срабатывает при логине, попробуйте что-нибудь вроде
   if (<uid> == <src.uid>)
     return 1
   endif
 для предотвращения этого.

26-03-2004, Radiant
- Добавлена функция <READFILE filename line>
 Если line == 0 - она вернёт последнюю строку в файле, если line == -1 - первую.
 Эта функция требует установленного флага OF_FileCommands (080).
 Возвращает пустую строку при ошибке.
- Добавлена функция <FILELINES filename>, возвращает кол-во строк в файле.
 Если возвращает 0, это означает, что либо файл не существует, либо к нему нет доступа.
 Функция также нуждается в установленном флаге OF_FileCommands (080).
- Добавлены некоторые сообщения об ошибках и другие в sphere_msgs.scp.
- Добавлена функция SYSMESSAGEUA (синтаксис эквивалентен SAYUA).
 *** NOTE *** Люди, использующие скрипт Тарана на цветной sysmessage, столкнутся с
 проблемами в его работе. Удалите скрипт Тарана и приведите ваши скрипты к формату
 хардкодовой функции (которая куда быстрей и надёжней).
- Добавлен символ конца строки в сообщения об ошибках для TRY, а также UID объекта,
 вызывавшего ошибку.
- Добавлен триггер @Attack (Срабатывает на агрессоре после того, как тот даблкликнул по
 чару для атаки). SRC - цель. "return 1" отменяет атаку.
- Добавлен триггер @UserWarmode, срабатывает, когда клиент нажимает кнопку вармода,
 до того, как сфера сменит режим на боевой или обратно.
 ARGN - текущее состояние (1 = боевой режим, 0 = мирный). "return 1" отменяет смену режима.

27-03-2004, Radiant
- Заставил сферу компилиться под FreeBSD, она пока не особо стабильна, работаю над этим
 (проблемы с обработкой сигналов).
- Добавлена функция TRYSRC <uid> <verb>, выполняет <verb> с
 <uid> в качестве источника (SRC).
 Объект по-умолчанию для <verb> - объект, на котором вызыван TRYSRC , так что
 link.trysrc <cont.uid> сделает <link> объектом по-умолчанию и
 <cont> источником <src>. Очень нужная и полезная в хозяйстве вещь
 (особенно в таймерах)

28-03-2004, Radiant
- Отключил SENDPACKET S"" вместо этого используйте <ASC> (разбивает строку на байты).
- Каст спеллов recall/gate travel на айтем теперь вызываетs @SpellEffect на этом айтеме.

31-03-2004, Radiant
- Добавлен флаг OF_NoItemNaming (0100), запрещает сфере обзывать айтемы "sword crafted by Player"
- Добавлен флаг EF_No_Pause_Packet (0400), запрещает сфере постоянно слать Disable Redraw
 (pause) пакеты. Это для уменьшения трафика и лагов.
 Сохраняет около 45 байтов для каждого действия, вроде не много, но можно заметить разницу.

02-04-2004, Radiant
- Изменен skillsum на DWORD, исправляет проблему с неработающими скиллкапом при больших значениях.

04-04-2004, Radiant
- Селл Gate travel теперь линкует гейт с чаром, его открывшим.

06-04-2004, Radiant
- Хилинг нормально сбивается при ударе, исправляет проблему с exception'ами.

08-04-2004, Radiant
- Исправлена проблема с сигналами в версии под Linux/FreeBSD, но в общем всё равно
 ещё куча проблем :)

09-04-2004, Radiant
- Собственно одна из них, пускай короче Kell разбирается;)

11-04-2004, Balkon
- Исправлен баг - при поднятии айтема из кучки на полу, на кучке сбрасывался таймер
- Добавлен триггер @Pickup_Self - вызывается на контэйнере, когда из него что-то пытаются
 поднять, ARGO - айтем, который пытаемся поднять.
 @ItemPickup_Self для чаров, ACT - контэйнер , ARGO - айтем, который пытаемся поднять
 Убран Reveal() при луте трупов - кому надо, может в @Pickup_Self трупа прописать
- @Dropon_Char, @ItemDropon_Char теперь вызываются также, когда айтем бросается прямо на чара
 (до окна обмена и триггеров @NPCAccept/Refuseitem), ARGO - чар, на которго бросаем айтем,
 или его бэкпак (если бросаем в бэкпак)

11-04-2004, Balkon
- Исправлен баг с провокацией чара против айтема
- Return 1 в триггере @Login исправлен (чар не остаётся стоять в мире, не зацикливается проверка
 версии клиента)
- Исправлены CONT и TOPOBJ в @EquipTest, айтем не трогается при отмене попытки эквипа даблкликом

12-04-2004, Radiant
- Добавлено свойство LOCALLIGHT для чаров, когда 0 - используется уровень освещённости в секторе,
 если LOCALLIGHT больше - он используется вместо уровня освещённости сектора.
 При смене освещённости необходимо использовать UPDATE, т.к. она автоматически не обновляется.
 Также перекрывает найтсайт.
 (note: чтобы установить чару уровень освещённости 0 - прсто установите флаг nightsight)

13-04-2004, Balkon
- Добавлен флаг OF_NoHouseMuteSpeech (0200) - если установлен - игроки, находящиеся в доме
 и за пределами АМ могут слышать друг друга
- Начал переделывать CanSeeLos и CanWalk, временно добавил флаг EF_CanSeeLos_New (0800) для
 включения обоих изменений. Сейчас оно исправляет баги со стрельбой через стены и
 проваливанием под пол на пересечении АМ

14-04-2004, Radiant
- Триггер @DClick теперь вызывается перед попыткой одеть айтем (перед @EquipTest и @Equip)

15-04-2004, Balkon
- Добавлен флаг EF_WalkCheck (01000) - новый код для хотьбы, должен исправить кучу багов
 на лут домов (патченая вердата, проход под лестницей и т.д.)
 Замечание: в дефолтовом скрипт паке некоторые из лестниц прописаны в DUPELIST'е айтемов,
 которые лестницами на самом деле не являются, так что они наследуют неправльные
 CAN флаги (не установлен CAN_I_CLIMB). Убедитесь, что поправили свои скрипты перед тем, как
 включать данный флаг, или не сможете ходить по некоторым из динамических лестниц

16-04-2004, Balkon
- Несколько фиксов и небольшая оптимизация в EF_WalkCheck
- Исправлен баг, когда суммоненые НПС призывались с лутом и отдавали его по команде DROP
- Исправлен баг, когда RESOURCES.1 возвращал строку в формате RESMAKE
- Исправлен баг с дюпом шафтов и т.д. (баг с выкидыванием ресурсов во время крафта)

17-04-2004, Radiant
- Начал работу над базовым функционированием AOS, включается флагом EF_AgeOfShadows (02000).
 На данный момент только включает подсказки (tooltips, которые, в общем-то, пока даже и
 не работают). Не забудьте установить флаг 020 в FeaturesLogin!
- Исправлен эксплоит, позволявший кому угодно крэшить сферу или запускать код на машине,
 при этом даже не логинясь.
- Исправлены подсказки AOS, на данный момент показывают только имя чара или айтема.
 Остальное добавлю потом.
- Добавлен показ нанесенного урона, как в AOS/LBR (требует установленного флага EF_AgeOfShadows).
 Показывает только ударившему и получившему удар чарам, думаю, оно на OSI так и работает
 (али нет?). Всем показывать - это ж какие лаги и сколько траффика выйдет!

17-04-2004, Balkon
- баг с дюпом факелов/свечек вроде бы наконец точно исправлен :)

18-04-2004, Balkon
- Исправлен баг - свойства ACCOUNT не были доступны для чаров в оффлайне
- добавлена функция ISPLAYER - просто маленькая фича :)
- добавлена функция ISONLINE - для игроков возвращает 1, если клиент в игре (connected),
 в противном случае 0, для НПС возвращает 1, когда НПС в мире и 0, когда в "оффлайне"
 (шринкованые животные, ездовые, когда на них сидят)
- добавлена функция NOTOGETFLAG, возвращает флаги отношения указанного чара к данному,
 синтаксис: NOTOGETFLAG Viewer_Serial,Allow_Incognito
 возвращаемые значения:
    NOTO_GOOD  1 // хороший (синий)
    NOTO_GUILD_SAME   2 // согильдиец
    NOTO_NEUTRAL    3 // нейтрал
    NOTO_CRIMINAL    4 // криминал
    NOTO_GUILD_WAR    5 // чар из враждебной гильдии
    NOTO_EVIL  6 // красный
 если используется без аргументов, то в качестве "смотрящего" чара используется
 текущий SRC, NOTOGETFLAG 0,1 возвращает флаги для текущего SRC с Allow_Incognito = true
 Замечание: для красных согильдийцев возвращается NOTO_EVIL, а не NOTO_GUILD_SAME

18-04-2004, Radiant
- Некоторые добавления в подсказки AOS

19-04-2004, Kell
- Несколько изменений в посказках AOS для межплатформенной совместимости (itoa).

19-04-2004, Radiant
- Исправлен баг, когда обновлённые статсы не посылались с установленным EF_No_Pause_Packet
- @userStats вызывается при каждом обновлении статсов, если ARGN3 == 1, то это клиент открыл
 окно статуса
- Ещё добавления в посказки
- Добавлены всплывающие меню, как в AOS/LBR, активируются путём установки флага 08 в
 FeaturesLogin (на данный момент только для чаров).

19-04-2004, Balkon
- Исправлен баг с RANGE

20-04-2004, Balkon
- Оптимизация трафика:
 мелкие пакеты обновления статсов шлются вместо полного статуса, когда изменяются только
 хиты/мана/мтамина или их махсимальные значения.
 HITSUPDATERATE в sphere.ini котролирует, как часто (в секундах) мои изменённые хиты будут
 отсылаться всем, кто меня видит. Значение по-умолчанию - 1, увеличте, чтобы уменьшить трафик,
 установка этого параметра в 0 вообще отключает эти обновления (как было на 55i)
- Исправлены MAXHITS и т.д. .MAXHITS 100 теперь устанавлевает MAXHITS равной 100, это включает
 в себя MODSTR, так что если у чара MODSTR был 10 до установки MAXHITS, то при установке MODSTR
 обратно в 0, MAXHITS станет 90.
- Максимальные хиты, посылаемые всем, изменены с 25 на 50 для более плавного изменения линии
 хитов в статусбаре

21-04-2004, Radiant
- Добавлена функция MESSAGEUA, синтаксис эквивалентен SAYUA и SYSMESSAGEUA
- Испралена ситуация, когда недостаток аргументов в SAYUA мог вызывать крэш сферы
- Добавлена поддержка "Virtue button" (в верху пепердолла на новых клиентах), вызывает
 триггер @UserVirtue.
- Добавлена поддержка новых спэллбук пакетов (старые с AOS'ом не работают), если EF_AgeOfShadows
 не установлен, используются старые пакеты (это только для магии, для некромантов и палладинов
 пока не работает).

22-04-2004, Radiant
- Вернул сообщение "The spell fizzles" при фэйле магии

22-04-2004, Balkon
- При присваивании значений в кавычках для TAG'ов, VAR'ов и LOCAL'ов теперь создаются текстовые
 переменные, т.е.
 TAG.TEST_1 2+2
 создаёт тэг TEST_1, который содержит чило 04, а
 TAG.TEST_2 "2+2"
 создаст тэг, который будет содержать текстовое значение '2+2'.
 Текстовые TAG'и и VAR'ы также сохраняются в мир в кавычках.
- Исправлен баг - REGION.TAG0.SOMETHING вызывал ошибку 'Undefined symbol "", если тэг SOMETHING
 не определён

23-04-2004, Radiant
- Выяснил, что новые спэллбук пакеты нормально не работают, всё ещё не исправлено
- Добавлена поддержка спэллов из книги некромантов, для них зарезервированы спэллдефы с 101 по 116,
 позже добавлю хардкод
- Добавлен триггер @UserExWalkLimit, вызывается, когда клиент превышает лимит хотьбы (либо лагает,
 либо на спидхаке) RETURN 1 разрешает клиенту продолжить хотьбу.
 (note: не стоит злоупотр<вырезано анти-матом>ть триггером, т.к. он срабатывает на каждый шаг, пока walkbuffer
 клиента равен 0, так что будьте осторожны)

24-04-2004, Radiant
- Удалены сообщения из команды WEBLINK
- Исправлен баг, когда .admin показывал всякий япоский текст/крэшил клиента при длинных именах чаров
 (имена обрезаны до 30 символов)
- SERV.NEWDUPE и DUPE теперь устанавливают NEW (и ACT? вроде написано, но не проверял) для айтемов,
 дюп чаров до сих пор нормально не работает.
- DCLICK/USE для чаров теперь понимает uid в качестве аргумента, заставляет чара даблкликнуть по
 указанному айтему/чару.
- Функция CALL теперь регистронезависимая
- Добавлены аргументы в диалоги, формат: "DIALOG d_dlg 0 blabla", <args> и <argv[x]>
 могут использоваться. <argn> - номер страницы (2-ой аргумент)

25-04-2004, Radiant
- Добавлен параметр COMMANDLOG в sphere.ini, в логи пишутся только команды клиентов с плэвелом >=,
 чем значение COMMANDLOG (по-умолчанию 0, писать всех)

29-04-2004, Balkon
- После пары тестов несколько фиксов в эквипе и EF_WalkCheck
- Добавлен EVENTSPET в sphere.ini - евенты для всех НПС
- Добавлен флаг EF_DiagonalLOSCheck (04000) - чтобы видеть объект по диаогнали, необходимо видеть
 тайл хотябы в одном из ортогональных направлений, это означает, что нельзя увидеть объект только
 через угол, это исправляет баг с тедепортом через NW угол заборов и некоторые другие баги, но
 по-прежнему разрешает, например, закрывать двери в домах, которые в открытом состоянии находятся
 по диагонали к чару :) Установка этого флага может повлиять на производительность
 (а может и не повлиять :).
- Альтерноативное имя в TAG.NAME.ALT теперь используется везде, если тэг установлен - в статусбаре,
 имени на трупе, в залинкованых memory-объектах и т.д. Также перекрывает Incognito. Настоящее имя
 при этом доступно только через свойство NAME.
 TAG.NAME.PREFIX теперь перекрывает префиксы фэйма (Lord/Lady, показываемые на клике).
 TAG.NAME.PREFIX и TAG.NAME.SUFFIX теперь могут использоваться совместно с TAG.NAME.ALT

01-05-2004, Balkon
- Исправлен баг, когда при закрытии диалога с активным таргетом, таргет сбивался
- Удалена проверка на символ \r из пакета профайла чара - это позволяет иметь многострочный
 профайл и исправляет ошибочные предупреждения в логах.
- исправлен эксплоит, когда игроки могли купить любой айтем с вендора, даже вне стока (одетые на
 него, у него в паке и т.д.)
- Вендор теперь просто перемещает айтемы в пак чара, если они лежат в его сундуке "extras" и он
 вендор игрока (раньше они дюпились, игрок получал копию, а оригинал удалялся).
 Зашринкованные животные не будут расшринковываться при покупке с вендора игроков (или из
 сундука "extras").

02-05-2004, Balkon
- EF_CanSeeLos_New более не используется, все изменения, на которые он влиял, теперь включены в
 код по-умолчанию.

03-05-2004, Socket (UNSP team)
- Начал работу над guild/town системой. Добавил свойство MEMBER для гилдстоунов. Формат:
 <guildstone>.member.X.<property> Следующие свойства доступны для чтения и записи:
 ACCOUNTGOLD, LOYALTO, PRIV, SHOWABBREV, GUILDTITLE. Доступные функции: IsCandidate (возвращает 1,
 если рекрут), IsMember (1, если член гильдии), IsMaster (1, если гилдмастер). Также конструкция
 MEMBER.X. указывает прямо на чара, так что можно использовать через неё свойства чара, что-то типа
 MEMBER.X.NAME. MEMBER.COUNT возвращает общее количество членов гильдии.
- Свойство гилдстоуна ACCOUNTGOLD теперь также сохраняется в файл мира.
- Добавлено новое свойство GOLDRESERVE для гилдстоуна.
- Добавлена функция <CONT>.COUNT, возвращает общее количество айтемов в контэйнере (включая
 субконтэйнеры).
- Добавлен новая структура SERV.CLIENT.x. SERV.CLIENT.0. - последний (самый новый) клиент и т.д.,
 напрмер <serv.client.0.name> вернёт имя последнего вошедшего на сервер клиента.
 Для безопасности указатель только для чтения. Если надо, можно сохранить UID клиента где-нибудь
 и использовать потом, например:
   obj=<serv.client.0.uid>
   obj.name = new name

07-05-2004, Socket
- <CONT>.COUNT теперь возвращает количество айтемов только в данном контэйнере (как reacount
 без параметров).
- Добавлена функция <CONT>.FCOUNT, возвращает общее кол-во айтемов в контэйнере, включая
 субконтэйнеры.

11-05-2004, Balkon
- Несколько исправлений, @EquipTest теперь вызывается до всех внутренних проверок, до того, как айтем
 отделяется от кучки, до того, как айтем в том же слое анэквипется (т.е. при return 1 чар не будет
 анэквипить предыдущий айтем)

16-05-2004, Balkon
- Исправлен @Dropon_char, вызывавшийся, когда айтем бросался в любой контэйнер на чаре. Теперь вызывается
 только когда айтем действительно бросается на чара - прямо на него или его бэкпак, если источник не
 владелец. ARGO теперь всегда указывает на чара, на которого бросается айтем.

19-05-2004, Balkon
- Исправлен @color,font в функциях MESSAGE и SYSMESSAGE, теперь понимает 16-ричные значения, добавлен
 3-ий аргумент - флаг Юникод (если не 0 - текст идёт в юникоде, т.е. можно по-русски писать :)
 Новый формат SYSMESSAGE @color,font,unicode text, также добавлен @color,font,unicode в SAY и бродкаст.
 Конечно SAYUA, MESSAGEUA и SYSMESSAGEUA всё ещё могут использоваться для тех же целей, но формат
 @color,font,unicode поддерживается также в описании сообщений сервера по-умолчанию (файл
 sphere_msgs.scp), так что теперь можно задавть сообщения по-умолчанию на русском :)
- Добавлен флаг OF_SkipUndefMsgs (0400) - если установлен, сфера не шлёт сообщений об ошибке, если
 какое-либо из серверных сообщений не определено, не пишет предупреждений при ресинке - просто
 игнорирует неопределённые сообщения, так что теперь можно отключить некоторые ненужные сообщения.
- Свойство SPEED оружия теперь используется в расчёте задержки, если задано (и не равно 0), формула:
 DELAY = 15000 / ( ( DEX +100 ) * SPEED )

20-05-2004, Balkon
- Добавлен параметр SPEEDSCALEFACTOR в sphere.ini (значение по-умолчанию 15000), используется при
 расчёте задержки для оружия, формула теперь выглядит следующим образом:
 DELAY = SPEEDSCALEFACTOR / ( ( DEX + 100 ) * SPEED )
- ARGN1 в @HitTry теперь задержка (в десятых долях секунды) оставшаяся до удара (время проигрывания
 анимации), может быть изменено (чем меньше - тем быстрей анимация удара)

21-05-2004. Balkon
- Добавлены циклы FORCLIENTS и FORPLAYERS, разница в том, что FORPLAYERS затрагивает также
 дисконнектнутых игроков, которые ещё "висят" на сервере (client linger).
- Если не указано аргументов для FORITEMS, FORCHARS, FOROBJS, FORCLIENTS, и FORPLAYERS,
 по умолчанию используется значение 18 (максимаальная видимая дистанция)
- Добавлены циклы FORCONTID и FORCONTTYPE для контэйнеров, формат
 FORCONTID i_dagger max_sub_containers. Если max_sub_containers не задан, будет искать во всех
 субконтэйнерах. Если max_sub_containers = 0 - будет искать только в текущем контэйнере.
- Добавлен цикл FORCHARLAYER layer - перебирает все айтемы в указанном слое
- Добавлен цикл FORCHARMEMORYTYPE flags - перебирает все мемори с указанными флагами

25-05-2004. Balkon
- Исправлен баг, когда после обработки строк в кавычках иногда не создавались текстовые
 VAR'ы, TAG'и и LOCAL'ы

Sphere Server 0.55 R4.0.1
Код

27-05-2004, Socket
- Исправлен MEMBER.X.KEY для чтения/записи. Теперь должен работать нормально. Возвращает ошибку
 при попытке обратиться к несуществующему члену (так что лучше использовать MEMBER.COUNT для
 проверки границ).

30-05-2004, Kell
- Небольшие исправления для компляции под Linux.
- Изменена версия. Я рекомендую использовать R4.x.y, где xx увеличивается при каких-то глобальных
 изменениях, а yy при незначительных. Установил версию R4.0.1.
 (ЗЫ: некоторые люди никогда до конца не понимали, что означает RC*. После RC20 она уже перестаёт
  быть кандидатом в релизы, это скорее кандидат в кандидаты в релизы :) Так что после того, как
  некоторые "силы" превратили подобную нумерацию хз во что, я бы посоветовал изменить её на
  что-нибудь менее смущающее).
 (Тонкий намёк на сферовцев с их "вышедшей" "долгожданной" 1.0? :)

31-05-2004, Furio
- Добавлен цикл FORCONT, формат FORCONT uid_of_container max_sub_containers. Перебирает все айтемы
 в контэйнере. Если max_sub_containers не задан, будет искать во всех субконтэйнерах.
 Если max_sub_containers = 0 - будет искать только в текущем контэйнере. (Спасибо моей маме за то,
 что она дала миру меня - прим. переводчика :-D )

07-06-2004, Furio
- Добавлен оператор XOR (^) (исключающее -ИЛИ-) в выражения.

12-06-2004, Furio
- Добавлены новые параметры в sphere.ini - USECRYPT и USENOCRYPT. Первая из них, если 0  - не позволяет
 входить на сервер шифорванным клиентом (по-умолчанию 1). Вторая, когда 0 - не позволяет входить на
 сервер нешифрованным клиентом (сфераклиент, клиент с Ignition и т.д.), иначе:
 если 1 -> позволяет входить клиентам версий >= 2.0.0;
 если 2 -> позволяет входить клиентам версий >= x.x.x;
 если 3 -> позволяет входить клиентам версий >= 3.0.0;
 (Для использования нешифрованного клиента > 4.0.0c необходимо установить Ef_Aos флаг)
- Добавлена наиболее часто запрашиваемая фича DISGUISEVERSION в sphere.ini. Если установлена - меняет
 версию, выводимую клиенту, серверу IRC, лист-серверу, телнет-клиенту на строку, заданную здесь.
 (Версия сферы в файле мира и консоли остаётся версией билда по-умолчанию)
- Исправлен (надеюсь) баг с Mozilla/Firefox браузерами со страницей статуса
- Исправлен баг с переполнением буффера, который можно использовать, чтоб крэшить сферу или запускать
 код на удалённой машине.

20-06-2004, kuch
- Добавлена функция ClearTags (удаляет все тэги с чара/айтема/аккаунта); Revital сделал большинство
 работы, но всё равно спасибу мне :)

28-06-2004, Furio
- Исправлены несколько эксплоитов с диалогами. Также мемори флаг 08000 теперь используется для
 диалогов (называется MEMORY_GUMPRECORD).
- Исправления в DISGUISEVERSION.


--------------------
С уважением Администратор Форума.
Контактный Email: dihlofozzz@uokit.com


Topic Closed
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения

Тема закрытаОткрыть новую тему
3 чел. читают эту тему (гостей: 3, скрытых пользователей: 0)
Пользователей: 0

 

- Текстовая версия | Версия для КПК Сейчас: 28.3.2024, 18:37
Designed by Nickostyle