Hilfe beim Timer :(

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, ich bin dabei ein TDM zu machen und habe folgendes Problem:


    - Die ersten 10 Minuten des Timers funktionieren einwandfrei, dann jedoch soll der Timer zurück springen und wieder neu 10 Minuten hochzählen, macht er aber nicht sondern er zählt von 10 Weiter..


    Ich weiß aber nicht woran das liegen könnte und habe schon einige Sachen ausprobiert jedoch passiert immer das selbe :(


    OnGameModeInit:


    SetTimer("TDMTimer",60000,true);


    Public:

    public TDMTimer()
    {
    new String1[30];
    Zeit++;
    if(Zeit==11)
    {
    new string[120];
    if(kills1 < kills) //Team 1 hat gewonnen
    {
    format(string, sizeof string, "{7307F7}[TDM-INFO] Team {080003}> Zombie < {7307F7}hat das TDM mit %i Kills gewonnen!",kills);
    SendClientMessageToAll(ROT,string);
    }
    else if(kills < kills1) //Team 2 hat gewonnen.
    {
    format(string, sizeof string, "{7307F7}[TDM-INFO] Team {703A00}> Army < {7307F7} hat das TDM mit %i Kills gewonnen!",kills1);
    SendClientMessageToAll(ROT,string);
    }
    else if(kills == kills1) // Gleichstand
    {
    format(string, sizeof string, "[TDM-INFO] Unentschieden! Beide Teams haben %i Kills gemacht!",kills1);
    SendClientMessageToAll(ROT,string);
    }
    kills = 0;
    format(String1, sizeof(String1), "%i",kills);
    TextDrawSetString(TextdrawTDM6,String1);
    kills1 = 0;
    format(String1, sizeof(String1), "%i",kills1);
    TextDrawSetString(TextdrawTDM7,String1);
    SendClientMessageToAll(ROT,"[TDM-INFO] Eine neue TDM Runde hat gestartet! zum beitreten {FC0303}/TDM");
    for (new playerid=0;playerid<MAX_PLAYERS;playerid++)
    {
    if(GetPlayerVirtualWorld(playerid) == 4 && IsPlayerConnected(playerid))
    {
    OnPlayerCommandText(playerid,"/dmexit");
    SendClientMessage(playerid,BLAU,"Die TDM Runde ist beendet! Du kannst jederzeit wieder mit /TDM teilnehmen!");
    }
    }
    return 1;
    }
    format(String1, sizeof(String1), "%i / 10 Minuten",Zeit);
    TextDrawSetString(TextdrawTDM5,String1);
    return 1;
    }


    Es ist wirklich wichtig und es wäre sehr nett wenn mir jemand helfen könnte :)

  • Mach doch so:
    public TDMTimer()
    {
    new String1[30];
    Zeit++;
    if(Zeit=0)
    {
    new string[120];
    if(kills1 < kills) //Team 1 hat gewonnen
    {
    format(string, sizeof string, "{7307F7}[TDM-INFO] Team {080003}> Zombie < {7307F7}hat das TDM mit %i Kills gewonnen!",kills);
    SendClientMessageToAll(ROT,string);
    }
    else if(kills < kills1) //Team 2 hat gewonnen.
    {
    format(string, sizeof string, "{7307F7}[TDM-INFO] Team {703A00}> Army < {7307F7} hat das TDM mit %i Kills gewonnen!",kills1);
    SendClientMessageToAll(ROT,string);
    }
    else if(kills == kills1) // Gleichstand
    {
    format(string, sizeof string, "[TDM-INFO] Unentschieden! Beide Teams haben %i Kills gemacht!",kills1);
    SendClientMessageToAll(ROT,string);
    }
    kills = 0;
    format(String1, sizeof(String1), "%i",kills);
    TextDrawSetString(TextdrawTDM6,String1);
    kills1 = 0;
    format(String1, sizeof(String1), "%i",kills1);
    TextDrawSetString(TextdrawTDM7,String1);
    SendClientMessageToAll(ROT,"[TDM-INFO] Eine neue TDM Runde hat gestartet! zum beitreten {FC0303}/TDM");
    for (new playerid=0;playerid<MAX_PLAYERS;playerid++)
    {
    if(GetPlayerVirtualWorld(playerid) == 4 && IsPlayerConnected(playerid))
    {
    OnPlayerCommandText(playerid,"/dmexit");
    SendClientMessage(playerid,BLAU,"Die TDM Runde ist beendet! Du kannst jederzeit wieder mit /TDM teilnehmen!");
    }
    }
    return 1;
    }
    format(String1, sizeof(String1), "%i / 10 Minuten",Zeit);
    TextDrawSetString(TextdrawTDM5,String1);
    return 1;
    }

  • Ok, ich habs jetzt, noch eine Frage, ich möchte das man nicht mehr ins DM gehen kann wenn mehr als 5 Minuten bereits gespielt sind, ich habe es so gemacht..


    if(Zeit != 5++) return SendClientMessage(playerid, rot,"Das DM hat bereits seid mehr als 5 Minuten begonnen! Warte noch ein bischen!");


    Aber das geht nicht da ich einen Error bekomme..


    C:\Users\Beny\Desktop\FUN.pwn(8689) : error 022: must be lvalue (non-constant)
    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    1 Error.

  • Ok, ich habs jetzt, noch eine Frage, ich möchte das man nicht mehr ins DM gehen kann wenn mehr als 5 Minuten bereits gespielt sind, ich habe es so gemacht..
    if(Zeit != 5++) return SendClientMessage(playerid, rot,"Das DM hat bereits seid mehr als 5 Minuten begonnen! Warte noch ein bischen!");


    Mach einfach das ++ weg ^^


    mfg. :thumbup:

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S

  • Habe mir jetzt erst durchgelesen, was das soll :D


    Schreibe das einfach so:


    //Die if-Abfrage macht jetzt das, was der Text sagt
    if(Zeit >= 5) return SendClientMessage(playerid, rot,"Das DM hat bereits seid mehr als 5 Minuten begonnen! Warte noch ein bischen!");


    mfg. :thumbup:

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S