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

 
Тема закрытаОткрыть новую тему
> Русский Revision и мануал для Sphere Server 0.56
DihlofozzZ
сообщение 13.12.2004, 4:39
Сообщение #1


***********

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



Есть мелкие недочеты, кое что недопереведено, но читать уже более менее можно.
Замечания, исправления в переводе просьба постить ниже (IMG:style_emoticons/default/smile.gif)
Код
---- 0.56a --------------------------------------------------------------------
---- * выпущена

06-10-04, Vjaka
- Удалено DISGUISE(NAME/VERSION), текущая версия переименована в 0.56a.

07-10-04, Vjaka
- Удалено AGREE использовать эту линию далее нет смысла, т.к. это больше не R* серия.
- Добавлена поддержка map*,statics*,staidx*
 файлы найдены и загружены (T2A, LBR, AOS, SE).
- Удалено EF_New_Maps так как это объединено теперь с источниклм, пакет посылается тогда, когда нужно.
- Перемещение на другую карту сейчас перемещает туже самую карту на сервер. Но это в настоящее время не использует кэширование и перечитывает информацию тайла от файлов карты каждый раз. Кэширование тех же самых секторов, но в различных "mapplanes" (планах карты) будет сделано в будушем.  Вы должны добавить и регионы для этих карт, и поместить соответствующие файлы в место где располагаются все остальные *.mul файлы.
- Изменены значения EXPERIMENTAL флагов, чтобы удалить пустые щели между предметами.

08-10-04, Vjaka
- Пофикшена утечка памяти, вызванная удалением кэширования карты.
- Пофикшен экран клиента при смене карты.

08-10-04, Furio
- Добавлен PROMPTCONSOLE, делает клиент незамедлительным (как при запросе страницы) и посылает ответ, как аргумент пользовательской definied функции (синтаксис функции отзыва PROMPTCONSOLE, сообщение, чтобы вызвать).

10-10-04, Furio
- Добавлены RESDISP свойства аккаунта. Принятые значения = 0 (клиент до T2a (preT2a)),  1 (T2A), 2 (LBR), 3 (AoS), 4 (Samurai Empire). Это используется чтобы идентифицировать тип загруженного клиента. По дефолту это значение равно 0, но если клиент T2A, то это число автоматически меняется сферой на 1. LBR, AoS и SE клиенты не ставятся автоматически.
- Добавлено к CHARDEF свойствам RESLEVEL, RESDISPDNID, RESDISPDNHUE. Первое свойство отвечает из какой версии UO берется анимация. Второе свойство отвечает за показ анимации ID у старых версиях клиента. Третье свойство отвечает за показ цвета (hue) старым клиентам (если 0 или пустой, то
используется дефолтный цвет (hue) анимации).
- Модифицирован пакет скриптов (scriptpack) чтобы отразить изменения для T2A монстров.

22-10-04, Vjaka
- Добавлен <dVALUE> как сокращенное к <eval <VALUE>> чтобы получить десятичное значения единственного expr как переменного. Отметьте, это немного затрагивает EF_Intrinsic_Locals.
- Команды с .command и с пробелами после будут рассматриваться как без пробелов, так как дополнительные пробелы приводят чаров с плевелом к раскрытию (!?).
- Добавлен TAG.PARTY_CANLOOTME для компании. Если 1, позволяет компании лутить себя.
- Добавлен триггер @Kill (SRC-убийца, ARGO-убитый)
- Добавлены секторные функции ALLCHARS,ALLITEMS подобные ALLCLIENTS. Для регионов вы можете использоватьe SECTORS.ALLCHARS, SECTORS.ALLITEMS.
- Изменен GODPORT, чтобы принять номер порта лучше. Старые значения ( <=0 = отключает, 1=ServPort+1000) работают по прежнему.
- Добавлен SYSCMD и SYSSPAWN команды, чтобы использовать внешние апликации. Верните к <0 если есть ошибка. Первый блокирует, пока программа запущена, второй спаун и завершает дейтсвие скрипта. Из-за очевидной чувствительности охраны (Due to obvious security fear) в этих командах, они отключены, если OF_FileCommands не задан. До 9 командной линии аргументы передаются внешним аппликациям (!?).

23-10-04, Furio
- Пофикшены незначительные вещи в grayproto.
- Обновлен grayproto (список/размеры пакета Uo в сфере).
- Закончен и отлажен новый crypt engine (для crypt клиентов). В настоящее время к последнему текущему клиенту, использующимуся на OSI - клиент 4.0.5a.

25-10-04, Vjaka
- Пофикшено исключение в записи файла (writefile), когда нельзя открыть файл.
- Добавленное имя аккаунта делает исключение при отправке пакета (!?) Added account name output when packet dispatch generated an exception.

25-10-2004. Furio
- Необходимо обновить grayproto, с новой информацией о пакете.

26-10-04, Vjaka
- Пофикшена ошибка разрешения SMSG[u].
- Пофикшено <dSOMEVAL> предоставлено некоторых hex результатов.
- Добавлено обновление для предметов, перемещенных NPCами, когда они блокируют их дорогу.

27-10-04, Vjaka
- Теперь Windows будет пытаться использовать winsock 2.0 если доступно вместо 1.1.
- Добавлен числовой аргумент (amount) для NEWITEM (newitem i_gold,45). По дефолту - 1.
- Удалена одна из аказий с созданием дополнительного лога не в логфайл путь.

27-10-04, Furio
- Пофикшен баг в показывании больших диалогов в новых клиентах (4.0.X).
- Пофикшен баг, когда при добавлении предмета у некоторых клиентов происходил краш.

28-10-04, Vjaka
- Disabled string 'q'/'Q' to be said by privileged accounts. It is due the fact that default macro for repeat is Ctrl+Q, and one less Ctrl press will lead to GM to reveal self existance around, which really is not good.

31-10-04, Furio
- Несколько фиксов, связанных с созданием аккаунта и хаком банкбокса.
- Удален EF_AgeOfShadows. Это будет повторно добавлено с новыми особенностями и полной совместимостью для старших клиентов, когда включено.
- Пофикшен другое деяние с (exploit with) Bullettin Boards. Спасибо Balkon за сообщение об этом.

01-11-04, Vjaka
- Добавлен .pid файл, чтобы получать уведомление (existance notification) о двойном запуске сферы.

02-11-04, Vjaka
- Теперь уровень света для секторов сохранен как LIGHT вместо LOCALLIGHT.
- One more cause for long default message string lookups removed.
- EQUIPHALO теперь берет аргумент - время, чтобы воздействовать на персону.
- Исправлен баг, всегда при подсчете дающий кол-во итемов в секторе 0.
- Добавлен триггер @Destroy для предметов.

04-11-04, Vjaka
- Быстрый фикс OF_Magic_PreCast - теперь нет прекастов у NPCов.
- Consume теперь может взять больше 65k сразу.
- Добавлен триггер @CreatePlayer, используется после того как чар был создан игроком.

05-11-04, Vjaka
- Теперь "Admin" показывается вместо "GM", если персона админ или овнер в титуле.

06-11-04, Vjaka
- Добавлена функция сектора ALLCHARSIDLE подобная ALLCHARS, но прокручивающаяся (!?) при disconnected/mounted/и т.д. чаров, не поддерживалось в ALLCHARS.
- Добавлен автоматический фикс карты, устанавливающий к нулевой карте, если за пределами. Пожалуйста отметьте, это может вызвать некоторые проблемы с использованием MOREM. (!?) Added auto map fix to zero map if it is out of bounds. Please note, that this can cause some problems with MOREM usage as well.

