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
 

Gromek98 - zdjęcie

Gromek98

Rejestracja: 15.08.2014
Aktualnie: Nieaktywny
Poza forum Ostatnio: 15.02.2016 19:36
-----

#719863 Koniec mapy po 16 rundach, remis po 15

Napisane przez Epal w 06.02.2016 07:51

Co do limitu rund to mozesz ustawic to w server.cfg. Nie pamietam jaki to cvar ale cos z mp_
mp_limitround ? Czy cos takiego.

Co do wygranych to tez jest cos takiego. mp_winlimit albo cos takiego. 


  • +
  • -
  • 1


#718981 Problem z RS na FastDL

Napisane przez NoLiFeR w 25.01.2016 07:00

Aktywuj ponownie FD z panelu i zrestartuj (nie zmień mape, chociaż nwm jakie to ma tutaj znaczenie, mi nie działało po zmianie mapy) serwer.


  • +
  • -
  • 1


#236897 Asysta przy zabiciu

Napisane przez ;(( w 14.04.2011 20:06

Kill assist v1.2b
Author: Digi (aka Hunter-Digital)


Dołączona grafika

Kiedy gracz zostanie zabity, ten plugin sprawdza, czy inny gracz z tego samego teamu, nie wyrządził szkód, tak aby mógł być współsprawcą zabicia i ten gracz otrzyma również frag.

Dołączona grafika

Standardowa - Instalacja Pluginów AMXX - AMXX.pl: Support AMX Mod X

Dołączona grafika

amx_killassist_enable 0/1/2 (domyślnie: 1)
0 - Wyłączony/Włączony / 1 - z DeathMsg / 2 - Włącz wiadomości na HUD

amx_killassist_mindamage 1-9999 (domyślnie: 50)
Ile obrażeń musi zadać drugi gracz aby był współsprawcą zabicia

amx_killassist_givefrags 0 / 1 (domyślnie: 1)
Czy dać graczowi asystującemu fragi

amx_killassist_givemoney 0-16000 (domyślnie: 300)
Czy dać graczowi asystującemu pieniądze za zabicie, 0 - nie daje, 1 lub więcej odpowiada za to ile ma dawać pieniędzy

amx_killassist_onlyalive 0 / 1 (domyślnie: 0)
Czy tylko żywi gracze mogą być współsprawcami przy zabiciu innych graczy

Dołączona grafika

Dołączona grafika
Dołączona grafika
Dołączona grafika

(Autor przeprasza za nazwy botów na SSach)

Dołączona grafika

Wymagane moduły:

- hamsandwich
- cstrike
- engine
- fun

Download w załączniku

źródło: forums.alliedmods.net

Załączone pliki


  • +
  • -
  • 48


#111552 Spadochron (parachute)

Napisane przez tymbark122 w 12.02.2010 22:20

Opis:
Jest to spadochron jakiego znacie;D ale trochę inny...Nie trzeba płacić, sprzedawać itp. Tylko spadochron jest już od START'u za darmo.

Instalacja:
Plik parachute.mdl do cstrike/models
Plik parachute.amxx do cstrike/addons/amxmodx/plugins
Plik parachute.sma do cstrike/addons/amxmodx/scripting

Cvar'y
sv_parachute "1" - 0: wyłączony - 1: włączony
parachute_fallspeed "100" - szybkosc lotu

Wystraczy zmienić mape lub zrestartować Serwer i gotowe;D
Mam nadzieje, że działa ;P

Załączone pliki


  • +
  • -
  • 97


#705452 [ROZWIĄZANE] Infinite Round - Czas mapy się nie kończy

Napisane przez ^Szeregowy^ w 07.07.2015 17:36

ten plugin oznacza nie konczaca si runda jak sama nazwa wzkazuj wiec tak ma byc co do map masz galileo ?




#703634 Runda trwająca całą mapę?

Napisane przez Rivit w 21.06.2015 15:03

Plugin dodający boty niewidzialne do teamów, albo orpheu, gdzieś widziałem takie coś
  • +
  • -
  • 1


#703180 Dodanie czasu trwania głosowania

Napisane przez Asiap w 14.06.2015 14:16

zmien sobie 15.0 na 45.0 i skompiluj ponownie


  • +
  • -
  • 1


#685784 [ROZWIĄZANE] Łączna ilość zabić Teamu

Napisane przez radim w 31.01.2015 21:36

#include <amxmodx>
#include <amxmisc>

enum TEAM
{
	TEAM_CT,
	TEAM_T
}
new kills[ TEAM ]

public plugin_init( )
register_plugin( "Licznik Fragow", "1.0", "radim" )

public client_connect( id )
set_task(3.0, "ShowScore", id, .flags = "b");

public client_death( killer, victim, wpnindex, hitplace, TK )
{
	if( !is_user_connected( killer ) || killer == victim || killer == 0 )
	return;
	
	switch( get_user_team( killer ) )
	{
		case 1: kills[ TEAM_T ]++
		case 2: kills[ TEAM_CT ]++
	}
}

public ShowScore( id )
{
	set_hudmessage(0, 0, 255, -1.0, 0.0, 0, 6.0, 2.0)
	show_hudmessage( id, "Wynik^nTT: %d | CT: %d", kills[ TEAM_T ], kills[ TEAM_CT ] )
}

Sprawdź, na szybko pisane.


  • +
  • -
  • 1


#663961 Jak dodać rank do HUD

Napisane przez Danny OK w 15.09.2014 20:50

Proszę:

static stats[8], body[8], rankpos, rankmax; 
get_user_stats(id, stats, body); // Pobieranie statystyk gracza

rankpos = get_user_stats(id, stats, body); // Definicja pozycji gracza
rankmax = get_statsnum(); // Ilość graczy w ranku

set_hudmessage(255, 215, 0, 0.72, 0.4); // Kolor i pozycja hud
show_hudmessage(id, "Twoja pozycja w ranku to %d na %d", rankpos, rankmax); // Wyświetlenie hud (rankpos - twoja pozycja; rankmax - wszystkich)

  • +
  • -
  • 1


#662487 Problemy z zablokowaniem reklam na serwerze

Napisane przez GwynBleidD w 07.09.2014 10:20

Używają buga w RevEmu, aby zmieniać SteamID. Wyłącz w dproto generowanie SteamID dla RevEmu, to powinno pomóc.
  • +
  • -
  • 2


#9646 Eventy

Napisane przez Miczu w 02.07.2008 15:13

Postaram sie przedstawic najwazniesze eventy do cs'a, wraz z codem wystarczajacym do pozniejszego korzystania z niego O:)

Ps. podam tylko sprawdzone metody i nie będę przytaczal jakie sa bledne metody (szczegolnie nowa runda jest pare metod w tym 1 bledna, czesto stosowana).

Start mapy


plugin_init()
{
	//code
}
Powyzsza funkcja jest tylko wywolywana po zmianie mapy (na samym jej poczatku).

Koniec mapy


plugin_end ( )
{
	//code
}
Powyzsza funkcja jest wywolywana przy zmianie mapy lub prawidlowym zamknieciu serwera. Prawdopodobnie nie wychwyci crasha.

Nowa Runda


#include <amxmodx>
#include <amxmisc>
 
public plugin_init() {
	register_event("HLTV", "Nowa_Runda", "a", "1=0", "2=0")
}
 
public Nowa_Runda()
{
	//code
}
Nowa runda tym sposobem omija pierwsza runde - pierwsza po zmianie mapy.
#mozliwe problemy gdy w tym evencie np: operacje na graczu typu danie broni(potwierdzone)...

Poczatek Rundy


Poczatek rudny to jak sie freeze skonczy - mozna sie ruszac ;-)
#include <amxmodx>
#include <amxmisc>
 
public plugin_init() {
	register_logevent("Poczatek_Rundy", 2, "1=Round_Start")  
}
 
public Poczatek_Rundy()
{
	//code
}

Koniec Rundy


Przeciwnik zabity/Bomba wybuchla/Bomba zostala rozbrojona/zakladnicy uwolnieni/minol czas rudny
#include <amxmodx>
#include <amxmisc>
 
public plugin_init() {
	register_logevent("Koniec_Rundy", 2, "1=Round_End")
}
 
public Koniec_Rundy()
{
	//code
}

Damage - obrazenia


#include <amxmodx>
#include <amxmisc>
 
public plugin_init() {
	register_event("Damage", "Damage", "b", "2!=0")
}
 
public Damage(id)
{
	new vid = read_data(0) // vid == id
	
	new damage = read_data(2)
	
	new Origins[3]			// Wspolrzedne gracza, granatu, obiektu wywolujacego obrazenia
	Origins[0] = read_data(4)
	Origins[1] = read_data(5)
	Origins[2] = read_data(6)
	
	new kid = get_user_attacker(id)	// Gracz atakujacy
 
	//code
	
}

DeathMsg - ktos umarl


#include <amxmodx>
#include <amxmisc>
 
public plugin_init() {
	register_event("DeathMsg", "DeathMsg", "a")
}
 
public DeathMsg()
{
	new kid = read_data(1)	//zabojca
	
	new vid = read_data(2)	// ofiara
	
	new hs = read_data(3)	// HeadShot (1 == true)
	
	new weapon[64]		
	read_data(4,weapon,63)	//krotka nazwa broni (bez weapon_ / CSW_ )
 
	//code
}
kid i vid sa sobie rowne gdy zabije cie wlasna bron (granat) lub np. admin uzyje slay'a...

kid == 0 gdy np. spadniesz z wysokiej wysokosci...

CurWeapon - obecna bron



Wykrywa zmiane broni - takze gdy sie sawnujesz dostajesz nowa bron i funkcja tez jest wywolana.

#include <amxmodx>
#include <amxmisc>
 
public plugin_init() {
	register_event("CurWeapon","CurWeapon","be", "1=1")
}
 
public CurWeapon(id)
{
	new wid = read_data(2)	// Id broni
	new ammo = read_data(3)	// liczba naboi w magazynku
	//code
}

Noz, granaty itp. maja ammo = -1

Info-bronie

Z testow wynika, ze w/w event jest tez wywolywany po wystrzeleniu naboju (ammo sie zmienia) lub po przeladowaniu.

Podniesienie broni



Podniesie broni a takze kupienie. Na starcie rundy sie uruchomi gdy dostajemy noz i pistolet (2 razy). Jest wywolywany takze gdy kupimy cos, ale nie bedziemy mieli tego w rekach (np. granat).

#include <amxmodx>
#include <amxmisc>
 
public plugin_init() {
	register_event("WeapPickup", "WeapPickup", "b")
}
 
public WeapPickup(id)
{
	new wid = read_data(1) // id broni
 
	//code
}

Nie liczy podniesienia Shilda oraz kupienia defa, noktowizora czy kamizelki Dołączona grafika

Podniesienie amunicji



Jak kupujemy amunicje to clip daje nam wartosc ile nam przybylo. Jesli podniesiemy M4A1 co ma 24 w broni i 90 w zapasie to clip bedzie mial wartosc 90, a nie 114. Jak drop'niemy i podniesiemy wlasna bron to event nie zostanie wywolany.

#include <amxmodx>
#include <amxmisc>
 
public plugin_init() {
	register_event("AmmoPickup", "AmmoPickup", "b")
}
 
public AmmoPickup(id)
{
	new aid = read_data(1)   //id amunicji
	new clip = read_data(2)  //ilosc naboi
	
	//code
}

Amunicja



Aktualny stan amunicji w 'zapasie'. Jak kupujemy ammo to clip ma laczna wartosc naboi w magazynku. Jak podniesiemy po kims bron np. AK 25 i 90 w zapasie to clip wynosi 90.

Na poczatku rundy wszystkie typy naboi za wyjatkiem tych do ktorych mamy bron sa zerowane. Jak kupujemy granaty to clip ma wartosc rowna ilosci danego typu np. flash max 2...
#include <amxmodx>
#include <amxmisc>
 
public plugin_init() {
	register_event("AmmoX", "AmmoX", "b")
}
 
public AmmoX(id)
{
	new aid = read_data(1)
	new clip = read_data(2)
	
	client_print(id,print_chat,"id %d aid %d clip %d",id,aid,clip)
 
	//code
}

Wejscie na server


Juz widzisz mape ;-)
public client_putinserver(id){
	//code
}

