←  Pluginy AMXX

AMXX.pl: Support AMX Mod X i SourceMod

»

Challenge - wyzwania i nagrody

  • +
  • -
R3X's Photo R3X 26.03.2011

Challenge
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

Posted Image

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ń:
Posted Image

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

Posted Image
Standardowa


Opcje kompilacji

wersja 0.5 i starsze

Odkomentuj
//#define USING_ORPHEU
jeśli chcesz użyć modułu Orpheu (http://forums.allied...ad.php?t=103855)


Odkomentuj
//#define USING_DHUD
jeś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

Posted Image
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

Quote

  • +
  • -
Misiaczek ;c's Photo 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ć ;P bo ten sam tekst jest w amxhelp.sma :P

Oczywiście duży +
Quote

  • +
  • -
R3X's Photo R3X 26.03.2011

aha no tak :) sądziłem, że kopiuje samą licencję GPL,dzięki
Quote

Skull3D's Photo Skull3D 26.03.2011

A nawet nie powiedziałeś kto napisał opis xD
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.
Quote

radek_b11's Photo radek_b11 26.03.2011

wybaczcie za nie zrozumiałość ale to jest gotowe i zapisuje ? czy trzeba edytować i tworzyć co ma zapisywać ?
Quote

Skull3D's Photo Skull3D 26.03.2011

Samo zapisuje
Tworzy się w bazie danych pliczek i zapisuje.

No ok R3X niech ci będzie xD
Edited by Skull3D, 26.03.2011 21:04.
Quote

  • +
  • -
R3X's Photo R3X 26.03.2011

ja zrobiłem opis, który potem Ty skopiowałeś i był już Twój, a ja go ukradłem; publicznie przepraszam

samo zapisuje, ale tylko to co mu powiesz w tym swoim pluginie, co daje nagrody; dzięki temu system jest lekki dla serwera
Quote

  • +
  • -
Pittero's Photo Pittero 26.03.2011

Zapis na nvalut czy b.danych?
Quote

  • +
  • -
R3X's Photo R3X 26.03.2011

wyłącznie baza danych MySQL
Quote

Skull3D's Photo Skull3D 26.03.2011

R3X popraw nazwę tematu
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.
Quote

  • +
  • -
R3X's Photo R3X 26.03.2011

oczep się od moich błędów :mur: znajdź buga w kodzie i mnie poprawiaj wtedy
Quote

Skull3D's Photo Skull3D 26.03.2011

No i możesz dodać następne update że hs ze wszystkich broni też liczy. ;P
Quote

  • +
  • -
Raku129's Photo Raku129 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?
Quote

  • +
  • -
Misiaczek ;c's Photo 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ć? :)
Quote

  • +
  • -
R3X's Photo R3X 27.03.2011

Aktualizacja do 1.2
- 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
Quote

  • +
  • -
speedkill's Photo speedkill 27.03.2011

A da rade zrobic zeby pokazywało to na stronie :) kto ile ma zabojstw itp :)
Quote

  • +
  • -
R3X's Photo R3X 27.03.2011

tak, ale to w PHP; spróbuję przygotować klasę dedykowaną dla tego pluginu, żeby to było łatwiejsze; nie liczyłbym na zamianę tego w nowe Psychostatsy, nie taka jest idea tego pluginu,

PS. jak ktoś chce przygotować większy skrypt żeby jednak tak było to mogę coś podpowiedzieć, ale sam się za to nie zabieram
Quote

Skull3D's Photo Skull3D 27.03.2011

GJ
Nigdy nie wiedziałem że moje pomysły są dobre.
A jednak się myliłem :)
Quote

  • +
  • -
R3X's Photo R3X 28.03.2011

Aktualizacja do 1.2.2
- bugfix, nie zliczało statów
- automatyczne zapisywanie niestandardowych broni do pliku
Quote

Skull3D's Photo Skull3D 28.03.2011

R3X a może by ktoś dodał do tego staty w php
Quote