SlothDemon
Sep 17 2017, 17:41
Цитата(Aiwan @ Sep 17 2017, 17:32)

Попробуйте ваш сейв переименовать в .MOD, будет возможно отредактировать вашего персонажа и переменные в тулсете.
Спасибо большое, попробую))
Сейв это модуль со всеми переменными и изменениями. Только вот не знаю, как дальше быть. В сейв его сохранять или модулем, а потом в нем сделать сейв.
SlothDemon
Sep 17 2017, 22:31
Попробовала, получила значение переменной. Оно правильное, именно то, которое проверяет скрипт. плюс, там еще куча других переменных, которые нигде как-будто бы в диалоге не проверяются. Я ничего уже не понимаю. Сам скрипт и значения. Надо сказать, в самом скриптописании я понимаю очень мало, так что если кто-нибудь может объяснить где я напорола буду очень благодарна. Или все-таки iResult должен быть 3 а та переменная какое-то другое число?
Значения 1Значения 2Сам скриптПопробовала, получила значение переменной. Оно правильное, именно то, которое проверяет скрипт. плюс, там еще куча других переменных, которые нигде как-будто бы в диалоге не проверяются. Я ничего уже не понимаю. Сам скрипт и значения. Надо сказать, в скриптах я не очень понимаю. iResult равна iValenStage или не обязательно?
Да, после смены расширения обратно отказывается грузить. Но, я думаю, это можно поправить через консоль. Нашла код dm_setmodulevarint, там только набрать переменную и значение, знать бы что пошло не так и что менять.
Блин, я создала монстра. Почему нельзя просто редактировать?
iValenStage глобальная переменная, должна ровняться 3 и она проверяется на модуле а не на персонаже.
Ох уж эти любовные дела...
SlothDemon
Sep 18 2017, 11:25
Цитата(Aiwan @ Sep 18 2017, 00:19)

iValenStage глобальная переменная, должна ровняться 3 и она проверяется на модуле а не на персонаже.
Ох уж эти любовные дела...

Эмм, но она уже равняется 3. Мне даже не надо ничего менять. Но скрипт не проверяет ее почему-то. Может, попробовать runscript? Триггер сбитый? Или скачать другую версию игры? У меня релиз от GOG, с патчем 1.69 сначала был, а потом я на всякий случай 1.71 поставила. Естественно, без толку. Блин, я уже дня три шаманю, мне хотя бы чисто принципиальность не дает отступиться пока не сработает. Так, значит тот код изменяет переменные не в модуле а на персонаже? Он не требовал выбрать персонажа, но и success тоже не писал когда я им что-то менять пробовала.
Цитата(SlothDemon @ Sep 18 2017, 14:25)

Так, значит тот код изменяет переменные не в модуле а на персонаже?
С точностью до наоборот.
Цитата(Aiwan @ Sep 18 2017, 03:19)

