![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
![]() |
![]()
Сообщение
#3251
|
|
Level 3 ![]() Класс: Воин Характер: True Neutral Раса: Эльф ![]() |
Добрый день!
Перестал запускаться тест модуля при нажатии F9 в редакторе. Подозреваю, что дело в записи в реестре, ошибка по поводу которой выскакивает каждый раз при запуске редактора. Переустановка игры не помогла (устанавливался Diamond Edition от R.G. Catalyst). Может быть, дело в винде (стоит убогая восьмерка)? |
![]()
Сообщение
#3252
|
|
Level 19 ![]() Класс: Воин Характер: Lawful Good Раса: Человек NWN: Скриптинг [PW] Gem of the North Край Лесов ![]() |
У меня на восьмёрке (в год релиза, лицензия) была DE лицензионная, не от пиратов, всё работало без сообщений об ошибках в реестре. Собсно, нет смысла в пиратской нвн уже давно, носиди добавили с одним из патчей, а ключи любые валидные подходят.
Запускал тулсет от админа? Нвн требует админа. |
![]()
Сообщение
#3253
|
|
Level 3 ![]() Класс: Воин Характер: True Neutral Раса: Эльф ![]() |
Ага, запуск от админа помог, спасибо)
Еще вот вопрос... Сильно ли плохо, если скрипт на вешанье отрицательных эффектов на входе в область работает правильно, но перед этим выдает ошибку по типу "слишком много инструкций"? |
![]()
Сообщение
#3254
|
|
Level 19 ![]() Класс: Воин Характер: Lawful Good Раса: Человек NWN: Скриптинг [PW] Gem of the North Край Лесов ![]() |
Это значит, что в результате он вылетает, не доработав совсем до конца. Как правило, это либо слишком большой, либо (что чаще) бесконечный цикл.
|
![]()
Сообщение
#3255
|
|
Level 3 ![]() Класс: Воин Характер: True Neutral Раса: Эльф ![]() |
Цикл вроде завершается (как мне кажется). Собственно, тут только открытие карты для игрока, запись в журнал, снятие вещей, дающих иммунитет, и наложение самих эффектов. Многовато проверок, да?
(сами функции) Код void CheckItem(int iTape, object oPC, object oItem)
{ itemproperty ipItem = GetFirstItemProperty(oItem); while(GetIsItemPropertyValid(ipItem)) { if (iTape ==1) if (GetItemPropertyType(ipItem) == ITEM_PROPERTY_IMMUNITY_MISCELLANEOUS) { if(GetItemPropertySubType(ipItem) == IP_CONST_IMMUNITYMISC_LEVEL_ABIL_DRAIN) AssignCommand(oPC, ActionUnequipItem(oItem)); } if (iTape ==2) if (GetItemPropertyType(ipItem) == IMMUNITY_TYPE_MOVEMENT_SPEED_DECREASE) ipItem = GetNextItemProperty(oItem); } } void HandleItems(int iTape, object oTarget) { object oItem; oItem = GetItemInSlot(INVENTORY_SLOT_ARMS, oTarget); CheckItem(iTape, oTarget, oItem); oItem = GetItemInSlot(INVENTORY_SLOT_BELT, oTarget); CheckItem(iTape, oTarget, oItem); oItem = GetItemInSlot(INVENTORY_SLOT_BOOTS, oTarget); CheckItem(iTape, oTarget, oItem); oItem = GetItemInSlot(INVENTORY_SLOT_CHEST, oTarget); CheckItem(iTape, oTarget, oItem); oItem = GetItemInSlot(INVENTORY_SLOT_CLOAK, oTarget); CheckItem(iTape, oTarget, oItem); oItem = GetItemInSlot(INVENTORY_SLOT_HEAD, oTarget); CheckItem(iTape, oTarget, oItem); oItem = GetItemInSlot(INVENTORY_SLOT_LEFTHAND, oTarget); CheckItem(iTape, oTarget, oItem); oItem = GetItemInSlot(INVENTORY_SLOT_LEFTRING, oTarget); CheckItem(iTape, oTarget, oItem); oItem = GetItemInSlot(INVENTORY_SLOT_NECK, oTarget); CheckItem(iTape, oTarget, oItem); oItem = GetItemInSlot(INVENTORY_SLOT_RIGHTHAND, oTarget); CheckItem(iTape, oTarget, oItem); oItem = GetItemInSlot(INVENTORY_SLOT_RIGHTRING, oTarget); CheckItem(iTape, oTarget, oItem); } void AdvanceDisease(object oEnter) { ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_IMP_HEAD_NATURE), oEnter); ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_FNF_IMPLOSION), oEnter); ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_FNF_GAS_EXPLOSION_NATURE), oEnter); ApplyEffectToObject(DURATION_TYPE_PERMANENT, SupernaturalEffect( EffectAbilityDecrease(ABILITY_WISDOM, 5)), oEnter); ApplyEffectToObject(DURATION_TYPE_PERMANENT, SupernaturalEffect( EffectAbilityDecrease(ABILITY_INTELLIGENCE, 5)), oEnter); int Str_Ch; int Dex_Ch; int Cha_Ch; int Con_Ch; switch (Random(3)) { case 0: Str_Ch = 0; break; case 1: Str_Ch = 3; break; case 2: Str_Ch = 5; break; } switch (Random(3)) { case 0: Dex_Ch = 0; break; case 1: Dex_Ch = 3; break; case 2: Dex_Ch = 5; break; } switch (Random(3)) { case 0: Cha_Ch = 0; break; case 1: Cha_Ch = 3; break; case 2: Cha_Ch = 5; break; } switch (Random(3)) { case 0: Con_Ch = 0; break; case 1: Con_Ch = 3; break; case 2: Con_Ch = 5; break; } ApplyEffectToObject(DURATION_TYPE_PERMANENT, SupernaturalEffect( EffectAbilityDecrease(ABILITY_STRENGTH, Str_Ch)), oEnter); ApplyEffectToObject(DURATION_TYPE_PERMANENT, SupernaturalEffect( EffectAbilityDecrease(ABILITY_DEXTERITY, Dex_Ch)), oEnter); ApplyEffectToObject(DURATION_TYPE_PERMANENT, SupernaturalEffect( EffectAbilityDecrease(ABILITY_CONSTITUTION, Con_Ch)), oEnter); ApplyEffectToObject(DURATION_TYPE_PERMANENT, SupernaturalEffect( EffectAbilityDecrease(ABILITY_CHARISMA, Cha_Ch)), oEnter); SetLocalInt (oEnter, "Str_Change", Str_Ch); SetLocalInt (oEnter, "Dex_Change", Dex_Ch); SetLocalInt (oEnter, "Con_Change", Con_Ch); SetLocalInt (oEnter, "Cha_Change", Cha_Ch); SetLocalInt (oEnter, "Wis_Change", 5); SetLocalInt (oEnter, "Int_Change", 5); } |
![]()
Сообщение
#3256
|
|
Level 19 ![]() Класс: Воин Характер: Lawful Good Раса: Человек NWN: Скриптинг [PW] Gem of the North Край Лесов ![]() |
CODE void CheckItem(int iTape, object oPC, object oItem) Я конечно устал и очень хочу спать, но налицо классика программирования (IMG:style_emoticons/kolobok_light/smile.gif) GetNextItemProperty под условием, не выполняется условие - цикл становится бесконечным. Биоварям стоило такую проверку прямо в компилятор загнать.
{ itemproperty ipItem = GetFirstItemProperty(oItem); while(GetIsItemPropertyValid(ipItem)) { if (iTape ==1) if (GetItemPropertyType(ipItem) == ITEM_PROPERTY_IMMUNITY_MISCELLANEOUS) { if(GetItemPropertySubType(ipItem) == IP_CONST_IMMUNITYMISC_LEVEL_ABIL_DRAIN) AssignCommand(oPC, ActionUnequipItem(oItem)); } if (iTape ==2) if (GetItemPropertyType(ipItem) == IMMUNITY_TYPE_MOVEMENT_SPEED_DECREASE) ipItem = GetNextItemProperty(oItem); } } |
![]()
Сообщение
#3257
|
|
Level 3 ![]() Класс: Воин Характер: True Neutral Раса: Эльф ![]() |
Прошу прощения, что трачу ваше время на такие глупости. Действительно, просто не заметила, что эта строка под условие попала.
Cпасибо!) Сообщение отредактировал StasMokos - Feb 1 2015, 22:42 |
![]()
Сообщение
#3258
|
|
Level 19 ![]() Класс: Воин Характер: Lawful Good Раса: Человек NWN: Скриптинг [PW] Gem of the North Край Лесов ![]() |
Таки для этого форум и существует (IMG:style_emoticons/kolobok_light/smile.gif)
|
![]()
Сообщение
#3259
|
|
Level 4 ![]() ![]() Класс: Воин Характер: Chaotic Good Раса: Человек ![]() |
Приветствую всех. Сразу к делу:
Можно ли как-то запретить выгонять спутника из отряда кнопкой из радиального меню? Если нельзя, то как можно запустить определенный скрипт, когда игрок все же выкинул спутника через радиальное меню? |
![]()
Сообщение
#3260
|
|
Level 7 ![]() ![]() Класс: Некромант Характер: True Neutral Раса: Нежить ![]() |
Можно ли как-то запретить выгонять спутника из отряда кнопкой из радиального меню? Если нельзя, то как можно запустить определенный скрипт, когда игрок все же выкинул спутника через радиальное меню? Никак, насколько мне известно: нативных событий нет, быстрый поиск по nwnx результатов не дал. Можно разве что проверять на хб, состоит ли непись в группе с игроком, и запускать необходимые действия. Очевидно, скорее всего с задержкой в несколько секунд. |
![]()
Сообщение
#3261
|
|
Level 4 ![]() ![]() Класс: Воин Характер: Chaotic Good Раса: Человек ![]() |
Благодарю за ответ.
Ребят... начал баловаться с tlk файлами. Засунул свой тлк в папку tlk и в модуле поставил индивидуальный тлк файл. Но почему-то когда я играл в свой модуль перевод оставался прежним. Как это вообще работает? И для чего тогда, если при распаковке и загрузке в игре модуля перевод не меняется, а должен ли вообще? |
![]()
Сообщение
#3262
|
|
Миловидный Бегрюссунг ![]() Класс: Воин Характер: Chaotic Good Раса: Человек NWN: Модмейкер Проклятие Левора Порядок Времени ![]() |
В папке оверрайд любой ресурс перебъет модульные хаки и ресурсы нвн в целом. Если в овверайде лежит тлк, то остальные уже не важно где лежат...
|
![]()
Сообщение
#3263
|
|
Level 4 ![]() ![]() Класс: Воин Характер: Chaotic Good Раса: Человек ![]() |
А если в оверрайде нет тлк? Что может быть?
|
![]()
Сообщение
#3264
|
|
Level 19 ![]() Класс: Воин Характер: Lawful Good Раса: Человек NWN: Скриптинг [PW] Gem of the North Край Лесов ![]() |
Я всегда думал, что тлк в овере и не работает (IMG:style_emoticons/kolobok_light/smile.gif) Это не модульный ресурс, смысл ему там работать. Для перевода всей игры меняется сам dialog.tlk в корне. А тот тлк, что в папке тлк - это чисто для модуля (добавочный), и он начинается не с первой строки, в гайдах можно найти это число, там кажется больше миллиона.
|
![]()
Сообщение
#3265
|
|
Level 4 ![]() ![]() Класс: Воин Характер: Chaotic Good Раса: Человек ![]() |
Для перевода всей игры меняется сам dialog.tlk в корне. А тот тлк, что в папке тлк - это чисто для модуля (добавочный), и он начинается не с первой строки, в гайдах можно найти это число, там кажется больше миллиона. Понятно, я не так слегка понял. Зря размечтался. |
![]()
Сообщение
#3266
|
|
Level 4 ![]() ![]() Класс: Воин Характер: Chaotic Good Раса: Человек ![]() |
Подскажет кто, как прекратить в области дождь? Т.е свести погодный процент в свойствах области к нулю скриптом в игре?
|
![]()
Сообщение
#3267
|
|
Level 7 ![]() ![]() Класс: Некромант Характер: True Neutral Раса: Нежить ![]() |
Подскажет кто, как прекратить в области дождь? Т.е свести погодный процент в свойствах области к нулю скриптом в игре? SetWeather() |
![]()
Сообщение
#3268
|
|
Level 5 ![]() Класс: Маг Характер: Chaotic Good Раса: Человек NWN: Модмейкер История дома Салливан ![]() |
Доброго всем времени суток. Подскажите, можно ли командой
Neverwinter Script SetCreatureAppearanceType поменять внешний вид лошади? Не нашла ее в списке типов внешности в редакторе скриптов. Хочется, чтобы через диалог можно было, например, снять седло или надеть.
|
![]()
Сообщение
#3269
|
|
Тролль ![]() ![]() ![]() ![]() Класс: Пьяный Мастер Характер: Chaotic Neutral Раса: Тварь ![]() |
Приветствую всех. Сразу к делу: Все команды спутников содержатся в отдельном стандартном НВН-ском скрипте "x0_inc_henai", если ты напишешь кастомный скрипт для своего спутника (или "модернизируешь" стандартный и сохранишь в качестве своего кастомного скрипта) в триггер OnConversation и используешь этот ресурс инклюдом, то сможешь задать спутникам такие параметры, какие сможешь. В том числе запретить выгонять их из группы.Можно ли как-то запретить выгонять спутника из отряда кнопкой из радиального меню? Если нельзя, то как можно запустить определенный скрипт, когда игрок все же выкинул спутника через радиальное меню? Кроме того, если какое-либо существо было добавлено к игроку в качестве хенчмена командой AddHenchman, и у этого существа отсутствует адекватный скрипт по управлению хенчменом в триггере OnConversation - его по умолчанию вообще не возможно выгнать из отряда (т.к. все команды его радиального меню без такого скрипта просто не будут работать). Подскажите, можно ли командой Можно. Вся трудность состоит в том, что в окне свойств создания аппеаренсы обозначены словесным описанием и негде посмотреть их таги (если они вообще есть), однако все они имеют Neverwinter Script SetCreatureAppearanceType поменять внешний вид лошади? Не нашла ее в списке типов внешности в редакторе скриптов. Хочется, чтобы через диалог можно было, например, снять седло или надеть.Neverwinter Script int nAppearanceType т.е. свой номер.Так например: Neverwinter Script SetCreatureAppearanceType(OBJECT_SELF, 522); = "Лошадь пегая".Neverwinter Script SetCreatureAppearanceType(OBJECT_SELF, 523); = "Лошадь пегая, оседланная".Neverwinter Script SetCreatureAppearanceType(OBJECT_SELF, 524); = "Лошадь пегая, оседланная, навьюченная".Тоже делал у себя в модуле такую фичу с поклажей - экспериментальным путем нашел эти аппеаренсы, дальше не искал. Можешь поэкспериментировать с цифрами и найти вариации для других мастей (сделай модуль с рычагом который меняет стоящему рядом неписю апеаренс, произнося его номер вслух). Сообщение отредактировал Flaristan - Jul 13 2015, 04:09 |
![]()
Сообщение
#3270
|
|
Level 19 ![]() Класс: Воин Характер: Lawful Good Раса: Человек NWN: Скриптинг [PW] Gem of the North Край Лесов ![]() |
Очевидно, эти номера в appearance.2da.
|
![]()
Сообщение
#3271
|
|
Level 5 ![]() Класс: Маг Характер: Chaotic Good Раса: Человек NWN: Модмейкер История дома Салливан ![]() |
denis0k, спасибо! я сама этот 2.da файл ковыряла, но не догадалась вводить цифры, пыталась текст вбивать. Со сменой внешнего вида будет куда удобнее, нежели убирать одну модель и телепортировать другую))) Пасиба еще раз)
|
![]()
Сообщение
#3272
|
|
Level 4 ![]() ![]() Класс: Воин Характер: Chaotic Good Раса: Человек ![]() |
Вот сижу я дом и сижу, да тут как приспичит мне что-нибудь скачать для баловства в тулсете, тайлы например, захожу и что не ссылка - то непонятная страница на ваулте, где окромя ереси и нет ничего. Это что, получается, все потеряно, капут? Как быть, столько тайлов интересных качал с этого форума, а сейчас ссылки в бездну ведут...
|
![]()
Сообщение
#3273
|
|
Миловидный Бегрюссунг ![]() Класс: Воин Характер: Chaotic Good Раса: Человек NWN: Модмейкер Проклятие Левора Порядок Времени ![]() |
Да, валут переехал.
|
![]()
Сообщение
#3274
|
|
Level 19 ![]() Класс: Воин Характер: Lawful Good Раса: Человек NWN: Скриптинг [PW] Gem of the North Край Лесов ![]() |
Переехал - это сильно сказано. Атари (или игн, кто там рулил хз) не парились с сохранением контента и просто закрыли сайт. То, что сейчас есть, слили и выложили энтузиасты, там имхо лишь малая доля.
|
![]()
Сообщение
#3275
|
|
Level 11 ![]() Класс: Волшебник Характер: Neutral Good Раса: Фея NWN: Скриптинг [PW] Край Лесов ![]() |
Да, мало того они я так понимаю даже не предупредили о закрытии. Просто в один прекрасный день ваулт перестал работать.
Радует то что большая часть качественных ресурсов сохранилась. Остальное - потеряно навсегда или лежит у кого-то мертвым грузом. Не могу понять кому потребовалось 5гб сносить, лежали бы уж... Сообщение отредактировал Melisse - Aug 12 2015, 13:19 |
![]() ![]() |
Текстовая версия | Сейчас: 26th April 2025 - 14:30 |