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
 

snejqu1 - zdjęcie

snejqu1

Rejestracja: 29.11.2011
Aktualnie: Nieaktywny
Poza forum Ostatnio: 04.04.2012 21:26
-----

#390562 [ROZWIĄZANE] Jak wyłączyć ff oraz freezeTime

Napisane przez SuabY w 03.04.2012 14:36

Łączys sie z FTP SERWERA. Wchodzisz w cstrike, nastepnie na dole masz plik server.cfg, otwierasz go ( jezeli uzywasz total commandera) używając F4.
W tym pliku masz wszystkie komendy które możesz zmienić, podaje Ci przykładowy moj server.cfg

hostname "nazwa serwera"
sv_contact "email@admin"
sv_region "3"
rcon_password "hasło rcon"
sv_password ""
log "on"
mp_logdetail "0"
mp_logmessages "1"
mp_timelimit "20" //czas mapy
mp_consistency "1"
mp_autokick "1"
mp_autoteambalance "1" // balance w teamach
mp_c4timer "30" //czas wybuchu bomby
mp_flashlight "1"
mp_footsteps "1" // głos kroków
mp_forcechasecam "0"
mp_freezetime "4" // zamrożenie na początku rundy // 0-10 czas zamrożenia na początku rundy
mp_friendlyfire "0" // atakowanie swoich // 1- Włączone, 0-Wyłączone
mp_limitteams "2"
mp_hostagepenalty "2"
mp_roundtime "2" // Czas rundy
mp_tkpunish "1"
mp_startmoney "800" // Pieniądze na poczatek 1 Rundy
mp_chattime "0"
sv_maxspeed "320"
sv_cheats "0"
mp_falldamage "1"
allow_spectators "0"
decalfrequecy "60"
sv_lan "0"
secure "1"
sv_proxies "1"
sv_allowupload "1"
sv_aim "0"
pausable "0"
sv_allowdownload "1"
sv_downloadurl "adres ftp"
sv_voicequality "3"
sv_voiceenable "1"
sv_voicecodec "voice_speex"
sv_alltalk "0"
  • +
  • -
  • 1


#389640 co to za plugin

Napisane przez K!113r w 01.04.2012 14:51

Tak, ten plugin daje kasę i fraga za asyste (zabranie 50 hp i więcej, ustawiane cvarem)

Eh, nie odświeżyłem :P

  • +
  • -
  • 1


#389634 co to za plugin

Napisane przez Maniek974 w 01.04.2012 14:43

Tak ale do ranku chyba nie ida
  • +
  • -
  • 1


#389632 co to za plugin

Napisane przez Drzanas w 01.04.2012 14:43

Co za problem porównać http://amxx.pl/topic...a-przy-zabiciu/?
No ale tak, to to samo.
  • +
  • -
  • 1


#109357 Natywy

Napisane przez R3X w 03.02.2010 00:34

Natywy

1. Opis

Funkcje natywne są dostępne dla każdego zainstalowanego pluginu AMXX. Udostępniają funkcje natywne tworzymy z naszego pluginu jakby dodatkową bibliotekę. Dzięki temu mamy możliwość podziału większego dzieła nie tylko na pliki, a na osobne pluginy. Pozwala to na dużą elastyczność kodu oraz pracę z krótszymi, mniej skomplikowanymi programami.

Krótko: Możemy korzystać z danych jednego pluginu w innym.


2. Przygotowanie

Aby to zadziałało potrzeba dwóch współgrających elementów:

  • pluginu-biblioteki, który obsługuje funkcje
  • pliku .inc, który pozwoli korzystać z tych funkcji w innym pluginie
No i pluginu, który będzie korzystał z dobrodziejstw biblioteki.


Na potrzeby tego artykułu stworzę testową bibliotekę <nicto> (czyt. "nic to")

INC
Weźmy się najpierw za plik .inc. Raz dołączony plik nie będzie więcej potrzebny, więc żeby nie powodował problemów ograniczymy jego wykonywanie:

#if defined _nicto_included
	#endinput
#endif

#define _nicto_included

