Помощь - Поиск - Пользователи - Календарь
Полная версия: Вопросы новичков
Город Мастеров > РЕДАКТОРЫ > 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
Nokoll
Rin Создай в своей Локе 2 Новых невидимых Обекта с тегом и ResRef LIGHT1. И второй с LIGHT2.
И поставь их рядом с точькой Появления ПК, дабы было видно!.
И всё А скрипт свой поставь на OnEnter Локации.
Lex
и если надо, чтобы это работало только при входе РС, то проверку поставь такую
Neverwinter Script Source
if (!GetIcPC(oPC)) return;
сразу после определения переменной oPC
Rin
А как можно запустить модуль чтобы быть DM?
И что (где) нужно прописать дабы человек выглядел как призрак?
Lex
QUOTE (Rin @ Apr 3 2005, 17:26)
А как можно запустить модуль чтобы быть DM?

через ДМ клиент.
запускай nwn.exe, там будет DMClient
QUOTE (Rin @ Apr 3 2005, 17:26)
И что (где) нужно прописать дабы человек выглядел как призрак?

наложить эффект. Их много и они разные.
Читай в лексиконе. (ссылку не него смотри в теме ССЫЛКИ)
Nokoll
У меня такие глюки в игре, если я ставлю скрипт на Он Энтер Локи, и накладываю невидимость на ПК. невидимы делаются все помогите исправить. Заранее Спасибо.
MasterMage
напиши скрипт, иначе как помочь. Причин может быть тьма! yes.gif
Lex
1. К таким вопросам надо выкладывать скрипт.
2. С такими вопросами в тему Скрипты.

3. Добавь проверку на игрока:
под этой строкой
Neverwinter Script Source
object oPC = GetEnteringObject();

сразу пиши эту.
Neverwinter Script Source
if (!GetIsPC(oPC)) return;

А потом все остальное.
MasterMage
Lex правильно!
---
Лекс тебе по делу говорит... А скриптик бы и я посмотрел...
Nokoll
LexПасиба, Если возникнут вопросы скриптик в нужную тему поставлю, яж не просто так здесь скрипт не поставил, ибо нельзя.
Lex
QUOTE (Nokoll @ Apr 3 2005, 22:53)
LexПасиба, Если возникнут вопросы скриптик в нужную тему поставлю, яж не просто так здесь скрипт не поставил, ибо нельзя.

Просто пипец.. А запостить в другую тему вместе со скриптом было сложно..
Rin
В общем пытался я это проделать....
Но (ну в ОнЕнтер в локации ставить тот скрипт) но теперь строча if (!GetIcPC(oPC)) return;
подсвечивается и говорит что нет правой скобки в выражении.
Без неё ошибка (кстати куда эту строку пихать?) переменная определённая без типа.
Плиз! Хелп!
Lex
бдя...а скрипт, куда ты пихаешь??

Neverwinter Script Source
void main()
{
object oPC = GetEnteringObject();
if (!GetIsPC(oPC)) return;
// далее по тексту
}


у тебя
QUOTE (Rin @ Apr 4 2005, 00:29)
if (!GetIcPC(oPC)) return;

тут неправильно написана функция. Is а не Ic

QUOTE (Rin @ Apr 4 2005, 00:29)
Без неё ошибка (кстати куда эту строку пихать?) переменная определённая без типа.

Пихать ее соотв после того, как определил переменную.


By Lemegeton: Извини, Лекс, строчечку я потер pardon.gif
ASA
Вопрос к отцам.
в ПЛ сделано отслеживание DebugMode (похоже на хеарбе ) но быстро не нашел.
сам вопрос: как увидеть ее значение(читай проверить)
и как установить в 0?
Lex
первый раз слышу об отслеживании Дебаг Мода... Как ты это выяснил?
Proydoha
Такой вот вопрос по хакам. Я скачал хак с головами, но они идут на слоты которые меня не устраивают.
Создатель этого хака видимо это учел и для таких как я написал в readme
QUOTE

You need to rename each of the new files to correspond to the new slot. 
    pfe0_head013.mdl ---> pfe0_head023.mdl
    pfe2_head013.mdl ---> pfe2_head023.mdl
    pfe0_head013.plt ---> pfe0_head023.plt

