![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
![]() |
![]()
Сообщение
#101
|
|
Level 5 ![]() Класс: Обыватель Характер: Lawful Neutral Раса: Человек NWN: Модмейкер Проклятие Левора Порядок Времени ![]() |
у меня эта функция называется DestroyEffect(). уже давно обитает в моей библиотеке.
|
![]()
Сообщение
#102
|
|
Level 8 ![]() ![]() ![]() Класс: Псионик Характер: Chaotic Good Раса: Человек NWN: Скриптинг [Sn] ![]() |
toLex - у меня тоже есть такая вещица, только до этого часа она была написана неправильно и действовала лишь на визуалы...
все, выложил я в базе скриптов... смотрите. |
![]()
Сообщение
#103
|
|
Level 1 Класс: Воин Характер: Lawful Good Раса: Человек ![]() |
Привет. Может кто подскажет чего: у меня есть прейсибл типа "Факел". Оч красивый, надо заметить. Крепится к стенам домов. Так вот. Я пытаюсь сделать так, чтобы он загорался на ночь и гас днем. Все, соответственно, делается через:
Код if((GetIsDusk() && GetLocalInt(OBJECT_SELF,"NW_L_AMION") == 0) || (GetIsNight() && GetLocalInt(OBJECT_SELF,"NW_L_AMION") == 0)) { SetLocalInt(OBJECT_SELF, "iCurrentHour", GetTimeHour()); object oSelf = OBJECT_SELF; PlayAnimation(ANIMATION_PLACEABLE_ACTIVATE); DelayCommand(0.4,SetPlaceableIllumination(oSelf, TRUE)); SetLocalInt(OBJECT_SELF,"NW_L_AMION",1); effect eLight = EffectVisualEffect(VFX_DUR_LIGHT_ORANGE_15); ApplyEffectToObject(DURATION_TYPE_PERMANENT, eLight, oSelf); } else if((GetIsDawn() && GetLocalInt(OBJECT_SELF,"NW_L_AMION") == 1) || (GetIsDay() && GetLocalInt(OBJECT_SELF,"NW_L_AMION") == 1)) { object oSelf = OBJECT_SELF; PlayAnimation(ANIMATION_PLACEABLE_DEACTIVATE); DelayCommand(i,SetPlaceableIllumination(oSelf, FALSE)); SetLocalInt(OBJECT_SELF,"NW_L_AMION",0); effect eEffect = GetFirstEffect(oSelf); while (GetIsEffectValid(eEffect) == TRUE) { if (GetEffectType(eEffect) == EFFECT_TYPE_VISUALEFFECT) RemoveEffect(oSelf, eEffect); eEffect = GetNextEffect(oSelf); } } Ну и, конечно, RecomputeStaticLighting(). Его приходится привешивать на "сердцебиение" арены - иначе перерисовывается только некая область около игрока. А в том месте, куда я ставлю ("сердцебиение" арены) - это конкретно тормозит. Помогите. Хочется сделать так, чтобы обновлялся статический свет по всей арене сразу, или может кто еще чего предложит… |
![]()
Сообщение
#104
|
|
4-х Кубовый ![]() Класс: Некромант Характер: Lawful Evil Раса: Человек NWN: Скриптинг [Sn] Проклятие Левора ![]() |
Ты вот что. Воспользуйся SignalEvent'ом. То есть на Хертбите(HB) арены ставишь лишь проверки дня/ночи. Если "что-то" наступило, то сигнал эвент зажигается (к примеру 3000-день/4000-ночь).
Далее пишешь скрипт в UserDefined арены, где идет разбор: если это эвент 3000, то циклом тушим все факелы. Если эвент 4000, то, соотв, зажигаем в цикле. Тормозит все это из-за "массовой" команды в один момент RecomputeStaticLighting. Сделай, чтобы каждый факел зажигался/тушился через DelayCommand(n/2, RecomputeStaticLighting()), где n - это циклическая переменная, увеличивающаяся для каждого объекта-факела на 1. Этим ты дашь возможность движку просчитывать освещение и в то же время плавно обрабатывать остальные события (эвенты). (IMG:style_emoticons/kolobok_light/wink3.gif) Удачи! |
![]()
Сообщение
#105
|
|
Сивоха ![]() ![]() ![]() Класс: Некромант Характер: Lawful Evil Раса: Человек ![]() |
Ой, ой, ой. Какие вы все умные (IMG:style_emoticons/kolobok_light/rolleyes.gif) =р
--------------- Сорри, просто я удрючен portal serverom=(( Сообщение отредактировал Auren[LFL] - Jul 6 2004, 20:32 |
![]()
Сообщение
#106
|
|
4-х Кубовый ![]() Класс: Некромант Характер: Lawful Evil Раса: Человек NWN: Скриптинг [Sn] Проклятие Левора ![]() |
Auren[LFL]
Че за оффтоп?! Конечно умные! Пост завтра удалю. :cruel: |
![]()
Сообщение
#107
|
|
Level 6 ![]() Класс: Некромант Характер: Chaotic Evil Раса: Нежить NWN: Скриптинг [PW] ![]() |
ставится на OnLevelingPlayer(помойму так (IMG:style_emoticons/kolobok_light/biggrin.gif) )
Код /* Created By: [MoF]Darth_Nick Data Of Creating: 02.07.2004 11:03 Discription: So, this script is do following - when you have a level up, after up script founding your alignment(GOOD, EVIL, NEUTRAL) and doing something visual effects for you. Also effects maybe change if you change Constans...Sample: VFX_FNF_SUMMON_EPIC_UNDEAD - this is first constant of evil leveling, delete that and enter something yours in the list of constants, an example - VFX_FNF_IMPLOSION. */ void main() { object oPC = GetPCLevellingUp(); if(GetAlignmentGoodEvil(oPC) == ALIGNMENT_EVIL) { DelayCommand(1.0, ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_FNF_SUMMON_EPIC_UNDEAD), oPC)); DelayCommand(1.0, ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_IMP_HARM), oPC)); } else if(GetAlignmentGoodEvil(oPC) == ALIGNMENT_GOOD) { DelayCommand(1.0, ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_IMP_HOLY_AID), oPC)); DelayCommand(1.0, ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_FNF_SUNBEAM), oPC)); } else if(GetAlignmentGoodEvil(oPC) == ALIGNMENT_NEUTRAL) { DelayCommand(1.0, ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_FNF_SOUND_BURST), oPC)); DelayCommand(1.0, ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_IMP_HEALING_X), oPC)); } } <small>Добавлено в 02:37</small> Ставиться на OnEnter тригераа Код /* Created By: [MoF]Darth_Nick Data Of Creating: 11:37 Discription: Script is stand on a OnEnter of Generic Triger, you also can use it in the trap, but unexpectandlly is be very other! */ void main() { object oPC = GetEnteringObject(); effect eBall = EffectVisualEffect(VFX_FNF_FIREBALL); if (GetIsPC(oPC) == GetCurrentHitPoints(oPC) < 70) { DelayCommand(0.5, ApplyEffectToObject(DURATION_TYPE_INSTANT, eBall, oPC)); DelayCommand(0.5, ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectDeath(), oPC)); } else if (GetIsPC(oPC) == GetCurrentHitPoints(oPC) > 70) { FloatingTextStringOnCreature("Heh...This trick is not for me!", oPC); } } <small>Добавлено в 02:39</small> На OnEnter ловухи Код //:://///////////////////////////////////////////////////////// //:: Created By: [MoF]Darth_Nick //:: Created On: 20.06.2004 //::////////////////////////////////////////////////////////// /* Итак, мой первый скрипт!! Ставиться он на OnEnter ловушки.(Да, да! именно на ловушку,а не на триггер т.к. если ставить на триггер - то никто и некогда не сможет увидеть, эту смертельную зону.) Когда чар на нее наступает на нем "делается" визуальный(!) эффект имплозии и неизбежная смерть. Эффекты можно менять изменив вот это - VFX_FNF_IMPLOSION на другой визуальный эффект.(кажется их кто-то перечислял на 1 странице топика). З.Ы. это можно использовать для проверки воров(всмысле при вступлении в гильдию). */ //::////////////////////////////////////////////////////////// void main() { object oTarget = GetEnteringObject(); DelayCommand(0.1, ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_FNF_IMPLOSION), oTarget)); DelayCommand(0.1, ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectDeath(), oTarget)); } |
![]()
Сообщение
#108
|
|
Level 8 ![]() ![]() ![]() Класс: Псионик Характер: Chaotic Good Раса: Человек NWN: Скриптинг [Sn] ![]() |
Несколько вопрософф:
1. Как убрать только один вид уммуна, если наложен, скажем, 2 или 3? ActionRemoveEffect из базы скриптов убирает все. 2. Какой стандартный скрипт управляет поведением барда в таверне(есть только TalentBardSong из nw_i0_generic, но если использовать этот талант, бард просто использует умение... Просто стоит с эффектом нот над головой. Смотрится не очень. Может, в официале есть то же, но с анимацией, подходящей для пения?) 3. Как лечится катсценовский баг, когда после окончания оной сцены камера переносится внутрь игрока (в позицию 0, -1, -1) 4. Можно ли вешать локалки на вейпы? |
![]()
Сообщение
#109
|
|
4-х Кубовый ![]() Класс: Некромант Характер: Lawful Evil Раса: Человек NWN: Скриптинг [Sn] Проклятие Левора ![]() |
Цитата 1. Как убрать только один вид уммуна, если наложен, скажем, 2 или 3? ActionRemoveEffect из базы скриптов убирает все. По-моему никак... Я как-то пытался снять один из многих вижуал эффектов, на персе... Не получалось (IMG:style_emoticons/kolobok_light/sad.gif) . Цитата 2. Какой стандартный скрипт управляет поведением барда в таверне(есть только TalentBardSong из nw_i0_generic, но если использовать этот талант, бард просто использует умение... Просто стоит с эффектом нот над головой. Смотрится не очень. Может, в официале есть то же, но с анимацией, подходящей для пения?) А де ты видел, чтобы барды в NWN реально пели? Я че-то не припомню... Цитата 3. Как лечится катсценовский баг, когда после окончания оной сцены камера переносится внутрь игрока (в позицию 0, -1, -1) Не ставить скрипт катсцены на OnEnter локации (IMG:style_emoticons/kolobok_light/wink3.gif) ... И на триггер, на который перс попадает сразу же при входе в локу. (IMG:style_emoticons/kolobok_light/wink3.gif) Не лечится это... У меня не получилось во всяком случае (IMG:style_emoticons/kolobok_light/sad.gif) . Цитата 4. Можно ли вешать локалки на вейпы? Имхо, нет (IMG:style_emoticons/kolobok_light/smile.gif) . А зачем? (IMG:style_emoticons/kolobok_light/shok.gif) |
![]()
Сообщение
#110
|
|
Level 10 ![]() ![]() ![]() Класс: Воин Характер: Lawful Neutral Раса: Человек NWN: Скриптинг [PW] ![]() |
3. Нет такого бага.
4. Можно |
![]()
Сообщение
#111
|
|
4-х Кубовый ![]() Класс: Некромант Характер: Lawful Evil Раса: Человек NWN: Скриптинг [Sn] Проклятие Левора ![]() |
|
![]()
Сообщение
#112
|
|
Level 10 ![]() ![]() ![]() Класс: Воин Характер: Lawful Neutral Раса: Человек NWN: Скриптинг [PW] ![]() |
Проверял однако(IMG:style_emoticons/kolobok_light/smile.gif) )
|
![]()
Сообщение
#113
|
|
4-х Кубовый ![]() Класс: Некромант Характер: Lawful Evil Раса: Человек NWN: Скриптинг [Sn] Проклятие Левора ![]() |
Цитата 3. Как лечится катсценовский баг, когда после окончания оной сцены камера переносится внутрь игрока (в позицию 0, -1, -1) А вообще попробуй RestoreCameraFacing(); предварительно (перед сценой) установив StoreCameraFacing();. |
![]()
Сообщение
#114
|
|
Level 10 ![]() ![]() ![]() Класс: Воин Характер: Lawful Neutral Раса: Человек NWN: Скриптинг [PW] ![]() |
Интересно, а как сделана система языков?
ну например стоят два полурослика один пишет в толке: "-halfing: Привет Братишка как дела?" Другой полурослик это так и видит, а эльф стоящий рядом это видит как: "Ghbdtn <hfnbirf rfr ltkf?" |
![]()
Сообщение
#115
|
|
Level 8 ![]() ![]() ![]() Класс: Псионик Характер: Chaotic Good Раса: Человек NWN: Скриптинг [Sn] ![]() |
Цитата По-моему никак... Я как-то пытался снять один из многих вижуал эффектов, на персе... Не получалось . Буду думать... Мож чего-нить придет. Действительно, мне надо убрать один эффект из двух... Вроде мылсь есть, завтра отпишу. Цитата А де ты видел, чтобы барды в NWN реально пели? Я че-то не припомню... Нет. Я в НВН играл только час-полтора в оригинал, час СоУ и полчаса в ХотУ. Просто я хочу, чтоб бард нормально пел. Вообще я так подумал, надо ему в он_перц талант бардсонг + попутная анимация разговора + с ранодмной задержкой разные салюты... Сейчас попробую чего-нибудь сотворить... Цитата 3. Как лечится катсценовский баг, когда после окончания оной сцены камера переносится внутрь игрока (в позицию 0, -1, -1) Я залечил так: Код DelayCommand(25.00, SetCutsceneMode(oPC, FALSE)); DelayCommand(25.00, AssignCommand(oPC, SetCameraFacing(/*любая позиция камеры*/200.0, 11.0, 35.0, TRANSITION_TYPE_SNAP))); Все гениталь... тьфу ты, все гениальное просто!.. :-) Цитата 4. Можно ли вешать локалки на вейпы? Имхо, нет . А зачем? Чистый академический интерес :-) Добавлено в [mergetime]1089222896[/mergetime] Аваддон интересный вопрос, кстати. Надо спросить у Ранмы (это на Экзисе было). Стандартными средствами это не реализовать, нужно какое-то извращение... |
![]()
Сообщение
#116
|
|
4-х Кубовый ![]() Класс: Некромант Характер: Lawful Evil Раса: Человек NWN: Скриптинг [Sn] Проклятие Левора ![]() |
Цитата Я залечил так: Код DelayCommand(25.00, SetCutsceneMode(oPC, FALSE)); DelayCommand(25.00, AssignCommand(oPC, SetCameraFacing(/*любая позиция камеры*/200.0, 11.0, 35.0, TRANSITION_TYPE_SNAP))); Все гениталь... тьфу ты, все гениальное просто!.. :-) Так ты ж вроде хотел вернуть камеру в первоначальное положение после сцены? Так-то, как ты описал, хех, 100% будет работать... Ты же жестко меняешь после сцены положение. (IMG:style_emoticons/kolobok_light/wink3.gif) |
![]()
Сообщение
#117
|
|
Level 9 ![]() Класс: Волшебник Характер: Chaotic Good Раса: Дракон NWN: Скриптинг [PW] ![]() |
Цитата 1. Как убрать только один вид уммуна, если наложен, скажем, 2 или 3? ActionRemoveEffect из базы скриптов убирает все. DBColl прав, сложно убрать какой-то определенный эффект. В некоторых случаях тебе может помочь функции GetEffectCreator() - кто навесил эффект GetEffectSubType() - можешь те эффекты, что нужно убрать, вешать с одним из флагов (SUBTYPE_EXTRAORDINARY,SUBTYPE_MAGICAL,SUBTYPE_SUPERNATURAL) GetEffectSpellId() - возращает номер спелла, вызвавшего эффект. (для вижуал эффекта - мало полезно, но все-же) Из этого наиболее полезным может оказаться GetEffectSubType(), тебе просто нужно на те эффекты, которые хочешь убрать, вешать флажок SupernaturalEffect(), ExtraordinaryEffect() или MagicalEffect() LEX: Каа, отличная идея. Всем знать! Цитата 4. Можно ли вешать локалки на вейпы? Вешать локалки можно на любой объект. Вейпоинт - это объект. Цитата Аваддон интересный вопрос, кстати. Надо спросить у Ранмы (это на Экзисе было). Стандартными средствами это не реализовать, нужно какое-то извращение... Делается реакция на onConversation. Вся сложность - сделать так, чтобы игрока все время кто-то слушал. Если не ошибаюсь у Ранмы за каждым игроком летает невидимый моб, который и перевариает все фразы. А вообще - почему бы не попробовать повесить обработку этого события на самого игрока? (IMG:style_emoticons/kolobok_light/smile.gif) Ведь SetListening() и SetListenPattern() принимают в качестве параметра объект. Вся проблема - будет ли модульный OnUserDefined() срабатывать на onConversation() для PC. Может кто пробовал? |
![]()
Сообщение
#118
|
|
Level 8 ![]() ![]() ![]() Класс: Псионик Характер: Chaotic Good Раса: Человек NWN: Скриптинг [Sn] ![]() |
Цитата Так ты ж вроде хотел вернуть камеру в первоначальное положение после сцены? Так-то, как ты описал, хех, 100% будет работать... Ты же жестко меняешь после сцены положение. Я не хотел возвращать в первоначальное!.. Я хотел от бага избавиться. Что и сделал. :-) Цитата Делается реакция на onConversation. Вся сложность - сделать так, чтобы игрока все время кто-то слушал. Если не ошибаюсь у Ранмы за каждым игроком летает невидимый моб, который и перевариает все фразы. А вообще - почему бы не попробовать повесить обработку этого события на самого игрока? Ведь SetListening() и SetListenPattern() принимают в качестве параметра объект. Вся проблема - будет ли модульный OnUserDefined() срабатывать на onConversation() для PC. Может кто пробовал? В этом вопросе помочь может только сам Ранма. Цитата DBColl прав, сложно убрать какой-то определенный эффект. В некоторых случаях тебе может помочь функции GetEffectCreator() - кто навесил эффект GetEffectSubType() - можешь те эффекты, что нужно убрать, вешать с одним из флагов (SUBTYPE_EXTRAORDINARY,SUBTYPE_MAGICAL,SUBTYPE_SUPERNATURAL) GetEffectSpellId() - возращает номер спелла, вызвавшего эффект. (для вижуал эффекта - мало полезно, но все-же) Из этого наиболее полезным может оказаться GetEffectSubType(), тебе просто нужно на те эффекты, которые хочешь убрать, вешать флажок SupernaturalEffect(), ExtraordinaryEffect() или MagicalEffect() _kaa_ , спасибо. |
![]()
Сообщение
#119
|
|
4-х Кубовый ![]() Класс: Некромант Характер: Lawful Evil Раса: Человек NWN: Скриптинг [Sn] Проклятие Левора ![]() |
Цитата Из этого наиболее полезным может оказаться GetEffectSubType(), тебе просто нужно на те эффекты, которые хочешь убрать, вешать флажок SupernaturalEffect(), ExtraordinaryEffect() или MagicalEffect() Спасибо, Каа. И как я сам не догадался?.. (IMG:style_emoticons/kolobok_light/smile.gif) Век живи - век учись!.. |
![]()
Сообщение
#120
|
|
Level 8 ![]() ![]() ![]() Класс: Псионик Характер: Chaotic Good Раса: Человек NWN: Скриптинг [Sn] ![]() |
Хм... Народ, как на ваш взгяд лучше всего организвоавать поведение простолюдинов(имитация рассудочной деятельности в действиях, не связанных с ПС). Моя идея: он спавн составляется список(требование: все простолюдины должны иметь одинаковый тэг и диалог) типа:
Код object OS = OBJECT_SELF; object o1= GetNearestObjectByTag(GetTag(OS), OS, 1); object o2= GetNearestObjectByTag(GetTag(OS), OS, 2); . . . Потом. Наш непись поочередно подходит к о1, они смотрят друг на друга Код AssignCommand(o1, SetFacing(OS)); AssignCommand(OS, SetFacing(o1)); и начинают диалог. Потом наш непись идет к другому и третьему и т.д. Система, конечно же не идельна. Есть другие предложения? |
![]()
Сообщение
#121
|
|
4-х Кубовый ![]() Класс: Некромант Характер: Lawful Evil Раса: Человек NWN: Скриптинг [Sn] Проклятие Левора ![]() |
Tarre
А чем тебе не нравится стандартный AMBIENT_ANMATION? |
![]()
Сообщение
#122
|
|
Level 8 ![]() ![]() ![]() Класс: Псионик Характер: Chaotic Good Раса: Человек NWN: Скриптинг [Sn] ![]() |
Тот, что отвечает за треп? Он используется, но в другом месте. И вообще хочется до всего дойти самому и создать имитацию кастомный событийности. И сделать лучше, чем биовар (хотя почти ни у кого это не получилось)
|
![]()
Сообщение
#123
|
|
4-х Кубовый ![]() Класс: Некромант Характер: Lawful Evil Раса: Человек NWN: Скриптинг [Sn] Проклятие Левора ![]() |
Там достаточно гибко ее можно настроить. Взимодействие непися с другими неписями, с плэйсэблами, районы "гуляния"... Чего не хватает?
Если ты за принципиальность нового, то я тебя понимаю. В свое время сам хотел сделать это... но... подумал, сколько времени на это уйдет и решил, что не надо (IMG:style_emoticons/kolobok_light/smile.gif) . С меня хватило полного AI хенчши, который, кстати, отлично уже работает (IMG:style_emoticons/kolobok_light/smile.gif) ... |
![]()
Сообщение
#124
|
|
Level 8 ![]() ![]() ![]() Класс: Псионик Характер: Chaotic Good Раса: Человек NWN: Скриптинг [Sn] ![]() |
Цитата Там достаточно гибко ее можно настроить. Подскажешь? :-) |
![]()
Сообщение
#125
|
|
Level 10 ![]() ![]() ![]() Класс: Воин Характер: Lawful Neutral Раса: Человек NWN: Скриптинг [PW] ![]() |
У меня такой вопрос:
Можно ли скриптами поменять APPEARANCE брони? Например сменить Neck? Ну как то био-твари это при крафте делают ведь... |
![]() ![]() |
Текстовая версия | Сейчас: 28th April 2025 - 12:41 |