←  Prośby o modyfikacje modów

AMXX.pl: Support AMX Mod X i SourceMod

»

JailBreak
Oznacz gracza kolorkiem.

Bombel1's Photo Bombel1 20.02.2014

Witam.

 

Potrzebuję plugin, który oznacza graczy różnym kolorem.

 

Proszę o zrobienie.

 

Jest to w formie menu na komendę /oznacz

Gdy się to wpisze wyskakuje menu z oznaczeniem graczy kolorami :

 

1. Niebieski

2. Czerwony

3. Zielony

4. Błękitny

5. Fioletowy / Rożowy

6. Żółty

7. Pomarańczowy

 

0. Wyjście

 

Oznaczać graczy moze tylko CT ! Czyli CT oznacza Terrorystów.

 

Najpierw wybiera gracza np.

1. Bartek

 

a później otwiera mu się menu z góry z kolorami

Gdy już wybierze na say wyskakuje info :

 

Gracz Bartek został oznaczony kolorem niebieskim

 

Proszę o zrobienie !

Quote

  • +
  • -
sweeper's Photo sweeper 20.02.2014

#include <amxmodx>
#include <amxmisc>
#include <fakemeta_util>

new opcja, gracz_id[33], wybrany;
new name[33];

public plugin_init() {
	register_plugin("plugin", "1.0", "sweeper");
	
	register_clcmd("say /oznacz", "oznacz");
	
}

public oznacz(id)
{
	if(get_user_team(id) != 2)
		return PLUGIN_HANDLED;

	new tytul[64];
	format(tytul, 63, "\rJB Kolor Menu");
	new menu = menu_create(tytul, "oznacz_handler");
	menu_additem(menu, "Ustaw Kolor");
	
	menu_display(id, menu);
	
	return PLUGIN_HANDLED;
}

public oznacz_handler(id, menu, item)
{
	if(!is_user_connected(id))
		return PLUGIN_CONTINUE;
		
	if(item == MENU_EXIT)
	{
		menu_destroy(menu);
		return PLUGIN_CONTINUE;
	}
	
	switch(item)
	{
		case 0:
		{
			Gracz(id);
			opcja = 1;
		}
	}
	
	return PLUGIN_CONTINUE;
}

public Gracz(id)
{
	new menu = menu_create("Wybierz gracza:", "Gracz_handler");
	
	for(new i=0, n=0; i<=32; i++)
	{
		if(!is_user_connected(i))
			continue;
		gracz_id[n++] = i;
		new nazwa_gracza[64];
		get_user_name(i, nazwa_gracza, 63)
		menu_additem(menu, nazwa_gracza, "0", 0);
	}
	menu_display(id, menu);
}

public Gracz_handler(id, menu, item)
{
	if(item == MENU_EXIT)
	{
		menu_destroy(menu);
		return PLUGIN_CONTINUE;
	}
	
	wybrany = gracz_id[item];
	get_user_name(wybrany, name, 32);
	
	if(opcja == 1)
		wybierz_kolor(id);

	return PLUGIN_HANDLED;
}

public wybierz_kolor(id)
{
	new tytul[25];
	format(tytul, 24, "\yKolory:");
	new menu = menu_create(tytul, "kolory_handler");
	menu_additem(menu, "Niebieski");
	menu_additem(menu, "Zielony");
	menu_additem(menu, "Czerwony");

	menu_display(id, menu);
}

public kolory_handler(id, menu, item)
{
	if(!is_user_alive(id) || !is_user_connected(id))
		return PLUGIN_CONTINUE;
	
	if(item == MENU_EXIT)
	{
		menu_destroy(menu);
		return PLUGIN_CONTINUE;
	}
	
	switch(item)
	{
		case 0:
		{
			fm_set_user_rendering(id, kRenderFxGlowShell, 0, 0, 255, kRenderNormal, 25)
			client_print(id, print_chat, "Ustawiles graczowi %s kolor niebieski!", name);
		}
		case 1:
		{
			fm_set_user_rendering(id, kRenderFxGlowShell, 0, 255, 0, kRenderNormal, 25)
			client_print(id, print_chat, "Ustawiles graczowi %s kolor zielony!", name);
		}
		case 2:
		{
			fm_set_user_rendering(id, kRenderFxGlowShell, 255, 0, 0, kRenderNormal, 25)
			client_print(id, print_chat, "Ustawiles graczowi %s kolor czerwony!", name);
		}

	}
	return PLUGIN_CONTINUE;
}

Nie jest testowany, sprawdź i powiedz czy działa, dodałem tylko 3 podstawowe kolory bo mieszanie RGB dobrze mi nie idzie i już mi się nie chciało nad tym myśleć.

Quote

Bombel1's Photo Bombel1 21.02.2014

