Город Мастеров
IPB

Здравствуйте, гость ( Вход | Регистрация )

 Правила этого форума ПРАВИЛА РАЗДЕЛА
 
Ответить в эту темуОткрыть новую тему
> Henchman HotU, Шаблон диалога + скрипты и примеры.
Aiwan
сообщение Oct 3 2005, 16:44
Сообщение #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
Прикрепленные файлы
Прикрепленный файл  Henchman_HotU.zip ( 42.69 килобайт ) Кол-во скачиваний: 79
 
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
AliceDiren
сообщение Oct 5 2005, 07:18
Сообщение #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
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Aiwan
сообщение Aug 4 2006, 07:12
Сообщение #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);
    }
}

Ни в коем случае не меняйте таг триггеров. Это важно.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Vedmak
сообщение Jun 29 2007, 21:18
Сообщение #4


Level 1


Класс: Убийца
Характер: Neutral Evil
Раса: Человек



Набросайте, кто-нибудь, пожалуйста скриптик, чтобы с хенчем ходило несколько нпс-можно сказать отряд.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Chiffa
сообщение Nov 28 2008, 13:56
Сообщение #5


Level 5
**

Класс: Волшебник
Характер: Chaotic Good
Раса: Человек



Уважаемые гуру, ответьте "чайнику" на глупый вопрос: как прицепиить к герою второго хеньша, как в "Хордесах"? Каким скриптом? Я экпортировал на свой "Полигон" (испытательный модуль) чуть ли не всех хордесовских хеньшей и со стандартныеми диалогами, и сам писал. Скрипт для "цепляния" на втором хеньше ни один почему-то не работает. Цепляется только первый (любой из). И всплывает надпись, что одновременно ты можешь иметь только одного помощника. Дело в модульных свойствах, да? Если так, то в каких именно? Или еще в чем?
Спасибо.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Ilerien
сообщение Nov 28 2008, 21:43
Сообщение #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
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Chiffa
сообщение Nov 29 2008, 15:48
Сообщение #7


Level 5
**

Класс: Волшебник
Характер: Chaotic Good
Раса: Человек



Цитата(Ilerien @ Nov 28 2008, 21:43) *
Копай функцию SetMaxHenchmen() (IMG:style_emoticons/kolobok_light/smile.gif)
С её помощью можно задать максимальное количество хенчей у игрока.

Ilerien, спасибо! Опять ты меня выручаешь. Только, если можно, плиз, чуть подробней. Я понял, что новый скрипт писать не надо, в "Хордесах" все же одной строкой делается. Тогда что? Инклюду мучить? Вряд ли, ведь, всплывает строка "Вы можете иметь только одного помощника". При таком раскладе остается одно: "Свойства модуля". Или нет? Я попробовал в "OnClienEnter" модуля добавить "SetMaxHenchmen(oPC) == 2);" , Аврора выдает свой дежурный глупый "отмаз": нет точки с запятой в выражении. Я ей вволю и скобки рисовал, и точку эту с запятой в компании - бесполезно! Что я не то или не так (или не туда?) делаю?
Кстати, Аврора также ругается и на записи типа "SetMaxHenchmen(oPC, 2)". И никакие точки с запятыми не помогают...

Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
shadowdweller
сообщение Nov 30 2008, 22:33
Сообщение #8


Level 9
Иконки Групп

Класс: Вор
Характер: Chaotic Good
Раса: Эльф
МАСТЕР Переводов



Для этого нужен скрипт, который стоит в слоте OnModuleLoad. У меня это, например "x2_mod_def_load". Нужно открыть его и добавить туда в конец строку:
Neverwinter Script
SetMaxHenchmen(***); // В скобках просто указываешь то количество хенчей, которое тебе нужно

Получившийся скрипт надо сохранить обязательно под другим именем и поставить в свойствах мода туда, где был старый - на OnModuleLoad.
У меня работает. (IMG:style_emoticons/kolobok_light/smile.gif)
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Chiffa
сообщение Nov 30 2008, 23:18
Сообщение #9


Level 5
**

Класс: Волшебник
Характер: Chaotic Good
Раса: Человек



Огромное спасибо! Все сделаю, как надо (то, что портить стандартные скрипты - дурной тон, я в курсе). И правда, оказалось что писал и не так, и не то, и не туда! Не возьму в толк, причем тут "загрузка", но пути Авроры неисповедимы... И еще одно в толк не возьму; чтобы я без ГМ делал!
Спасибо!
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Chiffa
сообщение Dec 3 2008, 17:40
Сообщение #10


