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
 

TyQ - zdjęcie

TyQ

Rejestracja: 14.07.2016
Aktualnie: Nieaktywny
Poza forum Ostatnio: 23.06.2021 19:20
-----

#771552 [ROZWIĄZANE] Szukam Pluginu Stolice

Napisane przez KoRrNiK w 12.04.2021 11:33

Trzymaj powinno działać.

Aby dodać nowy kraj dodajesz nową linijkę

new const writeCapital[ALL_CAPITAL][2][] = {
	 { "Polska", 	"Warszawa" }
	,{ "Francja", 	"Paryz" }
	,{ "Niemcy", 	"Berlin" }
};

Oraz wpisujesz liczbę ile jest krajów 

#define ALL_CAPITAL 3

Tutaj kod oraz nie zapomnij abyś sobie coś dodał za nagrodę pod linijką 72 masz funkcję. 

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

new const PLUGIN[]	= 	"xyz";
new const VERSION[]	= 	"1.0";
new const AUTHOR[]	= 	"KoRrNiK - amxx.pl/user/69614-korrnik/";

enum _:capital { RANDOM_ID, bool:RANDOM_ON }
new serverCapital[capital];

#define ALL_CAPITAL 3
new const writeCapital[ALL_CAPITAL][2][] = {
	 { "Polska", 	"Warszawa" }
	,{ "Francja", 	"Paryz" }
	,{ "Niemcy", 	"Berlin" }
};	
 
public plugin_init() {
	register_plugin(PLUGIN, VERSION, AUTHOR);
	
	register_clcmd("say", "cmdSay");
}

public cmdSay(id){
	if(!is_user_connected(id)) return PLUGIN_HANDLED;
	
	new szMessage[124];
	read_args(szMessage, sizeof( szMessage ) - 1); 
	remove_quotes(szMessage);
	
	if(szMessage[0] == '/'){
		if(equal(szMessage, "/stolica")){
			functionRandomCapital(id);
			return PLUGIN_HANDLED;
		}
		return PLUGIN_CONTINUE;
	}
	
	if(serverCapital[RANDOM_ON]){	
		if(equali(szMessage, writeCapital[serverCapital[RANDOM_ID]][1])){
	
			new nameUser[33];
			get_user_name(id, nameUser, sizeof(nameUser) - 1);
			
			client_print_color(0, id, "^4[%s]^1 Pierwszy przepisal:^3 %s^1 stolice kraju:^3 %s", writeCapital[serverCapital[RANDOM_ID]][1], nameUser, writeCapital[serverCapital[RANDOM_ID]][0]);
			awardCapital(id);
			serverCapital[RANDOM_ON] = false;
			
			return PLUGIN_CONTINUE;
		}
		return PLUGIN_CONTINUE;
	}		
	return PLUGIN_HANDLED;
}

public functionRandomCapital(id){
	if(!has_flag(id, "a")) return;
	if(serverCapital[RANDOM_ON]){
		client_print_color(id, id, "^4[*]^1 Aktualnie jest wylosowana stolica:^3 %s^1 do przepisania!", writeCapital[serverCapital[RANDOM_ID]][0]);
		client_print_color(id, id, "^4[*]^1 Przepisz ja na chacie aby ponownie odpalic losowanie!");
		return;
	}
	serverCapital[RANDOM_ON] = true;
	serverCapital[RANDOM_ID] = random(ALL_CAPITAL);
	client_print_color(0, 0, "^4[*]^1 Wylosowany kraj:^3 %s^4 |^1 Jaka to stolica??", writeCapital[serverCapital[RANDOM_ID]][0]);
	client_print_color(0, 0, "^4[*]^1 Napisz na chacie jako^4 pierwszy^1 aby otrzymac nagrode!");
}

public awardCapital(id){
	/* 
	
	- TUTAJ DODAJESZ CO MA DOSTAC ZA PRZEPISANIE JAKO PIERWSZY. 
	
	*/
}

  • +
  • -
  • 2


#771724 Motd strony URL

Napisane przez Misiu. w 28.04.2021 10:35

<html>
<head>
<title>Board</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2">
</head>
<frameset rows="100%,*" frameborder="NO" border="0" framespacing="0">
<frame name="main_frame" src="http://strona.pl">
</frameset>
</body>
</html>

  • +
  • -
  • 2


#771637 [ROZWIĄZANE] Skiny nie usuwają się, gdy ktoś nie ma VIPa.

Napisane przez N1K1Cz w 19.04.2021 10:02

Pewnie że można to tak dodajesz takie coś:
 

public client_putinserver(id)
{
	if(get_user_flags(id) & ADMIN_LEVEL_H)
	return PLUGIN_HANDLED

	SetKnife(id, 0)
        SetAK47(id , 0)
        SetAWP(id , 0)
        SetM4A1(id , 0)

	return PLUGIN_CONTINUE
}