25-11-04, Furio
- Пофикшено: encryption - логин клиента.
- Пофикшено: dVALUE оценка, когда VALUE уже int.
- Пофикшено: EQUIPHALO <timer> не делает пропадания света.
- Обновлена поддержка клиентов до 4.0.6a.
- Удалена мессага "Cannot move here!".
- Добавлено больше информации о ошибке "MOVE: empty region". (uid и point)

30-11-04, Furio
- Пофикшено: MOREM автоматически переделывается в 0 из-за новой особенности мультикарты.
- Добавлен MasterUid свойство для гильдстоунов.

02-12-04, Furio
- Пофикшено: Gm Page меню не посылает gms на сраницу выбора (!?).
- Пофикшено: Lord показан без пробела(!?).
- Пофикшено: TAGAT пытается получить доступ к не существующмм TAGам.
- Изменено: Только предметы с аттрибутами 08000 могут быть перемещены в spherestatics.scp.
- Изменено: Overskillmultiply теперь 0 по дефолту.

08-12-04, Furio
- Пофикшено: EvaluatingIntel при 0 int NPC-ов.
- Пофикшено: EQUIPHALO свет пропадает при Dispel-е.

08-12-04, Vjaka
- Пофикшено деяние, предоставляющее недействительное количество (amount) в покупаемом покете, дающим халявные ресурсы (спасибо Breaker и Fallout за сообщение об этом).
- Пофикшен canmove, чтобы принять DIR значения (0..8) в дополнение к письменным аргументам. Те же самые изменения затрагивают другие места, как команда движения и т.д.
- Результат старого "ACCOUNT accname" команда меняет на более инфомационный.
- GMы должны логиниться с инвулем и без allshow флагов.
- Если набор ссылки к OBJ/NEW не существует, ноль будет поставлен вместо него. И напротив, если уже удалено, то значение OBJ/NEW будет очищена к 0 (!?).
- Пофикшено исключение в f_onaccount_login.

08-12-2004, Various authors
- Пофикшено нескольно скриптов - Vjaka.
- Добавлены новые скрипты и фиксы - Tattooed Corpse.


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


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


********

UoBugs
Сообщений: 1.534
Регистрация: 15.8.2004
Группа: Пользователи
Наличность: 0
Из: Москва
Пользователь №: 2.132



На самом деле история 56 начинается с 20-07-04, а не 06-10-04
http://www.sphereserver.net/forums/index.p...showtopic=32044
Так что список всех изменений появившихся в 56, ам еще переводить и переводить.
А описание от 06-10-04 Vjaka выложил только из-за того, что мы его на UoBugs'e, попросили показать чего еще новенького добавилось в 56
Так что начинайте переводить с 20-07-04:lol:
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
NFx
сообщение 13.12.2004, 19:04
Сообщение #3


********

SpS 60+(умер), NE Priest 40+ жифф
Сообщений: 1.505
Регистрация: 3.9.2003
Группа: Пользователи
Наличность: 0
Из: Подмосковье
Пользователь №: 950



Код
События, в народе евенты: 



Новые евенты:



@CreatePlayer срабатывает как только игроком создан персонаж.



@Destroy триггер для объектов. (очевидно срабатывает при разрушении .- nfix)



@Kill триггер (SRC-указатель на убийцу, ARGO-на убитого)



@ItemCreate срабатывает когда предмет(ARGO) скрафтен игроком



@SkillMenu срабатывает ДО того как игроком вызвано любое стандартное скиллменю. Так что используя Return 1 вы можете отменить вызов вышеуказанного меню. ARGS - ИД меню, одного из следующих(вопрос, а если другие? тут не указанно...-nfix): sm_polymorph, sm_carpentry, sm_bowcraft, sm_tailor_leather, sm_tailor_cloth, sm_bolts, sm_carpentry, sm_cartography, sm_tinker, sm_summon, sm_blacksmith, sm_alchemy, sm_cartography, sm_inscription.



@Rename триггер, (ARGS - новое имя, ARGO - указанное существо) срабатывает при переименовке маунта, или другого прирученного животного. Return 1 отменяет деиствие. Так же срабатывает при создании персонажа.



@StepStealth срабатывает при каждом шаге сделанным скрывающимся персонажем, т.е. на которого деиствует навык stealth (а .invis?). ARGN1 (вывод и ввод) - раскрыть персонажа или нет.



@Hunger срабатывает до того как у персонажа упадет уровень сытости(переменная food). ARGN1 - уровень насыщенности, который будет установлен. return 1 отменяет деиствие



@NPCLostTeleport срабатывает до того как НПс будет отправлен к своему спавну (зависит от LostNPCTeleport настроики в sphere.ini ) ARGN1 - расстояние от спавна



@UserExWalkLimit триггер, срабатывающий когда игрок превышает лимит движения (как из-за больших лагов, так и из-за спидхака)

RETURN 1 позволяет игроку двигаться, без событий(no action?) или RETURN 0 непозволяет игроку двигаться

ЗАМЕТКА: это очень неекономично, потому как триггер срабатывает каждый раз когда сделан шаг и walkbuffer игрока равен 0, так что будьте осторожны



@UserVirtue "Кнопка добродетели" (вверху папердола в новых клиентах), заставит сработать триггер. (я конечно не знаток, но по-моему это шняга из АоСа. -nfix)



@UserWarmode триггер, срабатывает когда игрок давит на кнопку режима воины, триггер идет до того, как сфера установит флаг воины (statf_war .-nfix). ARGN конкретное состояние воины/мира (1 = состояние воины, 0 = мира). "return 1" отменяет изменения состояния.



@Attack триггер (нет, я все понимаю, но раз тут одни триггеры, какои смысл повторять?! .-nfix)(срабатывает после того как некто делает дклик(я так думаю что имелся ввиду тот на ком евент с триггером висит! .-nfix) чтобы атаковать).

SRC цель, на кого тычут. "return 1" отменит атаку.



@UserChatButton триггер(no comment! .-nfix) (return 1 отменяет стандартный вид окна чата)



@UserMailBag тригер (return 1 отменяет стандартный вид message)

ЗАМЕТКА: Кажется это так же срабаттывает при залогивание в игру, попробуйте что-то такое:

if (<uid> == <src.uid>)

return 1

endif

чтобы это предотвратить.(вам понятно? завидую! .-nfix)



@ResourceTest в блоке [REGIONRESOURCE ], вызывается единожды для каждого ресурса который персонаж может наити в регионе.



@ResourceFound, срабатывает после того как ресурс был выбран (я так думаю имеется ввиду появление спавны при даблтыке киркои .-nfix) (@ResourceTest был отменен для всех доступных ресурсов). ARGO спавн ресурса который был создан. "return 1" удаляет спавн ресурса.



@Targon_Cancel для вещеи.



@DropOn_Self и @ItemDropOn_Self, срабатывает когда какая-то вещь была брошена на предмет с этим триггером (что-то было брошенно на себя).



@DropOn_Char и @ItemDropOn_Char применимые триггеры, они были в боле ранних версиях сферы, но не функционировали.



@SkillGain и @Gain triggers прочитаите manual.txt для информации(это не я вас послал! .-nfix)



@NPCLookAtChar и @NPCLookAtItem триггеры (просмотрите мануал). Не *** этими триггерам, т.к. они расходуют производимость CPU



@CallGuards как правильный триггер, "return 1" убирает вызванных гвардов



@DeathCorpse, argn1 = труп?



@SkillSelect для евентов на игроках, и @Select для блока SKILLDEFs ("return 1" прекращает).



@SkillSuccess опять же для евентов игроков, и @Success для блока SKILLDEFs ("return 1" прерывает).



@UserSkills ("return 1" отменяет показанное окно скилла).



@UserStats ( игрок затребовал улучшения статов (имелось ввиду, наверное, что игрок просто их прокачал;) .-nfix), return 1 - проигнорированно)



