![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
![]() |
![]()
Сообщение
#3736
|
|
Level 11 ![]() Класс: Волшебник Характер: Lawful Evil Раса: Эльф NWN: Скриптинг [PW] Gem of the North ![]() |
"" - это пустая строка. Там реф финального ролика, но в этом случае он нафиг не нужен (IMG:style_emoticons/kolobok_light/smile.gif)
Сообщение отредактировал Ilerien - Jun 24 2008, 19:22 |
![]()
Сообщение
#3737
|
|
Level 3 ![]() Класс: Обыватель Характер: Neutral Good Раса: Человек ![]() |
Он конечно нафиг не нужен, но без него компайлер не хочет скрипт сохранять, пришлось титры присобакать. А как мона самим эти титры сделать?
|
![]()
Сообщение
#3738
|
|
Level 11 ![]() Класс: Волшебник Характер: Lawful Evil Раса: Эльф NWN: Скриптинг [PW] Gem of the North ![]() |
Почему вдруг не хочет? Он проверяет исключительно соответствие типа формального параметра типу фактического, а наличие ролика ему глубоко пофиг. "" - это тоже строка, так что компилироваться должно прекрасно.
|
![]()
Сообщение
#3739
|
|
Level 3 ![]() Класс: Обыватель Характер: Neutral Good Раса: Человек ![]() |
Значит пустые кавычки мона=)) Гым! А на всякий случай, титры-то ваще мона свои сделать? Вроде, где-то кто-то говорил, что есть специальная прога... или у нас глюки?
|
![]()
Сообщение
#3740
|
|
Миловидный Бегрюссунг ![]() Класс: Воин Характер: Chaotic Good Раса: Человек NWN: Модмейкер Проклятие Левора Порядок Времени ![]() |
Шад, вот демо-мод
![]() и все настроено в нем. короче. Иди на магические вспышки. Возьми перса, у которого нет режима обнаружения по умолчанию. На картинках написано как настроить триггеры. Что бы дверь которая появляется (а можно хоть дом плейсебл сделать) была рабочей, ты должна установить заранее вейпоинт и при создании двери просто на нее запустить скрипт присвоения локального стринга равного имени вейпоинта. если лень, то можеш создать сколько надо дверей и в их свойствах сразу указать куда перемещается РС. И закинуть в палитру. В каждом новом триггере пропишешь нужный ресреф двери и все. ![]() Настройки триггера для плейсеблов. Создаем рандомно на случайной локации. Если как у нас на специальном месте то SECRET_PLC_TR_SEARCH_PLC_DOOR_01 - Таг вейпоинта. Жирным - таг триггера он равен таг поинта (создал в палитре) + таг триггера. Код ResRef объекта = стрингу на триггере PLC_ResRef Поле триггера KeyTag - сложность проверки скилла: DC_EASY = 0; DC_MEDIUM = 1; DC_HARD = 2; Имя триггера - фраза над игроком float "DISTANCE" радиус на котором находим объект или специально на месте объекта "SECRET_PLC_"+[Таг Триггера] LocalInt "ACTION_MODE_DETECT" == 1 устанавливает свойство триггера, он сработает только когда РС в режиме обнаружения. специально на месте объекта ![]() Код ResRef объекта = стрингу на триггере CLASS_TYPE_ALL Если его нет, то создаем для каждого класса свой. Поле триггера KeyTag - сложность проверки скилла: DC_EASY = 0; DC_MEDIUM = 1; DC_HARD = 2; Имя триггера - фраза над игроком float "DISTANCE" радиус на котором находим объект LocalInt "ACTION_MODE_DETECT" ==1 устанавливает свойство триггера, он сработает только когда РС в режиме обнаружения. Настройки для итемов такие же. Только тут можно создать для каждого класса что я прописал. Это из ПВ, там ограничения я все классы не обработал. Какой надо скажешь, добавим. Триггер для фраз над игроком проще пареной репы. Читай его описание в свойствах триггера. Триггер старт диалога с НПС так же. Он работает по принципу таг триггера - TR_CONV_ТАГ_НПС. Код Тест над NPC, KeyTag - больше 0 - подбежит. К тагу триггера добавляете таг НПС. Пример: TR_CONV_[ТАГ_НПС] -------------------------------------------------------------------- Если поле Deity НПС содержит цифру (см внизу), то НПС вроспроизведет анимацию: 5 - Смотрит вдаль 9 - Просить 10 - Ругать 11 - Смех 104 - Салют 107 - Приветствие 108 - Насмешка Вот простой скрипт am_exe_door_001 который мы запустили после создания двери. там может быть что угодно... Neverwinter Script //::////////////////////////////////////////////// //:: OnSpawn am_exe_door_001 //:: Copyright © 2005 WRG! //::////////////////////////////////////////////// /* Дверь в склеп. Секретная. Присваиваем место перемещения при создании двери скриптом. */ //::////////////////////////////////////////////// //:: Created By: Aiwan //:: Created On: 26.09.2005 //::////////////////////////////////////////////// void main() { object oSelf = OBJECT_SELF; SetLocalString(oSelf, "TRANSITION_TARGET", "AM_EXIT_DOOR_002"); } В ствойствах двери создаваемой посмотри локалки. поймешь как работает эта дверь. |
![]()
Сообщение
#3741
|
|
Level 9 ![]() Класс: Вор Характер: Chaotic Good Раса: Эльф МАСТЕР Переводов ![]() |
Ilerien, Aiwan, спасибо! (IMG:style_emoticons/kolobok_light/thank_you.gif) Коврыяю демки. никогда не думала, что это настолько сложно...
Ilerien, комментарии обязательно поднадобятся, вот только сформулирую. Так-то, в принципе, понятно, для чего и как. Но сама никогда не напишу такого, конечно. (IMG:style_emoticons/kolobok_light/smile.gif) Интересно, что ты плейс создаешь на Invisible Object... А если я захочу, чтобы дверь никуда не исчезала после ухода игрока (делаю сингл), мне просто с хартбита у резрефа снять скрипт, и все? Или закомментить строки эти просто в скрипте? Айв, амулет от поноса и дракон на водопое - сила-вещь! Кстати, игроку с прокачанным поиском интереснее там ходить (IMG:style_emoticons/kolobok_light/smile.gif) Вообще, я попробую соединить все и посмотреть, что получится. Спасибо еще раз! Сообщение отредактировал shadowdweller - Jun 24 2008, 23:23 |
![]()
Сообщение
#3742
|
|
Level 11 ![]() Класс: Волшебник Характер: Lawful Evil Раса: Эльф NWN: Скриптинг [PW] Gem of the North ![]() |
Цитата Интересно, что ты плейс создаешь на Invisible Object... А если я захочу, чтобы дверь никуда не исчезала после ухода игрока (делаю сингл), мне просто с хартбита у резрефа снять скрипт, и все? Или закомментить строки эти просто в скрипте? Если ты закомментишь уничтожение двери, то каждый раз будет создаваться новая на том же месте. Можно убрать скрипт из хб видимой двери - тогда скрипт создания будет думать, что она есть.Н-да, система делалась для PW (IMG:style_emoticons/kolobok_light/smile.gif) |
![]()
Сообщение
#3743
|
|
Level 9 ![]() Класс: Вор Характер: Chaotic Good Раса: Эльф МАСТЕР Переводов ![]() |
А еще такой вопрос - обязательно такой сложный скрипт писать на проверку надетого предмета у игрока или можно воспользоваться стандартным условием? Я просто скрипт у Айва посмотрела и жутко впечатлилась. Ключевое слово - жутко. (IMG:style_emoticons/kolobok_light/smile.gif)
Сообщение отредактировал shadowdweller - Jun 25 2008, 22:44 |
![]()
Сообщение
#3744
|
|
Level 11 ![]() Класс: Волшебник Характер: Lawful Evil Раса: Эльф NWN: Скриптинг [PW] Gem of the North ![]() |
Neverwinter Script if(GetTag(GetItemInSlot(oPC, <...>)) == "<...>") этого хватит (IMG:style_emoticons/kolobok_light/smile.gif) |
![]()
Сообщение
#3745
|
|
Level 9 ![]() Класс: Вор Характер: Chaotic Good Раса: Эльф МАСТЕР Переводов ![]() |
Ilerien,
Neverwinter Script if (GetTag(GetItemInSlot(oPC, INVENTORY_SLOT_NECK)) == "Branzuletko") return TRUE; return FALSE; Так? И в начале скрипта его ставить, и потом выполнение? |
![]()
Сообщение
#3746
|
|
Level 3 ![]() Класс: Клерик Характер: Chaotic Good Раса: Эльф ![]() |
Установил я патч 1.68, и сразу же полезли вопросы! Почему на некоторых NPC плащи не отображаются совсем? Причем на PC той же расы отображаются... Может и на NPC'ей как-то можно "надеть" их, скриптами, или через 2da (что, подозреваю, более вероятно)?
|
![]()
Сообщение
#3747
|
|
Level 11 ![]() Класс: Волшебник Характер: Lawful Evil Раса: Эльф NWN: Скриптинг [PW] Gem of the North ![]() |
Цитата Так? И в начале скрипта его ставить, и потом выполнение? Neverwinter Script //:://///////////////////////////////////////////// //:: Name: Heartbeat Secret Door Script (Invisible Object) //:: FileName: il_scdoor_hb //:: Copyright © 2007 Gem of the North Team //::////////////////////////////////////////////// /* Creates, if object have found, 2 binded doors */ //::////////////////////////////////////////////// //:: Created By: Ilerien Phoenix //:: Created On: 20.10.2007 //::////////////////////////////////////////////// void main() { object oSelf = OBJECT_SELF; string sTag = GetTag(oSelf); string sLetter = GetStringRight(sTag, 1); if(sLetter == "a") sLetter = "b"; else sLetter = "a"; int bShown = GetLocalInt(oSelf, "Shown"); if(bShown) return; bShown = GetLocalInt(GetObjectByTag(GetStringLeft(sTag, GetStringLength(sTag) - 1) + sLetter), "Shown"); if(bShown) return; //declare major variables string sCreatedDoorTag = ""; float fSearchDist = IntToFloat(GetReflexSavingThrow(oSelf)); int nDifficulty = GetWillSavingThrow(oSelf); int nLockDC = GetFortitudeSavingThrow(oSelf); int nSkillSearch = -50; int nCounter = 1; int nSkill; object oNearestCreature = GetNearestCreature(CREATURE_TYPE_IS_ALIVE, TRUE); int bDoneSearch = 0; int bDone = 0; int bNeedDetectMode = GetLocalInt(oSelf, "IL_SCDOOR_DETECTION_NEED_ACTION_MODE"); int bNeedLock = GetLocalInt(oSelf, "IL_SCDOOR_LOCK_DOOR"); float fDist; object oDoor; object oSearcher; object oComp; location lLoc; string sFirstTag = "il_scdoor_c"; while (!bDone && !bDoneSearch && GetIsObjectValid(oNearestCreature)) { if(GetIsObjectValid(GetMaster(oNearestCreature)) || GetIsPC(oNearestCreature) || GetIsDMPossessed(oNearestCreature)) { // what is the distance of the PC to the door location fDist = GetDistanceBetween(oSelf, oNearestCreature); if (fDist <= fSearchDist) { if (LineOfSightObject(oSelf, oNearestCreature) && (!bNeedDetectMode || GetActionMode(oNearestCreature, ACTION_MODE_DETECT)) && GetTag(GetItemInSlot(oPC, INVENTORY_SLOT_NECK)) == "Branzuletko") { nSkill = GetSkillRank(SKILL_SEARCH, oNearestCreature); if((nSkill + 20 >= nDifficulty) && (nSkill + d20() >= nDifficulty)) { bDone = 1; oSearcher = oNearestCreature; } } } else // If there is no one in the search radius, don't continue to search // for the best skill. bDoneSearch = 1; } nCounter = nCounter + 1; oNearestCreature = GetNearestCreature(CREATURE_TYPE_IS_ALIVE, TRUE, oSelf ,nCounter); }//the secret door is founded if(bDone) { sCreatedDoorTag = sFirstTag + GetStringRight(sTag, 4);//tag is, for example, "il_scdoor_c_1_a" lLoc = GetLocation(oSelf); oDoor = CreateObject(OBJECT_TYPE_PLACEABLE, sFirstTag, lLoc, TRUE, sCreatedDoorTag); SetLockUnlockDC(oDoor, nLockDC); if(bNeedLock) SetLocked(oDoor, TRUE); if(GetIsObjectValid(oDoor)) { PlayVoiceChat(VOICE_CHAT_LOOKHERE, oSearcher); sLetter = GetStringRight(sTag, 1); if(sLetter == "a") sLetter = "b"; else sLetter = "a"; sCreatedDoorTag = GetStringLeft(sFirstTag + GetStringRight(sTag, 4), GetStringLength(sFirstTag) + 3) + sLetter; oComp = GetObjectByTag(GetStringLeft(sTag, GetStringLength(sTag) - 1) + sLetter); lLoc = GetLocation(oComp); nLockDC = GetFortitudeSavingThrow(oComp); SetLockUnlockDC(oComp, nLockDC); bNeedLock = GetLocalInt(oSelf, "IL_SCDOOR_LOCK_DOOR"); if(bNeedLock) SetLocked(oComp, TRUE); oDoor = CreateObject(OBJECT_TYPE_PLACEABLE, sFirstTag, lLoc, TRUE, sCreatedDoorTag); SetLocalInt(oSelf, "Shown", 1); } } } Вчитался в скрипт - омг, там можно столько оптимизировать (IMG:style_emoticons/kolobok_light/smile.gif) Заодно нашёл одну кривость (IMG:style_emoticons/kolobok_light/wacko.gif) Новая версия: ![]() (IMG:style_emoticons/kolobok_light/smile.gif) Сообщение отредактировал Ilerien - Jun 26 2008, 12:06 |
![]()
Сообщение
#3748
|
|
Level 3 ![]() Класс: Обыватель Характер: Neutral Good Раса: Человек ![]() |
Почему на некоторых NPC плащи не отображаются совсем? Причем на PC той же расы отображаются... Может и на NPC'ей как-то можно "надеть" их, скриптами, или через 2da (что, подозреваю, более вероятно)? Ой! У нас тоже странная фигня с этими плащами - в тулсете эльфам они на уши надеваются! Мы даже испугались, что у них головы пропали! А на других, значит, вовсе не надеваются? |
![]()
Сообщение
#3749
|
|
Level 11 ![]() Класс: Волшебник Характер: Lawful Evil Раса: Эльф NWN: Скриптинг [PW] Gem of the North ![]() |
Это бага 1.68, в 1.69 пофиксили.
|
![]()
Сообщение
#3750
|
|
Level 3 ![]() Класс: Обыватель Характер: Neutral Good Раса: Человек ![]() |
|
![]()
Сообщение
#3751
|
|
Миловидный Бегрюссунг ![]() Класс: Воин Характер: Chaotic Good Раса: Человек NWN: Модмейкер Проклятие Левора Порядок Времени ![]() |
А еще такой вопрос - обязательно такой сложный скрипт писать на проверку надетого предмета у игрока или можно воспользоваться стандартным условием? Я просто скрипт у Айва посмотрела и жутко впечатлилась. Ключевое слово - жутко. Шад, я жеж делал УНИВЕРСАЛЬНЫЙ скрипт один на все. Плюс, я хотел что бы тебе было ПРОСТО его использовать. Если бы я знал, что ты буш его ковырять, то сделал бы вместо этого: Neverwinter Script // ------------- Проверка на уникальный предмет одетый ----------------- // находим одетое на игроке и определяем это object oItemNesk = GetItemInSlot(INVENTORY_SLOT_NECK, oPC); object oItemRingR = GetItemInSlot(INVENTORY_SLOT_RIGHTRING, oPC); object oItemRingL = GetItemInSlot(INVENTORY_SLOT_LEFTRING, oPC); // Смотрим свойства триггера и ищем, помечен ли таг нужной вещи string sNesk = GetLocalString(oSelf, "INVENTORY_SLOT_NECK"); // Амулет string sItemRingR = GetLocalString(oSelf, "INVENTORY_SLOT_RIGHTRING"); // Кольцо string sItemRingL = GetLocalString(oSelf, "INVENTORY_SLOT_LEFTRING"); // Кольцо // Если у нас помечено, что таг амулета не пустой if (sNesk != "") { // таг надетого амулета не сходятся или он вообще не надет то возврат скрипта if (GetTag(oItemNesk)!= sNesk || oItemNesk == OBJECT_INVALID) { SendMessageToPC(oPC, "<cу >У ВАС ОТСУТСВУЕТ НУЖНЫЙ ПРЕДМЕТ</c>"); if (GetIsObjectValid(oHench)) // Хеньчман нас предупреждает, что тут что-то есть { if(!GetLocalInt(oSelf, "HENCHMAN_SPEAK")) { SetLocalInt(oSelf, "HENCHMAN_SPEAK", TRUE); DelayCommand(0.2, AssignCommand(oHench, PlayVoiceChat(VOICE_CHAT_SEARCH))); DelayCommand(0.21, AssignCommand(oHench, SpeakString(sHench1))); } } return; } } if (sItemRingR != "") { if (GetTag(oItemRingR)!= sItemRingR || oItemRingR == OBJECT_INVALID) { SendMessageToPC(oPC, "<cу >У ВАС ОТСУТСВУЕТ НУЖНЫЙ ПРЕДМЕТ</c>"); if (GetIsObjectValid(oHench)) // Хеньчман нас предупреждает, что тут что-то есть { if(!GetLocalInt(oSelf, "HENCHMAN_SPEAK")) { SetLocalInt(oSelf, "HENCHMAN_SPEAK", TRUE); DelayCommand(0.2, AssignCommand(oHench, PlayVoiceChat(VOICE_CHAT_SEARCH))); DelayCommand(0.21, AssignCommand(oHench, SpeakString(sHench1))); } } return; } } if (sItemRingL != "") { if (GetTag(oItemRingL)!= sItemRingL || oItemRingL == OBJECT_INVALID) { SendMessageToPC(oPC, "<cу >У ВАС ОТСУТСВУЕТ НУЖНЫЙ ПРЕДМЕТ</c>"); if (GetIsObjectValid(oHench)) // Хеньчман нас предупреждает, что тут что-то есть { if(!GetLocalInt(oSelf, "HENCHMAN_SPEAK")) { SetLocalInt(oSelf, "HENCHMAN_SPEAK", TRUE); DelayCommand(0.2, AssignCommand(oHench, PlayVoiceChat(VOICE_CHAT_SEARCH))); DelayCommand(0.21, AssignCommand(oHench, SpeakString(sHench1))); } } return; } } // ------------- Проверка на уникальный предмет одетый ----------------- ВОТ ЭТО: Neverwinter Script if GetTag(GetItemInSlot(oPC, INVENTORY_SLOT_NECK)) != "Branzuletko")
return; |
![]()
Сообщение
#3752
|
|
Level 11 ![]() Класс: Волшебник Характер: Lawful Evil Раса: Эльф NWN: Скриптинг [PW] Gem of the North ![]() |
Цитата Ясно! А 1.69 вроде еще только на стадии проверки? Или уже все, можно качать и пользоваться? Ну пока он бетой зовётся, хз, когда сделают финалку (IMG:style_emoticons/kolobok_light/smile.gif) Был слух, что десятая бета и будет финалкой, на биоварях пока выложена 9я.
|
![]()
Сообщение
#3753
|
|
Level 9 ![]() Класс: Вор Характер: Chaotic Good Раса: Эльф МАСТЕР Переводов ![]() |
Ilerien, огромное спасибо! (IMG:style_emoticons/kolobok_light/thank_you.gif)
Айв, и тебе тоже! Приятно, честное слово! Конечно, я буду ковырять! Я все скрипты ковыряю (IMG:style_emoticons/kolobok_light/smile.gif) Мне же хочется знать, как это делается! Мне просто нужна такая секретная дверь, появление которой зависело бы только от наличия амулета на слоте, и ни от чего другого. Вот и пытаюсь разобраться. Ilerien, только вот какая вещь. Вот в этой строке выдает ошибку "VARIABLE DEFINED WITHOUT TYPE" Neverwinter Script if (LineOfSightObject(oSelf, oNearestCreature) && (!bNeedDetectMode || GetActionMode(oNearestCreature, ACTION_MODE_DETECT)) && GetTag(GetItemInSlot(oPC, INVENTORY_SLOT_NECK)) == "Branzuletko") И еще. Ты говоришь - убрать хартбит с видимой двери. Если я правильно поняла, видимая - это та, которая присутствует в палитре и создается, если игрок приближается к невидимому объекту, так? То есть, видимая в игре, а не в тулсе? (IMG:style_emoticons/kolobok_light/slow.gif) Сообщение отредактировал shadowdweller - Jun 27 2008, 01:20 |
![]()
Сообщение
#3754
|
|
Level 11 ![]() Класс: Волшебник Характер: Lawful Evil Раса: Эльф NWN: Скриптинг [PW] Gem of the North ![]() |
Neverwinter Script if (LineOfSightObject(oSelf, oNearestCreature) && (!bNeedDetectMode || GetActionMode(oNearestCreature, ACTION_MODE_DETECT)) && GetTag(GetItemInSlot(oNearestCreature, INVENTORY_SLOT_NECK)) == "Branzuletko") Цитата И еще. Ты говоришь - убрать хартбит с видимой двери. Если я правильно поняла, видимая - это та, которая присутствует в палитре и создается, если игрок приближается к невидимому объекту, так? То есть, видимая в игре, а не в тулсе? Она самая (IMG:style_emoticons/kolobok_light/smile.gif) Обжект в палитре зовётся "Потайная дверь".
|
![]()
Сообщение
#3755
|
|
Level 17 ![]() Класс: Волшебник Характер: Neutral Good Раса: Человек NWN: Скриптинг [PW] Axistown SR 1.9 NWNX ![]() |
Ну пока он бетой зовётся, хз, когда сделают финалку (IMG:style_emoticons/kolobok_light/smile.gif) Был слух, что десятая бета и будет финалкой, на биоварях пока выложена 9я. Десятая бета как раз выложена. Финалкой будет 11-я, которая отличается только одним фиксом.
|
![]()
Сообщение
#3756
|
|
Level 3 ![]() Класс: Клерик Характер: Chaotic Good Раса: Эльф ![]() |
Десятая бета как раз выложена. Финалкой будет 11-я, которая отличается только одним фиксом. Спасибо! Значит, заморачиваться с попытками надеть эти плащи пока просто не стоит... И еще, безотносительно ко всему предыдущему вопрос: как сделать так, чтобы при юзании однго из нескольких юзабл прейсеблов, остальные делались бы неюзабл? Чтоб получалось, чо выбрал один раз - и все, больше не повыбираешь? (примерно как было в HotU в комнате зеркал, тока что там из инвентаря в зеркале выбирать, а тут плейсеблы) |
![]()
Сообщение
#3757
|
|
Level 9 ![]() Класс: Вор Характер: Chaotic Good Раса: Эльф МАСТЕР Переводов ![]() |
Neverwinter Script if (LineOfSightObject(oSelf, oNearestCreature) && (!bNeedDetectMode || GetActionMode(oNearestCreature, ACTION_MODE_DETECT)) && GetTag(GetItemInSlot(oNearestCreature, INVENTORY_SLOT_NECK)) == "Branzuletko") 27.06.2008 13:28:35: Error. 'il_scdoor_hb_1' did not compile. il_scdoor_hb_1.nss(59): ERROR: DECLARATION DOES NOT MATCH PARAMETERS (IMG:style_emoticons/kolobok_light/cray.gif) |
![]()
Сообщение
#3758
|
|
Level 11 ![]() Класс: Волшебник Характер: Lawful Evil Раса: Эльф NWN: Скриптинг [PW] Gem of the North ![]() |
Цитата Десятая бета как раз выложена. Финалкой будет 11-я, которая отличается только одним фиксом Я отстал от жизни (IMG:style_emoticons/kolobok_light/sad.gif) Цитата ERROR: DECLARATION DOES NOT MATCH PARAMETERS Neverwinter Script GetItemInSlot(INVENTORY_SLOT_NECK, oNearestCreature) Н-да, ну не помню я порядок аргументов (IMG:style_emoticons/kolobok_light/blush.gif) А смотреть хелп в тулсе было влом (IMG:style_emoticons/kolobok_light/snoozer_17.gif)
|
![]()
Сообщение
#3759
|
|
Миловидный Бегрюссунг ![]() Класс: Воин Характер: Chaotic Good Раса: Человек NWN: Модмейкер Проклятие Левора Порядок Времени ![]() |
shadowdweller, скриптинг для шардов совсем другой. Не парь мозги, поставь так и будет работать:
Neverwinter Script if (LineOfSightObject(oSelf, GetFirstPC()) && (!bNeedDetectMode || GetActionMode(GetFirstPC(), ACTION_MODE_DETECT)) && GetTag(GetItemInSlot(GetFirstPC(), INVENTORY_SLOT_NECK)) == "Branzuletko")
|
![]()
Сообщение
#3760
|
|
Level 9 ![]() Класс: Друид Характер: True Neutral Раса: Эльф NWN: Скриптинг [PW] Амен ![]() |
Lirulin, на тех зеркалах, если не ошибаюсь, случайным образом накладывались различные эффекты. Чтобы зеркало считалось уже использованным, на него можно повесить "флаг" (переменную), которая не позволит сработать висящему на событии объекта OnUsed скрипту. Если объекты сделаны по маске (pl_mirror_01, pl_mirror_02, pl_mirror_03, pl_mirror_04 ...), то все остальные объекты можно сделать неиспользуемыми с помощью цикла, который прогонит данные объекты через себя и поставит на каждый флажок, запрещающий запускаться скрипту.
shadowdweller, только наоборот: Neverwinter Script GetTag(GetItemInSlot(INVENTORY_SLOT_NECK, GetFirstPC()))
|
![]() ![]() |
Текстовая версия | Сейчас: 3rd August 2025 - 22:39 |