I gotowe teraz gdy ktoś nie posiada flagi T (VIP) to ustawia mu skiny na domyślne


  • +
  • -
  • 2


#771639 [ROZWIĄZANE] Skiny nie usuwają się, gdy ktoś nie ma VIPa.

Napisane przez N1K1Cz w 19.04.2021 10:06

 

Pewnie że można to tak dodajesz takie coś:
 

public client_putinserver(id)
{
	if(get_user_flags(id) & ADMIN_LEVEL_H)
	return PLUGIN_HANDLED

	SetKnife(id, 0)
        SetAK47(id , 0)
        SetAWP(id , 0)
        SetM4A1(id , 0)

	return PLUGIN_CONTINUE
}

I gotowe teraz gdy ktoś nie posiada flagi T (VIP) to ustawia mu skiny na domyślne

Czyli mam dodać ten public client_putinserver(id)?

 

Dokładnie tak

Jeżeli będziesz miał jeszcze jakieś problemy to pisz 


  • +
  • -
  • 3


#771487 Hash w danych SQL.

Napisane przez DarkGL w 07.04.2021 01:11

Czyli z takiego poziomu nie da się zabezpieczyć tak?

 

Dokładnie tak


  • +
  • -
  • 1


#769103 [ROZWIĄZANE] Wyświetla oraz źle pobiera IP serwera z bazy

Napisane przez csMaster w 04.12.2020 09:15

Nie jestem egoistą jak inni, więc pomogę.

Wgraj ten plik do /include na serwerze www, a wszystkie informacje będą się w view.php wyświetlać poprawnie: Załączony plik  rcon_hl_net.inc   20,14 KB  79 Ilość pobrań

Błąd polega na złym odczytywaniu komunikatu zwrotnego od serwerów cs. Poprawny sposób komunikacji znajduje się tutaj:

https://developer.va.../Server_queries-> A2S_INFO -> Obsolete GoldSource Response


  • +
  • -
  • 3


#771472 Strona view nie pokazuje serwera

Napisane przez csMaster w 06.04.2021 12:05

Rozwiązanie podałem już tutaj: https://amxx.pl/topi...serwera-z-bazy/

Skopiuj ten plik i zamień go na serwerze www.


  • +
  • -
  • 1


#771467 Hash w danych SQL.

Napisane przez dasiek w 06.04.2021 08:17

w pierwszej kolejności musisz Sobie zadań pytanie, co dany użytkownik mógł powinien robić. 

W linku, który podałem masz opisane, na co pozwalają poszczególne uprawnienia.


  • +
  • -
  • 1


#771461 Hash w danych SQL.

Napisane przez csMaster w 05.04.2021 18:52

Dodaj użytkownika bazy danych na każdy pojedynczy serwer, ustaw im inne hasła oraz uprawnienia tylko do koniecznych zapytań i każdemu serwerowi podaj przypisane jemu dane. Jeżeli serwer nie będzie już potrzebował dostępu do bazy to usuniesz danego użytkownika i nikt kto nawet wcześniej znał dane logowania już nie będzie miał do bazy dostępu. Do phpmyadmin oczywiście będzie dostęp, ale tylko do tych zapytań do których zostały przyznane uprawnienia.

 

Jeśli chodzi o to żeby pojedynczy serwer miał dostęp tylko do swoich banów i nie miał dostępu do konfiguracji strony (która jak przypuszczam też jest zapisana w bazie) to musisz edytować kod amxbans tak, żeby korzystał z oddzielnej tabeli na każdy serwer.

Wtedy trzeba będzie utworzyć użytkownika dla każdego serwera i każdemu przyznać uprawnienia tylko do swojej tabeli.


  • +
  • -
  • 2


#771465 Hash w danych SQL.

Napisane przez dasiek w 06.04.2021 05:49

Chcesz ukryć dane dla poszczególnych użytkowników? Może lepiej pomyśleć w drugą stronę, poszczególnym użytkownikom zezwolić tylko na dostęp do danych, które potrzebują, jeśli ofc potrzebujesz wykonać taki myk po stronie bazy danych.

https://www.obliczeniowo.com.pl/543

 

 

Uwaga! Przy nadawaniu uprawnień należy się kierować zasadą minimum uprawnień jakie są potrzebne do realizacji zadań, jakie dany użytkownik potrzebuje wykonać.

 


  • +
  • -
  • 1


#771205 Problem z utworzeniem natywu w pluginie rang.

Napisane przez Toldi w 18.03.2021 13:41

Po co 2 raz pobierasz nazwę rangi skoro już ją pobrałeś wcześniej


new rangName[32], rangId = get_user_rangId(target)
get_user_rangName(rangId, rangName, charsmax(rangName));
 
