@Music4You:
Das würde zu Fehlern kommen, wenn der Spieler im Dialog ist und gleichzeitig wer anders im Dialog ist und dann würde der andere die ID vom anderen übernehmen 
Deshalb muss man das nochmal Spielerspezifisch machen, sprich so:
new nameid[MAX_PLAYERS char];//oben im script.
ocmd:kick(playerid,params[])
{
new pID, reason[128], string[128];
if(sscanf(params,"us",pID,reason))return SendClientMessage(playerid,Red,"Eingabe: /kick [ID] [Grund]");
format(string,sizeof(string),"%s hat %s gekickt! Grund: %s",SpielerName(playerid),SpielerName(pID),reason);
SendClientMessageToAll(Red,string);
ShowPlayerDialog(playerid,DIALOG_KICK,DIALOG_STYLE_MSGBOX,"Kick","Möchtest du den Spieler wirklich kicken?","Ja","Nein");
nameid{playerid}=pID;
return 1;
}
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
if(dialogid == DIALOG_KICK) {
if(!response) return SendClientMessage(playerid,Red,"Du hast den Vorgang abgebrochen!"),nameid{playerid}=0;
return Kick(nameid{playerid});
}
return 1;
}
mfg. 