Guten Tag, ich nutze jetzt meinen ersten Timer, mit Timern kenne ich mich allerdings garnicht aus. Der Befehl /ctf an sich funktioniert wunderbar.
Wenn ich mich zu weit von einer Position entferne, soll der Spieler die Flagge verlieren, so sieht alles aus:
[pwn]forward CTFDistance(playerid);
new CTFTimer;[/pwn]
[pwn]if(strcmp(cmd, "/ctf", true) == 0)
{
if(IsPlayerInRangeOfPoint(playerid, 15, 757.7704,-1596.4019,13.7374))
{
if(YakuzaHasFlag == 0 && Spieler[playerid][Team] == 2)
{
YakuzaHasFlag = 0;
TriadenHasFlag = 1;
SendClientMessageToAll(0xFFBE00FF, "Die Triaden haben die Flagge erobert!");
SendClientMessage(playerid, COLOR_GREY, "Entferne dich nicht zuweit vom CTF-Punkt, sonst verlierst du die Flagge!");
}
if(TriadenHasFlag == 0 && Spieler[playerid][Team] == 1)
{
TriadenHasFlag = 1;
YakuzaHasFlag = 0;
SendClientMessageToAll(0xFFBE00FF, "Die Yakuza haben die Flagge erobert!");
SendClientMessage(playerid, COLOR_GREY, "Entferne dich nicht zuweit vom CTF-Punkt, sonst verlierst du die Flagge!");
}
else if(YakuzaHasFlag == 1
TriadenHasFlag == 1)
{
SendClientMessage(playerid, COLOR_GREY, "Dein Team ist schon im Besitz der Flagge!");
}
CTFTimer = SetTimer("CTFDistance", 1000, 1);
}
else
{
SendClientMessage(playerid, COLOR_GREY, "Du musst an einem /ctf-Punkt sein!");
}
return 1;
}[/pwn]
[pwn]public CTFDistance(playerid)
{
if(TriadenHasFlag == 1 && YakuzaHasFlag == 1)
{
if(!IsPlayerInRangeOfPoint(playerid, 15, 757.7704,-1596.4019,13.7374))
{
SendClientMessage(playerid, COLOR_GREY, "Du bist zuweit vom CTF Punkt entfernt, du hast die Flagge verloren!");
TriadenHasFlag = 0;
YakuzaHasFlag = 0;
KillTimer(CTFTimer);
}
}
return 1;
}[/pwn]
Hat da jemand einen Lösungsvorschlag? Ich bin langsam am verzweifeln
Wenn ich mich zu weit von einer Position entferne, soll der Spieler die Flagge verlieren, so sieht alles aus:
[pwn]forward CTFDistance(playerid);
new CTFTimer;[/pwn]
[pwn]if(strcmp(cmd, "/ctf", true) == 0)
{
if(IsPlayerInRangeOfPoint(playerid, 15, 757.7704,-1596.4019,13.7374))
{
if(YakuzaHasFlag == 0 && Spieler[playerid][Team] == 2)
{
YakuzaHasFlag = 0;
TriadenHasFlag = 1;
SendClientMessageToAll(0xFFBE00FF, "Die Triaden haben die Flagge erobert!");
SendClientMessage(playerid, COLOR_GREY, "Entferne dich nicht zuweit vom CTF-Punkt, sonst verlierst du die Flagge!");
}
if(TriadenHasFlag == 0 && Spieler[playerid][Team] == 1)
{
TriadenHasFlag = 1;
YakuzaHasFlag = 0;
SendClientMessageToAll(0xFFBE00FF, "Die Yakuza haben die Flagge erobert!");
SendClientMessage(playerid, COLOR_GREY, "Entferne dich nicht zuweit vom CTF-Punkt, sonst verlierst du die Flagge!");
}
else if(YakuzaHasFlag == 1

{
SendClientMessage(playerid, COLOR_GREY, "Dein Team ist schon im Besitz der Flagge!");
}
CTFTimer = SetTimer("CTFDistance", 1000, 1);
}
else
{
SendClientMessage(playerid, COLOR_GREY, "Du musst an einem /ctf-Punkt sein!");
}
return 1;
}[/pwn]
[pwn]public CTFDistance(playerid)
{
if(TriadenHasFlag == 1 && YakuzaHasFlag == 1)
{
if(!IsPlayerInRangeOfPoint(playerid, 15, 757.7704,-1596.4019,13.7374))
{
SendClientMessage(playerid, COLOR_GREY, "Du bist zuweit vom CTF Punkt entfernt, du hast die Flagge verloren!");
TriadenHasFlag = 0;
YakuzaHasFlag = 0;
KillTimer(CTFTimer);
}
}
return 1;
}[/pwn]
Hat da jemand einen Lösungsvorschlag? Ich bin langsam am verzweifeln

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von tiiMo ()