Timeban Stock (mySQL)

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 Zusammen,


    bin gerade dabei einen Timeban zu erstellen den Befehl selbst hab ich schonmal. Könnt ihr schauen ob er soweit Richtig ist?



    ocmd:tban(playerid,params[])
    {
    if(!IsPlayerGM(playerid,2))return 1;
    new pID,string[128],Grund[64],Dauer;
    if(sscanf(params, "usis", pID, Grund,Dauer))return SendClientMessage(playerid, FARBE_ROT, "INFO: /tban [PlayerId] [Grund] [Dauer (in Minuten)]");
    if (pID == INVALID_PLAYER_ID)return SendClientMessage(playerid,FARBE_ROT,"Diese Spieler (ID) existiert nicht.");
    if (pID == playerid)return SendClientMessage(playerid,FARBE_ROT,"Du kannst dich nicht selber Bannen!");
    format(string,sizeof(string),"INFO: %s wurde von %s %s für %d Minuten gebannt.Grund: %s",getPlayerName(pID),GetGMRang(playerid),getPlayerName(playerid),Dauer,Grund);
    SendClientMessageToAll(FARBE_ROT,string);
    TBan(pID,Grund,Dauer,playerid);
    return 1;
    }


    Kann mir jemand zeigen, wie ich den Stock auszufüllen habe. Ich nutze dabei MySQL

  • Der Code ist auf jeden Fall noch verbesserungswürdig!


    Wenn du sscanf benutzt solltest du immer string Parameter als letzten Parameter vorgeben, da ansonsten nach einem Leerzeichen, ungewollt der nächste Parameter aufgerufen wird.
    Außerdem habe ich noch drei Abfragen hinzugefügt und die Länge deines strings auf 144 Zeichen erweitert, da SendClientMessage() max. 144 Zeichen ausgeben kann.
    Bei einer Abfrage (ist markiert) musst du die Variable auf die Variable umändern, welche den Admin Rang des Spieler speichert.



    ocmd:tban(playerid,params[])
    {
    if(!IsPlayerGM(playerid,2))return 1;
    new pID,string[144],Grund[64],Dauer;
    if(sscanf(params, "uis", pID,Dauer,Grund))return SendClientMessage(playerid, FARBE_ROT, "INFO: /tban [PlayerId] [Dauer (in Minuten)] [Grund]");
    if(pID == INVALID_PLAYER_ID)return SendClientMessage(playerid,FARBE_ROT,"Diese Spieler (ID) existiert nicht.");
    if(pID == playerid)return SendClientMessage(playerid,FARBE_ROT,"Du kannst dich nicht selber Bannen!");
    if(admin(playerid) <= admin(pID))return SendClientMessage(playerid, FARBE_ROT, "Du kannst keinen ranghöheren oder gleichrangigen Admin bannen!"); // variablen unbedingt ändern
    if(Dauer <= 0)return SendClientMessage(playerid, FARBE_ROT, "Ungültige Dauer!");
    if(!strlen(Grund) || strlen(Grund) > sizeof(Grund))return SendClientMessage(playerid, FARBE_ROT, "Ungültiger Grund!");
    format(string,sizeof(string),"INFO: %s wurde von %s %s für %d Minuten gebannt.Grund: %s",getPlayerName(pID),GetGMRang(playerid),getPlayerName(playerid),Dauer,Grund);
    SendClientMessageToAll(FARBE_ROT,string);
    TBan(pID,Grund,Dauer,playerid);
    return 1;
    }