НО после переименования головы вместе с перемещением на новый слот теряют и текстуры. Что делать? dntknw.gif
Zik
QUOTE
Скрипт для сохранения здоровья и спеллов при перезаходе:
событие OnClientEnter модуля:


Neverwinter Script Source
//by _Kaa_ 20.05.30
#include "nw_o0_itemmaker"
void main()
{
object oPC = GetEnteringObject();
object oStore = GetModule(); 
string sStoreName = GetName(oPC)+GetPCPlayerName(oPC); // =[PC name] + [login name]
SetLocalString(oPC,"HP_MyIdString",sStoreName);
int iSavedHP = GetLocalInt(oStore,sStoreName);
if (iSavedHP != 0)
{
effect efDamage = EffectDamage(GetMaxHitPoints(oPC)-iSavedHP,DAMAGE_TYPE_MAGICAL,DAMAGE_POWER_ENERGY);
ApplyEffectToObject(DURATION_TYPE_INSTANT,efDamage,oPC);
}

int k,j,nSpells;
for (k=1; k < 510; k++)
{
nSpells = GetLocalArrayInt(oStore,sStoreName+"_spells",k);
if (nSpells)
  for (j=0; j <= GetHasSpell(k,oPC)-nSpells; j++) DecrementRemainingSpellUses(oPC, k);
}
}





OnClientLeave


Neverwinter Script Source
//by _Kaa_ 20.05.30
#include "nw_o0_itemmaker"
void main()
{
object oPC = GetExitingObject();
object oStore = GetModule();
string sStoreName = GetLocalString(oPC,"HP_MyIdString");
SetLocalInt(oStore, sStoreName, GetCurrentHitPoints(oPC));
int k,nSpells;
for (k=1;k<400;k++)
{
nSpells = GetHasSpell(k,oPC);
if (nSpells)
  SetLocalArrayInt(oStore,sStoreName+"_spells",k,nSpells);
}
}




Доброго вам времени суток. Я взял эти скрипты (с сохранением копирайтов _Kaa_ конечно smile.gif )
Но на самом деле заклинания они не сбрасывают как надо - если скастовать все имеющиеся, то при перезаходе уберется только по 1 заклинанию от каждого круга. Кто - то тут уже писал, что это из-за того, что скрипт написан давно, а с выходом ХОТУ количество спеллов прибавилось. Я поэксперементировал с разными числами, но все та же картина. Никто не подскажет какие же все таки числа ставить? smile.gif (Your game version is: 1.65.8066 English)
ASA
QUOTE (Lex @ Apr 5 2005, 14:30)
первый раз слышу об отслеживании Дебаг Мода... Как ты это выяснил?

ПЛ на КД, часть 2 в осаде. патчей не стояло.
зашел в лагерь орков. Лень было мучиться с босом.
пауза, ввожу:
DebugMode 1
dm_god (или как -то так)
результат- примерно 6 секунд или 1 раунд- герой бессмертный. потом читерство само прекарщается.
выснил , что оказывается DebugMode автоматом становиться в 0 видимо по хеарбу.
правда это не защищает от читерства- но приходиться мучиться smile.gif нажимая паузу и вводя постояноо дебугмоде и нужные команды.
Leon PRO
QUOTE
результат- примерно 6 секунд или 1 раунд- герой бессмертный. потом читерство само прекарщается.
выснил , что оказывается DebugMode автоматом становиться в 0 видимо по хеарбу.
правда это не защищает от читерства- но приходиться мучиться  нажимая паузу и вводя постояноо дебугмоде и нужные команды.

Даааа ужжж. Российские читеры самые терпеливые в мире +)
Lex
Аа... smile.gif
У меня просто на ХБ модуля стоит
SetPlotFlag(GetFirstPC(),FALSE);
гы
Добавлено в [mergetime]1112798672[/mergetime]
Зачем писал, не помню...против какого-то бага с бессмертием... Но баг вроде по другому залечил, а строка осталась. ГЫ.
Античитерский финт. smile.gif
Aiwan
QUOTE (Lex @ Apr 6 2005, 20:43)
Античитерский финт.

