Rin Создай в своей Локе 2 Новых невидимых Обекта с тегом и ResRef LIGHT1. И второй с LIGHT2.
И поставь их рядом с точькой Появления ПК, дабы было видно!.
И всё А скрипт свой поставь на OnEnter Локации.
и если надо, чтобы это работало только при входе РС, то проверку поставь такую
Neverwinter Script Source |
if (!GetIcPC(oPC)) return; |
сразу после определения переменной oPC
А как можно запустить модуль чтобы быть DM?
И что (где) нужно прописать дабы человек выглядел как призрак?
QUOTE (Rin @ Apr 3 2005, 17:26) |
А как можно запустить модуль чтобы быть DM? |
через ДМ клиент.
запускай nwn.exe, там будет DMClient
QUOTE (Rin @ Apr 3 2005, 17:26) |
И что (где) нужно прописать дабы человек выглядел как призрак? |
наложить эффект. Их много и они разные.
Читай в лексиконе. (ссылку не него смотри в теме ССЫЛКИ)
У меня такие глюки в игре, если я ставлю скрипт на Он Энтер Локи, и накладываю невидимость на ПК. невидимы делаются все помогите исправить. Заранее Спасибо.
MasterMage
Apr 3 2005, 18:25
напиши скрипт, иначе как помочь. Причин может быть тьма!
1. К таким вопросам надо выкладывать скрипт.
2. С такими вопросами в тему Скрипты.
3. Добавь проверку на игрока:
под этой строкой
Neverwinter Script Source |
object oPC = GetEnteringObject(); |
сразу пиши эту.
Neverwinter Script Source |
if (!GetIsPC(oPC)) return; |
А потом все остальное.
MasterMage
Apr 3 2005, 18:34
Lex правильно!
---
Лекс тебе по делу говорит... А скриптик бы и я посмотрел...
LexПасиба, Если возникнут вопросы скриптик в нужную тему поставлю, яж не просто так здесь скрипт не поставил, ибо нельзя.
QUOTE (Nokoll @ Apr 3 2005, 22:53) |
LexПасиба, Если возникнут вопросы скриптик в нужную тему поставлю, яж не просто так здесь скрипт не поставил, ибо нельзя. |
Просто пипец.. А запостить в другую тему вместе со скриптом было сложно..
В общем пытался я это проделать....
Но (ну в ОнЕнтер в локации ставить тот скрипт) но теперь строча if (!GetIcPC(oPC)) return;
подсвечивается и говорит что нет правой скобки в выражении.
Без неё ошибка (кстати куда эту строку пихать?) переменная определённая без типа.
Плиз! Хелп!
бдя...а скрипт, куда ты пихаешь??
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: Извини, Лекс, строчечку я потер
Вопрос к отцам.
в ПЛ сделано отслеживание DebugMode (похоже на хеарбе ) но быстро не нашел.
сам вопрос: как увидеть ее значение(читай проверить)
и как установить в 0?
первый раз слышу об отслеживании Дебаг Мода... Как ты это выяснил?
Proydoha
Apr 5 2005, 21:08
Такой вот вопрос по хакам. Я скачал хак с головами, но они идут на слоты которые меня не устраивают.
Создатель этого хака видимо это учел и для таких как я написал в 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
|
НО после переименования головы вместе с перемещением на новый слот теряют и текстуры. Что делать?
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_ конечно

)
Но на самом деле заклинания они не сбрасывают как надо - если скастовать все имеющиеся, то при перезаходе уберется только по 1 заклинанию от каждого круга. Кто - то тут уже писал, что это из-за того, что скрипт написан давно, а с выходом ХОТУ количество спеллов прибавилось. Я поэксперементировал с разными числами, но все та же картина. Никто не подскажет какие же все таки числа ставить?

(Your game version is: 1.65.8066 English)
QUOTE (Lex @ Apr 5 2005, 14:30) |
первый раз слышу об отслеживании Дебаг Мода... Как ты это выяснил? |
ПЛ на КД, часть 2 в осаде. патчей не стояло.
зашел в лагерь орков. Лень было мучиться с босом.
пауза, ввожу:
DebugMode 1
dm_god (или как -то так)
результат- примерно 6 секунд или 1 раунд- герой бессмертный. потом читерство само прекарщается.
выснил , что оказывается DebugMode автоматом становиться в 0 видимо по хеарбу.
правда это не защищает от читерства- но приходиться мучиться