она проверяется на модуле а не на персонаже.
Как вариант изменить скрипт. Для этого надо взять пустой модуль, скомпилировать скрипт и в открытом модуле взять код в виде файла, закинуть в папку оверрайд и запустить сейв игры. Тогда игра возьмет код из папки оверрайт. Так исправляются баги модулей, что бы сейвы работали. Исправления кладутся в хак. В НВН приоретет такой, оверайд, хак, ресурсы игры.
Помочь с написанием не могу. НВН нет давно. Ща попробую по памяти.
Neverwinter Script
int StartingConditional()
{
object oPC = GetPCSpeaker();
int iQuest = GetLocalInt(GetModule(), "iValenStage");
if (iQuest == 3) // Если локалка равна трем.
{
SpeakString("Проверка удачная");
return TRUE; // Возврат ИСТИНА, т.е. старт диалога
}
return FALSE; // В противном случае отбой
}
Если нижний скрипт вставить в оверрайд то сработает 100%. Потом его удали из оверрайда и все. Имя скрипта должно ровняться имени того скрипта который ты хочешь заменить.
Neverwinter Script
int StartingConditional()
{
object oPC = GetPCSpeaker();
if (GetIsPC(oPC)) // Если точно игрок
{
SpeakString("Проверка удачная");
return TRUE; // Возврат ИСТИНА, т.е. старт диалога
}
return FALSE; // В противном случае отбой
}
п.с. А вообще, если мужик не реагирует на твое внимание, даже после стольких усилий, плюнь на него
SlothDemon
Sep 18 2017, 12:43
Спасибо, очень помогли)) Попробую.
ReZkiy
Sep 29 2017, 11:18
Я, может, не в ту дверь стучусь, но может кто сумеет помочь? Скачал Невер, захожу в тулсет, а рабочее поле всё в чёрных точках каких-то.
Leon PRO
Sep 29 2017, 12:01
Не сталкивался с таким, но по ощущениям - проблема в совместимости старого кода граф. движка с драйверами современной видюхи. Если у "соседа" с древней видюхой всё работает с этого же инсталлятора игры, а у тебя сеточка, то скорее всего дело именно в этом.
Может делались какие-то принудительные кастомные настройки видюхи в системе руками до этого?
ReZkiy
Sep 30 2017, 08:22
Ничего специфического, насколько помню. Что характерно, эта сеточка отображается только в рабочем поле тулсета, в игре же отсутствует.
Цитата(Leon PRO @ Sep 29 2017, 14:01)

какие-то принудительные кастомные настройки видюхи в системе
Можно подробнее пожалуйста, для несведущего?
Chiffa
Nov 12 2017, 13:38
Зашел на минутку и без вопросов.
Просто хочу сказать большое спасибо уважаемой
Melisse за пост №9444. Скрипт оказался именно тем, "шо дохтур прописал" и мне тоже.
Melisse, Вы и правда добрая фея, помогаете людям, даже не зная, что они нуждаются в помощи.
Спасибо!
Veronica
Jan 16 2018, 16:51
Помогите, пожалуйста, разобраться - напарник, после того, как присоединился к ГГ, остается на месте, а не следует за героем. Происходит все следующим образом: ГГ приглашает его в команду, напарник говорит «Отлично. Пошли», но остается на месте, хотя портрет хиньчмана появляется рядом с портретом ГГ. В совершенных действиях строки напарника «Отлично. Пошли» стоит такой скрипт:
void main()
{
object oPC = GetPCSpeaker();
object oNPC = GetFirstObjectInArea(oPC);
AddHenchman(oPC, OBJECT_SELF); // Дать нового спутника
AssignCommand(oPC, SpeakString(«Отлично. Пошли!»));
}
Если приказать ему остаться на месте и подождать, то напарник говорит, что будет ждать и его портрет исчезает, т.е. он выходит из состава команды.
Использовала скрипты на присоединения хиньчмана из разных модулей – результат одинаков. Что я упускаю?
Есть тег NSS

который делает структуру скрипта сам.
Neverwinter Script
void main()
{
object oPC = GetPCSpeaker();
object oNPC = GetFirstObjectInArea(oPC);
AddHenchman(oPC, OBJECT_SELF); // Дать нового спутника
AssignCommand(oPC, SpeakString(«Отлично. Пошли!»));
}
Вот тут поищи написание скрипта для хеньчмана:
http://www.city-of-masters.ru/forums/index...?showtopic=1761Я думаю (на вскидку) не подключена инклюда стандартная в скрипте. Из-за этого хеньч тупит. ИМХО.
denis0k
Jan 16 2018, 17:53
Никогда не занимался хенчами, но моя логика говорит, что стоит проверить скрипты существа, раз он не двигается. У хенчей скрипты не те, что у дефолтных мобов, какие даются просто при создании существа в тулсете. Смотрите готовых хенчей в палитре.
Верно говорит denis0k, надо брать хеньчмана их палитры с дефолтными скриптами.
Veronica
Jan 17 2018, 11:03
Aiwan и
denis0k, спасибо за советы. Эта ссылка, и, главное, модуль Henchman_HotU.zip - очень помогли
http://www.city-of-masters.ru/forums/index...?showtopic=1761 Цитата
Смотрите готовых хенчей в палитре.
Подскажите, пожалуйста, где их искать. Я правильно думаю: Нанести существ -> Стандартные -> Другое -> Боддинок?
У меня НВН уже лет пять не стоит

