Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
Jul 3 2018, 16:54
Сообщение
#4986
|
|
|
Level 1 Класс: Обыватель Характер: Lawful Good Раса: Человек |
Neverwinter Nights 2 Редактор не давно решил попробовать редактор построил свою деревню.у меня встал вопрос как сделать переход на другую зону точней на другую карту не помогу разобраться второй день прошу помогите уже псих берет
|
Jul 3 2018, 18:12
Сообщение
#4987
|
|
|
Миловидный Бегрюссунг Класс: Воин Характер: Chaotic Good Раса: Человек NWN: Модмейкер Проклятие Левора Порядок Времени |
Почитайте мануал для первого НВН, там почти все подобно. Надо начертить триггер и установить точку куда сделать переход.
|
Oct 17 2018, 13:43
Сообщение
#4988
|
|
|
Level 3 ![]() Класс: Пьяный Мастер Характер: True Neutral Раса: Человек |
Доброго времени суток, возник новый вопрос. Скачал хак с одного американского сервера, там есть очень огромное количество анимаций, но кастомных только 20. Как обосновать привязку других анимаций к персонажам и в каких файлах это искать?
|
Oct 20 2018, 20:42
Сообщение
#4989
|
|
|
Level 11 Класс: Волшебник Характер: Neutral Good Раса: Фея NWN: Скриптинг [PW] Край Лесов |
Это фенотипы
а сами файлы анимации все a_ab и тд называются |
Nov 12 2018, 22:57
Сообщение
#4990
|
|
|
Level 5 Класс: Маг Характер: Chaotic Good Раса: Человек NWN: Модмейкер История дома Салливан |
Всем, кто еще сюда заглядывает, привет!
Как обычно глупый вопрос: У Айвана есть замечательный скрипт на хартбит нпс, с помощью которого НПС после нападения становится нейтральным и начинает диалог с РС. Возможно ли сделать это дважды? Нападает, передумывает, снова нападает, опять сдается (ну вот такой злодей у нас мятущийся (IMG:style_emoticons/kolobok_light/biggrin.gif) ) Так как в оригинальном скрипте присутствовала переменная (менялась с TRUE на FALSE), чтобы один и тот же блок не повторялся дважды, я полагаю, что надо сделать что-то типа if... else if.. Но ужасно не сильна в этом деле. Сейчас основа скрипта выглядит так: Neverwinter Script if(GetLocalInt(oSelf, "STOP")==1) { if (iCurHP < iMaxHP/2) { ////всякие разные штуки } else if (GetLocalInt(oSelf, "STOP")== 2) { if (iCurHP < iMaxHP/4) { ////всякие разные штуки [2] } Первый блок работает, а второй нет. В чем ошибка? Переменные все присваиваю, скрипт компилится, скобки все на месте. P.S. Специально пишу в тему новичков, так как понимаю, что тут очень глупое и очевидное решение, а я не въезжаю. |
Nov 23 2018, 23:37
Сообщение
#4991
|
|
|
Level 11 Класс: Волшебник Характер: Neutral Good Раса: Фея NWN: Скриптинг [PW] Край Лесов |
Цитата if(GetLocalInt(oSelf, "STOP")==1) { if (iCurHP < iMaxHP/2) { ////всякие разные штуки } else if (GetLocalInt(oSelf, "STOP")== 2) { if (iCurHP < iMaxHP/4) { ////всякие разные штуки [2] } У int переменных в нвн-скриптинге есть неприятный момент переменная 1 всегда может читаться как TRUE и переменная 2 тоже, бывает глючит и не воспринимает, не знаю почему, но я неоднократно с этим сталкивалась... поэтому обычно я всегда делала так: Neverwinter Script int nNum = GetLocalInt(oSelf, "STOP"); switch (nNum) { case 1:{ ////всякие разные штуки 1 break;} case 2:{ ////всякие разные штуки 2 break;} } но есть еще вариант, просто использовать разные названия переменных. Neverwinter Script if (GetLocalInt(oSelf, "STOP2")) { if (iCurHP < iMaxHP/4) { ////всякие разные штуки [2] } } else if(GetLocalInt(oSelf, "STOP1")) { if (iCurHP < iMaxHP/2) { ////всякие разные штуки } } П.С. Наверное, я поздно ответила (IMG:style_emoticons/kolobok_light/smile.gif) ) Сообщение отредактировал Melisse - Nov 23 2018, 23:39 |
Nov 24 2018, 09:20
Сообщение
#4992
|
|
|
Миловидный Бегрюссунг Класс: Воин Характер: Chaotic Good Раса: Человек NWN: Модмейкер Проклятие Левора Порядок Времени |
Heather, все очень просто, ошибка логики в твоем скрипте. Объясняю.
Neverwinter Script if(GetLocalInt(oSelf, "STOP")==1) { if (iCurHP < iMaxHP/2) { ////всякие разные штуки } else if (GetLocalInt(oSelf, "STOP")== 2) // этот блок не сработает. Тут получается так ЕСЛИ "STOP" равен 1 И ЕЩЕ ЕСЛИ "STOP" равно 2. { if (iCurHP < iMaxHP/4) { ////всякие разные штуки [2] } Neverwinter Script if(GetLocalInt(oSelf, "STOP")>=1) // Если переменная БОЛЬШЕ или РОВНА 1
{ if (iCurHP < iMaxHP/2) { ////всякие разные штуки } else if (GetLocalInt(oSelf, "STOP")== 2) { if (iCurHP < iMaxHP/4) { ////всякие разные штуки [2] } |
Nov 24 2018, 20:54
Сообщение
#4993
|
|
|
Level 5 Класс: Маг Характер: Chaotic Good Раса: Человек NWN: Модмейкер История дома Салливан |
Melisse, Aiwan, огромное спасибо! Совсем не поздно, так как на этом моменте я застряла и очень ждала ответ. Сама бы сделала, наверное, только через большой корявый "костыль" (IMG:style_emoticons/kolobok_light/biggrin.gif)
|
Nov 24 2018, 20:59
Сообщение
#4994
|
|
|
Миловидный Бегрюссунг Класс: Воин Характер: Chaotic Good Раса: Человек NWN: Модмейкер Проклятие Левора Порядок Времени |
(IMG:style_emoticons/kolobok_light/prankster2.gif) Если чаво могешь мне ПМку писать, я бывает в реале залипаю, сюда прихожу не часто.
|
Dec 1 2018, 00:57
Сообщение
#4995
|
|
|
Level 1 Класс: Тайный Лучник Характер: Lawful Good Раса: Элементаль |
Подскажите пожалуйста как скриптом забрать часть стакованных предметов? А то я как не пробую, он весь стак камней удаляет.
|
Dec 1 2018, 05:36
Сообщение
#4996
|
|
|
Миловидный Бегрюссунг Класс: Воин Характер: Chaotic Good Раса: Человек NWN: Модмейкер Проклятие Левора Порядок Времени |
Neverwinter Script // ВОЗВРАЩАЕТ КОЛИЧЕСТВО ПРЕДМЕТОВ В СТЕКЕ В ИНВЕНТАРЕ ОБЪЕКТА
int GetItemStackNumber(string sTagItem, object oTarget=OBJECT_SELF); // УДАЛЯЕТ iNum КОЛИЧЕСТВО ПРЕДМЕТОВ В СТЕКЕ В ИНВЕНТАРЕ ОБЪЕКТА void RemoveItemStackNumber(string sTagItem, int iNum = 1, object oTarget=OBJECT_SELF); //------------------------------------------------------------------------------ int GetItemStackNumber(string sTagItem, object oTarget=OBJECT_SELF) { object oItem = GetFirstItemInInventory(oTarget); int iNum = 0; while (GetIsObjectValid(oItem)) { if (GetTag(oItem) == sTagItem) { iNum = iNum+GetItemStackSize(oItem); } oItem = GetNextItemInInventory(oTarget); } return iNum; } //------------------------------------------------------------------------------ void RemoveItemStackNumber(string sTagItem, int iNum = 1, object oTarget=OBJECT_SELF) { object oItem = GetFirstItemInInventory(oTarget); while (GetIsObjectValid(oItem) && (iNum != 0)) { if (GetTag(oItem) == sTagItem) { int i = GetItemStackSize(oItem); if (i > iNum) { SetItemStackSize(oItem, GetItemStackSize(oItem)-iNum); iNum = 0; } else { DestroyObject(oItem); iNum = iNum-i; } } oItem = GetNextItemInInventory(oTarget); } } |
Dec 5 2018, 20:58
Сообщение
#4997
|
|
|
Level 3 ![]() Класс: Бледный Мастер Характер: Chaotic Neutral Раса: Человек |
1. Как изменить статы призываемых заклинаниями и эпик заклинаниями существ? Что и чем редактировать?
2. Как сделать, чтобы на уровнях 20+ призывались другие самоны или менялись статы прежних? |
Dec 6 2018, 00:18
Сообщение
#4998
|
|
|
Миловидный Бегрюссунг Класс: Воин Характер: Chaotic Good Раса: Человек NWN: Модмейкер Проклятие Левора Порядок Времени |
1. Здрасти.
2. Зачем? |
Dec 6 2018, 09:08
Сообщение
#4999
|
|
|
Level 3 ![]() Класс: Бледный Мастер Характер: Chaotic Neutral Раса: Человек |
1. Добрый день.
2. Чтобы самоны были актуальны на эпических уровнях. |
Dec 6 2018, 16:59
Сообщение
#5000
|
|
|
Миловидный Бегрюссунг Класс: Воин Характер: Chaotic Good Раса: Человек NWN: Модмейкер Проклятие Левора Порядок Времени |
Я могу сказать не самый правильный метод, но он звучит так. Ищем в синьке всех животных с параметрами, меняем их добавляя в синьку, ищем все скрипты со старыми ресрефами животных, меняем на новые ресрефы для спавна нужных. Дальше берем экспортируем все и засовываем в оверрайд, что бы любой модуль работал на изменениях. Как-то так. Не факт что оптимально.
|
Dec 7 2018, 19:26
Сообщение
#5001
|
|
|
Level 3 ![]() Класс: Бледный Мастер Характер: Chaotic Neutral Раса: Человек |
я правильно понял. в палитре ищу нужных существ, у них будет приставка summon или в настройках что-то подобное, а тогда уже их меняю, добавляю как новые к палитре. Ищу скрипты сумона (где искать кстати) и добавляю теги новых существ? как именно экспортировать чтобы потом закинуть в override?
И тоже самое с формами друида\оборотня, они тоже считаются существами? или просто шкурками, которые изменить так же? |
Dec 7 2018, 21:50
Сообщение
#5002
|
|
|
Миловидный Бегрюссунг Класс: Воин Характер: Chaotic Good Раса: Человек NWN: Модмейкер Проклятие Левора Порядок Времени |
я правильно понял. в палитре ищу нужных существ, у них будет приставка summon или в настройках что-то подобное, а тогда уже их меняю, добавляю как новые к палитре. Да. При создании существ они будут создаваться с новым ResRef-ом, вот его надо будет менять в скриптах. Ищу скрипты сумона (где искать кстати) и добавляю теги новых существ? Не добавляю, а меняю. Старые в скриптах удаляю и вставляю новые моих существ. как именно экспортировать чтобы потом закинуть в override? Есть кнопка экспорта в тулсете. И тоже самое с формами друида\оборотня, они тоже считаются существами? или просто шкурками, которые изменить так же? Не знаю, но если шкурки одеваются на них, то ищем шкурки, создаем их с нужными свойствами а дальше я уже сказал... Опять же, я не утверждаю, что это самый правильный метод. |
Dec 8 2018, 16:43
Сообщение
#5003
|
|
|
Level 3 ![]() Класс: Бледный Мастер Характер: Chaotic Neutral Раса: Человек |
спасибо
|
Dec 9 2018, 14:15
Сообщение
#5004
|
|
|
Level 19 Класс: Воин Характер: Lawful Good Раса: Человек NWN: Скриптинг [PW] Gem of the North Край Лесов |
Полиморфы работают через эту штуку: http://nwn.wikia.com/wiki/Polymorph.2da
|
Dec 30 2018, 19:45
Сообщение
#5005
|
|
|
Level 3 ![]() Класс: Бледный Мастер Характер: Chaotic Neutral Раса: Человек |
Меняю скрипт x2_s2_sumgrund (фит палемастера призвать сильную нежить), строка для условия 30лвл вписываю resref нового демилича demilich003.
Экспортирую ресурсы, 2 файла: x2_s2_sumgrund скрипт и demilich003 файл моба. получается файл "lsd.erf". Копирую этот файл из папки erf в папку override. Не работает в офиц кампании (проверено на прелюдии и на х2 2 глава). При этом в модуле, в котором это было создано, работает. В файле *.erf при попытке импорта вижу: demilich003.utc -моб itIcredlichpr001.uti -шкура(менялась) itIcrewpdlich001.uti -когти(менялись) x2_s2_sumgrund.ncs x2_s2_sumgrund.nss -скрипты, не в курсе почему два файла. В чем может быть проблема? Нашел скрипт всех самонов 1-9 nw_s0_summon. Он вида if(GetHasFeat(FEAT_ANIMAL_DOMAIN_POWER)) //WITH THE ANIMAL DOMAIN { if(nSpellID == SPELL_SUMMON_CREATURE_I) { nFNF_Effect = VFX_FNF_SUMMON_MONSTER_1; sSummon = "NW_S_BOARDIRE"; } else if ====> дальше для самонов 2-9 else //WITOUT THE ANIMAL DOMAIN { if(nSpellID == SPELL_SUMMON_CREATURE_I) { nFNF_Effect = VFX_FNF_SUMMON_MONSTER_1; sSummon = "NW_S_badgerdire"; } else if ====> дальше для самонов 2-9 Как туда воткнуть код для призыва новых самонов на эпич. лвлах (21й - 1й эпик сум, 23-2й и т.п.) В начале добавить "int nCasterLevel = GetCasterLevel(OBJECT_SELF);" Как в блок WITOUT THE ANIMAL DOMAIN добавлять if (nCasterLevel >= 21) { eSummon = EffectSummonCreature("EPICbadgerdire"); } и так же для 23 25 и т.д? А после еще добавить три блока для Фокусировка, Большая Ф и эпич Ф на школе вызова, чтобы каждый из этих фитов призывал другого самона, но не нарушал предыдущих условий. Или может есть способ сделать код менее громоздким? П.С. Или для упрощение задачи, удалить условия для домена животного, но как тогда добавить блок для условий 21+ 23+ и т.д.? |
Dec 30 2018, 20:35
Сообщение
#5006
|
|
|
Миловидный Бегрюссунг Класс: Воин Характер: Chaotic Good Раса: Человек NWN: Модмейкер Проклятие Левора Порядок Времени |
Если не ошибаюсь, в override нужно класть ресурсы не запакованные. erf это уже в зипе упакован.
Насчет остального, нужно садится за тулсет и пробовать все варианты. Все что тут написано и создавалось на форуме делалось именно так. Универсальных ответов на все нет. Ставишь себе задачу, ищешь пути решения: фап, фап, фап... нашел! (IMG:style_emoticons/kolobok_light/wink3.gif) Делишься результатом с остальными. Как-то так. |
Dec 30 2018, 22:32
Сообщение
#5007
|
|
|
Level 3 ![]() Класс: Бледный Мастер Характер: Chaotic Neutral Раса: Человек |
Я нажал экспортировать, там есть только добавить ресурсы и далее сохранить, тип файла только *.erf. Как сделать не запакованные?
И еще помню есть фикс для тулсета, чтобы русский понимал и при ошибке скрипта не кракозябру выдавал. |
Dec 31 2018, 12:22
Сообщение
#5008
|
|
|
Level 3 ![]() Класс: Бледный Мастер Характер: Chaotic Neutral Раса: Человек |
Нашел как добавить в скрипты.
Осталось узнать как применить изменения к офиц кампании и при призые нового существа оно стоит неподвижно. Видимо нужен другой скрипт onspawn или еще что, ибо я не знаю как находить существ призыва по тегам(ресфам) и брал их из палитры, а там они враждебные мобы. |
Dec 31 2018, 12:53
Сообщение
#5009
|
|
|
Миловидный Бегрюссунг Класс: Воин Характер: Chaotic Good Раса: Человек NWN: Модмейкер Проклятие Левора Порядок Времени |
Я нажал экспортировать, там есть только добавить ресурсы и далее сохранить, тип файла только *.erf. Как сделать не запакованные? Есть плагин для Тотал Коммандер. Еще по файлам для тулсета сюда: http://www.wrg.ru/download.php?list.18
Прикрепленные файлы
|
Dec 31 2018, 17:10
Сообщение
#5010
|
|
|
Level 3 ![]() Класс: Бледный Мастер Характер: Chaotic Neutral Раса: Человек |
спс. распаковал 5 файлов. изменения работают в оригинале. Но самоны стоят на месте, на команды следовать не реагируют, как исправить?
Если враг в зоне видимости атакуют. в HoTU диалога с ними тоже нет. |
![]() ![]() |
| Текстовая версия | Сейчас: 20th August 2025 - 05:37 |