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
 

Danny OK - zdjęcie

Danny OK

Rejestracja: 16.02.2014
Aktualnie: Nieaktywny
Poza forum Ostatnio: 15.02.2016 15:56
-----

#712009 Pytanie dotyczące odliczania

Napisane przez Linux' w 19.09.2015 22:43

tak
  • +
  • -
  • 3


#701923 [ROZWIĄZANE] Wyrzucenie granatu po śmierci

Napisane przez Alelluja w 30.05.2015 12:25

?? http://amxx.pl/topic...jace-na-ziemie/


  • +
  • -
  • 1


#348532 CS Weapons Util

Napisane przez R3X w 12.01.2012 20:42

CS Weapons Util

Plugin-biblioteka, ewentualnie podpowiedź do własnej implementacji.
Póki co do dyspozycji mamy forward informujący kto co kupił i dający możliwość zablokowania akcji.

/**
 * Executed on client shopping, return PLUGIN_HANDLED to block
 *	@param	id 		player index
 *	@param	weaponid	CSW_* or _CSW_ constant
 */
forward CS_OnBuyItem(id, weaponid);

Przykład użycia:
#include <amxmodx>
#include <amxmisc>
#include <cstrike>
#include <CSWeaponsUtil>

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


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

public CS_OnBuyItem(id, weaponid)
{
	if(weaponid == CSW_M249)
	{
		client_print(id, print_center, "Nie mozesz kupic maszynowki");
		return PLUGIN_HANDLED;
	}
	return PLUGIN_CONTINUE;
}

Załączone pliki


  • +
  • -
  • 18


#701803 CS Weapons Util

Napisane przez BlaQ517 w 28.05.2015 16:51

Przepraszam, że odświeżam ale mam pytanko :)
Jak zrobić aby kupowanie się odblokowywało np po 10 zabiciach.


Po 10 zabójstwach:

#include <amxmodx>
#include <amxmisc>
#include <cstrike>
#include <CSWeaponsUtil>

new zabojstwa[33];

public plugin_init() 
{
	register_plugin("Wtyczka", "1.0", "BlackDead");
	
	register_event("DeathMsg", "SmiercGracza", "a");
}

public SmiercGracza()
{
	zabojstwa[read_data(1)] ++;
}

public CS_OnBuyItem(id, weaponid)
{
	if(zabojstwa[id] => 10) return PLUGIN_CONTINUE;
	
	new wstats[8], wbodyhits[8];
	get_user_stats(id,wstats,wbodyhits);

	if(wstats[0]<=10)
	{
		if(weaponid == CSW_M249)
		{
			client_print(id, print_center, "Nie mozesz kupic maszynowki");
			return PLUGIN_HANDLED;
		}
	}
	
	return PLUGIN_CONTINUE;
}

Po 10 sekundach od rozpoczęcia rundy:

#include <amxmodx>
#include <amxmisc>
#include <cstrike>
#include <CSWeaponsUtil>

new bool:odblokuj;

public plugin_init() 
{
	register_plugin("Wtyczka", "1.0", "BlackDead");
	
	register_event("HLTV", "HLTV", "a", "1=0", "2=0");
}

public HLTV()
{
	odblokuj = false;
	set_task(10.0, "task_odblokuj")
}

public task_odblokuj()
{
	odblokuj = true;
}

public CS_OnBuyItem(id, weaponid)
{
	if(odblokuj) return PLUGIN_CONTINUE;
	
	new wstats[8], wbodyhits[8];
	get_user_stats(id,wstats,wbodyhits);

	if(wstats[0]<=10)
	{
		if(weaponid == CSW_M249)
		{
			client_print(id, print_center, "Nie mozesz kupic maszynowki");
			return PLUGIN_HANDLED;
		}
	}
	
	return PLUGIN_CONTINUE;
}


  • +
  • -
  • 1


#663443 Praca na Orpheu (Plantowanie/Rozbrajanie)

Napisane przez grankee w 14.09.2014 06:31

A mi się zdaje, że da się inaczej.

Pierwszy pomysł:

ustawic framerate animacji wieksze niz 1.0 zeby przyspieszyc animacje

napisac bartime krotszym lub calkiem go zablokowac

jesli to sie nie uda to drugi dluzszy:

Podkładanie:

