Помощь - Поиск - Пользователи - Календарь
Полная версия: Вопросы новичков
Город Мастеров > РЕДАКТОРЫ > Neverwinter Nights Aurora Toolset
Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103
Zen
Вобщем так... хочу сделать что-то типа сервера на НВН, нужно чтобы монстры появлялись в определённых местах, при условии их уничтожения, через определённое время, т.е. сделать банальные респаун. Стандартными средствами, т.е. без кода очень легко сделать респаун, но он работает по условию (УСЛОВИЕ: пересечение монстром или игроком зоны респауна). Как сделать так чтобы можно было респаунить монстров без условия или по условию уничтожения всех в зоне???
Заране благодарен. Я в скриптах полный ноль. Хочу сделать респаун, потом дальше скриптами заняться...
-fenix-
Смотри ТУТ.

QUOTE(Zen @ Mar 16 2006, 18:51) [snapback]72944[/snapback]
Я в скриптах полный ноль. Хочу сделать респаун, потом дальше скриптами заняться...

Это не правильно. Посмотри код респаун, на который я тебе дал ссылку, понимаешь, что там делается? Если нет, то как ты хочешь сделать свой респаун. Мож начнешь с азов?
[MoF]Darth_Nick
NESS'ом можно спаунить без знания скриптинга вроде как
но фиксить там только скриптами(если надо)
Dana
И снова здравствуйте…
Докладываю обстановку:
Имеются две субрасы. Как мне сделать, чтобы:
1) у них на противоборствующую расу автоматические выставлялся диз (то бишь по умолчанию были враждебными),
2) и нельзя было бы поменять «не нравиЦа» на «нравиЦа».

Мне бы хотя бы функцию, которая меняет это отношение и событие, когда это происходит.
Заранее благодарна. Целую. Дана.
[MoF]Darth_Nick
NSS
    object oPC = GetFirstPC();
    object oEnter = GetEnteringObject();
    while(GetIsObjectValid(oPC) && (GetSubRace(oEnter) == "Race_1") && (GetSubRace(oPC) == "Race_2") && (GetIsPC(oEnter)))
    {
        SetPCDislike(oEnter,oPC);
        oPC = GetNextPC();
    }

попробуй так, я щас просто проверить не могу..

QUOTE
2) и нельзя было бы поменять «не нравиЦа» на «нравиЦа».

по нормальному - помойму нельзя
Lorendroll
У меня тоже полувопрос-полуответ. Было бы неплохо выставлять хостаил прямо на OnPerception игрока (да и вообще много интересных вещей хотелось бы делать в скриптах на игроке), но ведь изменять стандартные скрипты на player'е нельзя? Или все-таки можно через оверрайд или хак?
Lex
хотя у игрока и есть слоты и Лето туда можно вписать что угодно, но на деле все там стирается и есть только 1 скрипт, oHB игрока (называется default). Другие слоты заюзать к большому сожалению не получается sad.gif
[MoF]Darth_Nick
через лето можно изменять
но как показывала практика, игра зависает
Lex
QUOTE(Lorendroll @ Mar 18 2006, 21:41) [snapback]73188[/snapback]
Было бы неплохо выставлять хостаил прямо на OnPerception игрока

так непосредственно не получится... но выход есть. Кастомная аура (форма и радиус прописывается в соотв. 2да) без визуального эффекта (там же это можно указать) со скриптами на вход и выход и хб если надо. Имхо в данном случае хороший вариант, правда не знаю, как будет на шарде это.

NSS
// Create an Area Of Effect effect in the area of the creature it is applied to.
// If the scripts are not specified, default ones will be used.
effect EffectAreaOfEffect(int nAreaEffectId, string sOnEnterScript="", string sHeartbeatScript="", string sOnExitScript="")
Dana
Дополнюсь и исправлюсь.
можно ли разделить ПС не на субрасы а на фракции, хотя бы условные (это к примеру запоминание их принадлежности к той или иной партии на итеме) , и что бы дизлайк выставлялся как на фракции, то есть нельзя исзменить.
Nashman
ПРивет,
Вопрос, Мне нужно добавить портреты, так вот портреты ПС добавить получилось, а вот НПС - Нет. Подскажите.
[MoF]Darth_Nick
кнопка отмены дизлайка доступна всегда
2Lex: все бы хорошо, но когда диз ставят, а чел кастует -> каст отменяется(хтя можт уже пафиксили, что врятле), поэтому ставить дизы на хб небезопасно,а на ауру - злоупотреблять будут(как и просто диз).(причем, скриптами это не фиксится, только баном\теркой акков)
2Dana: ну можно локалку поставить и ее сравнивать, но смысла то...пц всегда может отменить диз другому пц
2Nashman: 2да ковырять не пробовал?
Aiwan
QUOTE(Nashman @ Mar 19 2006, 01:12) [snapback]73204[/snapback]
Вопрос, Мне нужно добавить портреты, так вот портреты ПС добавить получилось, а вот НПС - Нет. Подскажите.