Polaczenie z serwerem


Czyli gdy np. w konsoli napiszesz connect IP:PORT
public client_connect(id)
{
	//code
}

Rozlaczenie sie z serwerem



public client_disconnect(id)
{
	//code
}

Health - Zycie


#include <amxmodx>
#include <amxmisc>
 
public plugin_init() {
	register_event("Health", "Health", "be")
}
 
public Health(id)
{
	new health = read_data(1)
 
	//code	
}


Money - zmiana w kasie


#include <amxmodx>
#include <amxmisc>
 
public plugin_init() {
	register_event("Money", "Money", "be")
}
 
public Money(id)
{
	new Money = read_data(1)
 
	//code	
}





TeamInfo - informacjie o Teamie



Ogolny wyglad eventu:
#include <amxmodx>
#include <amxmisc>
 
public plugin_init()
{
	register_event("TeamInfo","team_assign","a")
}
 
public team_assign()
{
	new id = read_data(1)
	new Team[32]
	read_data(2,Team,31)	//UNASSIGNED
				//TERRORIST
				//CT
				//SPECTATOR
}

Ale trzeba sie tu pilnowac! Z moich badan wynika ze event jest wywolywany za kazdym spawnem i dodatkowo przy wyborze z menu teamu.

Jesli chcemy wykrywac autentyczna zmiane druzyny musimy zastosowac taki zabieg (chyba najoptymalniej i do tego czysto):
#include <amxmodx>
#include <amxmisc>
 
