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
 

WeBsteR - zdjęcie

WeBsteR

Rejestracja: 23.02.2014
Aktualnie: Nieaktywny
Poza forum Ostatnio: 17.11.2016 20:08
-----

#732409 Zatrzymanie muzyki gdy ktos rozbroił pake

Napisane przez Asiap w 14.11.2016 06:54

#include <amxmodx>

#define USE_MP3 // dodaj 2 slahe ( // ) przed jesli dzwiek jest WAV

new g_iC4Timer, g_iDefaultC4Timer, g_pCvarTimer;

public plugin_init()
{
	register_plugin("C4 Timer", "1.0", "asiap");

	register_event("SendAudio", "EventBombPlanted", "a", "1=0", "2=%!MRAD_BOMBPL");
	register_event("HLTV", "EventNewRound", "a", "1=0", "2=0");
	register_logevent("EventRoundEnd", 2, "1=Round_End");

	g_iDefaultC4Timer = get_pcvar_num(g_pCvarTimer = get_cvar_pointer("mp_c4timer"));
}

public plugin_precache()
{
	#if defined USE_MP3
	precache_generic("sound/misc/bomba.mp3");
	#else
	precache_sound("misc/bomba.wav");
	#endif
}

public EventNewRound()
{
	if(g_iC4Timer)
	{
		remove_task();
		g_iC4Timer = 0;
	}
	g_iDefaultC4Timer = get_pcvar_num(g_pCvarTimer);
}

public EventRoundEnd()
{
	if(g_iC4Timer)
	{
		remove_task();
		#if defined USE_MP3
		client_cmd(0, "mp3 stop");
		#else
		client_cmd(0, "stopsound");
		#endif
		g_iC4Timer = 0;
	}
}

public EventBombPlanted()
{
	g_iC4Timer = g_iDefaultC4Timer;
	set_task(1.0, "BombTimer", _, _, _, "a", g_iC4Timer);
	BombTimer();
}

public BombTimer() {
	static szTime[6];
	format_time(szTime, 5, "%M:%S", g_iC4Timer);

	if(g_iC4Timer == 15)
	{
		#if defined USE_MP3
		client_cmd(0, "mp3 play sound/misc/bomba.mp3");
		#else
		client_cmd(0, "spk misc/bomba");
		#endif
	}

	set_hudmessage(random(256), random(256), random(256), -1.0, 0.4, 2, 1.0, 1.5, 0.01, 0.01);
	show_hudmessage(0, "C4: %s", szTime);

	--g_iC4Timer;
}

  • +
  • -
  • 2


#731918 Odczytywanie punktów drużyny

Napisane przez _McHappy w 29.10.2016 11:44

Łap:

#include <amxmodx>
#include <amxmisc>
#include <cstrike>
#include <orpheu>
#include <orpheu_memory>

#define TASK_SWITCH_TEAMS 777
#define TASK_SHOW_MESSAGE 778

#define set_mp_pdata(%1,%2)  ( OrpheuMemorySetAtAddress( g_pGameRules, %1, 1, %2 ) )
#define get_mp_pdata(%1)     ( OrpheuMemoryGetAtAddress( g_pGameRules, %1 ) )

#define CO_ILE 4 //Tu zmieniamy interwal zamian druzyn (w rundach)

new g_pGameRules;
new g_roundCount;

public plugin_precache()
{
	OrpheuRegisterHook( OrpheuGetFunction( "InstallGameRules" ), "OnInstallGameRules", OrpheuHookPost );
}

public OnInstallGameRules()
{
	g_pGameRules = OrpheuGetReturn();
}

public plugin_init ()
{
	register_plugin( "Zamiana druzyn", "1.1.0", "Arkshine | _McHappy" );
	register_event("TextMsg", "eRestart", "a", "2&#Game_C", "2&#Game_w");
	register_event("HLTV", "event_new_round", "a", "1=0", "2=0");
	register_logevent("GameCommencing", 2, "1=Game_Commencing");
	register_event("SendAudio", "eEndRound", "a", "2&%!MRAD_terwin", "2&%!MRAD_ctwin", "2&%!MRAD_rounddraw");
}

//Jezeli nastepna runda bedzie 'runda zamiany', to wykonujemy zamiane tuz przed nowa runda.
public eEndRound() if( !( (g_roundCount+1) % CO_ILE) ) set_task(4.5, "SwitchTeams", TASK_SWITCH_TEAMS); 

