Я никак немогу догадатся как сделать такой скрипт.
если у ПК, ранел непися на 50 НР, то произайдёт скрипт. я попробовал так, но нихрена не вышло, поставил скрипт на ОнФзДиференд.
Neverwinter Script Source |
void main() { object oPC = GetFirstPC(); object oVavi = OBJECT_SELF; object oArea = GetArea(OBJECT_SELF); int iMaxHP = GetMaxHitPoints(OBJECT_SELF); int iCol = GetFogColor(FOG_COLOR_RED_DARK,oArea); int iHP = GetCurrentHitPoints(OBJECT_SELF); int iStatus = GetLocalInt(GetArea(OBJECT_SELF), "VAVILON"); effect eVis1 = EffectVisualEffect(VFX_DUR_STONEHOLD); effect eVis2 = EffectVisualEffect(VFX_FNF_HOWL_WAR_CRY_FEMALE); effect eTimeStop = EffectTimeStop(); object oWP = GetWaypointByTag("VAVI_CUT_POST"); if(iStatus == 0 && iHP < iMaxHP - 50) { SetFogColor(iCol,FOG_TYPE_MOON,oArea); SpeakString("Ñìåðòü Òåáå Ñâîëî÷"); ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis1, oVavi); ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis2, oVavi); ApplyEffectToObject(DURATION_TYPE_INSTANT, eTimeStop, oPC); AssignCommand(oVavi,ActionJumpToObject(oWP,TRUE)); DelayCommand(1.5,AssignCommand(oPC,ActionJumpToObject(oWP))); } } |
Neverwinter Script Source |
#include "nw_i0_generic" void main() { if (GetArea(OBJECT_SELF) != GetArea(GetFirstPC()))return; { object oPC = GetLastPerceived(); object oBR = GetItemInSlot(INVENTORY_SLOT_NECK, oPC); object oHench = GetObjectByTag("HENCHMEN"); object oBB = GetObjectByTag(""); int nHench = GetLastPerceptionSeen(); if (GetLastPerceptionSeen() && GetIsPC(oPC)&& nHench) { if (GetTag(oBR) != "PLASH" && GetLocalInt(oPC,"ALARM") != 1) { SetLocalInt(oPC, "ALARM", 1); SetFacingPoint(GetPosition(oPC)); DetermineCombatRound(oPC); AdjustReputation(oPC, OBJECT_SELF, -100); AdjustReputation(OBJECT_SELF, oPC, -100); AssignCommand(OBJECT_SELF, ActionAttack(oPC,TRUE)); } else if (GetLocalInt(OBJECT_SELF, "LOOK") != 1 && GetTag(oBR) == "PLASH" && GetLocalInt(oPC,"ALARM") != 1) { AssignCommand(OBJECT_SELF, ClearAllActions()); AssignCommand(OBJECT_SELF, ActionPlayAnimation(ANIMATION_FIREFORGET_HEAD_TURN_RIGHT, 0.0, 3.0)); SpeakString("Õìì ß ÷òî-òî ñëûøàë."); AssignCommand(OBJECT_SELF,WalkWayPoints(TRUE, 2.0)); } if (GetLocalInt(oPC,"ALARM") != 1) { SetFacingPoint(GetPosition(oPC)); DetermineCombatRound(oPC); AdjustReputation(oPC, OBJECT_SELF, -100); AdjustReputation(OBJECT_SELF, oPC, -100); AssignCommand(OBJECT_SELF, ActionAttack(oPC,TRUE)); if (GetIsInCombat(OBJECT_SELF)) { SetLocalInt(oPC, "ALARM", 0); } else if (GetIsEnemy(oPC,OBJECT_SELF) == TRUE) { SetLocalInt(oPC, "ALARM", 0); } if(GetDistanceToObject(oPC) >= 25.0 && GetDistanceToObject(OBJECT_SELF) <= 25.0 && GetIsObjectValid(oHench)) { SpeakString("Îí ñêðûëñß, åãî íå âèäíî, îòñòàâèòü òðåâîãó"); SetLocalInt(oPC, "ALARM", 1); AssignCommand(OBJECT_SELF,WalkWayPoints()); ClearAllActions(TRUE); AdjustReputation(OBJECT_SELF,oPC, 100); } effect eInv = EffectVisualEffect(EFFECT_TYPE_INVISIBILITY); if(GetEffectType(eInv) == GetIsPC(oPC) == TRUE) { AssignCommand(OBJECT_SELF,WalkWayPoints(TRUE, 0.0)); SpeakString("Îí ñêðûëñß, åãî íå âèäíî, îòñòàâèòü òðåâîãó"); SetLocalInt(oPC, "ALARM", 1); ClearAllActions(TRUE); AdjustReputation(OBJECT_SELF,oPC, 100); } if (GetTag(oBR) == "PLASH") { SpeakString("Îí ñêðûëñß, åãî íå âèäíî, îòñòàâèòü òðåâîãó"); SetLocalInt(oPC, "ALARM", 1); ClearAllActions(TRUE); AdjustReputation(OBJECT_SELF,oPC, 100); AssignCommand(OBJECT_SELF,WalkWayPoints(TRUE, 0.0)); } if(!GetHasEffect(VFX_DUR_INVISIBILITY,oPC)) { AssignCommand(OBJECT_SELF,WalkWayPoints(TRUE, 0.0)); SpeakString("Îí ñêðûëñß, åãî íå âèäíî, îòñòàâèòü òðåâîãó"); SetLocalInt(oPC, "ALARM", 1); ClearAllActions(TRUE); AdjustReputation(OBJECT_SELF,oPC, 100); } if(oPC == GetEnteringObject() == GetTag(oBR)) { } } } } } |
QUOTE |
Я никак немогу догадатся как сделать такой скрипт. если у ПК, ранел непися на 50 НР, то произайдёт скрипт. я попробовал так, но нихрена не вышло, поставил скрипт на ОнФзДиференд. |
Neverwinter Script Source |
void main() { object oPC = GetLastDamager(); int iMaxHit = GetMaxHitPoints(); int iCurHit = GetCurrentHitPoints(); if(GetIsPC(oPC)) { int iDamage = iMaxHit - iCurHit; SetLocalInt(OBJECT_SELF,"DamagePC",(iDamage-GetLocalInt(OBJECT_SELF,"DamageOther")-GetLocalInt(OBJECT_SELF,"DamagePC"))+GetLocalInt(OBJECT_SELF,"DamagePC")); SendMessageToPC(oPC, IntToString(GetLocalInt(OBJECT_SELF, "DamagePC"))); } else { int iDamage = iMaxHit - iCurHit; SetLocalInt(OBJECT_SELF,"DamageOther",(iDamage-GetLocalInt(OBJECT_SELF,"DamagePC")-GetLocalInt(OBJECT_SELF,"DamageOther"))+GetLocalInt(OBJECT_SELF,"DamageOther")); SendMessageToPC(oPC, IntToString(GetLocalInt(OBJECT_SELF, "DamageOther"))); } } |
QUOTE (NedWarN @ Oct 23 2005, 21:27) |
-fenix-Считать та он считает, а вот мне то нужно, типа если ПК снёс Неписю 50 хелов то... |
QUOTE (NedWarN @ Oct 23 2005, 21:27) |
PS: Одного не пойму, dntknw.gif зачем ты так сложно всё составил, когда нужно посчитать, делается в 3раза проще. |
QUOTE (Lex @ Oct 15 2005, 22:28) |
нет. Если игрок не шевелится, то нет. А вот если кто-то еще на триггер войдет, а скрипт написан не сильно умно, то может случиться проблема, но не та, что ты описал. Вообще ставя вопрос, выклыдывай исходники. Те скрипт триггера и скрипт посылания непися далеко и на долго. |
QUOTE (L33t @ Oct 15 2005, 23:00) |
игра выдает сообщение об ошибке и пишет чего-то про деление на ноль с упоминанием названия скрипта. |
QUOTE (AliceDiren @ Oct 28 2005, 23:22) |
Насколько я знаю, нельзя передвигать объекты только по оси Z, не двигая при этом по осям X и Y. Во всяком случае у меня не получилось. ![]() |
QUOTE (NedWarN @ Oct 28 2005, 23:20) |
Очень нужен Скриптик, на опускание или поднимание, плактаблов. скажите такое возможно. сам я не дадумался и Vector не помог. |
QUOTE (Lex @ Oct 29 2005, 03:02) |
разбирали вопрос уже 100 раз. Поищи. вообще в свойствах модуля слот onRespawn или как-то так. Допиши туда ActionJumpToObject нужный и будет тебе счастье |
QUOTE (2_advanced @ Oct 30 2005, 02:30) |
\\ злостный оффтоп - сообщения не всегда добавляются к предыдущим ![]() |
QUOTE (2_advanced @ Oct 30 2005, 01:28) |
колодец это не плейсабл был, а визуальный эффект ![]() ![]() |
CODE |
visualeffects.2da : Label Imp_Root_M_Node 404 SCENE_FORMIAN1 ttr01_p05_01 ttr01_p05_01 - это ведь тайл :p можно и бошку прикрутить.. хотя в визуальных эффектах вроде ее нет тролля в анимацию спелла =) вместо файрболла |
Neverwinter Script Source |
DelayCommand(20.0,SetWeather(oPC,WEATHER_SNOW)); DelayCommand(20.0,SetWeather(oArea,WEATHER_SNOW)); |
Neverwinter Script Source |
// script to make it snow (module wide) NWN Lexicon (с) void main() { object oModule = GetModule(); SetWeather(oModule, WEATHER_SNOW); } |
Neverwinter Script Source |
AssingCommand(oGuard, ActionDoCommand(SpeakString("Taste my blade you bloody thief"))); |
Neverwinter Script Source |
void main() { object oGuard = GetObjectByTag("CHEST_GUARD"); object oPlayer = GetLastOpenedBy(); AssingCommand(oGuard, ActionDoCommand(SpeakString("Taste my blade you bloody thief"))); AssingCommand(OGuard, ActionAttack(oPlayer)); } |
Neverwinter Script Source |
void main() { object oGuard = GetObjectByTag("CHEST_GUARD"); object oPlayer = GetLastOpenedBy(); AssignCommand(oGuard, ActionDoCommand(SpeakString("Taste my blade you bloody thief"))); AssignCommand(oGuard, ActionAttack(oPlayer)); } |
QUOTE (Dik Morris @ Oct 31 2005, 08:17) |
AssignCommand(oGuard, ActionDoCommand(SpeakString("Taste my blade you bloody thief"))); |
QUOTE (Белатрис @ Oct 31 2005, 08:52) |
Какой скрипт нужен для того что бы NPC не погибал после отаки PC, а только отлижался без сознания определенное время и все? |
QUOTE (Lex @ Oct 31 2005, 14:51) |
смотри в Вопросах и Ответах. Там есть. |
QUOTE (Белатрис @ Oct 31 2005, 08:52) |
Еще вопрос, какой скрипт нужен для создания мультфильма, я имею ввиду начало скрипта, как действовать дальше попробую сам разобратся... |
Neverwinter Script Source |
// Sets the given creature into cutscene mode. This prevents the player from // using the GUI and camera controls. // - oCreature: creature in a cutscene // - nInCutscene: TRUE to move them into cutscene, FALSE to remove cutscene mode // Note: SetCutsceneMode(oPlayer, TRUE) will also make the player 'plot' (unkillable). // SetCutsceneMode(oPlayer, FALSE) will restore the player's plot flag to what it // was when SetCutsceneMode(oPlayer, TRUE) was called. void SetCutsceneMode(object oCreature, int nInCutscene=TRUE) |
QUOTE (-fenix- @ Oct 31 2005, 16:29) | ||
|
Neverwinter Script Source |
void SetCutsceneMode(object oCreature, int nInCutscene=TRUE) |
QUOTE |
Known Bugs If you make several calls of SetCutsceneMode to TRUE on a PC without first setting it to FALSE in between, the PC will become permanently invulnerable as the plot flag will remain set to TRUE. |
Neverwinter Script Source |
void main() { object oMik=GetObjectByTag("Таг мишени"); ActionAttack(oMik); } |
QUOTE |
И еще как сделать цели бессмертными? |
QUOTE |
И еще ПС'у нельзя отаковать эту мишень |
QUOTE (Dik Morris @ Nov 1 2005, 15:36) |
PS: На будущее, перед тем как что нибуть спрашивать, хотя бы немного пробегись по темам. Ты сейчас начинающий, а подобные вопросы, разбераются очень часто. |
QUOTE (Белатрис @ Nov 1 2005, 16:54) |
на остальное времени не хватает. |
Neverwinter Script Source |
онрест ![]() if(GetIsInSubArea(GetLastPCRested(), триггер) && GetLastRestEventType()==REST_EVENTTYPE_REST_STARTED) |
QUOTE |
то герой перенесется в страну снов |
QUOTE |
Пасиб за новую функцию. |
QUOTE (Dik Morris @ Nov 1 2005, 15:36) |
Я уже говорил, ставь скриптик на оnSpawn нужного НПС, вводи ТАГ мишени, и в добры путь. |
Neverwinter Script Source |
SetAILevel(object oTarget, int nAILevel) |
QUOTE |
убрал галочку статик с мишени? |
QUOTE (Dik Morris @ Nov 2 2005, 19:11) |
Она идет только под сценки? Или есть ли смысл использовать ее, в игре? PS: Скажем, увеличить «мозги» хенчу. |
QUOTE |
Description Sets the AI level of a creature. By default, the game will determine the best AI level to use, but by using this function the default value will be overridden. This function does not work on players. Reserve AI_LEVEL_HIGH for special use only as it causes a creature to consume a lot of CPU time. Remarks A good thing you can do with this function is to take load off the CPU when doing scripted battles, e.g. for cutscenes. If you set the AI level of most of the creatures very low, and then use a single "commander" to AssignCommand actions to all the different creatures, you can save a lot of CPU time. |
Neverwinter Script Source |
void main() { object oMod = GetModule(); // Наш модуль object oPC = GetEnteringObject(); // Того кто вошел // Если это не игрок (а ДМ к примеру) или уже было раз, то сделаем возврат // скрипта, т.е. дальше он не пойдет. if (!GetIsPC(oPC) || GetLocalInt(oMod, "START_GAME")) {return;} { SetLocalInt(oMod, "START_GAME", TRUE); // Что бы сработал только один раз //--------- Откроем туман над локацией если вам надо. К примеру в городе ------- ExploreAreaForPlayer(GetObjectByTag("CITY_01"), oPC); //--------------- Проводим деноминацию денежных накоплений --------------------- TakeGoldFromCreature(GetGold(oPC),oPC,TRUE); // Заберем все денежки //------------------ Убиваем весь инвентарь ------------------------------------ object oItem = GetFirstItemInInventory(oPC); // Первый итем в инвентаре while(GetIsObjectValid(oItem)) // Пока такой объект существует { DestroyObject(oItem); // Удаляем его oItem = GetNextItemInInventory(oPC); // Берем другой объект... } //------------------ Убиваем всю амуницию ------------------------------------- int i=0; while(i<14) // ПОКА i меньше 14. 14 - это количество всех слот у объекта { DestroyObject(GetItemInSlot(i, oPC)); // i++; // Это значит i увеличится на еденичку от своего значения // Было ноль к примеру, станет 1 и т.д. } //------------------------ Создаем предметы ------------------------------------ // Если вам нужны отдельно каждому классу по несколько предметов, то // скопируйте кусок кода еще и измените CLASS_TYPE_ Наведите курсор, // нажми F2 и выберите нужное значение константы // int Class = GetClassByPosition(1, oPC); // switch (Class) // В зависимости от класса // { // case CLASS_TYPE_BARBARIAN: // { // CreateItemOnObject("ResRef_Объекта", oPC,1); // } // case CLASS_TYPE_FIGHTER: // { // CreateItemOnObject("ResRef_Объекта", oPC,1); // } // } GiveGoldToCreature(oPC, 500); // Даем золотишко CreateItemOnObject("item_998gu", oPC, 1); CreateItemOnObject("item001", oPC, 1); CreateItemOnObject("item002", oPC, 4); CreateItemOnObject("item003", oPC, 1); // 1 - это количество в стеке, если вам надо 30 стрел, то ставьте там 30 //---------------------- Опознаем предметы ----------------------------------- object oItemCr = GetFirstItemInInventory(oPC); while(GetIsObjectValid(oItemCr)) { SetIdentified(oItemCr,TRUE); oItemCr = GetNextItemInInventory(oPC); } 092; //---------------------- Оденем нашего игрока --------------------------------- AssignCommand(oPC, ActionEquipMostEffectiveArmor()); //---------------------------------- END --------------------------------------- } } |
QUOTE (Белатрис @ Nov 5 2005, 05:11) |
Это скрипт Айва, я только убрал здесь че-то, ну то что мне не нужно было. |
Neverwinter Script Source |
} 092; // ВОТ ЭТУ ЗАГОГУЛИНУ УБЕРИ //---------------------- Оденем нашего игрока --------------------------------- |