нажимая паузу и вводя постояноо дебугмоде и нужные команды.
Leon PRO
Apr 6 2005, 16:11
QUOTE |
результат- примерно 6 секунд или 1 раунд- герой бессмертный. потом читерство само прекарщается. выснил , что оказывается DebugMode автоматом становиться в 0 видимо по хеарбу. правда это не защищает от читерства- но приходиться мучиться нажимая паузу и вводя постояноо дебугмоде и нужные команды. |
Даааа ужжж. Российские читеры самые терпеливые в мире +)
Аа...

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

Беру на вооружение.
Гы..тока его надо доработать. Те если тебе надо, чтобы РС был плотовым (мульт или какая другая ситуация) то надо локалку вешать. Если локалки нету, то плотовый флаг снимать.
во как

оказывется и ламерсике вопросы привносят знания отцам

to Aiwen
если не лень то оттестируй фишку
и выложи скрипт- защита от читерсва
кстати лоад/сейв тоже чит

особенно если частый

так вот полностью от лоада защититься легко - на онентер арии
или есть еще варианты?
а то у этого- для каждой арии прописывать надо

и следить за флагом при перемещениях.
to Lex
к вопросу о редактировании модуля и влиянии на сейв
по эксперементировал-

не изменения ни диалога ни скриптов не влияют на сейв модуля.
НО то что влияло- это изменение не моудя а модуля как главы т.е. *.nwn
ты как-то упоминал что биотвари сделали апдейт сейвов с глав своих

вот наврено так.
Анамиэль
Apr 11 2005, 17:02
Если у тебя прописано только в onSpawn WalkWayPoint() то все ок.
Пропиши это в ХБ непися.
QUOTE |
Слабый пол сильнее сильного в силу слабости сильного пола к слабому  |
Хм...видел на каком-то форуме такую подпись...вспомню, скажу.
Анамиэль а чем вы заняты?

Просто не часто дам встретишь интересующихся такими вещами.
Анамиэль
Apr 12 2005, 09:30
QUOTE (Aiwan @ Apr 11 2005, 21:53) |
Анамиэль а чем вы заняты? Просто не часто дам встретишь интересующихся такими вещами. |
DarkCron
Apr 22 2005, 17:49
1)как сделать так чтоб на человеке был виден плащ?
установил CEP, тереотически там это уже реализовано. какой хак за это отвечат? в 2)том же CEP'e есть новые аватары, но в игрок их выбрать не может. есть фаил portrets.2da я его и в папку portraits и в override се равно выбрать не мона. Че не так делаю?
3) ну и тупой вопрос, можно ли при выборе чара добавить еще другие видов лиц(причесок
2. в portrets.2da посмотри, там у портретов какая расса стоит
CODE |
2001 won1_ 0 6 **** 0 ****
|
Вот такая строка у меня в 2дашке и я этот портрет могу игроком выбрать. (смотри чтобы расса и пол были такими, которыми игрок может быть. Ясное дело что портреты нежити игроку недоступны

. Но это все можно поправить)
3. Можно. Есть такие хаки, что добавляют новые головы. Посмотри на валуте (в поисковике тамошнем введи Head, он тебе сразу выдаст кучу хаков)
1. Ну его надо надеть. Сам плащь доступен обычно при подключении в свойствах брони, перещелкай верхние виды, там где шея, и появятся твои плащи.
2. Игроку портреты нужны в папке "portraits" НВН.
3. Можно, добавь в свою версию хак с ними и выбирай. (Хотя я тут не пробовал, но по идеи должно...)
DarkCron
Apr 22 2005, 18:49
QUOTE (Aiwan @ Apr 22 2005, 18:40) |
1. Ну его надо надеть. Сам плащь доступен обычно при подключении в свойствах брони, перещелкай верхние виды, там где шея, и появятся твои плащи. |
я имел ввду чтоб визуально было видно плящь на игроке, а не в инвентаре. типа как видно когда одеваеш шлем, так и одеть плащь.. дето есть этот хак
][umepa
Apr 23 2005, 06:28
не aiwan правилино говорит качаешь хак крафтишь броник , neck(шею) и тама будет плащ вроде в ссылках есть
а чтобы он появлялся, когда одеваешь плащ, это надо скрипт писать, который модель neck меняет.
dynadan
May 3 2005, 19:15
Привет всем Мастерам!
Я ещё только начинаю знакомиться с тулсетом и у меня возник важный вопрос.
Я хотел бы реализовать в своём модуле следующее:
Если главного героя(игрока) убьют в определённой локации, то на этом модуль заканчивается.
(а ещё хорошо бы, чтобы ещё появлялось тестовое сообщение о том, что модуль пройден)
Заранее благодарю
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 и в поле имя пиши текст сообщения при смерти.
скрипт не проверял.
QUOTE (Lex @ Apr 23 2005, 07:08) |
а чтобы он появлялся, когда одеваешь плащ, это надо скрипт писать, который модель neck меняет. |
такое возможно?
У меня вопрос. Можно ли шоб перс... ну скажм при заклинание, менял модель... ну типо как превращение, но чтобы имя исчезло, а появилось имя той модели.
Я так понял, что надо, чтобы перс поменял модель и имя? Нет, так вроде нельзя.
QUOTE (defolt @ May 4 2005, 11:59) |
такое возможно? |
да
QUOTE (defolt @ May 4 2005, 13:59) |
такое возможно? |
Но это не нужно для того случая что описал
DarkCron . Он попросту не знает где эти плащи прилеплены

А прилеплены они на шеях.
да мне просто интересно ...
просто не очень нравится что броник как единое целое надевается...
QUOTE |
Я так понял, что надо, чтобы перс поменял модель и имя? Нет, так вроде нельзя. |
А что происходит, когда перс в животнго вселяется? Только камера приковывается, и контроль действий? Тогда может чел спаунит животное, автоматически вселяется в него, а его агрок... становится невидимым, а когда перс "выселяется" из зверюшки, то его игрок становится видимым, перекидывается к звердю, а зверь умирает?
Имя нельзя, а вот модель, кажись, можно, вот такая функция есть, тока я ей еще ниразу не пользовался

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) |
Спасиб..... всвязи с отсутстивем Аваддона.... буду задавать мноооого вопросов теперь