//Funcja wlasciwej zamiany druzyn
public SwitchTeams()
{
	new maxP = get_maxplayers();
	for(new i=1; i<=maxP; i++)
	{
		if(is_user_connected(i))
		switch(get_user_team(i))
		{
			case 1: cs_set_user_team(i, 2);
			case 2: cs_set_user_team(i, 1);
		}
	}
	
	//Wywolujemy zamiane wynikow
	SwitchTeamScores();
	
	//Wyswietlamy odpowiednia informacje, aby gracze sie nie pogubili.
	if(task_exists(TASK_SHOW_MESSAGE)) remove_task(TASK_SHOW_MESSAGE);
	set_task(1.0, "ShowMessage", TASK_SHOW_MESSAGE);
	
}

public event_new_round() ++g_roundCount;

public GameCommencing() g_roundCount=0;

public eRestart() g_roundCount = 0;

//Zamiana wynikow. Po wykonaniu tablica wynikow zostanie odswiezona samoczynnie poprzez event nowej rundy.
public SwitchTeamScores()
{
	new temp=get_mp_pdata("m_iNumCTWins");
	
	set_mp_pdata( "m_iNumCTWins", get_mp_pdata("m_iNumTerroristWins"));
	set_mp_pdata( "m_iNumTerroristWins", temp);
	
	return PLUGIN_HANDLED;
}   

public ShowMessage()
{	
	set_hudmessage(85, 255, 42, -1.0, 0.30, 2, 6.0, 5.0, 0.05, 2.0)
	show_hudmessage(0, "Zamiana druzyn!") //Tekst do wyswietlenia.
}

Do poprawnego działania pluginu wymagany jest moduł Orpheu

Po pobraniu go i zainstalowaniu, pobierz pliki sygnatur i wypakuj je do folderu amxmodx.

Tyle, większość rzeczy w komentarzach :D

Załączone pliki


  • +
  • -
  • 2


#728153 CoD by RiviT (aka TibacK) - 9 różnych odmian i przeróbek + 4 paczki modeli!

Napisane przez Rivit w 12.07.2016 10:24

Witam serdecznie!

Wszystko jest bazowane na CoD Nowy. 2 paczki są 'normalne'. Reszta już jest troszkę pokombinowana ;) Paczka jest dość specyficzna i wiele rzeczy nie podejdzie ze standardowego coda :/ Może sprawić problemy w scriptingu (pozmieniane natywy itp). Sam uznaję, że paczka to nic specjalnego, ale wrzucę, szkoda żeby się zakurzyła. Myślę, że Wam się spodoba, może komuś się przyda.

 

 

Jak mówiłem jest 9 wersji paczek (jest też jako plik tekstowy w załącznikach) i dla każdej jest osobny opis.

Mała ściągawka:

ID 1 --->   CoD | klasy i staty i perki
ID 2 --->   CoD | klasy i staty i 2 perki
ID 3 --->   CoD bez statow | klasy i perki
ID 4 --->   CoD bez statow | klasy i 2 perki
ID 5 --->   CoD bez klas | staty i perki
ID 6 --->   CoD bez klas | staty i 2 perki
ID 7 --->   CoD bez klas i statow | perki
ID 8 --->   CoD bez klas i statow | 2 perki
ID 9 --->   CoD bez klas i perkow | staty

opis

 

1.

Spoiler

 

2.

Spoiler

 

3.

Spoiler

 

4.

Spoiler

 

5.

Spoiler

 

6.

Spoiler

 

7.

Spoiler

 

8.

Spoiler

 

9.

Spoiler

 

 

DODATKOWE INFO:

Spoiler

 

komendy

Kazda paczka posiada listę komend w addons/amxmodx/data/pomoc.txt

 

cvary

Wszystkie są wyciagnięte do codmod.cfg

Reszta konfiguracji jest w silniku CoD, na samym początku. Opisane jest tam jak i co. Po zmianie czegoś silnik trzeba przekompilować i wrzucić nową wersję na serwer.

 

instalacja

Standardzik.

Pobierasz amxmodx_do_kazdej_wersji_paczki, rozpakowujesz i wrzucasz do odpowiednich folderów na serwerze (jak zapyta czy zastąpić plik to zastąp)

