←  Poradniki, Łatki oraz Pluginy

AMXX.pl: Support AMX Mod X i SourceMod

»

CoD Stary
Radar

  • +
  • -
CeLeS's Photo CeLeS 10.09.2010

Witam w tym tutku pokaze wam jak dodac radar pokazujacy wszystkich zywych graczy ;)

Zaczynamy
najpier dodajemy stale nad plugin_init

new const sound_radar[] = "radar.wav";
new g_msgHostageAdd, g_msgHostageDel, g_maxplayers;
new radar[33];

teraz w plugin_init na samym koncu dodajemy
g_msgHostageAdd = get_user_msgid("HostagePos");
	g_msgHostageDel = get_user_msgid("HostageK");
	g_maxplayers = get_maxplayers();
	for (new i = 1; i<=g_maxplayers;i++) radar[i] = false;	
	set_task (2.0,"radar_scan",_,_,_,"b");

w plugin_precache na koncu
precache_sound(sound_radar);

teraz funkcja odpowiedzialna za radar. Najlepiej na samym koncu pluginu dac
//Radar
public radar_scan()
{
	new PlayerCoords[3];
	new id;
	new Players[32];
	new i;
	new playerCount = 0;

	for (id=1; id<=g_maxplayers; id++)
	{
		if((!is_user_alive(id))||(!radar[id])) continue;
		
		if(get_players(Players, playerCount, "a") &&is_user_alive(id))
		{
		playerCount++; 
		}
		
		for (i=1;i<=playerCount;i++)
		{	
			get_user_origin(i, PlayerCoords)
		
			message_begin(MSG_ONE_UNRELIABLE, g_msgHostageAdd, {0,0,0}, id)
			write_byte(id)
			write_byte(i)		
			write_coord(PlayerCoords[0])
			write_coord(PlayerCoords[1])
			write_coord(PlayerCoords[2])
			message_end()
		
			message_begin(MSG_ONE_UNRELIABLE, g_msgHostageDel, {0,0,0}, id)
			write_byte(i)
			message_end()
		}
		emit_sound(id, CHAN_ITEM, sound_radar, 1.0, ATTN_NORM, 0, PITCH_NORM);
	}
}

Ok mamy radar to teraz wybieramy jak go ustawiamy ;)

Mozemy dac go jako przedmiot
wiec w nazwy_przedmiotow dopisujemy
"Radar"//29
i zapamietujemy na jakiej jest pozycji ( u mnie na 29 )

nastepnie opisy_przedmiotow
"Radar pokazuje wszystkich zywych graczy"

teraz musimy wywolac radar w przedmiocie

w public DajPrzedmiot dodajemy nowy case z numerem przedmiotu i
radar[id] = true;

np.
case 29:
			radar[id] = true;

teraz trzeba ustawic aby radar sie wylaczal po wyrzuceniu itemu

w public UsunPrzedmiot na koncu dodajemy
radar[id] = false;

mozemy takze zrobic postac np telegrafista
majaca radar

tworzymy klase wedlug innego tutka xD
nastepnie

w public Odrodzenie(id) po
case Rambo:
		{
			give_item(id, "weapon_famas");
			give_item(id, "weapon_elite");
			ilosc_skokow_gracza[id]++;
		}

tworzymy nowy case zatytulowany Telegrafista i wstawiamy radarek
case Telegrafista:
		{
			give_item(id, "weapon_deagle");
			radar[id] = true;
		}

teraz trzeba zrobic warunek w UsunPrzedmiot
przed
radar[id] = false;
dodajemy
if(klasa_gracza[id] == Telegrafista)
		radar[id] = true;
	else