@SkillMakeItem для евентов на персонаже, срабатывает после того как итем скрафтан:

"return 1" удаляет итем

"return 0" кидает итем в пак как по стандарту, но без дополнительных сообщений (зелья, уведомления о качестве)

"return" все идет как обычно.



@EquipTest и @ItemEquipTest (return 1 отменяет одевание). (EquipTest идет первее Equip, заметьте! .-nfix)



@Effect триггер для блока SPELL, срабатывает после @SpellEffect



@NPCFollow триггер, срабатывает когда НПС за кем-то следует.







Измененные евенты:



@SkillStart изменен так, что "return 1" прерывает умение (так же как в @Start в блоке SKILLDEFs).



@UserSkills изменен, <argn1> номер скилла который был улучшен, или -1 для листа скиллов (???). Это помогает остановить отправку улучшений клиенту.



@Step на итемах returning 1 теперь будет останавливать движение в этот район. Для связности, все другие итемы в этои локации все еще активированы.



@Login утсановка ARGN1=1 позволяет не показывать свиток MOTD.



@Login теперь при "return 1" не позволяет залогиниться.



@Logoff теперь заимела 2 вписуемых аргумента: ARGN1 - время задержки логаута и ARGN2 флаг выхода без задержки. Return 1 в триггере теперь устарела.



@NPCLookAtItem: Добавлен ARGN2 (вписуемый) - уровень в процентах, насколько НПС хочет этот предмет. Если утановка высокая, то он может слутать этот предмет.



@HitTry ARGN1 теперь задержка(в десятых долях секунды) оставшаяся до удара, может быть изменена



@DClick теперь срабатывает до того как предмет одевается



@Effect в блоке SPELL работает и имеет такие же аргументы как @SpellEffect.



@DropOn_Item и @ItemDropOn_Item изменены так чтобы активироваться для предметов-контенеров тоже. Активируется когда предмет с триггером кладется на другои предмет (бросается на что-либо другое).



@SpellEffect если во время срабатывания не указано точного SRC, то тогда SRC будет рассматриваться тот персонаж, который колдует заклинаниe. Это правит SPELLEFFECT  в теле триггера @Timer.



@GetHit, ARGN1 нанесенный урон, ARGN2 тип урона (как обычно, но не вписуемо).



@Hit, ARGN1 сырои нанесенный урон, предварительно к броне (вписуемо). ARGO оружие (если есть).



@PersonalSpace, ARGN1 стамина необходимая для движения (вписуемо). "return 1" отменяет движение, "return 0" разрешает движения но не показывает вшитые сообщения. простои "return" или без оного, работает как обычно.



@Hit, @HitTry и @HitMiss так же были исправлены так что ARGO это использованное оружие (кстати теперь вам не придется просматривать слоя). Так же хочу добавить что ACTDIFF так же доступен, и может быть использованн чтобы редактировать сложность умения, даже делая так что удачное использование навыка все равно выдаст ошибку (устанавливая значение на 0). Так же это может быть использованно в триггере @HitTry теперь, и если установленно на не-негативное(не отрицательно чтоли?? .-nfix) значение, то будет промах вместо попадания.



@DClick теперь срабатывает на NPCs ДО посадки на ездовых, вызывание папердола или открытия сумки ("return 1" отменяет)



@Start и @Success "return 1" из триггеров скиллов не дает сраотать @Fail. Если вы хотите чтобы сработал @Fail пишите ACTION=-1. Это совместимо со скриптами для .55i, потому что "return 1" там в этих блоках вообще не работало, скрипты в которых нужно было вызывать @Fail и так использовали ACTION=-1



@SkillItemMake изменен что "return 1" просто удаляет предмет если для него не был указан контеинер.



- Добавленны EVENTS/TEVENTS to items. порядок следования выполнения событий/триггеров :

1) Если персонаж активирует предмет, проверка на триггеры на персонаже, относящеися к деиствиям с предметами (@ItemDClick, и т.д.).

2) триггеры в EVENTS на предмете

3) триггеры в TEVENTS на предмете

4) триггеры в блоке TYPEDEF соответствует TYPE предмета

5) триггеры в блоке ITEMDEF предмета

6) встроенные деиствия предмета (если есть).

"return 1" в любом случае прекращает деиствие всех последующих событий.





по материалам : http://www.sphereserver.net/forums/index.php?showtopic=33058

by NFix для www.uokit.com


--------------------
Важна не реклама, а качество.
Качество - девиз хороших серверов.
Продуманность и готовность - девиз очень хороших серверов.
..::Lorien Role-Playing Shard(RunUO)::..
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DihlofozzZ
сообщение 14.12.2004, 2:15
Сообщение #4


***********

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



Код


Manual 0.56a

Последнее изменение: 08-10-2004

Переведено на русский язык - DihlofozzZ: 13-12-2004

Проэкт Sphere Ultimasoft

http://sphere.uokit.com





**** Свойства в sphere.ini ****************************************************************

Пожалуйста рассмотрите дефолтный sphere.ini, особенно OptionFlags= and Experimental=

свойства с их комментариями. Они ДЕЛАЮТ ИЗМЕНЕНИЕ от версии к версии, таким образом

УДОСТОВЕРЬТЕСЬ, что вы используете те значения, в которых действительно нуждаетесь.



Features= // Флаги для вариантов, которые затрагивают клиенты после соединения

//   0001 - (T2A) разрешает chatbutton

//   0002 - (LBR) разрешает LBR звук (играет MP3 вместо MIDI)

//   0004 - (T2A) разрешает T2A обновление

//   0008 - (LBR) разрешает LBR обновление (показывает монстров)

Предложенное значение: Features=0E

Дефолтное значение:    Features=05



FeaturesLogin= // Флаги для вариантов, которые затрагивают AoS клиенты после соединения

(Only with EF_AgeOfShadows)

// Посылают/Просят Логаут (Logout)  = 002

// Только один чар - Осада (Siege)    = 004

// Npc меню Popup      = 008

// Неизвестно        = 010

// Tooltip/Fight Books  = 020

Предложенное значение (если AoS разрешен): FeaturesLogin=028

Дефолтное значение:    FeaturesLogin=00



ОТМЕТЬТЕ: Не включайте особенности AOS-а, если вы планируете использование клиентов T2A/LBR

на вашем сервере.



**** Вещи на кторые нужно обратить внимание в скриптах ******************************************************



- RETURN значения (ВОЗВРАЩЕНИЯ)

 Удостоверяется, что вы включаете "eval" в ваш "return", куда вы не возвращаете простое число,

 "defname" или string. Вместо того, чтобы делать "return 1+1"  делайте "return <eval 1+1>".



- NEWNPC, NEWITEM, NEWDUPE

 Вы можете теперь назвать эти слова внутри триггеров предмета, и на новый предмет можно сослаться через

 "NEW". Используя их на персонажах, ACT будет так же изменен. Вы можете использовать

   SERV.NEWNPC, SERV.NEWITEM и SERV.NEWDUPE где-нибудь, и только NEW (новые) будут изменены.

 Предпочтительно, всегда включайте "SERV." когда используете эти команды.

 Например (триггер для раздачи золота при даблклике):

   ON = @DClick

     SERV.NEWITEM i_gold

     NEW.AMOUNT 3

     NEW.BOUNCE









**** Трудности умения (Skill) и ACTDIFF.  ********************************************************



Для большинства триггеров, где навык вовлечен, ACTDIFF может использоваться, чтобы читать/изменять текущую

трудность. ACTDIFF имеет смысл везде, где ACTION имеет смысл, поскольу это связано с трудностью

выполнения действия.



ACTDIFF не имеет никакого значения в @SkillStart, потому что трудность для умения (skill-а) расчитана

впоследствии. Вы можете включить OF_Skill_DiffFirst, чтобы сделать @SkillStart работающим первым. Это имеет

