Quote:
Originally Posted by iPLEOMAX
Try this, i made it in few minutes. Not sure if it works:
pawn Код:
stock GetIdFromName(playername[]) //Use this stock to use names instead of ids. { for(new i=0; i<MAX_PLAYERS; i++) { if(IsPlayerConnected(i) && !IsPlayerNPC(i)) { new pname[MAX_PLAYER_NAME]; GetPlayerName(i,pname,MAX_PLAYER_NAME); if(strfind(pname,playername,true) != -1 && strlen(playername) != 0) { return i; } } } return -1; }
So, for Example you are going to give cash to someone:
pawn Код:
dcmd_givecash( playerid, params[ ] ) { if(IsPlayerAdmin(playerid)) { new string[26], mny; if(!sscanf(params,"s[26]i",string,mny)) { if(IsPlayerConnected(rplayer)) { new giveplayerid; giveplayerid = GetIdFromName(string);
new pname[MAX_PLAYER_NAME], tomsg[60]; GetPlayerName(playerid, pname, sizeof(pname));
format(tomsg,sizeof(tomsg),"Admin %s gave you %i $!",pname,mny);
GivePlayerMoney(giveplayerid , mny);
SendClientMessage(giveplayerid, COLOR_GREEN, tomsg);
} else return SendClientMessage(playerid, COLOR_RED, "Player is not connected."); } else return SendClientMessage(playerid, COLOR_RED, "Usage: /givecash [ part of name ] [ amount ]"); } else SendClientMessage(playerid, COLOR_RED, "You are not an admin!"); return true; }
This should work. but UNTESTED. xD
|
I tryed the command that you gave me, and it works perfectly. But, to find myself in all my commands, I little changed it, and the copilation works.
It's that :
pawn Код:
dcmd_cash(playerid, params[])
{
new id, string[26], ammount;
if (sscanf(params, "s[26]i", string, ammount))
return SendClientMessage(playerid, 0xFF9900, "Utilisation: \"/Cash <player name> <ammount>\"");
if (!IsPlayerAdmin(playerid))
return SendClientMessage(playerid, 0xFF0000AA, "You are not admin");
id = GetPlayerID(string);
if (!IsPlayerConnected(id))
{
new pname[MAX_PLAYER_NAME], tomsg[100], adminmsg[100];
GetPlayerName(playerid, pname, sizeof(pname));
format(tomsg, sizeof(tomsg), "Admin %s gave you %i $ !", pname, ammount);
GivePlayerMoney(id , ammount);
SendClientMessage(id, 0xFFFF00AA, tomsg);
format(adminmsg, sizeof(adminmsg), "You gave %i $ to %s !", ammount, id);
SendClientMessage(playerid, 0xFFFF00AA, adminmsg);
}
else return SendClientMessage(playerid, 0xFF0000AA, "Player not found");
return true;
}
But, if I enter a part of name or a complete name, the command returns "player not found".
How to fix that please ?
Thx =)