Hallo Community. Ich habe mich mal an einem Server für Mini-Wars versucht, sprich ein Gamemode läuft 10 Minuten und dann kommt der nächste. Das ganze soll als TDM ablaufen, man benötigt also auch einen Score um zu entscheiden, wer gewonnen hat.
Ich hab mir gedacht, das is als Integer ganz gut, machste
new TeamScore; und unter OnPlayerDeath nach ein paar Teamabfragen dann TeamScore++; (hab später noch im Wiki TeamScore +=1; gefunden und auch verwendet) aber nichts get. Ich wollte das in nem Textdraw, den ich alle 100 ms zerstöre und neu anzeige anzeigen. Jedoch klappt das nicht ganz, egal wie ich es probiere.
Ich hab ganz oben:
forward SCA(playerid);
forward SCAN(playerid);
new CooleTypenScore = 0;
new PennerScore = 0;
new Text:CooleTypenShow;
new Text:PennerShow;
new Text:CooleTypenShowNumber;
new Text:PennerShowNumber;
Unter OnGameModeInit
CooleTypenShow = TextDrawCreate(250.0,410, "~r~ Coole Typen:");
PennerShow = TextDrawCreate(250.0,428, "~g~ Penner:");
new string[250];
format(string, sizeof(string),"~r~ %d" ,CooleTypenScore);
CooleTypenShowNumber = TextDrawCreate(400.0, 410, string);
new string2[250];
format(string2, sizeof(string2),"~g~ %d" ,PennerScore);
PennerShowNumber = TextDrawCreate(400.0, 428, string2);
return 1;
Meine Death-Abfragen
public OnPlayerDeath(playerid, killerid, reason)
{
new plt = GetPlayerTeam(playerid);
new kit = GetPlayerTeam(killerid);
SendDeathMessage(killerid,playerid,reason);
if(killerid == INVALID_PLAYER_ID)
{
SendDeathMessage(INVALID_PLAYER_ID,playerid,reason);
if(plt == CooleTypen)
{
PennerScore += 1;
}
if(plt == Penner)
{
CooleTypenScore += 1;
}
}
if(kit == CooleTypen)
{
if(plt == CooleTypen)
{
SendClientMessage(killerid, COLOR_RED, "Keine Teamkills!");
}
if(plt == Penner)
{
CooleTypenScore += 1;
}
}
if(kit == Penner)
{
if(plt == Penner)
{
SendClientMessage(killerid, COLOR_RED, "Keine Teamkills!");
}
if(plt == CooleTypen)
{
PennerScore += 1;
}
}
return 1;
}
Unter OnPlayerConnect
TextDrawShowForPlayer(playerid, CooleTypenShow);
TextDrawShowForPlayer(playerid, PennerShow);
SetTimerEx("SCA", 100, true, "i",playerid);
und zu guter letzt
public SCA(playerid)
{
TextDrawHideForPlayer(playerid, CooleTypenShowNumber);
TextDrawHideForPlayer(playerid, PennerShowNumber);
SetTimerEx("SCAN", 100, 0, "i",playerid);
return 1;
}
public SCAN(playerid)
{
TextDrawShowForPlayer(playerid, CooleTypenShowNumber);
TextDrawShowForPlayer(playerid, PennerShowNumber);
return 1;
}
Ausserdem habe ich einen Timer (bei mir "GME") der den Gamemode nach 10 Minuten neustartet. Ich würde das gerne als Countdown-Textdraw machen, hab jedoch keine Ahnung, wie sich das realisieren lässt.
Ich hoffe, ihr könnt mir helfen und bedanke mich jetzt schon mal...
P.S.: Wundert euch nicht über die Namen, hab Coole Typen vs. Penner...
Der ganze Gamemode ist übrigens hier .