Les joueurs et véhicules (U2XMP)
Créé le 13/12/2003
Dernière mise à jour le 14/12/2003
Ce tutorial montre quelques exemples de functions qui peuvent s'avérer bien pratique pour la conception d'un mutator entre autre.
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);
}
Indique si le Pawn est a pied.
// use someting? (drive vehicle, use turret from vehicle, use
stationary turret)
final function bool UseSomething(Pawn P)
{
return
(U2Pawn(P) == None);
}
Indique si le Pawn utilise quelque chose (car si c'est pas le type de Pawn normal c'est que le joueur utilise forcément quelque chose), comme conduire un véhicule, utiliser une tourelle d'un véhicule, utilise une tourelle stationnaire.
// drive vehicle?
function bool UseVehicle(Pawn P)
{
return
(Vehicle(P) != None);
}
Indique si le Pawn conduit un véhicule.
// use turret from vehicle?
function bool UseVehicleTurret(Pawn
P)
{
return (XMPVehicleBarrel(P) != None);
}
Indique si le Pawn utilise une tourelle d'un véhicule.
// use stationary turret?
function bool UseTurret(Pawn P)
{
return
(StationaryTurret(P) != None);
}
Indique si le Pawn utilise une tourelle d'un véhicule.
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...
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.