Wo soll ich den SetTimerEx einfügen?

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
  • Habe eine frage zu einen SetTimerEx. In dem public davon sind lediglich 3 Adminabfagen und 4 TextdrawSetStrings. Hier mal der SetTimerEx: SetTimerEx("Reporttimer",1000,1,"i",playerid);
    Habe ein MySQL Login bzw Register System. Das Problem ist jetzt wenn ich ihn zb. in OnPlayerConnect einfüge, das ich sofort einen Crash bekomme. mfg

  • Also, ich habe einen SetTimerEx für mein Report System. Er soll immer 5 Textdraws Updaten. Dort enthalten sind natürlich die TextDrawSetStrings und noch die dazugehörigen Admin Abfragen. Nun habe ich den Timer schon unter mehreren Kategorien eingefügt und bekam immer folgende Fehler:
    - Textdraws werden nicht angezeigt
    - Crash nach Login


    Hier mal der Public. Forward ist natürlich auch erstellt worden.
    public Reporttimer(playerid)
    {
    if(pDaten[playerid][AdminLevel] >= 1)
    {
    new rstring[3];
    format(rstring, sizeof(rstring),"~B~Allgemeine Fragen: ~G~%d",ALLGEMEINEFRAGEN);
    TextDrawSetString(AFrage[playerid], rstring);
    TextDrawShowForPlayer(playerid, AFrage[playerid]);
    }
    else if(pDaten[playerid][AdminLevel] >= 2)
    {
    new rstring1[3];
    new rstring2[3];
    format(rstring1, sizeof(rstring1),"~B~Regelverstoss: ~G~%d",REGELVERSTOSS);
    TextDrawSetString(RFrage[playerid], rstring1);
    format(rstring2, sizeof(rstring2),"~B~Cheatermeldung: ~G~%d",CHEATERMELDUNG);
    TextDrawSetString(CFrage[playerid], rstring2);
    TextDrawShowForPlayer(playerid, RFrage[playerid]);
    TextDrawShowForPlayer(playerid, CFrage[playerid]);
    }
    else if(pDaten[playerid][AdminLevel] >= 4)
    {
    new rstring3[3];
    new rstring4[3];
    format(rstring3, sizeof(rstring3),"~B~Account Frage: ~G~%d",ACCOUNTFRAGEN);
    TextDrawSetString(ACFrage[playerid], rstring3);
    format(rstring4, sizeof(rstring4),"~B~Fraktions Fragen: ~G~%d",FRAKTIONSFRAGEN);
    TextDrawSetString(FFrage[playerid], rstring4);
    TextDrawShowForPlayer(playerid, ACFrage[playerid]);
    TextDrawShowForPlayer(playerid, FFrage[playerid]);
    }
    else
    {
    TextDrawHideForPlayer(playerid, AFrage[playerid]);
    TextDrawHideForPlayer(playerid, RFrage[playerid]);
    TextDrawHideForPlayer(playerid, CFrage[playerid]);
    TextDrawHideForPlayer(playerid, ACFrage[playerid]);
    TextDrawHideForPlayer(playerid, FFrage[playerid]);
    }
    }

  • Erstellt werden sie unter den Public "OnPlayerConnect" so zum Beispiel: AFrage[playerid] = TextDrawCreate(477.000000, 130.000000, "Allgemeine Fragen: 0 ");
    Sind auch oben mit new Text:AFrage[MAX_PLAYERS];
    Unter OnPlayerConnect werde sie auch dann Automatisch "gehiddet" damit sie dann immer Aktualisiert werden können.
    mfg

  • Habe den Fehler nun gefunden. Es liegt am SetTimerEx. Hier der reporttimer public: public Reporttimer(playerid)
    {
    if(SpielerInfo[playerid][pAdmin] >= 1)
    {
    new rstring[3];
    format(rstring, sizeof(rstring),"~B~Allgemeine Fragen: ~G~%d",ALLGEMEINEFRAGEN);
    TextDrawSetString(AFrage[playerid], rstring);
    TextDrawShowForPlayer(playerid, AFrage[playerid]);
    }
    else if(SpielerInfo[playerid][pAdmin] >= 2)
    {
    new rstring1[3];
    new rstring2[3];
    format(rstring1, sizeof(rstring1),"~B~Regelverstoss: ~G~%d",REGELVERSTOSS);
    TextDrawSetString(RFrage[playerid], rstring1);
    format(rstring2, sizeof(rstring2),"~B~Cheatermeldung: ~G~%d",CHEATERMELDUNG);
    TextDrawSetString(CFrage[playerid], rstring2);
    TextDrawShowForPlayer(playerid, RFrage[playerid]);
    TextDrawShowForPlayer(playerid, CFrage[playerid]);
    }
    else if(SpielerInfo[playerid][pAdmin] >= 4)
    {
    new rstring3[3];
    new rstring4[3];
    format(rstring3, sizeof(rstring3),"~B~Account Frage: ~G~%d",ACCOUNTFRAGEN);
    TextDrawSetString(ACFrage[playerid], rstring3);
    format(rstring4, sizeof(rstring4),"~B~Fraktions Fragen: ~G~%d",FRAKTIONSFRAGEN);
    TextDrawSetString(FFrage[playerid], rstring4);
    TextDrawShowForPlayer(playerid, ACFrage[playerid]);
    TextDrawShowForPlayer(playerid, FFrage[playerid]);
    }
    }

    SetTimerEx("Reporttimer",1000,1,"i",playerid);


    Bitte helft mir ;(