Skocz do zawartości

Witamy w Nieoficjalnym polskim support'cie AMX Mod X

Witamy w Nieoficjalnym polskim support'cie AMX Mod X, jak w większości społeczności internetowych musisz się zarejestrować aby móc odpowiadać lub zakładać nowe tematy, ale nie bój się to jest prosty proces w którym wymagamy minimalnych informacji.
  • Rozpoczynaj nowe tematy i odpowiedaj na inne
  • Zapisz się do tematów i for, aby otrzymywać automatyczne uaktualnienia
  • Dodawaj wydarzenia do kalendarza społecznościowego
  • Stwórz swój własny profil i zdobywaj nowych znajomych
  • Zdobywaj nowe doświadczenia

Dołączona grafika Dołączona grafika

Guest Message by DevFuse
 

Zdjęcie

Problem z funkcją - FM_TraceLine. Prosze o pomoc.


  • Zamknięty Temat jest zamknięty
Brak odpowiedzi do tego tematu

#1 Sniper Elite

    Master

  • Power User

Reputacja: 176
Profesjonalista

  • Postów:981
  • GG:
  • Imię:Konrad
  • Lokalizacja:Skryptolandia
Offline

Napisano 28.06.2011 09:18

Witam. Mam problem z funkcją. Niby działa jak trzeba, ale mam errory w logach takie:

L 06/28/2011 - 10:16:03: [AMXX] Run time error 4: index out of bounds 
L 06/28/2011 - 10:16:03: [AMXX]    [0] QTMCodMod.sma::fw_traceline (line 7244)
L 06/28/2011 - 10:16:03: [AMXX] Displaying debug trace (plugin "QTMCodMod.amxx")

Funkcja wygląda tak:

public fw_traceline(Float:vecStart[3],Float:vecEnd[3],ignoreM,id,trace,this) 
{
	if(!is_user_connected(id))
		return FMRES_IGNORED;
	
	new hit = get_tr2(trace, TR_pHit);
	
	new hitzone = get_tr2(trace, TR_iHitgroup);
	if(player_b_antyhead[hit] == 1 && hitzone == HIT_HEAD)
		set_tr2(trace, TR_iHitgroup, 8);
		
	if(!(pev(id,pev_button) & IN_ATTACK))
		return FMRES_IGNORED;
		
	new h_bulet=0
	
	if(golden_bulet[id]>0) 
	{
		golden_bulet[id]--
		h_bulet=1
	}
		
	if(is_valid_ent(hit))
	{
		new name[64]
		entity_get_string(hit,EV_SZ_classname,name,63)
		
		if(equal(name,"dbmod_shild"))
		{
			new Float: ori[3]
			entity_get_vector(hit,EV_VEC_origin,ori)
			set_tr2(trace,TR_vecEndPos,vecEnd)
			if(after_bullet[id]>0)
			{			
				new Float: health=entity_get_float(hit,EV_FL_health)
				entity_set_float(hit,EV_FL_health,health-3.0)
				if(health-1.0<0.0) remove_entity(hit)
				after_bullet[id]--
			}
			set_tr2(trace,TR_iHitgroup,8);
			set_tr2(trace,TR_flFraction,1.0);
			return FMRES_SUPERCEDE;
		}
	}	
		
	if(is_user_alive(hit))
	{
		if(h_bulet)
		{
			set_tr2(trace, TR_iHitgroup, HIT_HEAD) // Redirect shot to head
	    
			// Variable angles doesn't really have a use here.
			static hit, Float:head_origin[3], Float:angles[3]
			
			hit = get_tr2(trace, TR_pHit) // Whomever was shot
			engfunc(EngFunc_GetBonePosition, hit, 8, head_origin, angles) // Find origin of head bone (8)
			
			set_tr2(trace, TR_vecEndPos, head_origin) // Blood now comes out of the head!
		}
		return FMRES_IGNORED;
	}
	return FMRES_IGNORED;
}

Wpis do plugin_init:

register_forward(FM_TraceLine,"fw_traceline");

Dzięki za pomoc.
  • +
  • -
  • 0

Kontakt:

Steam: CSnajper

GG: 4394855

 

Na steam i GG pomagam wyłącznie odpłatnie.





Użytkownicy przeglądający ten temat: 0

0 użytkowników, 0 gości, 0 anonimowych