quando o jogador voltava no servidor, as muniзхes duplicava. Consegui, fiz desse jeito.
pawn Код:
forward VerificarBalas();
public VerificarBalas()
{
new plyWeapons[13];
new plyAmmo[13];
new weapon, ammo;
foreach(new playerid : Player)
{
for(new i; i < MAX_ARMAS; i++)
{
if(Arma[i][Dono] == PlayerInfo[playerid][UserID])
{
for(new slot = 0; slot < 13; slot++) GetPlayerWeaponData(playerid, GetSlot(Arma[i][Modelo]), plyWeapons[slot], plyAmmo[slot]);
new has = Arma[i][ArmaAmmo];
if(plyWeapons[GetSlot(Arma[i][Modelo])] == Arma[i][Modelo])
{
if(has > plyAmmo[GetSlot(Arma[i][Modelo])])
{
if( (has > 5000 && plyAmmo[GetSlot(Arma[i][Modelo])] == 0) || (plyAmmo[GetSlot(Arma[i][Modelo])] < (has-5000*2)))
{
}
else
{
Arma[i][ArmaAmmo] = plyAmmo[GetSlot(Arma[i][Modelo])];
}
}
new on = DonoOnline(Arma[i][Dono]);
if(Arma[i][ArmaAmmo] == 0)
{
if(on > -1)
{
new string[128];
format(string,128,"ARMAS: A muniзгo de sua arma %s acabou.", NomeArmas[Arma[i][Modelo]]);
SendClientMessage(i, -1, string);
}
}
}
}
}
}
return 1;
}
eu fiz essas cb mas acho que poderia ficar melhor melhor, tem alguma ideia de como identar ela ?
й pra identificar se tem a arma jб no slot para o player nгo poder comprar outra
pawn Код:
stock TemArmaSlot(playerid, idarma)
{
new temarmaslot = 0;
for(new i; i < MAX_ARMAS; i++)
{
if(Arma[i][Dono] == PlayerInfo[playerid][UserID])
{
if(idarma == 2 || idarma == 3 || idarma == 4 || idarma == 5 || idarma == 6 || idarma == 7 || idarma == 8 || idarma == 9){
if(Arma[i][Modelo] == 2 ||Arma[i][Modelo] == 3 ||Arma[i][Modelo] == 4 ||Arma[i][Modelo] == 5 ||Arma[i][Modelo] == 6 ||Arma[i][Modelo] == 7 ||Arma[i][Modelo] == 8 ||Arma[i][Modelo] == 9)
{
temarmaslot = 1;
}
}
if(idarma == 10 || idarma == 11 || idarma == 12 || idarma == 13 || idarma == 14 || idarma == 15){
if(Arma[i][Modelo] == 10 ||Arma[i][Modelo] == 11 ||Arma[i][Modelo] == 12 ||Arma[i][Modelo] == 13 ||Arma[i][Modelo] == 14 ||Arma[i][Modelo] == 15)
{
temarmaslot = 1;
}
}
if(idarma == 16 || idarma == 17 || idarma == 18){
if(Arma[i][Modelo] == 16 ||Arma[i][Modelo] == 17 ||Arma[i][Modelo] == 18)
{
temarmaslot = 1;
}
}
if(idarma == 22 || idarma == 23 || idarma == 24 ){
if(Arma[i][Modelo] == 22 ||Arma[i][Modelo] == 23 ||Arma[i][Modelo] == 24)
{
temarmaslot = 1;
}
}
if(idarma == 25 || idarma == 26 || idarma == 27 ){
if(Arma[i][Modelo] == 25 ||Arma[i][Modelo] == 26 ||Arma[i][Modelo] == 27)
{
temarmaslot = 1;
}
}
if(idarma == 28 || idarma == 29 || idarma == 32){
if(Arma[i][Modelo] == 28 ||Arma[i][Modelo] == 29 ||Arma[i][Modelo] == 32)
{
temarmaslot = 1;
}
}
if(idarma == 30 || idarma == 31){
if(Arma[i][Modelo] == 30 ||Arma[i][Modelo] == 31)
{
temarmaslot = 1;
}
}
if(idarma == 33 || idarma == 34){
if(Arma[i][Modelo] == 33 ||Arma[i][Modelo] == 34)
{
temarmaslot = 1;
}
}
}
}
return temarmaslot;
}
stock CarregarArma(playerid)
{
new idarma;
for(new i; i < MAX_ARMAS; i++)
{
if(Arma[i][Dono] == PlayerInfo[playerid][UserID])
{
idarma = Arma[i][Modelo];
if(idarma == 2 || idarma == 3 || idarma == 4 || idarma == 5 || idarma == 6 || idarma == 7 || idarma == 8 || idarma == 9){
if(Arma[i][Modelo] == 2 ||Arma[i][Modelo] == 3 ||Arma[i][Modelo] == 4 ||Arma[i][Modelo] == 5 ||Arma[i][Modelo] == 6 ||Arma[i][Modelo] == 7 ||Arma[i][Modelo] == 8 ||Arma[i][Modelo] == 9)
{
GivePlayerWeapon(playerid, idarma);
}
}
if(idarma == 10 || idarma == 11 || idarma == 12 || idarma == 13 || idarma == 14 || idarma == 15){
if(Arma[i][Modelo] == 10 ||Arma[i][Modelo] == 11 ||Arma[i][Modelo] == 12 ||Arma[i][Modelo] == 13 ||Arma[i][Modelo] == 14 ||Arma[i][Modelo] == 15)
{
GivePlayerWeapon(playerid, idarma);
}
}
if(idarma == 16 || idarma == 17 || idarma == 18){
if(Arma[i][Modelo] == 16 ||Arma[i][Modelo] == 17 ||Arma[i][Modelo] == 18)
{
GivePlayerWeapon(playerid, idarma);
}
}
if(idarma == 22 || idarma == 23 || idarma == 24 ){
if(Arma[i][Modelo] == 22 ||Arma[i][Modelo] == 23 ||Arma[i][Modelo] == 24)
{
GivePlayerWeapon(playerid, idarma);
}
}
if(idarma == 25 || idarma == 26 || idarma == 27 ){
if(Arma[i][Modelo] == 25 ||Arma[i][Modelo] == 26 ||Arma[i][Modelo] == 27)
{
GivePlayerWeapon(playerid, idarma);
}
}
if(idarma == 28 || idarma == 29 || idarma == 32){
if(Arma[i][Modelo] == 28 ||Arma[i][Modelo] == 29 ||Arma[i][Modelo] == 32)
{
GivePlayerWeapon(playerid, idarma);
}
}
if(idarma == 30 || idarma == 31){
if(Arma[i][Modelo] == 30 ||Arma[i][Modelo] == 31)
{
GivePlayerWeapon(playerid, idarma);
}
}
if(idarma == 33 || idarma == 34){
if(Arma[i][Modelo] == 33 ||Arma[i][Modelo] == 34)
{
GivePlayerWeapon(playerid, idarma);
}
}
}
}
return temarmaslot;
}