Bann System mit Dialog um scripten

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 habe einen Ban System was mit dem Designe *doof* aussieht. Wenn man jemanden bannt bekommt der Gebannte einfach eine Nachricht.
    Doch ich will das er einen Dialog bekommt.


    Bei Permban soll dies kommen (so in der Art)


    Bei einem Timeban soll zwar das gleiche kommen aber anstatt die Gebannte IP soll die Zeit stehen wie lange man noch gebannt ist zbs wenn dort jetzt 1Stunde steht und ich habe 30Minuten davon abgegammelt soll danach wenn man wieder versucht rein zu kommen anstatt 1 Stunde noch 30Minuten stehen also so was ein Timer im Dialog.


    Ich persönlich kann sowas überhaupt garnicht deshalb wollte ich nacht fragen.


    Mein Bann System:



    new year, month,day;
    getdate(year, month, day);
    format(string, sizeof(string), "AdminSystem: %s wurde von %s gebannt, Grund: %s (%d-%d-%d)", giveplayer, sendername, (result),month,day,year);
    BanLog(string);
    format(string, sizeof(string), "AdminSystem: %s wurde von %s gebannt, Grund: %s", giveplayer, sendername, (result));
    SendClientMessageToAll(0xFF6347AA, string);
    PlayerInfo[giveplayerid][pAdmin] = 0;
    PlayerInfo[giveplayerid][pBanned] = 1;
    SendClientMessage(giveplayerid, COLOR_RED,"|=====================================|BAN|=====================================|");
    SendClientMessage(giveplayerid, COLOR_YELLOW," ZU UNRECHT ODER DOCH ZU RECHT GEBANNT?!?!?!??!?! ");
    SendClientMessage(giveplayerid, COLOR_WHITE,"Du wurdest gerade von einen Supporter/Admin gebannt, da du einen Regelnbruch begannen hast!");
    SendClientMessage(giveplayerid, COLOR_WHITE,"Der Supporter/Admin wird seinen Gründe gehabt haben, dich zu bannen!");
    SendClientMessage(giveplayerid, COLOR_WHITE,"Falls du aber nicht damit einverstanden bist oder zu unrecht gebannt wurdest, mach bitte folgendes:");
    SendClientMessage(giveplayerid, COLOR_WHITE,"1.)Mach einen Screen mit der Taste 'F8' !");
    SendClientMessage(giveplayerid, COLOR_WHITE,"2.)Gehe ins Forum und mach einen Thread unter Entbann Antrag auf!");
    SendClientMessage(giveplayerid, COLOR_WHITE,"3.)Lade deinen Screen bei www.pic-upload.de hoch und poste denn dann mit[url]www.dein link.de[/url]");
    SendClientMessage(giveplayerid, COLOR_WHITE,"Mit Freundlichen Grüßen: Das German Reality Team");
    Ban(giveplayerid);
    return 1;


    Also da kommt halt nur so eine Nachricht und was will ich irgendwie nicht :rolleyes:

  • Beitrag von Iven. ()

    Dieser Beitrag wurde von Trooper[Y] gelöscht ().
  • @FineTime


    zwar noch nicht ausgetestet aber ist dies so richtig formuliert ShowPlayerDialog(playerid, DIALOG_WELCOME, DIALOG_STYLE_MSGBOX, "Gebannt", "Name: %s\nDauer: %d\n Gebannte IP: %d\n Grund: %d\nAusführender Admin: %s\n ", "Verlassen", "");


    Und wenn es sogar richtig ist wie&wo muss man dies einfügen?

    • Offizieller Beitrag

    Ne ist falsch, wenn du parameter angeben möchtest musst du einen String formatieren also so:



    new string[256]:
    format(string, sizeof(string), "Name: %s\nDauer: %d\n Gebannte IP: %d\n Grund: %d\nAusführender Admin: %s\n", PARAMETER ANGEBEN!);
    ShowPlayerDialog(playerid, DIALOG_WELCOME, DIALOG_STYLE_MSGBOX, "Gebannt", string, "Verlassen", "");

  • Also muss danach sowas hin oder wie giveplayer, sendername, (result),month,day,year);


    Weil mein System ja so aussieht.
    } new year, month,day; getdate(year, month, day); format(string, sizeof(string), "AdminSystem: %s wurde von %s gebannt, Grund: %s (%d-%d-%d)", giveplayer, sendername, (result),month,day,year); BanLog(string); format(string, sizeof(string), "AdminSystem: %s wurde von %s gebannt, Grund: %s", giveplayer, sendername, (result)); SendClientMessageToAll(0xFF6347AA, string); PlayerInfo[giveplayerid][pAdmin] = 0; PlayerInfo[giveplayerid][pBanned] = 1; SendClientMessage(giveplayerid, COLOR_RED,"|=====================================|BAN|=====================================|"); SendClientMessage(giveplayerid, COLOR_YELLOW," ZU UNRECHT ODER DOCH ZU RECHT GEBANNT?!?!?!??!?! "); SendClientMessage(giveplayerid, COLOR_WHITE,"Du wurdest gerade von einen Supporter/Admin gebannt, da du einen Regelnbruch begannen hast!"); SendClientMessage(giveplayerid, COLOR_WHITE,"Der Supporter/Admin wird seinen Gründe gehabt haben, dich zu bannen!"); SendClientMessage(giveplayerid, COLOR_WHITE,"Falls du aber nicht damit einverstanden bist oder zu unrecht gebannt wurdest, mach bitte folgendes:"); SendClientMessage(giveplayerid, COLOR_WHITE,"1.)Mach einen Screen mit der Taste 'F8' !"); SendClientMessage(giveplayerid, COLOR_WHITE,"2.)Gehe ins Forum und mach einen Thread unter Entbann Antrag auf!"); SendClientMessage(giveplayerid, COLOR_WHITE,"3.)Lade deinen Screen bei www.pic-upload.de hoch und poste denn dann mit[url]www.dein link.de[/url]"); SendClientMessage(giveplayerid, COLOR_WHITE,"Mit Freundlichen Grüßen: Das German Reality Team"); Ban(giveplayerid); return 1; } }//not connected


    Und muss anstatt SendClientMessage(giveplayerid, COLOR_RED,"|=====================================|BAN|=====================================|"); SendClientMessage(giveplayerid, COLOR_YELLOW," ZU UNRECHT ODER DOCH ZU RECHT GEBANNT?!?!?!??!?! "); SendClientMessage(giveplayerid, COLOR_WHITE,"Du wurdest gerade von einen Supporter/Admin gebannt, da du einen Regelnbruch begannen hast!"); SendClientMessage(giveplayerid, COLOR_WHITE,"Der Supporter/Admin wird seinen Gründe gehabt haben, dich zu bannen!"); SendClientMessage(giveplayerid, COLOR_WHITE,"Falls du aber nicht damit einverstanden bist oder zu unrecht gebannt wurdest, mach bitte folgendes:"); SendClientMessage(giveplayerid, COLOR_WHITE,"1.)Mach einen Screen mit der Taste 'F8' !"); SendClientMessage(giveplayerid, COLOR_WHITE,"2.)Gehe ins Forum und mach einen Thread unter Entbann Antrag auf!"); SendClientMessage(giveplayerid, COLOR_WHITE,"3.)Lade deinen Screen bei www.pic-upload.de hoch und poste denn dann mit[url]www.dein link.de[/url]"); SendClientMessage(giveplayerid, COLOR_WHITE,"Mit Freundlichen Grüßen: Das German Reality Team");


    und format(string, sizeof(string), "AdminSystem: %s wurde von %s gebannt, Grund: %s (%d-%d-%d)", giveplayer, sendername, (result),month,day,year);


    dies hier einfügen:


    new string[256]:format(string, sizeof(string), "Name: %s\nDauer: %d\n Gebannte IP: %d\n Grund: %d\nAusführender Admin: %s\n", PARAMETER ANGEBEN!);ShowPlayerDialog(playerid, DIALOG_WELCOME, DIALOG_STYLE_MSGBOX, "Gebannt", string, "Verlassen", "");


    also müsste dies als ende so aussehen:
    new year, month,day; getdate(year, month, day); format(string, sizeof(string), "Name: %s\nDauer: %d\n Gebannte IP: %d\n Grund: %d\nAusführender Admin: %s\n", , giveplayer, sendername, (result),month,day,year); ShowPlayerDialog(playerid, DIALOG_WELCOME, DIALOG_STYLE_MSGBOX, "Gebannt", string, "Verlassen", ""); BanLog(string); format(string, sizeof(string), "AdminSystem: %s wurde von %s gebannt, Grund: %s", giveplayer, sendername, (result)); SendClientMessageToAll(0xFF6347AA, string); PlayerInfo[giveplayerid][pAdmin] = 0; PlayerInfo[giveplayerid][pBanned] = 1; Ban(giveplayerid); return 1; } }//not connected


    Hoffe habe dies jetzt richtig formuliert aber bin mir selber nicht sicher ob das so sein muss


  • if(strcmp(cmd, "/ban", true) == 0)
    {
    if(IsPlayerConnected(playerid))
    {
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp))
    {
    SendClientMessage(playerid, COLOR_GRAD2, "FEHLER: /ban [playerid] [grund]");
    return 1;
    }
    giveplayerid = ReturnUser(tmp);
    if (PlayerInfo[playerid][pAdmin] >= 1)
    {
    if(IsPlayerConnected(giveplayerid))
    {
    if(giveplayerid != INVALID_PLAYER_ID)
    {
    GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
    GetPlayerName(playerid, sendername, sizeof(sendername));
    new length = strlen(cmdtext);
    while ((idx < length) && (cmdtext[idx] <= ' '))
    {
    idx++;
    }
    new offset = idx;
    new result[64];
    while ((idx < length) && ((idx - offset) < (sizeof(result) - 1)))
    {
    result[idx - offset] = cmdtext[idx];
    idx++;
    }
    result[idx - offset] = EOS;
    if(!strlen(result))
    {
    SendClientMessage(playerid, COLOR_GRAD2, "FEHLER: /ban [playerid] [grund]");
    return 1;
    }
    if(PlayerInfo[giveplayerid][pAdmin] > PlayerInfo[playerid][pAdmin])
    {
    SendClientMessage(playerid, COLOR_GRAD2, "Du kannst diesen Spieler nicht bannen, da er ein höheres Adminlevel hat als du!");
    return 1;
    }
    new year, month,day;
    getdate(year, month, day);
    format(string, sizeof(string), "AdminSystem: %s wurde von %s gebannt, Grund: %s (%d-%d-%d)", giveplayer, sendername, (result),month,day,year);
    BanLog(string);
    format(string, sizeof(string), "AdminSystem: %s wurde von %s gebannt, Grund: %s", giveplayer, sendername, (result));
    SendClientMessageToAll(0xFF6347AA, string);
    PlayerInfo[giveplayerid][pAdmin] = 0;
    PlayerInfo[giveplayerid][pBanned] = 1;
    SendClientMessage(giveplayerid, COLOR_RED,"|=====================================|BAN|=====================================|");
    SendClientMessage(giveplayerid, COLOR_YELLOW," ZU UNRECHT ODER DOCH ZU RECHT GEBANNT?!?!?!??!?! ");
    SendClientMessage(giveplayerid, COLOR_WHITE,"Du wurdest gerade von einen Supporter/Admin gebannt, da du einen Regelnbruch begannen hast!");
    SendClientMessage(giveplayerid, COLOR_WHITE,"Der Supporter/Admin wird seinen Gründe gehabt haben, dich zu bannen!");
    SendClientMessage(giveplayerid, COLOR_WHITE,"Falls du aber nicht damit einverstanden bist oder zu unrecht gebannt wurdest, mach bitte folgendes:");
    SendClientMessage(giveplayerid, COLOR_WHITE,"1.)Mach einen Screen mit der Taste 'F8' !");
    SendClientMessage(giveplayerid, COLOR_WHITE,"2.)Gehe ins Forum und mach einen Thread unter Entbann Antrag auf!");
    SendClientMessage(giveplayerid, COLOR_WHITE,"3.)Lade deinen Screen bei www.abload.de hoch und poste denn dann mit[url]www.dein link.de[/url]");
    SendClientMessage(giveplayerid, COLOR_WHITE,"Mit Freundlichen Grüßen: Das German Elite Reallife Team");
    Ban(giveplayerid);
    return 1;
    }
    }//not connected
    }
    else
    {
    format(string, sizeof(string), " %d ist kein aktiver Spieler.", giveplayerid);
    SendClientMessage(playerid, COLOR_GRAD1, string);
    }
    }
    return 1;
    }

    • Offizieller Beitrag

    So würde es gehen

    new string[256], GiveIP[16];
    GetPlayerIp(giveplayerid, GiveIP, sizeof(GiveIP));
    format(string, sizeof(string), "Name: %s\nDauer: Permantent\n Gebannte IP: %d\n Grund: %d\nAusführender Admin: %s\n", giveplayer, GiveIP, result, sendername);
    ShowPlayerDialog(playerid, DIALOG_WELCOME, DIALOG_STYLE_MSGBOX, "Gebannt", string, "Verlassen", "");
    BanLog(string);
    format(string, sizeof(string), "AdminSystem: %s wurde von %s gebannt, Grund: %s", giveplayer, sendername, result);
    SendClientMessageToAll(0xFF6347AA, string);
    PlayerInfo[giveplayerid][pAdmin] = 0;
    PlayerInfo[giveplayerid][pBanned] = 1;
    Ban(giveplayerid);
    return 1;

  • @Whice.


    C:\Users\korha\Desktop\German Reality\gamemodes\German-Reality.pwn(44869) : warning 219: local variable "string" shadows a variable at a preceding level
    C:\Users\korha\Desktop\German Reality\gamemodes\German-Reality.pwn(44872) : error 017: undefined symbol "DIALOG_WELCOME"
    C:\Users\korha\Desktop\German Reality\gamemodes\German-Reality.pwn(44881) : warning 225: unreachable code
    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    1 Error.

  • @The Sensei


    ok error ist weg
    aber jetzt Warnings



    C:\Users\korha\Desktop\German Reality\gamemodes\German-Reality.pwn(44870) : warning 219: local variable "string" shadows a variable at a preceding level
    C:\Users\korha\Desktop\German Reality\gamemodes\German-Reality.pwn(44881) : warning 225: unreachable code
    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase


    Header size: 14828 bytes
    Code size: 2689360 bytes
    Data size: 16487044 bytes
    Stack/heap size: 32768 bytes; estimated max. usage: unknown, due to recursion
    Total requirements:19224000 bytes


    2 Warnings.

  • @The Sensei


    ok error ist weg
    aber jetzt Warnings


    C:\Users\korha\Desktop\German Reality\gamemodes\German-Reality.pwn(44870) : warning 219: local variable "string" shadows a variable at a preceding levelC:\Users\korha\Desktop\German Reality\gamemodes\German-Reality.pwn(44881) : warning 225: unreachable codePawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhaseHeader size: 14828 bytesCode size: 2689360 bytesData size: 16487044 bytesStack/heap size: 32768 bytes; estimated max. usage: unknown, due to recursionTotal requirements:19224000 bytes2 Warnings.

    benenn deine Variable string um in z.B. text

  • @The Sensei


    ok habe ich jetzt kam das


    C:\Users\korha\Desktop\German Reality\gamemodes\German-Reality.pwn(44881) : warning 225: unreachable code
    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase


    Header size: 14828 bytes
    Code size: 2689360 bytes
    Data size: 16487044 bytes
    Stack/heap size: 32768 bytes; estimated max. usage: unknown, due to recursion
    Total requirements:19224000 bytes


    1 Warning.

  • Beitrag von Iven. ()

    Dieser Beitrag wurde von Trooper[Y] gelöscht ().
    • Offizieller Beitrag

    Junge wenn du zu Unfähig bist nach ShowPlayerDialog zu Googlen hör auf zu Scripten wenn ich das schon wieder sehe


    C:\Users\korha\Desktop\German Reality\gamemodes\German-Reality.pwn(44872) : error 017: undefined symbol "DIALOG_WELCOME"


    Und du fragst auch noch `? Sachmal gehts dir noch gut ?

    Das Forum ist dazu da Anfängern und Fortgeschrittenen zu helfen und nicht um irgendjemanden fertig zu machen...