Oznacz gracza kolorkiem.
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 !
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ć.
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 ).
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.
GieHa
26.02.2014
działa wszytko ładnie a idzie przerobić to tak żeby tylko prowadzący ct mógł oznaczać ?
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.