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

Przerobienie radaru


  • Zamknięty Temat jest zamknięty
4 odpowiedzi w tym temacie

#1 Windowspl

    Profesjonalista

  • Użytkownik

Reputacja: 7
Nowy

  • Postów:190
  • GG:
  • Imię:Patryk
  • Lokalizacja:Warszawa
Offline

Napisano 13.05.2011 12:25

Witam.

Mam plugin "Radar" i jak ktoś wpisz w konsoli testradar to dostaje radar a jak zrobić tak żeby ten radar był tylko na 1 runde ? Lub do zginięcia ?


#include <amxmodx>
#include <fun>
#include <cstrike>

public plugin_init() 
{

	register_concmd("testradar","radar_scan",ADMIN_IMMUNITY);
	set_task(2.0, "radar_scan", _, _, _, "b");
}


public radar_scan(id)
{
	
	new PlayerCoords[3];
                
	for (new id=1; id<=32; id++)
	{
		if(!is_user_alive(id))
			continue;
                        
		for (new i=1;i<=32;i++)
		{       
			if(!is_user_alive(i) || get_user_team(i) == get_user_team(id)) 
				continue;
			
			get_user_origin(i, PlayerCoords)

			message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("HostagePos"), {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, get_user_msgid("HostageK"), {0,0,0}, id)
			write_byte(i)
			message_end()
		}
	}
}	

  • +
  • -
  • 0

#2 R3X

    Godlike

  • Przyjaciel

Reputacja: 2 987
Godlike

  • Postów:4 248
  • Lokalizacja:Nie
Offline

Napisano 13.05.2011 12:37

Musisz przypilnować w globalnej tablicy i czyścić ją w na początku rundy

new bool:gbUzylJuz[33];

public plugin_init() {
	register_plugin(PLUGIN, VERSION, AUTHOR)
	
	register_logevent( "eventRoundStart",2, "1=Round_Start");
}

public eventRoundStart(){
	for(new i=1;i<33;i++)
		gbUzylJuz[i] = false;
}

public uzyj(id){
	if(gbUzylJuz[id]){
		//Juz uzyl
		return PLUGIN_HANDLED;
	}
	
	gbUzylJuz[id] = true;
}

Oczywiście jak już naprawisz swój plugin (task i komenda na 1 funkcji?)
  • +
  • -
  • 0

#3 Windowspl

    Profesjonalista

  • Autor tematu
  • Użytkownik

Reputacja: 7
Nowy

  • Postów:190
  • GG:
  • Imię:Patryk
  • Lokalizacja:Warszawa
Offline

Napisano 13.05.2011 12:49

a do public radar_scan coś trzeba dodać ?
public radar_scan(id)
{
	
	new PlayerCoords[3];
                
	for (new id=1; id<=32; id++)
	{
		if(!is_user_alive(id))
			continue;
                        
		for (new i=1;i<=32;i++)
		{       
			if(!is_user_alive(i) || get_user_team(i) == get_user_team(id)) 
				continue;
			
			get_user_origin(i, PlayerCoords)

			message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("HostagePos"), {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, get_user_msgid("HostageK"), {0,0,0}, id)
			write_byte(i)
			message_end()
		}
	}
}

Oczywiście jak już naprawisz swój plugin (task i komenda na 1 funkcji?)

?

Użytkownik Windowspl edytował ten post 13.05.2011 12:49

  • +
  • -
  • 0

#4 vaverix

    Życzliwy

  • Użytkownik

Reputacja: 29
Życzliwy

  • Postów:29
  • GG:
  • Lokalizacja:Warszawa
Offline

Napisano 13.05.2011 14:13

Witam,

proszę bardzo:

#include <amxmodx>

#define MAX_PLAYERS 20

new g_enemy, g_enemydie;

public plugin_init() 
{
	register_concmd("testradar","radar_scan");
	register_logevent("nowa_runda",2,"1=Round_Start");
	
	g_enemy = get_user_msgid("HostagePos");
	g_enemydie = get_user_msgid("HostageK");
}

public client_disconnect(id)
{
	if(task_exists(id))
		remove_task(id);
}

public nowa_runda()
{
	for(new i=1;i<33;i++)
	{
		if(task_exists(i))
			remove_task(i);
	}
}

public radar_scan(id)
{
	if(!(get_user_flags(id) & ADMIN_IMMUNITY) || !is_user_alive(id))
		return PLUGIN_HANDLED;
	
	new PlayerCoords[3];
    
	for (new i=1; i<=MAX_PLAYERS; i++)
	{
		if(!is_user_connected(i) || !is_user_alive(i) || get_user_team(i) == get_user_team(id)) 
			continue;
		
		get_user_origin(i, PlayerCoords);
		
		message_begin(MSG_ONE_UNRELIABLE, g_enemy, {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_enemydie, {0,0,0}, id);
		write_byte(i);
		message_end();
	}
	if(!task_exists(id))
		set_task(2.0, "radar_scan", id, _, _, "b");
	
	return PLUGIN_HANDLED;
}	

*.sma i *.amxx w załączniku :)

Załączone pliki


Użytkownik vaverix edytował ten post 13.05.2011 15:05

  • +
  • -
  • 1

#5 Windowspl

    Profesjonalista

  • Autor tematu
  • Użytkownik

Reputacja: 7
Nowy

  • Postów:190
  • GG:
  • Imię:Patryk
  • Lokalizacja:Warszawa
Offline

Napisano 13.05.2011 14:13

Dziękuje +
  • +
  • -
  • 0




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

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