public plugin_init()
{
	register_event("TeamInfo","team_assign","a")
}
 
public team_assign()
{
	static old_team[33]
	new tid
	new id = read_data(1)
	new Team[32]
	read_data(2,Team,31)	//UNASSIGNED
				//TERRORIST
				//CT
				//SPECTATOR
	if(equal(Team,"UNASSIGNED")) tid = 0
	else if(equal(Team,"TERRORIST")) tid = 1
	else if(equal(Team,"CT")) tid = 2
	else if(equal(Team,"SPECTATOR")) tid = 3
	
	if(old_team[id]==tid) return PLUGIN_CONTINUE	//jesli druzyna sie nie zmienila to przerywamy event
	
	old_team[id] = tid				//zapisujemy nowy team
	
	/*code
	
	//koniec code */
	return PLUGIN_CONTINUE 		// skoro juz uzylismy returna to musimy tez na koniec go dac
}

=================================================

Eventy wywolane przez:
register_logevent
nie maja parametru id - a mowiac inaczej jak dodamy parametr id, to bedzie mial wartosc 0

=================================================

Flagi do eventow:

"a" - Global Event - wysylany do all graczy (mozliwy jest brak mozliwosci podpiecia id do eventu np. DeathMsg)
"b" - Event sent to a single target - do konkretnego gracza (zwiazany z pojedynczym graczem - demage)
"c" - Send only once when repeated to other players - tylko raz gdy jest powtarzany u innych graczy.
"d" - Only if sent to a dead player - tylko u martwych graczy
"e" - Only if sent to an alive player - tylko u zywych graczy ( przed wersja 1.80 jest bug, wiec i tak wypada sprawdzac is_user_alive(id) )


