/kick befehl

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
  • Hey


    Ich habe bisher diesen kick befehl
    if (strcmp("/Kick", cmdtext, true, 10) ==0)
    {
    if(Admin[playerid][pAdminlevel] >= 5 || IsPlayerAdmin(playerid))
    {
    Kick(playerid);
    SendClientMessage(playerid,ROT,"Du wurdest gekickt");
    }
    }


    Wie kann ich einbauen dass man den Grund mit dazu schreiben kann?

    Mit freundlichen Grüßen
    Siepac

  • dachte ich mir schon aber wusste ich nicht genau :D


    geht das so


    if (strcmp("/Kick [playerid] [Grund]", cmdtext, true, 10) ==0)
    {
    if(Admin[playerid][pAdminlevel] >= 5 || IsPlayerAdmin(playerid))
    {
    Kick(playerid);
    SendClientMessage(playerid,ROT,"Du wurdest gekickt");
    }
    }

    Mit freundlichen Grüßen
    Siepac

  • Hier, mein CMD Kick mit zcmd ^^ sollte dir helfen ;)



    CMD:kick(playerid,params[])
    {
    new pID,grund[50], text[128],text2[128];
    if(Eingeloggt[playerid]==0)return SendClientMessage(playerid, Rot,"Du musst dich vorher einloggen!");
    if(!IstSpielerEinAdmin(playerid,2)) return SendClientMessage(playerid,Rot,"Du kannst diesen Befehl nicht benutzen!");
    if(sscanf(params,"us",pID,grund)) return SendClientMessage(playerid,Rot,"Info:"COLW" /kick [SpielerName] [Grund]");
    if(!IsPlayerConnected(pID)) return SendClientMessage(playerid,Rot,"Info:"COLW" Dieser Spieler ist nicht auf dem Server!");
    if(pID==playerid) return SendClientMessage(playerid, Rot, "Info:"COLW" Du kannst dich nicht selber kicken!");
    format(text,sizeof(text),"[SERVER] "COLO"%s "COLW"hat "COLO"%s "COLW"vom Server gekick! "COLR"Grund: "COLW"%s",GetName(playerid),GetName(pID),grund);
    SendClientMessageToAll(Rot,text);
    format(text2,sizeof(text2),"Info:"COLW" Du hast "COLO"%s"COLW" vom Server gekickt! Dein angegebener Grund: %s",GetName(pID),grund);
    SendClientMessage(playerid, Rot,text2);
    return 1;
    }

  • mit ocmd geht das einfacher.


    ocmd:kick(playerid,params[])
    {
    new pID;
    new grund[128];
    new text[128];
    if(sscanf(params,"us",pID,grund))return SendClientMessage(playerid,FARBE,"/kick [id] [grund]");
    if(pID==playerid)return SendClientMessage(playerid,FARBE,"Du kannst dich nicht selber kicken");
    format(text,sizeof(text),"AdmCmd: %s wurde von %s gekickt. Grund: %s",SpielerName(pID),SpielerName(playerid),grund);
    SendClientMessageToAll(FARBE,text);
    Kick(pID);
    return 1;
    }


    So würde ich das machen.

    Zitat von Techno4Live

    new und dann was genau?


    So wie ich das gemacht habe, new pID (der User der dann letztendlich gekickt wird). Dann brauchst du natürlich auch noch den Grund, das hab ich mit new grund[128] gemacht.


    Das new text[128] ist deswegen da, weil ich mit format die SendClientMessage geschrieben habe, und dann via text in der SendClientMessage ausgeben kann.
    Siehe: SendClientMessageToAll(FARBE,text);

  • könnte mir jemand einen OCMD genauer erklären habe noch nicht damit gearbeitet..


    new grund [128];


    steht die 128 für die anschläge also
    wenn ich jetzt [3]
    dahinter setzen würde könnte ich nur hey oderso als grund schreiben (nur beispiel)

    Mit freundlichen Grüßen
    Siepac

  • Ganz simple
    oben im Script:
    #include <ocmd>
    und in includes ordner ocmd.inc rein tuhen.


    dann:
    ocmd:kick(playerid,params[])
    {
    new str1[128],str2[128],reason[128];
    new pID[MAX_PLAYER_NAMES];
    new player[MAX_PLAYER_NAMES];
    GetPlayerName(playerid(pId,sizeof(pID));
    GetPlayerName(playerid(player,sizeof(player));
    if(sscanf,"us",pID,reason))//sccanf abfrage
    {
    if(PlayerInfo[playerid][pAdmin] < 1)
    {
    format(str1,sizeof(str1),"Du hast ´%s gekickt",pID);
    format(str2,sizeof(str2),"%s wurde von %s gekickt, Grund %s",pID,player,reason);
    SendClientMessage(playerid,str1,ROT);
    SendClientMessageToAll(str2,ROT);
    Kick(playerid);
    }
    }
    return 1;
    }


    sollte gehen mfg


    /*ocmd ist einfach dafür du kannst mit sccanf arbeiten bzw parameter mit strcmp kannst du es nicht
    die zb new text[128];
    128 ist die zeichenlänge also 128 buchstaben wenn es mehr ist zeigt es nicht an*/

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • Zitat von Techno4Live

    new grund [128];


    steht die 128 für die anschläge also
    wenn ich jetzt [3]
    dahinter setzen würde könnte ich nur hey oderso als grund schreiben (nur beispiel)


    Die Zahl hinter dem Variablennamen sagt, wie viele Dimensionen die Variable hat -
    hier 128.


    Bei Pawn benötigt jede Ziffer eine Dimension,
    du kannst also einen Text von max. 128 Zeichen in deiner Beispiels variable speichern.