Kick / Bann [GUI]

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
  • Da ich des öfteren Fragen bekomme, wieso sie Warnings in ihrem Kick / Bann GUI haben,
    oder in ihrem Befehl, da sie ihn meist aus GF kopieren, und da der meist nicht im Selfmade
    vorhanden ist, gibts ebend Warnings, nun möchte ich euch die neuere Variante des Kick /
    Ban Gui zeigen. Sieht schöner aus, und ist im Gui ausgebaut.


    Ich mache es hier für Rcon Admins !


    So, zuerst definieren wir die Dialoge :



    #define DIALOG_KICK 0
    #define DIALOG_BAN 1
    #define DIALOG_BANAUSGABE 2
    #define DIALOG_KICKAUSGABE 3
    #define DIALOG_GRUND 4
    #define DIALOG_GRUND2 5


    Unter :
    OnPlayerCommandText


    Fügen wir nun unsere Befehle ein, für mich ist es einfach /kick und /ban.



    if(strcmp(strget(cmdtext,0), "/kick", true) == 0)
    {
    if(IsPlayerAdmin(playerid)) // Ist der Spieler ein Admin ?
    {
    ShowPlayerDialog(playerid,DIALOG_KICK,DIALOG_STYLE_INPUT,"Kick Menu","Gebe hier die ID des Spielers ein!","Ok","Abbrechen"); // Hier das Menu
    }
    else
    {
    SendClientMessage(playerid,FARBE,"TEXT"); // Dieser Text soll erscheinen, wen der Spieler kein Admin ist!
    return 1;
    }


    Der Bann Befehl :


    if(strcmp(strget(cmdtext,0), "/ban", true) == 0)
    {
    if(IsPlayerAdmin(playerid)) // Ist der Spieler ein Admin ?
    {
    ShowPlayerDialog(playerid,DIALOG_BAN,DIALOG_STYLE_INPUT,"Ban Menu","Gebe hier die ID des Spielers ein!","Ok","Abbrechen"); // Hier das Menu
    }
    else
    {
    SendClientMessage(playerid,FARBE,"TEXT"); // Dieser Text soll erscheinen, wen der Spieler kein Admin ist!
    return 1;
    }


    Da der Dialog natürlich auch etwas bewirken soll, machen wir nun die Funktion für das Callback.


    Unter :


    OnDialogResponse


    if(dialogid == DIALOG_KICK)
    {
    new kickid;
    kickid = strval(inputtext);
    ShowPlayerDialog(playerid,DIALOG_GRUND,DIALOG_STYLE_INPUT,"Grund","Nenne den Grund :","Ok","Abbrechen");


    if(dialogid == DIALOG_BAN)
    {
    new banid;
    banid = strval(inputtext);
    ShowPlayerDialog(playerid,DIALOG_GRUND2,DIALOG_STYLE_INPUT,"Grund","Nenne den Grund :","Ok","Abbrechen");


    if(dialogid == DIALOG_GRUND)
    {
    new grund[64],kicktext[50];
    strmid(grund, inputtext, 0, strlen(inputtext), 255);
    format(kicktext,128,"Du wurdest von einem Admin gekickt!\nGrund : %s",grund);
    ShowPlayerDialog(kickid,DIALOG_KICKAUSGABE,DIALOG_STYLE_MSGBOX,"Kick",kicktext,"Ok","Abbrechen");
    Kick(kickid);
    }


    if(dialogid == DIALOG_GRUND2)
    {
    new grund[64],bantext[50];
    strmid(grund, inputtext, 0, strlen(inputtext), 255);
    format(bantext,128,"Du wurdest von einem Admin gebannt!\nGrund : %s",grund);
    ShowPlayerDialog(banid,DIALOG_BANAUSGABE,DIALOG_STYLE_MSGBOX,"Ban",bantext,"Ok","Abbrechen");
    Ban(banid);
    }
    }
    }


    Das wars eigentlich auch schon, nun könnt ihr leute kicken und Bannen.
    Ist ziemlich Simpel, dennoch wer es gebrauchen kann viel Spaß ;)


    Edit : Wurde an die Falsche ID geschickt, habs nun gefixxt ;)


    Edit2 : Habe nun Grund hineinbezogen, man kann dem Spieler nun den Grund des Bannens oder kickens nennen!

    5 Mal editiert, zuletzt von xivo ()

  • jo find ich ganz gut ;D vllt kannste das ma erweitern mit z.b. das du wenn du die id eingegeben hast, dass dann noch nen fenster kommt das man dann nen grund eingeben soll.^^ geiles deutsch wa ? ;D


    naja 8/10

  • dein kick funkt bei mir net xDD das beste ist wenn ich mich enlogge das gleich danach dieser Kasten kommt Nenne den Grund xDD dann schreibe ich da den grund dann kommt genau der selbe text wie wenn ich /info eingebe xDD und wenn /kick kommt das slebe nochma xDD

  • gute idee ^^


    aber wieso kommt wenn ich die befehle


    if(strcmp(strget(cmdtext,0), "/kick", true) == 0)
    {
    if(IsPlayerAdmin(playerid)) // Ist der Spieler ein Admin ?
    {
    ShowPlayerDialog(playerid,DIALOG_KICK,DIALOG_STYLE_INPUT,"Kick Menu","Gebe hier die ID des Spielers ein!","Ok","Abbrechen"); // Hier das Menu
    }
    else
    {
    SendClientMessage(playerid,FARBE,"TEXT"); // Dieser Text soll erscheinen, wen der Spieler kein Admin ist!
    return 1;
    }
    if(strcmp(strget(cmdtext,0), "/ban", true) == 0)
    {
    if(IsPlayerAdmin(playerid)) // Ist der Spieler ein Admin ?
    {
    ShowPlayerDialog(playerid,DIALOG_BAN,DIALOG_STYLE_INPUT,"Ban Menu","Gebe hier die ID des Spielers ein!","Ok","Abbrechen"); // Hier das Menu
    }
    else
    {
    SendClientMessage(playerid,FARBE,"TEXT"); // Dieser Text soll erscheinen, wen der Spieler kein Admin ist!
    return 1;
    }
    return 1;
    }


    einbaue


    diese fehler
    C:\Users\DiZzY\Desktop\sampserver\gamemodes\22240.pwn(2226) : error 004: function "PlayerToPoint" is not implemented
    C:\Users\DiZzY\Desktop\sampserver\gamemodes\22240.pwn(2230) : error 004: function "PlayerToPoint" is not implemented
    C:\Users\DiZzY\Desktop\sampserver\gamemodes\22240.pwn(2394) : error 004: function "PlayerToPoint" is not implemented
    C:\Users\DiZzY\Desktop\sampserver\gamemodes\22240.pwn(2398) : error 004: function "PlayerToPoint" is not implemented
    C:\Users\DiZzY\Desktop\sampserver\gamemodes\22240.pwn(2402) : error 004: function "PlayerToPoint" is not implemented
    C:\Users\DiZzY\Desktop\sampserver\gamemodes\22240.pwn(2406) : error 004: function "PlayerToPoint" is not implemented
    C:\Users\DiZzY\Desktop\sampserver\gamemodes\22240.pwn(2410) : error 004: function "PlayerToPoint" is not implemented
    C:\Users\DiZzY\Desktop\sampserver\gamemodes\22240.pwn(2414) : error 004: function "PlayerToPoint" is not implemented
    C:\Users\DiZzY\Desktop\sampserver\gamemodes\22240.pwn(2418) : error 004: function "PlayerToPoint" is not implemented
    C:\Users\DiZzY\Desktop\sampserver\gamemodes\22240.pwn(2422) : error 004: function "PlayerToPoint" is not implemented
    C:\Users\DiZzY\Desktop\sampserver\gamemodes\22240.pwn(2426) : error 004: function "PlayerToPoint" is not implemented
    C:\Users\DiZzY\Desktop\sampserver\gamemodes\22240.pwn(2430) : error 004: function "PlayerToPoint" is not implemented
    C:\Users\DiZzY\Desktop\sampserver\gamemodes\22240.pwn(2442) : error 004: function "PlayerToPoint" is not implemented
    C:\Users\DiZzY\Desktop\sampserver\gamemodes\22240.pwn(2446) : error 004: function "PlayerToPoint" is not implemented
    C:\Users\DiZzY\Desktop\sampserver\gamemodes\22240.pwn(2450) : error 004: function "PlayerToPoint" is not implemented
    C:\Users\DiZzY\Desktop\sampserver\gamemodes\22240.pwn(2454) : error 004: function "PlayerToPoint" is not implemented
    C:\Users\DiZzY\Desktop\sampserver\gamemodes\22240.pwn(2458) : error 004: function "PlayerToPoint" is not implemented
    C:\Users\DiZzY\Desktop\sampserver\gamemodes\22240.pwn(2470) : error 004: function "PlayerToPoint" is not implemented
    C:\Users\DiZzY\Desktop\sampserver\gamemodes\22240.pwn(2474) : error 004: function "PlayerToPoint" is not implemented
    C:\Users\DiZzY\Desktop\sampserver\gamemodes\22240.pwn(2478) : error 004: function "PlayerToPoint" is not implemented
    C:\Users\DiZzY\Desktop\sampserver\gamemodes\22240.pwn(2490) : error 004: function "PlayerToPoint" is not implemented
    C:\Users\DiZzY\Desktop\sampserver\gamemodes\22240.pwn(2494) : error 004: function "PlayerToPoint" is not implemented
    C:\Users\DiZzY\Desktop\sampserver\gamemodes\22240.pwn(2498) : error 004: function "PlayerToPoint" is not implemented
    C:\Users\DiZzY\Desktop\sampserver\gamemodes\22240.pwn(2502) : error 004: function "PlayerToPoint" is not implemented
    C:\Users\DiZzY\Desktop\sampserver\gamemodes\22240.pwn(2506) : error 004: function "PlayerToPoint" is not implemented
    C:\Users\DiZzY\Desktop\sampserver\gamemodes\22240.pwn(2510) : error 004: function "PlayerToPoint" is not implemented


    Compilation aborted.Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    26 Errors.

  • das ist irgendwie sinnlos es ist viel schneller wenn man /kick id eingibt

  • @ Master_FM && chilly...


    Es ist jedem selbst überlassen, ob er es in GUI haben möchte oder nicht, mir selber gefällt
    Gui einfach besser, da es eine Grafische Oberfläche bestizt, und halt etwas mit der Zeit
    mitkommt ;)


    Und zu


    @ DizZy


    Dir fehlt PlayerToPoint, du kannst aber auch am besten IsPlayerInRangeOfPoint
    verwenden, ist schneller und arbeitet genauso wie PlayerToPoint, dort musst du allerdings
    nichts definieren. Und auch kein public oder Forward erstellen.


    Wenn du dennoch PlayerToPoint verwenden möchtest hier :


    forward PlayerToPoint(Float:radi, playerid, Float:x, Float:y, Float:z);


    public PlayerToPoint(Float:radi, playerid, Float:x, Float:y, Float:z)
    {
    if(IsPlayerConnected(playerid))
    {
    new Float:oldposx, Float:oldposy, Float:oldposz;
    new Float:tempposx, Float:tempposy, Float:tempposz;
    GetPlayerPos(playerid, oldposx, oldposy, oldposz);
    tempposx = (oldposx -x);
    tempposy = (oldposy -y);
    tempposz = (oldposz -z);
    if (((tempposx < radi) && (tempposx > -radi)) && ((tempposy < radi) && (tempposy > -radi)) && ((tempposz < radi) && (tempposz > -radi)))
    {
    return 1;
    }
    }
    return 0;
    }

  • stimmt zwar aber



    du kannst es auch gerne für anfänger erklären wie sie das mit


    if(Spieler[playerid][team] = 9)


    einfügen

  • C:\Users\Tieger\Desktop\-\MrIllusion\gamemodes\Minigame.pwn(444) : warning 204: symbol is assigned a value that is never used: "kickid"
    C:\Users\Tieger\Desktop\-\MrIllusion\gamemodes\Minigame.pwn(450) : warning 204: symbol is assigned a value that is never used: "banid"
    C:\Users\Tieger\Desktop\-\MrIllusion\gamemodes\Minigame.pwn(458) : error 017: undefined symbol "kickid"
    C:\Users\Tieger\Desktop\-\MrIllusion\gamemodes\Minigame.pwn(459) : error 017: undefined symbol "kickid"
    C:\Users\Tieger\Desktop\-\MrIllusion\gamemodes\Minigame.pwn(466) : error 017: undefined symbol "banid"
    C:\Users\Tieger\Desktop\-\MrIllusion\gamemodes\Minigame.pwn(467) : error 017: undefined symbol "banid"
    C:\Users\Tieger\Desktop\-\MrIllusion\gamemodes\Minigame.pwn(493) : warning 203: symbol is never used: "gTeam"
    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    4 Errors.


    #define DIALOG_KICK 100
    #define DIALOG_BAN 200
    #define DIALOG_BANAUSGABE 300
    #define DIALOG_KICKAUSGABE 400
    #define DIALOG_GRUND 500
    #define DIALOG_GRUND2 600


    if(strcmp(strget(cmdtext,0), "/kick", true) == 0)
    {
    if(IsPlayerAdmin(playerid)) // Ist der Spieler ein Admin ?
    {
    ShowPlayerDialog(playerid,DIALOG_KICK,DIALOG_STYLE_INPUT,"Kick Menu","Gebe hier die ID des Spielers ein!","Ok","Abbrechen"); // Hier das Menu
    }
    else
    {
    SendClientMessage(playerid,0xFF0000FF,"TEXT"); // Dieser Text soll erscheinen, wen der Spieler kein Admin ist!
    return 1;
    }
    }
    if(strcmp(strget(cmdtext,0), "/ban", true) == 0)
    {
    if(IsPlayerAdmin(playerid)) // Ist der Spieler ein Admin ?
    {
    ShowPlayerDialog(playerid,DIALOG_BAN,DIALOG_STYLE_INPUT,"Ban Menu","Gebe hier die ID des Spielers ein!","Ok","Abbrechen"); // Hier das Menu
    }
    else
    {
    SendClientMessage(playerid,0xFF0000FF,"TEXT"); // Dieser Text soll erscheinen, wen der Spieler kein Admin ist!
    return 1;
    }
    }


    public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
    {
    if(dialogid == DIALOG_KICK)
    {
    new kickid;
    kickid = strval(inputtext);
    ShowPlayerDialog(playerid,DIALOG_GRUND,DIALOG_STYLE_INPUT,"Grund","Nenne den Grund :","Ok","Abbrechen");
    }
    if(dialogid == DIALOG_BAN)
    {
    new banid;
    banid = strval(inputtext);
    ShowPlayerDialog(playerid,DIALOG_GRUND2,DIALOG_STYLE_INPUT,"Grund","Nenne den Grund :","Ok","Abbrechen");
    }
    if(dialogid == DIALOG_GRUND)
    {
    new grund[64],kicktext[50];
    strmid(grund, inputtext, 0, strlen(inputtext), 255);
    format(kicktext,128,"Du wurdest von einem Admin gekickt!\nGrund : %s",grund);
    ShowPlayerDialog(kickid,DIALOG_KICKAUSGABE,DIALOG_STYLE_MSGBOX,"Kick",kicktext,"Ok","Abbrechen");
    Kick(kickid);
    }
    if(dialogid == DIALOG_GRUND2)
    {
    new grund[64],bantext[50];
    strmid(grund, inputtext, 0, strlen(inputtext), 255);
    format(bantext,128,"Du wurdest von einem Admin gebannt!\nGrund : %s",grund);
    ShowPlayerDialog(banid,DIALOG_BANAUSGABE,DIALOG_STYLE_MSGBOX,"Ban",bantext,"Ok","Abbrechen");
    Ban(banid);
    }
    return 1;
    }


    //EDIT Hab new kickid; und new banid; oben definiert und gunzt wunderbar ^^
    //EDIT 2 Habs ingame getestet und wenn man /kick eingibt öffnet es sich.
    so man geht auf abrechen kommt das nächste menu
    dann wird wieder das nächste aufgerufen und dann wird man gekickt pls help!

    2 Mal editiert, zuletzt von Tigerkiller ()

  • es ist wirklicher schwachsinn kick oder ban mit gui xD es ist zwar gut erklärt usw aber es ist sinnlos bis man die person in der liste findet -.- man könnte eben so /kick ID reason


    ^^


    Ich meine wozu GUI dauert eben länger ;)

  • gibts eig. ne möglichkeit den inputtext so abzufragen, also ich mein so:
    If inputtext = 1
    dann das und das
    If inputtext = 2
    das und das


    also ich will das man in meine input box zahlen reinschreibt so 1-3 und dann halt bei jeder zahl, etwas anderes passiert..
    bei 1 das
    bei 2 das
    bei 3 das
    halt immer was anderes, weiß aber net wie ich des abfragen kann..


    //Edit:
    if(strval(inputtext) == 2)
    {


    so gehts halt für die dies aus wissen wollen ;D

    Einmal editiert, zuletzt von IceCubeXXL ()

  • Ist doch im LoH 0.4 auch drinne oder nicht ? Egal


    Gutes Tutorial 10/10