![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
![]() |
![]()
Сообщение
#3011
|
|
Level 7 ![]() ![]() Класс: Некромант Характер: True Neutral Раса: Нежить ![]() |
Как и где определяется в игре, будет ли существо умерщвлено жестоко или нет(месиво или нет)? В EffectDeath есть параметр nSpectacularDeath, отвечающий за это, но для начала мне надо отконтролить его срабатывание в модуле.
|
![]()
Сообщение
#3012
|
|
Level 11 ![]() Класс: Волшебник Характер: Neutral Good Раса: Фея NWN: Скриптинг [PW] Край Лесов ![]() |
Цитата Как и где определяется в игре, будет ли существо умерщвлено жестоко или нет(месиво или нет)? В EffectDeath есть параметр nSpectacularDeath, отвечающий за это, но для начала мне надо отконтролить его срабатывание в модуле. Да там есть такой параметр, но особой разницы я не увидела...если хочешь жестко, то тебе нужны спецэффекты разбрасывания костей и кровищи...они есть в стандартном наборе все эффекты,которые можно задавать скриптово, можно глянуть в visualeffect.2da....как то так называется. Кстати есть интересная анимация - судороги...с взрывом кровищи и последующем создавании плэйсов было бы эффектно ^ ^ P.S. на ваулте можно найти плэйсовые куски рук и ног, голов...там этого полно )) Сообщение отредактировал Melisse - Nov 25 2008, 17:00 |
![]()
Сообщение
#3013
|
|
Level 17 ![]() Класс: Волшебник Характер: Neutral Good Раса: Человек NWN: Скриптинг [PW] Axistown SR 1.9 NWNX ![]() |
Как и где определяется в игре, будет ли существо умерщвлено жестоко или нет(месиво или нет)? В EffectDeath есть параметр nSpectacularDeath, отвечающий за это, но для начала мне надо отконтролить его срабатывание в модуле. Не уверен, но на это может влиять настройка в SetIsDestroyable.Хотя подозреваю, что это где-нибудь в 2da определяется. |
![]()
Сообщение
#3014
|
|
Level 7 ![]() ![]() Класс: Некромант Характер: True Neutral Раса: Нежить ![]() |
2Melisse )) Спасибо за идею с эффектами, не думал об этом.
2virusman В 2da я этого не нашел, но SetIsDestroyable хватает для работы, спасибо. |
![]()
Сообщение
#3015
|
|
Level 7 ![]() ![]() Класс: Некромант Характер: True Neutral Раса: Нежить ![]() |
Вопрос наполовину глупый: как можно выйти из очереди OnDeath события? Мне надо поставить с него команду, но так, чтобы она выполнялась без флага "умирающий".
P.S. Прошу прощения за даблпост. Обошелся без этого, но вопрос остается: можно ли вызвать команду так, чтобы она была в очереди другого события? SignalEvent это не то, т.к. все равно последующие команды идут в очередь основного события(по-крайней мере, по действию). Сообщение отредактировал greye - Nov 29 2008, 13:36 |
![]()
Сообщение
#3016
|
|
Миловидный Бегрюссунг ![]() Класс: Воин Характер: Chaotic Good Раса: Человек NWN: Модмейкер Проклятие Левора Порядок Времени ![]() |
greye, опиши задачу. Так будет проще думать.
|
![]()
Сообщение
#3017
|
|
Level 17 ![]() Класс: Волшебник Характер: Neutral Good Раса: Человек NWN: Скриптинг [PW] Axistown SR 1.9 NWNX ![]() |
Вопрос наполовину глупый: как можно выйти из очереди OnDeath события? Мне надо поставить с него команду, но так, чтобы она выполнялась без флага "умирающий". AssignCommand? Действия назначаются не на события, а на объекты.
P.S. Прошу прощения за даблпост. Обошелся без этого, но вопрос остается: можно ли вызвать команду так, чтобы она была в очереди другого события? SignalEvent это не то, т.к. все равно последующие команды идут в очередь основного события(по-крайней мере, по действию). |
![]()
Сообщение
#3018
|
|
Level 7 ![]() ![]() Класс: Некромант Характер: True Neutral Раса: Нежить ![]() |
Я уж и забыл про это. В общем, мне надо было SetIsDestroyable(FALSE) ставить в скрипт OnDeath при некоторых условиях, после чего было воскрешение, соответственно, сразу за ним необходимо было вернуть SetIsDestroyable(TRUE), но в таком случае крич исчезал согласно corpse fade time. Любые перенаправления в OnUserDefined или через ExecuteScript приводили к тому же.
Сообщение отредактировал greye - Dec 7 2008, 11:18 |
![]()
Сообщение
#3019
|
|
Level 17 ![]() Класс: Волшебник Характер: Neutral Good Раса: Человек NWN: Скриптинг [PW] Axistown SR 1.9 NWNX ![]() |
Видимо, флаг, заданный SetIsDestroyable, отрабатывает до события OnDeath. Так что лучше поставить SetIsDestroyable(FALSE) на спауне, а при смерти либо "добивать", либо нет.
|
![]()
Сообщение
#3020
|
|
Level 7 ![]() ![]() Класс: Некромант Характер: True Neutral Раса: Нежить ![]() |
Это да, просто я забыл еще сказать, что это может происходить с одним существом много раз, то есть OnSpawn тут не поможет, так как надо было, чтобы это значение менялось туда-обратно при каждом выполнении.
Добавлено: не каждый раз, а при определенных условиях, другое дело, что эти условия могут много раз повторяться. P.S. Да и еще, проблема была также с тем, что если этот флаг оставить FALSE, то при убийстве крича будет невидимая подвеска < name> dead, что тоже неприятно, поэтому и надо было переставлять флаг. Сообщение отредактировал greye - Dec 7 2008, 12:11 |
![]()
Сообщение
#3021
|
|
Level 17 ![]() Класс: Волшебник Характер: Neutral Good Раса: Человек NWN: Скриптинг [PW] Axistown SR 1.9 NWNX ![]() |
А зачем тебе тогда SetIsDestroyable трогать, если каждый раз существо будет воскрешаться?
|
![]()
Сообщение
#3022
|
|
Level 2 ![]() Класс: Воин Характер: Neutral Good Раса: Человек ![]() |
Товарищи, подскажите пожалуйста, как составить скрипт, чтобы, например персонажа арестовали и сажают в тюрьму, при этом у него забирают все его вещи из инвентаря и все что на нем, но потом, когда его выпускают из тюрьмы, все вещи ему возвращают обратно. Мне интересно, как должны выглядеть скрипты на такую манипуляцию с вещами персонажа? Перерыл форум, смотрел в других модулях - ничего такого похожего ненашел. Может кто-нибудь знает?
С уважением, Андрей ЮП. |
![]()
Сообщение
#3023
|
|
Level 1 Класс: Фея Характер: Chaotic Good Раса: Фея ![]() |
Это целый цикл скриптов.
Очень широкий вопрос, слишком много тонкостей. Например: Как ты хочешь чтобы это выглядело - кат сценой или игровой процесс...сжали в тюрму - вели или просто персонаж прыгл в тюрму после ареста... Эти нюансы прямо пропорциональны количеству скритов и времени затраченного на их синхронизацию. А вообще все функции действий описаны ТУТ |
![]()
Сообщение
#3024
|
|
Level 5 ![]() Класс: Обыватель Характер: Lawful Neutral Раса: Человек NWN: Модмейкер Проклятие Левора Порядок Времени ![]() |
нене, там не те функции.
Андрей ЮП, глянь ПЛ, первую главу. Тот эпизод, где игрока огревают по башке и он оказывается у Ви. Но вообще все просто, скрипт отбора всех вещей есть (выкладывался не раз, обычно юзают в начале модуля. Просто надо до дестроя добавить копирвание в сундук). Ну а вернуть обратно - все тоже самое, но объекты (игрок-сундук) местами меняются. А как это все обставлено (стража, катсцена, тюрьма) - это уже совсем другая история. |
![]()
Сообщение
#3025
|
|
Миловидный Бегрюссунг ![]() Класс: Воин Характер: Chaotic Good Раса: Человек NWN: Модмейкер Проклятие Левора Порядок Времени ![]() |
Андрей ЮП, еще можешь глянуть в ПВ скрипты которые срабатывают при попытке украсть что-то. Но боюсь разобраться будет в них сложно...
|
![]()
Сообщение
#3026
|
|
Level 2 ![]() Класс: Воин Характер: Neutral Good Раса: Человек ![]() |
Как ты хочешь чтобы это выглядело - кат сценой или игровой процесс...сжали в тюрму - вели или просто персонаж прыгл в тюрму после ареста... Товарищ Kamita, это я уже все сделал. Продолбался целый день, но сделал. С помощью не сложных скриптов, переменных и тэгов. Я сделал не тюрьму, а карцер (типа как КПЗ (IMG:style_emoticons/kolobok_light/biggrin.gif) ) Устроил мордобой в населенном пункте, нагрубил солдату или другому представителю власти и персонажа арестовывают (надо будет еще на воровство сделать арест...). Отсидев в камере, персонаж должен либо заплатить штраф, либо его отправят на принудительные работы, после чего отпустят. Тут у меня все получилось, кроме вот этой проблемы с вещами персонажа. Получается как-то глупо: нарушитель правопорядка оказывается в камере с оружием, в броне, и всеми вещами. Это неправильно. Андрей ЮП, глянь ПЛ, первую главу. Тот эпизод, где игрока огревают по башке и он оказывается у Ви. Уже смотрел, товарищ Лекс, не смог понять где там и что. Но попробую еще раз, может разберусь. Просто надо до дестроя добавить копирвание в сундук). Вот на этом моменте бы поподробнее... (IMG:style_emoticons/kolobok_light/declare.gif) Я попробую. Спасибо! А как это все обставлено (стража, катсцена, тюрьма) - это уже совсем другая история. Ну это намного проще, чем скрипты составлять (IMG:style_emoticons/kolobok_light/declare.gif) Андрей ЮП, еще можешь глянуть в ПВ скрипты которые срабатывают при попытке украсть что-то. Но боюсь разобраться будет в них сложно... Спасибо, товарищ Aiwan! Это тоже посмотрю. Всем спасибо за полезные советы! С уважением, Андрей ЮП. |
![]()
Сообщение
#3027
|
|
Level 9 ![]() Класс: Обыватель Характер: Lawful Good Раса: Человек NWN: Модмейкер Рыцарская Сага ![]() |
Тут для нашего иодернизированного модуля потребовался такой арест и водворение в тюрьму... В общем это целая система скриптов, но судь идеи в том, что нужно сперва крутануть цикл на нахождение и перенос сумок из инвентаря героя, а затем лишь чистить шмотки... Чего не было сделано в Леворе, поэтому многие и матерились... (IMG:style_emoticons/kolobok_light/biggrin.gif) Вот тебе скриптик, надеюсь поможет.
Neverwinter Script //:://////////////////////////////////////////////////
//:: АРЕСТ ГЕРОЯ ЗА НАПАДЕНИE НА ПРОСТОЛЮДИНОВ //:: Created By: Gennady //:: File Name: stop_commoner //::////////////////////////////////////////////////// #include "ludi" // ДАТЬ И ОПОЗНАТЬ ПРЕДМЕТЫ // string sItem - ResRef предмета // object oTarget - Объект или существо кому дать // int iKol - Количество предметов // int iStack=1 - Количество предметов в стеке void CreateItemSklad(string sItem, object oPC, int iKol=1, int iStack=1); void CreateItemSklad(string sItem, object oPC, int iKol=1, int iStack=1) { while(1 <= iKol) { if(iKol < iStack) iStack = iKol; object oItem = CreateItemOnObject(sItem, oPC, iStack); SetIdentified(oItem, TRUE); // опознать iKol-=iStack; } } //////////////////////////////////////////////////////////////////////////////// void DeletItem(object oPC, object oSklad) { object oItem = GetFirstItemInInventory(oPC); while(GetIsObjectValid(oItem)) { string sTag = GetTag(oItem); int iDestroy = 0; if (sTag == "itm_magsteleport" || sTag == "itm_magstelepor1") {iDestroy = 1; SetLocalInt(oPC, "MARSHIK_COMMONER", 1);} if(iDestroy == 0) CopyItem(oItem, oSklad); DestroyObject(oItem); oItem = GetNextItemInInventory(oPC); } // ***** Оденем ***** object oMan = CreateItemOnObject("t_roba_a", oPC, 1); // Роба AssignCommand(oPC, ClearAllActions(TRUE)); AssignCommand(oPC, ActionEquipItem(oMan,INVENTORY_SLOT_CHEST)); // Роба AssignCommand(oPC, ActionSpeakString("Я что в тюрьме?")); FadeFromBlack(oPC, FADE_SPEED_SLOW); // Уберем занавес if(GetLocalInt(oPC, "MARSHIK_COMMONER")==1) SetCustomToken(2202, "Да, совсем забыл… Я вам верну маршрутизатор."); else SetCustomToken(2202, ""); if(GetLocalInt(oPC, "VOR_COMMONER")>=10) { DelayCommand(1.0, ReputationTorg(-1)); SetLocalInt(oPC, "VOR_COMMONER", 0); SetLocalInt(oPC, "R2_NPC_OSKAR", 1);// ДЛЯ ДИАЛОГА С ЗАКЛЮЧЕННЫМ } else DelayCommand(1.0, ReputationTorg(-3)); DelayCommand(1.1, SendMessageToPC(oPC, "<c у >Прошло три часа... Вас доставили в тюрьму...</c>")); } //////////////////////////////////////////////////////////////////////////////// void Arest(object oPC, object oWP) { int iGold = GetGold(oPC); int i, iShtraf = iGold/10; //Размер штрафа int iT = GetTimeHour(); object oSklad = GetObjectByTag("SKLAD_COMMONER"); object oItem = GetFirstItemInInventory(oPC); if(GetLocalInt(oPC, "VOR_COMMONER")>=10) iShtraf = iGold/50; //Размер штрафа SetCustomToken(2201, IntToString(iShtraf)); SetLocalInt(oPC,"GOLD_TURMA", iGold); // золото SetTime(iT+3,0,0,0); SetLocalLocation(oPC, "STOP_LOC_COMMONER", GetLocation(oPC)); // ТОЧКА ВОЗВРАТА CreateItemSklad("nw_it_gold001", oSklad, iGold-iShtraf, 50000); TakeGoldFromCreature(iGold, oPC, TRUE); // забрать золото SetStandardFactionReputation(STANDARD_FACTION_COMM ONER, 50, oPC); SetLocalInt(GetModule(),"REP_COMMONER",0); JumpFirstPC(oWP); while(GetIsObjectValid(oItem)) { if(GetBaseItemType(oItem) == BASE_ITEM_LARGEBOX) AssignCommand(oPC, ActionGiveItem(oItem, oSklad)); // Дать сумку или предмет oItem = GetNextItemInInventory(oPC); } for (i = 0; i < NUM_INVENTORY_SLOTS; i++) { oItem = GetItemInSlot(i, oPC); if (GetIsObjectValid(oItem)) { CopyItem(oItem, oSklad); DestroyObject(oItem); } } DelayCommand(7.0, DeletItem(oPC, oSklad)); } //////////////////////////////////////////////////////////////////////////////// void main() { object oPC = GetFirstPC(); object oMod = GetModule(); object oNPC = GetFirstObjectInShape(SHAPE_SPHERE, 50.0,GetLocation(oPC),TRUE); object oStop = GetWaypointByTag("STOP_COMMONER"); object oZak = GetObjectByTag("NPC_OSKAR");//Заключенный effect ePar = EffectCutsceneParalyze();// Эффект парализации effect eOtz = EffectVisualEffect(VFX_IMP_UNSUMMON);// Отзыв животного effect eSM3 = EffectVisualEffect(VFX_FNF_SUMMON_MONSTER_3);// ГолубаЯ звезда float Time = 17.0; float fAngle = GetFacing(oPC); location Loc1 = CreateLocation(oPC, 3.0, fAngle+120.0, 0.0, fAngle); location Loc2 = CreateLocation(oPC, 3.0, fAngle-120.0, 0.0, fAngle); string sSt1 = "<c у >Вы нарушили закон Империи! Убили важного гражданина!</c>"; string sSt2 = "<cюa >Вас ждет арест и суд! Пошли!</c>"; if(GetLocalInt(oPC, "VOR_COMMONER")>=10) { sSt1 = "<c у >Стой! Сколько можно воровать? Вас ждет арест и суд!</c>"; sSt2 = "<cюa >Спокойно воришка, и без глупостей! Пошли!</c>"; } while (GetIsObjectValid(oNPC)) // Все существа в радиусе 30 метров { AssignCommand(oNPC, ClearAllActions(TRUE)); if(oNPC != oPC) AssignCommand(oMod, DelayCommand(Time+5.0, AssignCommand(oNPC, ClearAllActions(TRUE)))); ApplyEffectToObject(DURATION_TYPE_TEMPORARY, ePar, oNPC, Time); if (oPC==GetMaster(oNPC)) { if(oNPC!= GetAssociate(ASSOCIATE_TYPE_HENCHMAN, oPC)) { ApplyEffectToObject(DURATION_TYPE_INSTANT, eOtz, oNPC); DestroyObject(oNPC, 2.0); } else RemoveHenchman(oPC, oNPC); // Удалить спутника } oNPC = GetNextObjectInShape(SHAPE_SPHERE, 50.0, GetLocation(oPC), TRUE); } if(GetGender(oPC)==GENDER_FEMALE && GetGender(oZak)==GENDER_MALE) { location Loc3 = GetLocation(oZak); DestroyObject(oZak); DelayCommand(3.0, CreateObjectN(OBJECT_TYPE_CREATURE, "zak_oskar_gg", Loc3)); } AssignCommand(oPC, SpeakString("Что случилось?")); object oStraz1 = CreateObject(OBJECT_TYPE_CREATURE, "straz", Loc1); object oStraz2 = CreateObject(OBJECT_TYPE_CREATURE, "straz", Loc2); ApplyEffectAtLocation(DURATION_TYPE_INSTANT, eSM3, Loc1); ApplyEffectAtLocation(DURATION_TYPE_INSTANT, eSM3, Loc2); DelayCommand(1.0, ApplyEffectToObject(DURATION_TYPE_TEMPORARY, ePar, oStraz1, Time)); DelayCommand(1.0, ApplyEffectToObject(DURATION_TYPE_TEMPORARY, ePar, oStraz2, Time)); DelayCommand(6.0, AssignCommand(oStraz1, SpeakString(sSt1))); DelayCommand(6.0, PlayVoiceChat(VOICE_CHAT_NO, oStraz2)); DelayCommand(12.0, AssignCommand(oStraz2, SpeakString(sSt2))); DelayCommand(15.0, PlayVoiceChat(VOICE_CHAT_YES, oStraz1)); DelayCommand(Time, FadeToBlack(oPC, FADE_SPEED_FASTEST)); // Занавес DelayCommand(Time+0.1, Arest(oPC, oStop)); DestroyObject(oStraz1, Time); DestroyObject(oStraz2, Time); } |
![]()
Сообщение
#3028
|
|
Level 3 ![]() Класс: Псионик Характер: Chaotic Neutral Раса: Тварь ![]() |
Вот еще один вопрос насчет скрипта: (В кампаниях не нашел ничего подобного, к сожалению)
Каждые 20 секунд НПС телепортируется на случайный вейпоинт из шести. При этом показывается визуальный эффект. Заранее, опять таки, спасибо. |
![]()
Сообщение
#3029
|
|
Level 11 ![]() Класс: Волшебник Характер: Lawful Evil Раса: Эльф NWN: Скриптинг [PW] Gem of the North ![]() |
Neverwinter Script const string NPC_WP_TAG = "NPC_WP_TAG"; Функцию вызывать из onSpawn непися (IMG:style_emoticons/kolobok_light/smile.gif) Вейпоинты должны иметь тег, указанный в константе NPC_WP_TAG. При этом объектов с таким тегом в модуле больше быть не должно.
const int NPC_VFX = 24; const float NPC_TELEPORT_TIME = 20.0f; void Teleport(object oNPC); void main() { Teleport(OBJECT_SELF); } void Teleport(object oNPC) { object oCurrentWP = GetNearestObjectByTag(NPC_WP_TAG, oNPC), oWP; do oWP = GetObjectByTag(NPC_WP_TAG, d6()); while(oWP != oCurrentWP); ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(NPC_VFX), oNPC); ApplyEffectToObject(DURATION_TYPE_TEMPORARY, EffectCutsceneImmobilize(), oNPC, 1.0f); DelayCommand(1.05f, AssignCommand(oNPC, JumpToObject(oWP))); DelayCommand(NPC_TELEPORT_TIME, Teleport(oNPC)); } Сообщение отредактировал Ilerien - Dec 14 2008, 15:36 |
![]()
Сообщение
#3030
|
|
Level 3 ![]() Класс: Псионик Характер: Chaotic Neutral Раса: Тварь ![]() |
|
![]()
Сообщение
#3031
|
|
Level 2 ![]() Класс: Воин Характер: Neutral Good Раса: Человек ![]() |
Тут для нашего иодернизированного модуля потребовался такой арест и водворение в тюрьму... В общем это целая система скриптов, но судь идеи в том, что нужно сперва крутануть цикл на нахождение и перенос сумок из инвентаря героя, а затем лишь чистить шмотки... Чего не было сделано в Леворе, поэтому многие и матерились... Вот тебе скриптик, надеюсь поможет. Товарищ gennady, спасибо конечно, но я в этом скрипте не все понял. Дело в том, что процесс ареста и пр. наглядной рутины у меня уже и так есть. Меня интересует именно - скрипт отбирание вещей с их сохранением и скрипт возврата этих сохраненных вещей. В вашем большом скрипте это есть, но лишнее сбивает меня с толку. Если нетрудно, выложите отдельные скрипты на отбирание и возврат вещей, хорошо бы с комментариями. Заранее благодарен. С уважением, Андрей ЮП. |
![]()
Сообщение
#3032
|
|
Level 9 ![]() Класс: Обыватель Характер: Lawful Good Раса: Человек NWN: Модмейкер Рыцарская Сага ![]() |
Neverwinter Script // ДАТЬ И ОПОЗНАТЬ ПРЕДМЕТЫ (ДЛЯ ОБРАБОТКИ ЗОЛОТА)
// string sItem - ResRef предмета // object oTarget - Объект или существо кому дать // int iKol - Количество предметов // int iStack=1 - Количество предметов в стеке void CreateItemSklad(string sItem, object oPC, int iKol=1, int iStack=1); void CreateItemSklad(string sItem, object oPC, int iKol=1, int iStack=1) { while(1 <= iKol) { if(iKol < iStack) iStack = iKol; object oItem = CreateItemOnObject(sItem, oPC, iStack); SetIdentified(oItem, TRUE); // опознать iKol-=iStack; } } ////////////// ЗАБРАТЬ ВЕСЬ ИНВЕНТАРЬ И ОДЕТЬ ГЕРОЯ В РОБУ ///////////////// void DeletItem(object oPC, object oSklad) { object oItem = GetFirstItemInInventory(oPC); int i; // ИНВЕНТАРЬ while(GetIsObjectValid(oItem)) { CopyItem(oItem, oSklad); DestroyObject(oItem); oItem = GetNextItemInInventory(oPC); } // СЛОТЫ for (i = 0; i < NUM_INVENTORY_SLOTS; i++) { oItem = GetItemInSlot(i, oPC); if (GetIsObjectValid(oItem)) { CopyItem(oItem, oSklad); DestroyObject(oItem); } } // ***** Оденем ***** object oMan = CreateItemOnObject("t_roba", oPC, 1); // Роба AssignCommand(oPC, ClearAllActions(TRUE)); AssignCommand(oPC, ActionEquipItem(oMan,INVENTORY_SLOT_CHEST)); // Роба } ///////////////// ЗАБРАТЬ ВСЕ СУМКИ ГЕРОЯ //////////////////////////////////// void CopyBase(object oPC, object oSklad) { object oItem = GetFirstItemInInventory(oPC); while(GetIsObjectValid(oItem)) { if(GetBaseItemType(oItem) == BASE_ITEM_LARGEBOX) AssignCommand(oPC, ActionGiveItem(oItem, oSklad)); // Дать сумку или предмет oItem = GetNextItemInInventory(oPC); } } //////////////////////////////////////////////////////////////////////////////// void main() { object oPC = GetFirstPC(); object oSklad = GetObjectByTag("SKLAD_ITEM"); int iGold = GetGold(oPC); // золото // забрать золото и положить его в сундук CreateItemSklad("nw_it_gold001", oSklad, iGold, 50000); TakeGoldFromCreature(iGold, oPC, TRUE); /////////////////////////////////////////// // забрать все сумки CopyBase(oPC, oSklad); ////////////////////////////////////////// // забрать все шмотки DelayCommand(2.0, DeletItem(oPC, oSklad)); ////////////////////////////////////////// } |
![]()
Сообщение
#3033
|
|
Level 2 ![]() Класс: Воин Характер: Neutral Good Раса: Человек ![]() |
Огромное спасибо, товарищ gennady! Это как раз то что нужно! Все теперь получается. Правда возврат вещей я решил сделать по другому, не автоматически. Просто герою перед освобождением из карцера открывают тот самый шкаф, куда были перенесены его вещи, и он сам все берет.
Еще раз спасибо! С уважением, Андрей ЮП. |
![]()
Сообщение
#3034
|
|
Level 3 ![]() Класс: Монах Характер: Lawful Good Раса: Эльф ![]() |
Подскажите что в этом скрипте(скрипт-телепорт на точку после смерти) не так?, он выдает кучу ошибок.
Neverwinter Script location lRespawnLocation;
string sPlanet = GetLocalString(oRespawner,"planet"); sPlanet = GetStringUpperCase(sPlanet); //Работа со строкой планеты, у тебя просто разные точки используют разный шрифт, эти - верхний string sFraction = GetLocalString(oRespawner, "fraction"); object wpStart = GetObjectByTag("PLANET"+sPlanet +"ToBase"+sFraction); //Вэйпоинт на базе lRespawnLocation = GetLocation(wpStart); AssignCommand(oRespawner, JumpToLocation(lRespawnLocation));//Прыгаем на вэйпоинт на базе Сообщение отредактировал Sugo77 - Dec 29 2008, 22:18 |
![]()
Сообщение
#3035
|
|
Level 7 ![]() ![]() Класс: Некромант Характер: True Neutral Раса: Нежить ![]() |
Добавь в начале
Цитата object oRespawner = GetLastPlayerDying(); А по второму случаю надо было писать Цитата object oPC = GetEnteringObject(); if (GetIsPC(oPC)) SetLocalString(oPC, "planet", "Earth"); Прошу прощения за те ошибки, хотя вроде всё было правильно... Сообщение отредактировал greye - Dec 29 2008, 23:01 |
![]() ![]() |
Текстовая версия | Сейчас: 1st May 2025 - 10:09 |