![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
![]() |
![]()
Сообщение
#4921
|
|
Level 11 ![]() Класс: Волшебник Характер: Neutral Good Раса: Фея NWN: Скриптинг [PW] Край Лесов ![]() |
Попробуй так, может быть не читает локацию
Neverwinter Script void main()
{ object oActivator = GetItemActivator(); object oActivated = GetItemActivated(); string sTag = GetTag(oActivated); location lActivator = GetItemActivatedTarget(); if (sTag == "MatildaX") { object oSummon = GetAssociate(ASSOCIATE_TYPE_SUMMONED, oActivator, 1); if(!GetIsObjectValid (oSummon )) { effect eSummonedMonster = EffectSummonCreature("matilda", VFX_FNF_GAS_EXPLOSION_EVIL, 0.5f); ApplyEffectAtLocation(DURATION_TYPE_TEMPORARY, eSummonedMonster, lActivator, HoursToSeconds(24)); } else { SendMessageToPC (oActivator , "У вас уже есть призванное существо"); } } } Сообщение отредактировал Melisse - Sep 5 2017, 17:18 |
![]()
Сообщение
#4922
|
|
Level 3 ![]() Класс: Пьяный Мастер Характер: True Neutral Раса: Человек ![]() |
К сожалению все равно не срабатывает (IMG:style_emoticons/kolobok_light/sad.gif)
|
![]()
Сообщение
#4923
|
|
Level 19 ![]() Класс: Воин Характер: Lawful Good Раса: Человек NWN: Скриптинг [PW] Gem of the North Край Лесов ![]() |
Как оно скомпилировалось?
location lActivator = GetItemActivatedTarget(); Возвращает object же. |
![]()
Сообщение
#4924
|
|
Миловидный Бегрюссунг ![]() Класс: Воин Характер: Chaotic Good Раса: Человек NWN: Модмейкер Проклятие Левора Порядок Времени ![]() |
Elendion, для начала нужны азы программирования. Как определить объект, как его описать, как начать скрипт, как закончить и т.д. Без этого будет каша.
Начать нужно с маленького модуля тестировать простые действия, подошел, поговорил, отошел, сел, встал, пукнул громко и так далее. Потом писать что-то в модуль. ИМХО. |
![]()
Сообщение
#4925
|
|
Level 3 ![]() Класс: Пьяный Мастер Характер: True Neutral Раса: Человек ![]() |
Посидел помучался, сделал х)
Можно сделать, чтобы животные дикие разбегались от игрока? |
![]()
Сообщение
#4926
|
|
Миловидный Бегрюссунг ![]() Класс: Воин Характер: Chaotic Good Раса: Человек NWN: Модмейкер Проклятие Левора Порядок Времени ![]() |
|
![]()
Сообщение
#4927
|
|
Level 3 ![]() Класс: Пьяный Мастер Характер: True Neutral Раса: Человек ![]() |
Остроумно, маэстро, однако делу это не поможет.
|
![]()
Сообщение
#4928
|
|
Миловидный Бегрюссунг ![]() Класс: Воин Характер: Chaotic Good Раса: Человек NWN: Модмейкер Проклятие Левора Порядок Времени ![]() |
Вопросов тут задали много, модулей построили мало (IMG:style_emoticons/kolobok_light/smile.gif) Оттуда и сарказм. Если человек хочет получить ответ на форуме, он должен правильно задать вопрос. Золотое правило общения на форумах.
Задача то какая? Тупо все животные убегают с криками "Аааа! Спасайтесь зоофил!!" И все? |
![]()
Сообщение
#4929
|
|
Level 3 ![]() Класс: Пьяный Мастер Характер: True Neutral Раса: Человек ![]() |
Ну допустим стоит себе пасется дикая зёбра, игрок проходит рядом и она отбегает, угроза же.
|
![]()
Сообщение
#4930
|
|
Миловидный Бегрюссунг ![]() Класс: Воин Характер: Chaotic Good Раса: Человек NWN: Модмейкер Проклятие Левора Порядок Времени ![]() |
Начерти триггер, на нем определи зёбру, игрок наступил на триггер, зёбра с криками ужаса убежала. Все.
|
![]()
Сообщение
#4931
|
|
Level 3 ![]() Класс: Пьяный Мастер Характер: True Neutral Раса: Человек ![]() |
Отбежит она разок, игрок снова подойдет, и? Есть другой вариант? Прописать в скриптах именно самой животинки реакцию на PC, например?
|
![]()
Сообщение
#4932
|
|
Level 19 ![]() Класс: Воин Характер: Lawful Good Раса: Человек NWN: Скриптинг [PW] Gem of the North Край Лесов ![]() |
ИИ - один из самых сложных аспектов геймдева. Тебе нужен либо программист, либо попытаться найти готовое решение, например, тут в закромах или на https://neverwintervault.org/
Если хочется самому, то копать в сторону события OnHeartbeat моба и функций поиска игрока в определённом радиусе. |
![]()
Сообщение
#4933
|
|
Level 3 ![]() Класс: Пьяный Мастер Характер: True Neutral Раса: Человек ![]() |
Да, спасибо, я на ваулте много интересного находил, буду думать.
|
![]()
Сообщение
#4934
|
|
Миловидный Бегрюссунг ![]() Класс: Воин Характер: Chaotic Good Раса: Человек NWN: Модмейкер Проклятие Левора Порядок Времени ![]() |
Залез в базу скриптов для новичков. Переработал скрипт -fenix-а за 1 минуту под твои нужды.
Скрипт ставется на слот OnPerception в св-вах зёбры. Neverwinter Script void main()
{ object oPercep = GetLastPerceived(); // последний воспринятый объект // если последний воспринятый объект был увиден и если он является игроком if ( GetLastPerceptionSeen() && GetIsPC(oPercep)) { SpeakString("Спасайся! ЗООФИЛ!!!"); //сюда вписывай свои действия, типа убежала зёбра на сто метров } } |
![]()
Сообщение
#4935
|
|
Level 3 ![]() Класс: Пьяный Мастер Характер: True Neutral Раса: Человек ![]() |
О! Спасибо мил человек, низкий поклон (IMG:style_emoticons/kolobok_light/rolleyes.gif)
|
![]()
Сообщение
#4936
|
|
Level 3 ![]() Класс: Пьяный Мастер Характер: True Neutral Раса: Человек ![]() |
Появился новый вопрос, хы. Мне нужно, чтобы открывалась ветка диалога при определенном уровне, но так, чтобы не приходилось перебирать каждый классовый уровень персонажа в проверке, а то это будет некорректно работать, если игрок нескольких классов.
|
![]()
Сообщение
#4937
|
|
Миловидный Бегрюссунг ![]() Класс: Воин Характер: Chaotic Good Раса: Человек NWN: Модмейкер Проклятие Левора Порядок Времени ![]() |
Все есть в скриптах для новичков. Позавчера читал, когда писал прошлый скрипт.
|
![]()
Сообщение
#4938
|
|
Level 11 ![]() Класс: Волшебник Характер: Neutral Good Раса: Фея NWN: Скриптинг [PW] Край Лесов ![]() |
Как оно скомпилировалось? location lActivator = GetItemActivatedTarget(); Возвращает object же. ну так, по памяти пишу... там нужно было GetItemActivatedTargetLocation() (IMG:style_emoticons/kolobok_light/smile.gif) но ведь скопмпилировалось же у него! (IMG:style_emoticons/kolobok_light/smile.gif) Цитата Можно сделать, чтобы животные дикие разбегались от игрока? используй функции, ActionMoveAwayFromLocation ActionMoveAwayFromObject в скрипте на OnPerception (примерное название) в слотах моба Вот Айван привел кусочек скрипта как раз на это событие Сообщение отредактировал Melisse - Sep 9 2017, 12:34 |
![]()
Сообщение
#4939
|
|
Level 3 ![]() Класс: Пьяный Мастер Характер: True Neutral Раса: Человек ![]() |
В базе скриптов есть скрипт на рубку дерева, вопрос следующий: как сделать рандомный предмет получаемый при срубе из нескольких на выбор. Я вижу как все это прописано в OnDamaged, но не знаю как правильно построить функцию рандома, сам пытался, но все через Ж.
|
![]()
Сообщение
#4940
|
|
Level 19 ![]() Класс: Воин Характер: Lawful Good Раса: Человек NWN: Скриптинг [PW] Gem of the North Край Лесов ![]() |
Функция рандома там встроена (IMG:style_emoticons/kolobok_light/smile.gif) Генерирует число в заданном диапазоне. Тебе нужно только в зависимости от числа-результата задать ресреф нужного итема.
|
![]()
Сообщение
#4941
|
|
Level 3 ![]() Класс: Пьяный Мастер Характер: True Neutral Раса: Человек ![]() |
Да, я знаю, что она есть, но не знаю как её правильно вставить в скрипт, чтобы его не сломать.
|
![]()
Сообщение
#4942
|
|
Level 19 ![]() Класс: Воин Характер: Lawful Good Раса: Человек NWN: Скриптинг [PW] Gem of the North Край Лесов ![]() |
Что-то типа:
CODE int x = random(3) + 1; if (x == 1) { resref = "item1"; } else if (x == 2) { resref = "item2"; } else if (x == 3) { resref = "item3"; } Потом этот ресреф скормить функции создания. Писал по памяти (IMG:style_emoticons/kolobok_light/smile.gif) |
![]()
Сообщение
#4943
|
|
Level 3 ![]() Класс: Пьяный Мастер Характер: True Neutral Раса: Человек ![]() |
Спасибо, буду ковыряться х)
А возможно сделать, чтобы ветка диалога открылась только если рядом находится плейсебл с определенным тегом/ресрефом? |
![]()
Сообщение
#4944
|
|
Level 11 ![]() Класс: Волшебник Характер: Neutral Good Раса: Фея NWN: Скриптинг [PW] Край Лесов ![]() |
Нужно поставить в диалог на вкладку с названием "Текст проявляет при...", если у тебя русская версия тулсета Neverwinter Script int StartingConditional()
{ object oPC = GetPCSpeaker(); object oPlaceable = GetNearestObjectByTag ("ТЭГ_ОБЪЕКТА", oPC , 1); if (GetIsObjectValid(oPlaceable) && GetDistanceBetween (oPC, oPlaceable) < 30.0f) // в радиусе 30 метров от игрока { return TRUE; } return FALSE; } |
![]()
Сообщение
#4945
|
|
Level 3 ![]() Класс: Пьяный Мастер Характер: True Neutral Раса: Человек ![]() |
Огромное спасибо, это то, что нужно!
А в совершенных действиях можно, чтобы этот ближний плейс заменился на другой? |
![]() ![]() |
Текстовая версия | Сейчас: 20th August 2025 - 08:44 |