PS. Jak będę mial czas to dodam wiecej O:)
PS2. Jak cos nie dziala to dajcie znac, bo nie wszystko mialem czas sprawdzic przed daniem na forum.

PS3. Jestem autorem tego poradnika i wolno tylko kopiowac za moja zgoda... Nie [you] nie mozesz kopiowac!
  • +
  • -
  • 60


#98901 Jail Radio

Napisane przez DarkGL w 13.12.2009 16:45

opis.png
Plugin dodaje menu z dźwiękami pod klawiszami z i x dźwięki o "tematyce" więziennej

ss.png

TT:
2z3uofq.jpg
jj0h20.jpg

CT:
ht5yyf.jpg

instalacja.png
pliki dźwiękowe wrzucamy do


sound/misc/crazyclan

download.png
załącznik

Załączone pliki


  • +
  • -
  • 11


#661132 [ROZWIĄZANE] Jak zrobić plugin dla jednego ip serwera / nazwy forum

Napisane przez radim w 30.08.2014 08:42

public plugin_init()
{
new ip[40];
get_user_ip(0, ip, 39); //Jesli id = 0 pobiera ip serwera
if(!equal(ip, "00.00.00.00:00000")) //Jesli ip jest inne pod podanego
set_fail_state("Plugin zostanie wylaczony, zle ip serwera!");
}

Kod umieszczasz w plugin_init


  • +
  • -
  • 1


#654272 [Poradnik] Jak naprawić menu z generatora Vip'a?

Napisane przez Drago36 w 02.08.2014 12:26

WITAM


Ostatnio  wzrastającą  liczbą tematów są problemy nie działającego menu  vip'a!

Jak temu zaradzić? Tu z pomocą wchodzi CheQ ( bo mnie zmusił <_<  )

 

Krok po kroku aż do celu


Co robimy pierwsze? No pewnie , że otwieramy naszego vip'a.sma w programie typu : amxx-studio

