![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
![]() |
![]()
Сообщение
#776
|
|||||
Level 5 ![]() ![]() Класс: Рейнджер Характер: Neutral Good Раса: Человек ![]() |
Рес-реф и тэг тут не причем. А что такое object? object - это 32 битное целое, которое указывает на определенный объект в модуле (что это - адрес в памяти или просто абсолютный номер объекта, точно не знаю, скорее второе). Имеется функция string ObjectToString(object), возвращающая (как строку) значение идентификатора объекта в виде шестнадцатиричного числа. Соответственно, GetEffectCreater() вернет значение указателя на объект-креатор, предположительно, просто достав его из соответствующего поля эффекта (effect - это, кажется, по сути struct такой). Проверки на существование объекта с таким идентификатором при этом, происходить не должно (хотя ХЗ, чего там на самом деле происходит :xz: ). Видимо для подобных ситуаций, когда значение объекта не равно OBJECT_INVALID но самого объекта в модуле уже нет, и написана функция GetIsObjectValid(..). Когда же ты создаешь новый объект, он получает новый идентификатор, который, естественно, не будет соответствовать идентификатору объекта, созданного когда-то по тому же рес-рефу и имевшему тот же тэг (а жив он сейчас или нет - не важно). Исходя из вышесказанного можно предложить следующие. Накладывая эффект мы одновременно сохраняем в локалке идентификатор объекта-креатора: SetLocalObject(oTarget, "effect_creator", OBJECT_SELF); А потом, будем проверять соответствие креатора эффекта этой локалке, а не вновь найденному по тэгу объекту. Правда, нет никакой уверенности в том, что это будет работать, но можно попробовать. Заодно проверить истинность моих домыслов. Сообщение отредактировал Friedrich - Feb 22 2005, 20:47 |
||||
![]()
Сообщение
#777
|
|||||
Level 5 ![]() ![]() Класс: Рейнджер Характер: Neutral Good Раса: Человек ![]() |
Да. Усе работает. :yahoo: Если сохранить креатора эффекта в локалку, то потом можно использывать это значение, независимо от бытия самого креатора. Фрагмент лога:
Объекта с oСreator == 0x04 уже не существует (причем oCreator != OBJECT_INVALID), но созданный им эфект удаляется. 0x7FFFFFFF - это первый игрок. OBJECT_INVALID, кажется, равен 0x7F000000 (хотя это и не важно)
вот функция - в общем виде. |
||||
![]()
Сообщение
#778
|
|
Level 5 ![]() ![]() Класс: Маг Характер: Chaotic Evil Раса: Танар'ри ![]() |
>Friedrich
Thanks :D :D :D |
![]()
Сообщение
#779
|
|
Level 10 ![]() Класс: Волшебник Характер: Neutral Evil Раса: Человек ![]() |
Дайте плизз ктонибудь скрипт, чтобы любой Непись сделался статуей, я видел такой скрипт в 1 Аддоне.
Но ево у меня уже нет! Стереть все эктион у Непися и Наложить Камень в Плоть! тоюеж чтобы он недвигался и покрылся камнем! |
![]()
Сообщение
#780
|
|
Level 8 ![]() ![]() ![]() Класс: Псионик Характер: Chaotic Good Раса: Человек NWN: Скриптинг [Sn] ![]() |
Тут надо юзать эффекты катсцен: CutsceneParalyse и еще что-нибудь (я б кинул для верности все, кроме инвизбла)
|
![]()
Сообщение
#781
|
|||
Level 5 ![]() ![]() Класс: Рейнджер Характер: Neutral Good Раса: Человек ![]() |
Окаменение - это, вроде EffectPetrify() |
||
![]()
Сообщение
#782
|
|
Level 6 ![]() Класс: Фея Характер: Chaotic Good Раса: Элементаль NWN: Маппинг Gem of the North ![]() |
Вставить в скрипт OnSpawn Creature.
// * If Statue, apply statue visual effect if (GetCreatureFlag(OBJECT_SELF, "STATUE") == TRUE) { effect eStatue = EffectPetrify(); eStatue = ExtraordinaryEffect(eStatue); ApplyEffectToObject(DURATION_TYPE_PERMANENT, eStatue, OBJECT_SELF); SetPlotFlag(OBJECT_SELF, TRUE); } В Тулсете на монстер-статуе прописать переменную тип int, имя STATUE, значение TRUE. В теории надо еще спелл Stone to Flesh слегка отредактировать, чтобы такую статую нельзя было раскаменить. |
![]()
Сообщение
#783
|
|||
Level 10 ![]() Класс: Волшебник Характер: Neutral Evil Раса: Человек ![]() |
Lexey aka Hawk Спасибо Сделаю!
.
Можно чуть по подробнее как сделать! |
||
![]()
Сообщение
#784
|
|||||
Level 6 ![]() Класс: Фея Характер: Chaotic Good Раса: Элементаль NWN: Маппинг Gem of the North ![]() |
В SoU это было сделано так. На событии OnSpellCastAt моба-статуи стоит такой скрипт
Я бы в соответствующие спеллы просто вставил такую строчку.
В любом случае это лишь один из многочисленных вариантов. |
||||
![]()
Сообщение
#785
|
|
Level 4 ![]() ![]() Класс: Маг Характер: Chaotic Good Раса: Эльф ![]() |
Как выглядит скрипт из начала компании ХоТУ, который обдирал игрока как липку и переносил все его вещи в отдаленный сундук в Андердарке. Я искал, но не нашел.
|
![]()
Сообщение
#786
|
|||
Level 6 ![]() Класс: Фея Характер: Chaotic Good Раса: Элементаль NWN: Маппинг Gem of the North ![]() |
1-я глава XP1 Локация Waterdeep - Yawning Portal - Second Floor Событие OnEnter локации. Скрипт q2a_enter_rooms.
... и т.д. Весь скрипт приводить не буду, т.к. найти его теперь не составит проблем, а форум не резиновый. |
||
![]()
Сообщение
#787
|
|
Level 9 ![]() ![]() ![]() Класс: Страж Тьмы Характер: Chaotic Evil Раса: Нежить ![]() |
Прошу помочь скриптом. Чтобы при воскрешении и райз дэде снимался опыт -50 за уровень(как при респауне). Я понимаю что я задавал этот вопрос, но тогда мне сказали как просто снять с игрока определенное кол-во опыта.
|
![]()
Сообщение
#788
|
|||
Level 10 ![]() Класс: Волшебник Характер: Neutral Evil Раса: Человек ![]() |
Народ помогайте вот сделал скрипт просто не могу сёйчас с катушек съеду Вот скрипт.
Дело в том что я хотел показать прибытие армии.. Сделал локу с трамплином завышением.. И задумал что первый пойдёт босс, а потом он засмеётся и с обоих сторон армия наваливает.. Но бос не идёт а мигом телепортируется армия вабще в премешку Пк раньше времени появляется, жуть одним словом помогите народ! |
||
![]()
Сообщение
#789
|
|||
Level 5 ![]() ![]() Класс: Рейнджер Характер: Neutral Good Раса: Человек ![]() |
Об этом уже говорили где-то... В общем, самый постой способ, снимать экспу сразу при смерти героя, но онПлеерДес, а не на онРеспавн. Ноколл, если скрипт на триггере, то он будет срабатывать многократно, как только на него наступит какой-нибудь НПС. Добавь object oPC = GetEnteringObject(); if (!GetIsPC(oPC)) return; И вешай локалку (или стирай триггер), чтобы скрипт запускался только один раз. Глубже копать твои скрипты вряд ли кто-нибудь отважится. :) Сообщение отредактировал Friedrich - Feb 28 2005, 21:33 |
||
![]()
Сообщение
#790
|
|
Level 9 ![]() ![]() ![]() Класс: Страж Тьмы Характер: Chaotic Evil Раса: Нежить ![]() |
Friedrich Я вообще не о том...Вот например: игрок и умер и ждет пока его товарищ не реснет его. И вот когда этот товарищ скастует на труп райз или воскрешение, должно пройти пенальти
|
![]()
Сообщение
#791
|
|
Level 5 ![]() ![]() Класс: Рейнджер Характер: Neutral Good Раса: Человек ![]() |
А какя разница, когда накладывается пеналти, когда игрок умер, или когда его воскресили? Резултат ведь одинаковый - игрок воскресает получив штраф.
Иначе, нужно переписывать скрипты спелов райз дед (и чего там еще). |
![]()
Сообщение
#792
|
|||
Level 9 ![]() ![]() ![]() Класс: Страж Тьмы Характер: Chaotic Evil Раса: Нежить ![]() |
Вот мне ето как раз и нужно! Кстати вот ты говоришь про то что лучше снять экспу при смерти игрока, но дело упирается в том что у меня нет этого куска скрипта! не просто -300 хр а 300 за 10 левелов = 3к. |
||
![]()
Сообщение
#793
|
|||||
Level 5 ![]() ![]() Класс: Рейнджер Характер: Neutral Good Раса: Человек ![]() |
Скрипты спеллов, если кто не знает (сам долго не знал) называются nw_s0_* или x*_s0_*. По их названию, в общем, понятно, что за спел. Кроме-того, биоварами во втором аддоне реализована некая Spell Hook System, позволяющая изменть действия спелов, не переписывая исходные скрипты. Об этом есть инфа в последих релизах "Лексикона": Home > Lyceum > Tutorial > Advanced Scripting > Lilac Soul - Spell-Hooking (Как этим пользоваться не знаю - не копался).
Ага, говорю. Не понял про какой кусок какого скрипта идет речь. Ичто значит "300 за 10 левелов = 3к", т.е. 300 ХП за каждый левел.
Еще посмотри, как это дефолтном в onRespawn сделано (там еще добавлена проверка, чтобы игрок не мог потерять уровень). |
||||
![]()
Сообщение
#794
|
|
Level 1 Класс: Обыватель Характер: Lawful Good Раса: Человек ![]() |
дайте скрипт на уничтожение пк
|
![]()
Сообщение
#795
|
|
Level 10 ![]() Класс: Волшебник Характер: Neutral Evil Раса: Человек ![]() |
BIK-M@K
Привет :D У новичок какойто вопрос непонятный уничтожение 8( 8( ПК как так ну как Хочеш набери DestoriObject! |
![]()
Сообщение
#796
|
|
Level 1 Класс: Обыватель Характер: Lawful Good Раса: Человек ![]() |
спасибо
|
![]()
Сообщение
#797
|
|||
Level 10 ![]() Класс: Волшебник Характер: Neutral Evil Раса: Человек ![]() |
У да ты сдесь прям ну сразу знай болтать сдесь нельзя! :nono: Добавлено в [mergetime]1109649177[/mergetime]
Скрипт Мой Ставится на онЭнтер Локацыи! |
||
![]()
Сообщение
#798
|
|||
Level 9 ![]() ![]() ![]() Класс: Страж Тьмы Характер: Chaotic Evil Раса: Нежить ![]() |
Требуется сделать проверку, есть ли предмет oHoly в левой руке игрока. Если предмета в руке нет, то скрипт не выполняется.
Я конечно понимаю, что вот то, что вверху, все неправильно, но хотелось представить все хоть какие то результаты моей деятельности... Помогите довести проверку до ума :shout: Сообщение отредактировал Лито - Mar 2 2005, 11:55 |
||
![]()
Сообщение
#799
|
|||||||
Level 6 ![]() Класс: Фея Характер: Chaotic Good Раса: Элементаль NWN: Маппинг Gem of the North ![]() |
Ну попробуем.
|
||||||
![]()
Сообщение
#800
|
|
Level 9 ![]() ![]() ![]() Класс: Страж Тьмы Характер: Chaotic Evil Раса: Нежить ![]() |
Lexey aka Hawk Большое спасибо. Делаю это под вдохновлением системы на Геме. Насколько я помню там для того чтобы кастовать клирикам нужен как раз такой символ.
|
![]() ![]() |
Текстовая версия | Сейчас: 1st May 2025 - 05:52 |