(только известный) sideffect создания @SpellCast работает после @SkillStart, как обычно.

@HitMiss - другой триггер, в котором вы можете изменить ACTDIFF на значение, равное или более чем 0,

чтобы поразить иначе терпящий неудачу удар.



Путем сфера интерпретирует ACTDIFF, интерестно. Это вычисляет трудность, и если

персонаж совершает случайное действие (roll) той трудности, ACTDIFF становится -ACTDIFF, означая,

что вы можете всегда находить начальную трудность, даже на фейле. Settinf ACTDIFF к

0 всегда преуспевает. ACTDIFF выше вашего навыка терпит неудачу.









**** Триггеры: ********************************************************************************




"IN" обращается к аргументам, поставленных сервером.

OUT обращается к значениям, читаемым "назад" сервером, так, чтобы изменения их в пределах триггера фактически

изменили немного хард-код поведения.

RET обращается к значению возвращения (return) и его эффекту. Отметьте, что есть 3 возможных возвратных (return) значения:

  return 1    RET_TRUE    Отменить

  return 0    RET_FALSE    Следует за return (!?) - Succeed

  return 2    RET_DEFAULT    ( обычно тоже самое, что и 0 ). Это тоже самое, что и

   "return2", это "дефолтный return". Если не определен,

   то делает тоже самое, что и "return 0". Если кое-что определено для

   "return 0", то "return" олично в этом, делает действие по умолчанию.





**** ТРИГГЕРЫ ПЕРСОНАЖА ******

@GetHit

 IN:    argn1  Получаемое повреждение.

    argn2  Тип повреждения (см. флаги типа повреждения).

 OUT:    argn1, argn2

 RET:    1  Повреждение не принимается, прекращает действие.





@HitTry

 IN:    argo  Оружие используется.

 RET:    1  Прекращает действие, удар фейлится.





@HitMiss

 IN:    argo  Оружие используется.

 RET:    1  Тихий промах (никакое сообщение не показывается). Заметьт, что изменение ACTDIFF

     на >= 0 заставляет удар попасть.



@Hit

 IN:    argo  Оружие используется.

    argn1  Принимаемое повреждение

 OUT:    argn1

 RET:    1  Удар отменен, повреждение не принимается, @GetHit не вызывается и т.д.



@PersonalSpace

 IN:    argn1  Стамина, требуемая для передвигания уели.

 OUT:    argn1

 RET:    1  Невозможно передвинуть цель, движение фейлится, стамина не повреждается.

   0  Действие по дефолту, но не показывает никаких сообщений.





@SpellCast, @Start ( [SPELL x] секция )

 IN:    argn1  Каст спелла.

    argn2  Трудность каста. If OF_Skill_DiffFirst, это значение передается к @SkillStart (и только потом

     к ACTDIFF).

    argn3  DELAY для спелла, в тиках (ticks) :) (10 = 1секунда).

    argo  Предмет от которого спелл кастуется (см. @SpellSelect)

 OUT:    argn1, argn2, argn3

 RET:    1  Фейл спелла.





@SpellEffect, @Effect ( [SPELL x] секция )

 IN:    argn1  Номер спелла.

    argn2  Уровень умения (Skill), при котором кастуется спелл (сила спелла).

    argo  Предмет, с которого кастуется спелл (см. @SpellSelect)

 OUT:    argn1, argn2

 RET:    1  Отменяет дейстаие, нет эффекта со спелла.

    0  Для спеллов с SPELLFLAG_SCRIPTED: следует за действием, но

     никакой (hardcoded) эффект не происходит. Иначе работает 2

    2  хардкод (Hardcoded) эффект



@Fail ( [SPELL x] секция )

 IN:    argn1  Номер спелла.

    argo  Предмет, с которого кастуется спелл (см. @SpellSelect)

 RET:    1  Спелл фейлится без физла и утраты реагентов.

    0  Следует за действием, но никакого (hardcoded) эффекта не происходит

    2  Хардкод (Hardcoded) эффект



@Select ( [SPELL x] секция )

 IN:    argn1  Каст спелла.

    argn2  Используемая мана.

    argn3  1 если это только тест (как в cancast) или 0 фактически кастуя спелл - это вызывается

     дважды (в один раз перед стартом спелла и в другой раз после удачного использования,с разным значениями argn3).

    argo  Объект магии кастуется от. Это является непосредственно персонажем или как wand

     скролл и т.д.

 OUT:    argn1, argn2

 RET:    1  Спелл не может быть выбран.

    0  Спелл может быть выбран и никакие дальнейшие испытания не выполняются.

    2  Дефолт (спелл может кастоваться, если испытание успешно (test))



@Success ( [SPELL x] секция )

 IN:    argn1  Номер спелла.

    argn2  Уровень умения (Skill level), при котором кастуется спелл (сила спелла).

    argo  Предмет с которого происходит каст (см. @SpellSelect)

 OUT:    argn2

 RET:    1  Отмена действия, спелл фейлится.

 NOTE:      В @Success ( [SPELL x] секция ), и SRC и объект по умолчанию кастуется, каждый должен

     обратиться к SRC.ACT чтобы получить затронутый объект (!?).



@UserSkills

 IN:    argn1  Число улучшаемого уменя (Number of skill being updated), или -1 для окна скилл листа.

 RET:    1  Обновление не допускается.



@SkillFail, @Fail ( [SKILL x] секция)

 RET:    1  Не выполняется проверка скиллгейна (skill gain) или фейл.



@SkillAbort, @Abort ( [SKILL x] секция)

 Это новый триггер, который используется всякий раз когда умение (skill) не достигал пункта завершения (фейлился), где или

 @Fail или @Success будут использоваться. Это может случиться, если кто-то начинает использовать умение, до окончания предыдущего

 действия, если ACTION=-1 установлено или если ситуация изменяется (eg, Вы внезапно испытываете недостаток в реагентах, делая

 пойшен (a potion) - это не расчитывается как @Fail, это @Abort). Прерванное умение (Aborted skills) не приводит к шансы извлечь пользу из-за

 отказа. Это решает много ситуаций злоупотребления.

 RET:    1  Прерывает умение (skill), не выполняются типичные события, связанные с навыком (skill)

     идущим неправильно (например в случае Magery, не показывает эффект физла).



@SkillGain, @Abort ( [SKILL x] секция)

 IN:    argn1  Номер скила.

    argn2  Шанс получить (из свойств SKILL секции)

    argn3  Скиллкап для этого умения (skill).

 OUT:    1  Не прибавляет умения (очевидно, вы можете крутить (roll) против шанса в argn1 и

     поднять умение самостоятельно).

 NOTE:      ACTDIFF был трудностью, чтобы использовать навык. Если отрицательный, то умение (skill)

     фейлится и это выгода из-за фейла.



@NPCLookAtItem  (необходима активация EF_New_Triggers)

 IN:    argo  Предмет выглядит как

 RET:    1  Не видно предмет, не смотрите на другие предметы

     0  Не видно предмет, смотрит на другие предметы, как дефолт

    2  Дефолт (видит предмет, смотрит другие предметы)



@NPCLookAtChar  (необходима активация EF_New_Triggers)

 RET:    1  Не видит персонаж, нельзя просмотреть другие персонажи

     0  Не видит персонаж, смотрит на другие персонажи, как дефолт

    2  Дефолт (видит персонажа, смотрит на другие персонажи)



