v.0.6.1
Z powodu sposobu konfiguracji przeznaczony jest dla osób obeznanych z pisaniem własnych pluginów.
Zainteresowanych zapraszam do tematu: [Challenge] Gotowce i przykłady - AMXX.pl: Support AMX Mod X
Pomysłem zarzucił: Skull3D - Przeglądanie profilu - AMXX.pl: Support AMX Mod X
Platforma do tworzenia wyzwań i nagradzania za ich spełniania. Używa bazy danych do gromadzenia statystyk graczy dla konkretnych broni i tylko tych, które wybierzemy. Oprócz tego sumuje czas spędzony na serwerze oraz zapisuje datę pierwszego połączenia, dzięki temu możemy wykryć kto gra długo / od dawna i też przypisać takim graczom jakiś bonus.
Można udostępnić graczom listę wyzwań:
Przewidziałem 3 przypadki zapisywania statystyk:
- statystyki broni standardowych
- czyli zabicia z kałacha czy m4, DeathMsg łapane zawsze
- statystyki broni niestandardowych
- czyli zabicia z magicznych przedmiotów czy skilli, DeathMsg łapane zawsze tylko z użyciem Orpheu, bez tego modułu trzeba używać Ham_TakeDamage lub emessagebegin()
- statystyki broni własnych
- czyli staty za cokolwiek chcemy, sami dodajemy punkty funkcją ch_add_user_stats()
Wyzwania definiujemy w osobnym pluginie. Mogą one łączyć opisane wyżej przypadki, a także uwzględniać czas gry na serwerze.
Włączenie zapisywania statystyk danej broni to wywołanie w plugin_init()
challenge_uses_stats(wid);np.
challenge_uses_stats(CSW_KNIFE);
oznacza, że plugin będzie zbierał informację o zabiciach z noża.
Pobranie zgromadzonych statystyk gracza umożliwia funkcja
ch_get_user_stats(id, wid, hs=0);
Od wersji 0.2 możemy dodawać własne pola statystyk, nie koniecznie związane z zabijaniem. Wśród przykładów dałem opcję zapisywania ilości rozbrojonych i podłożonych bomb (folder custom/).
Ważne
Skompilowanie z dołączeniem orpheu spowoduje łapanie wszystkich informacji o zabójstwach, bez nich zapisywane są tylko te wyrządzone Ham_TakeDamage lub z użyciem emessagebegin()
Sygnatury funkcji zapożyczone z Funkcja you] Advanced - AMXX.pl: Support AMX Mod X
Standardowa
Opcje kompilacji
wersja 0.5 i starsze
Odkomentuj
//#define USING_ORPHEUjeśli chcesz użyć modułu Orpheu (http://forums.allied...ad.php?t=103855)
Odkomentuj
//#define USING_DHUDjeśli chcesz użyć efektów Dynamiczny HUD - AMXX.pl: Support AMX Mod X
Wygląda to mniej więcej tak: YouTube - Challenge DHUD.wmv
od 0.5.1
dostępne są 2 cvary: amx_challenge_useorpheu i amx_challenge_usedhud
aby użyć orpheu należy go zainstalować na serwerze i ustawić pierwszy cvar na 1
to samo z dhud, należy go zainstalować na serwerze i ustawić ten drugi cvar na 1
Dane mogą być zapisywane na 2 sposóby:
SQLite (domyślnie)
- w pliku na serwerze
- wymaga odblokowanego modułu sqlite w modules.ini
- plik bazy może zostać stworzony przez plugin tylko jeśli ma do tego prawo (chmod 600), możliwe, że trzeba będzie wrzuć pusty plik o podanej w cvarze nazwie na FTP
Ustawienia:
//SQLite amx_challenge_sqltype "sqlite" amx_challenge_host "" amx_challenge_user "" amx_challenge_pass "" amx_challenge_db "addons/amxmodx/data/challenge.db" amx_challenge_prefix ""
MySQL
- osobny serwer bazy danych
- wymaga odblokowanego modułu mysql w modules.ini
- łatwiej o prezentację na stronie WWW i jest bardziej niezawodny
Ustawienia:
//MySQL amx_challenge_sqltype "mysql" amx_challenge_host "localhost" amx_challenge_user "root" amx_challenge_pass "root" amx_challenge_db "challenge" amx_challenge_prefix ""
amx_challenge_save 1|2|3
- typ zapisu
- 1 - steamid
- 2 - nick
- 3 - ip
amx_challenge_list_available 0|1
- włącz/wyłącz możliwość podglądu wyzwań, ustawienie na 0 blokuje komendę /challenge
amx_challenge_bots 0|1|2
- zapisywanie statystyk botów
- 0 - nie zapisu
- 1 - tylko grające
- 2 - wszystkie
amx_challenge_minplayers 0
- wymagana ilość grających graczy na serwerze do zliczania statystyk
amx_challnege_usedhud 0
- czy używać DHUD (jeśli dostępne)
amx_challnege_orpheu 0
- czy używać Orpheu (jeśli dostępne)
Zmiany:
0.6.1
- poprawiona numeracja
- nowa funkcjonalność: możliwość podania koloru wiadomości
native challenge_show_custom_info(id, const szChallenge[], const szAward[], const iColor[3] = {255, 255, 255});
0.6.0
- poprawiona kolejka DHUD
0.5.2
- bugfix: plugin tworzył zbędny, kumulujący się plik temp.txt
0.5.1
- usunięty bug z motd po wyjściu z menu challenge
- nowy cvar: amx_challenge_minplayers
- nowy cvar: amx_challenge_useorpheu
- nowy cvar: amx_challenge_usedhud
- nowy natyw: challenge_get_state
- nowy natyw: ch_set_user_stats
- forward client_gain_point : można zablokować dodanie punkty zwracając PLUGIN_HANDLED
0.5
- możliwość tworzenia grup wyzwań
wystarczy je przypisać funkcją challenge_set_group() z tą samą nazwą grupy
0.4
- rozszerzone API
- nowy funkcja: client_data_loaded(id){} informuje o wczytaniu danych z bazy
- nowa funkcja: client_gain_point(id, wid, hs){} informuje o przyznaniu punktu
0.3.1
- informacje o zdobytych osiągnięciach (klient może wyłączyć je komendą /infooff)
- lista wyzwań i postęp: komenda /challenge
0.3
- współpraca z SQLite,
0.2.2
- bugfix, nie zliczało statów
- automatyczne zapisywanie niestandardowych broni do pliku
0.2.1
- wrzucało zbędne wpisy w logach, teraz już nie
0.2
- możliwa współpraca z Orpheu
- funkcja zmiany statystyk
0.1.2
- nie dodaje istniejącej już niestandardowej broni
Gotowe wyzwania: