![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
![]() |
![]()
Сообщение
#3701
|
|
Level 5 ![]() Класс: Обыватель Характер: Lawful Neutral Раса: Человек NWN: Модмейкер Проклятие Левора Порядок Времени ![]() |
см
Neverwinter Script LevelUpHenchman()
|
![]()
Сообщение
#3702
|
|
Level 9 ![]() Класс: Вор Характер: Chaotic Good Раса: Эльф МАСТЕР Переводов ![]() |
Благодарю, о лаконичнейший! Нашла, прочитала, но как использовать, по прежнему не понимаю (IMG:style_emoticons/kolobok_light/pardon.gif)
|
![]()
Сообщение
#3703
|
|
Level 9 ![]() Класс: Обыватель Характер: Lawful Good Раса: Человек NWN: Модмейкер Рыцарская Сага ![]() |
А это как? Можно поподробнее? Шад, шад, шад... Эх-хе-хей... Начнем с самого начала! Для начала нужно знать, что уровень его должен быть первым, иначе нам не удастся поднять его под уровень героя. Если вам необходимо поднять уровень, то можно в скрипт спавна добавить повышение или новый класс. Помните, что классы спутников такие же, как и у героя, остальные классы вам также не удастся поднять… Я добавлю еще в этот скрипт фишку, чтобы труп спутника не исчезал. Тогда скрипт смерти, вы можете переписать по своему усмотрению… Сам скрипт: Neverwinter Script //::////////////////////// //:: Слот: OnSpawn //::////////////////////// #include "X0_INC_HENAI" void main() { //User ranged weapons by default if true. SetAssociateState(NW_ASC_USE_RANGED_WEAPON, FALSE); SetAssociateState(NW_ASC_DISTANCE_2_METERS); // Труп не исчезает и будет юзабельным SetIsDestroyable(FALSE, TRUE, TRUE); int nHenchLevel = GetHitDice(OBJECT_SELF); if (nHenchLevel == 1) { if (GetTag(OBJECT_SELF) == "TAG") { // Класс воин LevelUpHenchman(OBJECT_SELF, CLASS_TYPE_FIGHTER); // Класс СВЯЩЕННИК LevelUpHenchman(OBJECT_SELF, CLASS_TYPE_CLERIC); } } } Так вот, если ты пробила в спавне своему хенчу бессмертие, то перед дестроем его нужно убрать. Если ты в палитре настраиваешь хенчам уровень, параметры и шмотки и пытаешься базовым скриптом поменять хенчей, то вот тебе скриптик: Neverwinter Script void main() { object oPC = GetPCSpeaker(); object oSP = OBJECT_SELF; // Снимаем бессмертие AssignCommand(oSP, SetIsDestroyable(TRUE, TRUE, TRUE)); //Запускаем базовый скрипт замены хенчей ExecuteScript("nw_ch_action_17", oSP); // * Henchman levels up } Если повышаем уровни хенча только скриптами и в палитре у него стоит первый уровень, то читай ниже... Чтобы уровни спутника повышались, при повышение уровня героя, нужно в модульные свойства в слот OnPlayerLevelUp, поставить базовый скрипт x1_playerlevelup, или написать свой скрипт поднятия уровня спутника. Чтобы поднять уровень спутника до уровня героя с диалога, нужно написать примерный скрипт: Neverwinter Script void main() { object oPC = GetPCSpeaker(); object oSP = GetHenchman(oPC); int LoPC = GetHitDice(oPC); int LoSP = GetHitDice(oSP); while (LoPC > LoSP) { LevelUpHenchman(OBJECT_SELF, CLASS_TYPE_FIGHTER); LoSP++; } } /* Повысить уровень воина до уровня героя */ Так, теперь скрипт с переодеванием и заменой хенчей из палитры… Писал для своего Тузика, т.к. он собачка и класс у него только животное, но вот в отличие от первых Неверских хенчей у него есть возможность открыть инвентарь и кой куда повесить шмотку. Neverwinter Script //::////////////////////////////// //:: УРОВЕНЬ ТУЗИКА //:: File name: tuzik_level //:: Created By: Gennady //::////////////////////////////// void main() { object oPC = GetPCSpeaker(); object oSP = OBJECT_SELF; object oItem; int i; int LoPC = GetHitDice(oPC); int LoSP = GetHitDice(oSP); string sResRef = "dog_tuzik"; location Loc = GetLocation(oSP); if (LoPC > 2) sResRef = "dog_tuzik_1"; if (LoPC > 4) sResRef = "dog_tuzik_2"; if (sResRef == GetResRef(oSP)) { AssignCommand(oSP, SpeakString("Гав... Ррууу...")); SendMessageToPC(oPC, "<cюa >Тузик грустно лает… Похоже, что сейчас он не может ничему научиться…</c>"); return; } object oTuz = CreateObject(OBJECT_TYPE_CREATURE, sResRef, Loc); DelayCommand(1.0, AssignCommand(oTuz, SpeakString("Гав... Ррууу..."))); DelayCommand(1.0, SendMessageToPC(oPC, "<c у >Тузик утвердительно лает. Он может научиться всему, что вы пожелаете.</c>")); DelayCommand(1.5, AssignCommand(oTuz, ClearAllActions())); object oInv = GetFirstItemInInventory(oSP); while(GetIsObjectValid(oInv)) { CopyItem(oInv, oTuz); oInv = GetNextItemInInventory(oSP); } for (i = 0; i < 14; i++) { oItem = GetItemInSlot(i, oSP); if (GetIsObjectValid(oItem)) { object oItemN = CopyItem(oItem, oTuz); DelayCommand(1.51, AssignCommand(oTuz, ActionEquipItem(oItemN, i))); } } effect eOne = EffectVisualEffect(VFX_IMP_UNSUMMON); DelayCommand(1.0, ApplyEffectToObject(DURATION_TYPE_INSTANT, eOne, oSP)); AssignCommand(oSP, SetIsDestroyable(TRUE, TRUE, TRUE)); DestroyObject(oSP, 2.0); AssignCommand(oPC, ClearAllActions()); DelayCommand(0.2, SetCommandable(FALSE, oPC)); // заблокировать очередь AssignCommand(oPC, ActionWait(2.5)); AssignCommand(oPC, ActionDoCommand(AddHenchman(oPC, oTuz))); // Дать нового спутника AssignCommand(oPC, ActionDoCommand(SetCommandable(TRUE, oPC))); // разблокировать очередь } P.S. В этом скрипте пробито всего 2 повышения уровня… Кому надо пробейте нужное количество… Кстати, Шад, обрати внимание! В этом скрипте перед дестроем я снимаю бессмертие с Тузика, т.к. в спавне пробивал бессмертие… Удачи! (IMG:style_emoticons/kolobok_light/smile.gif) Neverwinter Script int iLev = 1; for (iLev = 1; iLev < 14; iLev++) {if (LoPC > iLev) sResRef = "dog_tuzik_"+IntToString(iLev);} |
![]()
Сообщение
#3704
|
|
Миловидный Бегрюссунг ![]() Класс: Воин Характер: Chaotic Good Раса: Человек NWN: Модмейкер Проклятие Левора Порядок Времени ![]() |
shadowdweller, есть тема по хеньчманам, там заготовка, правила и все скрипты. Все работает как часы. Вот тут.
|
![]()
Сообщение
#3705
|
|
Миловидный Бегрюссунг ![]() Класс: Воин Характер: Chaotic Good Раса: Человек NWN: Модмейкер Проклятие Левора Порядок Времени ![]() |
Neverwinter Script LevelUpXP1Henchman(); Единственно, эту функцию ставь куда тебе надо и когда надо в скрипт.
|
![]()
Сообщение
#3706
|
|
Level 3 ![]() Класс: Обыватель Характер: Neutral Good Раса: Человек ![]() |
А можно хенчу задать что именно и как он будет апать? В смысле, например, визарду прокачать умение пользоваться всеми видами оружия, а не что-то касающееся исключительно магии. По умолчанию-то он прокачивает только то, что свойственно его классу.
|
![]()
Сообщение
#3707
|
|
Level 11 ![]() Класс: Волшебник Характер: Lawful Evil Раса: Эльф NWN: Скриптинг [PW] Gem of the North ![]() |
Нужно ковырять таблички PackFT***.2da (*** - сокращённое название класса). Хенч левелапится согласно стандартному пакаджу.
Сообщение отредактировал Ilerien - Jun 21 2008, 14:39 |
![]()
Сообщение
#3708
|
|
Level 3 ![]() Класс: Обыватель Характер: Neutral Good Раса: Человек ![]() |
Спасибо! Тем временем возник следующий камень преткновения: нужно, чтобы NPC начинал определенный разговор не при наступании на триггер, а в определенное время (скажем, сутки спустя после предыдущего разговора). Реализуемо ли это и как? Все равно нужно рисовать где-то триггер или просто в конце первого диалога приладить какой-нибудь скрипт на возобновление беседы через сутки?
|
![]()
Сообщение
#3709
|
|
Level 11 ![]() Класс: Волшебник Характер: Lawful Evil Раса: Эльф NWN: Скриптинг [PW] Gem of the North ![]() |
Легко можно разговор заделеить, вот только начнут они в бою болтать...
Neverwinter Script DelayCommand(HoursToSeconds(24), <...>);
|
![]()
Сообщение
#3710
|
|
Level 3 ![]() Класс: Обыватель Характер: Neutral Good Раса: Человек ![]() |
А в течение этих суток они (т.е. PC и тот, с кем он должен говорить) могут беспрепятсвенно бегать где попало и делать все, что вздумается? И ровно через 24 часа начнут разговор №2? Вроде где-то мы видали такое условие If not in combat... Может, его еще сюда приделать?
|
![]()
Сообщение
#3711
|
|
Level 11 ![]() Класс: Волшебник Характер: Lawful Evil Раса: Эльф NWN: Скриптинг [PW] Gem of the North ![]() |
Ну, ровно через 24 часа и будет новый разговор. Можно заюзать GetIsInCombat(), но тогда разговор совсем потеряется.
|
![]()
Сообщение
#3712
|
|
Level 9 ![]() Класс: Вор Характер: Chaotic Good Раса: Эльф МАСТЕР Переводов ![]() |
Не мог бы кто-нибудь подсказать мне, где почитать про установку секретных дверей? Желательно, по-русски, в английском лексиконе как-то не очень понятно. Заранее спасибо (IMG:style_emoticons/kolobok_light/smile.gif)
|
![]()
Сообщение
#3713
|
|
Level 11 ![]() Класс: Волшебник Характер: Lawful Evil Раса: Эльф NWN: Скриптинг [PW] Gem of the North ![]() |
Я когда-то собирался выложить свою систему потайных дверей, но как-то руки не дошли. (IMG:style_emoticons/kolobok_light/sad.gif) Могу скинуть и написать по-быстрому документацию (IMG:style_emoticons/kolobok_light/wink3.gif)
|
![]()
Сообщение
#3714
|
|
Level 9 ![]() Класс: Вор Характер: Chaotic Good Раса: Эльф МАСТЕР Переводов ![]() |
Ilerien, была бы очень благодарна!
|
![]()
Сообщение
#3715
|
|
Level 11 ![]() Класс: Волшебник Характер: Lawful Evil Раса: Эльф NWN: Скриптинг [PW] Gem of the North ![]() |
Выкладываю (IMG:style_emoticons/kolobok_light/smile.gif) В комплекте ерфка и маленький демонстрационный модуль.
Прикрепленные файлы
|
![]()
Сообщение
#3716
|
|
Level 12 ![]() Класс: Оборотень Характер: Chaotic Neutral Раса: Нежить NWN: Скриптинг [Sn] ![]() |
Цитата Ну, ровно через 24 часа и будет новый разговор. Можно заюзать GetIsInCombat(), но тогда разговор совсем потеряется. Neverwinter Script void TryDialog(object oWith, string sDialog)
{ if (мы в бою 092; мертвы, игрок слишком далеко 092; парализован 092; окаменел 092; рестится 092; ведёт дилог ещё с кем-то и т.д и т.п) { DelayCommand(15.0, TryDialog(oWith, sDialog)); // попробовать позже } else // всё ок { ActionStartConversation(oWith, sDialog); // начать диалог } } void main() { DelayCommand(HoursToSeconds(24), TryDialog(GetPCSpeaker(), "название следующего диалога")); } |
![]()
Сообщение
#3717
|
|
Level 3 ![]() Класс: Обыватель Характер: Neutral Good Раса: Человек ![]() |
Neverwinter Script void TryDialog(object oWith, string sDialog) { if (мы в бою 092; мертвы, игрок слишком далеко 092; парализован 092; окаменел 092; рестится 092; ведёт дилог ещё с кем-то и т.д и т.п) { Эээ... тупые мы чего-то сегодня! У нас на англ все, так тама вместо "мы в бою" будет "GetIsInСombat". А вот что будет вместо тех циферок (\)? |
![]()
Сообщение
#3718
|
|
Level 11 ![]() Класс: Волшебник Характер: Lawful Evil Раса: Эльф NWN: Скриптинг [PW] Gem of the North ![]() |
Логическое или
Neverwinter Script ||
|
![]()
Сообщение
#3719
|
|
Level 9 ![]() Класс: Вор Характер: Chaotic Good Раса: Эльф МАСТЕР Переводов ![]() |
Ilerien, спасибо! Скачала, пытаюсь разобраться. (IMG:style_emoticons/kolobok_light/smile.gif)
|
![]()
Сообщение
#3720
|
|
Level 3 ![]() Класс: Обыватель Характер: Neutral Good Раса: Человек ![]() |
Нужно ковырять таблички PackFT***.2da (*** - сокращённое название класса). Хенч левелапится согласно стандартному пакаджу. Хмы, у нас нету таких файлов, есть тока pakages вообще, но там все сразу завязано тама как раз и написаны Pack-такой, Pack-сякой. А где сами пэки? Логическое или Neverwinter Script || Ага, тока почему-то у тебя это или нормально выглядит, а в том скрипте написано циферками. Это типа несоответствие html-кодов? |
![]()
Сообщение
#3721
|
|
Level 4 ![]() ![]() Класс: Друид Характер: True Neutral Раса: Человек ![]() |
Я тут создавал свой собственный клас и столкнулся с несколькими проблемами. Если кто поможет их развязать буду очень благодарен.
1-когда я попытался написать cls_pres_**** то не смог найти откуда брать нужные параметры, мне нужно требования только друид, человек, 30 лвл. 2-какой программой редактировать dialog.tlk 3-если я добавляю класу фиты, то ни где не могу их взять(использовать) в игре они не отображаются, тоесть отображаются толшько в описании персонажа, а активные скилы ни куда не выносятся, что делать? 4-я пытаюсь создать совершенно новый клас заклинателя, если можно это сделать, то подскажите как, а если нельзя, то скажите как сделать чтобы мой новый класс мог использовать заклинания друида, как сви, в своем меню. Ну вот вроде всё с остальным я уже смог разобратся, заранее спасибо. Пожалуста не выкладывайте ссылки на англоязычные учебники. P.S. вот еще что где можно взять иконки для класов, в ссылках я не видел. |
![]()
Сообщение
#3722
|
|
Level 3 ![]() Класс: Обыватель Характер: Neutral Good Раса: Человек ![]() |
На заход в модуль. Что с игроком произойдёт - это нужно вписать в блок. Neverwinter Script object oPC = GetEnteringObject(); if(GetName(oPC) == "имя") { ApplyEffectToObject(DURATION_TYPE_INSTANT, oPC, SupernaturalEffect(EffectDeath())); // например, эта строчка убьёт игрока с неугодным именем BootPC(oPC); //а эта выкинет его из модуля } Пиплы! не работает!!! ваще никак! не выкидывает, а на убивание вообще компайлер сохранять такой скрипт не хочет! (IMG:style_emoticons/kolobok_light/unsure.gif) Может вся проблема в GetFirstPC? Neverwinter Script if (GetName(GetFirstPC()) == "Лорд Нэшер Собственной Персоной") Имеется ввиду только имя? или вместе с фамилием? |
![]()
Сообщение
#3723
|
|
Level 11 ![]() Класс: Волшебник Характер: Lawful Evil Раса: Эльф NWN: Скриптинг [PW] Gem of the North ![]() |
Цитата Я тут создавал свой собственный клас и столкнулся с несколькими проблемами. Если кто поможет их развязать буду очень благодарен. 1-когда я попытался написать cls_pres_**** то не смог найти откуда брать нужные параметры, мне нужно требования только друид, человек, 30 лвл. 2-какой программой редактировать dialog.tlk 3-если я добавляю класу фиты, то ни где не могу их взять(использовать) в игре они не отображаются, тоесть отображаются толшько в описании персонажа, а активные скилы ни куда не выносятся, что делать? 4-я пытаюсь создать совершенно новый клас заклинателя, если можно это сделать, то подскажите как, а если нельзя, то скажите как сделать чтобы мой новый класс мог использовать заклинания друида, как сви, в своем меню. Ну вот вроде всё с остальным я уже смог разобратся, заранее спасибо. Пожалуста не выкладывайте ссылки на англоязычные учебники. P.S. вот еще что где можно взять иконки для класов, в ссылках я не видел. 1. Общий уровень чара вроде бы нельзя включить в требования. Можно потребовать определённую базовую атаку. Код 2DA V2.0 LABEL ReqType ReqParam1 ReqParam2 0 Human RACE 6 **** 1 Druid CLASS 3 **** 2 BaseAttack_20 BAB 20 **** 3 ScriptVar VAR <имя переменной> 0 2. Content Editor 3. Поставить OnMenu в 1ку в cls_feat_*** 4. Вроде бы только заменить друида, кастомные спелбуки нвн не поддерживает. У меня есть проект кастомного спелбука через фиты, но это страшное извращение, да и непонятно, что делать с метамагией (IMG:style_emoticons/kolobok_light/smile.gif) П. С. - Например, нарисовать (IMG:style_emoticons/kolobok_light/smile.gif) Цитата Хмы, у нас нету таких файлов, есть тока pakages вообще, но там все сразу завязано тама как раз и написаны Pack-такой, Pack-сякой. А где сами пэки? Скачать 2да 1.68, где-то у биоварей валялись.Цитата Ага, тока почему-то у тебя это или нормально выглядит, а в том скрипте написано циферками. Это типа несоответствие html-кодов? Хтмл тут ни при чём (IMG:style_emoticons/kolobok_light/wink3.gif) Цитата Пиплы! не работает!!! ваще никак! не выкидывает, а на убивание вообще компайлер сохранять такой скрипт не хочет! GetName() вернёт строку "имя, пробел, фамилия". Не хочет сохранять, потому что я с ходу не помню порядок аргументов в ApplyEffectToObject(). Значит, нужно так:Может вся проблема в GetFirstPC? Neverwinter Script ApplyEffectToObject(DURATION_TYPE_INSTANT, SupernaturalEffect(EffectDeath()), oPC); GetFirstPC() ни при чём)
Сообщение отредактировал Ilerien - Jun 23 2008, 20:39 |
![]() ![]()
Сообщение
#3724
|
|
Level 4 ![]() ![]() Класс: Друид Характер: True Neutral Раса: Человек ![]() |
Цитата 3. Поставить OnMenu в 1ку в cls_feat_*** мдя протупил я. Цитата 4. Вроде бы только заменить друида, кастомные спелбуки нвн не поддерживает. тогда как заменить друида, я пробовал, ничего не получилось, вродебы везде гденадо друида ставил и пробовал свои таблицы некоторые писать, такие как cls_spgn_volhv всеравно ничего не вышло. (IMG:style_emoticons/kolobok_light/unsure.gif) А вообще спасибо большое! Цитата Например, нарисовать Если можно скажи с помощью какой проги можно такие нарисовать и как их добавить в невер |
![]()
Сообщение
#3725
|
|
Level 11 ![]() Класс: Волшебник Характер: Lawful Evil Раса: Эльф NWN: Скриптинг [PW] Gem of the North ![]() |
Цитата Если можно скажи с помощью какой проги можно такие нарисовать и как их добавить в невер Paint (IMG:style_emoticons/kolobok_light/smile.gif) Только потом сохранить формате TGA любой прогой, которая это умеет делать, например, ACDSee. Добавить - ну например сунуть в хак, подключённый к нужному модулю. Или в оверрайд.
|
![]() ![]() |
Текстовая версия | Сейчас: 28th April 2025 - 19:46 |