potem odpowiednia wersja paczki, którą sobie wybierzesz i tak samo, wrzucasz gdzie trzeba.

(opcjonalne) modele - jeżeli będziesz korzystał to pobierz paczkę i wrzuć na serwer, jeżeli nie korzystasz to w plugins-codmod.ini usuń plugin od podmiany modeli (GHW_weapon_replacement)

 

inne informacje

Każda paczka ma plugin do podmiany modeli (jeżeli nie chcesz modeli to wyłączasz go)

4 zestawy modeli znajdują się tu (plik: modele_do_kazdej_paczki.rar): https://github.com/r...zdej_paczki.rar

w amxx.cfg znajduje się cvar odpowiadajacy za przełaczanie między paczkami modeli (zmiana wymaga zmiany mapy lub restartu serwera)

ghw_zestaw_modeli  x  - możliwe wartości od 1 do 4 włącznie

 

Modyfikacja tej paczki może sprawić kłopoty wielu osobom, ponieważ natywy są pozmieniane, rozwiązania nie są jakieś skomplikowane, ale mogą sprawić kłopoty (tak, uczyłem się różnych rzeczy na tym silniku) itp.

Jest możliwe, że nie będzie działać z innymi pluginami pod CoD (trzeba sprawdzić)

Zapis nVault.

 

Nie będę opisywać perków ani klas, jest ich ponad 100. Pobierz i poczytaj

 

Miłego testowania, pozdrawiam!

 

Lista poprawek od czasu publikacji tej paczki:

Spoiler

 

Zawsze aktualne paczki znajdują się tu: https://github.com/r.../PACZKA COD MOD

Załączone pliki


  • +
  • -
  • 6


#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


#731268 Ts3 bany na stronie

Napisane przez MaxioR w 04.10.2016 21:34

Tu masz gotowy skrypt:

-Lista adminów online

-Lista banów

-Statystyki serwera

https://github.com/Wruczek/ts-website

DEMO

TS3_WEB_DEMO.png


  • +
  • -
  • 2


#731122 Menu broni od 3 rundy na flagę Z.

Napisane przez Asiap w 29.09.2016 15:36

#include <amxmodx>
#include <fakemeta_util>
#include <hamsandwich>

new g_hMenuWeapons, g_iNumRound;

public plugin_init()
{
	register_plugin("Weapons Menu", "1.0", "asiap");

	register_event("HLTV", "EventHLTV", "a", "1=0", "2=0");
	register_logevent("EventRestartGame", 2, "1=Game_Commencing", "1&Restart_Round_");

	RegisterHamPlayer(Ham_Spawn, "Odrodzenie", 1);

	g_hMenuWeapons = menu_create("Menu broni", "HandleWeaponsMenu");
	menu_additem(g_hMenuWeapons, "M4A1 + Deagle", "weapon_m4a1");
	menu_additem(g_hMenuWeapons, "AK47 + Deagle", "weapon_ak47");
	menu_additem(g_hMenuWeapons, "AWP + Deagle", "weapon_awp");
	menu_additem(g_hMenuWeapons, "Famas + Deagle", "weapon_famas");
	menu_setprop(g_hMenuWeapons, MPROP_EXITNAME, "Wyjdz");
}

public EventHLTV()
{
	++g_iNumRound;
}

public EventRestartGame()
{
	g_iNumRound = 0;
}

public Odrodzenie(id)
{
	if(!is_user_alive(id) || g_iNumRound < 3)
	{
		return;
	}

	menu_display(id, g_hMenuWeapons);
}

public HandleWeaponsMenu(id, hMenu, iItem)
{
	if(!is_user_alive(id) || g_iNumRound < 3)
	{
		return;
	}
 
	switch(iItem)
	{
		case MENU_EXIT:
		{
			return;
		}
		default:
		{
			static iBitAccess, iCallback, i, iBitWeapons[32], iNum, szWeapon[24];
			get_user_weapons(id, iBitWeapons, iNum);
 
			for(i = 0; i < iNum; i++) {
				if(~(CSW_ALL_PISTOLS | CSW_ALL_SHOTGUNS | CSW_ALL_SMGS | CSW_ALL_RIFLES | CSW_ALL_SNIPERRIFLES | CSW_ALL_MACHINEGUNS & 1<<iBitWeapons[i]) || !get_weaponname(iBitWeapons[i], szWeapon, 23))
				{
					continue;
				}
 
				engclient_cmd(id, "drop", szWeapon);
			}

			menu_item_getinfo(hMenu, iItem, iBitAccess, szWeapon, 23, _, _, iCallback);
			fm_give_item(id, szWeapon);
			fm_give_item(id, "weapon_deagle");

			setUserAmmo(id, get_weaponid(szWeapon), 90);
			setUserAmmo(id, CSW_DEAGLE, 35);
		}
	}
}

