witam, mam plugin na granat który zabija każdego w promieniu x metrow.
niestety nie działa on tak jak powinien bo zabija również mnie i chciałbym wiedzieć co zrobić żeby mnie nie zabijało.
kod:
public act_explode(ent)
{
	if (!pev_valid(ent))
		return;
	new origin[3], Float:forigin[3], colors[4], owner = pev(ent, pev_owner), user_team = get_user_team(owner);
	colors = (user_team == 1) ? { 255, 0, 247, 70} : { 0, 255, 208, 30};
	pev(ent, pev_origin, forigin);
	FVecIVec(forigin, origin);
	new id, Float:distance = float(get_pcvar_num(radius)), Float:porigin[3];
	while (id++ < MaxPlayers)
		if (is_user_alive(id))
		{
			message_begin(MSG_ONE_UNRELIABLE, SVC_TEMPENTITY, _, id);
			write_byte(TE_LAVASPLASH);
			write_coord(origin[0]);
			write_coord(origin[1]);
			write_coord(origin[2] - 50);
			message_end();
			message_begin(MSG_ONE_UNRELIABLE, SVC_TEMPENTITY, _, id);
			write_byte(TE_BLOODSPRITE);
			write_coord(origin[0]);
			write_coord(origin[1]);
			write_coord(origin[2] + 20);
			write_short(blood2);
			write_short(blood1);
			write_byte(colors[2]);
			write_byte(30);
			message_end();
			message_begin(MSG_ONE_UNRELIABLE, SVC_TEMPENTITY, _, id);
			write_byte(TE_DLIGHT);
			write_coord(origin[0]);
			write_coord(origin[1]);
			write_coord(origin[2]);
			write_byte(40);
			write_byte(colors[0]);
			write_byte(20);
			write_byte(colors[1]);
			write_byte(8);
			write_byte(60);
			message_end();
			if (user_team != get_user_team(id) || owner == id)
			{
				pev(id, pev_origin, porigin);
				if (get_distance_f(forigin, porigin) <= distance)
					if (fm_is_visible(ent, id))
						ExecuteHam(Ham_TakeDamage, id, ent, owner, (id != owner) ? 30000.0 : 30000.0, 0);
					
						
			}
		}
	emit_sound(ent, CHAN_AUTO, "weapons/sg_explode.wav", 1.0, ATTN_NORM, 0, PITCH_NORM);
	engfunc(EngFunc_RemoveEntity, ent);
} 
					
					

 
Dodatki SourceMod



	
 Temat jest zamknięty