@NPCActFight  (необходима активация EF_New_Triggers)

 IN:    argn1  Дистанция

     argn2  Мотивация (если мотивация ниже 0, NPC попытается сбежать)

 OUT:    argn1, argn2

 RET:    1  Ничего не происходит

    0  Дефолт, но пропускает хардкод (hardcoded) действия (дыхание/бросок)

    2  Дефолт

 Note:    После этого триггера, NPC попытается сделать хардкод (hardcoded) умения (skills) (дыхание/бросок), тогда

    он будет пробовать использовать Magery, вместо Archery, и если не является соответсвущим использовать, также использовать

    атаку в схватке (!?)





@NPCActFollow  (необходима активация EF_New_Triggers)

 IN:    argn1  бежать? 0/1

    argn2  максимальная дистанция

    argn3  расстояние между "силами" (forcedistance)

 OUT:    argn1, argn2, argn3

 RET:    1  осттановка преследования

    0  не останавливаться в это время, но не останавливается преследующий (полезный для расположенного боя)

    2  дефолт



NOTE: Этот триггер по внесению в список может оказаться неточным - пожалуйста прочитайте REVISIONS.TXT,

    чтобы проверить были ли сделаны изменения здесь.



**** ТРИГГЕРЫ ПРЕДМЕТОВ ******



@Step, @ItemStep

 IN:    argn1  1 если стоит, 0 если перемещается на позицию

 RET    1  Блокировать перемещение





@DropOn_Item, @ItemDropon_Item

 IN:    argo  Предмет, где предмет с триггером дропается (падает) :) (dropped on).

 OUT:    1  Не бросать, предмет перемещается обратно (если нет контейнера в пределах скрипта)



@DropOn_Char, @ItemDropon_Char

 IN:    argo  Предмет бросается на персонажа

 OUT:    1  Не бросать, предмет перемещается обратно (если нет контейнера в пределах скрипта)



@DropOn_Self, @ItemDropon_Self

 IN:    argo  Предмет, бросаемый на предмет с триггером.

 OUT:    1  Не бросать, предмет перемещается обратно (если нет контейнера в пределах скрипта)



NOTE: Этот триггер по внесению в список может оказаться неточным - пожалуйста прочитайте REVISIONS.TXT,

    чтобы проверить были ли сделаны изменения здесь.



**** ДРУГИЕ ТРИГГЕРЫ ******



@ResourceTest  // для REGIONRESOURCE секций

 Этот триггер вызывается для каждого ресурса, помещенного в REGIONTYPE, для проверки если игрок (SRC)

 может взять это. Он вызывается, если игрок отвечает требованиям SKILLMAKE необходимыми для этого предмета, помещенным в REAP.

 OUT:    1  Игнорировать ресурс (работает если ресурса нет в REGIONTYPE листе)



@ResourceFound  // для REGIONRESOURCE секций

 Этот триггер вызывается после того как ресурс был выбран и был создан предмет ресурса.

 IN:    argo  драг камень ресурса (gem)

 OUT:    1  Удалите бит ресурса и возвращайте, как будто никакого рескрса не было найдено.

 Notes: Если вы .REMOVE ARGO, вы удалите бит ресурса, и таким образом спот (spot) будет сново годен

 к употреблению. Иначе бит ресурса останется там, со значением установленным на 0, определить, что нет никакого

 ресурса здесь (пока это не распадается из-за собственного REGEN).

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



NOTE: Этот триггер по внесению в список может оказаться неточным - пожалуйста прочитайте REVISIONS.TXT,

    чтобы проверить были ли сделаны изменения здесь.



**** Стафф, возможно вы нуждаетесь в скриптах ************************************************************

Это ряд флагов, которые вы могли бы найти в статических плитках, в статике(n).TILEFLAGS:



[DEFNAME tile_flags]      // от Shadowlord

tilef_background    01  // Никаких идей. Никаких ваще Возможно это чернота :)

tilef_weapon  02  // I smack thee with this here ... club?

tilef_transparent    04  // Да. Так что мы можем видеть через это?

tilef_translucent    08  // Окей...

tilef_wall      010  // Эй смотрите, мы не можем идти через это!

tilef_damaging  020  // Лава, возможно? Огни, хмм!

tilef_impassable    040  // Горы и стафф, я буду держать пари.

tilef_wet      080  // Вода? Или грязь? Или гладкая дорога в ливне? Вероятно первое.

tilef_unknown  0100  // Ух...

tilef_surface  0200  // Столы или кое-что еще?

tilef_bridge  0400  // Интерестно почему есть флаг для этого.

tilef_stackable  0800    

tilef_window  01000  // Что мы можем видеть/выбегать?

tilef_noshoot  02000  // ? Мы не можем выбежать или кое-что? Так, как стеклянное окно возможно?

tilef_prefixA  04000  // Карта

tilef_prefixAn  08000  // Яблоко

tilef_internal  010000  // волосы, бороды, и пр растительность

tilef_foliage  020000  // Вероятно кустарники и листья деревьев и палки.

tilef_partialHue    040000  // semi-glowy?

tilef_unknown_1  080000  // Хорошо, ну и дела. Я должен видеть если это на чем-нибудь используется...

tilef_map      0100000  // Для меня звучит хорошо.

tilef_container  0200000  // Они сигнализируют им!?

tilef_wearable  0400000  // Omigod!

tilef_lightSource    0800000  // Я становлюсь утопленным печатаньем повторного shiznit теперь.

tilef_animated  01000000    // Как огонь снова. И стафф (stuff). Пропеллер spinny thingies!

tilef_noDiagonal    02000000    // !?!???!!?

tilef_unknown_2  04000000    // Я действительно надеюсь, что некоторые из этих неизвестных - флаги n/w/s/e.

tilef_armor      08000000    // Броня, хорошо, это считает щиты? Хммм?

tilef_roof      010000000    // "Не провалитесь мне!" Или почему - не это, только ослабла поверхность или что-то другое??

tilef_door      020000000    // Хорошо...

tilef_stairBack  040000000    // Разве мы не имеем лестницы, которая двигается вперед или влево (!?) ? Это могло закрыть оба...

tilef_stairRight    080000000    // Хорошо, безотносительно, вы можете подняться на них, так, эй... Хорошее использование для





Это - ряд флагов, которые вы можете найти в CAN секции предметов. Некоторые получены

из флагов выше, хотя они - independant и затрагивают только динамические предметы.

Комментарии к ним были вынуты из исходного текста, и я не буду полагаться на них

Я заменю их, посколько я нахожу лучше.



[DEFNAME can_i_flags]

CAN_I_DOOR  00001    // Это дверь UFLAG4_DOOR

CAN_I_WATER  00002    // Должен плавать в этом. UFLAG1_WATER

CAN_I_PLATFORM    00004    // мы можем идти на вершине этого. (даже если предмет мог бы блокировать) UFLAG2_PLATFORM

CAN_I_BLOCK  00008    // должен идти через стены или пролетать. UFLAG1_BLOCK

CAN_I_CLIMB  00010    // наступите на это, UFLAG2_CLIMBABLE

CAN_I_FIRE  00020    // Это огонь. Обычно блокирует хорошо. UFLAG1_DAMAGE

CAN_I_ROOF  00040    // Мы находимся под крышей. дождь не может идти на нас. UFLAG4_ROOF



CAN_I_PILE  00100    // Может сложить предметы UFLAG2_STACKABLE (*.mul)

CAN_I_DYE  00200    // Может окрасить предмет UFLAG3_CLOTH? (сортировать)

CAN_I_FLIP  00400    // щелкнет по дефолту.

CAN_I_LIGHT  00800    // UFLAG3_LIGHT

CAN_I_REPAIR    01000    // Это исправляется (трудность основанная на значении)

CAN_I_REPLICATE    02000    // Вещи как стрелки являются в значительное степени одинаковыми.





**** изменения ОБЛАСТИ / КОМНАТЫ ****************************************************************************

Области / комнаты (Areas / rooms) могут теперь поставляться в различном формате, подобном ITEMDEF и CHARDEF:

  [AREADEF defname]

  NAME = ...

