22.01.2012, 20:17
Sure can! Take a look at my /give command as a reference.
pawn Code:
CMD:give(playerid, params[])
{
new
user,
string[128],
weaponname[32],
amount,
Float:Pos[3]
;
if(isnull(params))
{
SendClientMessage(playerid, COLOR_WHITE, "[AVAILABLE ITEM NAMES]");
//Items
if(GetPlayerCash(playerid) > 0) { SendClientMessage(playerid, COLOR_LIME, "* Money"); }
if(GetPlayerWeapon(playerid) != 0) { SendClientMessage(playerid, COLOR_LIME, "* Weapon"); }
if(UserInfo[playerid][Sunglasses] == 1 && UserInfo[playerid][SunglassesType] != 0) { SendClientMessage(playerid, COLOR_LIME, "* Sunglasses"); }
//Food
if(UserInfo[playerid][Pizza] > 0) { SendClientMessage(playerid, COLOR_LIME, "* Pizza Slice"); }
if(UserInfo[playerid][Soda] > 0) { SendClientMessage(playerid, COLOR_LIME, "* Soda"); }
if(UserInfo[playerid][Doughnuts] > 0) { SendClientMessage(playerid, COLOR_LIME, "* Doughnut"); }
//Ammo
if(UserInfo[playerid][ExplosiveAmmo] > 0) { SendClientMessage(playerid, COLOR_LIME, "* ExplosiveAmmo"); }
if(UserInfo[playerid][TazerDarts] > 0) { SendClientMessage(playerid, COLOR_LIME, "* TazerDart"); }
SendClientMessage(playerid, COLOR_CMD, "Correct Usage: /Give [Item Name] [Player ID] [Amount]");
return 1;
}
if(strcmp(params, "money", true, 5) == 0) {
strdel(params, 0, 5);
if(sscanf(params, "ui", user, amount))
return SendClientMessage(playerid, COLOR_CMD, "Correct Usage: /Give Money [Player ID] [Amount]");
new
name[24],
uname[24]
;
GetPlayerNameEx(playerid, name, 24);
GetPlayerNameEx(user, uname, 24);
GetPlayerPos(playerid, Pos[0], Pos[1], Pos[2]);
if(IsPlayerInRangeOfPoint(user, 5, Pos[0], Pos[1], Pos[2]))
{
if(GetPlayerCash(playerid) >= amount)
{
if(user == playerid)
return SendClientMessage(playerid, COLOR_ERROR, "< You cannot give yourself money!");
format(string, sizeof(string), "* %s hands %s some money.", name, uname);
ProxDetector(20.0, playerid, string, COLOR_ACTION, COLOR_ACTION, COLOR_ACTION, COLOR_ACTION, COLOR_ACTION);
format(string, sizeof(string), "* You have given %s $%d.", uname, amount);
SendClientMessage(playerid, COLOR_SUCCESSFUL, string);
format(string, sizeof(string), "* %s has given you $%d.", name, amount);
SendClientMessage(user, COLOR_SUCCESSFUL, string);
GivePlayerCash(playerid, -amount);
GivePlayerCash(user, amount);
}
else return SendClientMessage(playerid, COLOR_ERROR, "< You do not have enough money!");
}
else return SendClientMessage(playerid, COLOR_ERROR, "< You're not close enough to that player!");
}
else if(strcmp(params, "weapon", true, 6) == 0) {
strdel(params, 0, 6);
new
name[24],
uname[24],
gunname[42]
;
GetPlayerPos(playerid, Pos[0], Pos[1], Pos[2]);
if(sscanf(params, "us[32]", user, weaponname))
return SendClientMessage(playerid, COLOR_CMD, "Correct Usage: /Give Weapon [Player ID] [Weapon Name]");
if(GetWeaponModelIDFromName(weaponname) == GetPlayerWeapon(playerid))
{
/*if(user == playerid)
return SendClientMessage(playerid, COLOR_ERROR, "< You can't give something to yourself!");*/
if(IsPlayerInRangeOfPoint(user, 5, Pos[0], Pos[1], Pos[2]))
{
new Ammo;
if(expAmmo[playerid] == -1)
{
Ammo = GetPlayerAmmo(playerid);
}
else
{
Ammo = UserInfo[playerid][w_TempAmmo];
}
GivePlayerWeapon(user, GetWeaponModelIDFromName(weaponname), Ammo);
GivePlayerWeapon(playerid, GetWeaponModelIDFromName(weaponname), -Ammo);
GetWeaponName(GetWeaponModelIDFromName(weaponname), gunname, 42);
GetPlayerNameEx(playerid, name, 24);
GetPlayerNameEx(user, uname, 24);
format(string, sizeof(string), "* %s hands %s a %s.", name, uname, gunname);
ProxDetector(20.0, playerid, string, COLOR_ACTION, COLOR_ACTION, COLOR_ACTION, COLOR_ACTION, COLOR_ACTION);
if(UserInfo[playerid][w_TempAmmo] != 0)
{
UserInfo[playerid][w_TempAmmo] = 0;
expAmmo[playerid] = -1;
}
}
else return SendClientMessage(playerid, COLOR_ERROR, "< You're not close enough to that player!");
}
else return SendClientMessage(playerid, COLOR_ERROR, "< You can't give someone a weapon you don't have!");
}
return 1;
}