←  Pluginy

AMXX.pl: Support AMX Mod X i SourceMod

»

Paintball - niszczy skrzynki

Zablokowany

  • +
  • -
M4G!K - zdjęcie M4G!K 03.01.2010

Witam

Mam problem podobny do problemu z kuszą w diablo 5.9l, mianowicie w paintballu po strzale w skrzynki na bs niszczą się one.
I tutaj pytanie, czy mógłby ktoś (czy da się) przerobić to, by takowy problem nie występował. Kombinowałem, ale nic mi z tego nie wyszlo, wg. mnie odpowiada za to kod:

public fw_touch(bullet, ent)
{
	new class[20];
	pev(bullet, pev_classname, class, 19);
	if (!equali(class, "pbBullet"))
		return FMRES_IGNORED;

	new Float:origin[3], class2[20], owner = pev(bullet, pev_owner), is_ent_alive = is_user_alive(ent);
	pev(ent, pev_classname, class2, 19);
	pev(bullet, pev_origin, origin);

	if (is_ent_alive)
	{
		if (owner == ent || pev(ent, pev_takedamage) == DAMAGE_NO)
			return FMRES_IGNORED;
		if (get_user_team(owner) == get_user_team(ent))
			if (!get_pcvar_num(friendlyfire))
				return FMRES_IGNORED;

		ExecuteHam(Ham_TakeDamage, ent, owner, owner, float(get_pcvar_num(damge)), 4098);
	}

	if (!equali(class, class2))
	{	
		set_pev(bullet, pev_velocity, Float:{0.0, 0.0, 0.0});
		set_pev(bullet, pev_classname, "pbPaint");
		set_pev(bullet, pev_solid, 0);
		set_pev(bullet, pev_movetype, 0);
		engfunc(EngFunc_SetModel, bullet, "sprites/paintball.spr");

		new a, findpb = 0;
		while (a++ < g_pbcount && !findpb)
			if (g_paintballs[a] == bullet)
				findpb = g_pbstatus[a] = 2;

		remove_task(bullet);
		remove_task(bullet+TASK_PB_RESET);

		if (get_pcvar_num(sound))
		{
			static wav[20];
			formatex(wav, 20, is_ent_alive ? "player/pl_pain%d.wav" : "misc/pb%d.wav", is_ent_alive ? random_num(4,7) : random_num(1,4));
			emit_sound(bullet, CHAN_AUTO, wav, 1.0, ATTN_NORM, 0, PITCH_NORM);
		}

		new bool:valid_surface = (is_ent_alive || containi(class2, "door") != -1) ? false : true;
		if (pev(ent, pev_health) && !is_ent_alive)
		{
			ExecuteHam(Ham_TakeDamage, ent, owner, owner, float(pev(ent, pev_health)), 0);
			valid_surface = false;
		}
		if (valid_surface)
		{
			paint_splat(bullet);
			set_task(float(get_pcvar_num(blife)), "paint_reset", bullet+TASK_PB_RESET);
		}
		else
			paint_reset(bullet+TASK_PB_RESET);

		return FMRES_HANDLED; 
	}

	return FMRES_IGNORED;
}

Paintball pobrany z: Paintball + Paintball Gun & Mod - Nieoficjalny polski support AMX Mod X


Z góry bardzo dziękuję za pomoc
Pozdrawiam
Odpowiedz

  • +
  • -
Miczu - zdjęcie Miczu 03.01.2010

Najpierw komentuj poszczegolne (pojedyncze) linie az przestanie psuc skrzynie (nie przejmuj sie na razie ze mod nie dziala tak jak trzeba) a jak znajdzie sie winnego to sie naprawi :F
Odpowiedz

  • +
  • -
Vertricus - zdjęcie Vertricus 03.01.2010

Spróbuj:
if (pev(ent, pev_health) && !is_ent_alive)
		{
			ExecuteHam(Ham_TakeDamage, ent, owner, owner, float(pev(ent, pev_health)), 0);
			valid_surface = false;
		}
Chociaż to tak w ciemnio strzelam ale tu się bawi nie żywym bytem ^.^
Odpowiedz

  • +
  • -
Miczu - zdjęcie Miczu 03.01.2010

Jesli tak, to dodac && pev(ent, pev_takedamage)>0 i powinno byc dobrze chyba :F
Odpowiedz

  • +
  • -
M4G!K - zdjęcie M4G!K 04.01.2010

Niestety, nadal problem występuje.

Może ja źle dodaje kod?:

Ten kod:
if (pev(ent, pev_health) && pev(ent, pev_takedamage)>0 && !is_ent_alive)
		{
			ExecuteHam(Ham_TakeDamage, ent, owner, owner, float(pev(ent, pev_health)), 0);
			valid_surface = false;
		}

Wstawiłem zamiast:
if (is_ent_alive)
	{
		if (owner == ent || pev(ent, pev_takedamage) == DAMAGE_NO)
			return FMRES_IGNORED;
		if (get_user_team(owner) == get_user_team(ent))
			if (!get_pcvar_num(friendlyfire))
				return FMRES_IGNORED;

		ExecuteHam(Ham_TakeDamage, ent, owner, owner, float(get_pcvar_num(damge)), 4098);
	}
Odpowiedz

  • +
  • -
Vertricus - zdjęcie Vertricus 04.01.2010

Nie zamiast tego :F tylko zamiast
if (pev(ent, pev_health) && !is_ent_alive)
		{
			ExecuteHam(Ham_TakeDamage, ent, owner, owner, float(pev(ent, pev_health)), 0);
			valid_surface = false;
		}
Jak nie pomoże spróbuj usunąć ten kod i tak nie jest zbyt przydatny jeśli dobrze odczytuje twoje zamiary.

Gz Vert Postów 666
Użytkownik Vertricus edytował ten post 04.01.2010 18:49
Mój 666 post ;)
Odpowiedz

  • +
  • -
M4G!K - zdjęcie M4G!K 04.01.2010

Dziękuję wam bardzo :) Oczywiście pomogło, działa tak jak chciałem! Dziękuje jeszcze raz :)

PS. GZ Vert, ave ;]
Odpowiedz

Adminek AMXX.PL - zdjęcie Adminek AMXX.PL 05.01.2010

Wiadomość wygenerowana automatycznie


Ten temat został zamknięty przez moderatora.

Powód: Problem rozwiązany

Jeśli się z tym nie zgadzasz, Dołączona grafika raportuj ten post, a moderator lub administrator rozpatrzy go ponownie.


Z pozdrowieniami,
Zespół AMXX.PL
Odpowiedz
Zablokowany