![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
![]() |
![]()
Сообщение
#1
|
|
Миловидный Бегрюссунг ![]() Класс: Воин Характер: Chaotic Good Раса: Человек NWN: Модмейкер Проклятие Левора Порядок Времени ![]() |
Шаблон хеньчмана для HotU. Диалог по умолчанию для женского персовнажа. Создаете при помощи Creature Wizard-а НПС. В разделе Classes установите пакеты "Default Package for Autolevelup". Никакие экстра пакеты: Вор-Варвар-Монах и т.д. Не будут работать. Для правильной работы скриптов с мультиклассами необходимо править инклюды Биовар. Если будет необходимость разберем позже.
Фразы Pop-Ups #1 - Триггер в палитре: [XP2 One-Liner, Non-Random] Фразы Random Pop-Ups #1 - Триггер в палитре: [XP2 One-Liner, Random] Строки Interjection Conversations #1 - Триггер в палитре: [XP2 Interjection, Non-Random] Строки Interjection Random Conversations #1 - Триггер в палитре: [XP2 Interjection, Random] На триггерах XP2 Interjection, Non-Random и XP2 One-Liner, Non-Random в поле Advensed нужно указать номер строки в поле KeyTag. Открываем скрипт am_ch_hen_spawn и редактируем свойства вашего помощника: Таг, и количество рандомных фраз и строк. NSS //======================== Add By Aiwan / WRG! Team / ========================== // * Установка случайных строк и фраз if (sMyTag == "AM_HENCHMAN_001") // Таг нашего помощника { // Количество рандомных фраз Random Pop-Ups #1 SetNumberOfRandom("X2_L_RANDOMONELINERS", OBJECT_SELF, 5); // Количество рандомных диалогов Interjection Random Conversations #1 SetNumberOfRandom("X2_L_RANDOM_INTERJECTIONS", OBJECT_SELF, 5); } else if (sMyTag == "AM_HENCHMAN_002") // Таг нашего помощника { // Количество рандомных фраз Random Pop-Ups #1 SetNumberOfRandom("X2_L_RANDOMONELINERS", OBJECT_SELF, 10); // Количество рандомных диалогов Interjection Random Conversations #1 SetNumberOfRandom("X2_L_RANDOM_INTERJECTIONS", OBJECT_SELF, 10); } //=========================== End Aiwan Edition ============================== В слоте OnPlayerLevelUp модуля, в скрипте добавьте такую инклюду и строку: NSS #include "x0_i0_henchman" //------------------------------------------------------- LevelUpXP1Henchman(oPC); // Поднимаем уровень помощнику //------------------------------------------------------- Теперь при поднятии уровня РС и помощник будет поднимать себе уровень. Сообщение отредактировал Aiwan - Apr 2 2006, 07:17
Прикрепленные файлы
|
![]()
Сообщение
#2
|
|
Level 7 ![]() ![]() Класс: Маг Характер: True Neutral Раса: Эльф NWN: Скриптинг [Sn] ![]() |
(IMG:style_emoticons/kolobok_light/blush.gif) предлагаю вот такой скрипт на OnPlayerLevelUp модуля для мультиклассовых персонажей.
NSS int DoLevelUpHenchmen(object oHench, int nLevel)
{//Переменную ClassToUp я устанавливала, чтобы в диалоге //можно было указать, какой класс развивать. //Это для мультиклассовых персонажей //1 - 1 класс //2 - 2 класс //3 - оба //Если уровень поднимается не во время боя, то хенчу //все заклинания даем готовыми к употреблению. int bSpells = !GetIsInCombat(oHench); //Смотрим 1-й класс хенча int nClass1 = GetClassByPosition(1, oHench); //Смотрим 2-й класс хенча int nClass2 = GetClassByPosition(2, oHench); //Смотрим какой из классов прокачиваем int nUpClass = GetLocalInt(oHench, "ClassToUp"); int nUpTo = nLevel - GetHitDice(oHench); if(nUpTo < 1) return FALSE; int iUps = 0; if(nUpClass == 1 || nClass2 != CLASS_TYPE_INVALID) do{ if(LevelUpHenchman(oHench, nClass1, bSpells)) return FALSE; iUps++; }while(iUps < nUpTo); if(nUpClass == 2) do{ if(LevelUpHenchman(oHench, nClass2, bSpells)) return FALSE; iUps++; }while(iUps < nUpTo); if(nUpClass == 3 && nUpTo >= 2) do{ if(!LevelUpHenchman(oHench, nClass1, bSpells)) return FALSE; iUps++; if(iUps < nUpTo) if(!LevelUpHenchman(oHench, nClass2, bSpells)) return FALSE; iUps++; }while(iUps < nUpTo); return TRUE; } void main() { object oPC = GetPCLevellingUp(); int i = 0; object oHenchman; for(i = 1; i <= GetMaxHenchmen(); i++) { oHenchman = GetAssociate(ASSOCIATE_TYPE_HENCHMAN, oPC, i); if(GetIsObjectValid(oHenchman)) if(!DoLevelUpHenchmen(oHenchman, GetHitDice(oPC))) SendMessageToPC(oPC, "Ошибка поднятия уровня " + GetName(oHenchman)); } } Сообщение отредактировал Aiwan - Apr 2 2006, 07:19 |
![]()
Сообщение
#3
|
|
Миловидный Бегрюссунг ![]() Класс: Воин Характер: Chaotic Good Раса: Человек NWN: Модмейкер Проклятие Левора Порядок Времени ![]() |
Если у вас несколько хеньчманов, то вам надо настроить каждую группу триггеров на каждого хеньчмана. Скрипт на вход триггеров :
Фразы Pop-Ups #1 - Триггер в палитре: [XP2 One-Liner, Non-Random] Фразы Random Pop-Ups #1 - Триггер в палитре: [XP2 One-Liner, Random] Строки Interjection Conversations #1 - Триггер в палитре: [XP2 Interjection, Non-Random] Строки Interjection Random Conversations #1 - Триггер в палитре: [XP2 Interjection, Random] Надо заменить на ваш: NSS //::////////////////////////////////////////////// //:: Name: am_ten_evt_alish //:: Copyright © 2006 WRG! Team //::////////////////////////////////////////////// /* Скрипт персональных триггеров Основан на скрипте X2_EVT_TRIGGER */ //::////////////////////////////////////////////// //:: Created By: Aiwan //:: Created On: 02.08.2006 //::////////////////////////////////////////////// #include "x0_i0_common" #include "x2_inc_banter" void main() { object oTrigger = GetEnteringObject(); object oHenchman = GetObjectByTag("ТАГ_ВАШЕГО_ХЕНЬЧМАНА"); if(GetMaster(oHenchman) == oTrigger) // Если тот кто наступил Мастер хеньчмана { string sTag = GetTag(OBJECT_SELF); // What kind of trigger am I? AttemptInterjectionOrPopup(OBJECT_SELF, sTag, oTrigger, 0, oHenchman); } } Ни в коем случае не меняйте таг триггеров. Это важно. |
![]()
Сообщение
#4
|
|
Level 1 Класс: Убийца Характер: Neutral Evil Раса: Человек ![]() |
Набросайте, кто-нибудь, пожалуйста скриптик, чтобы с хенчем ходило несколько нпс-можно сказать отряд.
|
![]()
Сообщение
#5
|
|
Level 6 ![]() ![]() Класс: Волшебник Характер: Chaotic Good Раса: Человек ![]() |
Уважаемые гуру, ответьте "чайнику" на глупый вопрос: как прицепиить к герою второго хеньша, как в "Хордесах"? Каким скриптом? Я экпортировал на свой "Полигон" (испытательный модуль) чуть ли не всех хордесовских хеньшей и со стандартныеми диалогами, и сам писал. Скрипт для "цепляния" на втором хеньше ни один почему-то не работает. Цепляется только первый (любой из). И всплывает надпись, что одновременно ты можешь иметь только одного помощника. Дело в модульных свойствах, да? Если так, то в каких именно? Или еще в чем?
Спасибо. |
![]()
Сообщение
#6
|
|
Level 11 ![]() Класс: Волшебник Характер: Lawful Evil Раса: Эльф NWN: Скриптинг [PW] Gem of the North ![]() |
Копай функцию SetMaxHenchmen() (IMG:style_emoticons/kolobok_light/smile.gif)
С её помощью можно задать максимальное количество хенчей у игрока. Сообщение отредактировал Ilerien - Nov 28 2008, 21:49 |
![]()
Сообщение
#7
|
|
Level 6 ![]() ![]() Класс: Волшебник Характер: Chaotic Good Раса: Человек ![]() |
Копай функцию SetMaxHenchmen() (IMG:style_emoticons/kolobok_light/smile.gif) С её помощью можно задать максимальное количество хенчей у игрока. Ilerien, спасибо! Опять ты меня выручаешь. Только, если можно, плиз, чуть подробней. Я понял, что новый скрипт писать не надо, в "Хордесах" все же одной строкой делается. Тогда что? Инклюду мучить? Вряд ли, ведь, всплывает строка "Вы можете иметь только одного помощника". При таком раскладе остается одно: "Свойства модуля". Или нет? Я попробовал в "OnClienEnter" модуля добавить "SetMaxHenchmen(oPC) == 2);" , Аврора выдает свой дежурный глупый "отмаз": нет точки с запятой в выражении. Я ей вволю и скобки рисовал, и точку эту с запятой в компании - бесполезно! Что я не то или не так (или не туда?) делаю? Кстати, Аврора также ругается и на записи типа "SetMaxHenchmen(oPC, 2)". И никакие точки с запятыми не помогают... |
![]()
Сообщение
#8
|
|
Level 9 ![]() Класс: Вор Характер: Chaotic Good Раса: Эльф МАСТЕР Переводов ![]() |
Для этого нужен скрипт, который стоит в слоте OnModuleLoad. У меня это, например "x2_mod_def_load". Нужно открыть его и добавить туда в конец строку:
Neverwinter Script SetMaxHenchmen(***); // В скобках просто указываешь то количество хенчей, которое тебе нужно Получившийся скрипт надо сохранить обязательно под другим именем и поставить в свойствах мода туда, где был старый - на OnModuleLoad. У меня работает. (IMG:style_emoticons/kolobok_light/smile.gif) |
![]()
Сообщение
#9
|
|
Level 6 ![]() ![]() Класс: Волшебник Характер: Chaotic Good Раса: Человек ![]() |
Огромное спасибо! Все сделаю, как надо (то, что портить стандартные скрипты - дурной тон, я в курсе). И правда, оказалось что писал и не так, и не то, и не туда! Не возьму в толк, причем тут "загрузка", но пути Авроры неисповедимы... И еще одно в толк не возьму; чтобы я без ГМ делал!
Спасибо! |
![]()
Сообщение
#10
|
|
Level 6 ![]() ![]() Класс: Волшебник Характер: Chaotic Good Раса: Человек ![]() |
Для этого нужен скрипт, который стоит в слоте OnModuleLoad. У меня это, например "x2_mod_def_load". Нужно открыть его и добавить туда в конец строку: Neverwinter Script SetMaxHenchmen(***); // В скобках просто указываешь то количество хенчей, которое тебе нужно Получившийся скрипт надо сохранить обязательно под другим именем и поставить в свойствах мода туда, где был старый - на OnModuleLoad. У меня работает. (IMG:style_emoticons/kolobok_light/smile.gif) Сделал все точно по инструкции. Не сработало. Почесал репу и добавил точно такую же строку (в смысле "SetMaxHenchmen(***); " в скрипт "x1_playerlevelup". Ессно, сохранил под другим именем. Все заработало. shadowdweller, у меня нет сомнений, что у тебя все работает правильно благодаря одному только "x2_mod_def_load". Просто, как я заметил, у каждой версии НВН - свои капризы. Приходится к ним приспосабливаться. Спасибо. |
![]()
Сообщение
#11
|
|
Level 5 ![]() Класс: Обыватель Характер: Lawful Neutral Раса: Человек NWN: Модмейкер Проклятие Левора Порядок Времени ![]() |
|
![]()
Сообщение
#12
|
|
Level 6 ![]() ![]() Класс: Волшебник Характер: Chaotic Good Раса: Человек ![]() |
зачем? ИХМО, а ведь получается что вроде и правда незачем! Точнее, не обязательно. Просто Аврора ругается: дескать, буду использовать переделанный ресурс вместо стандартного! А без нужды с Авророй ссориться - себе дороже. Думал, это глобально. Но тока что проверил: нет, дело касается только того модуля, где скрипт переделан. Во всех остальных стандартный ресурс тулсета остается, так сказать, в первозданном виде. Скорее всего, просто чтобы не путаться... |
![]()
Сообщение
#13
|
|
Level 6 ![]() ![]() Класс: Волшебник Характер: Chaotic Good Раса: Человек ![]() |
Уважаемые мастера, скажите, какой еще файл, кроме "rs_common" регулирует в ПЛ столь эксцентричное поведение Ви и ее реплики? Или поставлю вопрос шире: как заставить хеньша вести себя более живо? Дело в том, что я просто экспортнул Ви в свой модуль (благо, господа основоположники, кажется не имеют ничего против подобного самоуправства). Поменял тег, ресреф. Тщательно отредактировал "rs_common" переписал все теги, все реплики (русификатор "Джумбо" - виват, виват, виват!!!) Само собой, заменил все теги в письменах самой неписи. Не помогло. Нет, ловушки открывает, в бою ведет себя нормально. Но во всем остальном получился банальный дефолтный робот-кибер!
|
![]()
Сообщение
#14
|
|
Миловидный Бегрюссунг ![]() Класс: Воин Характер: Chaotic Good Раса: Человек NWN: Модмейкер Проклятие Левора Порядок Времени ![]() |
Ви слишком сложно настраивается. Мы с Лексом ее даже не брали скрипты себе. Боюсь только ДБ мог бы сказать о том КАК...
|
![]()
Сообщение
#15
|
|
Level 1 Класс: Обыватель Характер: Lawful Good Раса: Полуэльф ![]() |
Доброго дня! У меня возник вопрос по рандомным фразам хеньчмана. Изучаю модуль «Henchman_HotU.mod»
( http://www.city-of-masters.ru/forums/index...?showtopic=1761 ), скрипт am_ch_hen_spawn Вот интересующая меня часть: Neverwinter Script // * Установка случайных строк и фраз if (sMyTag == "AM_HENCHMAN_001") // Таг нашего помощника { // Количество рандомных фраз Random Pop-Ups #1 SetNumberOfRandom("X2_L_RANDOMONELINERS", OBJECT_SELF, 5); // Количество рандомных диалогов Interjection Random Conversations #1 SetNumberOfRandom("X2_L_RANDOM_INTERJECTIONS", OBJECT_SELF, 5); } Подскажите, пожалуйста, на что надо прикрепить X2_L_RANDOMONELINERS и X2_L_RANDOM_INTERJECTIONS Сообщение отредактировал Aiwan - Jan 20 2018, 07:45
Причины изменения: Я же писал, что не надо выделять текст зеленым и прочим цветным. Занеси текст в тег [nss]тут скрипт [/nss]
|
![]()
Сообщение
#16
|
|
Миловидный Бегрюссунг ![]() Класс: Воин Характер: Chaotic Good Раса: Человек NWN: Модмейкер Проклятие Левора Порядок Времени ![]() |
Я могу ошибаться, так как написанному 13-й год... Но скорее всего в свойствах триггера, есть локальные переменные, вот там и пишутся фразы. Выглядит так, местность, триггер, на нем куча разных фраз по сути местности и по сюжету, хеньч наступил, всплыла фраза.
Рандомные фразы они одинаковы для всех триггеров. Ну типа ты написала сто фраз в ПАЛИТРЕ В СВОЙСТВАХ триггера и наертила пятьдесят триггеров где хочешь что бы хеньчман болтал всякую чушь не заморачиваясь что он скажет, случайное. Вот примерно так оно должно выглядеть: (IMG:http://www.city-of-masters.ru/forums/uploads/post-5-1131968743.jpg) Естественно, это пример не этого триггера что в этой теме. Я показал что нашел тут в темах (IMG:style_emoticons/kolobok_light/pardon.gif) |
![]()
Сообщение
#17
|
|
Level 1 Класс: Обыватель Характер: Lawful Good Раса: Полуэльф ![]() |
Спасибо, ваша подсказка очень помогла.
|
![]() ![]() |
Текстовая версия | Сейчас: 26th April 2024 - 17:09 |