stock setUserAmmo(id, iWeapon, iAmmo)
{
	static iOffset;
	switch(iWeapon)
	{
		case CSW_M4A1, CSW_FAMAS: iOffset = 380;
		case CSW_AK47: iOffset = 378;
		case CSW_AWP: iOffset = 377, iAmmo = 30;
		case CSW_DEAGLE: iOffset = 384;
		default: return;
	}
	set_pdata_int(id, iOffset, iAmmo);
}

  • +
  • -
  • 1


#730629 Najbardziej stabilny hosting ? 2016

Napisane przez Linux' w 12.09.2016 14:13

Oferta pukawki jak i 1shot1kill sa nie mal identyczne co do ceny oraz jakosci wiec ciezko jednocznacznie stwierdzic ktory hosting bedzie lepszy. Mialem okazje testowac juz wiele uslug z roznych hostingow i osobiscie preferuje pukawke. Przekonali mnie do siebie swoja walka o klienta, na zyczenie dodaja bezplatnie do testow vpsy i gry z dluzszym okresem testowym niz 2h.


  • +
  • -
  • 2


#730159 usuwanie wpisu/gracza z bazy mysql

Napisane przez Master Yoga w 29.08.2016 22:16

W przypadku zapisu na nick
DELETE FROM tablee where name = ^"%s^";
W przypadku gdy dysponujemy id użytkownika ( z bazy ).
DELETE FROM tablee where id = %d;
Gdzie:
• tablee - to nazwa twojej tabeli;
• name - to nazwa kolumny;
• id - to nazwa kolumny;
  • +
  • -
  • 3


#729641 jak pobrać 10 ostatnich banów

Napisane przez Asiap w 19.08.2016 14:53

napisane szybko

#include <amxmodx>
#include <sqlx>

new Handle:g_hSqlTuple;

public plugin_cfg()
{
	register_plugin("Last 10 Bans", "1.0", "asiap");

	new iError, szError[128];
	g_hSqlTuple = SQL_MakeDbTuple("host", "user", "pass", "db");
	SQL_SetCharset(g_hSqlTuple, "utf8");

	if(SQL_Connect(g_hSqlTuple, iError, szError, 127) == Empty_Handle)
	{
		set_fail_state("(%i) %s", iError, szError);
	}
}


public Clcmd_ShowBans(id)
{
	static iData[1];
	iData[0] = id;

	return SQL_ThreadQuery(g_hSqlTuple, "GetLastBans", "SELECT `player_name`, `ban_created` FROM `amx_bans` ORDER BY `bid` DESC LIMIT 10", iData, 1);
}

public GetLastBans(iFailState, Handle:hQuery, szError[], iError, iData[])
{
	if(!SQL_NumRows(hQuery))
	{
		return;
	}

	static id, hMenu, szName[41], szCreated[12];

	id = iData[0];
	hMenu = menu_create("Ostatnie 10 banow", "HandleGetLastBans");

	while(SQL_MoreResults(hQuery))
	{
		SQL_ReadResult(hQuery, SQL_FieldNameToNum(hQuery, "player_name"), szName, 40);
		format_time(szCreated, 11, "%d.%m.%Y - %H:%M:%S", SQL_ReadResult(hQuery, SQL_FieldNameToNum(hQuery, "ban_created")));

		menu_additem(hMenu, fmt("%s (%s)", szName, szCreated));
		SQL_NextRow(hQuery);
	}
	menu_display(id, hMenu);
}

public HandleGetLastBans(id, hMenu, iItem)
{
	if(iItem == MENU_EXIT)
	{
		return;
	}
}

  • +
  • -
  • 2


#728963 ReHLDS, Anty-WH, AimBot Detector, Nowe możliwości

