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
  • ocmd:kick(playerid,params[])
    {
    new pID, reason[128], string[128];
    if(sscanf(params,"us",pID,reason))return SendClientMessage(playerid,Red,"Eingabe: /kick [ID] [Grund]");
    format(string,sizeof(string),"%s hat %s gekickt! Grund: %s",SpielerName(playerid),SpielerName(pID),reason);
    SendClientMessageToAll(Red,string);
    ShowPlayerDialog(playerid,DIALOG_KICK,DIALOG_STYLE_MSGBOX,"Kick","Möchtest du den Spieler wirklich kicken?","Ja","Nein");
    return 1;
    }

    public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
    {
    if(dialogid == DIALOG_KICK)
    {
    if(response == 0)
    {
    SendClientMessage(playerid,Red,"Du hast den Vorgang abgebrochen!");
    return 1;
    }
    if(response == 1)
    {
    Kick(pID);
    }
    }
    return 1;
    }


    hey, wie mache ich das, damit wenn ich auf Ja klicke pID gekickt wird


  • new nameid;//oben im script.


    ocmd:kick(playerid,params[])
    {
    new pID, reason[128], string[128];
    if(sscanf(params,"us",pID,reason))return SendClientMessage(playerid,Red,"Eingabe: /kick [ID] [Grund]");
    format(string,sizeof(string),"%s hat %s gekickt! Grund: %s",SpielerName(playerid),SpielerName(pID),reason);
    SendClientMessageToAll(Red,string);
    ShowPlayerDialog(playerid,DIALOG_KICK,DIALOG_STYLE_MSGBOX,"Kick","Möchtest du den Spieler wirklich kicken?","Ja","Nein");
    nameid=pID;
    return 1;
    }
    public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
    {
    if(dialogid == DIALOG_KICK)
    {
    if(response == 0)
    {
    SendClientMessage(playerid,Red,"Du hast den Vorgang abgebrochen!");
    nameid=0;
    return 1;
    }
    if(response == 1)
    {
    Kick(nameid);
    }
    }
    return 1;
    }

  • @Music4You:


    Das würde zu Fehlern kommen, wenn der Spieler im Dialog ist und gleichzeitig wer anders im Dialog ist und dann würde der andere die ID vom anderen übernehmen ;)


    Deshalb muss man das nochmal Spielerspezifisch machen, sprich so:


    new nameid[MAX_PLAYERS char];//oben im script.


    ocmd:kick(playerid,params[])
    {
    new pID, reason[128], string[128];
    if(sscanf(params,"us",pID,reason))return SendClientMessage(playerid,Red,"Eingabe: /kick [ID] [Grund]");
    format(string,sizeof(string),"%s hat %s gekickt! Grund: %s",SpielerName(playerid),SpielerName(pID),reason);
    SendClientMessageToAll(Red,string);
    ShowPlayerDialog(playerid,DIALOG_KICK,DIALOG_STYLE_MSGBOX,"Kick","Möchtest du den Spieler wirklich kicken?","Ja","Nein");
    nameid{playerid}=pID;
    return 1;
    }
    public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
    {
    if(dialogid == DIALOG_KICK) {
    if(!response) return SendClientMessage(playerid,Red,"Du hast den Vorgang abgebrochen!"),nameid{playerid}=0;
    return Kick(nameid{playerid});
    }
    return 1;
    }


    mfg. :thumbup:

    ast2ufdyxkb1.png


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

  • Okay danke dir daführ :)


    Dafür kannst du nur Werte von 0 - 254 drin speichern da eine Zelle 1 Byte groß ist also 4 Bits.
    Ich hatte es ja bereits ihrgend wo geschrieben wenn man nur 2 Werte 0 und 1 speichern will so sollte man 1Bity-Arrays verwenden.
    Da auch boolesche Variabeln 8 bytes verbrauchen wie ein integer.

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