![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
![]() |
![]()
Сообщение
#2736
|
|
Level 8 ![]() Класс: Некромант Характер: Chaotic Evil Раса: Дракон NWN: Скриптинг [PW] ![]() |
Героя до 60го уровня можно, но это не сюда, это в 2da
|
![]()
Сообщение
#2737
|
|
Level 9 ![]() ![]() ![]() Класс: Волшебник Характер: Neutral Good Раса: Эльф ![]() |
Выше 40го уровня нельзя...обычными методами.
Но мооожет быть (хотя я не уверен) где-нибудь на nwvault.ign.com можно найти подобный хак. ЗЫ: опередили меня (IMG:style_emoticons/kolobok_light/smile.gif) Согласен, это уже 2da таблицы. Но как я сказал - искать на ваулте. Сообщение отредактировал Lorendroll - Jul 14 2006, 11:55 |
![]()
Сообщение
#2738
|
|
Level 5 ![]() ![]() Класс: Друид Характер: Lawful Neutral Раса: Человек ![]() |
Всем огромное спасибо, наконец-то разобрался с фонорями! (IMG:style_emoticons/kolobok_light/yahoo.gif)
И извините за невнимательность. |
![]()
Сообщение
#2739
|
|
Миловидный Бегрюссунг ![]() Класс: Воин Характер: Chaotic Good Раса: Человек NWN: Модмейкер Проклятие Левора Порядок Времени ![]() |
Я занимаюсь уже вторым проектом и выше 15 лвла не дам ни там ни там. Все что выше уже читерство. (IMG:style_emoticons/kolobok_light/biggrin.gif) Можно привентить хоть 100 левелов но реально движок расчитан на 40. Соотвественно все остальное будет криво работать да и зачем 60 лвл если боги ФР 20 уровня не все...
QUOTE(Симирель @ Jul 14 2006, 14:38) [snapback]87818[/snapback] Скажи только, я напутал с нейтральной фракцией, это надо поставить 50% терпимости к игроку или 11%? Да. 50% и убери глобал эффект со свойств. |
![]()
Сообщение
#2740
|
|
Level 2 ![]() Класс: Волшебник Характер: Neutral Good Раса: Эльф ![]() |
ААААА!!!! Спасибо Aivam! Остолоп, читал же...
|
![]()
Сообщение
#2741
|
|
Level 4 ![]() ![]() Класс: Маг Характер: Chaotic Neutral Раса: Танар'ри ![]() |
Подскажите, пожалуйста. Нет ли возможности заставить игрока говорить с собственным портретом? Вроде диалога с самим собой. В данный момент игрок выбирает “нейтральный портрет”, в зависимости от пола, указанный на одном из двух невидимых объектов. На триггере стоит скрипт: (скрипт gennady )
NSS void main()
{ object oPC = GetEnteringObject(); object oPamM = GetObjectByTag("Memory_M"); object oPamZ = GetObjectByTag("Memory_Z"); if (GetIsPC(oPC)) { AssignCommand(oPC, ClearAllActions(TRUE)); // TRUE чтобы точно остановить SetCutsceneMode(oPC, TRUE); // Режим катсцены AssignCommand(oPC, SetCameraFacing (80.0, 12.0, 50.0, CAMERA_TRANSITION_TYPE_VERY_FAST)); // Зададим координаты камеры if(GetGender(oPC) == GENDER_MALE) DelayCommand(2.0, AssignCommand(oPamM, ActionStartConversation(oPC))); // диалог персонажа else DelayCommand(2.0, AssignCommand(oPamZ, ActionStartConversation(oPC))); // диалог персонажа } } |
![]()
Сообщение
#2742
|
|
Вечно меняющийся ![]() Класс: Монах Характер: True Neutral Раса: Человек NWN: Скриптинг [Sn] ![]() |
Artlira, делай так:
NSS DelayCommand(2.0, AssignCommand(oPC, ActionStartConversation(oPC)));
|
![]()
Сообщение
#2743
|
|
Level 9 ![]() Класс: Обыватель Характер: Lawful Good Раса: Человек NWN: Модмейкер Рыцарская Сага ![]() |
Отличный ход Dik Morris! (IMG:style_emoticons/kolobok_light/good.gif) Спасибо, сразу не сообразил...
Artlira, проверил, все работает, перепиши скрипт так: NSS void main()
{ object oPC = GetEnteringObject(); if (GetIsPC(oPC)) { AssignCommand(oPC, ClearAllActions(TRUE)); // TRUE чтобы точно остановить SetCutsceneMode(oPC, TRUE); // Режим катсцены AssignCommand(oPC, SetCameraFacing (80.0, 12.0, 50.0, CAMERA_TRANSITION_TYPE_VERY_FAST)); // Зададим координаты камеры DelayCommand(2.0, AssignCommand(oPC, ActionStartConversation(oPC,"zz_memory"))); // zz_memory диалог персонажа } } |
![]()
Сообщение
#2744
|
|
Level 4 ![]() ![]() Класс: Маг Характер: Chaotic Neutral Раса: Танар'ри ![]() |
Dik Morris и gennady, огромное спасибо за помощь. Говорит сам с собой, как в лучших психиатрических клиниках!
|
![]()
Сообщение
#2745
|
|
Level 1 Класс: Вор Характер: Neutral Good Раса: Хафлинг ![]() |
помогите хочу создать свой модуль но я там полный нюб в этом с чего начать как перейти с местности в местность незнаю ничего как зделать задания помогите (IMG:style_emoticons/kolobok_light/shout.gif)
|
![]()
Сообщение
#2746
|
|
Level 9 ![]() Класс: Друид Характер: True Neutral Раса: Эльф NWN: Скриптинг [PW] Амен ![]() |
Romka, поищи в интернете Tutorial для новичков, в котором по шагам описывается, как начать работу в редакторе. В нем же подробно показывается, как сделать простой модуль.
Крайне советую начать поиск с этой темы. |
![]()
Сообщение
#2747
|
|
Level 1 Класс: Вор Характер: Neutral Good Раса: Хафлинг ![]() |
Спасибо за помощь это надо по поесковику искать да так и написать Tutorial для новичков ??????
Спасибо тебе Zirrex (IMG:style_emoticons/kolobok_light/thank_you.gif) |
![]()
Сообщение
#2748
|
|
Вечно меняющийся ![]() Класс: Монах Характер: True Neutral Раса: Человек NWN: Скриптинг [Sn] ![]() |
|
![]()
Сообщение
#2749
|
|
Level 1 Класс: Страж Тьмы Характер: Chaotic Evil Раса: Гном ![]() |
Добрый день
Появился вопрос : Как сделать картинку для итэма. есть предмет с особыми свойствами, в стандартной палитре нашел тока рисунок какойто палочки, а надо удочка)) нашел даже рисунок удочки в бмп, но как ее добавить к палитре незнаю |
![]()
Сообщение
#2750
|
|
Level 5 ![]() ![]() Класс: Убийца Характер: Chaotic Neutral Раса: Полуэльф ![]() |
Привет! Вопрос такой куда или в какой слот npc ставить скрипт чтобы он все время спал?И как убрать эффект когда надо!
|
![]()
Сообщение
#2751
|
|
Level 5 ![]() ![]() Класс: Друид Характер: Neutral Good Раса: Человек ![]() |
В OnHeartbet/
NSS //=============== СНЯТЬ ЭФФЕКТ ================================================= void DelOneEffectOnPC(object oObject, int iOne) { effect eEffect = GetFirstEffect(oObject); while (GetIsEffectValid(eEffect)) { if (GetEffectType(eEffect) == iOne) RemoveEffect(oObject, eEffect); eEffect = GetNextEffect(oObject); } // int iOne - EFFECT_TYPE_... } А у меня глупый вопрос как сделать, чтобы после окончания диалога у непися при повторном разговоре поменялась строка с текстом? |
![]()
Сообщение
#2752
|
|
Level 9 ![]() Класс: Обыватель Характер: Lawful Good Раса: Человек NWN: Модмейкер Рыцарская Сага ![]() |
QUOTE(Noah @ Jul 29 2006, 13:31) [snapback]88606[/snapback] Привет! Вопрос такой куда или в какой слот npc ставить скрипт чтобы он все время спал?И как убрать эффект когда надо! Noah, у меня есть такой скрипт для персов спящих ночью. Задай свои условия для сна, или просто сделай спящию красавицу. NSS //::////////////////////////////////////////////////// //:: Created By: Gennady //:: Created On: 12.02.2006 //::////////////////////////////////////////////////// #include "nw_i0_generic" //=============== СКРИПТ ДЛЯ СПЯЩИХ ================== void main() { if(GetArea(GetFirstPC()) != GetArea(OBJECT_SELF)) return; // если ПС нет в локе object oPC = OBJECT_SELF; int T = GetTimeHour(); if(T>=7 && T<21) // день SetLocalInt(oPC,"SLEEP",FALSE); else // ночь SetLocalInt(oPC,"SLEEP",1); if (GetLocalInt(oPC, "SLEEP") == 1 && !IsInConversation(oPC)) { AssignCommand(oPC, ClearAllActions(TRUE)); AssignCommand(oPC,ActionPlayAnimation(ANIMATION_LOOPING_DEAD_FRONT, 1.0, 10.0)); ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_IMP_SLEEP), oPC); } else WalkWayPoints(); } // Для корректной работы, у ходячих удалить скрипты nw_c2_default9 и nw_c2_default2 Можешь использовать и другой подобный скрипт, но в обоих случаях персы откликаются на разговор. Оба скрипта ставятся на ХБ персов. NSS void main()
{ if(GetArea(GetFirstPC()) != GetArea(OBJECT_SELF)) return; // если ПС нет в локе if (!IsInConversation(OBJECT_SELF)) { int T = GetTimeHour(); if(T>=21 || T<6) { ActionPlayAnimation(ANIMATION_LOOPING_DEAD_FRONT, 1.0, 10.0); ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_IMP_SLEEP), OBJECT_SELF); } else { if(Random(100) >= 50) ActionPlayAnimation(ANIMATION_FIREFORGET_DRINK); else { switch (Random(3)+1) { case 1: ActionPlayAnimation(ANIMATION_FIREFORGET_PAUSE_SCRATCH_HEAD); break; case 2: ActionPlayAnimation(ANIMATION_FIREFORGET_PAUSE_BORED); break; case 3: if (GetGender(OBJECT_SELF)==GENDER_MALE) PlaySound("as_pl_laughingm2"); else PlaySound("as_pl_laughingf2"); ActionPlayAnimation(ANIMATION_LOOPING_TALK_LAUGHING, 1.0, 4.0); break; } } } } } |
![]() ![]()
Сообщение
#2753
|
|
Level 5 ![]() ![]() Класс: Друид Характер: Neutral Good Раса: Человек ![]() |
Кто сможет выложить скрипт атаки непися при наступлении на триггер?
Я пребывал этот скрипт [/nss]#include "NW_I0_GENERIC" void main() { object oNPC = GetObjectByTag("NPC_01"); DelayCommand(1.0, AssignCommand(oNPC, SetIsTemporaryEnemy(GetPCSpeaker()))); DelayCommand(1.0, AssignCommand(oNPC, DetermineCombatRound())); } Ошибку навыдает но и непашет. Может, кто исправит или другой выложит? И ещё один вопрос. Как сделать чтобы после окончания диалога у непися при повторном разговоре поменялась строка с текстом? |
![]()
Сообщение
#2754
|
|
Level 5 ![]() ![]() Класс: Друид Характер: Lawful Neutral Раса: Человек ![]() |
QUOTE Кто сможет выложить скрипт атаки непися при наступлении на триггер? Вот, ставится на onEnter тригера. NSS void main() { object oNPC = GetObjectByTag("NPC_01"); object oPC = GetEnteringObject(); DelayCommand(1.0, AssignCommand(oNPC, ActionAttack(oPC))); } QUOTE Как сделать чтобы после окончания диалога у непися при повторном разговоре поменялась строка с текстом? В условие появления первой ветки разговора пишеш скрипт NSS int StartingConditional() { object oPC = GetPCSpeaker(); object oNPC = OBJECT_SELF; int iResult = GetLocalInt(oNPC, "PER"); if (iResult == 0) return TRUE; return FALSE; } А в совершаемых действиях NSS void main() { object oNPC = OBJECT_SELF; SetLocalInt(oNPC, "PER", 1); } И после первого разговора появиться второй. Сообщение отредактировал Milfes - Jul 31 2006, 00:46 |
![]()
Сообщение
#2755
|
|
Level 9 ![]() Класс: Обыватель Характер: Lawful Good Раса: Человек NWN: Модмейкер Рыцарская Сага ![]() |
QUOTE(Артём @ Jul 29 2006, 23:11) [snapback]88636[/snapback] А у меня глупый вопрос как сделать, чтобы после окончания диалога у непися при повторном разговоре поменялась строка с текстом? На действие: NSS void main() { SetLocalInt(GetPCSpeaker(),"D1_"+GetTag(OBJECT_SELF),1); // присвоить переменную } На проверку: NSS int StartingConditional() { if(!(GetLocalInt(GetPCSpeaker(), "D1_"+GetTag(OBJECT_SELF)) == 1)) return FALSE; return TRUE; } // Проверить местные переменные Скрипт универсальный, привязан к тэгу перса. Если тэги тоже уникальные, то не нужно писать новые скрипты, и выдумывать переменные. Напишите несколько пар подобных скриптов, меняя номер диалога D2, D3, D4 ... и используйте в построении диалогов. |
![]()
Сообщение
#2756
|
|
Level 3 ![]() Класс: Волшебник Характер: Neutral Evil Раса: Человек ![]() |
NSS void main() { object oPC = GetEnteringObject(); if (!GetIsPC(oPC)) return; //...........День............ if((GetIsDay())== TRUE) { SetEncounterActive(FALSE, OBJECT_SELF); } //...............Ночь............. /* if((GetIsDay())== FALSE) { if((GetEncounterActive(OBJECT_SELF))== FALSE) { SetEncounterActive(TRUE, OBJECT_SELF); } } */ } Объект триггер стандартного тулсетовского респавна. Задачей ставил себе сделать так, чтобы ночью он был активен, а днем нет(хотел восоздать бандитов появляющихся ночью на дорогах и в городе). Вроде по логике(моей (IMG:style_emoticons/kolobok_light/biggrin.gif) ) вещей все делал правильно, но как всегда не работает (IMG:style_emoticons/kolobok_light/vava.gif) Помогите пожалуйста найти правильное решение (IMG:style_emoticons/kolobok_light/scratch_one-s_head.gif) |
![]()
Сообщение
#2757
|
|
Level 4 ![]() ![]() Класс: Некромант Характер: Chaotic Evil Раса: Нежить ![]() |
Astoret
Чтобы добавить новый предмет (именной новый) нужно как я понимаю править 2DA файл baseitems.2DA, а чтобы включить новую картинку для предмета, то ищем через NWN Explorer: data/textures_01.bif, там находим нужный тип предмета, (скажем iit_neck_*) смотрим последний предмет из данного списка (у меня это iit_neck_026) далее, сохраняем рисунок в TGA и называем например iit_neck_027, (Но ИМХО, лучше указать число побольше, 050 к примеру) включаем в хак/кидаем в оввериде . Вроде так это делается. (IMG:style_emoticons/kolobok_light/smile.gif) Noah Существует эвент – onSpawn, значит туда и нужно прописывать скрипт. QUOTE The script attached to this event fires when the creature is first spawned and allows you to specify the default behaviors for the creature (i.e. does the creature flee when attacked, walk a set of waypoints, etc). QUOTE Rus. Событие OnSpawn происходит, когда чудовище первый раз появляется на местности. Артем Вообще, лучше сделать так: NSS #include "NW_I0_GENERIC" void main() { string sNAME = GetName(OBJECT_SELF); /* В поле NAME триггера укажи таг НПС */ object oPlayer = GetEnteringObject(); object oNPC = GetNearestObjectByTag(sNAME); if (!GetIsPC(oPlayer))return; if (GetLocalInt(OBJECT_SELF, "Enter_player")==1)return; SetLocalInt(OBJECT_SELF, "Enter_player",1); if (GetIsEnemy(oPlayer, oNPC) == FALSE) SetIsTemporaryEnemy(oPlayer, oNPC); AssignCommand(oNPC, ClearAllActions(TRUE)); AssignCommand(oNPC, ActionAttack(oPlayer)); } Почему именно так ? Да потому что, такой скрипт универсален и не нужно будет если у тебя скажем 10 таких NPC, для каждого из них писать свой скрипт. (IMG:style_emoticons/kolobok_light/smile.gif) По поводу работы локальных переменных, думаю подойдет ЭТА статья, по крайней мере после ее прочтения я разобрался. (IMG:style_emoticons/kolobok_light/smile.gif) gennady Гм... А зачем ети заморочки с тагами ? Можно ведь делать просто: NSS void main() { SetLocalInt(OBJECT_SELF, "Remember", 1); } Потом проверять переменную... По идее эффект то тот-же, но скрипт проще. (IMG:style_emoticons/kolobok_light/smile.gif) ))) QUOTE(gennady @ Jul 30 2006, 07:43) [snapback]88659[/snapback] Можешь использовать и другой подобный скрипт, но в обоих случаях персы откликаются на разговор. О Ведь эвент onConversation - отвечает за разговор ? Значит просто нужно чистить акции NPC. Mandrake Использовал поиск и нашел много интересной инфы, http://www.city-of-masters.ru/forums/index...EncounterActive З.Ы: забыл сказать... Я еще новичок и очень многово не знаю... Но все что ответил - уже проверено и работает, у меня по крайней мере. (IMG:style_emoticons/kolobok_light/smile.gif) Сообщение отредактировал Waromon - Jul 31 2006, 14:07 |
![]()
Сообщение
#2758
|
|
Level 9 ![]() Класс: Обыватель Характер: Lawful Good Раса: Человек NWN: Модмейкер Рыцарская Сага ![]() |
QUOTE(Mandrake @ Jul 31 2006, 11:54) [snapback]88728[/snapback] Объект триггер стандартного тулсетовского респавна. Задачей ставил себе сделать так, чтобы ночью он был активен, а днем нет(хотел восоздать бандитов появляющихся ночью на дорогах и в городе). Вроде по логике(моей ) вещей все делал правильно, но как всегда не работает Скрипты на энкаучере не работают. Когда триггер заряжается, то к нему вообще не достучатся. Ставь скрипт управления на ХБ локи. NSS void main()
{ if(GetIsDay()) SetEncounterActive(FALSE, GetObjectByTag("BANDIT")); else SetEncounterActive(TRUE, GetObjectByTag("BANDIT")); } |
![]()
Сообщение
#2759
|
|
Миловидный Бегрюссунг ![]() Класс: Воин Характер: Chaotic Good Раса: Человек NWN: Модмейкер Проклятие Левора Порядок Времени ![]() |
Енкаучер должен быть НЕАКТИВНЫМ и СИНГ-ШОТ. Если непонятно что это, читай мой мануал. Скрипт на OnEnter. Сработает ТОЛЬКО ночью.
NSS //:://////////////////////////////////////////////
//:: OnEnter am_een_day_night //:: Copyright © 2006 WRG! //::////////////////////////////////////////////// /* Включает енкаучер, если ночь. float "TIME" - время срабатывания енкаучера */ //::////////////////////////////////////////////// //:: Created By: Aiwan //:: Created On: 31.07.2006 //::////////////////////////////////////////////// void main() { object oPC = GetEnteringObject(); object oEnc = OBJECT_SELF; object oArea = GetArea(OBJECT_SELF); float f = GetLocalFloat(oEnc, "TIME"); // Время задержки енкаучера if(!GetIsPC(oPC)) return; if(GetLocalInt(oEnc, "FIGHT!")) return; // Енкаучер сработал if((GetIsDay() || GetIsDawn() || GetIsDusk()) && GetEncounterActive(oEnc)==TRUE) { SetEncounterActive(FALSE); return; } else if(GetIsNight() && GetEncounterActive(oEnc) == FALSE) { if (f == 0.0) f = 600.0; // 10 минут, стандартный респавн SetEncounterActive(TRUE); DelayCommand(1.0, SetEncounterActive(FALSE, oEnc)); SetLocalInt(oEnc, "FIGHT!", TRUE); // Энкаучер сработал один раз // Тут самое интересное. Неактивный енкаучер DelayCommand не исполняет // поэтому я попросил это сделать локацию, в котором он стоит. Она вроде // как не против... AssignCommand(oArea, DelayCommand(f, SetLocalInt(oEnc, "FIGHT!", FALSE))); } } |
![]()
Сообщение
#2760
|
|
Level 3 ![]() Класс: Волшебник Характер: Neutral Evil Раса: Человек ![]() |
Aiwan, большое спасибо. Разобрался наконец.
Еще такой вопрос, есть ли функция, которая меняет рассу игрока? Я тут начал эксперементы с разными субрассами, но разговор о превращении игрока в андеда, внешний вид и свойства нежити удается дать, кроме одной. Это реакция на некоторые спелы, в частности лечения и противоположного нанесения ран, а также спел хоррид витинг и санберст(может еще есть, но это первое, что пришло на ум). Нет ли способа дать это свойство игроку, кроме как правки действия самих спелов, через проверку на другие параметры(типа субрасс и др). Сообщение отредактировал Mandrake - Jul 31 2006, 16:49 |
![]() ![]() |
Текстовая версия | Сейчас: 27th July 2025 - 01:30 |