sprawdzamy czy stała "_nicto_included" istnieje (wymyślamy coś własnego, nazwa powinna być unikatowa)
jeśli tak to kończymy plik (#endinput)
jeśli nie to ją definiujemy, potem dołączana jest reszta pliku

dalej informujemy kompilator, że korzystamy z biblioteki nicto:

#pragma library "nicto"

i dalej nagłówki funkcji(nasze natywy lub forwardy[o nich będzie następny artykuł ;P]), stałe, enumeracje lub całe funkcje (stocki)

cały plik inc może wyglądać np tak:

#if defined _nicto_included
	#endinput
#endif

#define _nicto_included

#pragma library "nicto"

enum stan{
	NIC,
	COS
}

native Float:nic();

native cokolwiek(id, stan:s);

native moze_cos(id, Float:fTime, const szMessage[]);

SMA(1)
Pierwszy kod sma to będzie nasza biblioteka. Sam plugin może działać sobie po swojemu tak jak każdy inny. Kluczowym elementem jest fragment:

public plugin_natives(){
	
}

Po pierwsze rejestrujemy bibliotekę:
register_library("nicto");

Po drugie, trzecie i czwarte:
register_native("nic", "n_nic");
register_native("cokolwiek", "n_cokolwiek");
register_native("moze_cos", "n_moze_cos");

register_native("funkcja_biblioteki", "funkcja_pluginu");
funkcja_biblioteki - to ta z inc`a, będzie wywoływana w innych pluginach
funkcja_pluginu - ona będzie odpowiedzialna za działanie tej pierwszej; jej parametry to id pluginu, w którym wywołano natyw oraz ilość argumentów, zwracany typ musi być zgodny z tym podanym dla funkcja_biblioteki w inc`u


Na tym etapie biblioteka wygląda tak:
#include <amxmodx>
#include <amxmisc>

#define PLUGIN "NicTo Lib"
#define VERSION "1.0"
#define AUTHOR "R3X"


public plugin_init() {
	register_plugin(PLUGIN, VERSION, AUTHOR)
}
public plugin_natives(){
	register_library("nicto");
	register_native("nic", "n_nic");
	register_native("cokolwiek", "n_cokolwiek");
	register_native("moze_cos", "n_moze_cos");
}
//plugin - id pluginu
//params - ilość argumentów
public Float:n_nic(plugin, params){
	
}
public n_cokolwiek(plugin, params){
	
}
public n_moze_cos(plugin, params){
	
}

Funkcja nic ma nagłówek: native Float:nic();
=żadnych parametrów, a zwracać ma floata

skoro 'nic', to możemy zrobić np. to:
public Float:n_nic(plugin, params){
	return 0.0;
}



Funkcja cokolwiek korzysta z typu danych deklarowanego w samym incu. Nic nie stoi na przeszkodzie, aby go tu dołączyć. Problemy się zaczną, gdy będziemy wywoływać własne funkcje natywne w pluginie-bibliotece. Po prostu to nie przejdzie :D



w n_cokolwiek oczekujemy 2 parametrów id, i s; musimy mieć pewność, że są:



public n_cokolwiek(plugin, params){
 	if(params < 2){
 		log_amx("Zbyt malo parametrow funkcji cokolwiek!");
 		return 0;
 	}
 	return 1;

 }



Wartość samych parametrów pobrać nam pozwolą funkcje dla danego typu danych:



get_string(param, dest[], maxlen); // tekst

get_param(param); //komórka pamięci (int, char, bool)

Float:get_param_f(param); //float



get_param_byref(param); // komórka przez referencję

Float:get_float_byref(param); //float przez referencję



get_array(param, dest[], size); //tablica komórek

get_array_f(param, Float:dest[], size); //tablica float`ów




Jako, że tablice bez ‘const’ i jawne referencje pozwalają na zmianę wartości argumentów istnieją też odpowiedniki set_*



set_string(param, dest[], maxlen);


set_param_byref(param, value);

set_float_byref(param, Float:value);



set_array(param, const source[], size);

set_array_f(param, const Float:source[], size);






W każdym przypadku param to numer parametru licząc od lewej zaczynając od 1.





Skupmy się na pobieraniu. Natyw cokolwiek przekazuje id oraz stan:s. Ich wartości w n_cokolwiek to:



new id = get_param(1);
new stan:s = stan:get_param(2);


Aby zachować układ zmiennych i uniknąć ‘tag mismatch’ dokonałem rzutowania do stan:



Załóżmy, że id to index gracza, a funkcja pokazuje mu na czacie komunikat zależny od stanu COS/NIC. Biblioteka powinna teraz wyglądać tak:



#include <amxmodx>
 #include <amxmisc>
 #include <nicto>

 #define PLUGIN "NicTo Lib"
 #define VERSION "1.0"
 #define AUTHOR "R3X"


 public plugin_init() {
 	register_plugin(PLUGIN, VERSION, AUTHOR)
 }

 public plugin_natives(){
 	register_library("nicto");
 	register_native("nic", "n_nic");
 	register_native("cokolwiek", "n_cokolwiek");
 	register_native("moze_cos", "n_moze_cos");

 }
 //plugin - id pluginu
 //params - ilość argumentów
 public Float:n_nic(plugin, params){
 	return 0.0;
 }
 public n_cokolwiek(plugin, params){
 	if(params < 2){
 		log_amx("Zbyt malo parametrow funkcji cokolwiek!");
 		return 0;
 	}

 	new id = get_param(1);
 	if(!is_user_connected(id))
 		return 0;

 	new stan:s = stan:get_param(2);
 	switch(s){
 		case NIC: client_print(id, print_chat, "NIC");
 		case COS: client_print(id, print_chat, "COS");
 	default: return 0;
 	}
 	return 1;
 }

 public n_moze_cos(plugin, params){

 	

 }



Do pełniejszego obrazu natywu potrzebujemy danych z tego pluginu. Utwórzmy tablicę globalną giRandom [33], i przy wejściu na serwer przypiszmy graczowi losową liczbę 0-100.



Niech funkcja może_cos zwróci wartość tablicy z podanego indeksu (id) i wrzuci do logów wartości fTime i szMessage[].



public n_moze_cos(plugin, params){
 	if(params < 3){
 log_amx("Zbyt malo parametrow funkcji moze_cos!");
 		// -1 nie mieści się w przedziale 0-100, więc będzie można wychwycić błąd
 return -1; 
 	}

 	new id = get_param(1);
 	if(id < 0 || id > 32) //nie musi byc gracza, wystarczy ze jest taki indeks w tablicy
 		return -1;

 	new Float:fTime = get_param_f(2);
 	new szMessage[32];
 	get_string(3, szMessage, 31);
 	log_amx("fTime=%f, szMessage = %s",fTime, szMessage);

 	return giRandom[id];

 }

SMA(2)
Teraz pora na plugin, który będzie korzystał z biblioteki. Po prostu dołączamy <nicto> i używamy podanych funkcji np tak:

#include <amxmodx>
#include <amxmisc>
#include <nicto>

#define PLUGIN "New Plug-In"
#define VERSION "1.0"
#define AUTHOR "R3X"


public plugin_init() {
	register_plugin(PLUGIN, VERSION, AUTHOR)
	
	log_amx("Nic:%f", nic());
	register_clcmd("say /cokolwiek","cmdCokolwiek");
}
public cmdCokolwiek(id){
	cokolwiek(id, NIC);
	moze_cos(id, 3.14, "Pi");
	return PLUGIN_CONTINUE;
}


Info:
ważne by plugin korzystający z biblioteki był niżej w plugins.ini niż sama biblioteka. W innym przypadku plugin korzystający z biblioteki musisz przefiltrować natywy:
set_native_filter

Załączone pliki


  • +
  • -
  • 45


#389581 [ROZWIĄZANE] Szukam rundy ROZGRZEWAJĄCEJ

Napisane przez Like. aka Misia w 01.04.2012 13:11

http://amxx.pl/topic...-warmup-pro-56/

Sprawdź
  • +
  • -
  • 1


#388897 [ROZWIĄZANE] Jak dodać RS'y ?

Napisane przez IndeS w 31.03.2012 14:28

A masz plugin odtwarzajacy roundsoundy? Jesli nie to polecam ten --> http://amxx.pl/topic...d-round-sounds/
Tam jest opisane co i jak.
Muzyke z tej paczki wrzucasz do sound/misc i w roundsound.ini podajesz odpowiednią ścieżke.
Jeśli jesteś troche rozgarnięty dasz sobie rade :)
  • +
  • -
  • 1