ибо хочц пристиж класса два новых создать
QUOTE |
а чтобы он появлялся, когда одеваешь плащ, это надо скрипт писать, который модель neck меняет. |
А вот это интересно, как такое реализовать? OnEquip видимо, а дальше?
dynadan
May 7 2005, 18:16
Спасибо что нашёл время ответить на мои вопросы, но я ещё полный чайник в авроре, и поэтому не совсем понимаю к какому событию эти скрипты прикручивать???
насколько я понял при использовании 1-го скрипта табличка с кнопками "Загрузить" и "Выход", без респауна будет появляться во всех локациях при смерти игрока, а мне нужно чтобы в определённой…
Может я не чётко сформулировал в своём посте, что мне надо?
Попробую по-другому:
IF главный герой умер AND находился в такой-то локации
THEN конец модуля *
Либо:
IF главный герой умер AND находился в такой-то локации
THEN вывести тестовое сообщение AND конец модуля.
*(Я слышал краем уха, что для этого применяют end_module, или что-то в этом роде)
p.s. Второй скрипт не компилируется.
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
May 9 2005, 15:56
Мне нужно написать скрипт, который выполнял бы следующие действие:
IF текущая локация, в которой находиться игрок = Area006;
THEN EndGame("");
ELSE
Обычный скрипт при смерти игрока(nw_o0_death)
этот скрипт должен выполнятся при смерти игрока
Т.е. стоять в Module Properties на событии OnPlayerDeath
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-
May 12 2005, 12:19
Прочитал туториал по авроре и у меня возник один вопрос.
Там написано, что можно вызывать из меню объекта пункт с координатами. И таким образом менять положение объекта в пространстве.
У меня такого пункта нет, наверное, это из-за того, что версия у меня 1.30, а статья написана под версию 1.32.
Можно какнить грейдануть мой NWN.
Buldog
May 12 2005, 12:34
Ну можешь скачать патч у биотварей, но там сразу до 1.65, незнаю, есть ли у них архив...
Добавлено в [mergetime]1115890531[/mergetime]
Только если у тебя пиратская версия придется еще кряк поискать. А что бы пропатчиться найти оригинальные экзешник и диалог.тлк.
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
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста,
нажмите сюда.