Napisane przez tytusek w 05.08.2016 15:53

1.Ogólnie o ReHLDS:
 
Co to ReHLDS?
"Reverse-engineered [/size]HLDS, czyli [/size]ReHLDS[/size] jest silnikiem serwera dla gier GoldSource, takich jak Counter-Strike 1.6. Stworzony został poprzez [/size]inżynierię wsteczną na podstawie oryginalnego engine w wersji 6153 (plik engine_i486.so)."[/size]
 
więcej o ReHLDS > kliknij tutaj
source code > kliknij tutaj
Lista skompilowanych wersji ReHLDS > kliknij tutaj
Lista polskich serverów, które korzystają z ReHLDS > kliknij tutaj
 
na ReHLDS nie działają moduły:
  • OpenGl Detector  mazdan
  • Orpheu
  • Okapi
Co daje nam ReHLDS:
  • lepsza optymalizacja servera, większa wydajność.
  • API do pluginów amxx.
Uwaga zalecane przy ReHLDS oraz dodatków, używanie metamod v1.21p37
 
Uwaga zalecane jest ustawienia tych komend w server.cfg lub amxx.cfg z następującymi wartościami
  • mp_consistency 1
  • sv_rehlds_movecmdrate_max_burst -1 
  • sv_rehlds_stringcmdrate_max_burst -1
Ustawienia do server.cfg dla ReHLDS:
Spoiler

 
2. Zabezpieczenia przed Exploitami
 
 
VoiceTranscoder 2017 RC - Jest to najnowsza wersja kodeka do rozmów pomiędzy graczami Steam i NonSteamów
 
ta wersja różni się od starszym tym, że posiada zabezpieczenie przed flood voice atakiem  w skutek tego ataku server może dostać Crashu
 
Ustawienia VoiceTranscoder.cfg
Spoiler

 
SafeNameAndChat 1.0  - plugin do metamoda co podmienia znaki # % na inne w unicode, więc gracze nadal będą mogli mieć # w nicku i nie powodować żadnych problemów z serverem.
 
Ustawienia SafeNameAndChat.cfg
Spoiler

 
Reauthcheck 0.1.5 odpowiednik FakeDetector dla hlds, jest to plugin do metamoda do wykrywa botów na serverze i zabezpiecza przed problemami co mogą wywołać te boty (Crashe servera).
 
Ustawienia  reauthcheck.cfg
Spoiler


 
Reunion 0.1.75 - jest to odpowiednik najnowszego dproto 0.9.548, posiada w sobie ten modul kilka zabezpieczen jak dproto najnowsze oraz umożliwia łączenie się na serverze graczy Steam + NonSteam
 
Uwaga Reunion nie posiada zmiany nazwy gry w ustawieniach trzeba użyć pluginu do amxmodu 
 
Plugin na zmianę nazwy Gry:
Spoiler

 
Ustawienia reunion.cfg
Spoiler

 
3. AntiCheats
 
Reaimdetector 0.1.3 - plugin do metamoda, który wykrywa podejrzane ruchy myszka i daje za to ostrzeżenia, po zebraniu odpowiedniej ilości ostrzeżeń gracz dostaje bana za Aim Bota
 
instalacja wgrywamy do folderu addons/amxmodx/modules a następnie dopisujemy w addons/amxmodx/configs/modules.ini  reaimdetector
 
Ustawienia znajdują się w addons/amxmodx/configs/reaimdetector/config.cfg
Spoiler

 
Whblocker 1.5.672 - dodatek do metamoda, który blokuje wh częściowo 
 
film prezentujący dokładnie jak blokuje i kiedy kliknij tutaj 
 
Ustawienia config.ini
Spoiler

 

Rechecker 2.3 - plugin do metamoda, umożliwia wykrywania danych plików gracza w jego Counter-Striku i wykonywaniu operacji na tym graczu.
Najlepsze zastosowanie tego dodatku według mnie w tej chwili, wykrywania potencjalnych plików, które umożliwiają Cheatowanie dla danego gracza
Zliczanie po wersji pliku md5 masterserver.vdf i określenie, który polski Master Boost jest najlepszy i daje najlepsze efekty, potrzebny będzie do tego plugin do amxmodu
 
Ustawienia resources.ini
Spoiler

 

Całą paczkę tych wszystkich dodatków, modułów, zabezpieczeń oraz rehlds umieszczam w załączniku oraz tutaj do pobrania > Załączony plik  ReHLDS-paczka tytusa.rar   3,93 MB  2206 Ilość pobrań


  • +
  • -
  • 25


#666827 Sklep Cod Mod by Play [Aktualizacja 02.08.2016]

Napisane przez Dziobak? w 12.10.2014 19:48

Sklep Cod Mod by Play po aktualizacji

 

opis.png

 

Siema, chciałbym się z wami podzielić moim sklepem który miałem przez pewien okres u siebie na serwerze i bardzo dobrze się sprawował i gracze byli zadowoleni. Od dawna chciałem go udostępnić ale jakoś nie było czasu albo mi się nie chciało.

 

Ważne informacje:

Rakiety i inne umiejętności używamy klawiszem E

Nazwę waluty możemy zmienić szukając w *sma

new const say_dolar[]="dolarow";

Jeżeli chcemy zmienić walute to w *sma szukamy:

#define set_waluta  cs_set_user_money
#define get_waluta  cs_get_user_money(id)

i zmieniamy, przykładowo na

#define set_waluta  cod_set_user_coins
#define get_waluta  cod_get_user_coins(id)

dodatkowo pod spodem musimy dodać:

native cod_set_user_coins(id, wartosc);
native cod_get_user_coins(id);

Gdy zmienimy walutę w przedstawionym wyżej mini poradniku wymagany będzie poniższy plugin.

https://amxx.pl/topi...3-system-monet/

 

ss.png

 

Stara Wersja

Spoiler

 

Po aktualizacji

amxx_1470128149__20160802104323_1.pngamxx_1470128176__20160802104323_2.pngamxx_1470128220__20160802104323_3.pngamxx_1470128250__20160802104323_4.pngamxx_1470128280__20160802104323_5.png

 

 

 

komendy.png

/Sklep
/Shop

inneinformacje.png

 

02.08.2015

  • Załadowana aktualizacja pluginu, 
  • zostały skasowane zbędne rzeczy,
  • wyeliminowane bugi jakie w poprzedniej wersji były,
  • wiele więcej....

 

download.png

Załączony plik  cod_shop.sma   30,17 KB  342 Ilość pobrań
  cod_shop.amxx

Załączony plik  sklep.cfg   2,27 KB  209 Ilość pobrań

 

Załączony plik  Sklep 2.5.rar   172,03 KB  677 Ilość pobrań


  • +
  • -
  • 15


#428698 Director Hud Message

Napisane przez ToRRent w 05.07.2012 12:43

Director Hud Message
Autor: Arkshine

15egyno.png
Biblioteka dzięki której możemy wyświetlać wiadomości na bardzo zbliżonej zasadzie do standardowego hudmessage. Czym więc różni się hudmessage od dhumessage ?

- DHud nie posiada limitu kanałów, więc nie musimy się martwić o to, czy jakaś wiadomość zastąpi inną ponieważ posiadają ten sam kanał w tym samym momencie ;)
- Wyświetlić możemy maksymalnie 8 wiadomości na raz
- Jest większa czcionka
Konstrukcja jest zbliżona do standardowych wiadomości więc nikt nie powinien mieć problemów z ewentualną zmianą

Wada ? Wiadomość może mieć maksymalnie 128 znaków

set_dhudmessage( red = 0, green = 160, blue = 0, Float:x = -1.0, Float:y = 0.65, effects = 2, Float:fxtime = 6.0, Float:holdtime = 3.0, Float:fadeintime = 0.1, Float:fadeouttime = 1.5, bool:reliable = false )
show_dhudmessage( index, const message[], any:... )
Oznaczenia:
red, green, blue - paleta kolorów rgb (skala od 0 do 255)
Float:x, Float:y - Współrzędne położenia
effects - Efekty, 0 = brak efektu, 1 = Efekt zanikania, 2 = Efekt Litera po literze
Float:fxtime - Czas działania efektu
Float:holdtime - Ile czasu wiadomość ma być wyświetlana
Float:fadeintime - ile czasu wiadomość ma się pojawiać ? (tylko przy effects = 1 lub 2)
Float:fadeouttime - Ile czasu wiadomość ma znikać ? (tylko przy effects = 1 lub 2)
bool:reliable - Tego za bardzo nie rozkminiłem szczerze mówiąc :) dlatego polecam trzymać się domyślnej wartości false
=======================
index - Id gracza, jeżeli podamy 0 wiadomość zobaczą wszyscy połączeni z serwerem gracze
const message[] - Wiadomość
any... - zmienne do których się odwołujemy w parametrze message[]

Załączony plik  dhudmessage.inc   3,41 KB  2726 Ilość pobrań


Źródło: http://forums.allied...ad.php?t=149210
  • +
  • -
  • 25


#581036 [Poprawione] Kill Streak Wyzwania !

Napisane przez Misiu. w 28.10.2013 19:23

Witam,

nie da się nie zauważyć tego spamu w temacie Wyzwania do KillStreaka 1.4c

- Nie mogę skompilować.
- Mam takie błędy.
- Jak to zrobić.

Faktycznie i ja nie mogłem od razu skompilować sobie nowo dodanych wyzwań.

Dlaczego ? A to dlatego, że było tam parę błędów, których nie będę teraz wymieniał ponieważ nie o to chodzi w temacie.

Z tego co widzę nikt jeszcze nigdzie nie opublikował poprawionej wersji, a "Nowicjusze" nie są w stanie poradzić sobie sami z tym problemem.

 

Umieszczam Wam niżej do pobrania poprawione pliki.

 

Jak należy poprawienie skompilować plik ? Możemy skompilować go tylko lokalnie.

Ściągamy plik killstreak-bez.sma lub killstreak-tarcza.sma, wyzwania.inl oraz engine.inc

 

Plik engine.inc umieszczamy w folderze include.

Plik .sma oraz wyzwania.inl umieszczamy w głównym katalogu kompilatora.

Przeciągamy plik .sma do kompilatora i gotowe.

 

Załączony plik  wyzwania.inl   13,86 KB  364 Ilość pobrań

Załączony plik  engine.inc   8,68 KB  266 Ilość pobrań

Sentry GUN nie będzie atakował gracza z tarczą

Załączony plik  killstreak-bez.sma   37,73 KB  312 Ilość pobrań
  killstreak-bez.amxx

Sentry GUN będzie atakował gracza z tarczą

Załączony plik  killstreak-tarcza.sma   37,66 KB  211 Ilość pobrań
  killstreak-tarcza.amxx

Dodanie zapisu SQL:

 

Jeśli chcemy, aby nasze wyzwania zapisywały się w bazie MySQL dodajemy 

 

#define USING_SQL do naszego .sma, a do pliku amxx.cfg

 

Cvary

ks_sql_host "" //podajemy w nim nazwę hosta do jakiego ma się łączyć baza
ks_sql_user "" //podajemy w nim nazwę użytkownika do jakiego ma się łączyć baza
ks_sql_pass "" //podajemy w nim hasło do bazy
ks_sql_db "" //podajemy w nim nazwę tabeli (database) do jakiej ma zapisywać dane

Jeżeli chcemy dodać wyzwania do COD'a Starego wystarczy, że usuniemy :

 

#define COD_NOWY

 

I oczywiście skompilować na nowo plik .sma, a plik .amxx dodać na serwer ;)
 


  • +
  • -
  • 11


#712545 Asysta od 50hp

Napisane przez Asiap w 30.09.2015 14:05

po

iVictim != iAttacker

dodaj

 (spacja) && fDamage >= 50.0

  • +
  • -
  • 1


#700356 Asysta i Zemsta (fragi)

Napisane przez Asiap w 12.05.2015 03:46

najlepszym sposobem na dodawanie punktow (fragi) to Ham_AddPoints

przyklad:

	/**
	 * Description:		Typically adds points to the entity.
	 * Forward params:	function(this, points, bool:cangonegative);
	 * Return type:		None.
	 * Execute params:	ExecuteHam(Ham_AddPoints, this, points, bool:cangonegative);
	 */
	Ham_AddPoints 

ExecuteHamB(Ham_AddPoints, id, 1, true)

 

this - index gracza

points - ilosc fragow (moze byc na minusi aby odjelo)

cangonegative - moze byc negatywna ilosc fragow w powyzszym parametrze

 

doda pomyslnie 1 fraga graczowi o indexie id oraz tego fraga doda do rankingu (/rank)


  • +
  • -
  • 1