Challenge - wyzwania i nagrody
R3X
26.03.2011
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:
Attached Files
Misiaczek ;c
26.03.2011
/* AMX Mod X
* Admin Help Plugin
*
* by the AMX Mod X Development Team
* originally developed by tcquest78
*
* This file is part of AMX Mod X.
*
*
* This program is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the
* Free Software Foundation; either version 2 of the License, or (at
* your option) any later version.
*
* This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software Foundation,
* Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
* In addition, as a special exception, the author gives permission to
* link the code of this program with the Half-Life Game Engine ("HL
* Engine") and Modified Game Libraries ("MODs") developed by Valve,
* L.L.C ("Valve"). You must obey the GNU General Public License in all
* respects for all of the code used other than the HL Engine and MODs
* from Valve. If you modify this file, you may extend this exception
* to your version of the file, but you are not obligated to do so. If
* you do not wish to do so, delete this exception statement from your
* version.
*/
To pogrubione można by zmienić bo ten sam tekst jest w amxhelp.sma
Oczywiście duży +
Skull3D 26.03.2011
GJ.
No i mogłeś napisać pomysłodawce
@@Edit
Znajdź:
oraz przykład użycia niestandardowych broni (heas_splash)Zamień na:
oraz przykład użycia niestandardowych broni (head_splash)
Edited by Skull3D, 26.03.2011 15:14.
radek_b11 26.03.2011
Skull3D 26.03.2011
Tworzy się w bazie danych pliczek i zapisuje.
No ok R3X niech ci będzie
Edited by Skull3D, 26.03.2011 21:04.
R3X
26.03.2011
samo zapisuje, ale tylko to co mu powiesz w tym swoim pluginie, co daje nagrody; dzięki temu system jest lekki dla serwera
Skull3D 26.03.2011
Dopiero zauważyłem.
nagordy zamień na nagrody
//@@EDIT
Ok ale chciałem żeby to ładnie wyglądało.
Nie złość się .
Edited by Skull3D, 26.03.2011 21:09.
Raku129
27.03.2011
Czas grania, ile zabójstw, ile z tej broni ile z tej itd. coś podobnego jak psychostaty?
Misiaczek ;c
27.03.2011
Da się to tak zrobić że zapisuje na nick i na stronie na której to zrobimy np. nazwastrony/statystyki będziemy mieć taką tabelkę i tam mamy top 100 na pierwszej stronie itd.
Czas grania, ile zabójstw, ile z tej broni ile z tej itd. coś podobnego jak psychostaty?
Da się, czemu ma sie nie dać?
R3X
27.03.2011
- skompilowanie z orpheu.inc umożliwia łapanie wszystkich wiadomość DeathMsg w grze, oczywiście moduł Orpheu musi być na uruchomiony serwerze
- dodanie funkcji zwiększania licznika broni, dzięki czemu sami możemy rozdawać punkty
R3X
27.03.2011
PS. jak ktoś chce przygotować większy skrypt żeby jednak tak było to mogę coś podpowiedzieć, ale sam się za to nie zabieram
R3X
28.03.2011
- bugfix, nie zliczało statów
- automatyczne zapisywanie niestandardowych broni do pliku