public OnPlayerInteriorChange(playerid,newinteriorid,oldinteriorid) { if(newinteriorid && !oldinteriorid) { for(new i = 0; i < 13; i ++) { GetPlayerWeaponData(playerid, i, Armas[playerid][i], Ammo[playerid][i]); } SetPVarInt(playerid, "Armas", 1); ResetPlayerWeapons(playerid); SendClientMessage(playerid, 0xFFFF00FF, "Suas armas foram retiradas, pois nгo й permitido usб-las em interior. Quando vocк sair, elas serгo devolvidas."); } else if(!newinteriorid) { if((GetPVarInt(playerid, "Armas")) && (!GetPVarInt(playerid, "Weapons"))) { for(new i = 0; i < 13; i ++) GivePlayerWeapon(playerid, Armas[playerid][i], Ammo[playerid][i]); DeletePVar(playerid, "Armas"); SendClientMessage(playerid, 0xFFFF00FF, "Suas armas foram reentregues."); } DeletePVar(playerid, "Weapons"); } return 1; }
public OnPlayerInteriorChange(playerid,newinteriorid,oldinteriorid)
{
if(newinteriorid && !oldinteriorid)
{
for(new i = 0; i < 13; i ++)
{
GetPlayerWeaponData(playerid, i, Armas[playerid][i], Ammo[playerid][i]);
}
new reset;
SetPVarInt(playerid, "Armas", 1);
ResetPlayerWeapons(playerid);
reset = SetTimerEx("resetar", 1000, true, "d", playerid);
SendClientMessage(playerid, 0xFFFF00FF, "Suas armas foram retiradas, pois nгo й permitido usб-las em interior. Quando vocк sair, elas serгo devolvidas.");
}
else if(!newinteriorid)
{
if((GetPVarInt(playerid, "Armas")) && (!GetPVarInt(playerid, "Weapons")))
{
for(new i = 0; i < 13; i ++)
GivePlayerWeapon(playerid, Armas[playerid][i], Ammo[playerid][i]);
DeletePVar(playerid, "Armas");
KillTimer("reset");
SendClientMessage(playerid, 0xFFFF00FF, "Suas armas foram reentregues.");
}
DeletePVar(playerid, "Weapons");
}
return 1;
}
forward resetar(playerid);
public resetar(playerid)
{
ResetPlayerWeapons(playerid);
return 1;
}
//No OnGameModeInit:
SetTimer("NaAmmunation", 1000, true);
//No Final do GM:
forward NaAmmunation();
public NaAmmunation()
{
for(new x, y = GetMaxPlayers(); x != y; x++)
{
if(GetPlayerWeapon(x) == 0 || GetPlayerInterior(x) != 1) continue; //Troque 1 pelo ID da Ammunation a qual vocк se referiu.
new arma = GetPlayerWeapon(x);
Armas[x][GetWeaponSlot(arma)] = arma;
Ammo[x][GetWeaponSlot(arma)] = GetPlayerAmmo(x);
ResetPlayerWeapons(x);
}
return true;
}
stock GetWeaponSlot(weaponid) //Autor dessa funзгo: Hiddos.
{
new slot;
switch(weaponid)
{
case 0,1: slot = 0;
case 2 .. 9: slot = 1;
case 10 .. 15: slot = 10;
case 16 .. 18, 39: slot = 8;
case 22 .. 24: slot =2;
case 25 .. 27: slot = 3;
case 28, 29, 32: slot = 4;
case 30, 31: slot = 5;
case 33, 34: slot = 6;
case 35 .. 38: slot = 7;
case 40: slot = 12;
case 41 .. 43: slot = 9;
case 44 .. 46: slot = 11;
}
return slot;
}
public OnPlayerInteriorChange(playerid,newinteriorid,oldinteriorid)
{
if(newinteriorid && !oldinteriorid)
{
for(new i = 0; i < 13; i ++)
{
GetPlayerWeaponData(playerid, i, Armas[playerid][i], Ammo[playerid][i]);
}
SetPVarInt(playerid, "Armas", 1);
ResetPlayerWeapons(playerid);
SendClientMessage(playerid, 0xFFFF00FF, "Suas armas foram retiradas, pois nгo й permitido usб-las em interior. Quando vocк sair, elas serгo devolvidas.");
}
else if(!newinteriorid)
{
if((GetPVarInt(playerid, "Armas")) && (!GetPVarInt(playerid, "Weapons")))
{
ResetPlayerWeapons(playerid);
for(new i = 0; i < 13; i ++) GivePlayerWeapon(playerid, Armas[playerid][i], Ammo[playerid][i]);
DeletePVar(playerid, "Armas");
SendClientMessage(playerid, 0xFFFF00FF, "Suas armas foram reentregues.");
}
DeletePVar(playerid, "Weapons");
}
return 1;
}
Rjjj, estou com um problema parecido. Se fosse salvar as armas na conta do player, pra quando ele logasse no servidor novamente, devolvesse as armas, daria para fazer assim tambйm?
|