PDA

Просмотр полной версии : [Вопрос] Подскажите



codeo
26.05.2014, 21:43
Как в антиГм сделать проверку, если игрок заморожен, то чтобы паблик не срабатывал?


пробовал так, но при выстреле стрелявший замораживается.

public OnPlayerGiveDamage(playerid, damagedid, Float:amount, weaponid)
{

if(TogglePlayerControllable(playerid,0))
{

new Float: vida, Float: armadura, Float: dmg;
GetPlayerArmour(damagedid, armadura);
GetPlayerHealth(damagedid, vida);

if(armadura > 0)
{
if(amount > armadura)
{
dmg = amount - armadura;
vida = vida - dmg;
SetPlayerArmour(damagedid, 0.0);
SetPlayerHealth(damagedid, vida);
return 1;
}
armadura = armadura - amount;
SetPlayerArmour(damagedid, armadura);
}
if(armadura < 1)
{
vida = vida - amount;
SetPlayerHealth(damagedid, vida);
}
}
return true;
}

MrBurn
26.05.2014, 23:30
Ничего не понял

L0ndl3m
26.05.2014, 23:34
Вы когда замораживаете игрока устанавливайте значение переменной игрока, либо массиву, например:

SetPVarInt(targetid, "pFreezed", !GetPVarInt(targetid, "pFreezed"));
Где targetid - ID игрока указываемого в команде, возможно даже у Вас это giveplayerid, или даже params[0] (обычно первый параметр (ID игрока) в другом командном процессоре указывается как первый аргумент).

А далее всё просто:



if(GetPVarInt(damagedid, "pFreezed") == 1)
return 1;


А при разморозке:

DeletePVar(targetid, "pFreezed");