Это позволяет серверу идентифицировать каждую область уникальным названием.

Если вы хотите преобразовать ваши существующие области к новому формату, процесс прост.

1) Запустите сервер как нормальный (!?)

2) В консоле напечатайте "d a" (без ")

3) Должен быть создан новый файл "map_all.scp", скорируйте его в папку со скриптами.

4) Выключите сервер. Отредактируйте spheremap.scp и удалите все ROOM/AREA секции, оставляя только

  MOONGATES и TELEPORT секции.

5) Переименуйте spheremap.scp (теперь только с teleporter/moongate данными) в spherepoints.scp и

  переименуйте map_all.scp в spheremap.scp.

6) Добавьте вход относительно spherepoints.scp к spheretables.scp



Альтернативно, вы можете скачать скрипт пакет (Script Pack), который уже имеет эти файлы.



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


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


***********

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



Код


Диалоги в Sphere Server 0.56a

Переведено на русский язык - DihlofozzZ: 14-12-2004

Проэкт Sphere Ultimasoft

http://sphere.uokit.com



*********************************************************************



- Добавлен TAG.DIALOG_NAME к MEMORY_GUMPRECORD. Таг содержит название открытого  

диалога. Специальный случай - .admin гамп (клиент лист), гамп краски волос (hairdye), гильдийный  

хард-код гамп (guild) и если названия не найдено (undef). Надейтесь, что это поможет в проверке,

какие гампы открыты на экране клиента.



- Добавлена команда SDIALOG. Это работает, как DIALOG с различием в том, что она откроет диалог

только, если не его не будет присутствовать на экране клиента.



- Команда DIALOGCLOSE. Первый аргумент - название диалога, второй аргумент - кнопка, которая

должна быть вызвана на диалоге - 0 если не указано. (пример: DIALOGCLOSE d_my_dialog). Вы можете

поместить ее, как одну из первых команд секции диалога (DIALOG), чтобы гарантировать, что только

один диалог данного типа на клиенте.



- Главная секция для диалогов (DIALOGs) теперь полностью интерпретируется, как другие скрипты,

разрешая вам добавить логигу в ваш диалог, использовать IF и т.д. Единственное ограничение в

настоящее время - то, что команды гампа позволяются только в секции диалога (DIALOG), а не в

пределах функций (FUNCTIONs), но это лучше.



- Диалоги больше не будут находиться в конфликте друг с другом, это учитывает постоянные

диалоги на экране. Работы INPDLG также, видит, что может быть только одно окно INPDLG

на экране всегда.



- Чтобы сделать написание диалогов проще, добавил курсор и относительные координаты:

dorigin 50 50 // устанавливает расположение в x=50, y=50

Используя "*" около координат делает это относительно расположения и перемещает расположение

на некоторые значения:

dtext *0 *10 0 расположение теперь x=50 y=60, итак это последнее расположение

Используя "+" около координат делает это относительно последнего местоположения w/o изменением

расположения.

dtext +10 - 0 добавляет 10 к X (y=150, o.y=100)

Как пример, примерно напишите список текста с 3 колонками, каждый seperated через 200 x и 20 мест

между каждым рядом:

dorigin 10 10

// первый ряд

dtext *0 - 5 1:

dtext +10 - 0 текст для ряда1, колонки1

dtext *200 - 5 2: // x расположение = 200

dtext +10 - 0 текст для ряда1, колонки2

dtext *200 - 5 3: // x расположение = 400

dtext +10 - 0 текст для ряда1, колонки2



И теперь нужно только один раз спуститься по одному ряду и дальнейший текст будет подобным.

Это не слишком легко, чтобы объяснить, это здесь для того чтобы кто-нибудь мог бы найти это

полезным (!?). Если вы не поняли как использовать это, игнорируйте :)



- Изменен textadd (добавление текста) и gumptext (гамп текста), чтобы разрушить равные вереницы

текста к тому же самому индектсу. Так что если вы используете:

gumptext 10 20 Это экземпляр.

gumptext 10 40 Это экземпляр.

gumptext 10 60 Это экземпляр.

Это сгенерирует один (ONE) id текста. Теперь не нужно иметь seperate секцию текста (TEXT).

Такая секция полезна для того чтобы держать вереницы в одном месте (в этом случае это было б

полезным), но эт больше не принудительно, это становится просто вопросом стиля/выбора.



- Вы можете теперь открыть диалог в определенной странице, с DIALOG d_dialog_name pagenumber.

Это фактически невозможно с клиентом UO - повторно вычисляет числа страницы/кнопки диалога

так, чтобы отобранная страница была первая. Это полностью невидимо, хотя, и работает совершенно.



- Добавлена новая команда - DTEXT - к гампам, которая делает обработку ID текста для вас

(d поддерживает динамический):

dtext x y color Фактически здесь находится текст :).

Текс добавляется с помощью gumptext, добавленного в [DIALOG ... TEXT] секцию. Если вы используете

данную вереницу текста однажды, то это фактически быстрее используется, чем использование "text" и

добавляет это в TEXT секцию диалога. Симмилар команды DCROPPEDTEXT и DTEXTENTRY, находились

там же, беря текст вместо индекса. DHTMLGUMP находится также в, но уведомление, что синтаксис

подходит на HTMLGUMP, за исключение того, что вы берете ID и добавляете текст в конец.

С этими изменениями, вы можете полностью взять [DIALOG ... TEXT] секцию диалога. Только те

веретеницы, которые обычно используются в диалоге, вы должны вставлять в [DIALOG ... TEXT] секцию.

Внутренне и gumptext и textadd просто добавляют матерьял к диалогу, если необходимо, и посылают

нормальные команды "text" клиенту, так что их бехопастно использовать. Но они освобождают вас

от необходимости держать след длинного списка чисел, и позволять вам формировать и изменять

ваш диалог w/o с id текста.



- Теперь вы можете использовать функции в гампах диалогов. Так что вы можете делать свои алгоритмы с гампами!!! Смерть диалогам "режь и вставляи".



- Измененные секции кнопки (BUTTON) диалога

ON=min max для обобщения любых кнопок с номерами между min и max(включительно).

Кроме того, argn1 это buttonID, который был фактически отобран (даже когда определяют только buttonID,

а не диапазон, как обчыно). С buttonID в argn1 вы можете написать больше родовых функций с небольшой

суетой.



- "return 1" в пределах диалога (DIALOG) секция останавливает диалог от того, чтобы фактически быть

посланной.



- Добавленны аргементы диалогам, в этой форме: "DIALOG d_dlg 0 blabla", и <args> и <argv[x]> может

использоваться. <argn> число страницы (второй аргумент)



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


Topic Closed
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
NFx
сообщение 15.12.2004, 17:50
Сообщение #6


********

SpS 60+(умер), NE Priest 40+ жифф
Сообщений: 1.505
Регистрация: 3.9.2003
Группа: Пользователи
Наличность: 0
Из: Подмосковье
Пользователь №: 950



Код
Здесь выписанные события из ревижена от 12/11/2004 которые касаются изменений в sphere.ini. Вполне возможно, что я что-то и упустил, и так же я не даю вам полного обьяснений каждого нововведения, но это только начало. Если КАКАЯ-ЛИБО информация неверна или неправильна, пожалуйста, отпостите и скажите мне о неи. Спаибо за внимание.







Sphere.ini:





Новые, добавленные переменные:



SPEEDSCALEFACTOR в INI (стандартное значение 15000), используется в подсчете задержки удара оружия, теперь формула выглядит вот так : ЗАДЕРЖКА = SPEEDSCALEFACTOR / ( ( DEX + 100 ) * SPEED )



COMMANDLOG пишет логи команд произведенных только указанным плевелом или выше. (стандарт = 0, пишет логи всех игроков)