Такс.. такс... yes.gif rolleyes.gif Беру на вооружение.
Lex
Гы..тока его надо доработать. Те если тебе надо, чтобы РС был плотовым (мульт или какая другая ситуация) то надо локалку вешать. Если локалки нету, то плотовый флаг снимать.
ASA
во как smile.gif оказывется и ламерсике вопросы привносят знания отцам smile.gif
to Aiwen
если не лень то оттестируй фишку
и выложи скрипт- защита от читерсва
кстати лоад/сейв тоже чит smile.gif особенно если частый smile.gif
так вот полностью от лоада защититься легко - на онентер арии
или есть еще варианты?
а то у этого- для каждой арии прописывать надо sad.gif и следить за флагом при перемещениях.
to Lex
к вопросу о редактировании модуля и влиянии на сейв
по эксперементировал- sad.gif не изменения ни диалога ни скриптов не влияют на сейв модуля.
НО то что влияло- это изменение не моудя а модуля как главы т.е. *.nwn
ты как-то упоминал что биотвари сделали апдейт сейвов с глав своих smile.gif
вот наврено так.
Анамиэль
У меня такая проблемка возникла: нпс не ходит по своим вейпоинтам после того, как его отводят с них. Т.е. он идет из точки А в точку Б,там разворачивается идет обратно,но если на него например напасть и увести подальше,то на "свое" место он уже не возвращается...Сколько не билась я с этим,ничего не получается,хоть застрелись tease.gif swoon.gif
Насчет подписи в форуме скажу что не моя biggrin.gif ,содрала у кого то и вообще это offtopic.gif lol.gif
Lex
Если у тебя прописано только в onSpawn WalkWayPoint() то все ок.
Пропиши это в ХБ непися.


QUOTE
Слабый пол сильнее сильного в силу слабости сильного пола к слабому pardon.gif

Хм...видел на каком-то форуме такую подпись...вспомню, скажу.
Aiwan
Анамиэль а чем вы заняты? rolleyes.gif Просто не часто дам встретишь интересующихся такими вещами.
Анамиэль
QUOTE (Aiwan @ Apr 11 2005, 21:53)
Анамиэль а чем вы заняты?  rolleyes.gif  Просто не часто дам встретишь интересующихся такими вещами.

//просто интересуюсь НВН,но так как прошла все части yes.gif (кроме вашего творения), то начала делать моды для игры...но на любительском уровне yu.gif


Lex: все моды не от Bioware на любительском уровне. smile.gif
Добро пожаловать к нам! biggrin.gif
DarkCron
1)как сделать так чтоб на человеке был виден плащ?
установил CEP, тереотически там это уже реализовано. какой хак за это отвечат? в 2)том же CEP'e есть новые аватары, но в игрок их выбрать не может. есть фаил portrets.2da я его и в папку portraits и в override се равно выбрать не мона. Че не так делаю?
3) ну и тупой вопрос, можно ли при выборе чара добавить еще другие видов лиц(причесок
Lex
2. в portrets.2da посмотри, там у портретов какая расса стоит
CODE

2001    won1_         0      6      ****            0      ****  

Вот такая строка у меня в 2дашке и я этот портрет могу игроком выбрать. (смотри чтобы расса и пол были такими, которыми игрок может быть. Ясное дело что портреты нежити игроку недоступны smile.gif. Но это все можно поправить)
3. Можно. Есть такие хаки, что добавляют новые головы. Посмотри на валуте (в поисковике тамошнем введи Head, он тебе сразу выдаст кучу хаков)
Aiwan
1. Ну его надо надеть. Сам плащь доступен обычно при подключении в свойствах брони, перещелкай верхние виды, там где шея, и появятся твои плащи.
2. Игроку портреты нужны в папке "portraits" НВН.
3. Можно, добавь в свою версию хак с ними и выбирай. (Хотя я тут не пробовал, но по идеи должно...)
DarkCron
QUOTE (Aiwan @ Apr 22 2005, 18:40)
1. Ну его надо надеть. Сам плащь доступен обычно при подключении в свойствах брони, перещелкай верхние виды, там где шея, и появятся твои плащи.

я имел ввду чтоб визуально было видно плящь на игроке, а не в инвентаре. типа как видно когда одеваеш шлем, так и одеть плащь.. дето есть этот хак unsure.gif
][umepa
не aiwan правилино говорит качаешь хак крафтишь броник , neck(шею) и тама будет плащ вроде в ссылках есть yes.gif
Lex
а чтобы он появлялся, когда одеваешь плащ, это надо скрипт писать, который модель neck меняет.
dynadan
Привет всем Мастерам!
Я ещё только начинаю знакомиться с тулсетом и у меня возник важный вопрос.
Я хотел бы реализовать в своём модуле следующее:

Если главного героя(игрока) убьют в определённой локации, то на этом модуль заканчивается.
(а ещё хорошо бы, чтобы ещё появлялось тестовое сообщение о том, что модуль пройден)

Заранее благодарю
Lex
Neverwinter Script Source
void main()
{
    object oPlayer = GetLastPlayerDied();
    string sDeathMessage = "TEXT";
    DelayCommand(1.0, ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_IMP_DEATH), oPlayer));
    DelayCommand(4.0, PopUpDeathGUIPanel(oPlayer, FALSE, TRUE, 0, sDeathMessage));
}