scratch_one-s_head.gif Мдямс... уж тебе то спрашивать. Читай мой мануал, там все расписано и показано.
Bran
Как только перс входит в область триггера у 4 вэйпоинта появляется oTerpug в облике балорда потом превращается в в человека. Если oTerpug поставить рядом с вэйпоинтом, то он появляется как положено, но! если его поставить немного дальше (расстояние причем всегда разное, в смысле относительно вэйпоинта северней восточней и пр.) то эффекты не работают. И еще вопрос что значит 4.5 в ApplyEffectToObject

Заранее спасибо.
NSS
void main()
{
object oPC = GetEnteringObject();
object oTerpug = GetObjectByTag("Terpug");
object oWp4 = GetWaypointByTag("WAYPOINT004");
effect e1 = EffectVisualEffect(VFX_FNF_LOS_EVIL_30);
effect e2 = EffectVisualEffect(VFX_FNF_SUMMON_GATE);
effect e3 = EffectVisualEffect(VFX_FNF_FIRESTORM);
effect e4 = EffectPolymorph(POLYMORPH_TYPE_BALOR);

ApplyEffectToObject(DURATION_TYPE_TEMPORARY, e4, oTerpug, 4.5);
AssignCommand(oTerpug, ActionJumpToObject(oWp4));
AssignCommand(oTerpug, ActionWait(2.0));
ApplyEffectToObject(DURATION_TYPE_TEMPORARY, e1, oTerpug, 4.5);
ApplyEffectToObject(DURATION_TYPE_TEMPORARY, e2, oTerpug, 4.5);
ApplyEffectToObject(DURATION_TYPE_TEMPORARY, e3, oTerpug, 4.5);


}
[MoF]Darth_Nick
тулсета нету под рукой
4.5 - длительность
" AssignCommand(oTerpug, ActionWait(2.0)); "
вместо ActionWait можно и DelayCommand
azathoth
Bran, дело может быть в том, что в твоем скрипте визуальные эффекты накладываются раньше, чем объект переносится к вэйпойнту, так как команды типа Action* заносятся в очередь событий, а не выполняются сразу.

Лучше накладывай визуальные эффекты на область, где находится сам вэйпойнт, чтобы вообще избежать недоразумений.
Bran
QUOTE(azathoth @ Mar 26 2006, 15:54) [snapback]74289[/snapback]

Лучше накладывай визуальные эффекты на область, где находится сам вэйпойнт, чтобы вообще избежать недоразумений.

это AppllyEffectToLocation?
Lex
да.
NSS
location lLoc = GetLocation(oWp4);
AppllyEffectToLocation(DURATION_TYPE_PERMANENT,e1,lLoc);

кстати обрати внимание на эффекты свои.
VFX_FNF_LOS_EVIL_30 - это можно накладывать временно
VFX_FNF_SUMMON_GATE, VFX_FNF_FIRESTORM, а вот эти нельзя. Это эффекты имеющие определенное время проигрывания и твои 4.5с там не нужны. для таких юзай PERMANENT
Elf-Drow
Наверное, наитупейший вопрос, но как сделать, к примеру когда мы додалбливаем врага до "при смерти" он становится нейтральным к нам, т.е. меняет фракцию, да? и кричит, к примеру:"Я не хочу с тобой драться. Давай поговорим."Подскажите...
Dik Morris
2Elf-Drow
ВОТ ссылка, где уже разбиралась подобная ситуация. Глянь мой пост, за 6 число.
Aiwan
НПС после нападения становится нейтральным и начинает диалог с РС.
NSS
//------------------------------------------------------------------------------
//  Добавляем на хертбит Нпс.
//------------------------------------------------------------------------------
    object oSelf = OBJECT_SELF;
    object oPC = GetFirstPC(); // Это самое простое. Можно узнать по демагу или ближайший крич
    int iCurHP = GetCurrentHitPoints(oSelf); // Количество поинтов максимум о Нпс
    int iMaxHP = GetMaxHitPoints(oSelf); // Сколько в данный момент
    if(!GetLocalInt(oSelf, "STOP"))
    {
      if (iCurHP < iMaxHP/4) // Четверть нр от общего или меньше
      {
        // Если это враг то меняем ему фракцию на комманера. Если нет, то убери эту строку
        ChangeToStandardFaction(oSelf, STANDARD_FACTION_COMMONER);
        SetLocalInt(oSelf, "STOP", TRUE);
        AssignCommand(oPC, ClearAllActions(TRUE));
        AssignCommand(oSelf, ClearAllActions(TRUE));
        ClearPersonalReputation(oPC, oSelf);
        AssignCommand(oSelf, PlayAnimation(ANIMATION_LOOPING_TALK_PLEADING, 1.0, 5.0));
        DelayCommand(0.3, SetCommandable(FALSE, oPC));
        DelayCommand(1.5, AssignCommand(oSelf, SpeakString("Дядя, простите, я больше так не буду!")));
        /*
        Тут описываешь важнецкие клятвы в верности, слезные истории про трудное дество...
        */

        DelayCommand(5.0, AssignCommand(oSelf, ActionMoveToObject(oPC)));
        DelayCommand(5.4, AssignCommand(oSelf, ActionDoCommand(SetCommandable(TRUE, oPC))));
        DelayCommand(5.6, AssignCommand(oSelf, ActionStartConversation(oPC)));
      }

    }