Menu działa i kolory też, ale jak wybieram TT do oznaczenia to zamiast TT oznacza mnie.

Wybieram powiedzmy :

 

1. Oznacz gracza , zielony i np. Bartek

Zamiast Bartka ( TT ) oznacza mnie ( CT ).

Quote

  • +
  • -
sweeper's Photo sweeper 23.02.2014

#include <amxmodx>
#include <amxmisc>
#include <fakemeta_util>

new opcja, gracz_id[33], wybrany;
new name[33];

public plugin_init() {
	register_plugin("plugin", "1.0", "sweeper");
	
	register_clcmd("say /oznacz", "oznacz");
	
}

public oznacz(id)
{
	if(get_user_team(id) != 2)
		return PLUGIN_HANDLED;

	new tytul[64];
	format(tytul, 63, "\rJB Kolor Menu");
	new menu = menu_create(tytul, "oznacz_handler");
	menu_additem(menu, "Ustaw Kolor");
	
	menu_display(id, menu);
	
	return PLUGIN_HANDLED;
}

public oznacz_handler(id, menu, item)
{
	if(!is_user_connected(id))
		return PLUGIN_CONTINUE;
		
	if(item == MENU_EXIT)
	{
		menu_destroy(menu);
		return PLUGIN_CONTINUE;
	}
	
	switch(item)
	{
		case 0:
		{
			Gracz(id);
			opcja = 1;
		}
	}
	
	return PLUGIN_CONTINUE;
}

public Gracz(id)
{
	new menu = menu_create("Wybierz gracza:", "Gracz_handler");
	
	for(new i=0, n=0; i<=32; i++)
	{
		if(!is_user_connected(i))
			continue;
		gracz_id[n++] = i;
		new nazwa_gracza[64];
		get_user_name(i, nazwa_gracza, 63)
		menu_additem(menu, nazwa_gracza, "0", 0);
	}
	menu_display(id, menu);
}

public Gracz_handler(id, menu, item)
{
	if(item == MENU_EXIT)
	{
		menu_destroy(menu);
		return PLUGIN_CONTINUE;
	}
	
	wybrany = gracz_id[item];
	get_user_name(wybrany, name, 32);
	
	if(opcja == 1)
		wybierz_kolor(id);

	return PLUGIN_HANDLED;
}

public wybierz_kolor(id)
{
	new tytul[25];
	format(tytul, 24, "\yKolory:");
	new menu = menu_create(tytul, "kolory_handler");
	menu_additem(menu, "Niebieski");
	menu_additem(menu, "Zielony");
	menu_additem(menu, "Czerwony");

	menu_display(id, menu);
}

public kolory_handler(id, menu, item)
{
	if(!is_user_alive(id) || !is_user_connected(id))
		return PLUGIN_CONTINUE;
	
	if(item == MENU_EXIT)
	{
		menu_destroy(menu);
		return PLUGIN_CONTINUE;
	}
	
	switch(item)
	{
		case 0:
		{
			fm_set_user_rendering(wybrany, kRenderFxGlowShell, 0, 0, 255, kRenderNormal, 25)
			client_print(id, print_chat, "Ustawiles graczowi %s kolor niebieski!", name);
		}
		case 1:
		{
			fm_set_user_rendering(wybrany, kRenderFxGlowShell, 0, 255, 0, kRenderNormal, 25)
			client_print(id, print_chat, "Ustawiles graczowi %s kolor zielony!", name);
		}
		case 2:
		{
			fm_set_user_rendering(wybrany, kRenderFxGlowShell, 255, 0, 0, kRenderNormal, 25)
			client_print(id, print_chat, "Ustawiles graczowi %s kolor czerwony!", name);
		}

	}
	return PLUGIN_CONTINUE;
}

Sorki za taki błąd, teraz jest ok. 

Quote

  • +
  • -
GieHa's Photo GieHa 26.02.2014

działa wszytko ładnie a idzie przerobić to tak żeby tylko prowadzący ct mógł oznaczać ? 

Quote

  • +
  • -
sweeper's Photo sweeper 27.02.2014

public oznacz(id)
{
    if(get_user_team(id) != 2 && !jail_get_prowadzacy())
        return PLUGIN_HANDLED;

    new tytul[64];
    format(tytul, 63, "\rJB Kolor Menu");
    new menu = menu_create(tytul, "oznacz_handler");
    menu_additem(menu, "Ustaw Kolor");
    
    menu_display(id, menu);
    
    return PLUGIN_HANDLED;
}

Tak, można. Podmień sobie public oznacz na ten i będzie działało ok.

 

i dodaj natyw pod new name[33]

native jail_get_prowadzacy();

Edited by sweeper, 27.02.2014 14:44.
Quote