![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
![]() |
![]()
Сообщение
#3586
|
|
Level 2 ![]() Класс: Убийца Характер: Neutral Evil Раса: Нежить ![]() |
Не знаю) у меня все равно пишет ошибку в этой строчке object oPC = GetEnteringObject();
ОШИБКА: ПОТЕРЯ АНАЛИЗАТОРА ПЕРЕМЕННОЙ ) Я даже удалил весь код оставив только Neverwinter Script void main() { object ortp = GetEnteringObject(); } все равно та же ошибка выскакивает... Что вообще значит эта ошибка, почему у меня она выскакивает вроде же написано все правильно? |
![]()
Сообщение
#3587
|
|
Level 11 ![]() Класс: Волшебник Характер: Neutral Good Раса: Фея NWN: Скриптинг [PW] Край Лесов ![]() |
Попробуй написать код с чистого скрита используя только инглишь-раскладку.
|
![]()
Сообщение
#3588
|
|
Level 2 ![]() Класс: Убийца Характер: Neutral Evil Раса: Нежить ![]() |
Создал новый скрипт писал исключительно на инглише никакого русского
Neverwinter Script void main() { object oPC2 = GetEnteringObject(); } все равно та же самая ошибка выскакивает при компиляции ОШИБКА: ПОТЕРЯ АНАЛИЗАТОРА ПЕРЕМЕННОЙ не могу понять в чем дело) что значит эта ошибка какой то анализатор переменной хз... |
![]()
Сообщение
#3589
|
|
Level 11 ![]() Класс: Волшебник Характер: Neutral Good Раса: Фея NWN: Скриптинг [PW] Край Лесов ![]() |
Ну... глюк какой-то компилятора, что я могу сказать.
У тебя русского текста нет? Может буква "я"? Она не компилит в стандартном тулсете. |
![]()
Сообщение
#3590
|
|
Level 2 ![]() Класс: Убийца Характер: Neutral Evil Раса: Нежить ![]() |
Все таки наверное проблема в редакторе) на ноутбуке выдает эту ошибку тут у меня немного другая версия нвн стоит) на настольном пк все работает отлично) жаль конечно что ошибку эту убрать нельзя...
|
![]()
Сообщение
#3591
|
|
Level 11 ![]() Класс: Волшебник Характер: Neutral Good Раса: Фея NWN: Скриптинг [PW] Край Лесов ![]() |
пропатч до 1.69 на ноутбуке
|
![]()
Сообщение
#3592
|
|
Level 2 ![]() Класс: Убийца Характер: Neutral Evil Раса: Нежить ![]() |
Тут проблема такая) на ноутбуке я нвн давно уже установил версию 1.69 здесь стоит) А вот как раз на настольном компе я патч не ставил) Быть может этот патч корявый и попался хз) может подскажите ссылку на нормальный работающий патчик и руссификатор к нему?
|
![]()
Сообщение
#3593
|
|
Level 11 ![]() Класс: Волшебник Характер: Neutral Good Раса: Фея NWN: Скриптинг [PW] Край Лесов ![]() |
|
![]()
Сообщение
#3594
|
|
Level 2 ![]() Класс: Убийца Характер: Neutral Evil Раса: Нежить ![]() |
Есть скрипт который я вешаю на триггер который срабатывает при OnEnter )
Neverwinter Script void main() { object oPC2 = GetEnteringObject(); GiveXPToCreature(oPC2,100); //******* } Подскажите как сделать чтобы еще при этом игрок еще и произносил какую нибудь фразу и чтобы событие произошло только один раз? Какие тут нужны функции? |
![]()
Сообщение
#3595
|
|
Тролль ![]() ![]() ![]() ![]() Класс: Пьяный Мастер Характер: Chaotic Neutral Раса: Тварь ![]() |
Изучай скрипт-генератор – там есть все подобные функции.
Neverwinter Script //Put this script OnEnter #include "nw_i0_tool" void main() { object oPC = GetEnteringObject(); if (!GetIsPC(oPC)) return; int DoOnce = GetLocalInt(OBJECT_SELF, GetTag(OBJECT_SELF)); if (DoOnce==TRUE) return; SetLocalInt(OBJECT_SELF, GetTag(OBJECT_SELF), TRUE); AssignCommand(oPC, ActionSpeakString("GROOVY!!!")); RewardPartyXP(100, oPC, FALSE); } Вот что он выдаст например по твоему запросу. P.S.: if (!GetIsPC(oPC)) return; - эта проверка фильтрует объекты запускающие скрипт таким образом, что срабатывать он будет только на игрока; int DoOnce = GetLocalInt(OBJECT_SELF, GetTag(OBJECT_SELF)); - тут мы прописываем локальную переменную "ДелайРаз" на объект на котором и стоит этот скрипт, называться эта переменная будет по тагу этого оъекта; if (DoOnce==TRUE) return; - эта проверка и выясняет значение этой переменной, и если оно TRUE (то есть событие уже произошло 1 раз), то скрипт не запустится дальше; SetLocalInt(OBJECT_SELF, GetTag(OBJECT_SELF), TRUE); - строчка следующая сразу же за ней устанавливает эту переменную на TRUE (по умолчанию всегда стоит FALSE т.е. "0", и если скрипт выполняется первый раз - тут мы это и отмечаем); AssignCommand(oPC, ActionSpeakString("GROOVY!!!")); - эта строчка заставляет игрока запустившего скрипт произнести "GROOVY!!!" при его срабатывании; RewardPartyXP(100, oPC, FALSE); - это нестандартный вариант раздачи опыта который использовал скрипт-генератор - для его работы необходим "инклюд" который указан в скрипте перед его началом (#include "nw_i0_tool"). Сообщение отредактировал Flaristan - Jul 18 2013, 06:42 |
![]()
Сообщение
#3596
|
|
Level 2 ![]() Класс: Убийца Характер: Neutral Evil Раса: Нежить ![]() |
Спасибо за помощь) у меня несколько вопросов по поводу функций :
1) Что означает параметр OBJECT_SELF ? 2) GetLocalInt как бы просто считывает значение переменной объекта которая может быть только в двух значениях TRUE и FALSE а SetLocalInt наоборот устанавливает это значение) так получается? 3) В чем различия между функциями ActionSpeakString и SpeakString? Насчет скрипто-геренератора) скачал посмотрел) в принципе штука интересная вот только боюсь с моим английским троишным мне придется оч долго там разбираться и постоянно лазить в переводчик, быть может есть руссификатор к нему? |
![]()
Сообщение
#3597
|
|
Level 11 ![]() Класс: Волшебник Характер: Neutral Good Раса: Фея NWN: Скриптинг [PW] Край Лесов ![]() |
1. OBJECT_SELF - это объект который запускает скрипт
2. Да 3. Разница в том что ActionSpeakString добавляется в стэк действий и может сработать не сразу, а SpeakString заставляет говорить сразу же |
![]()
Сообщение
#3598
|
|
Level 6 ![]() ![]() Класс: Друид Характер: Chaotic Neutral Раса: Гном ![]() |
|
![]()
Сообщение
#3599
|
|
Level 11 ![]() Класс: Волшебник Характер: Neutral Good Раса: Фея NWN: Скриптинг [PW] Край Лесов ![]() |
Цитата 2. Нет. Любое целое число, не только тру или фолс. Нет, совсем не так. При 0 всегда будет FALSE, а от -2,147,483,648 до 2,147,483,647, кроме 0 всегда TRUE иначе говоря FALSE это всегда 0, а TRUE любое кроме 0 Сообщение отредактировал Melisse - Jul 18 2013, 19:15 |
![]()
Сообщение
#3600
|
|
Миловидный Бегрюссунг ![]() Класс: Воин Характер: Chaotic Good Раса: Человек NWN: Модмейкер Проклятие Левора Порядок Времени ![]() |
arcmag, почитай мануал по авроре и тут темы для новичков по скриптингу. Там разжевано все про актионы, стек и прочее.
|
![]()
Сообщение
#3601
|
|
Тролль ![]() ![]() ![]() ![]() Класс: Пьяный Мастер Характер: Chaotic Neutral Раса: Тварь ![]() |
Насчет скрипто-геренератора) скачал посмотрел) в принципе штука интересная вот только боюсь с моим английским троишным мне придется оч долго там разбираться и постоянно лазить в переводчик, быть может есть руссификатор к нему? Русификаторов ее, насколько мне известно - нет и вряд ли появятся в виду нижеследующего.Если ты собираешься заниматься скриптами, тебе в любом случае придется лазить в переводчик или как минимум запоминать, что то или иное слово в скриптах означает. А в скриптах как правило все команды означают то, что они делают. Кроме того в скрипт генераторе нечего особо переводить кроме окон с подсказками которые можно и игнорировать попросту, если ты не собираешься изучать все тонкости досконально. Все термины которые там используются взяты из того же тулсета и тебе их так же в любом случае придется запоминать, если ты собираешься с ним много работать. В любом случае, если даже не учитывать вышеописанного – эта программа стоит возни с ней и переводчиком ради результата который она может дать. Лично я по ней научился скриптить до того уровня который имею. (IMG:style_emoticons/kolobok_light/smile.gif) |
![]()
Сообщение
#3602
|
|
Level 2 ![]() Класс: Убийца Характер: Neutral Evil Раса: Нежить ![]() |
Ну запоминать функции так или иначе все равно придется это я понимаю. Думаю я мог бы писать скрипты, до этого я немного изучал С++ и в принципе необходимую базу знаний имею. У меня проблема именно в том что я знаю пока что слишком мало функций и если допустим такие функции как ActionAttack , GiveGoldToCreature и еще некоторые можно разобрать хотя бы по названию этих функций начать атаку или дать золота, то всякие функции вроде GetAppearanceType или ItemPropertyLight понять труднее.
На данный момент прогресс в изучении уже есть, но пока что этого все еще не достаточно. Конечно у вас на форуме есть много интересной информации, но она не всегда достаточно доступно объяснена (хотя кое что полезное я все таки иногда нахожу, например смог разобраться как уничтожить вещи в рюкзаке игрока) и не всегда удается найти именно то что нужно мне на данный момент. Допустим я ищу такую функцию отнимала бы уровни у игрока. Вот есть условие - если (игрок выше 1лв) //допустим 12 функция возвращает его лвл с 12-го на 1-й при этом стирая все полученные умения и характеристики возвращая к базовому значению. здесь я такого пока не нашел, хотя пока что еще не все просмотрел) быть может найду еще. Со скрипто-генератором конечно понятно что там особо переводить то нечего) главное как я понял правильно указать условие требуемого скрипта, но все таки будь он на русском задача была бы значительно проще. Скорее всего придется тупо на бумажке писать пометки что бы ориентироваться в нем. Как нибудь займусь этим.
Причины изменения: Убрал жирный текст.
|
![]()
Сообщение
#3603
|
|
Level 11 ![]() Класс: Волшебник Характер: Neutral Good Раса: Фея NWN: Скриптинг [PW] Край Лесов ![]() |
Neverwinter Script void SetXP( object oCreature, int nXpAmount); Когда уровень снимается автоматом все удаляется: умения, бонусы абилок и навыки т.е. вам нужно поставить опыт = 1, для первого уровня. Вроде только для игрока юзается. Для НПС надо юзать Neverwinter Script LevelUpHenchman (object oCreature, int nClass = CLASS_TYPE_INVALID, int bReadyAllSpells = FALSE, int nPackage = PACKAGE_INVALID); Описание всех функций на инглише есть в Lexicon 1.69. Для мало-мальски малого понимания скриптов придется посидеть пару месяцев разбирая их, если не было раньше опыта. Для меня самым сложным оказалось Struct (структуры), я с трудом уяснила что это и как пользоваться. У каждого свое. GetAppearanceType используется для смены "шкурки"/"модели" существ, типы берутся из appearance.2da соответственно номеру, т.е. выставите 41 и будет шкурка черного дракона на модели, а свойства/абилки/навыки и умения не поменяются. ItemProperty это свойства различные предметов, типа +1 бонус зачарования или свет желтый 10 футов и т.д. Вообщем почитайте тут и тут для просто ознакомления, но там не все Сообщение отредактировал Melisse - Jul 19 2013, 19:39 |
![]()
Сообщение
#3604
|
|
Тролль ![]() ![]() ![]() ![]() Класс: Пьяный Мастер Характер: Chaotic Neutral Раса: Тварь ![]() |
Ну запоминать функции так или иначе все равно придется это я понимаю. Думаю я мог бы писать скрипты, до этого я немного изучал С++ и в принципе необходимую базу знаний имею. У меня проблема именно в том что я знаю пока что слишком мало функций и если допустим такие функции как ActionAttack , GiveGoldToCreature и еще некоторые можно разобрать хотя бы по названию этих функций начать атаку или дать золота, то всякие функции вроде GetAppearanceType или ItemPropertyLight понять труднее. Для того чтобы разобраться со всем функционалом тулсетовского редактора скриптов неплохо подходит лексикон – там все удобно скомпоновано, информативно и кратко расписано и часто дано с примерами + возможно использовать поиск по материалам (кстати WRG его вроде даже частично перевели).На данный момент прогресс в изучении уже есть, но пока что этого все еще не достаточно. Со скрипто-генератором конечно понятно что там особо переводить то нечего) главное как я понял правильно указать условие требуемого скрипта, но все таки будь он на русском задача была бы значительно проще. Скорее всего придется тупо на бумажке писать пометки что бы ориентироваться в нем. Как нибудь займусь этим. Так же не лишним бывает такое упражнение, как пересмотр всего списка функций редактора вручную с прочтением подписей непосредственно в редакторе. Однако как для первого, так и для второго показано знание английского. Так что в любом случае советую лучше учить его – знание в жизни не из ряда бесполезных. В генераторе среди наложения прочих эффектов доступен стандартный «Negative Level» (проклятие понижения уровня) – если поставить при генерировании галочку «Supernatural», то эффект будет недиспелящимся и не проходящим с отдыхом (так что убрать его можно будет только через аналогичный скрипт обратного толка). Если задача забрать у игрока опыт размером в уровень перманентно, то, даже не зная скриптов, и это возможно с помощью генератора скриптов, но будет долго и нудно. Нужно составить список условий «if» указывая в них каждый возможный в игре уровень персонажа и в зависимости от него отнимать опыт размером с уровень-тысяч. Ну например если уровень игрока = 10, то отнять у него 10 000 опыта; если уровень = 9, то отнять 9 000 опыта и т.д.. Чтоб снять все уровни, там же можно просто проставить максимум в команде отнятия опыта. Грубо конечно за неимением умений писать более функционально, но будет работать и на одном знании генератора. Сообщение отредактировал Flaristan - Jul 19 2013, 20:28 |
![]()
Сообщение
#3605
|
|
Level 2 ![]() Класс: Убийца Характер: Neutral Evil Раса: Нежить ![]() |
Опять вопрос) В чем проблема в этом скрипте:
Neverwinter Script object oPC = GetEnteringObject(); CreateItemOnObject("item", oPC, 1); // Дать броню CreateItemOnObject("item001", oPC, 1); // Дать меч CreateItemOnObject("item002", oPC, 1); // Дать лук CreateItemOnObject("item003", oPC, 1); // Дать Ботинки CreateItemOnObject("item004", oPC, 99); // Дать стрелы по идеи он должен выдавать вещи) компилируется все нормально но вот при выполнении почему то выдается только первый предмет) если первым поставить item то даст бронь, если item003 ботинки. А остальные вещи не выдаются зато в чате вылазит желтый текст ошибки - ОШИБКА : ОПУСТОШЕНИЕ СТЕКА. Не могу понять вроде бы все правильно написано. |
![]()
Сообщение
#3606
|
|
Миловидный Бегрюссунг ![]() Класс: Воин Характер: Chaotic Good Раса: Человек NWN: Модмейкер Проклятие Левора Порядок Времени ![]() |
А нафика жирным весь текст сообщений? Типа выделить, что бы увидили? Тут не секс чат, пиши нормально.
|
![]()
Сообщение
#3607
|
|
Level 2 ![]() Класс: Убийца Характер: Neutral Evil Раса: Нежить ![]() |
Жирный издалека видно (IMG:style_emoticons/kolobok_light/rolleyes.gif) ) просто по привычке как то уже и внимание на это особо не обращаю обычно на форумах так пишу, уж и забыл почему так начал хех (IMG:style_emoticons/kolobok_light/scratch_one-s_head.gif) ...
|
![]()
Сообщение
#3608
|
|
Тролль ![]() ![]() ![]() ![]() Класс: Пьяный Мастер Характер: Chaotic Neutral Раса: Тварь ![]() |
Опять вопрос) В чем проблема в этом скрипте: Ошибка как водится там, где она может быть. В таком элементарном скрипте – это одно единственное место: резрефы. (IMG:style_emoticons/kolobok_light/smile.gif) Neverwinter Script object oPC = GetEnteringObject(); CreateItemOnObject("item", oPC, 1); // Дать броню CreateItemOnObject("item001", oPC, 1); // Дать меч CreateItemOnObject("item002", oPC, 1); // Дать лук CreateItemOnObject("item003", oPC, 1); // Дать Ботинки CreateItemOnObject("item004", oPC, 99); // Дать стрелы по идеи он должен выдавать вещи) компилируется все нормально но вот при выполнении почему то выдается только первый предмет) если первым поставить item то даст бронь, если item003 ботинки. А остальные вещи не выдаются зато в чате вылазит желтый текст ошибки - ОШИБКА : ОПУСТОШЕНИЕ СТЕКА. Не могу понять вроде бы все правильно написано. Когда искал в тулсете, почему так – обнаружил (или вспомнил) одну довольно странную особенность Авроры: через палитру невозможно открыть свойства объектов, чтоб посмотреть их таги или резрефы; вместо этого доступен вариант «редактировать и копировать», и если в кастомной палитре можно использовать вариант просто «редактировать», то в дефолтной такого варианта нет; таким образом, когда вы пытаетесь посмотреть резреф дефолтного объекта через палитру – вы видите не резреф объекта, а предлагаемый тулсетом новый сгенерированный резреф для его копии, и, разумеется, он будет не валидным (пока вы не создадите эту копию с предлагаемым резрефом в кастомной палитре). Лечится так - когда смотришь резреф объекта из дефолтной палитры: - размести его в модуле; - через свойства объекта посмотри его резреф; - обратно удали. |
![]()
Сообщение
#3609
|
|
Level 2 ![]() Класс: Убийца Характер: Neutral Evil Раса: Нежить ![]() |
Цитата Ошибка как водится там, где она может быть. В таком элементарном скрипте – это одно единственное место: резрефы. smile.gif Когда искал в тулсете, почему так – обнаружил (или вспомнил) одну довольно странную особенность Авроры: через палитру невозможно открыть свойства объектов, чтоб посмотреть их таги или резрефы; вместо этого доступен вариант «редактировать и копировать», и если в кастомной палитре можно использовать вариант просто «редактировать», то в дефолтной такого варианта нет; таким образом, когда вы пытаетесь посмотреть резреф дефолтного объекта через палитру – вы видите не резреф объекта, а предлагаемый тулсетом новый сгенерированный резреф для его копии, и, разумеется, он будет не валидным (пока вы не создадите эту копию с предлагаемым резрефом в кастомной палитре). Лечится так - когда смотришь резреф объекта из дефолтной палитры: - размести его в модуле; - через свойства объекта посмотри его резреф; - обратно удали. Но я использую свои собственные объекты из "кастомной палитры" а не из стандартной) эти объекты я создал сам) нажав на свой объект Edit я вижу его РесРеф после чего вписываю его в функцию) что не так? Я даже потом попробовал создать копию своего объекта и самостоятельно назначить свой РесРеф) все поставил, ошибка так и осталась 1 предмет выдает остальные игнорит... |
![]()
Сообщение
#3610
|
|
Тролль ![]() ![]() ![]() ![]() Класс: Пьяный Мастер Характер: Chaotic Neutral Раса: Тварь ![]() |
Neverwinter Script void main() В таком виде скрипт никаких ошибок не содержит. Проверил только что в своем тулсете, создав на резрефы от 1 до 4 по предмету снаряжения, на 5 - стрелы.{ object oPC = GetEnteringObject(); CreateItemOnObject("item", oPC, 1); CreateItemOnObject("item001", oPC, 1); CreateItemOnObject("item002", oPC, 1); CreateItemOnObject("item003", oPC, 1); CreateItemOnObject("item004", oPC, 99); } Значит проблема либо: 1) не в скрипте; 2) резрефы все же указаны не верно - проверьте еще раз. P.S.: На всякий случай: резреф - это вот это. (IMG:http://cs424324.vk.me/v424324778/17ee/vjkWvDLbTJM.jpg) Редактировать его можно только при создании нового "чертежа" в палитру. Сообщение отредактировал Flaristan - Jul 20 2013, 19:47 |
![]() ![]() |
Текстовая версия | Сейчас: 4th May 2025 - 18:44 |