-Przechwycić i zablokować touch bs->player, player->bs lub oba, aby uniemożliwić plantowanie-najlepiej fakemetą, ale także zapisać do zmiennej globalnej get_gametime(), aby w każdej chwili móc sprawdzić czy gracz jest na bsie - touch ma miejsce x razy na sekunde wiec wystarczy sprawdzic, czy ostatni zapisany +1 > get_gametime() w dowolnym miejscu pluginu.

-jeśli gracz trzyma +attack rozpoczac animacje podkladania z wiekszym framerate niz 1.0 oraz bartime na okreslony czas (message_begin)

-jesli pusci zlikwidowac bartime i przerwac animacje

-jak minie czas jaki ma zajac plantowanie to splantowac pake

Rozbrajanie podobnie, tylko touch paki i gracza itd...

 

W tym pluginie możesz znaleźć pare potrzebnych rzeczy: http://amxx.pl/topic...lant-defuse-c4/


  • +
  • -
  • 1


#661035 Pomoc przy wgraniu Minipanelu

Napisane przez GwynBleidD w 29.08.2014 17:49

chown ma opcję -R, po jej użyciu zmieni właściciela nie tylko folderu, ale też wszystkiego wewnątrz.


  • +
  • -
  • 1


#660956 Pomoc przy wgraniu Minipanelu

Napisane przez GwynBleidD w 29.08.2014 11:22

Najpierw doczytaj i zrozum jak działają uprawnienia, ewentualnie eksperymentuj na czymś mniej ważnym. Zmienianie uprawnień z poziomu użytkownika root zaczynaj dopiero, gdy zrozumiesz dobrze jak to działa. Bo tu naprawdę sporo można spieprzyć, jeśli nadasz nie te uprawnienia nie tym plikom... Niestety, właściciele hostingów serwerów w wielu przypadkach nie wiedzą jak uprawnienia działają i byś się zdziwił na ile serwerów można się włamać wyłącznie z winy hostingu :) Z PHP zresztą jest podobnie, a nawet jeszcze gorzej, bo wiele skryptów i poradników zaleca uprawnienia 777 na configi, zamiast się zastanowić czy przypadkiem to nie jest wina złej konfiguracji serwera, którą się "na szybko" i niepoprawnie łata uprawnieniami plików...

ad 1. upewnij się, że serwer jest również w katalogu domowym tego użytkownika, albo w katalogach ogólnych, które są własnością tego użytkownika. Jeśli jest w katalogu domowym innego, zmień to.
Jeśli instalowałeś serwer z poziomu innego użytkownika lub były te pliki w "cudzym" katalogu, wykonaj chown, aby zmienić ich właściciela (wygooglujesz sobie o co chodzi, to nie jest trudne. Nie zapomnij chownować również grupy, może się przydać np do FTP)

ad 2. To dobrze, jednak upewnij się, że pliki mają 750, 640, 770 lub 660. Foldery i pliki wykonywalne oczywiście muszą mieć 750 lub 770.

ad 3. Szukaj innych przyczyn, skoro chmody są OK. Napisz może do twórcy panelu.

Odnośnie roota, jest coś takiego jak sudo, umożliwia uruchomienie czegoś na prawach roota. Można skonfigurować sudo, aby użytkownik mógł go używać bez podania hasła czy czegokolwiek. Jednak nie rób tego, NIGDY! root ma pozostać rootem, nie służy on do codziennej zabawy, ani do tego by na jego uprawnieniach uruchamiać serwery. No chyba, że chcesz szybko się VPSa pozbyć, bo ktoś go przejmie i zacznie robić na nim coś nielegalnego, np przeprowadzać ataki na rząd ;) Ale wtedy również możesz się pozbyć wolności, bo wszystkie ślady będą prowadzić do Ciebie, jako właściciela VPSa.
  • +
  • -
  • 1


#660772 Pomoc przy wgraniu Minipanelu

Napisane przez GwynBleidD w 28.08.2014 11:12

Odnośnie chmodów:
NIE MA CZEGOŚ TAKIEGO JAK CHMODY wsx !!

Jeśli nie wiesz co robisz, nie rób tego!

Jak zezwolić użytkownikowi edek na edycję, zapis i odczyt (wsx) plików w folderze i jego podfolderach /home/server/cs ?

Jest kilka sposobów:
1. użytkownik powinien być właścicielem plików
2. użytkownik powinien należeć do grupy właściciela plików, a plik posiadać odpowiednie uprawnienia grupowe.
3. uprawnienia do plików powinny być dla wszystkich. Sposób bardzo niezalecany, ponieważ daje dostęp WSZYSTKIM UŻYTKOWNIKOM do plików! Co może ułatwić dość znacznie komuś włamanie na serwer.

