←  Problemy

AMXX.pl: Support AMX Mod X i SourceMod

»

Kilka błędów w funkcjach.

Kukol's Photo Kukol 15.10.2011

Witam, mam błędy w error logach:

L 10/14/2011 - 16:34:32: [AMXX] Displaying debug trace (plugin "cod_class.amxx")
L 10/14/2011 - 16:34:32: [AMXX] Run time error 10: native error (native "get_user_weapon")
L 10/14/2011 - 16:34:32: [AMXX]	[0] cod_class.sma::TakeDamage (line 68)
L 10/14/2011 - 16:34:32: Invalid player id 0


public TakeDamage(this, idinflictor, idattacker, Float:damage, damagebits)
{
new weapon = get_user_weapon(idattacker, _, _) // linia 68
if(is_user_connected(idattacker) && get_user_team(idattacker) != get_user_team(this))
{
if(klasa[idattacker] && weapon == CSW_AWP)
{
SetHamParamFloat(4, damage * 1.5)
return HAM_HANDLED;
}
}
if(klasa[this] && damagebits & DMG_BULLET && random_num(1,5) == 1)
return HAM_SUPERCEDE;

return HAM_IGNORED;
}



oraz:

L 10/14/2011 - 16:34:34: [AMXX] Displaying debug trace (plugin "cod_class2.amxx")
L 10/14/2011 - 16:34:34: [AMXX] Run time error 4: index out of bounds
L 10/14/2011 - 16:34:34: [AMXX]	[0] cod_class2.sma::DotykBroni (line 268)

public DotykBroni(weapon, id)
{
if(!klasa[id]) // linia 268
return HAM_IGNORED;

if(!is_user_connected(id))
return HAM_IGNORED;

new model[23];
pev(weapon, pev_model, model, 22);
if (containi(model, "w_backpack") != -1)
return HAM_IGNORED;

return HAM_SUPERCEDE;
}



Co w tych funkcjach mam źle?
Edited by Kukol, 15.10.2011 01:48.
Quote

  • +
  • -
speedkill's Photo speedkill 15.10.2011

Sprawdź czy gracz jest połączony pierw a potem zrób new weapon
Coś takiego :
public TakeDamage(this, idinflictor, idattacker, Float:damage, damagebits)
{
                if(is_user_connected(idattacker) && get_user_team(idattacker) != get_user_team(this))
                {
                new weapon = get_user_weapon(idattacker, _, _) // linia 68
                if(klasa[idattacker] && weapon == CSW_AWP)
                                {
                                                SetHamParamFloat(4, damage * 1.5)
                                                return HAM_HANDLED;
                                }
                }
                if(klasa[this] && damagebits & DMG_BULLET && random_num(1,5) == 1)
                                return HAM_SUPERCEDE;
 
                return HAM_IGNORED;
}
Quote