//------------------------------------------------------------------------------


Забыл сказать, в свойствах НПС поставь Immortal галочку. Что бы не убить его нафик сразу smile.gif

scratch_one-s_head.gif Можно и на демаг слот воткнуть с проверкой кто пинданул последний.
hanter
QUOTE(Вестель @ Jun 28 2004, 20:19) [snapback]5397[/snapback]

Глупый вопрос, но все равно задам: в упор не могу найти в палитре стойку бара (или что-то вроде). Облазил все, что можно, но всеже нигде нету. Не ужели ее в стандартной палитре нету?

Мне тож нужна помощь с объектами - как в городе сделать дорогу с бардюрами, ну как в леворе в Тсурлагоре, пониже основной территории, или бордюры повыше. Короче надо оформить дорогу, помогите плз. использую тулсет левора
Lex
?????? Это же стандартный тайлсет.
Создаешь локацию типа City Exterior. Ставишь местность Buildings. Они вокруг себя и имеют тротуар, а соотв. между 2 билдингами получается дорога, и с 2х сторон бардюр и тротуар.
hanter
QUOTE(Lex @ Apr 1 2006, 13:43) [snapback]75692[/snapback]

?????? Это же стандартный тайлсет.
Создаешь локацию типа City Exterior. Ставишь местность Buildings. Они вокруг себя и имеют тротуар, а соотв. между 2 билдингами получается дорога, и с 2х сторон бардюр и тротуар.

Надо же, спасидо, и правда работает, я просто тока здания(которые выбираешь) и стены в этой локации юзил
, а это мой первый проэкт, спасибо еще раз
Solmyr2000
unsure.gif У меня такая проблема: Хенчман при повышении уровня "клонирует себя" .....

Т.е: он добавляет нового хенчмана с более высоким уровнем, а "старую версию" не удаляет.....

Ну и возник вопрос: как удалить эту самую старую версию? unsure.gif unsure.gif
Aiwan
QUOTE(Solmyr2000 @ Apr 1 2006, 21:22) [snapback]75744[/snapback]
У меня такая проблема: Хенчман при повышении уровня "клонирует себя" .....

Ну, что могу сказать? Смотри тему-раздел хеньчман ХоТУ что я прикрепил. Бери диалог оттуда и работай. Все пашет. А у тебя надо смотреть скрипты. Где-то старый диалог, раньше хеньчманы дестроились-креетились. Сейчас они спокойно левел поднимают сами командой.
Solmyr2000
Я уже пробовал загрузить henchman_hotu.rar , но он не грузится..... sad.gif
Aiwan
Теперь грузится. Иди качай.
Solmyr2000
Версия игры какая у файла?
Артём
Напишите, пожалуйста, скрипт перехода областей в диалоге.
Если не трудно с каментариями.
sad.gif
Dik Morris
QUOTE
Версия игры какая у файла?

Эта демка делалась спец. под ХотУ, т.е est, нужен этот аддон.
Ну и конечно 99% что версия 1.66 - максимальная.
QUOTE
Напишите, пожалуйста, скрипт перехода областей в диалоге.

Если я тебя правильно понял, то нужно чтобы игрок джампанулся в определенную область.
Ставь на строчку в диалоге, PC прыгает на нужный вайпоинт.
NSS
void main()
{
    object oPC = GetPCSpeaker();
    object oWP = GetWaypointByTag("ТАГ_ВЕЙПА");
    AssignCommand(oPC, ClearAllActions());
    DelayCommand(0.2, AssignCommand(oPC, ActionJumpToLocation( GetLocation(oWP))));
}
Solmyr2000
У меня и СоУ и ХотУ. Но говорит, что файл был создан при использовании более новых ресурсов игры unsure.gif unsure.gif unsure.gif
Dik Morris
QUOTE
У меня и СоУ и ХотУ. Но говорит, что файл был создан при использовании более новых ресурсов игры

