OnPlayerClickPlayer tban/tunban/unban system

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 ich bin gerade dabei ein tban system zu machen.
    Das System existiert bereits über den Befehl /tban [ID][Zeit][Grund]
    Genau das gleiche möchte ich über DIALOGE bei OnPlayerClickPlayer bewirken ich hab mal angefangen es funktioniert noch nicht bzw es printet kein "Erfolg" und auch keine %i (Zeit)
    hier ma der Code zu dem ganzen Kram

    Spoiler anzeigen

    new TBanZeit;
    if(dialogid == DIALOG_TBANZEITINPUT)
    {
    //DIALOG_TBANZEITINPUT

    if(!response) return 1;
    if(!strlen(inputtext)) return ShowPlayerDialog(playerid,DIALOG_TBANZEITINPUT,DIALOG_STYLE_INPUT,"Gebe eine Zeit in Minuten an:","Um den Spieler Timebannen zu können, musst du zunächst die Zeit in Minuten angeben! Minimum: 1Minute","Begründen","Abbrechen");
    TBanZeit = inputtext[129];
    printf("Zeit",TBanZeit);
    ShowPlayerDialog(playerid,DIALOG_TBANGRUNDINPUT,DIALOG_STYLE_INPUT,"Timeban Grund für den Spieler.","Gebe den Timeban Grund ein.","Grund bestätigen","Abbrechen");//SpielerName(clickedid[playerid]));
    return 1;
    }
    if(dialogid == DIALOG_TBANGRUNDINPUT)
    {
    if(!response) return 1;
    if(!strlen(inputtext)) return ShowPlayerDialog(playerid,DIALOG_TBANGRUNDINPUT,DIALOG_STYLE_INPUT,"Timeban Grund für den Spieler.","Gebe den Timeban Grund ein.","Grund bestätigen","Abbrechen");//SpielerName(clickedid[playerid]));
    SendClientMessageToAll(CL_KNALLROT,"Erfolg");
    return 1;

    }
    Spoiler anzeigen
    public OnPlayerClickPlayer(playerid, clickedplayerid, source)
    {
    if(sInfo[playerid][alevel]==0)return 1;
    new name[MAX_PLAYER_NAME];
    GetPlayerName(clickedplayerid,name,sizeof(name));
    ShowPlayerDialog(playerid,DIALOG_CLICK_FROM_ADMIN,DIALOG_STYLE_LIST,name,"Goto\nGethere\nKick\nBan\nUnban\nTimeban\nTUnban\nHealth","OK","Abbrechen");
    clickedid[playerid] = clickedplayerid;
    return 1;
    }
    if(dialogid==DIALOG_CLICK_FROM_ADMIN)
    {
    switch(listitem)
    {
    case 0:
    {//goto

    return 1;
    }
    case 1:
    {//gethere

    return 1;
    }
    case 2:
    {//Kick


    }
    case 3:
    {//ban

    }
    case 4://unban
    {
    return 1;
    }
    case 5://TBan
    {

    return ShowPlayerDialog(playerid,DIALOG_TBANZEITINPUT,DIALOG_STYLE_INPUT,"Gebe eine Zeit in Minuten an:","Um den Spieler Timebannen zu können, musst du zunächst die Zeit in Minuten angeben! Minimum: 1Minute","Bestätigen","Abbrechen");
    }
    case 6://tunban
    {
    return 1;
    }
    case 7:
    {//Heal

    return 1;
    }
    }
    return 1;
    }



    Danke im vorraus

  • printf("Zeit",TBanZeit);


    zu
    printf("Zeit %d", TBanZeit);

    Kann mir das nicht alles am Handy geben, aber ein Unban per OnPlayerClickPlayer ist schwachsinnig.
    Der Spieler ist gebannt und kann nicht auf den Server, also gibts nix zum anklicken. :thumbup:

  • ich werds ausprobieren und dann den beitrag editieren


    nun die frage welche bedeutungen haben strlen strcmp strval --->also wann benutzt man was...?


    edit ja funktioniert nicht ganz ich bekomme nach allen eingaben Die Banmeldung "(Teamrang)%s %s(adminname) timebannte %s(spielernamen) für %i(eingegebene Zeit)--->da kommt immer 0 Minuten Grund (der ist leer)


    der Code dazu


    Spoiler anzeigen
    if(dialogid == DIALOG_TBANGRUNDINPUT)
    {
    if(!response) return 1;
    if(!strlen(inputtext)) return ShowPlayerDialog(playerid,DIALOG_TBANGRUNDINPUT,DIALOG_STYLE_INPUT,"Timeban Grund für den Spieler.","Gebe den Timeban Grund ein.","Grund bestätigen","Abbrechen");//SpielerName(clickedid[playerid]));


    new pIdName[MAX_PLAYER_NAME],pName[MAX_PLAYER_NAME],reason[130],string[128];


    GetPlayerName(clickedid[playerid],pIdName,sizeof(pIdName));

    reason[128] = strlen(inputtext);
    printf("Zeit %i Grund %i",TBanZeit,reason);
    new a_level;
    a_level = sInfo[playerid][alevel];

    GetPlayerName(playerid,pName,sizeof(pName));

    format(string,sizeof(string),"[ADMCMD][TIMEBAN]: %s : %s timebannte %s für %d Minuten. Grund: %s",a_rang[a_level],pName,pIdName,TBanZeit,reason);
    SendClientMessageToAll(0xADC7E7FF,string);

    printf("AdmCmd(TIMEBAN): Admin: %s(%i) - Timebanned Player: %s(%i) - Timeban Reason: %s",pName,playerid,pIdName,clickedid[playerid],reason);

    pBanner[clickedid[playerid]] = pName;
    TBan(clickedid[playerid],TBanZeit);


    return 1;

    }

    Spoiler anzeigen
    new TBanZeit;
    if(dialogid == DIALOG_TBANZEITINPUT)
    {
    //DIALOG_TBANZEITINPUT

    if(!response) return 1;
    if(!strlen(inputtext)) return ShowPlayerDialog(playerid,DIALOG_TBANZEITINPUT,DIALOG_STYLE_INPUT,"Gebe eine Zeit in Minuten an:","Um den Spieler Timebannen zu können, musst du zunächst die Zeit in Minuten angeben! Minimum: 1Minute","Begründen","Abbrechen");
    TBanZeit = strval(inputtext);
    printf("Zeit %d", TBanZeit);
    if(TBanZeit < 1)
    {
    SendClientMessage(playerid,0xADC7E7FF,"Minimale Zeit: 1 Minute. ");
    return ShowPlayerDialog(playerid,DIALOG_TBANZEITINPUT,DIALOG_STYLE_INPUT,"Gebe eine Zeit in Minuten an:","Um den Spieler Timebannen zu können, musst du zunächst die Zeit in Minuten angeben! Minimum: 1Minute","Begründen","Abbrechen");
    }
    ShowPlayerDialog(playerid,DIALOG_TBANGRUNDINPUT,DIALOG_STYLE_INPUT,"Timeban Grund für den Spieler.","Gebe den Timeban Grund ein.","Grund bestätigen","Abbrechen");//SpielerName(clickedid[playerid]));
    return 1;
    }


    mal schauen was euch dazu einfällt

    2 Mal editiert, zuletzt von Nils24 ()

  • if(dialogid == DIALOG_TBANZEITINPUT)
    {
    //DIALOG_TBANZEITINPUT


    if(!response) return 1;
    if(!strlen(inputtext)) return ShowPlayerDialog(playerid,DIALOG_TBANZEITINPUT,DIALOG_STYLE_INPUT,"Gebe eine Zeit in Minuten an:","Um den Spieler Timebannen zu können, musst du zunächst die Zeit in Minuten angeben! Minimum: 1Minute","Begründen","Abbrechen");
    new TBanZeit = strval(inputtext);
    printf("Zeit %d", TBanZeit);
    if(TBanZeit < 1)
    {
    SendClientMessage(playerid,0xADC7E7FF,"Minimale Zeit: 1 Minute. ");
    return ShowPlayerDialog(playerid,DIALOG_TBANZEITINPUT,DIALOG_STYLE_INPUT,"Gebe eine Zeit in Minuten an:","Um den Spieler Timebannen zu können, musst du zunächst die Zeit in Minuten angeben! Minimum: 1Minute","Begründen","Abbrechen");
    }
    SetPVarInt(playerid, "TBanZeit", TBanZeit);
    ShowPlayerDialog(playerid,DIALOG_TBANGRUNDINPUT,DIALOG_STYLE_INPUT,"Timeban Grund für den Spieler.","Gebe den Timeban Grund ein.","Grund bestätigen","Abbrechen");//SpielerName(clickedid[playerid]));
    return 1;
    }


    if(dialogid == DIALOG_TBANGRUNDINPUT)
    {
    if(!response) return 1;
    if(!strlen(inputtext)) return ShowPlayerDialog(playerid,DIALOG_TBANGRUNDINPUT,DIALOG_STYLE_INPUT,"Timeban Grund für den Spieler.","Gebe den Timeban Grund ein.","Grund bestätigen","Abbrechen");//SpielerName(clickedid[playerid]));


    new pIdName[MAX_PLAYER_NAME],pName[MAX_PLAYER_NAME],string[144];


    GetPlayerName(clickedid[playerid],pIdName,sizeof(pIdName));


    new TBanZeit = GetPVarInt(playerid, "TBanZeit");
    printf("Zeit %i Grund %i",TBanZeit,inputtext);
    new a_level;
    a_level = sInfo[playerid][alevel];


    GetPlayerName(playerid,pName,sizeof(pName));


    format(string,sizeof(string),"[ADMCMD][TIMEBAN]: %s : %s timebannte %s für %d Minuten. Grund: %s",a_rang[a_level],pName,pIdName,TBanZeit,inputtext);
    SendClientMessageToAll(0xADC7E7FF,string);


    printf("AdmCmd(TIMEBAN): Admin: %s(%i) - Timebanned Player: %s(%i) - Timeban Reason: %s",pName,playerid,pIdName,clickedid[playerid],inputtext);


    pBanner[clickedid[playerid]] = pName;
    TBan(clickedid[playerid],TBanZeit);
    return 1;
    }