Kicken im Dialog

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
  • Heyho Experten,
    ich wollte einen Dialog erstellen, der Spieler kickt und in einem Dialog muss man den Grund dafür angeben,
    dass klappt auch ganz gut, aber wenn ICH jemanden kicken will dann kick ich mich selber, wenn ich mich kicken will kick ich mich
    und wenn jemand anderes SICH kicken will kickt er mich und wenn ER MICH kicken will dann kickt er mich!!!
    Irgendwas mach ich falsch :D


    Danke im Vorraus!



    case DIALOG_KICK:
    {
    new pID,string[128],kickstring[70];
    if(response)
    {
    if(strlen(inputtext) == 0) // Wenn kein Grund angegeben wurde!
    {
    format(string,sizeof(string),"Aus welchem Grund möchten sie den Spieler %s kicken?",Spielername(pID));
    SendClientMessage(playerid,0xE0C656FF,"Du hast keinen Grund angegeben!");
    ShowPlayerDialog(playerid,DIALOG_KICK,DIALOG_STYLE_INPUT,"Kickfunktion:",string,"Kicken","Abbrechen");
    }
    else
    {
    SavePlayer(pID);
    format(kickstring,sizeof(kickstring),"Der Admin %s kickt den Spieler %s. Grund: %s",Spielername(playerid),Spielername(pID),inputtext);
    SendClientMessageToAll(0xDB5864FF,kickstring);
    Kick(pID);
    }
    }
    }
    }

  • es muss irgendwie daran liegen dass die pID variable nicht gesetzt wird also in dem fall 0 beträgt. wenn du nun playerid 0 bist dann wirst du nur gekickt.


    bei dir im script wird die pID Variable zwar erstellt, doch der wert von ihr wird nicht bestummen und desswegen bleibt diese bei dem wert 0 welches der playerid 0 entspricht


    Premium Company - comming soon!


  • ocmd:kick(playerid,params[])
    {
    new pID,string[128];
    if(IsPlayerTheAdmin(playerid,1))
    {
    if(sscanf(params,"u",pID))return SendClientMessage(playerid,0xFFFFFFFF,"EINGABE: /kick [ID]");
    {
    format(string,sizeof(string),"Aus welchem Grund möchten sie den Spieler %s kicken?",Spielername(pID));
    ShowPlayerDialog(playerid,DIALOG_KICK,DIALOG_STYLE_INPUT,"Kickfunktion:",string,"Kicken","Abbrechen");
    }
    }
    return 1;
    }

  • ganz oben machst du new KickPlayer[MAX_PLAYERS];
    bei onplayerconnect


    KickPlayer[playerid] = 0;


    ocmd:kick(playerid,params[])
    {
    new pID,string[128];
    if(IsPlayerTheAdmin(playerid,1))
    {
    if(sscanf(params,"u",pID))return SendClientMessage(playerid,0xFFFFFFFF,"EINGABE: /kick [ID]");
    {
    format(string,sizeof(string),"Aus welchem Grund möchten sie den Spieler %s kicken?",Spielername(pID));
    ShowPlayerDialog(playerid,DIALOG_KICK,DIALOG_STYLE_INPUT,"Kickfunktion:",string,"Kicken","Abbrechen");
    KickPlayer[playerid] = pID;
    }


    }
    return 1;
    }



    im Dialog



    case DIALOG_KICK:
    {
    new pID,string[128],kickstring[70];
    if(response)
    {
    if(strlen(inputtext) == 0) // Wenn kein Grund angegeben wurde!
    {
    format(string,sizeof(string),"Aus welchem Grund möchten sie den Spieler %s kicken?",Spielername(pID));
    SendClientMessage(playerid,0xE0C656FF,"Du hast keinen Grund angegeben!");
    ShowPlayerDialog(playerid,DIALOG_KICK,DIALOG_STYLE_INPUT,"Kickfunktion:",string,"Kicken","Abbrechen");
    }
    else
    {
    SavePlayer(KickPlayer[playerid]);
    format(kickstring,sizeof(kickstring),"Der Admin %s kickt den Spieler %s. Grund: %s",Spielername(playerid),Spielername(KickPlayer[playerid]),inputtext);
    SendClientMessageToAll(0xDB5864FF,kickstring);
    Kick(KickPlayer[playerid]);
    }
    }
    }
    }