←  Pytania

AMXX.pl: Support AMX Mod X i SourceMod

»

Sprawdzenie czy ent nie zostanie stworzony...


Najlepsza odpowiedź Asiap 25.05.2015 23:01

mozna sprawdzic odleglosc od sciany

stock SprawdzPrzeszkode(Float:fOrigin[3], Float:fOdleglosc)
{
	new Float:fStart[3], Float:fEnd[3];

	for(new i; i < 3; i++)
	{
		fStart[i] = fEnd[i] = fOrigin[i];
	}

	fStart[0] += fOdleglosc;
	fEnd[0] -= fOdleglosc;
	if(engfunc(EngFunc_PointContents, fStart) != CONTENTS_EMPTY && engfunc(EngFunc_PointContents, fEnd) != CONTENTS_EMPTY)
	{
		return PLUGIN_CONTINUE;
	}

	fStart[0] -= fOdleglosc;
	fStart[1] += fOdleglosc;
	fEnd[0] += fOdleglosc;
	fEnd[1] -= fOdleglosc;

	if(engfunc(EngFunc_PointContents, fStart) != CONTENTS_EMPTY && engfunc(EngFunc_PointContents, fEnd) != CONTENTS_EMPTY)
	{
		return PLUGIN_CONTINUE;
	}

	return PLUGIN_HANDLED;
}

przyklad:

public Test(id)
{
	new Float:fOrigin[3];
	pev(id, pev_origin, fOrigin);

	if(!SprawdzPrzeszkode(fOrigin, 100.0))
	{
		client_print(id, print_chat, "Brak przeszkody (sciany)");
	}
	else
	{
		client_print(id, print_chat, "Jest przeszkoda (sciana)");
	}
}
Przejdź do postu

  • +
  • -
Rivit - zdjęcie Rivit 25.05.2015

Witam,

jak w temacie...

 

Mam origins, movetype TOSS, solid TRIGGER i

engfunc(EngFunc_SetSize,entit,{-1.1, -1.1, -1.1},{1.1, 1.1, 1.1});
Odpowiedz

  • +
  • -
Najlepsza odpowiedź Asiap - zdjęcie Asiap 25.05.2015

mozna sprawdzic odleglosc od sciany

stock SprawdzPrzeszkode(Float:fOrigin[3], Float:fOdleglosc)
{
	new Float:fStart[3], Float:fEnd[3];

	for(new i; i < 3; i++)
	{
		fStart[i] = fEnd[i] = fOrigin[i];
	}

	fStart[0] += fOdleglosc;
	fEnd[0] -= fOdleglosc;
	if(engfunc(EngFunc_PointContents, fStart) != CONTENTS_EMPTY && engfunc(EngFunc_PointContents, fEnd) != CONTENTS_EMPTY)
	{
		return PLUGIN_CONTINUE;
	}

	fStart[0] -= fOdleglosc;
	fStart[1] += fOdleglosc;
	fEnd[0] += fOdleglosc;
	fEnd[1] -= fOdleglosc;

	if(engfunc(EngFunc_PointContents, fStart) != CONTENTS_EMPTY && engfunc(EngFunc_PointContents, fEnd) != CONTENTS_EMPTY)
	{
		return PLUGIN_CONTINUE;
	}

	return PLUGIN_HANDLED;
}

przyklad:

public Test(id)
{
	new Float:fOrigin[3];
	pev(id, pev_origin, fOrigin);

	if(!SprawdzPrzeszkode(fOrigin, 100.0))
	{
		client_print(id, print_chat, "Brak przeszkody (sciany)");
	}
	else
	{
		client_print(id, print_chat, "Jest przeszkoda (sciana)");
	}
}

Użytkownik Asiap edytował ten post 25.05.2015 23:01
Odpowiedz

  • +
  • -
Rivit - zdjęcie Rivit 26.05.2015

A jeżeli chce sprawdzić czy jest w ścianie to odległość podaje 0.0?
Odpowiedz