Skocz do zawartości

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.
  • Rozpoczynaj nowe tematy i odpowiedaj na inne
  • Zapisz się do tematów i for, aby otrzymywać automatyczne uaktualnienia
  • Dodawaj wydarzenia do kalendarza społecznościowego
  • Stwórz swój własny profil i zdobywaj nowych znajomych
  • Zdobywaj nowe doświadczenia

Dołączona grafika Dołączona grafika

Guest Message by DevFuse
 

Dzik - zdjęcie

Dzik

Rejestracja: 17.11.2009
Aktualnie: Nieaktywny
Poza forum Ostatnio: 16.02.2012 10:22
-----

#233203 Challenge - rakiety oraz miny

Napisane przez R3X w 04.04.2011 17:00

jak skompilowałeś z orpheu i masz ten moduł na serwerze to wystarczy żebyś znał nazwę broni, znajdziesz ją w pluginie albo łatwiej w konsoli, komunikat po śmierci wygląda wtedy tak:

Gracz1 killed Gracz2 with <tutaj_będzie_nazwa_broni>

bierzesz tę nazwę, rejestrujesz jako custom_weapon i włączasz zliczanie
  • +
  • -
  • 1


#230199 Challenge - wyzwania i nagrody

Napisane przez R3X w 26.03.2011 14:57

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

Dołączona grafika

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ń:
Dołączona grafika

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

Dołączona grafika
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

Dołączona grafika
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:

Załączone pliki


  • +
  • -
  • 22


#224265 Wyrzucenie perku podczas zmiany klasy

Napisane przez master. w 11.03.2011 21:48

Podmien to i daj znac czy dziala.
public UstawNowaKlase(id)
{
	new ret;
		
	new forward_handle = CreateOneForward(pluginy_klas[klasa_gracza[id]], "cod_class_disabled", FP_CELL);
	ExecuteForward(forward_handle, ret, id);
	DestroyForward(forward_handle);
		
	forward_handle = CreateOneForward(pluginy_klas[nowa_klasa_gracza[id]], "cod_class_enabled", FP_CELL);
	ExecuteForward(forward_handle, ret, id);
	DestroyForward(forward_handle);
	
	if(ret == 4)	
	{
		klasa_gracza[id] = 0;
		return PLUGIN_CONTINUE;
	}

	ExecuteForward(klasa_zmieniona, ret, id, klasa_gracza[id]);
	
	if(ret == 4)	
	{
		klasa_gracza[id] = 0;
		return PLUGIN_CONTINUE;
	}
	
	klasa_gracza[id] = nowa_klasa_gracza[id];
	nowa_klasa_gracza[id] = 0;
	WczytajDane(id, klasa_gracza[id]);
        UstawPerk(id, 0, 0, 0); 
	client_print(id, print_chat, "[COD:MW] Twoj perk ulegl zniszczeniu.");
	return PLUGIN_CONTINUE;
}

  • +
  • -
  • 1


#223418 Ograniczenie rozdawania statystyk

Napisane przez Goliath w 09.03.2011 17:45

Działa to tak, gdyż np. inteligencja_gracza[id] nie łączy się ze zmienną inteligencja_klas. Aby to naprawić zmień:
if(inteligencja_gracza[id] < 100)

Na:
if(inteligencja_gracza[id] + inteligencja_klas[klasa_gracza[id]] < 100)

  • +
  • -
  • 1