![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
![]() |
![]()
Сообщение
#3236
|
|
Level 11 ![]() Класс: Волшебник Характер: Neutral Good Раса: Фея NWN: Скриптинг [PW] Край Лесов ![]() |
Цитата Почитал также мануалы и понял, что нифига не понимаю. Я хочу добавить головы от готовых моделей в набор, чтобы их можно было юзать в тулсете. Или как-то отредактировать эти готовые модели. Что для этого нужно сделать? Если ты хочешь отредактировать не саму модель, а только "лицо" (текстуру то бишь) то нужно их поискать в нутри бифов и выцепить с помощью nwnexplorer, а потом поставить офтошоп и плагин со специальной палитрой (кожа, волосы и так далее, он есть на ваулте) и редактировать. Это специальная палитра отвечает за динамический цвет в игре, т.е. ты просто помечаешь область - что это кожа, а в игре ты уже сам можешь цвет назначать. Если саму модельку хочется изменить, форму и на нее натянуть текстуру, то нужно опять же вытащить из бифов нужную модель, импортнуть в макс. Изменить и экспортнуть в mdl с помощью плагина. У меня дома есть видео вроде, с тем как что делать, но на другом плагине. Процессы схожи, так что я попробую не забыть загрузить. может какие мануалы есть, гляну. Вообще в основном мир nwn-моделинга познается методом тыканья пальцем в небо. Увы и ах... когда был ваулт, я постаралась собрать кое-какую инфу о моделинге и самое важное о эмитерах, но ее крайне мало. Сообщение отредактировал Melisse - Oct 7 2014, 08:11 |
![]()
Сообщение
#3237
|
|
Level 1 Класс: Ученик Дракона Характер: Chaotic Evil Раса: Человек ![]() |
Конкретно я хочу "переодеть" эти модели, эти и вообще почти всю одежду в игре переделать, мне всегда не нравилось что она состоит из частей которые не сочетаются друг с другом, а также добавить в ПЛ кое-что из нового контента появившегося в патчах.
Т.е. мне нужно либо оторвать от них головы и добавить их как-то в игру, в 2da и везде куда нужно чтобы их можно было выбирать в тулсете и сделать новые модели с этими головами, но своей одеждой, либо редактировать одежду непосредственно на дефолтных моделях. И ещё мне интересно, почему в нвнэксплорере все модели так паршиво выглядят? Как точно называется этот плагин для mdl и плагин с палитрой и на каких версиях макса он стопудово работает, какие у вас? На wrg есть MDL Plugin Suite v1.1b, это он? Или может для более новых версий есть чё |
![]()
Сообщение
#3238
|
|
Level 11 ![]() Класс: Волшебник Характер: Neutral Good Раса: Фея NWN: Скриптинг [PW] Край Лесов ![]() |
Забыла залить вчера, попробую сегодня не забыть.
Цитата Как точно называется этот плагин для mdl и плагин с палитрой и на каких версиях макса он стопудово работает, какие у вас? На wrg есть MDL Plugin Suite v1.1b, это он? Или может для более новых версий есть чё плагин который редактирует *.PLT формат текстур. Как называется не помню, гляну вечером у себя в архиве, может у меня остался, только гарантии что он пойдет на новых фотошопах нет (IMG:style_emoticons/kolobok_light/smile.gif) MDL Plugin Suite v1.1b - это для максов 8-9 вроде, там просто импорт/экспорт модели. Для более новых нет. У меня стоит макс 9 и какой-то плагин. Я давн оставила, надо глянуть что. Вечером отпишу по этому вопросу. |
![]()
Сообщение
#3239
|
|
Level 11 ![]() Класс: Волшебник Характер: Neutral Good Раса: Фея NWN: Скриптинг [PW] Край Лесов ![]() |
Вот у меня на максе 9 вот такой стоит набор. Вот может поможет чем-то еще кое-какое описание к нему
PLT плагина для фотошопа не нашла Сообщение отредактировал Melisse - Oct 8 2014, 19:35 |
![]()
Сообщение
#3240
|
|
Level 3 ![]() Класс: Обыватель Характер: Lawful Good Раса: Человек ![]() |
|
![]()
Сообщение
#3241
|
|
Level 11 ![]() Класс: Волшебник Характер: Neutral Good Раса: Фея NWN: Скриптинг [PW] Край Лесов ![]() |
Цитата Это все прикольно, конечно, но ссылки ведут на ваулт, которого больше не существует. (IMG:style_emoticons/kolobok_light/smile.gif) |
![]()
Сообщение
#3242
|
|
Level 1 Класс: Ученик Дракона Характер: Chaotic Evil Раса: Человек ![]() |
Я оказывается криво ставил NWmax, в этот раз скопировал всё куда надо, также поставил gmax и NIF плагины на него, но почему-то модели из контента игры, включая контент SoU и HoTU не открываются, открываются только модели из хака ПЛ и скачанные с ваулта.
|
![]()
Сообщение
#3243
|
|
Level 11 ![]() Класс: Волшебник Характер: Neutral Good Раса: Фея NWN: Скриптинг [PW] Край Лесов ![]() |
они там в как-то скомпилированы, нужно в nwnexplorer текст копировать и потом в текстовой файл их помещать и менять расширение
|
![]()
Сообщение
#3244
|
|
Level 5 ![]() Класс: Маг Характер: Chaotic Good Раса: Человек NWN: Модмейкер История дома Салливан ![]() |
Всем привет, у меня в процессе создания модуля появилось несколько вопросов. Надеюсь, об этом не писали уже 100 раз (исправно читаю "вопросы новичков" и "скрипты", но пока ответов не находила).
Итак, во-первых, такая проблема -у нас есть сюжетный хенч. как сделать, чтобы умирая в бою, он какое-то время лежал типа "при смерти", а после битвы вставал и можно было запустить диалог на присоединение? Или пусть он умирает с концами, но после боя встает (мб даже с полными хитами). Вторая проблема так же связана с этим злополучным хенчем. Он не желает ничего говорить. когда я наступаю на триггер. Причем на 1 триггере сказал, а на остальных молчит как партизан. Чувствую, что надо вставлять ClearAllAction, но что-то не помогает. Собственно, скрипт OnEnter могу выложить тут. Ибо я ошибки в скрипте не вижу, но не понимаю, почему хенч такой молчун. Заранее благодарю за ответы и сердечно прошу тапками не бить, если написала не в ту тему и/или что-то очень-очень глупое. =) |
![]()
Сообщение
#3245
|
|
Level 11 ![]() Класс: Волшебник Характер: Neutral Good Раса: Фея NWN: Скриптинг [PW] Край Лесов ![]() |
1. Ну думаю ему можно на смерть попробовать вставить команду
Neverwinter Script void SetIsDestroyable( int bDestroyable, // Если TRUE то объект уничтожится после смерти int bRaiseable = TRUE, // Если TRUE то можно воскресить заклинанием воскрешения int bSelectableWhenDead = FALSE // Если можно выделить мышкой ); Можешь попробовать поставить SetIsDestroyable(FALSE, TRUE, FALSE); в скрипте на смерть. А потом просто полечить когда нужно эффектом или эфектом ресурекнуть, или оба сразу - ресурект и лечение, что получится. 2. Вообще должен. Опиши ситуацию когда и при каких обстоятельствах - а то не ясно и скрипт в студию. |
![]()
Сообщение
#3246
|
|
Level 5 ![]() Класс: Маг Характер: Chaotic Good Раса: Человек NWN: Модмейкер История дома Салливан ![]() |
Melisse, насчет смерти - отпишусь как попробую.
Так, скрипт. Neverwinter Script void main() { object oPC = GetEnteringObject(); object oHench; oHench = GetObjectByTag("henhen"); if (!GetIsPC(oPC)) return; int DoOnce = GetLocalInt(oPC, GetTag(OBJECT_SELF)); if (DoOnce==TRUE) return; SetLocalInt(oPC, GetTag(OBJECT_SELF), TRUE); ClearAllActions(); AssignCommand(oHench, ActionSpeakString("О Боги! Я боюсь подземелий! Спаси меня, PC!")); AddJournalQuestEntry("main_j", 5, oPC, TRUE, FALSE); } Мы идем с хенчем и наступаем на тригг, а хенч выдает реплику. идем по подземелью, мб это из-за того, что монстры рядом? Или он их чует и уже вступает в бой? Сообщение отредактировал Heather - Jan 20 2015, 21:53 |
![]()
Сообщение
#3247
|
|
Level 11 ![]() Класс: Волшебник Характер: Neutral Good Раса: Фея NWN: Скриптинг [PW] Край Лесов ![]() |
Он не говорит реплику я так поняла?
AssignCommand(oHench, ActionSpeakString("О Боги! Я боюсь подземелий! Спаси меня, PC!")); замени на AssignCommand(oHench, SpeakString("О Боги! Я боюсь подземелий! Спаси меня, PC!")); |
![]()
Сообщение
#3248
|
|
Level 5 ![]() Класс: Маг Характер: Chaotic Good Раса: Человек NWN: Модмейкер История дома Салливан ![]() |
Melisse, ура! Работает! Похоже, рядом с монстрами ActionSpeakString плохо себя ведет)))
Цитата Можешь попробовать поставить SetIsDestroyable(FALSE, TRUE, FALSE); в скрипте на смерть. Это вставляется в хенч-скрипт onDeath или в чистый? |
![]()
Сообщение
#3249
|
|
Level 11 ![]() Класс: Волшебник Характер: Neutral Good Раса: Фея NWN: Скриптинг [PW] Край Лесов ![]() |
ActionSpeakString просто вешает действие action, а SpeakString просто сразу выдает текст без action
Все функции, которые имеют слово action вешаю действие Цитата Это вставляется в хенч-скрипт onDeath или в чистый? Да, лучше новый для хенча сделать - копию с существующего, назови по другому и засунь в начало где-нить Кстати, если ты мобов создаешь через экаунтер то у него там есть эвент OnExhausted, т.е. на истощение. Иначе говоря - убиваешь всех мобов, которых породил этот экаунтер - он срабатывает. В этот эвент можно засунуть воскрешение твоего хенча, к примеру. Сообщение отредактировал Melisse - Jan 20 2015, 22:20 |
![]()
Сообщение
#3250
|
|
Level 5 ![]() Класс: Маг Характер: Chaotic Good Раса: Человек NWN: Модмейкер История дома Салливан ![]() |
Melisse, что-то не хочет компилиться, похоже, я не поставила такие { } где-то. Если не трудно, можешь прислать скрипт как он должен выглядеть? Хотя бы примерно, чтобы видеть, где у меня скобочки или запятышки убежали.
------------ скрипт компилируется, но, походу для меня это слишком сложно. хенч, умирая, просто исчезает. =( У меня по разному, некоторые мобы расставлены, некоторые по экаунтеру. -------------- С хенчем разобрались - ура! - одной проблемой меньше! Сообщение отредактировал Heather - Jan 24 2015, 17:04 |
![]()
Сообщение
#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 результатов не дал. Можно разве что проверять на хб, состоит ли непись в группе с игроком, и запускать необходимые действия. Очевидно, скорее всего с задержкой в несколько секунд. |
![]() ![]() |
Текстовая версия | Сейчас: 7th July 2025 - 21:32 |