I to ma byc bez uzycia zmiany friendly fire ( set cvar num 1 lub 0).
Jak będzie bez zmiany to jeśli cvar będzie wynosił 0 to plugin nie zadziała.
#include <amxmodx>
#include <hamsandwich>
new bool:isFF = false;
public plugin_init()
{
register_plugin("TT FF", "", "Knopers");
register_concmd("say /ttff", "OnOff");
RegisterHam(Ham_TakeDamage, "player","fwTakeDamage",0);
set_cvar_num("mp_friendlyfire", 0);
}
public fwTakeDamage(this, idinflictor, idattacker, Float:damage, damagebits)
{
if(isFF && is_user_connected(this) && is_user_connected(idattacker) && get_user_team(this) == 2 && get_user_team(idattacker) == 2)
return HAM_SUPERCEDE;
if(idattacker != idinflictor && get_user_team(idattacker) != 1)
return HAM_SUPERCEDE;
return HAM_IGNORED;
}
public OnOff(id)
{
if(!(get_user_flags(id) & ADMIN_KICK))
return PLUGIN_CONTINUE;
if(isFF)
{
isFF = false;
set_cvar_num("mp_friendlyfire", 0);
}
else
{
isFF = true;
set_cvar_num("mp_friendlyfire", 1);
}
return PLUGIN_CONTINUE;
}
Ew Coś takiego bez ciągłej zmiany cvara ale jak już powiedziałem jak będzie ustawiony na 0 to nie zadziała.
#include <amxmodx>
#include <hamsandwich>
new bool:isFF = false;
public plugin_init()
{
register_plugin("TT FF", "", "Knopers");
register_concmd("say /ttff", "OnOff");
RegisterHam(Ham_TakeDamage, "player","fwTakeDamage",0);
set_cvar_num("mp_friendlyfire", 1);
}
public fwTakeDamage(this, idinflictor, idattacker, Float:damage, damagebits)
{
if(isFF && is_user_connected(this) && is_user_connected(idattacker) && get_user_team(this) == 2 && get_user_team(idattacker) == 2)
return HAM_SUPERCEDE;
if(!isFF && is_user_connected(this) && is_user_connected(idattacker) && get_user_team(this) == get_user_team(idattacker))
return HAM_SUPERCEDE;
if(idattacker != idinflictor && get_user_team(idattacker) != 1)
return HAM_SUPERCEDE;
return HAM_IGNORED;
}
public OnOff(id)
{
if(!(get_user_flags(id) & ADMIN_KICK))
return PLUGIN_CONTINUE;
if(isFF)
isFF = false;
else
isFF = true;
return PLUGIN_CONTINUE;
}