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

[ROZWIĄZANE] Odrzut graczy w promieniu X


Najlepsza odpowiedź ^Grzyboo , 06.12.2013 14:26

Łap :D

#include <amxmodx>
#include <amxmisc>
#include <engine>

new const Float:fStrength = 500.0;	// Sila odepchniecia
new const Float:fDistance = 200.0;	// Jak blisko musi byc gracz, zeby zostac odepchnietym

new sprite_white;

public plugin_init()
{
	register_plugin("NewPlugin", "v1.01", "Grzyboo")
	
	register_clcmd("say /push", "Push");
}

public plugin_precache()
	sprite_white = precache_model("sprites/white.spr") ;

public Push(id)
{
	
	new iPlayers[33];
	new num = find_sphere_class(id, "player", fDistance, iPlayers, 32);
	
	new vOrigin[2][3], Float:fOrigin[2][3];
	get_user_origin(id, vOrigin[0]);
	entity_get_vector(id, EV_VEC_origin, fOrigin[0]);
	
	for (new i=0; i < num; i++)
	{	
		if(get_user_team(id) == get_user_team(iPlayers[i]))	// Odpychajacy i odepchniety sa z jednego teamu ==> ignoruj
			continue;
		
		entity_get_vector(iPlayers[i], EV_VEC_origin, fOrigin[1]);
		
		for(new b = 0; b <= 2; b++)
		{
			fOrigin[1][b] -= fOrigin[0][b];
			
			if(fOrigin[1][b] >= 0)
				fOrigin[1][b] += fStrength;
			else
			fOrigin[1][b] -= fStrength;
		}
		
		entity_set_vector(iPlayers[i], EV_VEC_velocity, fOrigin[1]);
	}
	
	//Efekt wizualny
	message_begin( MSG_BROADCAST, SVC_TEMPENTITY, vOrigin[0] );
	write_byte( TE_BEAMCYLINDER );
	write_coord( vOrigin[0][0] );
	write_coord( vOrigin[0][1] );
	write_coord( vOrigin[0][2] );
	write_coord( vOrigin[0][0] );
	write_coord( vOrigin[0][1] + floatround(fDistance) );
	write_coord( vOrigin[0][2] + floatround(fDistance) );
	write_short( sprite_white );
	write_byte( 0 ); // startframe
	write_byte( 0 ); // framerate
	write_byte( 10 ); // life
	write_byte( 10 ); // width
	write_byte( 255 ); // noise
	write_byte( 255 ); // red
	write_byte( 255 ); // green
	write_byte( 255 ); // blue
	write_byte( 128 ); // brightness
	write_byte( 5 ); // speed
	message_end();
}

Przejdź do postu


  • Zamknięty Temat jest zamknięty
1 odpowiedź w tym temacie

#1 Andrzejek

    Ucze się :]

  • Power User

Reputacja: 136
Zaawansowany

  • Postów:1 300
  • Imię:Andrzej
Offline

Napisano 05.12.2013 23:06

Witam, mam takie pytanko, zawsze miałem problem z robieniem funkcji dotyczących np. odrzutu graczy od siebie w promieniu X o sile Y i miał bym do was prośbę czy dał by ktoś rade powiedzieć jak zrobić fale która odpycha graczy odemnie? A fala się powtarza powiedzmy co 30 sek, nie chodzi mi o zrobienie taka bo to sam umiem zrobić tylko o samą funkcje która by odpychała graczy odemnie w promieniu x o sile Y oraz żeby było widać (nie wiem jak to się nazywa, ale np. w apteczce w modzie Call Of Duty, gdy postawimy apteczkę widać promień w jakim ona leczy chyba wiecie jak się to nazywa, bo ja nie znam fachowej nazwy ^^).

 

Pozdrawiam


  • +
  • -
  • 0

Mam do sprzedania pluginy AMXX pod serwery typu, JB, ONLY DD2, ZOMBIE, COD MOD, DR i inne...

 

Jeżeli jesteś zainteresowany(a), napisz na PW lub GG 42384104


#2 ^Grzyboo

    Wszechobecny

  • Użytkownik

Reputacja: 246
Wszechwidzący

  • Postów:461
  • Imię:Grzyboo
  • Lokalizacja:Tak
Offline

Napisano 06.12.2013 14:26   Najlepsza odpowiedź

Łap :D

#include <amxmodx>
#include <amxmisc>
#include <engine>

new const Float:fStrength = 500.0;	// Sila odepchniecia
new const Float:fDistance = 200.0;	// Jak blisko musi byc gracz, zeby zostac odepchnietym

new sprite_white;

public plugin_init()
{
	register_plugin("NewPlugin", "v1.01", "Grzyboo")
	
	register_clcmd("say /push", "Push");
}

public plugin_precache()
	sprite_white = precache_model("sprites/white.spr") ;

public Push(id)
{
	
	new iPlayers[33];
	new num = find_sphere_class(id, "player", fDistance, iPlayers, 32);
	
	new vOrigin[2][3], Float:fOrigin[2][3];
	get_user_origin(id, vOrigin[0]);
	entity_get_vector(id, EV_VEC_origin, fOrigin[0]);
	
	for (new i=0; i < num; i++)
	{	
		if(get_user_team(id) == get_user_team(iPlayers[i]))	// Odpychajacy i odepchniety sa z jednego teamu ==> ignoruj
			continue;
		
		entity_get_vector(iPlayers[i], EV_VEC_origin, fOrigin[1]);
		
		for(new b = 0; b <= 2; b++)
		{
			fOrigin[1][b] -= fOrigin[0][b];
			
			if(fOrigin[1][b] >= 0)
				fOrigin[1][b] += fStrength;
			else
			fOrigin[1][b] -= fStrength;
		}
		
		entity_set_vector(iPlayers[i], EV_VEC_velocity, fOrigin[1]);
	}
	
	//Efekt wizualny
	message_begin( MSG_BROADCAST, SVC_TEMPENTITY, vOrigin[0] );
	write_byte( TE_BEAMCYLINDER );
	write_coord( vOrigin[0][0] );
	write_coord( vOrigin[0][1] );
	write_coord( vOrigin[0][2] );
	write_coord( vOrigin[0][0] );
	write_coord( vOrigin[0][1] + floatround(fDistance) );
	write_coord( vOrigin[0][2] + floatround(fDistance) );
	write_short( sprite_white );
	write_byte( 0 ); // startframe
	write_byte( 0 ); // framerate
	write_byte( 10 ); // life
	write_byte( 10 ); // width
	write_byte( 255 ); // noise
	write_byte( 255 ); // red
	write_byte( 255 ); // green
	write_byte( 255 ); // blue
	write_byte( 128 ); // brightness
	write_byte( 5 ); // speed
	message_end();
}


  • +
  • -
  • 1




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

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