Посли смерти появляется табличка с кнопками "Загрузить" и "Выход". Респауна нет.
Соотв. если тебе надо, чтобы при смерти в одних локах текст был один, а в других другой, то сделай так:

Neverwinter Script Source
void main()
{
    object oPlayer = GetLastPlayerDied();
    object oDM = GetNearestObjectByTag("WP_DEATH_MESSAGE",oPC,1);
    string sDeathMessage;
    if (GetIsObjectValid(oDM))
              sDeathMessage = GetName(oDM);
    else    sDeathMessage = "Текст по дефолту, если нету поинта в этой локе";
    DelayCommand(1.0, ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_IMP_DEATH), oPlayer));
    DelayCommand(4.0, PopUpDeathGUIPanel(oPlayer, FALSE, TRUE, 0, sDeathMessage));
}

Теперь в каждой локе ставь поинт с тэгом WP_DEATH_MESSAGE и в поле имя пиши текст сообщения при смерти.

скрипт не проверял.
defolt
QUOTE (Lex @ Apr 23 2005, 07:08)
а чтобы он появлялся, когда одеваешь плащ, это надо скрипт писать, который модель neck меняет.


такое возможно?
balrog
У меня вопрос. Можно ли шоб перс... ну скажм при заклинание, менял модель... ну типо как превращение, но чтобы имя исчезло, а появилось имя той модели.
Lex
Я так понял, что надо, чтобы перс поменял модель и имя? Нет, так вроде нельзя.
QUOTE (defolt @ May 4 2005, 11:59)
такое возможно?

да
Aiwan
QUOTE (defolt @ May 4 2005, 13:59)
такое возможно?

Но это не нужно для того случая что описал DarkCron . Он попросту не знает где эти плащи прилеплены crazy.gif А прилеплены они на шеях.
defolt
да мне просто интересно ...
просто не очень нравится что броник как единое целое надевается...
balrog
QUOTE
Я так понял, что надо, чтобы перс поменял модель и имя? Нет, так вроде нельзя.

А что происходит, когда перс в животнго вселяется? Только камера приковывается, и контроль действий? Тогда может чел спаунит животное, автоматически вселяется в него, а его агрок... становится невидимым, а когда перс "выселяется" из зверюшки, то его игрок становится видимым, перекидывается к звердю, а зверь умирает?
Buldog
Имя нельзя, а вот модель, кажись, можно, вот такая функция есть, тока я ей еще ниразу не пользовался smile.gif
Neverwinter Script Source
// Sets the creature's appearance type to the value specified (uses the APPEARANCE_TYPE_XXX constants)
void SetCreatureAppearanceType(object oCreature, int nAppearanceType)
balrog
Спасиб..... всвязи с отсутстивем Аваддона.... буду задавать мноооого вопросов теперь pardon.gif ибо хочц пристиж класса два новых создать
Лито
QUOTE
а чтобы он появлялся, когда одеваешь плащ, это надо скрипт писать, который модель neck меняет.

