![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
![]() |
![]()
Сообщение
#3646
|
|
Тролль ![]() ![]() ![]() ![]() Класс: Пьяный Мастер Характер: Chaotic Neutral Раса: Тварь ![]() |
Сеты это все-таки немного другое – у меня эффект добавляется при использовании не уникального итема: для придания большей актуальности режиму парирования в игре, я ввел дополнительно базовое значение в +10 парирования (подобно базовым +10 брони на теле) персонажам использующим любые комбинации не дистантного оружия без использования щитов, а так же используя факел. Помимо того факел (любой) у меня сам по себе в игре дает дополнительные бонусы и пенальти.
В общем эвенты «снять/одеть» работают в НВН не совсем корректно, и при использовании такого большого числа условий - постоянно возникают разнообразные баги в т.ч. по мере попыток их решения. Во время тестов у меня создалось впечатление, что у эвента «снять» нарушена причинноследственная связь – при снятии предмета, похоже, что для скрипта расчетным состоянием персонажа является состояние до его снятия (при котором естественно, что предмет еще находится на теле, хотя скрипт срабатывает именно от того, что мы его сняли). Хотя до конца я так и не понял их принцип работы. В общем последний более менее рабочий вариант у меня был такой:.. Neverwinter Script //(этот скрипт идет под номером 3) …скрипт (в теории) универсально подходящий как для события «снять» так и для «одеть» (т.к. он проверяет полное состояние экипировки и назначает результирующие бонусы, зачистив все предварительно). Однако в отличие от эвента «одеть» - эвент «снять» его переваривает неудовлетворительно.//сначала очищаем все бонусы и пенальти eEffect = GetFirstEffect(oPC); while (GetIsEffectValid(eEffect)) { if ((GetEffectType(eEffect) == EFFECT_TYPE_SKILL_INCREASE) || (GetEffectType(eEffect) == EFFECT_TYPE_SKILL_DECREASE)) { RemoveEffect(oPC, eEffect); } eEffect = GetNextEffect(oPC); } //если у персонажа есть оружие в правой руке и оно не дистантное... if ( (GetIsObjectValid (GetItemInSlot (INVENTORY_SLOT_RIGHTHAND, oPC) ) ) && (!GetWeaponRanged (GetItemInSlot (INVENTORY_SLOT_RIGHTHAND, oPC) ) ) ) { //...и если у персонажа нету щита в левой руке - получаем бонус парирования if ( (GetBaseItemType (GetItemInSlot (INVENTORY_SLOT_LEFTHAND, oPC) ) != BASE_ITEM_SMALLSHIELD) && (GetBaseItemType (GetItemInSlot (INVENTORY_SLOT_LEFTHAND, oPC) ) != BASE_ITEM_LARGESHIELD) && (GetBaseItemType (GetItemInSlot (INVENTORY_SLOT_LEFTHAND, oPC) ) != BASE_ITEM_TOWERSHIELD) ) { eEffect = EffectSkillIncrease(SKILL_PARRY, 10); eEffect = SupernaturalEffect(eEffect); ApplyEffectToObject(DURATION_TYPE_PERMANENT, eEffect, oPC); } } else { //в противном случае дополнительно проверяем нет ли в левой руке факела и если есть - так же даем этот бонус if (GetBaseItemType (GetItemInSlot (INVENTORY_SLOT_LEFTHAND, oPC) ) == BASE_ITEM_TORCH) { eEffect = EffectSkillIncrease(SKILL_PARRY, 10); eEffect = SupernaturalEffect(eEffect); ApplyEffectToObject(DURATION_TYPE_PERMANENT, eEffect, oPC); } } //если персонаж имеет факел в левой руке - он так же получает отдельные бонусы и пенальти от его ношения if (GetBaseItemType (GetItemInSlot(INVENTORY_SLOT_LEFTHAND, oPC) ) == BASE_ITEM_TORCH) { eEffect = EffectSkillIncrease(SKILL_SPOT, 10); eEffect = SupernaturalEffect(eEffect); ApplyEffectToObject(DURATION_TYPE_PERMANENT, eEffect, oPC); eEffect = EffectSkillDecrease(SKILL_HIDE, 10); eEffect = SupernaturalEffect(eEffect); ApplyEffectToObject(DURATION_TYPE_PERMANENT, eEffect, oPC); eEffect = EffectSkillDecrease(SKILL_ANIMAL_EMPATHY, 10); eEffect = SupernaturalEffect(eEffect); ApplyEffectToObject(DURATION_TYPE_PERMANENT, eEffect, oPC); } Как удалось Neverwinter Script //скрипт 1 ...т.к. последняя версия этих скриптов была приведена к универсальной – запихал ее отдельным скриптом и на события «снял/одел» просто назначил запуск ее как активную проверку, запускающуюся от лица персонажа стартовавшего эвент.
void main() { object oPC = GetPCItemLastEquippedBy(); if (!GetIsPC(oPC)) return; DelayCommand(0.5, ExecuteScript("3", oPC)); } //скрипт 2 void main() { object oPC = GetPCItemLastUnequippedBy(); if (!GetIsPC(oPC)) return; DelayCommand(0.5, ExecuteScript("3", oPC)); } Сообщение отредактировал Flaristan - Sep 7 2013, 00:21 |
![]()
Сообщение
#3647
|
|
Level 19 ![]() Класс: Воин Характер: Lawful Good Раса: Человек NWN: Скриптинг [PW] Gem of the North Край Лесов ![]() |
Делал сеты таким же макаром - работало без нареканий.
|
![]()
Сообщение
#3648
|
|
Тролль ![]() ![]() ![]() ![]() Класс: Пьяный Мастер Характер: Chaotic Neutral Раса: Тварь ![]() |
Таким же макаром в смысле через проверки эффектора или через доп скрипт?
|
![]()
Сообщение
#3649
|
|
Level 19 ![]() Класс: Воин Характер: Lawful Good Раса: Человек NWN: Скриптинг [PW] Gem of the North Край Лесов ![]() |
Один скрипт на equip, второй - unequip, в каждом одна и та же проверка на надетые итемы и эффекты на персонаже. Никаких костылей.
|
![]()
Сообщение
#3650
|
|
Тролль ![]() ![]() ![]() ![]() Класс: Пьяный Мастер Характер: Chaotic Neutral Раса: Тварь ![]() |
Когда я только факел делал и предмет был указан по тагу – все работало отлично. Чехарда началась, когда место тагов заняли более универсальные типы итемов.
Но костыль проблему с нарушением причинно-следственной связи устраняет и на том ладно. Сообщение отредактировал Flaristan - Sep 9 2013, 20:44 |
![]()
Сообщение
#3651
|
|
Миловидный Бегрюссунг ![]() Класс: Воин Характер: Chaotic Good Раса: Человек NWN: Модмейкер Проклятие Левора Порядок Времени ![]() |
Ну нифика себе некропост, пятнадцатилетней давности... (IMG:style_emoticons/kolobok_light/swoon.gif)
|
![]()
Сообщение
#3652
|
|
Level 1 Класс: Обыватель Характер: Lawful Good Раса: Человек ![]() |
Neverwinter Script void main() { if(GetLocalInt(GetFirstPC(), "iAlreadyPlayedCS") == 0) { SetLocalInt(GetFirstPC(), "iAlreadyPlayedCS",1); SetTime(23,0,0); ExecuteScript("m1_cs00"); } else { ExecuteScript("m1_cs11a"); } } Абсолютно ничего не смыслю в скриптах. Может кто объяснить, что там происходит? |
![]()
Сообщение
#3653
|
|
Level 19 ![]() Класс: Воин Характер: Lawful Good Раса: Человек NWN: Скриптинг [PW] Gem of the North Край Лесов ![]() |
Если нет переменной iAlreadyPlayedCS на игроке, то ставит время на 23 и запускает скрипт m1_cs00. Иначе запускает m1_cs11a.
|
![]()
Сообщение
#3654
|
|
Level 1 Класс: Обыватель Характер: Lawful Good Раса: Человек ![]() |
Большое тебе спасибо! Теперь хоть можно понять, что к чему, но понимание всего этого все еще хромает)
Большое тебе спасибо! Теперь хоть можно понять, что к чему, но полное усвоение все еще хромает) Скрипт, который ниже - будет запускать только в том случае, если игрок уже находится в кат-сцене? |
![]()
Сообщение
#3655
|
|
Level 19 ![]() Класс: Воин Характер: Lawful Good Раса: Человек NWN: Скриптинг [PW] Gem of the North Край Лесов ![]() |
Про катсцену в скрипте ни слова. Возможно, переменная с ней связана, но прямо проверки катсцены нет.
|
![]()
Сообщение
#3656
|
|
Level 1 Класс: Обыватель Характер: Lawful Good Раса: Человек ![]() |
Ага, я понял! Это ссылки на скрипты. Я думал, что раз написано CS - значит это кат-сцена. Похоже в этих самых скриптах и находятся функции с кат-сценами.
|
![]()
Сообщение
#3657
|
|
Level 19 ![]() Класс: Воин Характер: Lawful Good Раса: Человек NWN: Скриптинг [PW] Gem of the North Край Лесов ![]() |
Да, скорее всего CS - это катсцена. Но это названия переменных, они имеют смысл только для разработчика.
|
![]()
Сообщение
#3658
|
|
Level 1 Класс: Ученик Дракона Характер: Chaotic Evil Раса: Человек ![]() |
День добрый. Хотелось бы спросить как написать три скрипта:
1) НПС фонарщик должен ходить, включая и выключая фонари, соответственно 2) Группа НПС должна приходить после определенного события 3) Как сделать говорящий предмет, подобный Энсеррику? |
![]()
Сообщение
#3659
|
|
Миловидный Бегрюссунг ![]() Класс: Воин Характер: Chaotic Good Раса: Человек NWN: Модмейкер Проклятие Левора Порядок Времени ![]() |
1. Сложный скрипт для новичка. В разделе скриптов есть примеры, там включаются факелы ночью и выключаются днем. Попробуйте приспособить их.
2. Ставим группу НПС в закрытой локации, в диалоге ставим простой скрипт на строку диалога, типа нпс прыгнуть в локацию в точку А и подойти к РС. 3. Предмет который носится в инвентаре? |
![]()
Сообщение
#3660
|
|
Level 1 Класс: Ученик Дракона Характер: Chaotic Evil Раса: Человек ![]() |
Да, предмет носится в инвентаре
И не могли бы вы подсказать пример скрипта прихода нпс? |
![]()
Сообщение
#3661
|
|
Миловидный Бегрюссунг ![]() Класс: Воин Характер: Chaotic Good Раса: Человек NWN: Модмейкер Проклятие Левора Порядок Времени ![]() |
http://www.city-of-masters.ru/forums/index.php?showtopic=5 - вот тут полно скриптов написанных для разных задач. Ищи и подбирай под себя. У меня уже сто лет нет нвн на компе. Помочь вряд ли смогу, только теоретически сказать как реализовать.
http://www.city-of-masters.ru/forums/index...?showtopic=1612 - это тема специально для новичков, все подробно расписано, есть и про нпс варианты. |
![]()
Сообщение
#3662
|
|
Level 1 Класс: Ученик Дракона Характер: Chaotic Evil Раса: Человек ![]() |
Чтож, с фонарями разобрался. Но все еще остается вопрос с говорящим предметом и приходом нпс. Здесь, к сожалению, не смог найти
|
![]()
Сообщение
#3663
|
|
Миловидный Бегрюссунг ![]() Класс: Воин Характер: Chaotic Good Раса: Человек NWN: Модмейкер Проклятие Левора Порядок Времени ![]() |
Очень плохо ищите. Вот тут все написано русским языком.
Neverwinter Script void main() { object oActivator = GetItemActivator(); // это активатор объекта(наш PC) object oActivated = GetItemActivated(); // это активируемый объект (камень) if ("ТАГ КАМНЯ" == GetTag(oActivated)) // проверка. Нужный ли объект использован { AssignCommand(oActivator, ClearAllActions()); // чистим игроку акции AssignCommand(oActivator, ActionStartConversation()); // Функцию не помню по памяти, это начало диалога и таг диалога } } |
![]()
Сообщение
#3664
|
|
Level 3 ![]() Класс: Бледный Мастер Характер: Chaotic Neutral Раса: Человек ![]() |
Привет. Хочу сделать итем, который будет давать команду самону "двигаться", если использован на пустое место и "атаковать", если на нпц\обьект.
Думаю поместить его в скрип спелов призыва, чтобы проверял, есть ли итем в инвентаре и давал, если нет. Есть какие-то наработки в этом направлении? |
![]()
Сообщение
#3665
|
|
Миловидный Бегрюссунг ![]() Класс: Воин Характер: Chaotic Good Раса: Человек NWN: Модмейкер Проклятие Левора Порядок Времени ![]() |
Я таких не помню, но если скриптинг осилен то не проблема написать его.
|
![]()
Сообщение
#3666
|
|
Level 3 ![]() Класс: Бледный Мастер Характер: Chaotic Neutral Раса: Человек ![]() |
а по отключению потребления опыта хенчем\самонами есть что-то?
|
![]()
Сообщение
#3667
|
|
Миловидный Бегрюссунг ![]() Класс: Воин Характер: Chaotic Good Раса: Человек NWN: Модмейкер Проклятие Левора Порядок Времени ![]() |
|
![]()
Сообщение
#3668
|
|
Level 1 Класс: Бард Характер: Neutral Good Раса: Человек ![]() |
Здравствуйте. Подскажите, пожалуйста, как можно одновременно проигрывать LOOP анимацию и диалог?
К примеру, чтобы мои персонажи беседовали друг с другом не вставая, а сохраняли свою текущую анимацию Sitting Cross Leg. Но у меня либо не инициируется диалог и они встают, либо сидят, но диалог не появляется. Так же, хотелось бы узнать, где найти скрипты и запуски скриптов, отвечающих за поведение PC. Всем спасибо! |
![]()
Сообщение
#3669
|
|
Level 1 Класс: Обыватель Характер: Lawful Good Раса: Человек ![]() |
здравия всем. давно играю в нвн и всегда система внутреигрового крафта не нравилась , хочется сделать свою систему ,ибо чего-то не нашел замену( искал наверно плохо , если ведаете где зять такую то желаю здоровье заранее и прошу поделиться ссылкой ) .
хочу реализовать крафт через диалог где менять внешний вид оружия/доспехов как в моей фантазии проходит крафт - через разборку\изменение деталей\сборку предмета. для примера разбор оружия на три часть ( боевая часть-рукоять-балансир ). к каждой часть закреплены только свой набор зачарованний , например боевая часть - отвечает на урон ( стихийный, яды, святой мститель, степень улучшения +1+2 и дт.... ) , рукоять- удобство(скилы, характеристики, навыки ..), балансир- эффекты( ускорение, прожимные заклинания, ..). изменение деталей. 1 пример.вот у нас есть разобранное копье холода- малое лезвие с уроном холода 1д6 , длинное древко и балансир. хочу сделать алебарду которая состоит из лезвия необычного топора, длинного древка и балансира. введем расходник названный магическим слитком , который перенимает эффект чарок лезвия. т.е. малое лезвие холода+ слиток манаслитка= манаслиток холода урона 1д6 ->изготавливаем лезвие необычного топора с 1д65 холода и собираем алебарду с 1д6 холода 2 пример- копье холод 1д6 в кинжал . кинжал состоит из малое лезвие , малая рукоять и балансир. разбераем копье , заменяем в сборке рукоять длинного древка на малую рукоять и получаем кинжал с 1д6 холода. 3 пример - у нас есть сабля скорости(урон звук+ускорение) и святой мститель из андердайда.после разбора у нас будут лезвие на урон звука, лезвие святого мстителя , две средние рукояти , пустой балансир и балансир с эфектом ускорения . пересобираем меняя балансиры и вот у нас длинный меч с чаркой святого мстителя и ускорением . эти примеры нужен для взаимосвязи орудий между собой по расходникам . чистый манаслиток делается путем расплавления боевой части оружия ( лезвие меча , топора и тд). как доп ограничение - не более одной чарки одинакового типа( манаслиток сливаем с боевой частью с 1д12 огня и 1д12 холода ,то получим манаслиток 1д12 элемента который идет последний ) рукояти изготавливается из разного вида дерева что добывается с уничтожения сундуков или разбора другого оружия и последующей обработки с начертанием чарок на рукояти. балансир изготавливаем из драгоценностей . у разных камней разный набор возможных вложенных эффектов . успех разбора\сбора\создание расходников и оружия зависит от уровня соответствующих крафтовых навыков + знание и ценны чарок в золотом эквиваленте игры. остальные моменты мне уже лень переписывать из записной книжки а вопросы у меня такие 1- можно ли заменить меню игрового крафта на другое и чтобы это работало и в ванильной компании невервинтера? 2-можно ли считывать зачарование предмета и перекидывать эффекты на другой предмет с сохранение эффекта в описании предмета? 3- стоит ли вообще заморачиваться с такой задумкой или найти скриптМастера и нагружать его моей больной фантазией ? |
![]()
Сообщение
#3670
|
|
Миловидный Бегрюссунг ![]() Класс: Воин Характер: Chaotic Good Раса: Человек NWN: Модмейкер Проклятие Левора Порядок Времени ![]() |
Ого, приятель. Ты немного припоздал. А если серьезно, для начала возьми работающие системы крафта и попробуй под себя их настроить. Придет понятие, там и сам напишешь.
|
![]() ![]() |
Текстовая версия | Сейчас: 6th August 2025 - 15:04 |