Timer reagiert aber funktioniert trotzdem nicht

Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!

Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
  • Hallo liebes Forum :)
    Ich habe ein kleines Problem, was mich ein wenig verwirrt.
    Ich wollte gestern mein neues Level & Paydaysystem einbauen, aber irgendwie reagiert es nicht ganz.
    Um zu testen ob der Timer überhaupt läuft, hab ich ein "Test" Signal eingebaut, dieses reagiert, aber alles andere nicht.


    Hier ist der Code:
    public PDminute()
    {
    for(new i=0; i<MAX_PLAYERS; i++)
    {
    if(IsPlayerConnected(i))
    {
    SetPVarInt(i,"Zahltag",GetPVarInt(i,"Zahltag")+1);
    SetPVarInt(i,"Spielzeit",GetPVarInt(i,"Spielzeit")+1);
    SendClientMessageToAll(COLOR_GREEN,"Test");


    if(GetPVarInt(i,"Zahltag")==20)
    {
    SetPVarInt(i,"Zahltag",0);
    Payday(i);
    return 1;
    }


    if(GetPVarInt(i,"Spielzeit")>=GetPVarInt(i,"PDrequired"))
    {
    new text1[128],text2[128];
    SetPVarInt(i,"PDrequired",GetPVarInt(i,"PDrequired")+(GetPVarInt(i,"PDrequired")+120));
    SetPVarInt(i,"Level",GetPVarInt(i,"Level")+1);
    SetPlayerScore(i,GetPVarInt(i,"Level"));
    format(text1, 128, "Herzlichen Glückwunsch! Du bist nun Level %d!",GetPVarInt(i,"Level"));
    format(text2, 128, "Für Level %d musst du insgesamt %d Minuten gespielt haben!",GetPVarInt(i,"Level")+1,GetPVarInt(i,"PDrequired"));
    SendClientMessage(i,COLOR_WHITE,text1);
    SendClientMessage(i,COLOR_WHITE,text2);
    return 1;
    }
    }
    }
    return 1;
    }


    Ausserdem hab ich seit dieser Arbeit bei jedem Command "SERVER: Unknown command." was sehr komisch ist, weil ich hab nicht mit Befehlen gearbeitet.


    //EDIT: Ich habe den Fehler jetzt schon, ich habe ganz vergessen das das return die Schleife abbricht und habe es nun entfernt, aber weiß jemand etwas über das Command Problem?

  • hm der fehler SERVER: Unknown command kommt eigentlich nur wenn du bei OnPlayerCommand am schluss nicht returnst also mit return 0;


    oder wenn du das ändern willst mit return SendClientMessage(playerid,COLOR_WHITE,"wunsch text ");

  • ausserdem bei den ganzen return weg machen und continue; machen
    damit er die anderen player auch einbezieht



    public PDminute()
    {
    for(new i=0; i<MAX_PLAYERS; i++)
    {
    if(IsPlayerConnected(i))
    {
    SetPVarInt(i,"Zahltag",GetPVarInt(i,"Zahltag")+1);
    SetPVarInt(i,"Spielzeit",GetPVarInt(i,"Spielzeit")+1);
    SendClientMessageToAll(COLOR_GREEN,"Test");


    if(GetPVarInt(i,"Zahltag")==20)
    {
    SetPVarInt(i,"Zahltag",0);
    Payday(i);
    continue;
    }


    if(GetPVarInt(i,"Spielzeit")>=GetPVarInt(i,"PDrequired"))
    {
    new text1[128],text2[128];
    SetPVarInt(i,"PDrequired",GetPVarInt(i,"PDrequired")+(GetPVarInt(i,"PDrequired")+120));
    SetPVarInt(i,"Level",GetPVarInt(i,"Level")+1);
    SetPlayerScore(i,GetPVarInt(i,"Level"));
    format(text1, 128, "Herzlichen Glückwunsch! Du bist nun Level %d!",GetPVarInt(i,"Level"));
    format(text2, 128, "Für Level %d musst du insgesamt %d Minuten gespielt haben!",GetPVarInt(i,"Level")+1,GetPVarInt(i,"PDrequired"));
    SendClientMessage(i,COLOR_WHITE,text1);
    SendClientMessage(i,COLOR_WHITE,text2);
    continue;
    }
    }
    }
    return 1;
    }