pod
public Odrodzenie(id)
{
	if(!is_user_alive(id) || !is_user_connected(id))
		return PLUGIN_CONTINUE;
	
	if(nowa_klasa_gracza[id])
	{
		klasa_gracza[id] = nowa_klasa_gracza[id];
		nowa_klasa_gracza[id] = 0;
		strip_user_weapons(id);

dodajemy
radar[id] = false;

i to koniec ;)

Attached Files


Edited by CeLeS, 11.09.2010 09:44.
Quote

  • +
  • -
Intex's Photo Intex 10.09.2010

Super!! Dobra robota xD
Quote

hardbot's Photo hardbot 10.09.2010

A ten Sound od czego :D
Quote

  • +
  • -
CeLeS's Photo CeLeS 10.09.2010

pikanie radarku ;)
co 2 sekundki xD
Edited by CeLeS, 10.09.2010 20:13.
Quote

  • +
  • -
Karrypto's Photo Karrypto 10.09.2010

zrobilem item wedlug instrukcji ale nie pokazuje mi ludzi na radarze ;/
Quote

  • +
  • -
CeLeS's Photo CeLeS 11.09.2010

a zdobyles przedmiot ?
dwa przeczytaj jeszcze raz i zobacz czy czegos nie pominoles...
bledow w kompilacji nie bylo?
Quote

slowly's Photo slowly 11.09.2010

Jak zrobić, aby nie było tego dźwięku?
Quote

  • +
  • -
DarkMatrix975's Photo DarkMatrix975 11.09.2010

może coś źle zrobiłeś Karrypto zobacz dokładnie
Quote

  • +
  • -
Kusek's Photo Kusek 11.09.2010

przed tym daje //
emit_sound(id, CHAN_ITEM, sound_radar, 1.0, ATTN_NORM, 0, PITCH_NORM);

czyli
 //emit_sound(id, CHAN_ITEM, sound_radar, 1.0, ATTN_NORM, 0, PITCH_NORM);
Quote

  • +
  • -
Ortega's Photo Ortega 11.09.2010

Znowu ten sam błąd w przeciągu dnia.. Pytam się jak ma to działać skoro nie rejestrujesz indexu wiadomości?
message_begin(MSG_ONE_UNRELIABLE, g_msgHostageAdd, {0,0,0}, id)

Tworzysz tylko
g_msgHostageAdd

ale już
get_user_msgid("...");

brak.

Tak poza tym, to ta wiadomość nie może wyświetlić graczy z przeciwnej drużyny co za tym idzie item jest bezsensu. No chyba, że shackujesz funkcję od tego, które można znaleźć w HLSDK ;)
Quote

  • +
  • -
CeLeS's Photo CeLeS 11.09.2010

Ortega wyswietla wszystkich zywych... czyli tez z przeciwnego teamu
wlasnie nie idzie zrobic zeby tylko przeciwnikow pokazywalo...
to nie zombie ze tam przeciwnicy sa zdeklarowani

wybac zjadlem w inicie
g_msgHostageAdd = get_user_msgid("HostagePos");
	g_msgHostageDel = get_user_msgid("HostageK");
juz poprawiam! xD

wiec niech wszyscy co korzystali z tutka
dopisza do plugin_init to co wyzej w kodzie jest
Edited by CeLeS, 11.09.2010 09:48.
Quote

  • +
  • -
Cypis''s Photo Cypis' 11.09.2010

radar działa bez zarzutów ;D
Quote

  • +
  • -
KSC21's Photo KSC21 11.09.2010

Skompilowało się bez problemu, dzięki ;) Leci +
Quote

pAC's Photo pAC 09.11.2010

a mozna by bylo tak zrobic zeby cyferki byly na ekranie , pokazujace gdzie grasz sie znajduje tzn odleglosc
i te liczby pokazywaly by sie tam gdzie jest wrog ?
Quote

Karnerrr's Photo Karnerrr 03.01.2011

gdzie jest to UsunPrzedmiot?
Quote

  • +
  • -
Kusek's Photo Kusek 03.01.2011

ctrl+f
Quote

  • +
  • -
NieMaMnie's Photo NieMaMnie 01.04.2011

a czy idzie zrobić tak, żeby np był sobie item radar i pokazywał tych żyjących ale np. po wciśnięciu E pokazuje na 10sekund potem Radar już nie działa - mamy normalny radar..

?
Edited by mamama07, 01.04.2011 23:31.
Quote