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.
|
exgige
Rejestracja: 13.08.2009Aktualnie: Nieaktywny
Poza forum Ostatnio: 29.06.2015 10:36





Statystyki
- Grupa: Użytkownik
- Całość postów: 14
- Odwiedzin: 1 619
- Tytuł: Początkujący
- Wiek: Wiek nie został ustalony
- Urodziny: Data urodzin nie została podana
-
Płeć
Nie podano
-
Lokalizacja
Gdańsk
Kontakt
Narzędzia użytkownika
Znajomi
exgige nie posiada znajomych
#264958 [PROBLEM]Deathrun Timer By R3X
Napisane przez Hiroshima
w 01.07.2011 13:22
amx_drstats_print_result 2
lista cvarow w samym pluginie.... moze poczytaj... Na deathrun`a staty i rank - AMXX.pl: Support AMX Mod X
#264964 [PROBLEM]Deathrun Timer By R3X
Napisane przez Hiroshima
w 01.07.2011 13:30
#69839 Tworzenie menu
Napisane przez R3X
w 27.06.2009 17:39
Stary temat składa się tylko z jednej części i autor chyba nie zamierza kontynuować, więc opiszę tworzenie menu od podstaw.
Kilka słów wstępu.
Najpierw zajrzyj do komend i operacji bitowych. Pisząc tutorial zakładam, że czytelnik wie jak budować komendy i co to jest suma bitowa.
W przykładowych źródłach celowo pomijam stałe nagłówki (#include, #define) w celu zmniejszenia objętości tekstu. Kod bez nich się nie skompiluje!
Po pierwsze trzeba wiedzieć, że mamy do dyspozycji 2 metody tworzenia menu:
- tzw. stara↵ - ręczna, wymaga więcej przygotowania, ale jest elastyczniejsza
- tzw. nowa↵ - korzystamy z przygotowanych zasobów, za organizację menu odpowiadają natywne funkcje AMXX
Formatowanie ⇑
Niezależnie od metody, treść menu formatujemy tymi samymi znakami, a oto one:
^n - nowa linia ^t - tabulator \w - dalszy tekst będzie miał kolor biały \y - dalszy tekst będzie miał kolor zółty \r - dalszy tekst będzie miał kolor czerwony \d - dalszy tekst będzie miał kolor szary \R - dalszy tekst będzie wyrównany do prawej
Przykładowe (stare) menu
na początku y, więc tekst do następnego znaku zmiany koloru będzie żółty\yWidzisz to menu?^n^n\w1. Tak^t2. Nie
jako kolejne rozpoznajemy ^n, czyli po nagłówku "Widzisz to menu?" przechodzimy do nowej linii
następny ^n tworzy linijkę odstępu
teraz mamy w, czyli dalszy tekst będzie biały
ostatni jest ^t, który oddzieli opcję 'tak' od 'nie'
Efekt:
Metoda 1 ⇑
Nasze menu jest pokazywane przy użyciu funkcji
show_menu ( index, keys, const menu[], time = -1, title[] = "" )index - id gracza
keys - suma odpowiadająca używanym klawiszom, tylko te, które się w niej zawierają będą rozpoznawane przez menu
const menu[] - treść menu, czyli to co zostanie pokazane graczowi
time - czas utrzymania menu na ekranie w sekundach, -1 oznacza, aż do naciśnięcia klawisza z menu
title[] - tytuł, potrzebny do rozpoznania menu
Korzystając z wcześniejszego przykładu menu:
public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR) register_clcmd("mymenu","mymenu"); } public mymenu(id){ show_menu(id, MENU_KEY_1| MENU_KEY_2, "yWidzisz to menu?^n^nw1. Tak^t2. Nie"); return PLUGIN_HANDLED; }Z nowości mamy:
jest to suma bitowa stałych MENU_KEY_1 i MENU_KEY_2. Pierwsza odpowiada klawiszowi 1 (slot1), druga klawiszowi 2 (slot2). Razem stanowią zbiór klawiszy przechwytywanych przez menu.MENU_KEY_1| MENU_KEY_2
Ogólnie mamy do dyspozycji 10 klawiszy:
#define MENU_KEY_1 (1<<0) #define MENU_KEY_2 (1<<1) #define MENU_KEY_3 (1<<2) #define MENU_KEY_4 (1<<3) #define MENU_KEY_5 (1<<4) #define MENU_KEY_6 (1<<5) #define MENU_KEY_7 (1<<6) #define MENU_KEY_8 (1<<7) #define MENU_KEY_9 (1<<8) #define MENU_KEY_0 (1<<9)
Ok, pokazaliśmy graczowi menu, zdefiniowaliśmy klawisze, na które menu reaguje. Pora na przechwycenie zdarzeń menu.
Najpierw musimy przypisać naszemu menu jakąś publiczną funkcję. Służy do tego funkcja z
register_menu ( title[], keys, function[], outside=0 )title - tytuł, potrzebny do rozpoznania menu, musi być dokładnie taki sam jak w show_menu
keys - suma klawiszy, powinna zawierać wszystkie możliwe do użycia w naszym menu klawiszy (np. gdy jedna z opcji jest dostępna tylko dla żywych graczy, jej klawisz również powinien być zsumowany)
function - nazwa publicznej funkcji, do której zostanie przekazane id i klawisz
outside - zmienimy na 1, gdy menu będzie z zewnętrznego źródła (inny plugin, silnik gry)
Kod powinien wyglądać tak:
public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR) register_clcmd("mymenu","mymenu"); register_menu("MyMenu",MENU_KEY_1|MENU_KEY_2,"cbMyMenu"); } public mymenu(id){ show_menu(id,MENU_KEY_1|MENU_KEY_2, "yWidzisz to menu?^n^nw1. Tak^t2. Nie",-1,"MyMenu"); return PLUGIN_HANDLED; } public cbMyMenu(id, key){ }
Suma klawiszy powtarza się, więc użyjmy stałej. Argumenty funkcji cbMyMenu to id gracza i użyty klawisz. Przyciski numerowane są od zera, więc naciśnięcie 1 prześle key=0, naciśnięcie 2 prześle key=1 itd. Dość mylące rozwiązanie, zwłaszcza patrząc na klawisz 0, dla którego key=9

#define MYMENU_KEYS MENU_KEY_1|MENU_KEY_2 public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR) register_clcmd("mymenu","mymenu"); register_menu("MyMenu",MYMENU_KEYS,"cbMyMenu"); } public mymenu(id){ show_menu(id, MYMENU_KEYS, "yWidzisz to menu?^n^nw1. Tak^t2. Nie", -1, "MyMenu"); return PLUGIN_HANDLED; } public cbMyMenu(id, key){ client_print(id, print_chat, "Wybrales opcje: %d", key+1); }Aby przypisać operacje danemu klawiszowi wygodnie jest zastosować switch().
#define MYMENU_KEYS MENU_KEY_1|MENU_KEY_2 public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR) register_clcmd("mymenu","mymenu"); register_menu("MyMenu",MYMENU_KEYS,"cbMyMenu"); } public mymenu(id){ show_menu(id,MYMENU_KEYS, "yWidzisz to menu?^n^nw1. Tak^t2. Nie",-1,"MyMenu"); return PLUGIN_HANDLED; } public cbMyMenu(id, key){ switch(key){ case 0:{ client_print(id, print_chat, "Wybrales opcje Tak"); } case 1:{ client_print(id, print_chat, "Wybrales opcje Nie"); } } }
Oczywiście można dodać opcję Anuluj, dodając do sumy klawisz 0 i zmienić nieco treść menu. Nie trzeba dodawać case 9:, gdyż menu automatycznie zamknie się po złapaniu klawisza i nie ma potrzeby wykonywania innych czynności. Gdy chcesz zachować menu na wierzchu nawet po naciśnięciu klawisza za strukturą switch wywołaj funkcję mymenu(id), która ponownie je wyświetli.
------------------------------------------------------------------------------------------------------------------------------------------------
Metoda 2 ⇑
Nowy styl stworzenia menu pozwala na dynamiczne nim zarządzanie. Tworzeniem treści menu zajmują się przygotowane funkcję, nasza praca polega na dostarczeniu informacji.
Pierwszą operacją jest stworzenie uchwytu. Pozostałe operacje wymagają do niego odwołania. Jeśli pokazujemy wszystkim to samo menu uchwyt może mieć zasięg globalny, a menu utworzone w plugin_init(). W innym razie menu tworzymy tuż przed wyświetleniem. Główna funkcja to:
menu_create ( title[], handler[], ml=0 )title[] - tytuł, tutaj służy również za nagłówek menu (jeśli nie podamy własnego)
handler[] - nazwa publicznej funkcji, do której przekazywane będą informacje z menu
ml=0 - przestało być używane, nie podajemy
Podawanie klawiszy, na które reaguje menu jest niepotrzebne. Funkcja wyświetlająca potrafi rozpoznać niezbędne klawisze, zależnie od dostępnych opcji.
new gMyMenu public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR) gMyMenu=menu_create("Jak sie przywitasz?","cbMyMenu"); } public cbMyMenu(id, menu, item){ }
Tym razem funkcja cbMyMenu ma aż 3 argumenty: id - index gracza, menu - uchwyt menu, oraz item. Ten ostatni argument zawiera numer wybranej opcji (numerowane od zera). Pozwala np. za pomocą switch() przyporządkować operacje danej opcji. Jest to szczególnie wygodne przy menu wielostronnym. Trzeba pamiętać, że wartość item może być mniejsza od zera - opcja wyjścia z menu to item=-3.
Do dodawania opcji służy funkcja:
menu_additem(menu, const name[], const info[]="", paccess=0, callback=-1);menu - uchwyt menu
const name[] - tekst opcji
const info[] - informacja wewnętrzna, w większości menu wartość nieistotna
paccess - poziom dostępu do menu, tak samo jak w przypadku komend, np. ADMIN_BAN
callback - w tym miejscu możemy przypisać funkcję kontrolną, o której później
new gMyMenu; public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR) gMyMenu=menu_create("Jak sie przywitasz?","cbMyMenu"); menu_additem(gMyMenu,"Witam");//item=0 menu_additem(gMyMenu,"Czesc");//item=1 menu_additem(gMyMenu,"Przyszedl Admin :D","",ADMIN_CHAT);//item=2 } public cbMyMenu(id, menu, item){ switch(item){ case 0:{ client_cmd(id, "say Witam"); } case 1:{ client_cmd(id, "say Czesc"); } case 2:{ client_cmd(id, "say Przyszedl Admin :D"); } } }
Mamy menu pokażmy je graczowi.
menu_display(id, menu, page=0);id - index gracza
menu - uchwyt menu
page - podstrona menu
new gMyMenu; public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR) register_clcmd("mymenu","mymenu"); gMyMenu=menu_create("Jak sie przywitasz?","cbMyMenu"); menu_additem(gMyMenu,"Witam");//item=0 menu_additem(gMyMenu,"Czesc");//item=1 menu_additem(gMyMenu,"Przyszedl Admin :D","",ADMIN_CHAT);//item=2 } public mymenu(id){ menu_display(id, gMyMenu,0); return PLUGIN_HANDLED; } public cbMyMenu(id, menu, item){ switch(item){ case 0:{ client_cmd(id, "say Witam"); } case 1:{ client_cmd(id, "say Czesc"); } case 2:{ client_cmd(id, "say Przyszedl Admin :D"); } } }
Żeby pokazać więcej o nowym stylu menu przeniosę uchwyt i tworzenie do mymenu(id). Podstawą różnicą jest potrzeba zniszczenia menu po zakończeniu pracy.
menu_destroy ( menu )menu - uchwyt menu
public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR) register_clcmd("mymenu","mymenu"); } public mymenu(id){ new MyMenu=menu_create("Jak sie przywitasz?","cbMyMenu"); menu_additem(MyMenu,"Witam");//item=0 menu_additem(MyMenu,"Czesc");//item=1 menu_additem(MyMenu,"Przyszedl Admin :D","",ADMIN_CHAT);//item=2 menu_display(id, MyMenu,0); return PLUGIN_HANDLED; } public cbMyMenu(id, menu, item){ switch(item){ case 0:{ client_cmd(id, "say Witam"); } case 1:{ client_cmd(id, "say Czesc"); } case 2:{ client_cmd(id, "say Przyszedl Admin :D"); } } menu_destroy(menu); return PLUGIN_HANDLED; }
menu_destroy() sprawia, że nasz uchwyt staje się bezużyteczny, czyści pamięć zajmowaną dotychczas przez menu. Oczywiście zamiast go niszczyć, możemy zostawić menu na ekranie. Wystraczy w cbMyMenu ponownie wywołać menu_display(). Wtedy nie powinniśmy dopuścić do wywołania menu_destroy a zwrócić nie PLUGIN_HANDLE tylko PLUGIN_CONTINUE, np. tak:
public cbMyMenu(id, menu, item){ switch(item){ case 0:{ client_cmd(id, "say Witam"); menu_display(id, menu); return PLUGIN_CONTINUE; } case 1:{ client_cmd(id, "say Czesc"); } case 2:{ client_cmd(id, "say Przyszedl Admin :D"); } } menu_destroy(menu); return PLUGIN_HANDLED; }Efekt: Gdy wybierzemy "Witam" menu pozostanie na ekranie.
Funkcja kontrolna
Do każdej z opcji możemy przypisać taką funkcję. Będzie ona decydować czy dana opcja jest aktywna (biała) czy nieaktywna (szara, bez reakcji na swój przycisk).
Najpierw utwórzmy uchwyt, tym razem dla publicznej funkcji.
menu_makecallback(const function[])zwróconą wartość przekażemy do menu_additem:
public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR) register_clcmd("mymenu","mymenu"); } public mymenu(id){ new MyMenu=menu_create("Jak sie przywitasz?","cbMyMenu"); new MyMenuFun=menu_makecallback("mcbMyMenu"); menu_additem(MyMenu,"Witam","",0,MyMenuFun);//item=0 menu_additem(MyMenu,"Czesc","",0,MyMenuFun);//item=1 menu_additem(MyMenu,"Przyszedl Admin :D","",ADMIN_CHAT,MyMenuFun);//item=2 menu_display(id, MyMenu,0); return PLUGIN_HANDLED; } public cbMyMenu(id, menu, item){ switch(item){ case 0:{ client_cmd(id, "say Witam"); } case 1:{ client_cmd(id, "say Czesc"); } case 2:{ client_cmd(id, "say Przyszedl Admin :D"); } } menu_destroy(menu); return PLUGIN_HANDLED; } public mcbMyMenu(id, menu, item){ return ITEM_ENABLED; }Przypisana funkcja ma taką postać. Zwracana wartość decyduje o aktywności opcji. Ta funkcja sprawi, że wszystkie opcje będą aktywne. Zwrócenie ITEM_DISABLED spowoduje brak aktywności wszystkich/danej opcji zależnie od zastosowania.
public mcbMyMenu(id, menu, item){ return ITEM_ENABLED; }
Np. przez taką funkcję
public mcbMyMenu(id, menu, item){ if(item==1) return ITEM_DISABLED; return ITEM_ENABLED; }Opcja "Czesc" będzie nieaktywna:
Dostosowanie
W starym stylu wygląd menu znacznie bardziej zależy od nas, jednak projektowanie menu o kilku stronach może być kłopotliwe. Nowa metoda tworzenia mimo schematycznej budowy ma kilka opcji, które pozwalają dostosować treść menu, ale oczywiście w mniejszym stopniu.
Potrzebuje nowej funkcji:
menu_setprop(menu, prop, ...);menu - uchwyt menu
prop - wartość z listy:
#define MPROP_PERPAGE 1 /* Liczba opcji na stronę (param1 = liczba, 0=bez stronnicowania, 7=domyślnie) */ #define MPROP_BACKNAME 2 /* Nazwa opcji Back/Wstecz (param1 = tekst) */ #define MPROP_NEXTNAME 3 /* Nazwa opcji Next/Dalej (param1 = tekst) */ #define MPROP_EXITNAME 4 /* Nazwa opcji Exit/Wyjście (param1 = tekst) */ #define MPROP_TITLE 5 /* Nagłówek menu (param1 = tekst) */ #define MPROP_EXIT 6 /* Opcja wyjścia? (param1 = liczba, MEXIT_ALL - zawsze, MEXIT_NEVER- nidgy) */ #define MPROP_NOCOLORS 8 /* Czy usunąć automatyczne kolory(param1 = liczba, 0=domyślnie) */ #define MPROP_NUMBER_COLOR 10 /* Kolor opisów przycisków (param1 = tekst, "r"=domyślny) */
Przykład użycia:
public mymenu(id){ new MyMenu=menu_create("Jak sie przywitasz?","cbMyMenu"); new MyMenuFun=menu_makecallback("mcbMyMenu"); menu_additem(MyMenu,"Witam","",0,MyMenuFun);//item=0 menu_additem(MyMenu,"Czesc","",0,MyMenuFun);//item=1 menu_additem(MyMenu,"Przyszedl Admin :D","",ADMIN_CHAT,MyMenuFun);//item=2 //opcja wyjścia "Wyjście" zamiast "Exit" menu_setprop(MyMenu,MPROP_EXITNAME,"Wyjscie"); //zawsze pokaż opcję wyjścia menu_setprop(MyMenu,MPROP_EXIT,MEXIT_ALL); //kolor cyfry przycisku zmień na żółty menu_setprop(MyMenu,MPROP_NUMBER_COLOR,"y"); menu_display(id, MyMenu,0); return PLUGIN_HANDLED; }
Rezultat:
Podsumowanie
Stare menu jest znacznie elastyczniejsze, pozwala nam wpłynąć bezpośrednio na całą treść menu, jednak wymaga więcej pracy. Nowy styl menu, zwłaszcza połączony z globalnymi tablicami standardowymi/dynamicznymi, pozwala nam znacznie zautomatyzować menu. Musimy wybrać między metodami zależnie od zapotrzebowania. Obie są składnikiem biblioteki , więc ma problemu wyboru modułów.
Początkującym programistom Pawna pod AMXX polecam nowy styl - unikniecie wielu błędów.
PS. Do zamknięcia obu menu możemy użyć funkcji:
#define hide_menu(%1) show_menu(%1,0,"^n") /* To samo co public hide_menu(id) show_menu(id,0,"^n"); */
Dodatek ⇑
W przykładach menu otwierało się na komendę. Aby pokazać je zaraz po wejściu na serwer należy użyć kodu:
#define TASK_SHOWMENU 12000 public client_putinserver(id) set_task(1.0, "show_menu_", id+TASK_SHOWMENU); public show_menu_(tid){ new id=tid-TASK_SHOWMENU; new iTeam=get_user_team(id); new menu_id, keys; new menuUp = player_menu_info( id, menu_id, keys ); if ( iTeam && (menuUp <= 0 || menu_id < 0) ) //Tu pokazujemy menu mymenu(id); else set_task(1.0, "show_menu_", tid); }który nie pozwoli nadpisać menu wyboru drużyny i modelu.
#262677 Screen Menu
Napisane przez R3X
w 25.06.2011 12:44
v0.4.2
Biblioteka zamknięta w pliku .amxx do tworzenia kołowych menu. Można je spotkać w nowoczesnych grach jak Crisis czy Prototype, więc może się przydać też w CSie. Wybieranie opcji jest całkiem wygodne i spokojnie może zastąpić kilka bindów.
Maksymalna ilość opcji została na stałe zablokowana na wartość 8. API biblioteki jest zgodne z Nowym stylem menu Zobacz opis, z tym , że funkcje zaczynają się smenu_* zamiast menu_*
Przykładowe menu z załącznika ScreenMenu_Test.sma wygląda tak

Wszelkie uwagi i propozycje są mile widziane.
Wymagane pliki:
dhudmessage.inc
Kilka wskazówek:
smenu_create("nazwa", "mcbScreenMenu", "mcbScreenMenuOver");
pierwsza funkcja jest wywoływana po zamknięciu menu i przekazuje informacje na jakiej opcji gracz zatrzymał się ostatnio
druga funkcja jest wywoływana po każdej zmianie aktywnej opcji, nie koniecznie musimy łapać to zdarzenie i można spokojnie pominąć ten parametr
poprawne użycie menu wymaga sekwencji smenu_display ... smenu_exit, w przykładowym kodzie naciśnięcie klawisza E pokazuje menu, a puszczenie E wyłącza menu; moment wyjścia jest traktowany jak wybór opcji, gracz wybiera to co go interesuje przez puszczenie klawisza
to samo możemy zrobić za pomocą komendy aktywnej
register_clcmd("+menu", "wlaczMenu"); register_clcmd("-menu", "wylaczMenu");
bind f +menu
w wlaczMenu robimy display w wylaczMenu exit, wtedy gdy gracz puszcza klawisz F plugin dostaje info o wybranej opcji
smenu_setprop umożliwia konfigurację menu, w następnych wersjach będzie tego więcej, obecnie mamy:
#define SMPROP_SHOW_DESCRIPTION 1 /* Czy pokazywac opis po najechaniu na opcje, param1=number */ #define SMPROP_NORMAL_COLOR 2 /* Kolor normalny, param1=number[3] */ #define SMPROP_OVER_COLOR 3 /* Kolor po najechaniu na opcje, param1=number[3] */ #define SMPROP_DISABLED_COLOR 4 /* Kolor wylaczonej opcji, param1=number[3] */ #define SMPROP_TITLE_COLOR 5 /* Kolor tytulu, param1=number[3] {0, 0, 0} ukrywa tytul*/ #define SMPROP_PREFIX 6 /* Prefiks opcji, param1=string[8], domyslnie takie C z kropka*/czyli można włączyć/wyłączyć pokazywanie podpowiedzi i pokolorować napisy po swojemu
Aktualizacja:
0.4.2
- wywalony spam na chacie
0.4.1
- kursor już nie wariuje
0.4
- wyeliminowano 2 bugi: smenu_display nie działał w callbacku oraz get_info nie pobierało info tylko 2 razy nazwę
0.3
- dodano dynamiczną wersję menu (bez stałego punktu widzenia)
0.2
- dwa nowe pola set_prop
#define SMPROP_TITLE_COLOR 5 /* Kolor tytulu, param1=number[3] {0, 0, 0} ukrywa tytul*/ #define SMPROP_PREFIX 6 /* Prefiks opcji, param1=string[8], domyslnie takie C z kropka*/- wyświetlany tytuł menu
- nowe przykładowe pliki
- możliwość dostosowania położenia menu (komenda +smenu)
0.1
- pierwsza publikacja
Załączone pliki
-
ScreenMenu-0.4.2.zip 9,84 KB 284 Ilość pobrań
#186008 Serwer się wyłączył i nie chce się włączyć
Napisane przez
hardbot
w 06.11.2010 00:34
[AMXX] Plugin file open error (plugin "ptb_PL.amxx")
[AMXX] Plugin file open error (plugin "GHW_MOTD.amxx")
[AMXX] Plugin file open error (plugin "Map_Spawns_Editor.amxx")
#134448 No fall damage dla wszystkich
Napisane przez
hardbot
w 12.05.2010 18:50
#144419 [VIP] Ultimate Hot v2.7
Napisane przez
hardbot
w 15.06.2010 21:44

Najnowsza Aktualizacja Pluginu w końcu wyszła! VIP Ultimate Hot v2.7
NEWDodano plik Config: VipUltimateHot.cfg
Niżej Notatki z Pluginu:
/* Struktura Kodu -> Dunno
* Maksymalna Edycja -> [H]ARDBO[T]
*
* ChangeLog:
*
* v2.5
* # Dodane Powitanie VIP'a
* # Nowe Reklamy w Say
* # Zmienione Cvary(PL)
* # Wyeliminowane Bugi
* # Dodane Lepsze Bronie do Menu
* # Troche Spolszczony Plugin
* # Łatwa zmiana flagi przy [ #define FLAGA ADMIN_LEVEL_H | //Można zmienić z ADMIN_LEVEL_H na np: ADMIN_KICK//]
* # Dodana opcja Dźwiękowa
* # Dodana opcja Dźwiękowa jak VIP wchodzi na serwer
* # Dodane modele VIP'a dla Obu drużyn lub dla Ogólnego #
* # Zoptymalizowany Plugin <- Lekkie żarty
*
* v2.6
* $ Poprawione większość Bugów które miały miesce w Pluginie!
* $ Zmienione Cvary
* $ Zmobilizowano Bronie
* $ Łatwa zmiana flagi
* $ Modyfikacja struktury kodu
* $ Dodano modele do danej drużyny ( Dodany tutorial w Temacie jak je odblokować )
* $ Dodano informacje w Tabeli Wyników że gracz ma VIPa (po środku pisze VIP) *Poprawiono bug!
*
* v2.7 UPDATE
* @ Dodano nowe "MENU ADMINA", łatwe manerwy dla admina poprzez cvary w menu
* @ Dodano nowe efekty w MOTD badz w MENU (zmieniane w "admin menu")
* @ Dodano też zapis konfiguracji w MENU ADMINA do pliku nVault o nazwie "VipUltimateHot_v2.7"
*
*
* Cvars:
*
* vip_kasa_za_obrazenia "3" //Dodaje 3$ za zadane obrazenia
* vip_kasa_za_zabicie "200" //Dodaje 200$ za zabicie
* vip_kasa_za_hs "500" //Dodaje 500$ za zabicie headshote
* vip_hp_za_zabicie "15" //Dodaje 15HP (jeśli vip ma mniej niż "vip_max_hp") za zabicie
* vip_hp_za_hs "30" //Dodaje 30HP (jeśli vip ma mniej niż "vip_max_hp") za zabicie
* vip_max_hp "100" //Do ilu HP ma ladowac za zabica z cvarow ("vip_hp_za_hs" i "vip_hp_za_zabicie")
* vip_menu "1" //Czy vip ma miec menu z brońmi na start rundy? (ustawiane w menu admina)
* vip_awp "1" //Czy vip ma miec tylko awp? (ustawiane w menu admina)
* vip_info_online "1" //Jak maja sie ukazywac vipy online? (ustawiane w menu admina)
* vip_connect_info "1" //Czy ma sie ukazywac informacja o polaczeniu sie vipa do serwa (ustawiane w menu admina)
*
* Komendy w say:
*
* /cmd //Ukazuje Menu Admina w którym admin zmienia cvary dla vipów
* /vips //Ujawnia Vipow Online (ukazuje albo w MOTD lub MENU (ustawiane w menu admina))
* /vipinfo //Ukazuje z pliku "cstrike/vip.txt" informacje(dołączam swój plik
)
*/

vip_kasa_za_obrazenia "3"
vip_kasa_za_zabicie "200"
vip_kasa_za_hs "500"
vip_hp_za_zabicie "15"
vip_hp_za_hs "30"
vip_max_hp "100"
vip_menu "1"
vip_awp "1"
vip_info_online "1"
vip_connect_info "1"
vip_add_grenade "1"
vip_add_meney "500"

Jak dać komuś VIP'a:(tekst pogrubioną czcionką wklejamy do user.ini i modyfikujemy

Kto jak chcesz sobie ustawia

b - Flaga Rezerwująca Slot na serwerze
i - Flaga umożliwiająca pisanie na AdminChat. NP: wpis w "say @@ Siema All"
t - Flaga dostępu do przywilejów VIP'a

Vip na SteamID - "STEAMID" "" "bit" "ca"
Vip na IP - "ip" "" "bit" "de"
Vip na Nick i Hasło - "nick" "hasło" "bit" "a"
Flagę możemy zmienić w pluginie, szukamy na górze pluginu:
#define FLAGA ADMIN_LEVEL_H i zmieniamy sobie z ADMIN_LEVEL_H na taką jaka odpowiada vipowi

Flagi - Nieoficjalny polski support AMX Mod X <- Cvarem ustawiamy nazwę flagi nie jej cyfrę!

Zawartość packa wrzucamy do cstrike
Opisowa instalacja dla początkujących

Folder vip wrzucamy do cstrike/sound/misc
Plugin Vip_Ultimate_Hot_v2.7.amxx wrzucamy do cstrike/addons/amxmodx/plugins
Potem wchodzimy do cstrike/addons/amxmodx/config edytujemy plik plugins.ini i na sam dół dopisujemy Vip_Ultimate_Hot_v2.7.amxx
Plik Vip_Ultimate_Hot_v2.7.sma wrzucamy do cstrike/addons/amxmodx/scripting
Plik vip.txt wrzucamy do cstrike i modyfikujemy do swoich potrzeb (Wersja HTML w nim zrobiona prze zemnie


Należy odblokować następujące moduły: cstrike , fun , nvault
//Plik z colorcha'tem dołączam do załącznika jeśli ktoś by nie miał.

Zdjęcia z Gry:
Po wpisaniu w say /vips ukazuje nam się okienko


lub VIPs Online w MENU
DODANO ZDJĘCIE

NEW Po wpisaniu w say /cmd admin z flagą "H" może zmieniać ustawienia vipom

DODANO ZDJĘCIE

Menu z Broniami Vipa


Informacje o vipie po w pisaniu w say /vipinfo (Byłem na New Game wiec



[Tutorial] Dodanie 2 Wyglądów CT I TT VIP - Nieoficjalny polski support AMX Mod X <- NOWOŚĆ MODELE
Pamiętaj nigdy nie proś o modyfikacje i o byle jakie głupoty w tym Temacie!
Wszelakie BUGI, Proszę zgłaszać Tutaj!
Przepraszam was lecz Nowa Wersja nie została przetestowana w większym stopniu ze względu na 'Chacknięte konto Steam + Brak CS (NS to paści)'
Nowa Aktualizacja Już Gotowa! Proszę Pobierać!
Pamiętaj pobierając Mój UPLOAD zawsze dodaje do niego 10% Danych Naprawczych!
Załączone pliki
-
Vip Ultimate Hot v2.7.rar 117,79 KB 3789 Ilość pobrań
-
Vip_Ultimate_Hot_v2.7.sma 20,98 KB 1904 Ilość pobrań
Vip_Ultimate_Hot_v2.7.amxx
#125196 Problemy z Rourterem D-Link Dir 635
Napisane przez
Dr. House
w 11.04.2010 16:37
Acha, i kliknij Virtual Server i pokaż mi screen, bo u mnie all jest tam

- AMXX.pl: Support AMX Mod X i SourceMod
- → Przeglądanie profilu: Reputacja: exgige
- Regulamin