![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
![]() |
![]()
Сообщение
#1451
|
|||||||
Level 19 ![]() Класс: Воин Характер: Lawful Good Раса: Человек NWN: Скриптинг [Sn] ![]() |
Эффект слепоты на 7 секунд
Удаление слепоты
Если ПС открывает объект, то его должно джампнуть к ближайшему объекту с тегом "wp_bed_in", если такого нет, то пишется "No wp_bed_in tag nearby". Если находится, то происходит джамп к вейпу, затем ПС проигрывает анимацию и на него два раза накладывается эффект сна. Далее блокируется стек(ПС больше нас не слушается). Можно раскоментировать две строчки и тогда будет наложение эффекта слепоты,а через 7 секунд его снятие. Потом восстанавливаем хиты и говорим "You are healed, though you must rest to regain spells." Затем снова можем управлять героем. Это, что скрипт на сон? Такое ощущение, что он был вырван от куда-то. |
||||||
![]()
Сообщение
#1452
|
|||
Level 5 ![]() Класс: Обыватель Характер: Lawful Neutral Раса: Человек NWN: Модмейкер Проклятие Левора Порядок Времени ![]() |
если игрок входит в локу, наступает на триггер и тд. (скрип стоит на слоте onEnter) |
||
![]()
Сообщение
#1453
|
|||
Level 19 ![]() Класс: Обыватель Характер: True Neutral Раса: Дварф NWN: Контент ![]() |
Спасибо :good:
Естественно. Так бы я не просил о разъяснении :) Этот скрипт - из модуля-демонстрашки кроватей, на которых можно лежать (модифицированный вокмеш). Собственные кровати мной уже сделаны - осталась сама скриптовая реализация. На самом деле лежабельность кровати - фича для НПС, которые ложились бы спать на ночь :pilot: Но, помимо этого, хочется придать такую возможность и персу. Как я слышал, rest возможен ТОЛЬКО при анимации sit. Правду говорят? |
||
![]()
Сообщение
#1454
|
|||
Level 5 ![]() Класс: Обыватель Характер: Lawful Neutral Раса: Человек NWN: Модмейкер Проклятие Левора Порядок Времени ![]() |
нет, не правду говорят. |
||
![]()
Сообщение
#1455
|
|
Level 2 ![]() Класс: Тайный Лучник Характер: Chaotic Evil Раса: Полуэльф ![]() |
Товарищи знатоки. Внимание на экран, вопрос:
Я поставил диалог NPC, члену команды. В стиле "вызывай подкрепление", на что NPC должен вызвать звера, надцатого уровня. А если в тот же день попросить вызвать ещё, NPC посылает меня подальше... думаю в скрипте вызова надо поставить Лок.переменную которая будет обнуляться после определённого времени. Если переменная =1, то меня посылают, если 0, то помогают. Но это догадка, а как это будет выглядеть? |
![]()
Сообщение
#1456
|
|
Level 5 ![]() Класс: Обыватель Характер: Lawful Neutral Раса: Человек NWN: Модмейкер Проклятие Левора Порядок Времени ![]() |
читай ВиО. Там есть пример, как с локалками работать в случае диалога. У тебя именно такой случай. Только снимать локалку я думаю надо по отдыху.
ВиО = Вопросы и Ответы.. тема чуть ниже. |
![]()
Сообщение
#1457
|
|
Level 9 ![]() Класс: Вор Характер: True Neutral Раса: Эльф NWN: Скриптинг [PW] ![]() |
всем привет.
задача - узнать какой тип дамага нанесен двери - например холодом вот назрел вопрос :bad: как?! :unsure: в OnDmg: GetDamageDealtByType() возвращает -1 всегда :| GetMaxHitPoints()-GetCurrentHitPoints() - дает только то, что дверь повреждена :| остается перебор SpellId() в onSpellCast и проверка оружия, которым бьют О.о помогите нубику в поиске ни чего не нашел Сообщение отредактировал 2_advanced - Aug 21 2005, 20:38 |
![]()
Сообщение
#1458
|
|||||
Level 5 ![]() Класс: Обыватель Характер: Lawful Neutral Раса: Человек NWN: Модмейкер Проклятие Левора Порядок Времени ![]() |
GetDamageDealtByType(int) Determines the amount of damage of a specific type dealt to an object.
Description Returns the amount of damage of type nDamageType that has been dealt to the caller. When called from the OnDamaged event, this function returns only the damage which was caused during that event. nDamageType can be assigned to OR-ed values from the constant group DAMAGE_TYPE_*. For example, GetDamageDealtByType(DAMAGE_TYPE_PIERCING | DAMAGE_TYPE_SLASHING) would return the damage dealt by piercing and slashing attacks. The base weapon damage is the base damage delivered by the weapon before any additional types of damage (e.g. fire) have been added. Use DAMAGE_TYPE_BASE_WEAPON, in the 1.64 patch, to get this. Previously, you couldn't get this amount of damage. Remarks This only works with EffectDamage, as detailed below. It must be noted that this function returns -1 if no damage of that type occured. Because of this, do not use this line, it will never work; if(!GetDamageDealtByType(DAMAGE_TYPE_PIERCING)) And this line will always be true, as it mearly does the opposite of the above: if(GetDamageDealtByType(DAMAGE_TYPE_PIERCING)) This would be the correct way: if(GetDamageDealtByType(DAMAGE_TYPE_PIERCING) != -1) Or even better, look at the example for a valid way of using this function to see if we were damaged of a cirtain type of damage. Known Bugs EffectDamage() now isn't the only thing that affects this function. It can return DAMAGE_TYPE_BASE_WEAPON for any phisical weapon damage done *before* additional enery (fire etc.) damage done by that same weapon. The issue with DAMAGE_TYPE_SONIC is fixed in 1.64. Version 1.64
© LEXicon |
||||
![]()
Сообщение
#1459
|
|
Level 3 ![]() Класс: Паладин Характер: Chaotic Evil Раса: Человек ![]() |
Извините, коль вопрос уже был задан, нету времени смотреть 32 страницы :crazy:
Кто может объяснить, куда вставлять CustomTalk'ины. Слышал, что они делают много полезных вещей. Объясните, плз. |
![]()
Сообщение
#1460
|
|||
Level 9 ![]() Класс: Фея Характер: Chaotic Evil Раса: Тварь NWN: Скриптинг [PW] ![]() |
в диалоги и имена плэйсов. вставлять в виде "<CUSTOMnnnn>"(без кавычек), где nnnn - номер этого тукена. ставится из скриптов путем вызова SetCustomToken(nnnn, "строка"). читайте Lexicon, даже без знания английского там можно интуитивно догадаться, что к чему. Добавлено в [mergetime]1124728780[/mergetime] да, номера тукенов от 0 до 9 используются игрой, посему не стоит использовать эти номера. |
||
![]()
Сообщение
#1461
|
|||
Level 9 ![]() Класс: Вор Характер: True Neutral Раса: Эльф NWN: Скриптинг [PW] ![]() |
издеваетесь? :) говорю ведь, что вешал на дверь (не кричей насиловать) - всегда возвращает -1 :vava: |
||
![]()
Сообщение
#1462
|
|||||
Level 3 ![]() Класс: Паладин Характер: Chaotic Evil Раса: Человек ![]() |
2_advanced
Тут же все подробно описано. :xz: Lex взял описание напрямую из Лексикона. Если не понятно, объясню. Эта функция должна выводить кол-во урона, нанесенного определенным типом повреждения. Т.е. если ты хочешь получить тип повреждения, тебе надо включить смекалку. Этой функцией ты просто узнаешь кол-во урона, нанесенного одним типом. Тебе нужен скрипт, типа:
А потом ты сможешь спокойно манипулировать полученными тобой данными. ЗЫ: А -1 она у тебя выводит, потому что не был причинен урон описанного тобой типа (если ты его вообще описывал :) ) |
||||
![]()
Сообщение
#1463
|
|||||
Level 19 ![]() Класс: Воин Характер: Lawful Good Раса: Человек NWN: Скриптинг [Sn] ![]() |
В том-то и дело, что не узнаешь! Вот что нашел. OnDamaged Creature, door, or placeable object has lost hit points, apart from instant death. GetDamageDealtByType will only return damage amounts for EffectDamage, and so no phisical attack damage will be picked up. Для НПС все получается, а вот для дверей и объектов и правдо -1 выдает НА OnDamaged НПС это катит, а на OnDamaged скажем Армоире нет.
Сообщение отредактировал -fenix- - Aug 23 2005, 11:18 |
||||
![]()
Сообщение
#1464
|
|
Level 3 ![]() Класс: Паладин Характер: Chaotic Evil Раса: Человек ![]() |
Извиняюсь, если вопрос уже был задан. Очень Инет тормозит.
Вопрос, вобщем, не совсем мой. Но мне тоже будет интересно узнать. 1. Каким образом можно повысить уровень хэнча (с помощью скриптов, конечно :) ) и 2. как сделать так, чтобы при повышении уровня хозяина, повышался уровень хэнча. Лично я использовал для этой цели 3 различных скрипта, которые просто обязаны были сработать. Но не сработали. Помогите, кто знает. DikMorris © |
![]()
Сообщение
#1465
|
|||
Level 5 ![]() Класс: Обыватель Характер: Lawful Neutral Раса: Человек NWN: Модмейкер Проклятие Левора Порядок Времени ![]() |
1
(с) Lexicon юзай это на игрока и будет тебе счастье. 2 на скрипт onPCLevelUp в свойствах модуля используй функцию, что написана выше на хенче. |
||
![]()
Сообщение
#1466
|
|
Level 3 ![]() Класс: Паладин Характер: Chaotic Evil Раса: Человек ![]() |
Все перепробовал, а это забыл! :lol: :lol:
Спасибо, большое. Теперь повышается, родной. Извините за СПАМ, просто радости сдержать немогу. Столько недель, и вот!.. |
![]()
Сообщение
#1467
|
|||
Level 7 ![]() ![]() Класс: Маг Характер: Lawful Neutral Раса: Эльф ![]() |
ВОт мне очень интересно, почему многие на форуме про вопрос:"Как зделать так, что бы НЕПИСЬ или ПС сели на объект?", отвечают большими скриптами? Мне кажеться что этот нанмого легче :)
Кажеться так... Добавлено в [mergetime]1125090539[/mergetime] Скажите, как зделать так, что бы выбирался один эффект из 3 (предположим). И что бы выбранный эффект был временным... |
||
![]()
Сообщение
#1468
|
|||
Level 9 ![]() Класс: Вор Характер: True Neutral Раса: Эльф NWN: Скриптинг [PW] ![]() |
не
т.к. 1 при выходе сидячего чара из игры место накрывается 2 у коротышек 5ая точка находится внутри больших сидячих мест, что выглядит стремно 3 что-то еще было ;Р мой вариант усаживалки - создание невидимого объекта, на который игрок садится.. ну там с проверками всякими и т.п.. в 4 утра скрипт найти не смогу :drag: добавлено % если из под седячего выбить стул, то он в позе ахтунг еще довольно долгое время будет ;Р а с невидимого объекта можно спокойненько встать ломающиеся стулья в гостиннице - для звереющих вышибал :buba: Сообщение отредактировал 2_advanced - Aug 27 2005, 05:02 |
||
![]()
Сообщение
#1469
|
|
Level 19 ![]() Класс: Воин Характер: Lawful Good Раса: Человек NWN: Скриптинг [Sn] ![]() |
DEM, посмотри этот скрипт в Скриптах для новичков, там все написано.
|
![]() ![]()
Сообщение
#1470
|
|||
Level 19 ![]() Класс: Воин Характер: Lawful Good Раса: Человек NWN: Скриптинг [Sn] ![]() |
У меня такой вопрос. Делая свой отдых, я захотел, чтобы ПС после него проигрывал анимацию, сделать это оказалось легко, на REST_EVENTTYPE_REST_FINISHED и REST_EVENTTYPE_REST_CANCELLED это ставется без проблем. Потом по совету, я решил сделать анимацию перед отдыхом и вот это у меня ни как не получается :( Как я понял, стандартный отдых: усаживание ПС на пятую точку, полосочка, восстановление хитов и снятие эффектов - это прописанно в движке или где-нить глубоко. И это не меняемо, это остается и будет всегда. Когда мы пишем скрипт в OnPlayerRest, мы просто можем добавить некоторые мелочи связанные с игроком: он скажет фразу, затемним экран... и все, что угодно с ним не связанным: создание под ним подстилки и костерчика рядом... Если с игроком делать, что-то серьезное, то либо это не случается, либо отдых отменяется, допустим анимация. Если делать через ActionPlayAnimation, то она соответственно ставется в стек, и отдых выполняется первым, поэтому сама анимация не выполняется. Если делать через PlayAnimation, то она в стек не ставется и в результате отменяет отдых, точнее он заканчивается не успевая начаться. Наложение анимации не происходит, хоть стандартная анимация и LOOPING, видимо там все слито во едино. Пробовал делать ,что-то типо этого
Но выяснилось, что при вызове ActionRest из ActionRest игра виснет намертво, спасает только перезагрузка. После 7-10 перезагрузок и всевозможных, прешедших в голову переборов, эта идея то же испарилась. Создается впечатление, что добавить что-то серьезное в REST_EVENTTYPE_REST_STARTED не возможно. Пожалуйста, помогите, кто знает. Сообщение отредактировал -fenix- - Aug 29 2005, 16:48 |
||
![]()
Сообщение
#1471
|
|
Level 5 ![]() Класс: Обыватель Характер: Lawful Neutral Раса: Человек NWN: Модмейкер Проклятие Левора Порядок Времени ![]() |
хм.. а как насчет вызова ActionRest НЕ в onPCRest?
К примеру в ПЛ отдых сделан через диалог. Те нажимая кнопку мы начинаем диалог (там отдых прерывается сразу) и там выбираем, как отдохнуть (или просто подождать) и после этого собственно запускается ActionRest (если он нужен) Вот в таком варианте, например, добавить анимацию ДО отдыха имхо вполне реально... другое дело, что диалог, но и тут можно вроде обойти этот момент, сделав просто ExecuteScript() вместо диалога. там будет анимация и ActionRest. Чтобы не было цикла, просто сделай проверку локалки, что анимация уже была (в диалоговом режиме то же самое, там проверяется локалка, которая хранит количество часов, что мы хотим поспать) Удачи. |
![]()
Сообщение
#1472
|
|||||
Level 5 ![]() ![]() Класс: Рейнджер Характер: Neutral Good Раса: Человек ![]() |
Но можно сделать свою анимацию и ForceRest(object) использывать, по-мойму так .) Тока, тогда отдых, конечно, без полосочки будет.
ActionRest is added to the front of the action queue. If you want to add it as a normal action, you can call ActionDoCommand(ActionRest()); -Lexicon. Так что юзай: AssignCommand(oPC, ActionPlayAnimation(...)); AssignCommand(oPC, ActionDoCommand(ActionRest())); Иногда бывает полезно в Лексикон заглядывать... :D Сообщение отредактировал Friedrich - Aug 29 2005, 22:49 |
||||
![]()
Сообщение
#1473
|
|||||||
Level 19 ![]() Класс: Воин Характер: Lawful Good Раса: Человек NWN: Скриптинг [Sn] ![]() |
Lex, спасибо :good:
Дык, у него кажись и анимации не будет. Только эффекты всякии. происходит мгновеный отдых, с получением плюсов, это можно сделать и в бою!
Чета последнее время меня все просят Лексикон почитать? :) Давно взял за правило это делать, особенно когда не знакомые функции.:) Вот только скажи, что это мне дает? Анимация ставется в стек, а ActionRest нет, в результате отдых происходит первым и анимация не проигрывается. Может я что-то и не так сказал, но пробовать я это пробовал
Проирсходит, что я и говорил! Сообщение отредактировал -fenix- - Aug 30 2005, 11:58 |
||||||
![]()
Сообщение
#1474
|
|
Level 9 ![]() Класс: Вор Характер: True Neutral Раса: Эльф NWN: Скриптинг [PW] ![]() |
|
![]()
Сообщение
#1475
|
|
Level 7 ![]() Класс: Обыватель Характер: True Neutral Раса: Человек NWN: Модмейкер Начало Войны ![]() |
Когда-то спрашивал, решил повторить. Как отследить попадание некого существа по PC с целью повреждения доспеха? Для NPC это просто, ставя скрипт на OnDamaged, а для PC что-то не получается, вернее мыслей нет.
|
![]() ![]() |
Текстовая версия | Сейчас: 29th April 2025 - 16:00 |