Скрипты: Просьбы о написании, Все просьбы по написанию скриптов |
Здравствуйте, гость ( Вход | Регистрация )
Скрипты: Просьбы о написании, Все просьбы по написанию скриптов |
Apr 2 2006, 18:46
Сообщение
#1
|
|
Миловидный Бегрюссунг Класс: Воин Характер: Chaotic Good Раса: Человек NWN: Модмейкер Проклятие Левора Порядок Времени |
Если вам нужен скрипт, который вы не наши на форуме и не в состоянии написать сами, то тут можете попросить других форумчан о помощи. Таким образом в теме только запрос и скрипт под него, ничего более. Если вам нужно оптимизировать скрипт или понять, почему он плохо работает, то вам сюда.
___ База скриптов (NWN) Скрипты для новичков (NWN) Вопросы по скриптам (NWN) Построение скриптовых сцен (NWN) Вопросы по скриптам (NWN2) Так как скриптинг не сильно изменился, то большая часть вещей, написаная под НВН1 нормально работает и в НВН2. Посмотрите в этих темах, вполне возможно вы найдете интересующую вас информацию. |
Sep 22 2007, 14:11
Сообщение
#2
|
|
Level 9 Класс: Обыватель Характер: Lawful Good Раса: Человек NWN: Модмейкер Рыцарская Сага |
Цитата Пробую написать скрипт на дверь, которая должна открываться при проверке на две переменные. В 13 строке (это вторая снизу фигурная скобка) выдает ERROR: INCORRECT VARIABLE STATE LEFT ON STACK. Не подскажут ли мне, где ошибка? shadowdweller, если используете int StartingConditional(), то нужно обязательно использовать return… (поэтому скрипт и не компилится) Второе, после проверки условия, если нужно выполнить несколько операций, то нужно записать все действия в скобочках. Иначе выполнится только одна нижняя строка под проверкой… Neverwinter Script Source if((GetLocalInt(oPC, "ПЕРЕМЕННАЯ_1") == 1) & (GetLocalInt(oPC, "ПЕРЕМЕННАЯ_2") == 1)) object oDr1 = GetObjectByTag("DOOR_KEP_ENT"); Проверку на ГГ делать не надо, ведь на нем должно висеть две локалки – этого более чем достаточно… (IMG:style_emoticons/kolobok_light/biggrin.gif) Ваш скрипт можно записать примерно так: Neverwinter Script Source int StartingConditional()
{ object oPC = GetPCSpeaker(); object oDr1 = GetObjectByTag("DOOR_KEP_ENT"); if(GetLocalInt(oPC, "ПЕРЕМЕННАЯ_1") == 1 & GetLocalInt(oPC, "ПЕРЕМЕННАЯ_2") == 1) { SetLocked(oDr1,FALSE); AssignCommand(oDr1, ActionOpenDoor(oDr1)); SpeakString("Проходите!"); return TRUE; } else {SpeakString("Вы не можете пройти!"); return FALSE;} } |
Текстовая версия | Сейчас: 27th September 2024 - 05:59 |