←  Problemy

AMXX.pl: Support AMX Mod X i SourceMod

»

CoD Nowy
Run time error 4 index out of bounds funkc...


Najlepsza odpowiedź ex0 31.08.2014 18:07

Poradziłem sobie zamienieniem tej funkcji na inną.
 

Przejdź do postu
Zablokowany

  • +
  • -
ex0 - zdjęcie ex0 14.08.2014

CurWeapon (line 1105)
public CurWeapon(id)
{
	static team
	team = get_user_team(id)
	if(!is_user_alive(id) || team > 2)	return;

	if(~(bronie_klasy[klasa_gracza[id]] 
	| bonusowe_bronie_gracza[id]
	| bronie_druzyny[team] 
	| bronie_dozwolone)
	& 1<<read_data(2))     ham_strip_weapon_short( id );

	if(cs_get_user_shield(id) && !gracz_ma_tarcze[id])	engclient_cmd(id, "drop", "weapon_shield")
	
	UstawSzybkosc(id);
}



stock ham_strip_weapon_short(id) 

{

	new szWeapon[64];

	
	get_weaponname( get_user_weapon( id ) , szWeapon , charsmax ( szWeapon ) )


	new wId = get_weaponid(szWeapon);

	if(!wId) return 0;

	
	new wEnt	=	find_ent_by_owner( -1,szWeapon,id )

	
	if(!wEnt) return 0;

	
	ExecuteHamB(Ham_Weapon_RetireWeapon,wEnt);

	
	ExecuteHamB(Ham_RemovePlayerItem,id,wEnt)

	ExecuteHamB(Ham_Item_Kill,wEnt);

	

	set_pev(id,pev_weapons,pev(id,pev_weapons) & ~(1<<wId));

	

	return 1;

}

Wiem co oznacza błąd, ale może mi ktoś wyjaśnić jak w tym przypadku go naprawić?

Odpowiedz

  • +
  • -
Eryk172 - zdjęcie Eryk172 21.08.2014

Nie wiem czy dobrze kminie, ale..

if(~(bronie_klasy[klasa_gracza[id]]
| bonusowe_bronie_gracza[id]
| bronie_druzyny[team]
| bronie_dozwolone)
& 1<<read_data(2)) ham_strip_weapon_short( id );

Nie powinno być || oraz && ?

 

Odpowiedz

  • +
  • -
Rivit - zdjęcie Rivit 22.08.2014

Nie nie powinno być.
pl.m.wikipedia.org/wiki/Alternatywa
pl.m.wikipedia.org/wiki/Koniunkcja_(logika)
pl.m.wikipedia.org/wiki/Operator_bitowy

sam kiedys o to pytałem.
Odpowiedz

  • +
  • -
Najlepsza odpowiedź ex0 - zdjęcie ex0 31.08.2014

Poradziłem sobie zamienieniem tej funkcji na inną.
 

Odpowiedz
Zablokowany