![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
![]() |
![]()
Сообщение
#3421
|
|
Level 9 ![]() Класс: Обыватель Характер: Lawful Good Раса: Человек NWN: Модмейкер Рыцарская Сага ![]() |
shadowdweller, я привел два скрипта для примера, т.к. там есть два варианта уложить перса, анимацией и эффектом. (к тому же кто-то недавно спрашивал…) Если наложен эффект, то нужно учесть, что игроки попытаются его снять… Это нужно писать еще один скрипт на OnSpellCastAt. (если эффект не поддерживает SupernaturalEffect) Чтобы персы не говорили при анимации, то достаточно заблокировать их стек, или навесить локалку и изменить скрипт на OnConversation написав:
Neverwinter Script Source void main() { object oSelf = OBJECT_SELF; if (GetLocalInt(oSelf, "LOCAL") == 1) return; // Проверить ExecuteScript("nw_c2_default4", oSelf); } Lex ругается за готовые скрипты, т.ч. скрипт писать не буду (IMG:style_emoticons/kolobok_light/biggrin.gif) … Кстати, навесить на перса сюжет после урона, можно прописав через DelayCommand. Хотя в вашем случае просто достаточно сразу проставить персу бессмертие. Вот для примера скрипт на ранение из моего мода. Neverwinter Script Source //:://////////////////////////////////////// //:: СКРИПТ: СМЕРТЬ - РАНЕНИЕ //:: File name: //:: Слот: OnHeartBeat //:://////////////////////////////////////// void main() { object oSelf = OBJECT_SELF; if(GetArea(GetFirstPC()) != GetArea(oSelf)) return; // если ПС нет в локе if(GetLocalInt(oSelf, "P_smert") == 1) return; if (!IsInConversation(oSelf)) { if(GetCurrentHitPoints(oSelf) < 30) { ClearAllActions(); // Почистим все Action у НПС ActionPlayAnimation(ANIMATION_LOOPING_DEAD_FRONT, 1.0, 7.0); } else ExecuteScript("nw_c2_default1", oSelf); } if(GetLocalInt(oSelf, "smert") != 1) { if(GetAbilityScore(oSelf, ABILITY_INTELLIGENCE) >= 17) { effect eDamage = EffectDamage(GetCurrentHitPoints(oSelf)-3); ApplyEffectToObject(DURATION_TYPE_INSTANT,eDamage, Self); SetLocalInt(oSelf, "smert", 1); } else { effect eDeath = EffectDeath(); ApplyEffectToObject(DURATION_TYPE_INSTANT, eDeath, oSelf); SetLocalInt(oSelf, "P_smert", 1); } } } /* Если интеллект выше 17, то ранение и падение. Если вылечить, то если ХР выше 30, падать не будет. Если интеллект ниже 17, то смерть. */ С хенчем и триггером все просто. Кстати, не увидел в скрипте функций из инклюды… Neverwinter Script Source void main() { object oPC = GetEnteringObject(); if (!GetIsPC(oPC)) return; // Если не герой object oSP = GetHenchman(oPC); if (GetIsObjectValid(oSP)) return; // Если есть хенчь object oZOM1 = GetNearestObjectByTag("NPC_MON_FSKEL01"); object oZOM2 = GetNearestObjectByTag("NPC_MON_FSKEL02"); object oZOM3 = GetNearestObjectByTag("NPC_MON_FSKEL03"); object oDr1 = GetObjectByTag("DOOR_ZOM_01"); object oDr2 = GetObjectByTag("DOOR_ZOM_02"); object oDr3 = GetObjectByTag("DOOR_ZOM_03"); object oPoint1 = GetObjectByTag("WP_ZOM1"); object oPoint2 = GetObjectByTag("WP_ZOM2"); object oPoint3 = GetObjectByTag("WP_ZOM3"); ChangeToStandardFaction (oZOM1,STANDARD_FACTION_HOSTILE); ChangeToStandardFaction (oZOM2,STANDARD_FACTION_HOSTILE); ChangeToStandardFaction (oZOM3,STANDARD_FACTION_HOSTILE); AssignCommand(oZOM1,ClearAllActions()); AssignCommand(oZOM2,ClearAllActions()); AssignCommand(oZOM3,ClearAllActions()); AssignCommand(oZOM1, ActionAttack(oPC)); AssignCommand(oZOM2, ActionAttack(oPC)); AssignCommand(oZOM3, ActionAttack(oPC)); AssignCommand(oDr1, DestroyObject(oDr1)); AssignCommand(oDr2, DestroyObject(oDr2)); AssignCommand(oDr3, DestroyObject(oDr3)); } P.S. Нео, ну че за фигня?! Задолбался править скрипты!!! При переносе строки режет последний символ… Сообщение отредактировал gennady - Sep 7 2007, 07:04 |
![]()
Сообщение
#3422
|
|
Level 4 ![]() ![]() Класс: Некромант Характер: Chaotic Good Раса: Нежить ![]() |
Прошу уточнить OnModuleLoad
это событие которое будет отробатыватьпри каждом старте сервера ??? нету ли на нем какихто подводных камней что делает стандартный скрипт этого слота что будет если я его удалю??? |
![]()
Сообщение
#3423
|
|
Level 4 ![]() ![]() Класс: Пьяный Мастер Характер: True Neutral Раса: Человек ![]() |
Прошу уточнить OnModuleLoad это событие которое будет отробатыватьпри каждом старте сервера ??? да нету ли на нем какихто подводных камней Есть (IMG:style_emoticons/kolobok_light/smile.gif) что делает стандартный скрипт этого слота что будет если я его удалю??? Включает разные фишки, не чего собо не изменица, я его вообще отключаю, т.к все что там описано настраиваю своими методами (IMG:style_emoticons/kolobok_light/smile.gif) |
![]()
Сообщение
#3424
|
|
Level 4 ![]() ![]() Класс: Некромант Характер: Chaotic Good Раса: Нежить ![]() |
QUOTE Цитата(Teranozavr_REX @ Sep 7 2007, 12:13) нету ли на нем какихто подводных камней Есть А можно узнатькакие уж очень надоело по 3 часа выяснятьвсякие недокументированые фишки ) |
![]()
Сообщение
#3425
|
|
Level 4 ![]() ![]() Класс: Пьяный Мастер Характер: True Neutral Раса: Человек ![]() |
В скрипте все описано, правда на английском но я тож не преводчик..
так что топор те +2 в руки (IMG:style_emoticons/kolobok_light/smile.gif) и вперед на сайты переводчики и разбирай каждую функцию которая там |
![]()
Сообщение
#3426
|
|
Level 4 ![]() ![]() Класс: Некромант Характер: Chaotic Good Раса: Нежить ![]() |
Сегодня мне сказали чтоестьтакая програмка называеться вроде бы как NWNХ что с её помощью можно проконтролироватькакой скрипт сколько сьедает процесорноговремени занемает в памяти и тп...
если ли такая програмка если естьде взять как пользоваться ??? |
![]()
Сообщение
#3427
|
|
Level 4 ![]() ![]() Класс: Пьяный Мастер Характер: True Neutral Раса: Человек ![]() |
Скачать отсюда
отсюда там же плагины к ней.. а пользоваться ей надо хитро.. помойму там чтоб узнать инфу о скриптах надо плагин один.. profiler кароч там надо собрать етот плагин с модулями в одной папке и потом все ето кинуть к нвну.. потом в файле нвнх.ини узакать ТОЧНОЕ имя модуля с котором будем вести работы всякие и запустить нвнх, если все верно то автоматом запуститца сервак с загруженным модулем и если краш сервака то автоподъем.. ну а дальше читай папку logs |
![]()
Сообщение
#3428
|
|
Level 9 ![]() Класс: Вор Характер: Chaotic Good Раса: Эльф МАСТЕР Переводов ![]() |
С хенчем и триггером все просто. Gennady, да не работает оно в NWN2 все равно! Есть для триггерных скриптов там какая-то особая специфика? И получается, что инклюда #include "nw_i0_generic" там вообще не нужна? Кстати, со скриптом на сон/падение/ранение разобралась - надо было поменять местами Neverwinter Script Source ApplyEffectToObject(DURATION_TYPE_PERMANENT, eSleep, oSelf, 10.0); ApplyEffectToObject(DURATION_TYPE_INSTANT, eSL, oSelf); и Neverwinter Script Source ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectDamage(10), oSelf); Вообще, sKaa, Gennady - спасибо за советы. Только, сдается мне, вы лучшего мнения о моих скриптерских способностях, чем они есть на самом деле. (IMG:style_emoticons/kolobok_light/biggrin.gif) Сообщение отредактировал shadowdweller - Sep 8 2007, 11:14 |
![]()
Сообщение
#3429
|
|
Level 4 ![]() ![]() Класс: Пьяный Мастер Характер: True Neutral Раса: Человек ![]() |
а я думал скрипт ы под нвн1, (IMG:style_emoticons/kolobok_light/smile.gif)
в нвн2 помойму форум другой.. я нвн2 не наю как там чо |
![]()
Сообщение
#3430
|
|
Level 9 ![]() Класс: Вор Характер: Chaotic Good Раса: Эльф МАСТЕР Переводов ![]() |
Извиняюсь за внесенную путаницу. Скрипт на OnSpawn был нужен для НВН1. Скрипт на триггер - на НВН2. Я была абсолютно уверена, что скрипты и в первом, и во втором НВН работают одинаково, поэтому и постила в ту тему, которая привычнее. (IMG:style_emoticons/kolobok_light/sad.gif) Теперь буду постить отдельно для первого, отдельно для второго.
Продолжаю мучить глупыми вопросами. Существует триггер, при входе на который РС полностью вылечивается, если он ранен. На OnEnter этого триггера стоит Neverwinter Script Source void main() { object oUser; effect eHeal; effect eHealVis = EffectVisualEffect(VFX_IMP_HEALING_S); int nCurrentHitPoints, nMaxHitPoints, nVisualEffectId; oUser = GetEnteringObject(); nMaxHitPoints = GetMaxHitPoints(oUser); nCurrentHitPoints = GetCurrentHitPoints(oUser); if ( nCurrentHitPoints < nMaxHitPoints ) { eHeal = EffectHeal(nMaxHitPoints - nCurrentHitPoints); ApplyEffectToObject( DURATION_TYPE_INSTANT, eHeal, oUser ); ApplyEffectToObject( DURATION_TYPE_INSTANT, eHealVis, oUser ); } } Не подскажет ли мне кто-нибудь, что нужно добавить, чтобы триггер лечил еще и хенча? Для хенча тоже нужно прописывать GetMaxHitPoints и GetCurrentHitPoints? Сообщение отредактировал shadowdweller - Sep 8 2007, 23:28 |
![]()
Сообщение
#3431
|
|
Level 12 ![]() Класс: Оборотень Характер: Chaotic Neutral Раса: Нежить NWN: Скриптинг [Sn] ![]() |
этот триггер и так лечит хенча, да и вообще всех кто в него вступит.
Neverwinter Script Source ... oUser = GetEnteringObject(); if (!GetIsPC(oUser) && !GetIsPC(GetMaster(oUser))) return; // <-- лечит только Игроков и Ко ... в принципе лечение не может дать больше здоровья, чем максимум |
![]()
Сообщение
#3432
|
|
Level 9 ![]() Класс: Вор Характер: Chaotic Good Раса: Эльф МАСТЕР Переводов ![]() |
Прошу прощения, торможу. GetEnteringObject - это же действительно любой, кто входит (IMG:style_emoticons/kolobok_light/mosking.gif)
А если соблюдать все эти условия - игрок и компания и раненый, все вводить одной строкой, Neverwinter Script Source ... if (GetIsPC(oUser) && GetIsPC(GetMaster(oUser)) && (nCurrentHitPoints < nMaxHitPoints)) { eHeal = EffectHeal(nMaxHitPoints - nCurrentHitPoints); ... или это так будет? Neverwinter Script Source ...
if (!GetIsPC(oUser) && !GetIsPC(GetMaster(oUser))) return; { if ( nCurrentHitPoints < nMaxHitPoints ) { eHeal = EffectHeal(nMaxHitPoints - nCurrentHitPoints); ... Сообщение отредактировал shadowdweller - Sep 9 2007, 13:28 |
![]()
Сообщение
#3433
|
|
Level 11 ![]() ![]() ![]() Класс: Воин Характер: Lawful Good Раса: Человек ![]() |
Neverwinter Script Source if (!GetIsPC(oUser) && !GetIsPC(GetMaster(oUser))) return; Если не ошибаюсь, то так: Neverwinter Script Source if ( (!GetIsPC(oUser)) && (!GetIsPC(GetMaster(oUser))) ) return; |
![]()
Сообщение
#3434
|
|
Level 4 ![]() ![]() Класс: Пьяный Мастер Характер: True Neutral Раса: Человек ![]() |
Одинаково, просто скокбок можно нарисовать сколько хочеш
|
![]()
Сообщение
#3435
|
|
Level 11 ![]() ![]() ![]() Класс: Воин Характер: Lawful Good Раса: Человек ![]() |
Сообщение отредактировал Белатрис - Sep 9 2007, 13:55 |
![]()
Сообщение
#3436
|
|
Level 9 ![]() Класс: Вор Характер: Chaotic Good Раса: Эльф МАСТЕР Переводов ![]() |
Дело, пожалуй, не столько в скобках - скрипты компилируются, и ни в одном варианте - ни с дополнительной парой скобок, ни без - ошибку не выдает.
Дело в том, как вообще лучше написать - первый вариант, где все условия сведены в одну строку, или второй вариант - с двумя условиями - сначала сделать проверку на РС и компанию, а потом уже на урон. Как будет грамотнее? Сообщение отредактировал shadowdweller - Sep 9 2007, 15:52 |
![]()
Сообщение
#3437
|
|
Level 4 ![]() ![]() Класс: Пьяный Мастер Характер: True Neutral Раса: Человек ![]() |
Обинаково, как тебе удобней так и пиши, а остально мелочи.. главное чтоб потом самому легко разобрать можно было
|
![]()
Сообщение
#3438
|
|
Level 12 ![]() Класс: Оборотень Характер: Chaotic Neutral Раса: Нежить NWN: Скриптинг [Sn] ![]() |
Пиши как думаешь, заодно избавишься от ошибок при отрицании
ЕСЛИ это игрок ИЛИ хенч, И здоровья маловато, ТО лечить: Neverwinter Script Source ... if ((GetIsPC(oUser) || GetIsPC(GetMaster(oUser))) && (nCurrentHitPoints < nMaxHitPoints)) { { ... } .. как раз тут скобки нужны, т.к без скобок сначала проверяется И, а потом ИЛИ. А можно вообще разлениться в плане фигуристых скобок и записать всё по строчкам: Neverwinter Script Source void main() { object oUser = GetEnteringObject(); if (!GetIsPC(oUser) && !GetIsPC(GetMaster(oUser))) return; if (GetCurrentHitPoints(oUser) >= GetMaxHitPoints(oUser)) return; effect eHeal = EffectHeal(9999); effect eHealVis = EffectVisualEffect(VFX_IMP_HEALING_S); ApplyEffectToObject(DURATION_TYPE_INSTANT, eHeal, oUser); ApplyEffectToObject(DURATION_TYPE_INSTANT, eHealVis, oUser); } P.S. if (...) ОднаКоманда; = if (...) { ОднаКоманда; } P.P.S. Приоритет операторов от высшего к низшему: ! && || |
![]()
Сообщение
#3439
|
|
Level 1 Класс: Обыватель Характер: Neutral Good Раса: Человек ![]() |
Привет всем. (IMG:style_emoticons/kolobok_light/prankster2.gif)
Вопрос: Хотел добавить воину (fighter) фемильяра. Сделал 40 штук фема (на каждый лвл), прописал всё в 2да'шки (дал фит фамильяра воину на первом уровне, как подарочный фит (-1)). Теперь есть проблема. У волшебника/виза новый фам есть, а у воина, как не было так и нет, хотя фит фама в списке фитов отображается. P.S. Хотел зарегистироваться под подлинным ником Veliant, но т.к. он занят, решил взять альтернативный. |
![]()
Сообщение
#3440
|
|
Level 19 ![]() Класс: Обыватель Характер: True Neutral Раса: Дварф NWN: Контент ![]() |
дал фит фамильяра воину на первом уровне, как подарочный фит (-1) List: "3" - получение автоматически. GainedLevel (LevelGained?): "1" - получаем фит на первом левеле, а не "-1" - просто доступен для выбора. Насколько я знаю, удовлетворить условиям получения фита фамильяра нельзя никому никогда. Не знаю, что там у тебя точно, но это все что я могу сказать на основе данной тобой информации. |
![]()
Сообщение
#3441
|
|
Level 1 Класс: Обыватель Характер: Neutral Good Раса: Человек ![]() |
List: "3" - получение автоматически. Точно, тройка. Запамятовал. (IMG:style_emoticons/kolobok_light/smile.gif) GainedLevel (LevelGained?): "1" - получаем фит на первом левеле, а не "-1" - просто доступен для выбора. Насколько я знаю, удовлетворить условиям получения фита фамильяра нельзя никому никогда. Не знаю, что там у тебя точно, но это все что я могу сказать на основе данной тобой информации. Мм, а если создать новый класс с нуля? (не базовый, а по принципу "престижей") Тож никак не впихнуть? Или, скажем, создать абилку, которая запускала бы спелл и последний в свою очередь проверял, какой лвл у персонажа и, тем самым, вызывал бы соответсвующего фэма. Глупо звучит? |
![]()
Сообщение
#3442
|
|
Level 5 ![]() Класс: Обыватель Характер: Lawful Neutral Раса: Человек NWN: Модмейкер Проклятие Левора Порядок Времени ![]() |
|
![]()
Сообщение
#3443
|
|
Level 1 Класс: Обыватель Характер: Neutral Good Раса: Человек ![]() |
|
![]()
Сообщение
#3444
|
|
Level 4 ![]() ![]() Класс: Некромант Характер: Chaotic Good Раса: Нежить ![]() |
Товарищи помогите пожалусто
надо что бы паучек при спавне "с потолка падал" так как весь АИ уже переписал надо напрямую команду отыграть анимацию, а не какието управляющие флаги ) которые уже нечем обработать) как сделатьанимацию выпить банку или прочитатьсвиток знаю... если паучек падает точно также то подскажите константу а еще лудше ссылочку где по "русски" написано описание констант если же єто делаеться как топодругому, то кто может потрудитесь расказать как |
![]()
Сообщение
#3445
|
|
Level 9 ![]() Класс: Фея Характер: Chaotic Evil Раса: Тварь NWN: Скриптинг [PW] ![]() |
|
![]() ![]() |
Текстовая версия | Сейчас: 3rd August 2025 - 05:41 |