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.


 
Dodatki SourceMod



 Temat jest zamknięty








