W swoim TuTku Benio101 pisze:
Kolejną zaletą jest możliwość bardzo sprawnego wyzerowania bitów dla wszystkich graczy:players=0;
zamiast
for(new i=1; i<=32; ++i){ players[i]=false;}
Łopatologicznie, używamy:
if(CheckBit(players, id))
zamiast
if(players[id])
przy sprawdzaniu bitu.
SetBit(players, id);
zamiast
players[id]=true;
przy ustawianiu bitu na "tak".
ClearBit(players, id);
zamiast
players[id]=false;przy ustawianiu bitu na "nie".
A ja mam pytanie
1.Jak zastosować to do np. takiego perku? Bo tam jest ma_perk[33]?
2.Czy powinno dawać sie [33] czy [32]??
#include <amxmodx>
#include <hamsandwich>
#include <codmod>
#define DMG_BULLET (1<<1)
new const perk_name[] = "Tajemnica Szturmowca";
new const perk_desc[] = "Dostajesz M4A1 i dodatkowe 10 obrazen z niego";
new bool:ma_perk[33];
public plugin_init()
{
register_plugin(perk_name, "1.0", "QTM_Peyote");
cod_register_perk(perk_name, perk_desc);
RegisterHam(Ham_TakeDamage, "player", "TakeDamage");
}
public cod_perk_enabled(id)
{
cod_give_weapon(id, CSW_M4A1);
ma_perk[id] = true;
}
public cod_perk_disabled(id)
{
cod_take_weapon(id, CSW_M4A1);
ma_perk[id] = false;
}
public TakeDamage(this, idinflictor, idattacker, Float:damage, damagebits)
{
if(!is_user_connected(idattacker))
return HAM_IGNORED;
if(!ma_perk[idattacker])
return HAM_IGNORED;
if(get_user_team(this) != get_user_team(idattacker) && get_user_weapon(idattacker) == CSW_M4A1 && damagebits & DMG_BULLET)
cod_inflict_damage(idattacker, this, 10.0, 0.0, idinflictor, damagebits);
return HAM_IGNORED;
}


Dodatki SourceMod




Temat jest zamknięty