#388874 [ROZWIĄZANE] Jak wyłączyć FF ?

Napisane przez DarkGL w 31.03.2012 13:53

mp_friendlyfire 0

  • +
  • -
  • 1


#388881 [ROZWIĄZANE] Jak wyłączyć FF ?

Napisane przez Kołodziej w 31.03.2012 14:02

dopisz do amxx.cfg w folderze amxmodmenu/configs/amxx.cfg
  • +
  • -
  • 0


#388876 [ROZWIĄZANE] Jak dodać RS'y ?

Napisane przez Kołodziej w 31.03.2012 13:57

amx_roundsound.amxx wrzucacie do amxmodxplugins
amx_roundsound.sma wrzucacie do amxmodxscripting
roundsound.ini wrzucacie do amxmodxconfigs
do plugins.ini dopisujecie na samym koncu


Teraz najważniejsze...
do roundsound.ini dopisujemy tytuł piosenki + .mp3 np.
lol.mp3
misiek.mp3
Jedno pod drugim UWAGA !! nazwa niemoże zawierać kropek oprócz tej od .mp3
Teraz wystaczy wrzucić dźwięk o nazwie lol i misiek do soundmisc w formacie .mp3
  • +
  • -
  • 1


#387966 Brak "/klasy" w Diablo by Onyke

Napisane przez Onyke w 29.03.2012 17:11

Nie masz tego bo nie dodawałem opisów pod /klasy w mojej wersji.
Możesz dodać sobie sam np z tego poradnika: http://amxx.pl/topic...jszy-opis-klas/
  • +
  • -
  • 1


#387955 Brak "/klasy" w Diablo by Onyke

Napisane przez creepMP3 w 29.03.2012 17:00

Jemu nie chodzi o komendę /klasa tylko /klasy .


#387919 Brak "/klasy" w Diablo by Onyke

Napisane przez dasiek w 29.03.2012 16:35

komenda jest ale czy masz dobre połączenie z bazą sql?
  • +
  • -
  • 1


#339283 jak dodać vipa

Napisane przez mlekowita w 24.12.2011 22:44

Tak dodasz Vipa na SteamID
"STEAM_ID" "" "it" "de"

Tak dodasz Vip na IP
"IP" "" "it" "de"

Tak dodasz Vip na Nick i Hasło
"Nick" "Hasło" "it" "ab"


#335380 [ROZWIĄZANE] Pare pytań związanych z wgrywaniem na ftp

Napisane przez Kolar`. w 17.12.2011 13:17

http://amxx.pl/topic...-poziom-odznak/ skorzystaj z tego