Du musst den eingegebenen Name auslesen und die ID des Namens nutzen.
case DIALOG_MEDICC:
{
if(response)
{
new string[145], pID = ReturnPlayerID(inputtext);
if(!IsPlayerConnected(pID))
{
SendClientMessage(playerid, COLOR_GREY, "Dieser Spieler ist nicht eingeloggt.");
return 1;
}
if(IsPlayerNPC(pID))
{
SendClientMessage(playerid, COLOR_GREY, "Das ist kein Spieler, der eingeladene ist ein NPC(Bot).");
return 1;
}
if(Spieler[pID][pFraktion] > 0)
{
format(string, sizeof(string), "Der Spieler ist in einer Fraktion:", playerid);
ShowPlayerDialog(playerid, DIALOG_MEDICC, DIALOG_STYLE_INPUT, "Contropanel: Spieler Invite", string, "Einladen", "Zurück");
return 1;
}
if(Spieler[pID][pLevel] < 3)
{
SendClientMessage(playerid, COLOR_GREY, "Der Spieler ist unter Level 3.");
return 1;
}
if(Spieler[pID][pFraktion] > 1)
{
SendClientMessage(playerid, COLOR_GREY, "Der Spieler ist bereits in einer Fraktion");
return 1;
}
format(string, sizeof(string), COLOR_HEX_WHITE"Du wurdest von %s in die Fraktion %s eingeladen.\nKlicke auf "COLOR_HEX_GREEN"Annehmen"COLOR_HEX_WHITE" oder "COLOR_HEX_GREEN"Ablehnen"COLOR_HEX_WHITE".", GetName(playerid), GetFraktionName(Spieler[playerid][pFraktion]));
ShowPlayerDialog(pID, DIALOG_INVITE, DIALOG_STYLE_MSGBOX, "Fraktions Einladung", string, "Annehmen", "Ablehnen");
Spieler[pID][pAcceptInvite] = Spieler[playerid][pFraktion];
format(string, sizeof(string), "Du hast %s in die Fraktion eingeladen.", GetName(pID));
SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
return 1;
}
if(!response)return cmd_controlfrak(playerid);
}
Unten im Code:
stock ReturnPlayerID(l_PlayerName[]) //©Jeffry
{
new l_name[MAX_PLAYER_NAME];
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(GetPlayerName(i, l_name, MAX_PLAYER_NAME))
{
if(!strcmp(l_name,l_PlayerName, true)) return i;
}
}
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(GetPlayerName(i, l_name, MAX_PLAYER_NAME))
{
if(strfind(l_name,l_PlayerName,true)!=-1) return i;
}
}
return INVALID_PLAYER_ID;
}