EVENTSPET евенты на всех НПС



LOSTNPCTELEPORT=X в sphere.ini. Если X больше ноля, то NPC имеющие установленную домашнюю координату (я так думаю имелось ввиду спавн-поинт .-nfix) будут телепортиться на домашние координаты если расстояние между НПс и коордиантами первысит X. Это правит потерю НПС, когда они входят в портале и теряются на карте.



DISTANCEYELL, DISTANCETALK, DISTANCEWHISPER контролируют дистанцию на которои вы видите текст. Значение -1 делает сообщение трансляциеи(ммм, наверное имеется ввиду что сообщение видет весь сервер .-nfix).



NORESROBE в sphere.ini. Если установленно 1, игрокам не будет даваться роба при воскрешении.



REPLYPEERCONNECTS (по стандарту 1) для разрешения мастер-сервера и peer-соединений.



HITSUPDATERATE короткие пакеты изменения статов теперь используются заместо полных пакетов изменений статов, когда меняется только hits/mana/stamina или их максимальное значение. Это значение контролирует как часто (в секундах) мои измененые хитпоинты будут отсылать всем поблизости кто видет меня, стандартное значение 1, увеличте для изменения кол-во поедаемого траффика, 0 значение отменяет отсылку таких улучшений (как это было в версии 55i)



TELEPORTEFFECTSTAFF и TELEPORTEFFECTPLAYERS еффект телепорта для стаффа/игрока (используите ИД еффекта в шестандцатеричнои системе или 0) (стандарт: 03709 для стаффа, 0372a для игроков). Значение 0 отменяет еффекты.



MAXITEMCOMPLEXITY (стандарт: 25) - количество предметов в одном таиле(локации/клетки, ну кто как называет .-nfix) при котором сфера светит сообщение "too many items here".



MAXSECTORCOMPLEXITY (стандарт: 1024) - количество предметов в одном секторе, при котором сфера светит "x items too complex".



PAYFROMPACKONLY (стандарт: 0). Если установленно 1, тогда покупая вещи у вендоров учитывается только кол-во золота в сумке



WOOLGROWTHTIME: время в минутах которое отрастает шерсть у овцы



SKILLPRACTICEMAX: до какои высоты вы можете качтаь умение на макетах/целях для лука



USECRYPT если значение 0 не позволяет encrypted клиентам подсоединяться, иначе им позволенно присоединяться (стандарт: 1).

USENOCRYPT если 0 не позволяет соединяться не ecrypted клиентам. В ином случае:



if 1 -> позволяет и предполагает что клиент будет версии >= 2.0.0

if 2 -> n/a

if 3 -> позволяет и предполагает что клиент будет версии >= 3.0.0



ARCHERYMAXDIST в sphere.ini (стандарт: 12). (че-то тут без пояснения, наверное рассчитывали что те кто читает эту статью на английском и так из названия все поимут... в общем, значение - максимальное расстояние стрельбы с лука .-nfix)





CONNECTINGMAX=x, где x максимально кол-во игроков которые могут одновременно выити в не игровом статусе (http, login, и т.д.).

Более старые клиенты в не-игровом состоянии отключаются когда подсоединяются новые. Стандарт: 24



CONNECTINGMAXIP=x, выше, но в пределах ИП. Максимум x одновременных “не в игре" соединений будут позволенны на IP. Заметьте, что HTTP требования, к примеру, считаются как "не в игре". Стандарт: 8



CLIENTMAXIP=x, максимальное кол-во соединений с IP. Это собирается остановить флудеров, НЕ УСТАНАВЛИВАТЕ СЛИШКОМ НИЗКОЕ ЗНАЧЕНИЕ, или вы рискуете выглядеть по-<вырезано анти-матом>ски. ОЧЕНЬ ЧАСТЫ ситуации, когда соединения могут выглядеть, буд-то исходят от одного ИП, в основном это будут ситуации, когда люди сидят из одного интернет-кафе. Стандарт: 0





FEATURES для определения новшеств, которые сервер будет регулировтаь у клиента на подключении:

0001 - (T2A) включает кнопку чата

0002 - (LBR) включает звук из LBR (играет MP3 вместо MIDI)

0004 - (T2A) включает T2A улучшения

0008 - (LBR) включает LBR улучшения (показы монстров)

Стандартная .55i автоматически врубает 0001 - но вы не можете это отменить.





ЕКСПЕРИМЕНТАЛЬНЫЕ И НЕОБЯЗАТЕЛЬНЫЕ ДОПЛНЕНИЯ:



OF_Magic_CanHarmSelf = 0002, так заклинания с флагом SPELLFLAG_HARM будут деиствовать на кастовавшего (полезно для SPELLEFFECT в скриптах)



OF_Magic_IgnoreAR = 0001, делает так, что AR не подсчитывается для остановки урона от заклинания.



OF_Skill_DiffFirst = 0008. С этим включенным флагом, сложность ля этого скилла подсчитывается до вызова @Start/@SkillStart. Это удобство для изменения слождности использую ACTDIFF внутри этих триггеров. Заметьте, что для того, чтобы умения не удалось, ACTDIFF должен быть установлен выше нынешнего (измененного) скилла. Устанавливая ACTDIFF отрицательное значение оборвет скилл, не вызывая @Fail, и никакого улучшения умения не будет. Для постояннои неудачи установите ACTDIFF значение превышающее возможное значение умения (ну, 1001). Так же имеется побочный эффект вызова @SpellCast до @Start/@SkillStart. Хотя, с другои стороны, это очень удобная ситуация для применения вашеи собюственнои сложности умения. Вот пример установления сложности навыка Arms Lore по краинеи мере такого же значения как создание предмета. (использую основынои навык).



Игроки с навыком выше ACTDIFF всегда сделают вещь удачно



ON = @Start

if ( <SRC.ACTDIFF> < <SRC.ACT.SKILLMAKE.1.VAL> )

SRC.ACTDIFF = <SRC.ACT.SKILLMAKE.1.VAL>

endif





EF_Intrinsic_Locals (080), после того как вы зададите LOCAL.X = что-то, вы можете вызывать значения переменнои используя просто <X>. Будьте осторожны! Не назовите локальную переменную названием уже имеющихся в сфере переменных!(<LOCAL.STR> а потом когда будете вызывать <STR> лажанетесь .-nfix).

Пример:

LOCAL.X = 10

SYSMESSAGE X is <X>.



OF_Advanced_AI (включает обхождение обьектов на пути, помощь друзьям магиеи, нахождение более верного пути)



EF_Minimize_Triggers (040000) заставляет вызывать сферу лишь самый необходимый минимум триггеров (хм, типо она токо и делает что лишние триггеры вызывает? .-nfix).



Of_Multithreaded to split clients handling to to other thread. This will work only in windows build and is not recommendable to change on fly. This is VERY experimental yet, since sphere is very singlethreaded by design. (тут ничем помочь не могу - сам не понял о чем речь .-nfix)



EF_Script_Profiler (08000) для добавления информации для оптимизирования использования функций в слабых местах (функции или триггеры).



EF_Size_Optimise (010000) заставляет сферу сохранять WORLDITEM/CHAR/SCRIPT как фаилы W*, размером 7+ килобаит. Загрузка сферы поддерживает любои метод.



OverSkillMultiply (Стандарт 2). Когда навык/статистика прокачивается до значений превыщающих скиллкласс, возращение их на уровень, указанный скиллкласса. Значение 0 отменяет деиствие.



EF_WalkCheck (01000) - новый код на проверку движения, должен исправить множество ошибок на лут домов (переделанная вердата, прохождение под ступенями и т.д.)