По памяти должны быть имена реальных хеньчманов из НВН. Смотрих скрипты и создав своего вставь в слоты скрипты хеньчманов. Тогда заработает. В общем, смотри модуль что я дал, там расписано.
denis0k
Jan 17 2018, 12:28
Цитата
Подскажите, пожалуйста, где их искать. Я правильно думаю: Нанести существ -> Стандартные -> Другое -> Боддинок?
Скорее всего, нет возможности посмотреть самому

Я помню там раздел в палитре, где куча одинаковых хенчей из кампании, различающихся уровнем.
Veronica
Jan 17 2018, 15:11
Все получилось. Спасибо всем огромное!
Цитата
Никогда не занимался хенчами, но моя логика говорит, что стоит проверить скрипты существа, раз он не двигается. У хенчей скрипты не те, что у дефолтных мобов, какие даются просто при создании существа в тулсете. Смотрите готовых хенчей в палитре.
Это и было моей проблемой, как оказалось. А готовых хеньчменов можно найти по этому пути (вдруг пригодится кому-то инфо): Нанести существ -> Стандартные -> Другое -> Боддинок и пр.
Elendion
Mar 30 2018, 19:23
Господа знатоки, глупейший вопрос, но как прописать, чтобы после боя нпс складывал оружие в инвентарь?
На слот OnPerception, делаешь проверку, типа, если ближайший видимый объект не враг, то оружие убрать из слотов в инвентарь.
Elendion
Mar 31 2018, 09:50
Спасибо, с оружием разобрался. Есть ли возможность изменить анимацию при ресте? Мне вот нужно, чтобы игрок вместо SIT_CROSS использовал пользовательскую анимацию CUSTOM18.
Melisse
Mar 31 2018, 23:33
обычно всегда делали через кастомный рест
т.е. отменяется рест через скрипт, который на слоте OnPlayerRest висит в свойствах модуля, потом делается что нужно с искусственными проверками, и потом через ForceRest() рестится чар
Алузаир
Apr 3 2018, 11:21
Привет всем.
Можно ли как-то отключить штраф к опыту за наёмников и фамильяров в оригинальной кампании Невервинтера, аддонах и других модулях?
Наверняка можно, но для этого нужно будет лопатить скрипты и исправлять их в модулях и аддонах. Я так понимаю вопрос в быстрой прокачке? Если да, то проще заюзать пару консольных команд для выдачи экспы игроку.
denis0k
Apr 7 2018, 19:15
Быстро - никак. Выдача опыта не скриптовая. В свойствах модуля в тулсете есть мультипликатор. По дефолту там 10, можно поставить выше, рассчитав потери от вашей армии, тогда штраф примерно нивелируется. Но придётся модуль заново перепроходить.
Elendion
May 17 2018, 20:47
Господа, возник вопрос, я тут с ваулта скачал тайлсет, и на некоторые дверные отверстия двери не вешаются, оставляя проход пустым, в чем тут загвоздка?
Загвоздка в сет файлах тайлов, там не просто дырки для дверей рисуют, там четко их прописывают где они могут стоять с координатами куда вход и т.д.
Elendion
May 18 2018, 08:31
я так понял - dwk файлы? Не подскажете в какую сторону копнуть, чтобы поправить их работу?
Не помню уже
Melisse
May 18 2018, 12:10
Цитата
Господа, возник вопрос, я тут с ваулта скачал тайлсет, и на некоторые дверные отверстия двери не вешаются, оставляя проход пустым, в чем тут загвоздка?
Я уже тоже не помню, все чем могу помочь, указать 2 возможных направления:
1. В 3д максе с плагинами для нвн или в гмаксе с плагинами открыть нужный тайл и посмотреть что там с дверью, может ее как таковой там нет впринципе.
2. В *.set глянуть может быть она там не прописана в соотвествующем тайле
Elendion
May 18 2018, 16:38
Перелопатил несколько файлов, получилось, огромное спасибо за ответ!
И тут же новый вопрос. У модели двери есть несколько скинов расцветок, как их менять? Просто на тайловый дверной проем всегда вешается стандартный скин.
Melisse
May 21 2018, 08:46
Цитата
Перелопатил несколько файлов, получилось, огромное спасибо за ответ!
И тут же новый вопрос. У модели двери есть несколько скинов расцветок, как их менять? Просто на тайловый дверной проем всегда вешается стандартный скин.
Там 2 типа двери бывает:
1. Генерируемая дверь
2. Статичная модель
в первом случае это как правило двери, которые мы ставим в тулсете в пустые проемы, в их свойствах можно выбирать скины.
а во втором случае - двери, которые уже заданы моделями в тулсете, и чтобы туда не поставить - будет заданная модель-шкурка.
Что конкретно тебя интересует?
Elendion
May 22 2018, 17:50
Проблема точно в пункте 2. Есть ли возможность задать скиновую вариативность для такой модели-шкурки? А то хотелось бы на определенный тайл разные по виду двери вешать.
Fhooster
Jul 3 2018, 16:54
Neverwinter Nights 2 Редактор не давно решил попробовать редактор построил свою деревню.у меня встал вопрос как сделать переход на другую зону точней на другую карту не помогу разобраться второй день прошу помогите уже псих берет
Почитайте мануал для первого НВН, там почти все подобно. Надо начертить триггер и установить точку куда сделать переход.
Elendion
Oct 17 2018, 13:43
Доброго времени суток, возник новый вопрос. Скачал хак с одного американского сервера, там есть очень огромное количество анимаций, но кастомных только 20. Как обосновать привязку других анимаций к персонажам и в каких файлах это искать?
Melisse
Oct 20 2018, 20:42
Это фенотипы
а сами файлы анимации все a_ab и тд называются
Heather
Nov 12 2018, 22:57
Всем, кто еще сюда заглядывает, привет!
Как обычно глупый вопрос:
У Айвана есть замечательный скрипт на хартбит нпс, с помощью которого НПС после нападения становится нейтральным и начинает диалог с РС.
Возможно ли сделать это дважды? Нападает, передумывает, снова нападает, опять сдается (ну вот такой злодей у нас мятущийся

)
Так как в оригинальном скрипте присутствовала переменная (менялась с 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. Специально пишу в тему новичков, так как понимаю, что тут очень глупое и очевидное решение, а я не въезжаю.
Melisse
Nov 23 2018, 23:37
Цитата
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)
{
////всякие разные штуки
}
}
П.С. Наверное, я поздно ответила

)
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]
}
Heather
Nov 24 2018, 20:54
Melisse,
Aiwan, огромное спасибо! Совсем не поздно, так как на этом моменте я застряла и очень ждала ответ. Сама бы сделала, наверное, только через большой корявый "костыль"

Если чаво могешь мне ПМку писать, я бывает в реале залипаю, сюда прихожу не часто.
Подскажите пожалуйста как скриптом забрать часть стакованных предметов? А то я как не пробую, он весь стак камней удаляет.
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);
}
}
zmeylsdn
Dec 5 2018, 20:58
1. Как изменить статы призываемых заклинаниями и эпик заклинаниями существ? Что и чем редактировать?
2. Как сделать, чтобы на уровнях 20+ призывались другие самоны или менялись статы прежних?
zmeylsdn
Dec 6 2018, 09:08
1. Добрый день.
2. Чтобы самоны были актуальны на эпических уровнях.
Я могу сказать не самый правильный метод, но он звучит так. Ищем в синьке всех животных с параметрами, меняем их добавляя в синьку, ищем все скрипты со старыми ресрефами животных, меняем на новые ресрефы для спавна нужных. Дальше берем экспортируем все и засовываем в оверрайд, что бы любой модуль работал на изменениях. Как-то так. Не факт что оптимально.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста,
нажмите сюда.