![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
![]() |
![]()
Сообщение
#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 |
![]()
Сообщение
#3611
|
|
Level 2 ![]() Класс: Убийца Характер: Neutral Evil Раса: Нежить ![]() |
Да вроде нет) ошибки быть не должно все таки я копирую ресреф (ctrl + c) а не пишу его)
(IMG:http://i037.radikal.ru/1307/8e/9aeebe03b6f2.jpg) |
![]()
Сообщение
#3612
|
|
Level 11 ![]() Класс: Волшебник Характер: Neutral Good Раса: Фея NWN: Скриптинг [PW] Край Лесов ![]() |
Neverwinter Script CreateItemOnObject("item", oPC, 1); CreateItemOnObject("item001", oPC, 1); CreateItemOnObject("item002", oPC, 1); CreateItemOnObject("item003", oPC, 1); CreateItemOnObject("item004", oPC, 99); попробуй убрать цифры |
![]()
Сообщение
#3613
|
|
Level 2 ![]() Класс: Убийца Характер: Neutral Evil Раса: Нежить ![]() |
Neverwinter Script object oPC = GetEnteringObject(); CreateItemOnObject("item",oPC); CreateItemOnObject("item001",oPC); CreateItemOnObject("item002",oPC); CreateItemOnObject("item003",oPC); CreateItemOnObject("item004",oPC); нее увы не помогло) блин чтож это за ошибка такая хитрая попалась) вечно у меня все через ж**у блин... |
![]()
Сообщение
#3614
|
|
Level 11 ![]() Класс: Волшебник Характер: Neutral Good Раса: Фея NWN: Скриптинг [PW] Край Лесов ![]() |
Это у вас тулсет кривой значит.
Вот что пишет лексикон: Neverwinter Script object CreateItemOnObject( string sItemTemplate, object oTarget = OBJECT_SELF, int nStackSize = 1, string sNewTag = "" ); Parameters sItemTemplate The blueprint ResRef string of the item to be created or tag. oTarget The inventory where you want the item created. (Default: OBJECT_SELF) nStackSize The number of items to be created. (Default: 1) sNewTag Sets the tag. If this string is empty (""), it be set to the default tag from the template. (Default: "") Description This function creates an item with the template sItemTemplate in oTarget's inventory. If you are creating a custom item, sItemTemplate is the ResRef; if you are creating a standard item, sItemTemplate is the item's tag. Returns the object that has been created. On error, this returns OBJECT_INVALID. CreateItemOnObject will work on item containers. Additional notes added for clarification in 1.64 include: If the item created was merged into an existing stack of similar items, the function will return the merged stack object. If the merged stack overflowed, the function will return the overflowed stack that was created. Remarks The parameter nStackSize only applies to stackable items (eg. potions). If sItemTemplate refers to a non-stackable item (eg. armor) only 1 item will be created. CreateItemOnObject has interesting behaviour when called to create a stackable item. If the oTarget of the command has a stack already existing, the items created will be added to the existing stack, in which case two things can happen: 1. A new stack has to be created to hold some overflow. CreateItemOnObject returns a valid object, the overflowed stack of items (so, not the completly filled up stack) 2. The old stack object does not overflow past 99. No new stack object is created. CreateItemOnObject returns a value thats not equal to OBJECT_INVALID, but, if tested with GetIsObjectValid() will return FALSE. Known Bugs This bug will most likely be fixed in version 1.62, and thus only apply to 1.61 and possibly earlier versions as well: Returns OBJECT_INVALID when the created object is added to an existing stack. Сообщение отредактировал Melisse - Jul 20 2013, 22:40 |
![]()
Сообщение
#3615
|
|
Level 2 ![]() Класс: Убийца Характер: Neutral Evil Раса: Нежить ![]() |
Теперь я тоже так думаю) чтож спасибо всем большое кто мне помогал) попробую переустановить нвн на какую нибудь другую версию. Надеюсь поможет... (IMG:style_emoticons/kolobok_light/sorry.gif)
Да я щас на настольном пк работаю тут версия 1.69 стоит Сообщение отредактировал arcmag - Jul 20 2013, 20:35 |
![]()
Сообщение
#3616
|
|
Level 2 ![]() Класс: Убийца Характер: Neutral Evil Раса: Нежить ![]() |
Установил другой нвн все заработало. Огромное спасибо Melisse за ссылку с функциями теперь разбираться стало реально проще и быстрее. (IMG:style_emoticons/kolobok_light/i-m_so_happy.gif)
|
![]()
Сообщение
#3617
|
|
Level 11 ![]() Класс: Волшебник Характер: Neutral Good Раса: Фея NWN: Скриптинг [PW] Край Лесов ![]() |
Цитата Установил другой нвн все заработало. Огромное спасибо Melisse за ссылку с функциями теперь разбираться стало реально проще и быстрее. Там далеко не все, остальное придется по лексикону разбирать. Копипасте в переводчик и будет тоже самое почти |
![]()
Сообщение
#3618
|
|
Level 6 ![]() ![]() Класс: Друид Характер: Chaotic Neutral Раса: Гном ![]() |
Нет, совсем не так. При 0 всегда будет FALSE, а от -2,147,483,648 до 2,147,483,647, кроме 0 всегда TRUE иначе говоря FALSE это всегда 0, а TRUE любое кроме 0 Так вопрос-то был значение переменной (...) может быть только в двух значениях (...) так получается? И ответ на него 2. Нет. а не 2. Да Значений куча, просто в некоторых частных случаях (условный оператор) некоторые из значений (не нулевые) интерпретируются одинаково. Если же кто-то захочет хранить в переменной целое число и использовать его как число, а не признак истинности, то он сможет это сделать. Сообщение отредактировал Anakondar - Jul 21 2013, 09:56 |
![]()
Сообщение
#3619
|
|
Level 11 ![]() Класс: Волшебник Характер: Neutral Good Раса: Фея NWN: Скриптинг [PW] Край Лесов ![]() |
Anakondar
ок, я не так поняла вопрос Сообщение отредактировал Melisse - Jul 21 2013, 11:38 |
![]()
Сообщение
#3620
|
|
Level 1 Класс: Паладин Характер: Neutral Good Раса: Полуэльф ![]() |
Добрый день. Я создаю модуль для будущего Шарда (Да, да. Имя нам - легион) и столкнулся с небольшой проблемой. Не подскажете ли скрипт для автоматического закрытия и запирания дверей через определнное время (15 секунд). Это необходимо для реализации системы частной собственности для игроков. Заранее спасибо. (IMG:style_emoticons/kolobok_light/i-m_so_happy.gif)
|
![]()
Сообщение
#3621
|
|
Level 9 ![]() Класс: Обыватель Характер: Lawful Good Раса: Человек NWN: Модмейкер Рыцарская Сага ![]() |
Neverwinter Script // ЗАКРЫТЬ ДВЕРЬ И ЗАМОК Слот OnOpen
void main() { object oDoor = OBJECT_SELF; DelayCommand(15.0, ActionCloseDoor(oDoor)); SetLocked(oDoor, TRUE); } Сообщение отредактировал gennady - Jul 25 2013, 10:16 |
![]()
Сообщение
#3622
|
|
Level 1 Класс: Паладин Характер: Neutral Good Раса: Полуэльф ![]() |
Спасибо большое. Вместо oDoor вставить теги двери?
// ЗАКРЫТЬ ДВЕРЬ И ЗАМОК Слот OnOpen void main() { object oDoor = OBJECT_SELF; DelayCommand(15.0, ActionCloseDoor(OBJECT_SELF)); SetLocked(oDoor, TRUE); } |
![]()
Сообщение
#3623
|
|
Level 9 ![]() Класс: Обыватель Характер: Lawful Good Раса: Человек NWN: Модмейкер Рыцарская Сага ![]() |
Нет, этот скрипт поставить в слот OnOpen двери. Всё! (IMG:style_emoticons/kolobok_light/smile.gif)
|
![]()
Сообщение
#3624
|
|
Level 1 Класс: Паладин Характер: Neutral Good Раса: Полуэльф ![]() |
И еще раз огромное спасибо (IMG:style_emoticons/kolobok_light/i-m_so_happy.gif) Очень выручили.
|
![]()
Сообщение
#3625
|
|
Level 1 Класс: Паладин Характер: Neutral Good Раса: Полуэльф ![]() |
Друзья, никто не подскажет скрипт для крафтинга через диалог?
Что-то вроде: Изготовить "предмет" (требует X ресурса, X навыка изготовления брони). Во время проверки навыка имеется X% шанс успеха, в случае провала ингридиенты уничтожаются, но игрок предмет уже не получает. Меня интересует крафт с проверкой навыков на изготовление брони (Craft Armor), оружия (Craft Weapon), ловушек (Craft trap), зелий (Brew potion) , поясов целителя (Heal), волшебных палочек (Craft wand), свитков (Scribe scroll), отмычек (Open lock), Книг (Lore). Заранее спасибо (IMG:style_emoticons/kolobok_light/i-m_so_happy.gif) |
![]() ![]() |
Текстовая версия | Сейчас: 27th April 2025 - 16:20 |