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
 

ZiuTeK - zdjęcie

ZiuTeK

Rejestracja: 19.04.2009
Aktualnie: Nieaktywny
Poza forum Ostatnio: 22.04.2011 19:41
*****

#234795 amx_ip - wyświetlanie listy zmiennych IP

Napisane przez ZiuTeK w 09.04.2011 11:37

Dołączona grafika

Plugin wyświetla liste graczy, ich IP, steamID a także informacje czy jest to zmienne IP.

Istnieja, już pluginy wyświetlające czy gracz ma stałe czy zmienne IP, lecz korzystają z modułu netDB, który na gorszych hostingach może powodować lagi serwera nawet do kilku sekund.
Ten plugin sprawdza czy IP jest stałe czy zmienne korzystając z pliku ipdesc.ini



Dołączona grafika
Standardowa, plik show_ip.amxx wrzucamy do katalogu plugins
plik show_ip.sma - wrzucamy do katalogu scripting.
plik ipdesc.ini wrzucamy do katalogu configs
do plugins.ini dopisujemy show_ip.amxx

Dołączona grafika

amx_ip - wyświetla w konsoli informacje o graczach

Dołączona grafika

Przykład informacji wypisanych po użyciu amx_ip

----------------------Informacje------------------------------
192.168.1.1:27015
Moja nazwa serwera.com [TP] @jakis_hosting.pl
--------------------------------------------------------------
#1 QuiT 77.254.233.38 Nonsteam ZmienneIP
#4 batista 89.231.252.255 Nonsteam ZmienneIP
#5 Moon Cramp STEAM_0:0:1414557282 77.255.57.21 Nonsteam ZmienneIP
#6 H@czko STEAM_0:1:34270429 89.228.169.149 Steam ZmienneIP
--------------------------------------------------------------

Graczy Quit i batista, można zbanować np. używając pluginu bansubnet, ponieważ maja stara wersje nonsteama i zmienne IP, po banie na range nie powinni już wejść o ile zbanujemy odpowiedni zakres a graczom nie zmieni sie całkowicie IP.

Rangi w pliku ipdesc.ini początkowo byly dopisywane z wikipedii, ostatnie adresy są dodane na podstawie nazwy hosta, dynamic, adsl i gprs. Jeśli ktoś zna jeszcze jakies hosty, które mają zmienne IP, proszę o informacje i zostaną dodane do pliku.

Edited: zwiekszylem liczbe wpisow do 160 i liczbe liczbe sieci w ipdesc.ini

Załączone pliki


  • +
  • -
  • 14


#208464 Problem z dodaniem nowej klasy

Napisane przez ZiuTeK w 23.01.2011 00:55

