Les joueurs et véhicules (U2XMP)

  1. Introduction
  2. Situation du joueur
  3. Savoir quel est le véhicule dont on se sert de sa tourelle

Créé le 13/12/2003
Dernière mise à jour le 14/12/2003

1) Introduction

Ce tutorial montre quelques exemples de functions qui peuvent s'avérer bien pratique pour la conception d'un mutator entre autre.

Top

2) Situation du joueur

Dans Unreal 2 XMP le joueur utilise 4 types de Pawn bien distinct, avec de simples functions a retour bool (True ou False) on compare quel est le type pour connaître la situation du joueur.

Les types de Pawn des joueurs:

 

Les exemples de functions:

// on ground?
final function bool UseNothing(Pawn P)
{
    return (U2Pawn(P) != None);
}

 

// use someting? (drive vehicle, use turret from vehicle, use stationary turret)
final function bool UseSomething(Pawn P)
{
    return (U2Pawn(P) == None);
}

 

// drive vehicle?
function bool UseVehicle(Pawn P)
{
    return (Vehicle(P) != None);
}

 

// use turret from vehicle?
function bool UseVehicleTurret(Pawn P)
{
    return (XMPVehicleBarrel(P) != None);
}

 

// use stationary turret?
function bool UseTurret(Pawn P)
{
    return (StationaryTurret(P) != None);
}

 

On peut obtenir un résultat équivalant depuis un Controller:

// on ground?
function bool UseNothing(Controller C)
{
    return ((C.Pawn != None) && (U2Pawn(C.Pawn) != None));
}

etc...

 Top

3) Savoir quel est le véhicule dont on se sert de sa tourelle

Comme les véhicules sont répartient dans beaucoup de codes, voici une function qui vous permettra de connaître le véhicule dont'on se sert de sa tourelle en renvoyant sa variable actor/référence.

Avec la variable ConglomerateID:

function Vehicle GetVehicleOwner(Pawn P)
{
    if(XMPVehicleBarrel(P) != None)
        return Vehicle(P.ConglomerateID);

    return None;
}

La variable Actor/Référence de type Actor ConglomerateID fait référence à l'acteur primaire, variable utiliser avec les Pawns pour référer son évantuel véhicule ou tourelle-stationnaire utilisé.

 

Autre façon inutile à essayer car plus longue, via les bases:

function Vehicle GetVehicleOwner(Pawn P)
{
    if(XMPVehicleBarrel(P) != None)
        return Vehicle(P.Base.Base);

    return None;
}

La première Base est un actor de type XMPVehiculeTurret qui est Basé sur le véhicule.

Top