// add this function to your mutator
function BeginPlay(){
if(Level.Game !=None){
Level.Game.PlayerControllerClass = class'yourCustomPlayerController';//add your player class name there
}
Super.BeginPlay();
}
function BeginPlay(){
log("reached begin play function");
if(Level.Game !=None){
ReplacePawnAndPC();
}
Super.BeginPlay();
}
function ReplacePawnAndPC() {
//replace pawn
if(Level.Game.DefaultPlayerClassName~="xGame.xPawn") {
Level.Game.DefaultPlayerClassName="AUTCore.xPawn_AUT";
log("pawn replaced and it is " $Level.Game.DefaultPlayerClassName);
}
//replace the bot class
if(class'xPawn'.default.ControllerClass==class'XGame.XBot') {
class'xPawn'.default.ControllerClass=class'AUTCore.xBot_AUT';
log("xBot replaced and it is " $class'xPawn'.default.ControllerClass);
}
//now replace the PlayerController
Level.Game.PlayerControllerClass = class'AUTCore.xPlayer_AUT';
Level.Game.PlayerControllerClassName = string(Level.Game.PlayerControllerClass);
log("player controller replaced and it is "$Level.Game.PlayerControllerClassName);
}
defaultproperties
{
PlayerControllerClassName="MyPackage.MyPlayerController"
BotControllerClass=class'MyBot'
DefaultPlayerClassName="MyPackage.MyPawn"
}
function bool CheckReplacement(Actor Other, out byte bSuperRelevant)
{
if (Other.IsA('UTGame'))
{
Log("CheckReplacement(): ZOMG!");
UTGame(Other).PlayerControllerClassName="MyPackage.MyPlayerController";
}
return true; // true? false? I don't know
}