1: case Hunter nie posiada klamer gdyz ma tylko jedna komende, gdy chcesz zastosowac wiecej polecen musisz zastosowac klamy
W twoim przypadku case Cziter:{
player_b_respawn[id]=1 // gdy dasz 1 oznacza to ze ma szanse 1/1 na odrodzenie 2 oznacza szanse 1/2 na odrodzeni itd
Jesli otwierasz klamre to oczywiscie trzeba ja tez zamknac.
case Cziter: // gdy noz sie naladuje..
{
player_b_vampire[id]=3; // ile hp zabiera przy kazdym strzale
player_b_dagon[id]=1; // ma mozliwosc uzywania pioruna ( moze sie bugowac z innymi itemami bez odpowiednich przerobek
player_b_respawn[id] = 3 // ma szanse 1/3 na odrodzenie
}
Te wlasciwosci zostana dodane od razu po wyborze klasy, zeby ich nie utracic, najlepiej w funkcji od wyrzucania itemow ( chyba to jest public dropitem) na koncu dopisac cos w rodzaju:
public dropitem(id){
...
...

if (!player_b_class[id]== Cziter){
player_b_vampire[id]=0 
i pozostale komendy jakie ma miec ta klasa
}
}
Przy czym nalezy pamietac zeby ich nie zerowac powyzej. Jesli standardowa moc dla klasy Cziter bedzie player_b_dagon, to usuwasz ja bezposrednio z funkcji public dropitem(id) a dodajesz ja na samym koncu tej funkcji do warunku dla klasy cziter.
Na jezyk chlopski to co napisalem wyzej:
Jesli klasa gracza jest inna niz Cziter, wywal player_b_vampire ( jesli klasa to cziter, ten skill zostaje bo ma byc wbudowany w klase) - dokladny opis w kodzie powyzej.

2. To juz powyzej odpisalem.
3. Posypac sie nie posypie ale nowej klasie nie bedzie rosl exp. Musisz skorzystac z podadnika - Dodawanie nowej klasy bez resetu expa - poradnik Pavulona, lub zresetowac levele.

Ten sposob, ktory opisalem nie jest najlepszy ale najszybszy do wytlumaczenia. Jesli Gracz dostanie item player_b_vampire 1/1 to nie zostanie mu wowczas wywalony.
Mozna to zrobic odrobine lepiej w ten sposob, najpierw wyzerowac wszystkie wartosci a warunek w dropitem zamienic na:
if(player_class[id]==Cziter){
player_b_vampire[id]=1/3
...
}
Wczoraj pisalem z glowy ale cos mi to w nocy spac nie dalo :D Takie rozwiazanie bedzie lepsze.
  • +
  • -
  • 1


#208459 Tymczasowy admin / slot

Napisane przez ZiuTeK w 23.01.2011 00:27

Opis:
Dzięki temu pluginowi możemy przydzielić admina na określoną liczbe dni. Admina możemy przydzielić jedynie na nick.
Plugin jest przeróbką Temp Admin by Alka, przerobka moze niewielka ale zmiany dosyc powazne. Nie ma mozliwosci, zeby ktos sam mogl sobie przydzielic admina (jak w wersji Alki). Teraz jedynie admin z flaga ADMIN_IMMUNITY moze przydzielac admina.
Brak wyboru na minuty i godziny. Admina/rezerwacje slota lub konto neo można przydzielić jedynie na konkretna liczbe dni(Nie widzialem sensu wprowadzania adminow na tak krotki okres).

Komenda do przydzielenia admina to:
amx_tempadmin <#nick> <#haslo> <#na ile dni> <#flagi admina>

Aby przydzielic admina nie trzeba wolac gracza na serwer jak w starej wersji.
Admini tymczasowi nie sa dopisywani do pliku users.ini. Zostaje utworzony osobny plik temp_admin.ini w ktorym po uplywie czasu linijka z uprawnieniami admina jest podmieniana na ;Admin Expired. Nie trzeba sie martwic w sprawdzanie slota/admina czy rezerwacji nicka, po uplywie okreslonego czasu flagi zostana usuniete.

Załączone pliki


  • +
  • -
  • 9


#208454 Move - popędzacz

Napisane przez ZiuTeK w 23.01.2011 00:15

Opis:
Plugin ma za zadanie wypisywac wiadomosci imitujace wiadomosc od admina aby przyspieszyc gre.
Tekst wiadomosci mozna edytowac w pliku sma. Plugin jest przystosowany do mapek de_ ale jesli ktos przerobi napisy moze sie sprawdzic tez na mapkach cs_
Przykladowe wiadomosci to np; czekamy na pake ..., paka ..., cele mapy ... itp
Pierwsza wiadomosc jest wysylana gdy jest 40 sekund do konca rundy, ta wiadomosc jest wyswietlana wszystkim graczom.
Nastepna wiadomosc jest wyswietlana Graczowi, ktory posiada pake 25 sekund przed koncem rundy.
Jesli paka juz jest podlozona, lub jakis gracz jest w trakcie podkladania paki, wiadomosc nie zostanie wyswietlona.
Plugin jest przypominaczem dla mniej ogarnietych graczy, aby pamietali o pace.
Moze komus spodoba sie takie rozwiazanie zeby bez przerwy samemu nie upominac graczy o celach mapy.
Instalacja:
standardowa - plik amxx do plugins, plik sma do scripting, move.amxx dopisujemy do plugins.ini

Załączone pliki


  • +
  • -
  • 2


#203213 2 problemy get_user_name i isalpha

Napisane przez ZiuTeK w 06.01.2011 12:12

Witam, mam obecnie 2 problemy z ktorymi nie moge sobie poradzic.
1. Chce sprawdzic czy podany ciag znakow zawiera litery, zrobilem przykladowy plugin korzystajac z dokumentacji zamieszczonej na stronie ale cos nie chce mi to dzialac
#include <amxmodx>
#include <amxmisc>

#define PLUGIN "New Plug-In"
#define VERSION "1.0"
#define AUTHOR "author"
public plugin_init() {
	register_plugin(PLUGIN, VERSION, AUTHOR)
	
	register_concmd("amx_sprawdz","sprawdz_tekst",ADMIN_KICK,"<wpisz podany tekst do sprawdzenia>")
}
public sprawdz_tekst(id)
{
	new sArg[32];
	read_argv(1, sArg, sizeof sArg - 1);
	if(isalpha(sArg[31]))
                console_print(id, "Podany ciag znakow to litery")
}
Funkcja wyswietla sie kazdemu ale niczego nie zwraca niezaleznie czy wpisze 1, a, czy jakis tekst.

2. Mam plugin w ktorym sprawdzam w public infochanged czy zmienil nicka i wywoluje funkcje "sprawdz"
W funkcji sprawdz gdy pobieram jego nowego nicka przez funkcje
get_user_name(index,name,sizeof(name)-1
) nie uzyskuje zadnych rezultatow, tak jakby gracz gral dalej na tym samym nicku
dziala zas przez funkcje
get_user_info(index,"name",sUserInfo,sizeof sUserInfo -1)
Funkcja dziala ale nie bedzie przez to kompatybilna chyba z jakimis pluginami typu diablo gdzie musze blokowac zmiane nicku gracza. Przynajmniej tak mi sie wydaje. Jest ktos w stanie na to zaradzic lub rozwiac moje watpliwosci ?
  • +
  • -
  • 1


#190646 Nekromana - wskrzeszanie adminów

Napisane przez ZiuTeK w 21.11.2010 15:31

Jesli masz plugin admin_spectate admin_spec_esp czy tam invisible spectator to admina zawsze przenosi na speca po smierci.
  • +
  • -
  • 1


#189955 Kusza-Ładowanie

Napisane przez ZiuTeK w 19.11.2010 20:20

Jesli takie cos was zadowoli ...
To nie jest prawdziwe przeladowanie bo przy tym prawdziwym trzeba by w prethinku sprawdzac czy gracz ma kusze i trzyma wcisniety prawy przycisk myszy. Da sie to zrobic na przykladzie paska ladowania magii i wtedy trzeba zerowanie ustawic po naladowaniu paska.
Ja to zrobilem przy zmianie broni.
Znajdujemy:
new player_ring[33]		//ring stats bust +5
dopisujemy
new player_b_arrownum[33]
w public curweapon(id)
pod linijkami:
		if(bow[id]==1)
		{
			bow[id]=0
			if(on_knife[id])
			{
				entity_set_string(id, EV_SZ_viewmodel, KNIFE_VIEW)  
				entity_set_string(id, EV_SZ_weaponmodel, KNIFE_PLAYER)  
			}
		}
dopisujemy zaraz pod:
else player_b_arrownum[id]=0

i w prethinku pod
///////////////////// BOW /////////////////////////

dla naszej kuszy wyszukujemy

bowdelay[id] = get_gametime()
				command_arrow(id)

zamieniamy na
				if(player_b_arrownum[id]<3)
				{
				bowdelay[id] = get_gametime()
				command_arrow(id)
				player_b_arrownum[id]+=1
				}
				else client_print(id,print_center,"Wystrzeliles %s belty, musisz przeladowac",player_b_arrownum[id])
w linijce if(player_b_arrownum[id]<3) ustawiamy ilosc strzal.

Moze znajdzie sie ktos kto zrobi to tak jak trzeba.
  • +
  • -
  • 1


#189565 /bank itemow

Napisane przez ZiuTeK w 18.11.2010 15:58

Moze kogos zainteresuje takie rozwiazanie, choc od razu mowie, ze na moim serwerze to sie nie sprawdzilo. Jesli ktos ma juz u siebie komendy /daj /wez to moze takie cos mu sie przyda.
Ten dodatek umozliwia wlozenie itemu do banku ( w przypadku gdy nie ma jeszcze klasy albo np ktos wylosowal item ktory jest lepszy dla innej klasy), a nastepnie wyciagniecie go z banku przez uzycie tej samej komendy /bank. Jesli gracz wlozyl item do banku i zdobedzie nowy, to poprzez komende /bank nadpisuje stary item w banku.
Do dziela
Znajdz:
new player_ring[33]		//ring stats bust +5
Dopisz pod:
//////////////////////////////////////////////////////////////////////
new player_b_bank[33] = 0
new player_b_bankdurability[33]= 0
/////////////////////////////////////////////////////////////////////
Znajdz:
register_clcmd("say /drop","dropitem")
Dopisz pod:
register_clcmd("say /bank","bank")
Znajdz:
public client_disconnect(id)
Dopisz w niej:
player_b_bank[id]=0
	player_b_bankdurability[id]=0

Na koncu kodu diablo wrzuc:
public bank(id)
{
	if (player_item_id[id]>0)
	{
		player_b_bank[id]=player_item_id[id]
		player_b_bankdurability[id]=item_durability[id]
		ColorChat(id, GREEN,"^x01 Wlozyles item -^x04 %s ^x01 do banku", player_item_name[id])
		dropitem(id)
	}
	else
	{
		if(player_b_bank[id]>0)
		{
		award_item(id,player_b_bank[id])
		item_durability[id]=player_b_bankdurability[id]-20
		player_b_bank[id]=0
		player_b_bankdurability[id]=0
		if(item_durability[id]<=0) dropitem(id)
		else ColorChat(id, GREEN,"^x01 Wybrales item -^x04 %s ^x01 z banku",  player_item_name[id])
		}
		else
		ColorChat(id, GREEN,"^x01 Jeszcze nic nie wlozyles do banku", player_item_name[id])

	}
}
Uwaga !! Wymagane #include <colorchat> do Wyswietlania kolorowych informacji z banku i plik sma nalezy kompilowac lokalnie.

Załączone pliki


  • +
  • -
  • 1


#189175 Spowalnianie ładowania się paska na nożu

Napisane przez ZiuTeK w 16.11.2010 20:10

Szukasz linijki
//USE Button actives USEMAGIC
i pod nia pod warunkiem
else if(casting[id]==0)
Wystepuja: domyslne opoznienie dla wszystkich klas (time_delay)
i pozniej dla wymienionych Ninji, zabojcy, maga jest ustawiony inny czas opoznienia
Im wiekszy time_delay, tym wieksze opoznienie
Wiec podmieniasz
if(player_class[id] == Ninja) time_delay*=2.0
na np
if(player_class[id] == Ninja) time_delay*=2.5

  • +
  • -
  • 3


#187878 Archy nie zabijają ze względu na wysokość

Napisane przez ZiuTeK w 12.11.2010 18:59

Mozesz sprobowac pobrac wspolrzedne tego kto ma archy(w momencie upadku na ziemie) i tego kto jest w ich zasiegu, jesli wspolrzedna z ( wysokosc) jest mniejsza lub wieksza od pwoiedzmy 50 ( jakies 35 to polowa gracza) to continue a w przeciwnym wypadku zadaje damage.
Lepiej nie robic zeby to bylo idealnie na tej samej wysokoosci bo zawsze masz jakies nierownosci, pochylnie.
Czy nie rozwazales mozliwosci zmniejszenia domyslnego zasiegu arch lub sily obrazen ?
  • +
  • -
  • 1


#187427 Bug z powitaniem

Napisane przez ZiuTeK w 11.11.2010 13:08

Mi tez niepodobal sie ten spam dlatego zrobilem tak:
w
public client_connect(id) zwiekszylem set task na 15 sekund, zeby gracz zobaczyl wiadomosc po pewnym czasie i tyle mu wystarczy
Jesli jest kompletnie zielony to moze zawsze zapytac innych graczy na serwerze o komendy o ile nie zauwazyl powitania.

set_task(15.0, "Greet_Player", id+TASK_GREET, "", 0, "a", 1)

A w public client_changerace(id)
zwyczajnie zapauzowalem wyswietlanie powitania. Jesli juz go witala wiadomosc przy wejsciu to nie ma sensu zebym go co chwile wital.
//set_task(10.0, "Greet_Player", id+TASK_GREET, "", 0, "a", 1)

  • +
  • -
  • 1


#187320 Rozwalanie BS przez ninje i łowcę

Napisane przez ZiuTeK w 10.11.2010 23:52

Jesli denerwuje cie gdy ninja i lowca rozwalaja twoje BS podmien funkcje
public touchbreakable(ent1, ent2)
Na ta ponizej:
public touchbreakable(ent1, ent2)
{
	new name[32],ent ,breakable
	entity_get_string(ent1,EV_SZ_classname,name,31)
	if(equali(name,"func_breakable"))
	{
		breakable=ent1
		ent=ent2
	}
	else
	{
		breakable=ent2
		ent=ent1
	}

	if(entity_get_int(breakable, EV_INT_impulse) == 0)
	{
		new Float: b_hp = entity_get_float(breakable,EV_FL_health)
		if(b_hp>80) entity_set_float(breakable,EV_FL_health,b_hp-50.0)
		else dllfunc(DLLFunc_Use,breakable,ent)
		remove_entity(ent)
	}
	else {
		entity_get_string(ent,EV_SZ_classname,name,31)
		if(equali(name,"throwing_knife"))
		{
			entity_set_int(ent, EV_INT_movetype, 0)
			emit_sound(ent, CHAN_ITEM, "weapons/knife_hitwall1.wav", 1.0, ATTN_NORM, 0, PITCH_NORM)
		}
		else remove_entity(ent)
	}
}


  • +
  • -
  • 4


#187157 kilka pytan z modelami

Napisane przez ZiuTeK w 10.11.2010 17:20

1. Zobacz sobie na przykladzie itemu sword. Tam gdy dostaniesz miecz to automatycznie zmienia model noza.
2. Taki item juz jest. Nazywa sie Chameleon lub kameleon.
3. Inny model broni to chyba to samo co inny model noza. Ja bym probowal analogicznie do itemu sword.
4. info o /klasy itp to tak jak napisal ktos @up szukasz informacji ktora chcesz zablokowac np "/klasy" i przed register_clcmd dajesz // czyli
//register_clcmd .... kod ktory blokujesz
  • +
  • -
  • 1


#186910 info o graczu neo

Napisane przez ZiuTeK w 09.11.2010 16:48

Ale po co ci ma to pisac na sayu, pozniej bedziesz tego szukal w konsoli kiedy gracz wszedl
Zainstaluj amx_ip - wykrywa zmienne adresy IP, pokazuje informacje o serwerze - Nieoficjalny polski support AMX Mod X
i wpiszesz sobie amx_ip bez zadnego przeszukiwania consoli.
  • +
  • -
  • 1


#186523 [5.9l] FireShield oślepia gracza który posiada przedmiot zamiast ofiary

Napisane przez ZiuTeK w 07.11.2010 20:44

To ja dodam jeszcze cos od siebie odnosnie fireshielda

Jeśli masz u siebie problem, że po wyrzuceniu fireshielda gracz nadal świeci na żółto użyj tego poradnika(nie wiem czy da sie to zrobic lepiej ale u mnie od roku w ten sposob dziala bez problemow):

Do funkcji public respawn(svIndex[])
public respawn(svIndex[]) 
{ 
	new vIndex = str_to_num(svIndex)
	RemoveFlag(vIndex,Flag_Rot) // usuwamy swiecenie
	spawn(vIndex);
}
i do funkcji public RoundStart() dodajemy:
public RoundStart(){
	for (new i=0; i < 33; i++){
		used_item[i] = false
		DemageTake1[i]=1
		count_jumps(i)
		give_knife(i)
		RemoveFlag(i,Flag_Rot) // usuwamy swiecenie
i fireshield, działa tak jak należy
  • +
  • -
  • 5