@Poster oben: Weder noch gibt wirklich Sinn, ich würde da mal gerne sehen wir ihr die jeweilige Ansicht im Code vertreten würdet, so dass es auch funktioniert.
--------------------------------------
Im enum hinzufügen:
pToBanID,
pToBanID[128],
Diese brauchen wir, um später die Informationen zu speichern.
Definieren:
#define BAN_DIALOG 1337
Der Command:
ocmd:ban(playerid,params[])
{
new pID, grund[128],string[128];
if(!IsPlayerAnAdmin(playerid,4))return SendClientMessage(playerid,FRot,"[ERROR:] Server unknow command ['/ban'], use '/help' .");
if(sscanf(params,"us",pID,grund))return SendClientMessage(playerid,FGrau,"Fehler: benutze /ban [ID] [Grund]");
if(!IsPlayerConnected(pID))return SendClientMessage(playerid,FGrau,"Fehler: Dieser spieler ist nicht online !");
if(IsPlayerNPC(pID))return SendClientMessage(playerid,FGrau,"Fehler: Du kannst keine NPCs bannen !");
if(pID == playerid)return SendClientMessage(playerid,FGrau,"Fehler: Du kannst dich nicht selber bannen!");
if(!IsPlayerAnAdmin(pID,6))
{
if(IsPlayerAnAdmin(pID,5))return SendClientMessage(playerid,FGrau,"Fehler: Du darfst keine admins bannen die über admin level 5 sind!");
}
format(string,sizeof(string),"Bis du sicher, dass du %s [ID: %d]\nmit dem Grund %s\nbannen willst?",pName[pID],pID,grund);
SpielerInfo[playerid][pToBanID] = pID; //Hier speichern wir die eingegebene ID.
SpielerInfo[playerid][pToBanID] = grund; //Hier speichern wir den eingegebenen Grund.
ShowPlayerDialog(playerid, BAN_DIALOG, DIALOG_STYLE_MSGBOX, "Bestätige:", string, "Ban!", "Abbrechen");
return 1;
}
OnDialogResponse:
if(dialogid == BAN_DIALOG && response == 1)
{
new pID, grund[128],string[128];
pID= SpielerInfo[playerid][pToBanID]; //Hier laden wir die ID
grund = SpielerInfo[playerid][pToBanGrund]; //Hier laden wir den Grund
if(!IsPlayerAnAdmin(playerid,4))return SendClientMessage(playerid,FRot,"[ERROR:] Server unknow command ['/ban'], use '/help' .");
if(!IsPlayerConnected(pID))return SendClientMessage(playerid,FGrau,"Fehler: Dieser spieler ist nicht online !");
if(IsPlayerNPC(pID))return SendClientMessage(playerid,FGrau,"Fehler: Du kannst keine NPCs bannen !");
if(pID == playerid)return SendClientMessage(playerid,FGrau,"Fehler: Du kannst dich nicht selber bannen!");
if(!IsPlayerAnAdmin(pID,6))
{
if(IsPlayerAnAdmin(pID,5))return SendClientMessage(playerid,FGrau,"Fehler: Du darfst keine admins bannen die über admin level 5 sind!");
}
format(string,sizeof(string),"[SERVER:] %s [ID: %d] has been banned from the server ! Reason: %s",pName[pID],pID,grund);
SendClientMessageToAll(FRot,string);
SpielerInfo[pID][pGebannt] = 1;
SpielerInfo[pID][pAdmin] = 0;
mysql_SetString("accounts", "GebanntGrund", grund ,"Name", pName[pID]);
Kick(pID);
return 1;
}
Sollte verständlich sein, ist ja größtenteils eh dein Code, nur leicht verdreht. Ich gehe aber mal davon aus, dass es hier nicht nötig ist viel zu erklären, da der Code für sich selbst spricht.
Falls was unklar ist, kannst du ja fragen.