Armas no corpo bugado -
druiida159 - 27.12.2015
Eu estou usando o sistema que o wil postou em um comentario mais o problema й o seguinte, quando eu uso o comando, todos que estгo no servidor tem a mesma arma que eu, acoplada ao corpo.
Como eu faзo somente para o jogador que usou o comando estar com o objeto?
Код:
#include <a_samp>
#include <zcmd>
#include <foreach>
new pWeaponHold[MAX_PLAYERS];
CMD:armac(playerid, params[])
{
if(GetPlayerWeapon(playerid) == -1)
return SendClientMessage(playerid, 0xFF6347FF, "Vocк nгo possui nenhuma arma na mгo.");
new gunname[128], string[128];
if(!pWeaponHold[playerid])
{
if(GetPlayerWeapon(playerid) == 25 || GetPlayerWeapon(playerid) == 27 || GetPlayerWeapon(playerid) == 29 || GetPlayerWeapon(playerid) == 30 || GetPlayerWeapon(playerid) == 31 || GetPlayerWeapon(playerid) == 33 || GetPlayerWeapon(playerid) == 34)
{
if(!pWeaponHold[playerid])
{
pWeaponHold[playerid] = GetPlayerWeapon(playerid);
GetWeaponName(GetPlayerWeapon(playerid), gunname, sizeof(gunname));
format(string, sizeof(string),"SERVIDOR: A sua %s foi acoplada ao seu corpo!",gunname);
SendClientMessage(playerid, 0xFFFF00FF, string);
return 1;
}
else
{
GetWeaponName(pWeaponHold[playerid], gunname, sizeof(gunname));
RemovePlayerAttachedObject(playerid, 4);
format(string, sizeof(string),"SERVIDOR: A sua %s foi desacoplada do seu corpo!",gunname);
SendClientMessage(playerid, 0xFFFF00FF, string);
pWeaponHold[playerid] = 0;
}
}
else
{
SendClientMessage(playerid, 0xFF6347FF, "Esta arma nгo pode ser acoplada a seu corpo.");
}
}
else
{
RemovePlayerAttachedObject(playerid, 4);
format(string, sizeof(string),"SERVIDOR: A arma em seu corpo foi desacoplada!");
SendClientMessage(playerid, 0xFFFF00FF, string);
pWeaponHold[playerid] = 0;
}
return 1;
}
stock RemoveWeaponHold(playerid, weaponid)
{
if(weaponid == pWeaponHold[playerid])
{
RemovePlayerAttachedObject(playerid, 4);
pWeaponHold[playerid] = 0;
}
return 1;
}
public OnGameModeInit()
{
SetTimer("CheckArmaC", 1000, true);//1s
return 1;
}
forward CheckArmaC(playerid);
public CheckArmaC(playerid)
{
foreach (new i : Player)
{
if(pWeaponHold[playerid])
{
new weapon;
switch(pWeaponHold[playerid])
{
case 22: weapon = 346;
case 23: weapon = 347;
case 24: weapon = 348;
case 25: weapon = 349;
case 27: weapon = 351;
case 29: weapon = 353;
case 30: weapon = 355;
case 31: weapon = 356;
}
if(GetPlayerWeapon(i) != pWeaponHold[playerid])
{
switch(pWeaponHold[playerid])
{
case 25:
{
SetPlayerAttachedObject(i, 4, weapon, 1, 0.2049, 0.2430, -0.1359, -176.0000, 160.1999,6.5998);
}
case 27,29,30,31,33,34:
{
SetPlayerAttachedObject(i, 4, weapon, 1, 0.1298, 0.2230, -0.1500, 5.0998, 23.8999, -177.4998);
}
}
}
else
{
RemovePlayerAttachedObject(i, 4);
}
}
}
return 1;
}
Re: Armas no corpo bugado -
EditPawn - 27.12.2015
Adicione a funзгo GetModelHold e troque sua ultima callback por essa:
PHP код:
GetModelHold(playerid)Â {
    new weapon;
    switch(pWeaponHold[playerid])
    {
        case 22: weapon = 346;
        case 23: weapon = 347;
        case 24: weapon = 348;
        case 25: weapon = 349;
        case 27: weapon = 351;
        case 29: weapon = 353;
        case 30: weapon = 355;
        case 31: weapon = 356;
    }
    return weapon; Â
}
forward CheckArmaC();
public CheckArmaC()
{
    foreach(new i: Player)
    {
        if(pWeaponHold[i] && GetPlayerWeapon(i) != pWeaponHold[i])
        {
            switch(pWeaponHold[i])
            {
                case 25: SetPlayerAttachedObject(i, 4, GetModelHold(i), 1, 0.2049, 0.2430, -0.1359, -176.0000, 160.1999, 6.5998);
                case 27, 29, 30, 31, 33, 34: SetPlayerAttachedObject(i, 4, GetModelHold(i), 1, 0.1298, 0.2230, -0.1500, 5.0998, 23.8999, -177.4998);
            }
        }
        else RemovePlayerAttachedObject(i, 4);
    }
    return 1;
}Â
Re: Armas no corpo bugado -
druiida159 - 27.12.2015
Obrigado, funcionou !