Abend, ziel ist es, dass wenn ich beispielsweise "/id eter" eingebe und ein Spieler Namens "Peter" auf dem Server ist
er angezeigt wird. Wenn nun auch noch ein Spieler Namens "Kreter" auf dem Server ist sollte dieser Spieler ebenfalls angezeigt werden.
Mein Ansatz:
if(strcmp(cmd, "/id", true) == 0)
{
if(IsPlayerConnected(playerid))
{
tmp = strtok(cmdtext, idx);
if(!strlen(tmp))
{
SendClientMessage(playerid,COLOR_DBLUE, "nutze: /id [id/spielername]");
return 1;
}
for(new i = 0; i < MAX_PLAYERS; i++)
{
new name[65];
name = SpielerName(i);
if(strfind(name,cmdtext,true) != -1)
{
format(string, sizeof(string), "ID: (%d) %s, Level: %d",i,name,SpielerInfo[i][pLevel]);
SendClientMessage(playerid, COLOR_GRAD1, string);
}
}
}
return 1;
}
#Edit:
Hab nun geschafft, dass ich ein Teil des Namens eingeben kann und alle die einen solchen Teil im Namen haben werden angezeigt, allerdings ist mein Problem nun, dass ich altanativ trotzdem noch gern zB. /id 1 eingebe möchte.
Wie füg ich das nun ein?
if(strcmp(cmd, "/id", true) == 0)
{
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_DBLUE, "* NUTZE: /id [{C80000}id/spielername{2641FE}]");
return 1;
}
if(strlen(result) < 3)
{
SendClientMessage(playerid,COLOR_GREY, "* INFO: Mindestens 3 Buchstaben!");
return 1;
}
for(new i = 0; i < MAX_PLAYERS; i++)
{
new name[65];
name = SpielerName(i);
//if(strfind(text,SchimpfWort[i],true) != -1)
if(strfind(name,(result),true) != -1)
{
format(string, sizeof(string), "ID: (%d) %s, Level: %d",i,name,SpielerInfo[i][pLevel]);
SendClientMessage(playerid, COLOR_GRAD1, string);
}
}
return 1;
}
Gruß
Joe