Co do mini panelu, podajesz mu użytkownika SSH na którym będzie uruchamiany serwer, tj ten, do którego należą pliki (katalog home), a nie dowolnego utworzonego w systemie.
  • +
  • -
  • 1


#646489 Czysta paczka (AMXModX + Metamod-P + Dproto + VoiceTransCoder)

Napisane przez Lokator w 30.06.2014 12:45

Zauważyłem, iż część użytkowników próbuje swoich sił rezygnując z gotowych rozwiązań.

Próbujecie tworzyć serwery na vps'ach, czy serwerach dedykowanych - rozwijać się.

 

Gorąco Was do tego zachęcam!

 

Często jednak pomijacie najważniejsze kwestie dotyczące konfiguracji, przystosowania serwera do obecnych norm.

Nie posiadacie najnowszych plików hlds na swoim serwerze, czy też najnowszych aktualizacji modułów zainstalowanych na serwerze.

Do tego wszystkiego dodajemy aktualizacje klienta (gry) ze strony Valve i podział graczy na Steam / Non Steam - problem z komunikacją głosową.

 

Prędzej, czy później Waszymi serwerem zaczną interesować się ludzie niepożądani - idioci, którzy lubią niszczyć pracę innych.

Prawie zawsze przez takie zaniedbania serwery kończą swoją działalność, albo tracą większość tego, czego udało im się dokonać.

 

Dlatego właśnie postanowiłem stworzyć paczkę, która będzie dla Was wsparciem przy tworzeniu serwera : )

opis

Budowa paczki:

  • AMX Mod X Base (v1.8.2 Linux),
  • Counter-Strike Addon (v1.8.2 Linux),
  • Metamod-P (v1.21p37 Linux),
  • Dproto (v0.9.391),
  • VoiceTransCoder (v80).

W paczce zawarta jest konfiguracja wszystkich modułów oraz pełna konfiguracja server.cfg ; )

 

amxx.cfg - reklama amxx.pl w wiadomości standardowej, polski językiem klienta, ranking na nick oraz konfiguracja VoiceTransCodera,

users.ini - usunięcie standardowo ustawionych uprawnień dla gracza o nicku Loopback,

dproto.cfg - przekonfigurowanie dproto, uodpornienie Dproto na hack SteamID.

 

Paczka zawiera niezbędne publicznym serwerom moduły!

Wszystkie pliki zawarte w paczce będą na bieżąco aktualizowane!

Paczka nie zawiera plików ingerujących w ustawienia gracza!

 

Opis modułów zawartych w paczce:

Spoiler

 

instalacja

Zawartość folderu addons, dproto.cfg, server.cfg oraz liblist.gam wrzucamy do katalogu cstrike na serwerze, po czym go restartujemy.

 

inne informacje

Aktualizacje paczki:

  • ~ v1.0 | Utworzenie paczki.

download

Załączony plik  Czysta paczka (AMXModX + Metamod-P + Dproto + VoiceTransCoder).zip   3,25 MB  2906 Ilość pobrań

 


  • +
  • -
  • 22


#659909 [ROZWIĄZANE] Wgranie amxmodx na serwer

Napisane przez Lokator w 24.08.2014 19:54

Zainteresuj się tym - Czysta paczka (AMXModX + Metamod-P + Dproto + VoiceTransCoder) ; )


  • +
  • -
  • 1


#659595 [ROZWIĄZANE] Problem z natywami

Napisane przez GwynBleidD w 23.08.2014 11:23

Plugin battlefield4 musi być włączony (i nie chodzi tutaj o plugin nazywający się battlefield4 ale o plugin, który posiada register_library("battlefield4") w plugin_natives.
  • +
  • -
  • 1


#647538 Czysty zapis sql

Napisane przez Misiaczek ;c w 04.07.2014 13:47

jak plugin ma byc na serwery only steam to polecam uzyc: http://amxx.pl/topic...4-database-orm/
 
jak nie to możesz coś z tego wykombinować:

#include < amxmodx >
#include < sqlx >

new sqlConfig[ ][ ] = {
	"127.0.0.1",
	"root",
	"password",
	"database"
}

enum playerData {
	SteamID[ 33 ],
	IP[ 16 ],
	Nick[ 64 ],
	HS
};

new Handle: gSqlTuple;
new gPlayer[ 33 ][ playerData ];

public SqlInit( ) {
	gSqlTuple = SQL_MakeDbTuple( sqlConfig[ 0 ], sqlConfig[ 1 ], sqlConfig[ 2 ], sqlConfig[ 3 ] );
	
	if( gSqlTuple == Empty_Handle )
		set_fail_state( "Nie mozna utworzyc uchwytu do polaczenia" );
	
	new iErr, szError[ 32 ];
	new Handle:link = SQL_Connect( gSqlTuple, iErr, szError, 31 );
	
	if( link == Empty_Handle ) {
		log_amx( "Error (%d): %s", iErr, szError );
		set_fail_state( "Brak polaczenia z baza danych" );
	}
	
	new Handle: query;
	query = SQL_PrepareQuery( link, "CREATE TABLE IF NOT EXISTS `players_hs` (\
		`id` int(11) NOT NULL AUTO_INCREMENT,\
		`steamid` varchar(33) NOT NULL,\
		`nick` varchar(64) NOT NULL,\
		`ip` varchar(16) NOT NULL,\
		`hs` int(16) NOT NULL,\
		PRIMARY KEY (`id`),\
		UNIQUE KEY `authid` (`nick`)\
	)" );
	
	SQL_Execute( query );
	SQL_FreeHandle( query );
	SQL_FreeHandle( link );
}

public Query( failstate, Handle:query, error[ ] ) {
	if( failstate != TQUERY_SUCCESS ) {
		log_amx( "SQL query error: %s", error );
		return;
	}
}

public plugin_init() {
	register_plugin( "Zapis HS", "1.0", "AMXX.pl" );
	register_event( "DeathMsg", "eventDeathMsg", "ae" );
	
	set_task( 0.1, "SqlInit" );
}

public eventDeathMsg( ) {
	if( read_data( 3 ) ) {
		gPlayer[ read_data( 1 ) ][ HS ]++;
	}	
}

public client_connect( id ) {
	gPlayer[ id ][ HS ] = 0;	
	get_user_authid( id, gPlayer[ id ][ SteamID ], 32 );
	get_user_ip( id, gPlayer[ id ][ IP ], 15, 1 );
	get_user_name( id, gPlayer[ id ][ Nick ], 63 );	
	SQL_PrepareString( gPlayer[ id ][ Nick ], gPlayer[ id ][ Nick ], 63 );
}

public client_disconnect( id ) {
	save( id );	
	gPlayer[ id ][ HS ] = 0;
}

stock SQL_PrepareString( const szQuery[], szOutPut[], size ) {
	copy( szOutPut, size, szQuery );
	replace_all( szOutPut, size, "'", "\'" );
	replace_all( szOutPut, size, "`", "\`" );    
	replace_all( szOutPut, size, "\\", "\\\\" );
	replace_all( szOutPut, size, "^0", "\0");
	replace_all( szOutPut, size, "^n", "\n");
	replace_all( szOutPut, size, "^r", "\r");
	replace_all( szOutPut, size, "^x1a", "\Z");	
}

stock save( id ) {
	new query[ 1024 ]	
	formatex( query, charsmax( query ), "INSERT IGNORE INTO `players_hs` ( `steamid`, `nick`, `ip`, `hs`) VALUES ( '%s', '%s', '%s', %d ) ON DUPLICATE KEY UPDATE `hs` = `hs` + %d", 
	gPlayer[ id ][ SteamID ], gPlayer[ id ][ Nick ], gPlayer[ id ][ IP ], gPlayer[ id ][ HS ] );
	
	if( gSqlTuple )
		SQL_ThreadQuery (gSqlTuple, "Query", query );
}

  • +
  • -
  • 1


#627896 Antyblokowanie modelami.

Napisane przez GwynBleidD w 24.03.2014 19:02

Da się prościej.

1. Wyrzucasz apteczkę
2. Po jej "skamienieniu" wykrywasz czy nie ma gracza stojącego zbyt blisko, czyli zaklinowanego
3. Jeśli istnieje taki, dla pewności sprawdzasz, czy nie utknął (jest na to funkcja gotowa), jeśli utknął to go wyrzucasz do góry (odkopywanie z amx_super polecam do tego).
  • +
  • -
  • 1


#627801 [ROZWIĄZANE] Aim na Steam

Napisane przez DarkGL w 24.03.2014 14:05

Nie.


  • +
  • -
  • 15


#627441 Wczytywanie danych z pliku.

Napisane przez Klakier w 22.03.2014 22:16

pobierasz dane i używasz

str_to_num(data)

i porownujesz ze swoim liczba


  • +
  • -
  • 2