1. Najpierw zacznijmy od usunięcia niepotrzebnych rzeczy w kodzie.

Zmienna menu_callback_handler nie posłuży nam niczym - wyrzucamy.

Spoiler

Także usuwamy dwa poniższe funkcje.

public menu_callback(id, menu, item){
	return ITEM_DISABLED;
}
public menu_handler(id, menu, item){
	menu_destroy(menu);
	return PLUGIN_HANDLED;
}

Szukamy w naszym kodzie, zaznaczamy i usuwamy.

 

2. A teraz musimy się skupić (if you know what i mean).

Cały public show_vip_menu(id) podmieniamy na ten poniższy.

Czyli z tego:

public show_vip_menu(id){
	menu=menu_create("\rMenu VIPa","menu_handler");
	menu_callback_handler=menu_makecallback("menu_callback");
	new bool:active=false, num=-1;
	menu_additem(menu,"\w","",0,menu_callback_handler);
	if(menu_callback(id, menu, ++num)==ITEM_ENABLED){
		active=true;
	}
	if(active){
		menu_setprop(menu,MPROP_EXITNAME,"Wyjscie");
		menu_setprop(menu,MPROP_TITLE,"\yMenu Vipa");
		menu_setprop(menu,MPROP_NUMBER_COLOR,"\r");
		menu_display(id, menu);
	} else {
		menu_destroy(menu);
	}
}

Zmieniamy na:

public show_vip_menu(id) {
	menu = menu_create("\rMenu Vip'a:", "menu_handler");
	menu_additem(menu, "\wDodatki nr 1", "1", 0);
	menu_additem(menu, "\wDodatki nr 2", "2", 0);
	menu_additem(menu, "\wDodatki nr 3", "3", 0);
	menu_additem(menu, "\wDodatki nr 4", "4", 0);
	menu_additem(menu, "\wDodatki nr 5", "5", 0);
	menu_additem(menu, "\wDodatki nr 6", "6", 0);
	menu_additem(menu, "\wDodatki nr 7", "7", 0);

	menu_setprop(menu, MPROP_EXIT, MEXIT_ALL);

	menu_display(id, menu, 0);
}

W miejsca "Dodatki nr (...)" zmieniamy na dokładny opis co ustawiliśmy w menu, a nie potrzebne usuwamy. Jeśli w pierwszej opcji menu ustawiliśmy graczowi dostawanie ak47 to musimy to wpisać, a gdy nie pamiętamy co ustawiliśmy to szukamy w naszym kodzie:

public menu_numer_handler(id) - w miejsce "numer" będzie od 1 do 7.

,a w tej funkcji będą linijki typu "weapon_deagle"/"weapon_ak47" - na chłopski rozum się domyślamy, że slot nr. 1 da nam dgl i ak.

 

 

Ja na przykład wygenerowałem sobie takiego vipa, że w menu może wybrać jedną z trzech opcji:  AK+DGL, M4+DGL lub M3+DGL.

A więc wychodzi na to, że u mnie public show_vip_menu(id) będzie wyglądał tak:

Spoiler

 

 

3. Połowa rzeczy już za nami.

Teraz należy dodać tę funkcję, gdzieś na samym dole kodu.

public menu_handler(id, menu, item)
{
	if (item == MENU_EXIT)
	{
		menu_destroy(menu);
		return PLUGIN_HANDLED;
	}
	new data[8], iName[64];
	new zaccess, callback;
	menu_item_getinfo(menu, item, zaccess, data,7, iName, 64, callback);
	new key = str_to_num(data)

	switch(key)
	{
		case 1: menu_1_handler(id)
		case 2: menu_2_handler(id)
		case 3: menu_3_handler(id)
		case 4: menu_4_handler(id)
		case 5: menu_5_handler(id)
		case 6: menu_6_handler(id)
		case 7: menu_7_handler(id)
	}
	menu_destroy(menu);
	return PLUGIN_HANDLED;
}

I oczywiście nie potrzebne usuwamy :)

W moim menu są tylko trzy opcje, więc je zostawiłem.

Spoiler

 

4. Teraz należy skompilować i podmienić naszego vip'a na serwer.


  • +
  • -
  • 12


#658898 Czy da się połączyć 2 Hud'y w 1?

Napisane przez Onyke w 19.08.2014 18:45

Natywami.

 


  • +
  • -
  • 1