А вот это интересно, как такое реализовать? OnEquip видимо, а дальше? smile.gif
dynadan
Спасибо что нашёл время ответить на мои вопросы, но я ещё полный чайник в авроре, и поэтому не совсем понимаю к какому событию эти скрипты прикручивать???

насколько я понял при использовании 1-го скрипта табличка с кнопками "Загрузить" и "Выход", без респауна будет появляться во всех локациях при смерти игрока, а мне нужно чтобы в определённой…
Может я не чётко сформулировал в своём посте, что мне надо?
Попробую по-другому:
IF главный герой умер AND находился в такой-то локации
THEN конец модуля *

Либо:
IF главный герой умер AND находился в такой-то локации
THEN вывести тестовое сообщение AND конец модуля.



*(Я слышал краем уха, что для этого применяют end_module, или что-то в этом роде)


p.s. Второй скрипт не компилируется.
Lex
QUOTE (dynadan @ May 7 2005, 19:16)
Может я не чётко сформулировал в своём посте, что мне надо?

четко. Для этого и был второй скрипт.
QUOTE (dynadan @ May 7 2005, 19:16)
p.s. Второй скрипт не компилируется.

Ну, опечатка там вышла. Не oPC а oPlayer надо было писать. Вот:

Neverwinter Script Source
void main()
{
    object oPlayer = GetLastPlayerDied();
    object oDM = GetNearestObjectByTag("WP_DEATH_MESSAGE",oPlayer,1);
    string sDeathMessage;
    if (GetIsObjectValid(oDM))
              sDeathMessage = GetName(oDM);
    else    sDeathMessage = "DEFAULT TEXT MESSAGE";
    DelayCommand(1.0, ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_IMP_DEATH), oPlayer));
    DelayCommand(4.0, PopUpDeathGUIPanel(oPlayer, FALSE, TRUE, 0, sDeathMessage));
}


конец игры это
Neverwinter Script Source
EndGame("");

Ставь где надо. В твоем случае это в конце я так понял... Тогда если у тебя конец модуля, нафиг вообще кнопки оставлять?

Вообще я написал общий скрипт. Под свои нужды его ессно надо (или не надол) где-то модифицировать.
dynadan
Мне нужно написать скрипт, который выполнял бы следующие действие:

IF текущая локация, в которой находиться игрок = Area006;
THEN EndGame("");
ELSE
Обычный скрипт при смерти игрока(nw_o0_death)

этот скрипт должен выполнятся при смерти игрока
Т.е. стоять в Module Properties на событии OnPlayerDeath
Lex
Neverwinter Script Source
void main()
{
    object oPlayer = GetLastPlayerDied();
    string sDeathMessage;
    if (GetTag(GetArea(oPlayer))=="Area006")
              EndGame("");
    else    ExecuteScript("nw_o0_death",OBJECT_SELF);


Или внедрить этот кусок кода в сам nw_o0_death.
-fenix-
Прочитал туториал по авроре и у меня возник один вопрос.

Там написано, что можно вызывать из меню объекта пункт с координатами. И таким образом менять положение объекта в пространстве.

У меня такого пункта нет, наверное, это из-за того, что версия у меня 1.30, а статья написана под версию 1.32.

Можно какнить грейдануть мой NWN.
Buldog
Ну можешь скачать патч у биотварей, но там сразу до 1.65, незнаю, есть ли у них архив...
Добавлено в [mergetime]1115890531[/mergetime]
Только если у тебя пиратская версия придется еще кряк поискать. А что бы пропатчиться найти оригинальные экзешник и диалог.тлк.
Aiwan
QUOTE (-fenix- @ May 12 2005, 15:19)
У меня такого пункта нет, наверное, это из-за того, что версия у меня 1.30, а статья написана под версию 1.32.

Верно. Патчуйся. 1.30>1.31>1.32 можно скачать с нашего сайта. Оттуда и оригинальные файлы версии 1.30.
http://www.wrg.ru/files/?cr=./nwn
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.
Invision Power Board © 2001-2024 Invision Power Services, Inc.