![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
![]() |
![]()
Сообщение
#3496
|
|
Level 2 ![]() Класс: Обыватель Характер: Lawful Good Раса: Человек ![]() |
В смысле встречи?
Если ставить триггеры, то респ я так понимаю будет происходить, если на него снова наступить, получается надо будет всех информировать, что при входе снова в локацию, будет респ мобов, и ставить триггер как раз на входе, или может я что то не понимаю? Потом допустим если мне нужно поставить моба где нибудь на возвышении гор одного, как я это сделаю с триггером, он респаться будет на каком растоянии.. У меня просьба, если кто делал скрипты на спавн мобов с пропись разных мобов, чтобы их можно было поменять на других, ну тоесть на любых других какие будут в модуле, и время через каторое будет респ, я в скриптах почти 0, а разбиратся в них просто времени нет работаю много, если кто напишет, потом обязательно договоримся$$$ |
![]()
Сообщение
#3497
|
|
Тролль ![]() ![]() ![]() ![]() Класс: Пьяный Мастер Характер: Chaotic Neutral Раса: Тварь ![]() |
Рекомендую - для написания тривиальных эвентов и в качестве удобного пособия примеров для изучения NWN-скриптинга. Запускаем тулсет, открываем нужную локацию, открываем вкладку с монстрами и жмем кнопку «редактировать и копировать» на понравившемся, делаем что хотим с этим монстром и создаем ему уникальный резреф в конце сохраняя в кастомной своей палитре, копируем этот резреф себе в сторонку. Скачиваем скрипт генератор, запускаем, выбираем (в окошке вверху слева) тип скрипта «нормальный скрипт», выбираем источник запуска скрипта «ПС входит куда-то», отменяем спец условие, выбираем из списка скриптовых эвентов «сделать если ЭТО тогда ТО условие» и жмем кнопку «скрипт»: - выбираем тип условия «проверить локальную целочисленную»; - вводим в поле название для нашей переменной (ну например MONSTER_SPAWN_CHECK); - выбираем галочку на условие «точно равно»; - выставляем значение «0»; - жмем «ок»; выбираем из списка скриптовых эвентов «спавн созданий» и жмем кнопку «скрипт», заполняем поля: - «резреф» (копируем его из описалова монстра которого хотим спавнить); - визуальный эффект спавна (можно не трогать); - точка спавна – по вейпоинту (указываем таг нашего вейпоинта); - действия создания при респавне – выбираем «без действия»; - жмем «ок – выход»; выбираем из списка скриптовых эвентов «установка локальных переменных» и жмем кнопку «скрипт»: - выбираем тип переменной «целочисленная» и ставим соответствующий флажок (integer); - вводим в поле название нашей переменной упомянутое блоком выше (в примере MONSTER_SPAWN_CHECK); - устанавливаем ее в значение «1»; - жмем «ок – выход»; жмем кнопку «окончить текущие если», выбираем вариант «просто закончить», жмем кнопку «закрыть», видим в окошке наш сгенерированный скрипт и комент «поместите на OnEnter»: Код //Put this script OnEnter void main() { object oPC = GetEnteringObject(); if (!GetIsPC(oPC)) return; if (GetLocalInt(oPC, "MONSTER_SPAWN_CHECK")== 0) { oTarget = GetWaypointByTag("TAG_OF_WAYPOINT "); lTarget = GetLocation(oTarget); oSpawn = CreateObject(OBJECT_TYPE_CREATURE, "resref_of_creature", lTarget); SetLocalInt(oPC, "MONSTER_SPAWN_CHECK", 1); } } копируем все это дело, жмем «свойства локации» в тулсете, открываем вкладку «события» и ищем окошко «OnEnter», жмем кнопочку чуть правее чтоб открыть редактирование скрипта на этот триггер и вставляем туда этот скопированный из генератора скрипт и сохраняем его под оригинальным именем, ставим на локации вейпоинт упомянутый в скрипте с упомянутым оригинальным тагом («TAG_OF_WAYPOINT» или что там придумается) – это будет точка спавна упомянутого монстра (резреф которого не забываем указать посмотрев в своей кастомной палитре в свойствах монстра). Жмем в генераторе скриптов кнопку «очистить для нового скрипта», «ок», снова выбираем тип скрипта «нормальный», выбираем стартер «ПС разрушивает/убивает монстра или плейсебл», выбираем че будет если убьет последователь – «отразится на ПС», отменяем наличие спец условия, выбираем из списка скриптовых эвентов «установка локальных переменных» и жмем кнопку «скрипт»: - выбираем тип переменной «целочисленная» и ставим соответствующий флажок (integer); - вводим в поле название нашей переменной упомянутое блоками выше (в примере MONSTER_SPAWN_CHECK); - устанавливаем ее в значение «0»; - жмем «ок – выход»; жмем кнопку «закрыть», видим и копируем наш сгенерированный скрипт с пометкой «поместить на OnDeath»: Код //Put this script OnDeath void main() { object oPC = GetLastKiller(); while (GetIsObjectValid(GetMaster(oPC))) { oPC=GetMaster(oPC); } if (!GetIsPC(oPC)) return; SetLocalInt(oPC, "MONSTER_SPAWN_CHECK", 0); } копируем это дело и жмем свойства нашего кастомного монстра с упомянутым резрефом в нашей кастомной палитре, выбираем пункт «событий» и находим триггер «OnDeath», жмем справа чтоб редактировать скрипт и вставляем наш скопированный сохранив его под оригинальным названием. Итого: имеем локацию; на ней точку респавна монстра (наш вейпоинт); и скрипт на входе в локацию который проверяет игрока в нее входящего на локальную переменную – если игрок уже убивал нашего оригинального монстра или еще не был на этой локации, значит новенький и целенький монстр появится в указанной точке при входе, если уже заходил в локацию но монстра еще не убивал, значит спавнить нового не будем. Система будет отлично работать для синглплеерного спавна монстра – для мультиплеерного как правило они сложнее и индивидуальнее. Сообщение отредактировал Flaristan - Feb 7 2012, 04:19 |
![]()
Сообщение
#3498
|
|
Level 19 ![]() Класс: Воин Характер: Lawful Good Раса: Человек NWN: Скриптинг [PW] Gem of the North Край Лесов ![]() |
Valeroy, скажу грубовато, но прямо - во всём нужно разбираться. Если ничего не изучать самому, а только просить сделать другого и показать, где тут настройки, ничего у тебя не выйдет. Для начала могу посоветовать, как бы странно ни звучало, - погуглить про нвн тулсет. Когда я начинал (лет 9 назад, с сингловых модулей), с интернетом было туго, да и форума этого вроде не было вообще, однако я нашёл себе статьи по тулсету с разжёвыванием всего и вся. Даже кастом контент зацепили. Кажется, они были на сайте либо игромании, либо лки.
Когда выкуришь мануалы с элементарными основами, у тебя не будет вопросов по поводу того, как работает тот же триггер встреч. Скрипты да, в полной мере понятны далеко не всем, но уж выучить настройки плейсов, итемов и триггеров ума много не надо. До кучи, стоит распотрошить все модули под рукой (первым делом - кампанию). К слову, нордок (по крайней мере его версия, доступная для скачивания) в качестве спавнера использует как раз-таки самые обычные триггеры. Гем1 в своё время тоже использовал триггеры для спавна. |
![]()
Сообщение
#3499
|
|
Level 7 ![]() Класс: Обыватель Характер: True Neutral Раса: Человек NWN: Модмейкер Начало Войны ![]() |
Valeroy, есть тут на форуме такая штука как база скриптов, страница 2 пятый сверху.
|
![]()
Сообщение
#3500
|
|
Level 2 ![]() Класс: Обыватель Характер: Lawful Good Раса: Человек ![]() |
Место где появится новый NPC определяется путём выставления вэйпоинтов с названием типа "WPR_"+ тэг_умершего_NPC. Если в начале тэга NPC стоит "NPC_", то эти четыре символа отрежутся. Может кто нибудь разжевать? Flaristan спасибо тебе огромное, приду домой буду пробовать, а на мультиплеер разве не пойдут такие скрипты? А как сделать допустим, чтобы было 4 сундука на боссе и в каждом сундуке были вещи, около 5-7, на каждый класс, и еще чтобы после каждого появления босса вещи тоже появлялись в сундуках, но уже другие, ну с небольшим добавлением |
![]()
Сообщение
#3501
|
|
Тролль ![]() ![]() ![]() ![]() Класс: Пьяный Мастер Характер: Chaotic Neutral Раса: Тварь ![]() |
Было бы легче, если бы знать кусок пояснения к чему это, и видеть полный текст.
Очевидно имеется в виду, что если у нас есть монстры к примеру с тагами «TAG001» и «NPC_TAG002», то точки их респавнов будут обозначаться вейпоинтами с тагами соответственно «WPR_TAG001» и «WPR_TAG002». Пойдут или не пойдут – решает уже сам разработчик. Тот простенький скрипт сделанный в скриптгенераторе, который я предложил - не универсален. Хорошо если задумка описанной точки респавна при входе в локацию игрока спавнить ему противника по штуке на игрока без заморочек, но если это особый противник вроде босса? Тогда получится: зашел 1 игрок на локацию и стал драться с ним, и тут на локацию заходит другой игрок - внезапно появляется еще один босс на голову первому игроку. А если заходит отряд в 10 человек – появятся 10 боссов. А если в локацию зашел один игрок, не смог убить монстра и убежал, и тут в локацию приходит второй игрок – он монстра еще не убивал и получится у него отреспится и свой монстр и на локации будет еще тот которого отреспил предыдущий игрок. В общем, делая для мультиплеера, приходится учитывать кучу нюансов относительно конечного вида реализации своих задумок. Как правило, для качественного внедрения единичной идеи требуется прописывание айсберга неявных нюансов удерживающих эту идею именно в той форме, которая была задумана. Чтоб успешно заниматься этим - одного владения «скрипт-генератором» мало, нужно быть на «ты» с НВН-скриптингом. Поставить 4 сундука; написать скрипт, который при открытии сундука единожды на смерть босса находящегося рядом генерирует в нем определенные вещи в определенном количестве, и если вещи уже лежат в сундуке при новом открытии после новой смерти босса – добавлять в их свойства определенные заранее улучшения; развесить этот скрипт на эти 4 сундука. (IMG:style_emoticons/kolobok_light/smile.gif) |
![]()
Сообщение
#3502
|
|
Level 5 ![]() ![]() Класс: Вор Характер: Neutral Good Раса: Человек ![]() |
Подскажите - как заставить катапульту стрелять огненными шарами?Или метеоритным штормом? Плиз дайте скрипт!
Сообщение отредактировал ReZkiy - Feb 18 2012, 13:03 |
![]()
Сообщение
#3503
|
|
Level 9 ![]() Класс: Обыватель Характер: Lawful Good Раса: Человек NWN: Модмейкер Рыцарская Сага ![]() |
Для балист и катапульт
Neverwinter Script void main() { object oBal = OBJECT_SELF; object oZel = GetNearestObjectByTag("ZEL_BAL");//Объект на который должен быть скастован спелл. if (GetIsObjectValid(oZel) && GetDistanceToObject(oZel) <= 50.0f && GetLocalInt(oBal,"BALL") != 1) { SetLocalInt(oBal,"BALL",1); PlaySound("as_cv_winch1"); DelayCommand(15.3, SetLocalInt(oBal,"BALL",FALSE)); if (GetTag(oBal) == "CATAPULTA") AssignCommand(oBal,ActionCastSpellAtObject(SPELL_F IREBALL,oZel)); else switch (Random(2)+1) { case 1: AssignCommand(oBal,ActionCastSpellAtObject(SPELL_F LAME_ARROW,oZel)); break; case 2: AssignCommand(oBal,ActionCastSpellAtObject(SPELL_M ELFS_ACID_ARROW,oZel)); break; } } } Спец скрипт для мощной катапульты Neverwinter Script void main() { object oPC = GetFirstPC(); object oBal = OBJECT_SELF; int i = 1; object oZel = GetNearestObject(OBJECT_TYPE_CREATURE, oBal, i); vector vFace = GetPosition(oPC); if (GetArea(oPC) != GetArea(oBal)) return; if (GetLocalInt(oBal,"BALL") == 1) return; while(GetIsObjectValid(oZel)) { int iRepa = GetReputation(oZel, oBal); if (iRepa < 40) { if (GetDistanceToObject(oZel) <= 23.0 && !GetIsDead(oZel)) { if (GetDistanceToObject(oZel) <= 3.0) return; effect eDamage = EffectDamage(GetCurrentHitPoints(oZel)/5, DAMAGE_TYPE_BLUDGEONING); effect eIMM = EffectSpellResistanceDecrease(30); AssignCommand(oBal, SetFacingPoint(vFace)); ApplyEffectToObject(DURATION_TYPE_TEMPORARY,eIMM,o Zel,5.0); PlaySound("cb_sh_ballista"); DelayCommand(0.5, AssignCommand(oBal,ActionCastSpellAtObject(SPELL_M AGIC_MISSILE,oZel))); DelayCommand(1.5, ApplyEffectToObject(DURATION_TYPE_INSTANT, eDamage, oZel));// Наносим удар DelayCommand(3.0, PlaySound("as_cv_winch1")); DelayCommand(11.0, SetLocalInt(oBal,"BALL",FALSE)); SetLocalInt(oBal,"BALL",1); break; } } i++; oZel = GetNearestObject(OBJECT_TYPE_CREATURE, oBal, i); } } Скрипты стоят на ХБ |
![]()
Сообщение
#3504
|
|
Level 5 ![]() ![]() Класс: Вор Характер: Neutral Good Раса: Человек ![]() |
Спец скрипт для мощной катапульты Neverwinter Script void main() { object oPC = GetFirstPC(); object oBal = OBJECT_SELF; int i = 1; object oZel = GetNearestObject(OBJECT_TYPE_CREATURE, oBal, i); vector vFace = GetPosition(oPC); if (GetArea(oPC) != GetArea(oBal)) return; if (GetLocalInt(oBal,"BALL") == 1) return; while(GetIsObjectValid(oZel)) { int iRepa = GetReputation(oZel, oBal); if (iRepa < 40) { if (GetDistanceToObject(oZel) <= 23.0 && !GetIsDead(oZel)) { if (GetDistanceToObject(oZel) <= 3.0) return; effect eDamage = EffectDamage(GetCurrentHitPoints(oZel)/5, DAMAGE_TYPE_BLUDGEONING); effect eIMM = EffectSpellResistanceDecrease(30); AssignCommand(oBal, SetFacingPoint(vFace)); ApplyEffectToObject(DURATION_TYPE_TEMPORARY,eIMM,o Zel,5.0); PlaySound("cb_sh_ballista"); DelayCommand(0.5, AssignCommand(oBal,ActionCastSpellAtObject(SPELL_M AGIC_MISSILE,oZel))); DelayCommand(1.5, ApplyEffectToObject(DURATION_TYPE_INSTANT, eDamage, oZel));// Наносим удар DelayCommand(3.0, PlaySound("as_cv_winch1")); DelayCommand(11.0, SetLocalInt(oBal,"BALL",FALSE)); SetLocalInt(oBal,"BALL",1); break; } } i++; oZel = GetNearestObject(OBJECT_TYPE_CREATURE, oBal, i); } } Слушай, а важно ли здесь что бы катапульта или баллиста как плейсбл была используемая? |
![]()
Сообщение
#3505
|
|
Level 9 ![]() Класс: Обыватель Характер: Lawful Good Раса: Человек NWN: Модмейкер Рыцарская Сага ![]() |
Важно, т.к. скрипт стоит на ХБ и катапульты кастуют спелы.
|
![]()
Сообщение
#3506
|
|
Тролль ![]() ![]() ![]() ![]() Класс: Пьяный Мастер Характер: Chaotic Neutral Раса: Тварь ![]() |
Для того, чтоб плейсбл мог кастовать спеллы, он не должен быть «статик» - но при этом он может быть не «активным».
Используй только галочку «сюжетный», если хочешь, чтоб катапульты нельзя было разрушить, и он будет как статик, колдующий спеллы. Сообщение отредактировал Flaristan - Feb 19 2012, 18:32 |
![]()
Сообщение
#3507
|
|
Level 5 ![]() ![]() Класс: Вор Характер: Neutral Good Раса: Человек ![]() |
|
![]()
Сообщение
#3508
|
|
Level 1 Класс: Обыватель Характер: Lawful Neutral Раса: Человек ![]() |
Всех приветствую!Возник вопрос.Прошу прощения,если пишу не туда...
Вопрос:необходимо,чтобы НПС появился после выполнения какого-либо действия,а не сразу при запуске модуля(например,через присвоение ему локальной переменной).То есть,поговорил с каким-нибудь челом,и,в указанном месте появился новый НПС.Ещё,хотел спросить:как заставить появиться НПС при наступлении ГГ на определённый участок локации?То есть,созданная мною группа НПС через "Мастер встреч",появлялась после выполнения разговора с кем-либо.Заранее,спасибо за помощь (IMG:style_emoticons/kolobok_light/declare.gif) |
![]()
Сообщение
#3509
|
|
Level 2 ![]() Класс: Обыватель Характер: Lawful Good Раса: Человек ![]() |
Здраствуйте, извините может не туда пишу, но у меня серьезный вопрос, мне нужен человек который бы объяснил по скайпу как работать со скриптами, для меня это не знакомо, поэтому прошу строго не судить если я обратился с этой просьбой суда, просто у меня хорошая идея для создания онлайн-модуля, но без скриптов ни как, хорошо отблагодарю человека который сможет помоч, пишите суда или скайп nemi44441
|
![]()
Сообщение
#3510
|
|
Level 19 ![]() Класс: Воин Характер: Lawful Good Раса: Человек NWN: Скриптинг [PW] Gem of the North Край Лесов ![]() |
redlist2009, все эти моменты разжёваны по 100 раз, тут огромная база примеров (IMG:style_emoticons/kolobok_light/smile.gif) В качестве наводки:
- Для выполнения действия в ветке диалога есть соответствующий слот для скрипта. - Для выполнения действия в определённом месте локации есть слот OnEnter у триггеров, который там надо заранее нарисовать. - Создать объект в скрипте можно функцией типа CreateObject по его resref-у, который можно подглядеть в палитре. - Можно распотрошить оригинальную кампанию, там есть такие ситуации. Если ты конечно её проходил. На подобные вопросы тут неохотно отвечают, т.к. это всё есть в мануалах. Valeroy, говорю как преподаватель информатики (в т.ч. и программирования) - если ты совсем ничего не понимаешь в программировании, то обучить тебя этому за пару вечеров в скайпе невозможно в принципе. Самый действенный вариант - заинтересуй кого-нить своей идеей, тут 100% несколько скриптеров без дела шатается. Если идея интересна не только тебе, может выйти положительный результат. Сообщение отредактировал denis0k - Feb 22 2012, 23:30 |
![]()
Сообщение
#3511
|
|
Level 1 Класс: Обыватель Характер: Lawful Neutral Раса: Человек ![]() |
denis0k, спасибо за совет,но,в этом и проблема...Я запутался во всём этом...Или,вы,меня не правильно поняли.Постараюсь объяснить.Все,наверное,играли в The Elder Scrolls 4 Oblivion.Так вот,кто помнит,в конце игры на имперский город нападают демоны...Именно это мне нужно...То,что,вы,мне сказали-я знаю...И,по поводу диалогов,и,по поводу триггеров...Я не знаю,что именно нужно писать в скипте.
|
![]()
Сообщение
#3512
|
|
Level 8 ![]() ![]() ![]() Класс: Псионик Характер: Chaotic Neutral Раса: Хафлинг ![]() |
denis0k, спасибо за совет,но,в этом и проблема...Я запутался во всём этом...Или,вы,меня не правильно поняли.Постараюсь объяснить.Все,наверное,играли в The Elder Scrolls 4 Oblivion.Так вот,кто помнит,в конце игры на имперский город нападают демоны...Именно это мне нужно...То,что,вы,мне сказали-я знаю...И,по поводу диалогов,и,по поводу триггеров...Я не знаю,что именно нужно писать в скипте. Вообще.. имхо такие вопросы говорят о непостижении дзена тулсета, посозерцайте побольше контента и понимание придет само. |
![]()
Сообщение
#3513
|
|
Level 19 ![]() Класс: Воин Характер: Lawful Good Раса: Человек NWN: Скриптинг [PW] Gem of the North Край Лесов ![]() |
Дело не в дзен самого тулсета. Программирование - наука непростая, нахрапом её не взять. Это требует наличия некоторых знаний, которых в одном-двух абзацах не описать. Если лень найти в инете хотя бы лекции по программированию для школьников (не говоря о мануале по программированию на нвскрипт), то тут поможет только специально
|
![]()
Сообщение
#3514
|
|
Level 2 ![]() Класс: Обыватель Характер: Lawful Good Раса: Человек ![]() |
Мне на самом деле много не надо, около 5-ти скриптов, которых сам сделать не смогу, я даже готовые скрипты с города мастеров поставить не могу, они у меня не ребатают, говорю о скриптах на респ мобов, если у кого есть время в воскресенье или понедельник пишите мне в скайп Nemi44441 эти дни я буду дома, пока мне нужно только скрипт на респ мобов, тут мне к сожалению не объяснить, так как я большенства терминов не знаю, к тому же у меня модуль с непонятным переводом
|
![]()
Сообщение
#3515
|
|
Level 2 ![]() Класс: Обыватель Характер: Lawful Good Раса: Человек ![]() |
Доброе время суток, извините может пишу не в ту тему, но знаю тут быстро могут помочь, я запустил сервер, но другие игроки не могут его увидет, в чем может быть проблема это на линуксе
|
![]()
Сообщение
#3516
|
|
Тролль ![]() ![]() ![]() ![]() Класс: Пьяный Мастер Характер: Chaotic Neutral Раса: Тварь ![]() |
Не все IP одинаково полезны: если у тебя динамический или внутрисетевой (серый), то подключиться к тебе по интернету на него не смогут – нужен приватный (белый).
Может помочь прога для создания виртуальной LAN сети «хамачи» - если ее установят, запустят и настроят все нужные пользователи, они смогут подключиться к твоему серверу с любым физическим IP. Скачать можно например тут. P.S.: Хамачи не переваривает маршрутизаторы/роутеры. |
![]()
Сообщение
#3517
|
|
Level 8 ![]() ![]() ![]() Класс: Псионик Характер: Chaotic Neutral Раса: Хафлинг ![]() |
Не все IP одинаково полезны: если у тебя динамический или внутрисетевой (серый), то подключиться к тебе по интернету на него не смогут – нужен приватный (белый). Может помочь прога для создания виртуальной LAN сети «хамачи» - если ее установят, запустят и настроят все нужные пользователи, они смогут подключиться к твоему серверу с любым физическим IP. Скачать можно например тут. P.S.: Хамачи не переваривает маршрутизаторы/роутеры. Вообще не факт. Динамический айпи - не запрещает подключение к твоему серверу априори, просто у тебя будет менятся айпи всякий раз когда упадет твое подключение к интернету. Как показывает практика на динамическом айпи с адсл можно какое-то (ну для прохождения 2-х часового модуля например) время поднять даже сервер с NWNX на линуксе (IMG:style_emoticons/kolobok_light/smile.gif) , другое дело что это извращение - сообщать во аське впри каждом обрыве новый внешний айпи (IMG:style_emoticons/kolobok_light/smile.gif) .. |
![]()
Сообщение
#3518
|
|
Level 2 ![]() Класс: Обыватель Характер: Lawful Good Раса: Человек ![]() |
Народ, шард готов, дайте пожалуйста готовый скрипт на респ мобов, по триггеру не хочу, нужен обязательно скрипт, и опишите его как поставить, и пожалуйста без терминов, на простом языке
|
![]()
Сообщение
#3519
|
|
Тролль ![]() ![]() ![]() ![]() Класс: Пьяный Мастер Характер: Chaotic Neutral Раса: Тварь ![]() |
|
![]()
Сообщение
#3520
|
|
Level 1 Класс: Обыватель Характер: Lawful Good Раса: Человек ![]() |
Здравствуйте. У меня возникла одна ситуация по поводу скрипта.
Хочу сделать респ нпс (крыса с ResRef: "rat") через OnDeath скрипт на определенном WP: script1 (OnDeath): CODE #include "script2" void main() { string sResRef = ("rat"); location lSpawn = GetLocation(GetWaypointByTag("SPAWN01")); DelayCommand(10.0, CreateObjectVoid(OBJECT_TYPE_CREATURE, sResRef,lSpawn)); /////////////////////////////////////////////////////// ExecuteScript("nw_c2_default7", OBJECT_SELF); } script2 (include в OnDeath): CODE void CreateObjectVoid(int nObjectType, string sTemplate, location lLoc, int bUseAppearAnimation = FALSE) { object oVoid = CreateObject(nObjectType, sTemplate, lLoc, bUseAppearAnimation); } Сейчас у меня нвн версии 1.69, несколько лет назад делал ту же самую систему на версии 1.68 и всё работало. Конкретно, система заключается в том, что на локации размещается, допустим, 8 крыс и под каждой из них WP респа. На HeartBeat каждой из них вешается RandomWalk (если вне боя). Строка первого скрипта "location lSpawn..." определяется через case из 8 WP, получается, если убить все 8 крыс, возможно на каком-нибудь из WP крыс может быть 3-4 и так далее. Своеобразное разнообразие. Но это ладно... Проблема в том, что у меня не получается сделать DelayCommand в первом скрипте больше, чем на 5.0 секунд. Когда ставлю 4.99, убиваю крысу, она появляется. Ставлю 5.01, убиваю, ничего не происходит, не респится. На модуле, на локации, на крысе нет никаких дополнительных скриптов или других изменений. Ставил на этот OnDeath скрипт крысы визуальный эффект (маг. взрыв на GetLastKiller), он так же не работает, если DelayCommand больше, чем 5.0 секунд. Ставил DelayCommand 10 секунд просто на Placeable: OnUsed, всё работает. Не знаю, чем это всё вызвано. Помогите, кто знает. |
![]() ![]() |
Текстовая версия | Сейчас: 3rd August 2025 - 20:55 |