Значит, патчись до версии 1.66. Патч ищи в теме ссылки... (Весил, раньше по крайней мере, 80 метров.. smile.gif)
Solmyr2000
80mb unsure.gif ? Лучше я не буду делать хеньчманов unsure.gif unsure.gif .
Vhall
Сто раз говорили, как поменять required-версию ресурса. И качать нужно 300 кб. Поищи yes3.gif
-fenix-
Solmyr2000, поверь, дело там не в хенчманах, там и функции скриптовые новые и баги пофиксены...
Хенчей можно на всех версиях делать. Про хенчманов почитай одноименную темку в этом разделе.

QUOTE(Vhall @ Apr 3 2006, 21:24) [snapback]76093[/snapback]
Сто раз говорили, как поменять required-версию ресурса. И качать нужно 300 кб. Поищи

Дааа..., надо поискать будет. smile.gif
Dimanische
Здрасти. Мне вот нужен такой скриптик который делает так чтобы строка в диалоге появлялась только тогда когда герой к примеру второго уровня или любого другого
-fenix-
NSS
int StartingConditional()
{
if(GetHitDice(GetPCSpeaker()) > 1)
return TRUE;
return FALSE;
}


Читай Вопросы и ответы по тулсету и Скрипты для новичков.
Dimanische
Спасибо.
А вот еще нужны два скрипта: один делает так, чтобы при наступании игрока на триггер ему наносили повреждения через к примеру 30+-Random(10) секунд, а другой соответственно отключал бы предыдущий скрипт на OnExit. Можете выложить?
Aiwan
Посомтри в разделе скриптов. Помоему есть ДБа скрипт делающий дамаг при наступлении или Лекса, он мне кодысь писал. Поиском воспользуйся. yes3.gif
Артём
У меня вопрос?
Зачем и что это такое #include "nw_i0_plotwizard" в скрипте для получения опыта.
NSS
#include "nw_i0_plotwizard"
void main()
{
    PWGiveExperienceParty(GetPCSpeaker(), 100);
}


И еще!
Напишите, пожалуйста, скрипт для проверки опыта.
Мне надо чтобы при наличии у игрока нужного мне опыта текст появлялся в диалоге.
-fenix-
QUOTE(Артём @ Apr 5 2006, 11:45) [snapback]76335[/snapback]
Зачем и что это такое #include "nw_i0_plotwizard" в скрипте для получения опыта.

include - подключаемые к скрипту бибилотеки(другие скрипты).
В данном случае подключается инклюд nw_i0_plotwizard, в котором описаны новые функции, в частности PWGiveExperienceParty. Использовать данную функцию в скрипте без подключения инклюда не возможно, так как компилятор не поймет что она делает и что это собственно за функция.

QUOTE(Артём @ Apr 5 2006, 11:45) [snapback]76335[/snapback]
Напишите, пожалуйста, скрипт для проверки опыта.
Мне надо чтобы при наличии у игрока нужного мне опыта текст появлялся в диалоге.

NSS
// Get oCreature's experience.
int GetXP(object oCreature)

NSS
// Get the PC that is involved in the conversation.
// * Returns OBJECT_INVALID on error.
object GetPCSpeaker()


Руководствуясь этим и скриптом написанным тебе ранее, попробуй сам это написать. Скрипт совсем простой, подумай и все получется. Если что, спрашивай smile.gif
JCDenton
Феникс, если найдешь патч что на пол мега и позволяет запустить моды без дополнений, дай мне знать плиз biggrin.gif
Lex
эта фигулина меняет версию игры, позволяя обходить проверку (соотв. она меняет в nwmain.exe что-то) версии, но если модуль создан с использованием ресурсов, которых у тебя нет - будет бадабум.
Лучше патч ставь до 1.66 (не обязательно критикал 80метров, можно мануалами, так легче.)
JCDenton
у мя пиратская Леворка.. хз какая там версия... модуль требует "дополнение 2"
Lex
там 1.32 НВН + СОУ. А Требуется ХОТУ.
мдя.. тебе лучше найти диск НВН + СОУ + ХОТУ. Есть такие. И на такой схеме работать.
JCDenton
Пасиб за совет.
Elf-Drow
Великий вопрос! Великий вопрос!
Не знает ли кто, есть ли такая анимация, чтобы НПС как бы бил игрока?
Dik Morris
Анимации как таковой нет.
Попробуй, наложить на игрока бессмертие и парализовать. (Если это нужно)

NSS
void ActionAttack(
    object oAttackee,
    int bPassive = FALSE);

NSS
void SetImmortal(
    object oCreature,
    int bImmortal);


PS: чтобы в дальнейшем подобных проблем, не возникало,
ЗДЕСЬ есть переведенная часть Lexicona в разделе Reference, полный список всех анимационных констант.
Lex
из анимации ANIMATION_LOOPING_TALK_FORCEFUL - самая близкая. Но все равно на то, что кого-то колотят эт не похоже (колотят тут воздух)
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.
Invision Power Board © 2001-2025 Invision Power Services, Inc.