set_hudmessage(255, 127, 0, 0.02, 0.25, 0, 6.0, 1.0, 0.1, 0.1, -1);
show_hudmessage(id, "Nick: %s^nSkin: [ %s ]^nMonety: %d^nRanga: %s", PlayerName[target], szPlayerSkin, cod_get_user_coins(target), rangName);

  • +
  • -
  • 1


#771174 Problem z utworzeniem natywu w pluginie rang.

Napisane przez Toldi w 17.03.2021 11:57

Piszę tu zamiast na pw bo innym może się przydać. Poprawiony kod. 

public _get_user_rangName(id_rangi, szTable[], iLen)
{
	param_convert(2);
	
	if(id_rangi < 0){
		return -1;
	}
	
	copy(szTable, iLen, ranga[id_rangi]);
	
	return 1;
}

Dodatkowo sam plugin od rang MUSI być włączony i najlepiej usuń/wyłącz sb w nim hud skoro chcesz rangę wyświetlać w pluginie od skinów.


  • +
  • -
  • 1


#771166 Problem z utworzeniem natywu w pluginie rang.

Napisane przez Toldi w 16.03.2021 13:20

public plugin_natives()
{
    register_native("get_user_rangId", "_get_user_rangId", 1)
}
public _get_user_rangId(index)
{
	return ranga[ranganum[index]]
}

W pluginie od skinow nad plugin_init dodaj

native get_user_rangId(index);
native get_user_rangName(id_rangi, szTable[], iLen)

public plugin_init() 
{
...
}

To co podałeś zwraca tylko id rangi gracza. Musisz jeszcze pobrać nazwę tej rangi bo skąd ten plugin ma wiedzieć jakie rangi masz w tym pierwszym pluginie.

 

Więc tworzysz nowy natyw

register_native("get_user_rangName", "_get_user_rangName", 1)

a niżej funkcja:

public _get_user_rangName(id_rangi, szTable[], iLen)
{
	param_convert(2);
	
	if(id_rangi < 0){
		return -1;
	}
	
	copy(szTable, iLen, ranga[ranganum[id]]);
	
	return 1;
}

Sprawdź czy działa bo pisałem na szybkiego. Jak coś po robocie poprawie.

 

W hud: 

new rangName[32], rangId = get_user_rangId(target)
get_user_rangName(rangId, rangName, charsmax(rangName));

  • +
  • -
  • 1


#771091 [ROZWIĄZANE] Plugin rejestrujący komendę amx_kick

Napisane przez sharkowy w 11.03.2021 08:14

Skoro udzielasz tak jasnych odpowiedzi, to i ja takiej Ci udzielę - w pluginie z którego korzystasz znajdź funkcję odpowiadającą za wyrzucenie gracza, w niej znajdź linijkę z komendą wykonaną na graczu (coś typu amx_kick(...) za pewne) i tuż pod nią dodaj chociażby log_to_file z odpowiednimi parametrami.


  • +
  • -
  • 1


#771094 [ROZWIĄZANE] Plugin rejestrujący komendę amx_kick

Napisane przez sharkowy w 11.03.2021 08:40

Podmień na ten:

public Kick(id, const powod[]) {
	if(!g_kogo[id]) {
		client_print(id, print_chat, "%s Nie ma wszystkich danych", tag);
		return;
	}
	
	new bool: show = (get_cvar_num("amx_show_activity") == 2) ? true : false;
	new pl = g_kogo[id];
	new name[2][33];
	
	get_user_name(id, name[0], 32);
	get_user_name(pl, name[1], 32);
	
	set_hudmessage(0, 255, 0, 0.05, 0.35, 0, 6.0, 5.0, 0.5, 0.15, 7);
	show_hudmessage(0, "Gracz o nicku %s ^nZostal wywalony przez %s ^nPowod: %s", name[1], show ? name[0] : "admina", powod);
	
	console_print(pl, "%s ==========================================", tag);
	console_print(pl, "%s Zostales wykopany przez %s", tag, show ? name[0] : "admina");
	console_print(pl, "%s Powod: ^"%s^"", tag, powod);
	console_print(pl, "%s Jezeli uwazasz, ze kick byl bezpodstawny zglos to na %s", tag, strona);
	console_print(pl, "%s ==========================================", tag);
	
	server_cmd("kick #%d ^"%s^"", get_user_userid(pl), powod);
	log_to_file("kick.log", "Admin %s wykopal gracza %s z powodem %s", name[0], name[1], powod);
}

Nazwa pliku to kick.log w folderze logs. a logi wyglądają tak:

 

L 03/11/2021 - 08:39:24: Log file started (file "cstrike/addons/amxmodx/logs/kick.log") (game "cstrike") (amx "1.9.0.5263")
L 03/11/2021 - 08:39:24: Admin sharkowy wykopal gracza czesiek z powodem AFK

 

 


  • +
  • -
  • 1