ЗАМЕТКА: в стандартном пакете скриптов некоторые лестницы прописанны через DUPELIST предметов, которые на самом деле не лестницы, так что у них не правильные CAN флаги (CAN_I_CLIMB не установлен). Убедитесь что вы поправили свои скрипты до активации этого еффекта, иначе вы не сможете проходить по некоторым динамическим(которые не в статике;) .-nfix) лестницам.





EF_Pathinding прекрасно работает, заставляя НПС выбирать лучший путь к целе. В любом случае, для улучшения скорости, проверяются только статические объекты, блокирующие ему дорогу. Нужно больше проверок на скорость для того чтобы включить проверку на динамические преграды.



OF_NoHouseMuteSpeech (0200) - если включено, то игроки способны слышать друг друга снаружи и внутри дома.



OF_NoItemNaming (0100), сфера перестает именовать предметы по типу "sword crafted by Player"



EF_No_Pause_Packet (0400), сфера перестает отсылать "Disable Redraw" (или пауза) пакеты каждый раз когда новый персонаж/предмет послан клиенту. Это предотвращает лаги. Это сохраняет окло 45 баит на каждое деиствие, вроде не кажется слишком много, но вы ощутите разницу.





EF 0x0002 включает новые UNICODE исправления.



EF 0x0010 enables the INTERRUPT field in SPELL sections. INTERRUPT=100.0 100.0 SHOULD yield the standard always fail behaviour, as should not having an INTERRUPT line at all. But seeing as this wasn't fully tested, you MUST enable this flag to make any use of the interrupt values.





OF_FileCommands (080) ограничивает новые команды, которые работают с фаилами. Будьте осторожны, потому как любои GM с доступом к SERV.* может их использовать!

FILELINES

READFILE

SERV.WRITEFILE <filename> <text>

SERV.DELETEFILE <filename> (ооо, а неплохая шняга! Взял вот так и удалил пару-троику скриптов... .-nfix)



EF_Item_Strict_Comparison (0200) для отмены использования похожих предметов заместо определнных, таких как: 0175d (cloth), 01067 (leather), 01078 (hides), 01bdd (log), 01bd7 (boards), 00f3f (arrow), 01bfb (bolt), пример: когда сервер ищет у игрока стрелы, любои предмет с типом t_weapon_arrow подоидет, и так далее.





EF_Scripts_Parse_Verbs (040). Теперь, если включенно, разбивает команду перед выполнением, т.е. TRY становиться совершенно не нужным. Вот пример :

// разбивается чтобы стало: str = <<local.mystat>> + 5

<LOCAL.MYSTAT> = <<LOCAL.MYSTAT>> + 5

SYSMESSAGE Stat '<LOCAL.MYSTAT>' increased to <<LOCAL.MYSTAT>>.



EF_New_Triggers (010). Если установленно врубает @NPCActFight, @NPCActFollow, @NPCLookAtChar и @NPCLookAtItem. This flag was added because even having these triggers *might* have some impact upon performance in very busy shards.



EF_DiagonalLOSCheck (04000) - чтобы видеть цель в диагональном направлении, мы должны видеть по краинеи мере в одном из ортогональных направлениях, это значит что вы не можете видеть предмет только через угол, это правит телепорт через углы забора и некоторые другие баги, но до сих пор позволяет, к примеру,  закрывать двери которые в диагональном направлении.

Когда вы открыватете smile.gif установка этого флага жрет работоспособность CPU (Это вообще к чему? хз .-nfix).



по материалам : http://www.sphereserver.net/forums/index.php?showtopic=33057

by NFix для www.uokit.com




2 строки оставил непереведенными - ибо сам не понял о чем там говориться. А так - об грам. ошибках и т.д. уведомляите


--------------------
Важна не реклама, а качество.
Качество - девиз хороших серверов.
Продуманность и готовность - девиз очень хороших серверов.
..::Lorien Role-Playing Shard(RunUO)::..
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DihlofozzZ
сообщение 14.11.2005, 18:49
Сообщение #7


***********

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



Код

---- 0.56b --------------------------------------------------------------------
---- * не выпущена

09-12-04, Vjaka
- Добавлена кэш поддежках всех карт. Из-за этого, сектора больше не поддерживаются в некоторых частях на разных картах, разрешены локальные (local) свойства для карт.
- добавлен ADDCIRCLE=x[,y], чтобы добавить круг в книгу магии. Если "y" включен, то включаются более низкии круги магии.
- Оптимизирован метод захвата файлов. Это должно немного улучшить мультипронизывание (multithreading).
- Изменен [SECTOR x,y] в сохранениях мира на x,y,0,map, чтобы разрешить локальные свойства для секторов на разных картах. Старый формат остался дефолтным для 0-й карты.
- Сектора больше не разделены на различные карты, сектора карт, неподдерживающихся сервером (не имеющих связи с *.mul файлами) не получают тики (ticks).
- исправлен дюп вещей при сохранении статики в некоторых случаях.
- Добавлена команда BADSPAWN для прыжка к первому плохому спауну (spawn), найденному в мире. Вы должны добавить это к [PLEVEL записи. Это сохраняет UID в ACT, в случае, если вы не видите этот спаун из-за большого количества препятствий.
- Удален неиспользуемый PRIVHIDE (достаточно privshow 0/1).

10-12-04, Vjaka
- Исправлены некоторые дефолтные сообщения (defmessages), имеющих опечатку, из-за которой было не возможно обрабатывать их.
- Исправлен триггер @Kill, теперь триггер вызывается, даже если убийца не агрессор в битве.
- Изменено: MAPPLANE->MAP, LOCALLIGHT->LIGHT (.56a поддерживает оба варианта, но сохраняет секунду). Запуск и сохранение в .56a приведет к автоматическому исправлению этого в сейвах.
- Теперь любые предметы с атрибутом ATTR_STATIC сохраняются в spherestatics.scp, не только те которые имеют только этот флаг.
- Исправлено запрещение употребления ретурн в сообщениях.

11-12-04, Furio
- Исправлено: баги с FORCONT* loops.
- Исправлен: баг с цветным текстом в in comm crystal.
- Добавлена: SKILLGAIN функция, чтобы вызвать внутреннюю skillgain функцию сферы. Args - скилл для роста и сложность (от 0 до 100).
- Добавлено: REPORTEDCLIVER для клиентов. Это будет содержать версию клиента (это легкий fakeable к "3м" программам, но все еще используемый).

13-12-04, Vjaka
- Исправлено разрешение выполнений функций, используемых на контейнерах, если название началось с rescount,restest,fcount или count.
- Исправлен isneartype, не работающий при вызове "under points" (как в TARGP).

17-12-04, Vjaka
- Информация по удалению аккаунта теперь содержит имя аккаунта.
- Добавлена функция для NPC - GOTO x,y,z,map для использования дефолных движений сферы.
- Redone pathfinding to support separate thread execution, so it now utilizes extra thread if OF_Multithreaded is set.
- Усовеншенствованная AI теперь включает поиск пищи при голоде, чтобы собрать и съесть вокруг пищу. Это выполняется  в отдельности с pathfinding, если формируется так.

21-12-04, Vjaka
- Изменены распределения секторов, теперь поддерживаются только те, *.mul файлы которых находит сервер. Таким образом на установленном голом Т2а будут поддерживаться только карты, которые найдет сервер. (?)
- Случайный выбор {x y} теперь поддерживает формат {x,y} . Это должно помочь при работе с DAM/AR полями предметов.
- Добавлено EXP поле для чаров. Пока нет внутренней поддержки для этого. Но уже можно использовать в скриптах.
- Пустой "account" файл, созданный "в полете" не находится. Полезно для unpack-n-run
- Пофикшен баг с TOTALCONNECTTIME, увеличивающаяся с двойной скоростью, сейчас сделана более точно.


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


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

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

 

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