Перейти к публикации
Планета Deus Ex

Пособие по скриптам на примере 1го уровня


Рекомендованные сообщения

Как вообще создавать скрипт точнее где?

Можно какое нибудь пособие или гайд.

 

Пример 1 уровень. Когда мы завершаем основной квест то происходит выполнение скрипта всеакторы нсф умирают, да ещё и там счётчик стоит на обнуление и появляется постмиссионтропс ( своими словами ).

 

Проще говоря нужна помощь по флагам, написанию скрипта, конвертация, добавление, применение на карту, работа с флагами в conversation.

Ссылка на комментарий

Годно,теперь бы знать как с флагами работать. Ибо не понятно как flagtrigger работает, в качестве эксперимента тот же первый уровень, пытался на кнопку поставить как бы конец миссии удаляя флаги с карты конечный результат остаётся тем же, взывает к вопросу а зачем они там , если они не нужны, так для виду ?

Ссылка на комментарий

Понять бы логику как с этим всем работать, диалог и goal я накатал, все работает, а вот появление в мир actor ( unatco trops например) после завершения goal не получается

Ссылка на комментарий

Нужно проверить флаг в 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'
}
 

 

 

Ссылка на комментарий

Не вышло, сначала хотел понять азы и попробовал проверить флаг так же как это реализовано в 00трейнинг. Я создал флаг, по тем же параметрами и на основе 00missionscript  попробовал сделать.

 

 

 

1_RU7K6zSbM.jpg

0VWsR61u8LE.jpg

 

 

Mymissionscript

 

 

class MyMission expands MissionScript;
function Timer()
{
Super.Timer();
if (localURL == "99_kvartal")
{
// delete the player's inventory in case he tries to keep it
if (flags.GetBool('MunitionsTrooperReady'))
RemoveAllInventory();
}
}
 

 

 

 

Ссылка на комментарий

Если это весь скрипт, то не хватает самой функции RemoveAllInventory();

 

Можно вывести сообщение, чтобы понять, произошло требуемое, или нет.

GetPlayerPawn().ClientMessage("Проверка");
Ссылка на комментарий

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас
×
×
  • Создать...