максим Опубликовано: 18 марта 2019 Опубликовано: 18 марта 2019 Как вообще создавать скрипт точнее где? Можно какое нибудь пособие или гайд. Пример 1 уровень. Когда мы завершаем основной квест то происходит выполнение скрипта всеакторы нсф умирают, да ещё и там счётчик стоит на обнуление и появляется постмиссионтропс ( своими словами ). Проще говоря нужна помощь по флагам, написанию скрипта, конвертация, добавление, применение на карту, работа с флагами в conversation.
LoadLine Calibration Опубликовано: 18 марта 2019 Опубликовано: 18 марта 2019 Все туториалы только на Английском. https://www.dx-revision.com/dxtutorials/tack/
максим Опубликовано: 18 марта 2019 Автор Опубликовано: 18 марта 2019 Но там нет гайда где писать эти скрипты , как компилить потом, чтоб они в самом редакторе как пакет в missionscript появились
LoadLine Calibration Опубликовано: 18 марта 2019 Опубликовано: 18 марта 2019 Есть.https://www.dx-revision.com/dxtutorials/tack/HowToAddCustomPackages.htmlhttps://www.dx-revision.com/dxtutorials/tack/HowToMakeOpeningTextShowUp.html
максим Опубликовано: 18 марта 2019 Автор Опубликовано: 18 марта 2019 Годно,теперь бы знать как с флагами работать. Ибо не понятно как flagtrigger работает, в качестве эксперимента тот же первый уровень, пытался на кнопку поставить как бы конец миссии удаляя флаги с карты конечный результат остаётся тем же, взывает к вопросу а зачем они там , если они не нужны, так для виду ?
LoadLine Calibration Опубликовано: 18 марта 2019 Опубликовано: 18 марта 2019 В диалогах свои флаги еще есть. Можно посмотреть и отредактировать через меню Legend. У меня похожий редактор тоже есть, для отладки и проверки.
максим Опубликовано: 19 марта 2019 Автор Опубликовано: 19 марта 2019 Понять бы логику как с этим всем работать, диалог и goal я накатал, все работает, а вот появление в мир actor ( unatco trops например) после завершения goal не получается
LoadLine Calibration Опубликовано: 19 марта 2019 Опубликовано: 19 марта 2019 Нужно проверить флаг в MissionScript, и исходя из этого, вызвать для нужного Npc функцию EnterWorld(). Или по другой ситуации. Можно через триггер. Такой триггер у меня есть: class D2_UnHideEnemyTrigger expands Trigger; var () name EnemyTag; // Укажите TАG Pawn'a var () float SurpriseTime; var () bool bMakeThemdead; // ---------------------------------------------------------------------------- // Активизация через другой триггер парой Event-Tag // ---------------------------------------------------------------------------- singular function Trigger(Actor Other, Pawn Instigator) { local ScriptedPawn P; foreach AllActors(class'ScriptedPawn', P, EnemyTag) { P.EnterWorld(); P.SurprisePeriod=SurpriseTime; If (bMakeThemDead) { P.bInvincible=FALSE; P.HealthTorso = 0; P.Health = 0; P.TakeDamage(1, P, P.Location, vect(0,0,0), 'Shot'); } } Super.Trigger(Other, Instigator); } // ---------------------------------------------------------------------------- // Активизация от прикосновения // ---------------------------------------------------------------------------- singular function Touch( actor Other ) { local ScriptedPawn P; local DeusExPlayer player; player = DeusExPlayer(Other); if (player == None) return; foreach AllActors(class'ScriptedPawn', P, EnemyTag) { P.EnterWorld(); P.SurprisePeriod=SurpriseTime; If (bMakeThemDead) { P.bInvincible=FALSE; P.HealthTorso = 0; P.Health = 0; P.TakeDamage(1, P, P.Location, vect(0,0,0), 'Shot'); } } Super.Touch(Other); } defaultProperties { bTriggerOnceOnly=true SurpriseTime=1.00 bMakeThemDead=FALSE bCollideActors=true CollisionRadius=75 // TriggerType=TT_ClassProximity // ClassProximityType=Class'DeusEx.Human' }
максим Опубликовано: 20 марта 2019 Автор Опубликовано: 20 марта 2019 Не вышло, сначала хотел понять азы и попробовал проверить флаг так же как это реализовано в 00трейнинг. Я создал флаг, по тем же параметрами и на основе 00missionscript попробовал сделать. Mymissionscript class MyMission expands MissionScript;function Timer(){Super.Timer();if (localURL == "99_kvartal"){// delete the player's inventory in case he tries to keep itif (flags.GetBool('MunitionsTrooperReady'))RemoveAllInventory();}}
LoadLine Calibration Опубликовано: 20 марта 2019 Опубликовано: 20 марта 2019 Если это весь скрипт, то не хватает самой функции RemoveAllInventory(); Можно вывести сообщение, чтобы понять, произошло требуемое, или нет. GetPlayerPawn().ClientMessage("Проверка");
максим Опубликовано: 21 марта 2019 Автор Опубликовано: 21 марта 2019 Это уже интересно, а где тогда она спрятана в missionscript00? Если скопировав полностью скрипт и скомпилить , то получим тоже самое
LoadLine Calibration Опубликовано: 21 марта 2019 Опубликовано: 21 марта 2019 Класс явно объявлен неправильно. Можно ваш пакет и карту? Я посмотрю.
Рекомендованные сообщения
Создайте аккаунт или войдите в него для комментирования
Вы должны быть пользователем, чтобы оставить комментарий
Создать аккаунт
Зарегистрируйтесь для получения аккаунта. Это просто!
Зарегистрировать аккаунтВойти
Уже зарегистрированы? Войдите здесь.
Войти сейчас