Créé le 01/06/2003
Dernière mise à jour le 01/07/2003
Head Shot Bonus est un mutator pour Unreal
Tournament 2003 qui donnera 1frag supplémentaire
a celui qui tire a la tête de son adversaire avec son lightning gun. (+2frags)
En
Team Deathmatch, l'équipe gagne aussi 1frag supplémentaire, mais pas
en Capture The Flag ou Bombing Run.
On a besoin d'un GameRules
pour accéder a la function PreventDeath et la modifié.
Le mutator sert juste
pour faire apparaîttre dans le jeu le HeadShotBonusGameRules et a l'ajouter a
la chaîne des GameRules du GameType comme pour le mutator
d'origine Vampire par exemple. (sans cette chaîne le GameType
prendrais en charge un seul GameRules et donc un seul mutator de ce type)
Mutator:
//===========================================
// Head Shot
Bonus
//
created by Crokx
// 01/07/2003 (dd/mm/yyyy)
//===========================================
class
HeadShotBonus extends Mutator;
//=============================
//
Dés le début dans la partie
//=============================
function
PostBeginPlay()
{
local GameRules
GR;
Super.PostBeginPlay();
GR = spawn(class'HeadShotBonusGameRules');
if(Level.Game.GameRulesModifiers == None)
Level.Game.GameRulesModifiers = GR;
else
Level.Game.GameRulesModifiers.AddGameRules(GR);
Destroy();
}
//=========
//
Default
//=========
defaultproperties
{
FriendlyName="Head
Shot Bonus"
Description="2frags
for one head shot."
}
GameRules:
class HeadShotBonusGameRules extends GameRules;
var
private bool bTeamFrag;
//=============================
//
Dés le début dans la partie
//=============================
function
PostBeginPlay()
{
bTeamFrag = ((Level.Game.IsA('TeamGame'))
&& (TeamGame(Level.Game).bScoreTeamKills));
}
//================================
//
Quand un joueur viens de tombé
//================================
function
bool PreventDeath(Pawn Killed, Controller Killer, class<DamageType>
damageType, vector HitLocation)
{
if((damageType
== class'DamTypeSniperHeadShot')
&&
(Killer != None)
&&
(Killer.PlayerReplicationInfo != None))
{
if(Killer.Pawn !=
None)
Killer.Pawn.ClientMessage("HeadShot
+2frags");
Killer.PlayerReplicationInfo.Score
+= 1;
if((bTeamFrag)
&& (Killer.PlayerReplicationInfo.Team
!= None))
TeamGame(Level.Game).Teams[Killer.PlayerReplicationInfo.Team.TeamIndex].Score
+= 1;
}
return Super.PreventDeath(Killed,
Killer, damageType, HitLocation);
}
Fichier INT:
[Public]
Object=(Class=Class, MetaClass=Engine.Mutator, Name=HeadShotBonus.HeadShotBonus)
Mutator:
Dés le début dans la partie:
Propriétés par défaults:
GameRules:
Déclaration des variables:
Dés le début dans la partie:
Quand un joueur viens de tombé: