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
 

KoRrNiK - zdjęcie

KoRrNiK

Rejestracja: 26.12.2017
Aktualnie: Nieaktywny
Poza forum Ostatnio: 16.03.2023 01:03
*****

Moje posty

W temacie: Poszukuje pluginu

16.11.2022 19:54

Aby plugin działal poprawnie musisz włączyć restmenu.amxx oraz wpisać ten plugin pod nim.

#include <amxmodx>
#include <hamsandwich>
 
#pragma semicolon 	1

enum _:eInfoPlugin { PLUGIN, VERSION, AUTHOR, URL, DESCRIPTION };
new const PLUGIN_INFO[eInfoPlugin][] = {
	"Block AWP",
	"1.0",
	"KoRrNiK",
	"https://github.com/KoRrNiK/",
	"The plugin blocks the use of AWP"
};

#define OFFSET_ITEM_LINUX  	4
#define OFFSET_PLAYER 		41

#define NEEDED_PLAYERS 		5
 
public plugin_init() {
	
	register_plugin(
		.plugin_name = PLUGIN_INFO[PLUGIN],
		.version = PLUGIN_INFO[VERSION],
		.author = PLUGIN_INFO[AUTHOR],
		.url = PLUGIN_INFO[URL],
		.description = PLUGIN_INFO[DESCRIPTION]
		
	);
 
	RegisterHam(Ham_Weapon_PrimaryAttack, 	"weapon_awp", "ham_PrimaryAttack");
	RegisterHam(Ham_Weapon_SecondaryAttack, "weapon_awp", "ham_SecondaryAttack");
	
	__b();
	
}
 
public client_putinserver(id) set_task(1.0, "__b");
public client_disconnect(id) set_task(1.0, "__b");

public __b(){
	chcecBlock(true);
}

static chcecBlock(bool:block = true){
	
	new players = numPlayers();
	new bool:check = !!(players >= NEEDED_PLAYERS);
	
	if(block) server_cmd("amx_restrict %s awp", check ? "off" : "on");
	
	return check;
}

public ham_PrimaryAttack(const entity){
	
	if(chcecBlock(false)) return HAM_IGNORED;
	
	static owner; owner = get_pdata_cbase(entity, OFFSET_PLAYER, OFFSET_ITEM_LINUX);
	
	changeWeapon(owner);
	
	return HAM_SUPERCEDE;
}

public ham_SecondaryAttack(const entity){
	
	if(chcecBlock(false)) return HAM_IGNORED;
	
	static owner; owner = get_pdata_cbase(entity, OFFSET_PLAYER, OFFSET_ITEM_LINUX);
	
	changeWeapon(owner);

	return HAM_SUPERCEDE;
}

public changeWeapon(index){
	
	if(!is_user_alive(index)) return HAM_IGNORED;
	
	engclient_cmd(index, "weapon_knife");
	client_print(index, print_center, "AWP ZABLOKOWANE DO CZASU AZ NIE BEDZIE %d GRACZY", NEEDED_PLAYERS);
	
	return HAM_SUPERCEDE;
}

public numPlayers(){
	new iNum=0;
	for(new i=1; i < 33; i++){
		if(!is_user_connected(i) || is_user_hltv(i)) continue;
		iNum++;
	}
	return iNum;
}

W temacie: Poszukuje pluginu

15.11.2022 23:37

:facepalm2:  

 

https://amxx.pl/topi...-przy-pluginie/

W temacie: [ROZWIĄZANE] Reset nVault / MySQL

27.01.2022 10:15

Jeśli chodzi o samoczynne resetowanie się sql jest to możliwe jeżeli masz źle napisany plugin i usuwa Ci samo dany, spowodowane może być tym, że np. podczas wczytywania danych one nie zostaną wczytane poprawnie i po zmianie mapy nadpisze Ci je wszystkie na DEFAULTOWE wartości czyli na - "0" a jeśli chodzi o nvault miałem kiedyś taki problem gdy było w pliku zapisanych za dużo graczy to wywalało niektórym osobom też zapis jakby plik miał za dużo informacji i nie mógł tego przetworzyć dlatego czasem warto w nvault używać tej funkcji nvault_prune do czyszczenia zapisu ale o wiele bardzie preferuję używanie FVAULT z którym nigdy nie miałem problemu. 

 

Aby zabezpieczyć ten sql to po wczytaniu informacji zrobić np: 

new bool:userLoad[33];

public loadData(...{
	
	// code....
	
	testVar[id] = SQL_ReadResult(query, 0);
	
	// code....
	
	userLoad[id] = true;
	
}

public saveDat(...{
			
	if(!userLoad[id]) return;
	
	// code...
			
}

W temacie: Plugin menu

23.01.2022 19:26

#include <amxmodx>
 
#pragma semicolon 	1
 
new const PLUGIN[] 		= 	"xyz";
new const VERSION[] 		= 	"v1.0";
new const AUTHOR[] 		= 	"KoRrNiK - amxx.pl/user/69614-korrnik/";
 
public plugin_init() {
	register_plugin(PLUGIN, VERSION, AUTHOR);
	
	register_clcmd("say /konkursy", "showMenu");
}

public showMenu(id){
	
	new menu = menu_create("Menu Serwera:", "showMenu_2");
	
	menu_additem(menu, "Konkurs 1");
	menu_additem(menu, "Konkurs 2");
	
	menu_display(id, menu, 0);
	
}

public showMenu_2(id, menu, item){
	
	if(item != MENU_EXIT){
		
		new szName[33];
		get_user_name(id, szName, sizeof(szName) - 1);
		
		switch(item){
			case 0:{
				client_print_color(id, id, "^4%s - Konkurs 1: Test 1", szName);
				client_print_color(id, id, "^4%s - Konkurs 1: Test 2", szName);
				client_print_color(id, id, "^4%s - Konkurs 1: Test 3", szName);
			}
			case 1:{
				client_print_color(id, id, "^4%s - Konkurs 2: Test 1", szName);
				client_print_color(id, id, "^4%s - Konkurs 2: Test 2", szName);
				client_print_color(id, id, "^4%s - Konkurs 2: Test 3", szName);
			}
		}
	
	} else menu_destroy(menu);	
	
}