Was ist an diesem Timeban Befehl falsch?

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
  • Moin liebe Community,
    ich habe ein Problem mit deisem Timeban Befehl:
    dcmd_tban(playerid,params[])
    {
    new pID,pIdName[MAX_PLAYER_NAME],pName[MAX_PLAYER_NAME],banTime,reason[64],string[128];
    if(PlayerInfo[playerid][pAdmin] <= 1) { return 1; }
    if(sscanf(params,"uds",pID,banTime,reason)) { return SendClientMessage(playerid,COLOR_GRAD1,"Benutzung: /tban [Spieler / ID] [Zeit in Minuten] [Grund]"); }
    if(!IsPlayerConnected(pID)) { return SendClientMessage(playerid,COLOR_GRAD1,"Falsche ID!"); }
    if(banTime < 15) { return SendClientMessage(playerid,COLOR_GRAD1,"Minimale Zeit: 15 Minuten"); }
    GetPlayerName(pID,pIdName,sizeof(pIdName));
    GetPlayerName(playerid,pName,sizeof(pName));
    format(string,sizeof(string),"AdminSystem: %s wurde von %s für %d Minuten gebannt, Grund: %s",pIdName,pName,banTime,reason);
    SendClientMessageToAll(COLOR_LIGHTRED,string);
    printf("AdminSystem(TIMEBAN): Admin: %s(%i) - Timebanned Player: %s(%i) - Timeban Reason: %s",pName,playerid,pIdName,pID,reason);
    pBanner[pID] = pName;
    TBan(pID,banTime);
    return 1;
    }


    Und zwar immer wenn ich den Befehl ausführe, Crasht der Server.


    Ich bedanke mich schonmal für eure Hilfe!


    LG Moritz

    Mit freundlichen Grüßen!
    MoritzF


  • Zeig uns doch auch mal die "TBan"-Funktion.


    /e:
    Außerdem empfehle ich dir die Abfragen so zu gestalten:
    if(PlayerInfo[playerid][pAdmin] <= 1)return 1;
    if(sscanf(params,"uds",pID,banTime,reason))return SendClientMessage(playerid,COLOR_GRAD1,"Benutzung: /tban [Spieler / ID] [Zeit in Minuten] [Grund]");
    if(!IsPlayerConnected(pID))return SendClientMessage(playerid,COLOR_GRAD1,"Falsche ID!");
    if(banTime < 15)return SendClientMessage(playerid,COLOR_GRAD1,"Minimale Zeit: 15 Minuten");

  • stock TBan(pID,bTime)
    {
    new pName[MAX_PLAYER_NAME];
    GetPlayerName(pID,pName,sizeof(pName));
    format(tbDir,sizeof(tbDir),foxBanFile,pName);
    dini_Create(tbDir);
    dini_IntSet(tbDir,"fbDuration",bTime*60);
    Kick(pID);
    }

    Mit freundlichen Grüßen!
    MoritzF