Level 5
**

Класс: Волшебник
Характер: Chaotic Good
Раса: Человек



Цитата(shadowdweller @ Nov 30 2008, 22:33) *
Для этого нужен скрипт, который стоит в слоте OnModuleLoad. У меня это, например "x2_mod_def_load". Нужно открыть его и добавить туда в конец строку:
Neverwinter Script
SetMaxHenchmen(***); // В скобках просто указываешь то количество хенчей, которое тебе нужно

Получившийся скрипт надо сохранить обязательно под другим именем и поставить в свойствах мода туда, где был старый - на OnModuleLoad.
У меня работает. (IMG:style_emoticons/kolobok_light/smile.gif)

Сделал все точно по инструкции. Не сработало. Почесал репу и добавил точно такую же строку (в смысле "SetMaxHenchmen(***); " в скрипт "x1_playerlevelup". Ессно, сохранил под другим именем. Все заработало. shadowdweller, у меня нет сомнений, что у тебя все работает правильно благодаря одному только "x2_mod_def_load". Просто, как я заметил, у каждой версии НВН - свои капризы. Приходится к ним приспосабливаться.
Спасибо.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Lex
сообщение Dec 3 2008, 17:44
Сообщение #11


Level 5
Иконки Групп

Класс: Обыватель
Характер: Lawful Neutral
Раса: Человек
NWN: Модмейкер
Проклятие Левора
Порядок Времени



Цитата(shadowdweller @ Nov 30 2008, 22:33) *
Получившийся скрипт надо сохранить обязательно под другим именем

зачем?
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Chiffa
сообщение Dec 4 2008, 09:38
Сообщение #12


Level 5
**

Класс: Волшебник
Характер: Chaotic Good
Раса: Человек



Цитата(Lex @ Dec 3 2008, 17:44) *
зачем?

ИХМО, а ведь получается что вроде и правда незачем! Точнее, не обязательно. Просто Аврора ругается: дескать, буду использовать переделанный ресурс вместо стандартного! А без нужды с Авророй ссориться - себе дороже. Думал, это глобально. Но тока что проверил: нет, дело касается только того модуля, где скрипт переделан. Во всех остальных стандартный ресурс тулсета остается, так сказать, в первозданном виде.
Скорее всего, просто чтобы не путаться...
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Chiffa
сообщение Nov 25 2009, 21:53
Сообщение #13


Level 5
**

Класс: Волшебник
Характер: Chaotic Good
Раса: Человек



Уважаемые мастера, скажите, какой еще файл, кроме "rs_common" регулирует в ПЛ столь эксцентричное поведение Ви и ее реплики? Или поставлю вопрос шире: как заставить хеньша вести себя более живо? Дело в том, что я просто экспортнул Ви в свой модуль (благо, господа основоположники, кажется не имеют ничего против подобного самоуправства). Поменял тег, ресреф. Тщательно отредактировал "rs_common" переписал все теги, все реплики (русификатор "Джумбо" - виват, виват, виват!!!) Само собой, заменил все теги в письменах самой неписи. Не помогло. Нет, ловушки открывает, в бою ведет себя нормально. Но во всем остальном получился банальный дефолтный робот-кибер!
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Aiwan
сообщение Nov 26 2009, 10:34
Сообщение #14


Миловидный Бегрюссунг
Иконки Групп

Класс: Воин
Характер: Chaotic Good
Раса: Человек
NWN: Модмейкер
Проклятие Левора
Порядок Времени



Ви слишком сложно настраивается. Мы с Лексом ее даже не брали скрипты себе. Боюсь только ДБ мог бы сказать о том КАК...
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Veronica
сообщение Jan 20 2018, 02:20
Сообщение #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]
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Aiwan
сообщение Jan 20 2018, 08:03
Сообщение #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)
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Veronica
сообщение Jan 22 2018, 03:09
Сообщение #17


Level 1


Класс: Обыватель
Характер: Lawful Good
Раса: Полуэльф



Спасибо, ваша подсказка очень помогла.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения

Ответить в эту темуОткрыть новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



Текстовая версия Сейчас: 26th September 2018 - 16:28