![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
![]() |
![]()
Сообщение
#2201
|
|
Level 5 ![]() Класс: Обыватель Характер: Lawful Neutral Раса: Человек NWN: Модмейкер Проклятие Левора Порядок Времени ![]() |
скрипты атаки и поворота работают без режима катсцены, в старом варианте?
\\ переношу в скрипты QUOTE(Chimeric @ May 9 2006, 12:47) [snapback]81184[/snapback] Ситуация: у всех NPC в OnConversation стоит NSS оbject oPC = GetFirstPC(); SetCutsceneMode(oPC, TRUE); ActionStartConversation(oPC, "", FALSE, TRUE); Лучше не так.. Я же приводил скрипт для onConversation |
![]()
Сообщение
#2202
|
|
Пушкин ![]() Класс: Обыватель Характер: Chaotic Neutral Раса: Гигант NWN: Тексты ![]() |
В твоем скрипте есть какой-то RespondToShout, который Аврора не признает.
Скрипты не работают и без катсцены. Только что теги проверял, думал, может, не те. Они. В точности тот же тег у существа, что и в скрипте, но SetFacingPoint - кукиш. Бой тоже не начинается. |
![]()
Сообщение
#2203
|
|
Level 5 ![]() Класс: Обыватель Характер: Lawful Neutral Раса: Человек NWN: Модмейкер Проклятие Левора Порядок Времени ![]() |
QUOTE(Chimeric @ May 9 2006, 17:38) [snapback]81196[/snapback] Скрипты не работают и без катсцены значит дело не в ней (IMG:style_emoticons/kolobok_light/yes3.gif) . QUOTE(Chimeric @ May 9 2006, 17:38) [snapback]81196[/snapback] В твоем скрипте есть какой-то RespondToShout, который Аврора не признает. это как это не признает???? RespondToShout описана в библе nw_i0_generic, она там в скрипте подключена сверху NSS #include "nw_i0_generic" ща посмотрим, что там не так в скриптах QUOTE(Chimeric @ May 9 2006, 12:47) [snapback]81184[/snapback] Или вот еще. Когда начинается разговор в том же режиме, то ставлю на первую реплику игрока следующее, чтобы к нему повернулись: это точно работает. Проверь: - правильные ли тэги - нет ли в модуле других объектов с такими же тэгами - лучше (если возможно) юзай GetNearestObjectByTag чтобы брать не просто по тэгу, а еще и ближайших QUOTE(Chimeric @ May 9 2006, 12:47) [snapback]81184[/snapback] После чего они начинают свой разговор в режиме катсцены. Штука, однако, в том, что при таком режиме не работает то, что вроде бы должно. Например, нужно сделать так, чтобы трое неписей напали на нас и окончился режим катсцены. Ставил вот что на последнюю реплику и это тоже работает. смотри что написано выше по поводу другого скрипта. + мб там с фракциями/но-ПвП чтонить, хотя врядли. QUOTE(Lex @ May 9 2006, 18:04) [snapback]81197[/snapback] - нет ли в модуле других объектов с такими же тэгами это можно легко проверить вот таким образом: NSS void CheckTag(string sTag) { int i = 0; object oObject = GetObjectByTag(sTag,i); object oPC = GetFirstPC(); SendMessageToPC(oPC,"CHECK TAG: '"+sTag+"'. List of Objects:"); while (GetIsObjectValid(oObject)) { SendMessageToPC(oPC,GetName(oObject)+" in area "+GetName(GetArea(oObject))); i++; oObject = GetObjectByTag(sTag,i); } } void main() { CheckTag("1"); CheckTag("2"); CheckTag("3"); } запусти такой скрипт где-нить, или вставь в свой и посмотри в логах, где что есть повторное. |
![]()
Сообщение
#2204
|
|
Пушкин ![]() Класс: Обыватель Характер: Chaotic Neutral Раса: Гигант NWN: Тексты ![]() |
А! Черт! Ну конечно! Так, все, вроде понял. Завтра поменяю кое что и сообщу...
|
![]()
Сообщение
#2205
|
|
Level 1 Класс: Клерик Характер: Neutral Evil Раса: Дварф ![]() |
Aiwan, за ползунок спасибо, но меня больше интересует другая часть моего вопроса, а именно как сделать, что бы суммоны не жрали опыт и между патей он делился в меньшем процентном соотношении. Если это скрипт, напиши его пожалуйста. (IMG:style_emoticons/kolobok_light/smile.gif)
|
![]()
Сообщение
#2206
|
|
Миловидный Бегрюссунг ![]() Класс: Воин Характер: Chaotic Good Раса: Человек NWN: Модмейкер Проклятие Левора Порядок Времени ![]() |
NSS // Так даем обычному кричу ХР и РС тоже
GiveXPToCreature(GetPCSpeaker(), 150) // Так дает партии ХР #include "nw_i0_tool" void main() { RewardPartyXP(150, GetPCSpeaker()); } |
![]()
Сообщение
#2207
|
|
Level 3 ![]() Класс: Паладин Характер: Lawful Good Раса: Человек ![]() |
Народ в Скриптах особо не шарю. Вот помогите мне я подхожу к НПС и надо так сделать что когда он отвечает "Да хочу" НПС наколдовал на игрока защиту и всякое такое + лечение. Напишите плиз скрипт он должен быть в диалоге. В завершении. (IMG:style_emoticons/kolobok_light/rolleyes.gif)
|
![]()
Сообщение
#2208
|
|
Вечно меняющийся ![]() Класс: Монах Характер: True Neutral Раса: Человек NWN: Скриптинг [Sn] ![]() |
NPC востaнавливает все хит-поинты игрока + увеличивает класс брони на 5.
Нужное время да и сам эффект, можешь поменять (IMG:style_emoticons/kolobok_light/smile.gif) NSS //На ActionTakens в диалоге void main() { object oPC = GetPCSpeaker(); object oNPC = OBJECT_SELF; AssignCommand(oPC, ClearAllActions()); AssignCommand(oNPC, ClearAllActions()); AssignCommand(oPC, ActionPauseConversation()); DelayCommand(1.0, AssignCommand(oNPC, ActionPlayAnimation(ANIMATION_LOOPING_CONJURE2,1.0f, 5.0f))); DelayCommand(6.8, ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_IMP_HEALING_X ),oPC)); DelayCommand(6.8, ApplyEffectToObject(DURATION_TYPE_TEMPORARY, EffectACIncrease(5), oPC, 1000.0f)); DelayCommand(6.9, ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectHeal(GetMaxHitPoints(oPC)), oPC)); DelayCommand(7.1, AssignCommand(oPC, ActionResumeConversation()); } PS: скрипт писал без тулсета, посему не исключены ошибки. (IMG:style_emoticons/kolobok_light/pleasantry.gif) Сообщение отредактировал Dik Morris - May 11 2006, 12:40 |
![]()
Сообщение
#2209
|
|
Level 3 ![]() Класс: Некромант Характер: Chaotic Neutral Раса: Человек ![]() |
Вот у меня есть такой лилаковский скрипт:
NSS /* Script generated by Lilac Soul's NWN Script Generator, v. 2.2 For download info, please visit: http://nwvault.ign.com/View.php?view=Other...&id=4683&id=625 */ //Put this script OnEnter void main() { object oPC = GetEnteringObject(); if (!GetIsPC(oPC)) return; object oTarget; location lTarget; oTarget = GetWaypointByTag("WP_FromStart"); lTarget = GetLocation(oTarget); //only do the jump if the location is valid. //though not flawless, we just check if it is in a valid area. //the script will stop if the location isn't valid - meaning that //nothing put after the teleport will fire either. //the current location won't be stored, either if (GetAreaFromLocation(lTarget)==OBJECT_INVALID) return; SetLocalLocation(oPC, "ls_stored_loc", GetLocation(oPC)); AssignCommand(oPC, ClearAllActions()); AssignCommand(oPC, ActionJumpToLocation(lTarget)); FloatingTextStringOnCreature("Ловушка!Начни сначала.", oPC); } Ставлю его на триггер.При наступлении на него игроком, скрипт переносит PC в вейпоинт WP_FromStart. Как можно сделать, чтобы триггер перемещал игрока в вейпоинт, так которого равен тегу ключа вейпоинта? Помогите пожалуйста. |
![]()
Сообщение
#2210
|
|
Вечно меняющийся ![]() Класс: Монах Характер: True Neutral Раса: Человек NWN: Скриптинг [Sn] ![]() |
QUOTE Как можно сделать, чтобы триггер перемещал игрока в вейпоинт, так которого равен тегу ключа вейпоинта? Тэг ключа вайпоинта... ? Если честно я ничего не понял. (IMG:style_emoticons/kolobok_light/pleasantry.gif) Сообщение отредактировал Dik Morris - May 11 2006, 12:52 |
![]()
Сообщение
#2211
|
|
Level 3 ![]() Класс: Некромант Характер: Chaotic Neutral Раса: Человек ![]() |
Ну в русской версии.
Свойства триггера-улучшенный-авто удаление ключа, а ниже - тег ключа. |
![]() ![]()
Сообщение
#2212
|
|
Лорд AxisTown'a ![]() Класс: Монах Характер: Lawful Good Раса: Дварф NWN: Маппинг ![]() |
QUOTE Как можно сделать, чтобы триггер перемещал игрока в вейпоинт, так которого равен тегу ключа вейпоинта? хмм написан вопрос весьма туманно и замудренно... но никакой особый скрипт для этого не нужен просто в закладке Area Transition тригера через Setup Area Transition укажи куды пригать и все (IMG:style_emoticons/kolobok_light/biggrin.gif) п.с. не рекомндуеться юзать русифицированый тулсет..особенно с некоторыми "перлами" "точного дословного" перевода (IMG:style_emoticons/kolobok_light/biggrin.gif) Сообщение отредактировал mamuc - May 11 2006, 13:00 |
![]()
Сообщение
#2213
|
|
Level 3 ![]() Класс: Некромант Характер: Chaotic Neutral Раса: Человек ![]() |
QUOTE хмм написан вопрос весьма туманно и замудренно... но никакой особый скрипт для этого не нужен просто в закладке Area Transition тригера через Setup Area Transition укажи куды пригать и все biggrin.gif п.с. не рекомндуеться юзать русифицированый тулсет..особенно с некоторыми "перлами" "точного дословного" перевода biggrin.gif 1.Этот скрипт писала бездушная машина\программа. 2. Идет себе герой по подземелью.Смотрит, на полу лежит меч+3!Ничего себе, халявный меч!Подходит к мечу, а потом рраз, и телепортировался к гаргульям... Скрипт срабатывает не тогда, когда игрок по нему кликает, а когда наступает(PC этот триггер не видит). Я не такой чайник, чтобы не знать, как использовать триггер Area Transitition. Сообщение отредактировал Nuprahtor - May 11 2006, 13:13 |
![]()
Сообщение
#2214
|
|
Вечно меняющийся ![]() Класс: Монах Характер: True Neutral Раса: Человек NWN: Скриптинг [Sn] ![]() |
QUOTE Свойства триггера-улучшенный-авто удаление ключа, а ниже - тег ключа. Это ключ не вайпоинта, а триггера. (IMG:style_emoticons/kolobok_light/smile.gif) ) Т.е как я понял тебе нужен скрипт, чтобы при наступании игрока на триггер,он прыгал на объект с тагом, указанным в поле KeyTag того же триггера. NSS //onEnter, триггера.
void main { object oPC = GetEnteringObject(); string sTag = GetLockKeyTag(OBJECT_SELF); if (GetIsPC(oPC)) { AssignCommand(oPC, ClearAllActions()); DelayCommand(0.2, AssignCommand(oPC, ActionJumpToLocation(GetLocation(GetObjectByTag(sTag))))); DestroyObject(OBJECT_SELF, 0.6); // Скрипт сработает всего 1 раз, т.к триггер мы удалим. Если это не нужно, строчку можно потереть. } } Сообщение отредактировал Dik Morris - May 11 2006, 15:14 |
![]()
Сообщение
#2215
|
|
Лорд AxisTown'a ![]() Класс: Монах Характер: Lawful Good Раса: Дварф NWN: Маппинг ![]() |
QUOTE Я не такой чайник, чтобы не знать, как использовать триггер Area Transitition тогда в чем проблема? (IMG:style_emoticons/kolobok_light/biggrin.gif) |
![]()
Сообщение
#2216
|
|
Level 3 ![]() Класс: Некромант Характер: Chaotic Neutral Раса: Человек ![]() |
Dik Morris, спасибо вам большое.Это то, что нужно.
|
![]() ![]()
Сообщение
#2217
|
|
Лорд AxisTown'a ![]() Класс: Монах Характер: Lawful Good Раса: Дварф NWN: Маппинг ![]() |
QUOTE 2. Идет себе герой по подземелью.Смотрит, на полу лежит меч+3!Ничего себе, халявный меч!Подходит к мечу, а потом рраз, и телепортировался к гаргульям... Скрипт срабатывает не тогда, когда игрок по нему кликает, а когда наступает(PC этот триггер не видит). кстати - вот с этого описания и надо было начинать вопрос (IMG:style_emoticons/kolobok_light/biggrin.gif) |
![]()
Сообщение
#2218
|
|
Level 5 ![]() ![]() Класс: Убийца Характер: Chaotic Neutral Раса: Полуэльф ![]() |
Добр.Ночи! Так, я уже куда-то писал об этом,но пока глухо.Нужен скрипт для вампира(хенч,нпс)чтобы днем у него были штрафы, а ночью бонусы.
|
![]()
Сообщение
#2219
|
|
Вечно меняющийся ![]() Класс: Монах Характер: True Neutral Раса: Человек NWN: Скриптинг [Sn] ![]() |
1.
Возьми стандартный скрипт спавна, (фильтр скриптов -> Templates -> Custom onSpawn script) там раскомментируй строчку: //SetSpawnInCondition(NW_FLAG_HEARTBEAT_EVENT); сохраняешь скрипт, ставишь его на onSpawn, NPC. 2. На UserDefingen, того же NPC: NSS //Ночью у NPC будут регенерировать хит-поинты, а днем все характеристики уменьшаются на -3
void main() { object oNPC = OBJECT_SELF; effect eRegener = EffectRegenerate(1,1.0f); effect eCurse = EffectCurse(3,3,3,3,3); int nUser = GetUserDefinedEventNumber(); if(nUser == EVENT_HEARTBEAT) { if (GetIsDay()) { if (GetLocalInt(oNPC,"Day") == 0) { SetLocalInt(oNPC,"Day",1); RemoveEffect(oNPC, eRegener); ApplyEffectToObject(DURATION_TYPE_PERMANENT, eCurse,oNPC); } } if (GetIsNight()) { if (GetLocalInt(oNPC,"Day") == 1) { SetLocalInt(oNPC,"Day",0); RemoveEffect(oNPC, eCurse); ApplyEffectToObject(DURATION_TYPE_PERMANENT, eRegener,oNPC); } } } } Сообщение отредактировал Dik Morris - May 12 2006, 16:06 |
![]()
Сообщение
#2220
|
|
Level 3 ![]() Класс: Паладин Характер: Lawful Good Раса: Человек ![]() |
Еще один вопрос. Вот никак не получается, делая в скрипте что в инвентаре должна быть вещ чтобы в диалоге появилась строка. А у меня не получается. И чтобы Игрок отдал вещ НПС и НПС дал в обен золото. Как это сделать???
|
![]()
Сообщение
#2221
|
|
Вечно меняющийся ![]() Класс: Монах Характер: True Neutral Раса: Человек NWN: Скриптинг [Sn] ![]() |
В редакторе диалогов, есть скрипт визард (иконка шляпки), вот его и юзай, там множество разных проверок, и т.п...
|
![]()
Сообщение
#2222
|
|
Миловидный Бегрюссунг ![]() Класс: Воин Характер: Chaotic Good Раса: Человек NWN: Модмейкер Проклятие Левора Порядок Времени ![]() |
QUOTE(DarkDeivel @ May 12 2006, 22:40) [snapback]81480[/snapback] Еще один вопрос. Вот никак не получается, делая в скрипте что в инвентаре должна быть вещ чтобы в диалоге появилась строка. А у меня не получается. И чтобы Игрок отдал вещ НПС и НПС дал в обен золото. Как это сделать??? Почитай тему "Скрипты для новичков" |
![]()
Сообщение
#2223
|
|
Level 3 ![]() Класс: Паладин Характер: Lawful Good Раса: Человек ![]() |
QUOTE(Dik Morris @ May 12 2006, 20:04) [snapback]81483[/snapback] В редакторе диалогов, есть скрипт визард (иконка шляпки), вот его и юзай, там множество разных проверок, и т.п... ВОТ Я И ЧЕРЕЗ ВИЗАРДА ДЕЛАЛ И НИЧЕГО НЕ ПАШЕТ |
![]()
Сообщение
#2224
|
|
Миловидный Бегрюссунг ![]() Класс: Воин Характер: Chaotic Good Раса: Человек NWN: Модмейкер Проклятие Левора Порядок Времени ![]() |
QUOTE(DarkDeivel @ May 12 2006, 23:56) [snapback]81495[/snapback] ВОТ Я И ЧЕРЕЗ ВИЗАРДА ДЕЛАЛ И НИЧЕГО НЕ ПАШЕТ Застрелись. Тебе уже сказали где посмотреть а ты тупишь. NSS //------------------
#include "nw_i0_tool" int StartingConditional() { object oPC = GetPCSpeaker(); if(!HasItem(oPC, "ТАГ_ПРЕДМЕТА")) return FALSE; return TRUE; } |
![]()
Сообщение
#2225
|
|
Level 8 ![]() Класс: Некромант Характер: Chaotic Evil Раса: Дракон NWN: Скриптинг [PW] ![]() |
Заранее сорри за оффтоп:
Я тут подумал, может написать статью про оптимизацию nss-кода вообще и для PW в частности. Материал + примеры есть, только хз надо ли и куда её девать после написания (IMG:style_emoticons/kolobok_light/smile.gif) |
![]() ![]() |
Текстовая версия | Сейчас: 29th April 2025 - 18:15 |