Mon October 20 2003, 05:18 PM
ReaperCreeperWhat am i doing wrong?
Unter im making a scoreboard but i have it set as a mutator and i cant get it to work i keep getting errors. Here is the code.
Class BMScoreboard expands Mutator;
function ModifyPlayer(Pawn Other)
{
local PlayerPawn P;
local BMScoreboard BMScoreboard;
Super.ModifyPlayer(Other);
if (Level.Game.bTeamGame)
{
foreach AllActors(class'PlayerPawn', P)
{
If (PlayerPawn(Other).ScoringType == Class'BMScoreboardTeam')
Return;
}
//Spawn(Class'BMScoreboard.BMScoreboard',other);
PlayerPawn(Other).ScoringType = Class'BMScoreboardTeam';
}
else
{
foreach AllActors(class'PlayerPawn', P)
{
If (PlayerPawn(Other).ScoringType == Class'BMScoreboard')
Return;
}
//Spawn(Class'BMScoreboard.BMScoreboard',other);
PlayerPawn(Other).ScoringType = Class'BMScoreboard';
}
}
Jwclass BMScoreboardTeam extends
RuneScoreboardTeam;
function DrawTableHeadings( canvas Canvas)
{
local float XL, YL;
local float YOffset;
Canvas.DrawColor = GoldColor;
Canvas.StrLen("00", XL, YL);
YOffset = Canvas.CurY;
// ID
Canvas.SetPos(Canvas.ClipX*0.13, YOffset);
Canvas.DrawText(" ID", false);
// Name
Canvas.SetPos(Canvas.ClipX*0.18, YOffset);
Canvas.DrawText(NameText, false);
// Score
Canvas.SetPos(Canvas.ClipX*0.5, YOffset);
Canvas.DrawText(FragsText, false);
// Draw Deaths
Canvas.SetPos(Canvas.ClipX*0.6, YOffset);
Canvas.DrawText(DeathsText, false);
// Draw Awards
Canvas.SetPos(Canvas.ClipX*0.8, YOffset);
Canvas.DrawText(AwardsText, false);
if (Canvas.ClipX > 512)
{
// Ping
Canvas.SetPos(Canvas.ClipX*0.7, YOffset);
Canvas.DrawText(PingText, false);
}
// Draw seperator
YOffset += YL*1.25;
Canvas.DrawColor = WhiteColor;
Canvas.SetPos(Canvas.ClipX*0.1, YOffset);
Canvas.DrawTile(Seperator, Canvas.ClipX*0.8, YL*0.5, 0, 0, Seperator.USize, Seperator.VSize);
YOffset += YL*0.75;
Canvas.SetPos(Canvas.ClipX*0.1, YOffset);
}
function DrawTrailer( canvas Canvas )
{
local int Hours, Minutes, Seconds;
local string HourString, MinuteString, SecondString;
local float XL, YL;
local PlayerPawn PlayerOwner;
local int YOffset;
local GameReplicationInfo GRI;
GRI = PlayerPawn(Owner).GameReplicationInfo;
PlayerOwner = PlayerPawn(Owner);
Canvas.bCenter = true;
Canvas.DrawColor = WhiteColor;
Canvas.StrLen("Test", XL, YL);
// Bottom seperator
YOffset = Canvas.CurY;
YOffset += YL*0.25;
Canvas.SetPos(Canvas.ClipX*0.1, YOffset);
Canvas.DrawTile(Seperator, Canvas.ClipX*0.8, YL*0.5, 0, 0, Seperator.USize, Seperator.VSize);
YOffset += 1.2*YL;
Canvas.SetPos(Canvas.ClipX*0.1, YOffset);
Canvas.DrawText("G A M E R U L E S :", false);
YOffset += 1.1*YL;
Canvas.SetPos(Canvas.ClipX*0.1, YOffset);
Canvas.DrawText(GRI.MOTDLine1, false);
YOffset += 1.1*YL;
Canvas.SetPos(Canvas.ClipX*0.1, YOffset);
Canvas.DrawText(GRI.MOTDLine2, false);
YOffset += 1.1*YL;
Canvas.SetPos(Canvas.ClipX*0.1, YOffset);
Canvas.DrawText(GRI.MOTDLine3, false);
YOffset += 1.1*YL;
Canvas.SetPos(Canvas.ClipX*0.1, YOffset);
Canvas.DrawText(GRI.MOTDLine4, false);
if (Canvas.ClipX > 500)
{
// Now start from bottom
Canvas.SetPos(0, Canvas.ClipY - YL);
if ( bTimeDown || (PlayerOwner.GameReplicationInfo.RemainingTime > 0) )
{
bTimeDown = true;
if ( PlayerOwner.GameReplicationInfo.RemainingTime <= 0 )
Canvas.DrawText(RemainingTimeMsg@"00:00", true);
else
{
Minutes = PlayerOwner.GameReplicationInfo.RemainingTime/60;
Seconds = PlayerOwner.GameReplicationInfo.RemainingTime % 60;
Canvas.DrawText(RemainingTimeMsg@TwoDigitString(Minutes)$":"$TwoDigitString(Seconds), true);
}
}
else
{
Seconds = int(Level.TimeSeconds);
Minutes = Seconds / 60;
Hours = Minutes / 60;
Seconds = Seconds - (Minutes * 60);
Minutes = Minutes - (Hours * 60);
if (Seconds < 10)
SecondString = "0"$Seconds;
else
SecondString = string(Seconds);
if (Minutes < 10)
MinuteString = "0"$Minutes;
else
MinuteString = string(Minutes);
if (Hours < 10)
HourString = "0"$Hours;
else
HourString = string(Hours);
Canvas.DrawText(ElapsedTimeMsg$HourString$":"$MinuteString$":"$SecondString, true);
}
}
// Hit fire to continue message
Canvas.bCenter = true;
Canvas.StrLen("Test", XL, YL);
Canvas.SetPos(0, Canvas.ClipY - YL*4);
Canvas.DrawColor = RedColor;
if ( PlayerOwner.GameReplicationInfo.GameEndedComments != "" )
Canvas.DrawText(ContinueMsg@PlayerOwner.GameReplicationInfo.GameEndedComments@ContinueTrailer, true);
else if ((PlayerOwner != None) && (PlayerOwner.Health <= 0) )
Canvas.DrawText(RestartMsg, true);
Canvas.bCenter = false;
}
function DrawPlayerInfo( canvas Canvas, PlayerReplicationInfo PRI, float XOffset, float YOffset)
{
local bool bLocalPlayer;
local PlayerPawn PlayerOwner;
local float XL,YL;
local int AwardPos;
local float TeamScore;
PlayerOwner = PlayerPawn(Owner);
bLocalPlayer = (PRI.PlayerName == PlayerOwner.PlayerReplicationInfo.PlayerName);
//FONT ALTER
// Canvas.Font = RegFont;
if(MyFonts != None)
Canvas.Font = MyFonts.GetStaticMedFont();
else
Canvas.Font = RegFont;
if (PRI.Team < 4)
TeamScore = RuneGameReplicationInfo(PlayerOwner.GameReplicationInfo).Teams[PRI.Team].Score;
else
TeamScore = 0;
// Draw Ready
if (PRI.bReadyToPlay)
{
Canvas.StrLen("R ", XL, YL);
Canvas.SetPos(Canvas.ClipX*0.1-XL, YOffset);
Canvas.DrawText(ReadyText, false);
}
Canvas.DrawColor = GetTeamColor(PRI.Team);
if (!bLocalPlayer)
{
Canvas.DrawColor.R = byte(float(Canvas.DrawColor.R) * 0.9);
Canvas.DrawColor.G = byte(float(Canvas.DrawColor.G) * 0.9);
Canvas.DrawColor.B = byte(float(Canvas.DrawColor.B) * 0.9);
}
// Draw Name
if (PRI.bAdmin)
{ //FONT ALTER
//Canvas.Font = Font'SmallFont';
if(MyFonts != None)
Canvas.Font = MyFonts.GetStaticSmallFont();
else
Canvas.Font = Font'SmallFont';
}
else
{ //FONT ALTER
//Canvas.Font = RegFont;
if(MyFonts != None)
Canvas.Font = MyFonts.GetStaticMedFont();
else
Canvas.Font = RegFont;
}
Canvas.SetPos(Canvas.ClipX*0.13, YOffset);
Canvas.DrawText(" "$PRI.PlayerID, false);
Canvas.SetPos(Canvas.ClipX*0.18, YOffset);
Canvas.DrawText(PRI.PlayerName, false);
//FONT ALTER
//Canvas.Font = RegFont;
if(MyFonts != None)
Canvas.Font = MyFonts.GetStaticMedFont();
else
Canvas.Font = RegFont;
// Draw Score
Canvas.SetPos(Canvas.ClipX*0.5, YOffset);
Canvas.DrawText(int(PRI.Score), false);
// Draw Deaths
Canvas.SetPos(Canvas.ClipX*0.6, YOffset);
Canvas.DrawText(int(PRI.Deaths), false);
if (Canvas.ClipX > 512 && Level.Netmode != NM_Standalone)
{
// Draw Ping
Canvas.SetPos(Canvas.ClipX*0.7, YOffset);
Canvas.DrawText(PRI.Ping, false);
// Packetloss
//FONT ALTER
// Canvas.Font = RegFont;
if(MyFonts != None)
Canvas.Font = MyFonts.GetStaticMedFont();
else
Canvas.Font = RegFont;
Canvas.DrawColor = WhiteColor;
}
// Draw Awards
AwardPos = Canvas.ClipX*0.8;
Canvas.DrawColor = WhiteColor;
//FONT ALTER
// Canvas.Font = Font'SmallFont';
if(MyFonts != None)
Canvas.Font = MyFonts.GetStaticSmallFont();
else
Canvas.Font = Font'SmallFont';
Canvas.StrLen("00", XL, YL);
if (PRI.bFirstBlood)
{ // First blood
Canvas.SetPos(AwardPos-YL+XL*0.25, YOffset-YL*0.5);
Canvas.DrawTile(FirstBloodIcon, YL*2, YL*2, 0, 0, FirstBloodIcon.USize, FirstBloodIcon.VSize);
AwardPos += XL*2;
}
if (PRI.MaxSpree > 2)
{ // Killing sprees
Canvas.SetPos(AwardPos-YL+XL*0.25, YOffset-YL*0.5);
Canvas.DrawTile(SpreeIcon, YL*2, YL*2, 0, 0, SpreeIcon.USize, SpreeIcon.VSize);
Canvas.SetPos(AwardPos, YOffset);
Canvas.DrawColor = WhiteColor;
Canvas.DrawText(PRI.MaxSpree, false);
Canvas.DrawColor = WhiteColor;
AwardPos += XL*2;
}
if (PRI.HeadKills > 0)
{ // Head kills
Canvas.SetPos(AwardPos-YL+XL*0.25, YOffset-YL*0.5);
Canvas.DrawTile(HeadIcon, YL*2, YL*2, 0, 0, HeadIcon.USize, HeadIcon.VSize);
Canvas.SetPos(AwardPos, YOffset);
Canvas.DrawColor = WhiteColor;
Canvas.DrawText(PRI.HeadKills, false);
Canvas.DrawColor = WhiteColor;
AwardPos += XL*2;
}
//FONT ALTER
//Canvas.Font = RegFont;
if(MyFonts != None)
Canvas.Font = MyFonts.GetStaticMedFont();
else
Canvas.Font = RegFont;
}
}qclass BMScoreboard extends RuneScoreboard;
function DrawTableHeadings( canvas Canvas)
{
local float XL, YL;
local float YOffset;
Canvas.DrawColor = GoldColor;
Canvas.StrLen("00", XL, YL);
YOffset = Canvas.CurY;
// ID
Canvas.SetPos(Canvas.ClipX*0.1, YOffset);
Canvas.DrawText(" ID", false);
// Name
Canvas.SetPos(Canvas.ClipX*0.15, YOffset);
Canvas.DrawText(NameText, false);
// Score
Canvas.SetPos(Canvas.ClipX*0.5, YOffset);
Canvas.DrawText(FragsText, false);
// Draw Deaths
Canvas.SetPos(Canvas.ClipX*0.6, YOffset);
Canvas.DrawText(DeathsText, false);
// Draw Awards
Canvas.SetPos(Canvas.ClipX*0.8, YOffset);
Canvas.DrawText(AwardsText, false);
if (Canvas.ClipX > 512)
{
// Ping
Canvas.SetPos(Canvas.ClipX*0.7, YOffset);
Canvas.DrawText(PingText, false);
}
// Draw seperator
YOffset += YL*1.25;
Canvas.DrawColor = WhiteColor;
Canvas.SetPos(Canvas.ClipX*0.1, YOffset);
Canvas.DrawTile(Seperator, Canvas.ClipX*0.8, YL*0.5, 0, 0, Seperator.USize, Seperator.VSize);
YOffset += YL*0.75;
Canvas.SetPos(Canvas.ClipX*0.1, YOffset);
}
function DrawTrailer( canvas Canvas )
{
local int Hours, Minutes, Seconds;
local string HourString, MinuteString, SecondString;
local float XL, YL;
local PlayerPawn PlayerOwner;
local int YOffset;
local GameReplicationInfo GRI;
GRI = PlayerPawn(Owner).GameReplicationInfo;
PlayerOwner = PlayerPawn(Owner);
Canvas.bCenter = true;
Canvas.DrawColor = WhiteColor;
Canvas.StrLen("Test", XL, YL);
// Bottom seperator
YOffset = Canvas.CurY;
YOffset += YL*0.25;
Canvas.SetPos(Canvas.ClipX*0.1, YOffset);
Canvas.DrawTile(Seperator, Canvas.ClipX*0.8, YL*0.5, 0, 0, Seperator.USize, Seperator.VSize);
YOffset += 1.2*YL;
Canvas.SetPos(Canvas.ClipX*0.1, YOffset);
Canvas.DrawText("G A M E R U L E S :", false);
YOffset += 1.1*YL;
Canvas.SetPos(Canvas.ClipX*0.1, YOffset);
Canvas.DrawText(GRI.MOTDLine1, false);
YOffset += 1.1*YL;
Canvas.SetPos(Canvas.ClipX*0.1, YOffset);
Canvas.DrawText(GRI.MOTDLine2, false);
YOffset += 1.1*YL;
Canvas.SetPos(Canvas.ClipX*0.1, YOffset);
Canvas.DrawText(GRI.MOTDLine3, false);
YOffset += 1.1*YL;
Canvas.SetPos(Canvas.ClipX*0.1, YOffset);
Canvas.DrawText(GRI.MOTDLine4, false);
if (Canvas.ClipX > 500)
{
// Now start from bottom
Canvas.SetPos(0, Canvas.ClipY - YL);
if ( bTimeDown || (PlayerOwner.GameReplicationInfo.RemainingTime > 0) )
{
bTimeDown = true;
if ( PlayerOwner.GameReplicationInfo.RemainingTime <= 0 )
Canvas.DrawText(RemainingTimeMsg@"00:00", true);
else
{
Minutes = PlayerOwner.GameReplicationInfo.RemainingTime/60;
Seconds = PlayerOwner.GameReplicationInfo.RemainingTime % 60;
Canvas.DrawText(RemainingTimeMsg@TwoDigitString(Minutes)$":"$TwoDigitString(Seconds), true);
}
}
else
{
Seconds = int(Level.TimeSeconds);
Minutes = Seconds / 60;
Hours = Minutes / 60;
Seconds = Seconds - (Minutes * 60);
Minutes = Minutes - (Hours * 60);
if (Seconds < 10)
SecondString = "0"$Seconds;
else
SecondString = string(Seconds);
if (Minutes < 10)
MinuteString = "0"$Minutes;
else
MinuteString = string(Minutes);
if (Hours < 10)
HourString = "0"$Hours;
else
HourString = string(Hours);
Canvas.DrawText(ElapsedTimeMsg$HourString$":"$MinuteString$":"$SecondString, true);
}
}
// Hit fire to continue message
Canvas.bCenter = true;
Canvas.StrLen("Test", XL, YL);
Canvas.SetPos(0, Canvas.ClipY - YL*4);
Canvas.DrawColor = RedColor;
if ( PlayerOwner.GameReplicationInfo.GameEndedComments != "" )
Canvas.DrawText(ContinueMsg@PlayerOwner.GameReplicationInfo.GameEndedComments@ContinueTrailer, true);
else if ((PlayerOwner != None) && (PlayerOwner.Health <= 0) )
Canvas.DrawText(RestartMsg, true);
Canvas.bCenter = false;
}
function DrawPlayerInfo( canvas Canvas, PlayerReplicationInfo PRI, float XOffset, float YOffset)
{
local bool bLocalPlayer;
local PlayerPawn PlayerOwner;
local float XL,YL;
local int AwardPos;
PlayerOwner = PlayerPawn(Owner);
bLocalPlayer = (PRI.PlayerName == PlayerOwner.PlayerReplicationInfo.PlayerName);
//FONT ALTER
// Canvas.Font = RegFont;
if(MyFonts != None)
Canvas.Font = MyFonts.GetStaticMedFont();
else
Canvas.Font = RegFont;
// Draw Ready
if (PRI.bReadyToPlay)
{
Canvas.StrLen("R ", XL, YL);
Canvas.SetPos(Canvas.ClipX*0.1-XL, YOffset);
Canvas.DrawText(ReadyText, false);
}
if (bLocalPlayer)
Canvas.DrawColor = VioletColor;
else
Canvas.DrawColor = WhiteColor;
// Draw ID and Name
if (PRI.bAdmin) //FONT ALTER
{
//Canvas.Font = Font'SmallFont';
if(MyFonts != None)
Canvas.Font = MyFonts.GetStaticSmallFont();
else
Canvas.Font = Font'SmallFont';
}
else
{ //FONT ALTER
//Canvas.Font = RegFont;
if(MyFonts != None)
Canvas.Font = MyFonts.GetStaticMedFont();
else
Canvas.Font = RegFont;
}
Canvas.SetPos(Canvas.ClipX*0.1, YOffset);
Canvas.DrawText(" "$PRI.PlayerID, false);
Canvas.SetPos(Canvas.ClipX*0.15, YOffset);
Canvas.DrawText(PRI.PlayerName, false);
//FONT ALTER
//Canvas.Font = RegFont;
if(MyFonts != None)
Canvas.Font = MyFonts.GetStaticMedFont();
else
Canvas.Font = RegFont;
// Draw Score
Canvas.SetPos(Canvas.ClipX*0.5, YOffset);
Canvas.DrawText(int(PRI.Score), false);
// Draw Deaths
Canvas.SetPos(Canvas.ClipX*0.6, YOffset);
Canvas.DrawText(int(PRI.Deaths), false);
if (Canvas.ClipX > 512 && Level.Netmode != NM_Standalone)
{
// Draw Ping
Canvas.SetPos(Canvas.ClipX*0.7, YOffset);
Canvas.DrawText(PRI.Ping, false);
// Packetloss
//FONT ALTER
//Canvas.Font = RegFont;
if(MyFonts != None)
Canvas.Font = MyFonts.GetStaticMedFont();
else
Canvas.Font = RegFont;
Canvas.DrawColor = WhiteColor;
}
// Draw Awards
AwardPos = Canvas.ClipX*0.8;
Canvas.DrawColor = WhiteColor;
//FONT ALTER
//Canvas.Font = Font'SmallFont';
if(MyFonts != None)
Canvas.Font = MyFonts.GetStaticSmallFont();
else
Canvas.Font = Font'SmallFont';
Canvas.StrLen("00", XL, YL);
if (PRI.bFirstBlood)
{ // First blood
Canvas.SetPos(AwardPos-YL+XL*0.25, YOffset-YL*0.5);
Canvas.DrawTile(FirstBloodIcon, YL*2, YL*2, 0, 0, FirstBloodIcon.USize, FirstBloodIcon.VSize);
AwardPos += XL*2;
}
if (PRI.MaxSpree > 2)
{ // Killing sprees
Canvas.SetPos(AwardPos-YL+XL*0.25, YOffset-YL*0.5);
Canvas.DrawTile(SpreeIcon, YL*2, YL*2, 0, 0, SpreeIcon.USize, SpreeIcon.VSize);
Canvas.SetPos(AwardPos, YOffset);
Canvas.DrawColor = CyanColor;
Canvas.DrawText(PRI.MaxSpree, false);
Canvas.DrawColor = WhiteColor;
AwardPos += XL*2;
}
if (PRI.HeadKills > 0)
{ // Head kills
Canvas.SetPos(AwardPos-YL+XL*0.25, YOffset-YL*0.5);
Canvas.DrawTile(HeadIcon, YL*2, YL*2, 0, 0, HeadIcon.USize, HeadIcon.VSize);
Canvas.SetPos(AwardPos, YOffset);
Canvas.DrawColor = CyanColor;
Canvas.DrawText(PRI.HeadKills, false);
Canvas.DrawColor = WhiteColor;
AwardPos += XL*2;
}
//FONT ALTER
//Canvas.Font = RegFont;
if(MyFonts != None)
Canvas.Font = MyFonts.GetStaticMedFont();
else
Canvas.Font = RegFont;
}