CMD:weaps(playerid, params[])
{
if(Player[playerid][Level] >= 3 || Player[playerid][VIP] >= 7)
{
new pID, CountW, x, WeapName[24], slot, weap, ammo, CountP = 0; Str[0] = '\0'; Str2[0] = '\0';
new Str4[50] = "{00BBF6}Name\t{00BBF6}Weapon\t{00BBF6}Ammo";
//----------------------------------------------------------------------
if(sscanf(params, "u", pID))
{
foreach(new l : Player)
{
new weapons[2][4];
GetPlayerWeaponData(l, 7, weapons[1][0], weapons[1][1]);
GetPlayerWeaponData(l, 8, weapons[1][2], weapons[1][3]);
if(weapons[1][2] == 16)
{
format(Str, 2024, "{00FF00}%s {00BBF6}(ID:%d) \t{00FF00}Grenades \t{FF0000}%d\n%s", ReturnName(l), l, weapons[1][3], Str);
CountP++;
}
//--------------------------------------------------------------
else if(weapons[1][2] == 18)
{
format(Str, 2024, "{00FF00}%s {00BBF6}(ID:%d) \t{00FF00}Molotovs \t{FF0000}%d\n%s", ReturnName(l), l, weapons[1][3], Str);
CountP++;
}
//--------------------------------------------------------------
if(weapons[1][0] == 35)
{
format(Str, 2024, "{00FF00}%s {00BBF6}(ID:%d) \t{00FF00}Rocket Launcher \t{FF0000}%d\n%s", ReturnName(l), l, weapons[1][1], Str);
CountP++;
}
//--------------------------------------------------------------
else if(weapons[1][0] == 36)
{
format(Str, 2024, "{00FF00}%s {00BBF6}(ID:%d) \t{00FF00}Heat Seeker \t{FF0000}%d\n%s", ReturnName(l), l, weapons[1][1], Str);
CountP++;
}
//--------------------------------------------------------------
else if(weapons[1][0] == 37)
{
format(Str, 2024, "{00FF00}%s {00BBF6}(ID:%d) \t{00FF00}FlameThrower \t{FF0000}%d\n%s", ReturnName(l), l, weapons[1][1], Str);
CountP++;
}
}
new Str3[100];
format(Str3, 300, "%s\n%s", Str4, Str);
if(CountP == 0) return SendClientMessage(playerid, 0xFF0000AA, "USAGE: {49FFFF}/weaps [ID]");
//--------------------------------------------------------------------------
else return ShowPlayerDialog(playerid, 123, DIALOG_STYLE_TABLIST_HEADERS, "{BBFF00}Players with {00BBF6}Big Weapons", Str3, "Close", ""), SendCommandToAdmins(playerid, "Weaps");
}
Str[0] = '\0'; Str2[0] = '\0';
//----------------------------------------------------------------------
if(IsPlayerConnected(pID) && pID != INVALID_PLAYER_ID)
{
format(Str, 128, "%s's Weapons:", ReturnName(pID)), SendClientMessage(playerid, 0x00FF00AA, Str);
//------------------------------------------------------------------
for(slot = 0; slot < 14; slot++)
{
GetPlayerWeaponData(pID, slot, weap, ammo);
//--------------------------------------------------------------
if(ammo != 0 && weap != 0) CountW++;
}
if(CountW < 1) SendClientMessage(playerid, 0x00FF00AA, "This player don't have Weapons!");
//------------------------------------------------------------------
if(CountW >= 1)
{
for(slot = 0; slot < 14; slot++)
{
GetPlayerWeaponData(pID, slot, weap, ammo); SendCommandToAdmins(playerid, "Weaps");
//----------------------------------------------------------
if(ammo != 0 && weap != 0)
{
GetWeaponName(weap, WeapName, sizeof(WeapName));
//------------------------------------------------------
if(ammo == 65535 || ammo == 1) format(Str2, 128, "%s%s (1)", Str2, WeapName);
else format(Str2, 128, "%s%s (%d)", Str2, WeapName, ammo); x++;
//------------------------------------------------------
if(x >= 5)
{
SendClientMessage(playerid, 0x00FF00AA, Str2); x = 0; format(Str2, 128, "");
}
else format(Str2, 128, "%s, ", Str2);
}
}
//--------------------------------------------------------------
if(x <= 4 && x > 0)
{
Str2[strlen(Str2)-3] = '.'; SendClientMessage(playerid, 0x00FF00AA, Str2);
}
}
//------------------------------------------------------------------
return 1;
}
//----------------------------------------------------------------------
else return ERROR_NotConnected(playerid);
}
else return ErrorMessages(playerid, 4);
}
GetWeaponNameEx(weaponid, weapon[], len = sizeof(weapon))
{
switch(weaponid)
{
case 18: return strcat(weapon, "Molotovs", len);
case 44: return strcat(weapon, "Night Vision Goggles", len);
case 45: return strcat(weapon, "Thermal Goggles", len);
default: return GetWeaponName(weaponid, weapon, len);
}
return false;
}
CMD:weaps(playerid, params[])
{
if(Player[playerid][Level] < 3 || Player[playerid][VIP] < 7) ErrorMessages(playerid, 4);
else
{
new pID;
sscanf(params, "U(-1)", pID);
if(pID == INVALID_PLAYER_ID) ERROR_NotConnected(playerid);
else
{
new CountW;
static strTemp[220],strDest[220 char],strWeap[5500 char],weap[2][2];
if(pID == -1)
{
strWeap = !"{00BBF6}Name\t{00BBF6}Weapon\t{00BBF6}Ammo\n";
foreach(new i : Player)
{
GetPlayerWeaponData(i, 7, weap[0][0], weap[0][1]);
GetPlayerWeaponData(i, 8, weap[1][0], weap[1][1]);
strTemp[0] = EOS;
//--------------------------------------------------------------
if(WEAPON_ROCKETLAUNCHER <= weap[0][0] <= WEAPON_MINIGUN)
{
GetWeaponNameEx(weap[0][0], weapon);
format(strTemp, sizeof(strTemp), "{00FF00}%s {00BBF6}(ID:%d) \t{00FF00}%s \t{FF0000}%d\n", ReturnName(i), i, weapon, weap[0][1]),CountW++;
}
if(WEAPON_GRENADE <= weap[1][0] <= WEAPON_MOLTOV)
{
GetWeaponNameEx(weap[1][0], weapon);
if(!strTemp[0]) format(strTemp, sizeof(strTemp), "{00FF00}%s {00BBF6}(ID:%d) \t{00FF00}%s \t{FF0000}%d\n", ReturnName(i), i, weapon, weap[1][1]);
else format(strTemp, sizeof(strTemp), "%s{00FF00}%s {00BBF6}(ID:%d) \t{00FF00}%s \t{FF0000}%d\n", strTemp, ReturnName(i), i, weapon, weap[1][1]);
CountW++;
}
if(strTemp[0])
{
strpack(strDest,strTemp);
strcat(strWeap,strDest);
}
}
if(!CountW) SendClientMessage(playerid, 0xFF000000, "USAGE: {49FFFF}/weaps [ID/Name]");
else{
strWeap{strlen(strWeap)-1} = EOS;
ShowPlayerDialog(playerid, 123, DIALOG_STYLE_TABLIST_HEADERS, "{BBFF00}Players with {00BBF6}Big Weapons", strWeap, "Close", ""), SendCommandToAdmins(playerid, "Weaps");
}
}
else
{
for(new i=0; i != 13; i++)
{
GetPlayerWeaponData(pID, i, weap[0][0], weap[0][1]);
if(weap[0][0] > 0 && weap[0][1] > 0)
CountW++;
}
if(CountW < 1) SendClientMessage(playerid, 0x00FF0000, "This player don't have Weapons!");
else{
strWeap = !"{00BBF6}Weapon\t{00BBF6}Ammo\n";
for(new i=0; i != 13; i++)
{
GetPlayerWeaponData(pID, i, weap[0][0], weap[0][1]);
if(weap[0][0] > 0 && weap[0][1] > 0)
{
GetWeaponNameEx(weap[0][0], weapon);
if(weap[0][1] == 65535 || weap[0][1] == 1) format(strTemp, sizeof(strTemp), "{00FF00}%s \t{FF0000}1\n",weapon);
else format(strTemp, sizeof(strTemp), "{00FF00}%s \t{FF0000}%d\n",weapon, weap[0][1]);
strpack(strDest,strTemp);
strcat(strWeap,strDest);
}
}
strWeap{strlen(strWeap)-1} = EOS;
format(strTemp, sizeof(strTemp), "{BBFF00}%s's {00BBF6}Weapons:", ReturnName(pID)),
ShowPlayerDialog(playerid, 123, DIALOG_STYLE_TABLIST_HEADERS, strTemp, strWeap, "Close", ""), SendCommandToAdmins(playerid, "Weaps");
}
}
}
}
return 1;
}
D:\Altele\SAMP\XSW V1\gamemodes\XSW.pwn(8692) : error 017: undefined symbol "weapon" D:\Altele\SAMP\XSW V1\gamemodes\XSW.pwn(8693) : error 017: undefined symbol "weapon" D:\Altele\SAMP\XSW V1\gamemodes\XSW.pwn(8697) : error 017: undefined symbol "weapon" D:\Altele\SAMP\XSW V1\gamemodes\XSW.pwn(8698) : error 017: undefined symbol "weapon" D:\Altele\SAMP\XSW V1\gamemodes\XSW.pwn(8699) : error 017: undefined symbol "weapon" D:\Altele\SAMP\XSW V1\gamemodes\XSW.pwn(8730) : error 017: undefined symbol "weapon" D:\Altele\SAMP\XSW V1\gamemodes\XSW.pwn(8731) : error 017: undefined symbol "weapon" D:\Altele\SAMP\XSW V1\gamemodes\XSW.pwn(8732) : error 017: undefined symbol "weapon" Pawn compiler 3.2.3664 Copyright © 1997-2006, ITB CompuPhase 8 Errors.
D:\Altele\SAMP\XSW V1\gamemodes\XSW.pwn(8692) : error 035: argument type mismatch (argument 2) D:\Altele\SAMP\XSW V1\gamemodes\XSW.pwn(8697) : error 035: argument type mismatch (argument 2) D:\Altele\SAMP\XSW V1\gamemodes\XSW.pwn(8730) : error 035: argument type mismatch (argument 2) Pawn compiler 3.2.3664 Copyright © 1997-2006, ITB CompuPhase 3 Errors.
If you complete the param (if you type /weaps 0 or /weaps 1 or any other /weaps [ID]), you see in a SendClientMessage all player's weapons...
|
Yes sscanf returns INVALID_PLAYER_ID instead -1 ( I don't know why, maybe bug or old version sscanf ? ) if you type only /weaps
Why in SendClientMessage? in dialog looks better |
CMD:weaps(playerid, params[])
{
if(Player[playerid][Level] < 3 || Player[playerid][VIP] < 7) ErrorMessages(playerid, 4);
else
{
new pID, bool:all = isnull(params);
sscanf(params, "U(-1)", pID);
if(pID == INVALID_PLAYER_ID && !all) ERROR_NotConnected(playerid);
else
{
new CountW,weapon[24];
static strTemp[220],strDest[220 char],strWeap[5500 char],weap[2][2];
if(all)
{
strWeap = !"{00BBF6}Name\t{00BBF6}Weapon\t{00BBF6}Ammo\n";
foreach(new i : Player)
{
GetPlayerWeaponData(i, 7, weap[0][0], weap[0][1]);
GetPlayerWeaponData(i, 8, weap[1][0], weap[1][1]);
strTemp[0] = EOS;
//--------------------------------------------------------------
if(WEAPON_ROCKETLAUNCHER <= weap[0][0] <= WEAPON_MINIGUN)
{
GetWeaponNameEx(weap[0][0], weapon);
format(strTemp, sizeof(strTemp), "{00FF00}%s {00BBF6}(ID:%d) \t{00FF00}%s \t{FF0000}%d\n", ReturnName(i), i, weapon, weap[0][1]),CountW++;
}
if(WEAPON_GRENADE <= weap[1][0] <= WEAPON_MOLTOV)
{
GetWeaponNameEx(weap[1][0], weapon);
if(!strTemp[0]) format(strTemp, sizeof(strTemp), "{00FF00}%s {00BBF6}(ID:%d) \t{00FF00}%s \t{FF0000}%d\n", ReturnName(i), i, weapon, weap[1][1]);
else format(strTemp, sizeof(strTemp), "%s{00FF00}%s {00BBF6}(ID:%d) \t{00FF00}%s \t{FF0000}%d\n", strTemp, ReturnName(i), i, weapon, weap[1][1]);
CountW++;
}
if(strTemp[0])
{
strpack(strDest,strTemp);
strcat(strWeap,strDest);
}
}
if(!CountW) SendClientMessage(playerid, 0xFF000000, "USAGE: {49FFFF}/weaps [ID/Name]");
else{
strWeap{strlen(strWeap)-1} = EOS;
ShowPlayerDialog(playerid, 123, DIALOG_STYLE_TABLIST_HEADERS, "{BBFF00}Players with {00BBF6}Big Weapons", strWeap, "Close", ""), SendCommandToAdmins(playerid, "Weaps");
}
}
else
{
for(new i=0; i != 13; i++)
{
GetPlayerWeaponData(pID, i, weap[0][0], weap[0][1]);
if(weap[0][0] > 0 && weap[0][1] > 0)
CountW++;
}
if(CountW < 1) SendClientMessage(playerid, 0x00FF0000, "This player don't have Weapons!");
else{
strWeap = !"{00BBF6}Weapon\t{00BBF6}Ammo\n";
for(new i=0; i != 13; i++)
{
GetPlayerWeaponData(pID, i, weap[0][0], weap[0][1]);
if(weap[0][0] > 0 && weap[0][1] > 0)
{
GetWeaponNameEx(weap[0][0], weapon);
if(weap[0][1] == 65535 || weap[0][1] == 1) format(strTemp, sizeof(strTemp), "{00FF00}%s \t{FF0000}1\n",weapon);
else format(strTemp, sizeof(strTemp), "{00FF00}%s \t{FF0000}%d\n",weapon, weap[0][1]);
strpack(strDest,strTemp);
strcat(strWeap,strDest);
}
}
strWeap{strlen(strWeap)-1} = EOS;
format(strTemp, sizeof(strTemp), "{BBFF00}%s's {00BBF6}Weapons:", ReturnName(pID)),
ShowPlayerDialog(playerid, 123, DIALOG_STYLE_TABLIST_HEADERS, strTemp, strWeap, "Close", ""), SendCommandToAdmins(playerid, "Weaps");
}
}
}
}
return 1;
}
GetWeaponNameEx(weaponid, weapon[], len = sizeof(weapon))
{
weapon[0] = EOS;
switch(weaponid)
{
case 18: return strcat(weapon, "Molotovs", len);
case 44: return strcat(weapon, "Night Vision Goggles", len);
case 45: return strcat(weapon, "Thermal Goggles", len);
default: return GetWeaponName(weaponid, weapon, len);
}
return false;
}