|
|
|
Русский Revision и мануал для Sphere Server 0.56 |
|
|
DihlofozzZ |
13.12.2004, 4:39
|
Администратор форума
Сообщений: 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.
--------------------
|
|
|
|
NFx |
13.12.2004, 19:04
|
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)::..
|
|
|
|
DihlofozzZ |
14.12.2004, 2:15
|
Администратор форума
Сообщений: 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), который уже имеет эти файлы.
--------------------
|
|
|
|
DihlofozzZ |
15.12.2004, 2:54
|
Администратор форума
Сообщений: 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> число страницы (второй аргумент)
--------------------
|
|
|
|
NFx |
15.12.2004, 17:50
|
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)::..
|
|
|
|
DihlofozzZ |
14.11.2005, 18:49
|
Администратор форума
Сообщений: 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, увеличивающаяся с двойной скоростью, сейчас сделана более точно.
--------------------
|
|
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|