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
 

stepdub - zdjęcie

stepdub

Rejestracja: 11.05.2011
Aktualnie: Nieaktywny
Poza forum Ostatnio: 14.07.2012 12:51
-----

#308795 VIP na nick/IP/SID

Napisane przez sebul w 16.10.2011 11:54

Opis



Plugin działa praktycznie na takiej samej zasadzie jak dodawanie/wczytywanie adminów/vipów z users.ini, tylko tutaj można ustalić także do kiedy dany gracz ma posiadać flagi oraz oczywiście wykorzystywany jest inny plik. Ogólnie sam plugin nie daje nic, ale można go wykorzystać w każdym innym pluginie, wystarczy używać natywów, które zostały dodane. Dodałem także komendę, dzięki której gracz zawsze będzie wiedział kiedy kończy mu się VIP (lub KP, jeśli plugin wykorzystamy do diablo czy coda) oraz 3 dni (wartość domyślna) przed końcem automatycznie po wejściu na serwer będzie mu się wyświetlać info o tym kiedy straci VIPa.
Dodatkowo zostaje udostępniony plugin do ustawienia flag w danych godzinach (vip_w_godzinach.amxx).

Changelog



Spoiler


Dodawanie konta



Spoiler


Natywy



/* zwraca flagi gracza */
native get_user_vip_flags(id);

/* ustawia flagi graczowi */
native set_user_vip_flags(id, flags = -1);

/* dodaje flagi graczowi */
native add_user_vip_flags(id, flags = -1);

/* usuwa flagi graczowi */
native remove_user_vip_flags(id, flags = -1);


Forwardy



/* forward wysylany po sprawdzeniu pliku z flagami, nie wykonywany tylko wtedy gdy gracz zostaw wyrzucony
id - id gracza
flags - przypisane flagi
endtime - data zakonczenia vipa w sekundach (unix time)
-2: nie znaleziono gracza lub czas vipa juz sie skonczyl
-1: vip na czas nieokreslony
*/
forward vip_client_authorized(id, flags, endtime);


Konfiguracja



Jeśli chcemy sprawdzać w jakimś pluginie czy gracz posiada flagi lub mu je dodać, należy najpierw na początek kodu sma dodać
#include <vip>

i teraz możemy już używać natywów dokładnie w taki sam sposób jak
get_user_flags(id)
set_user_flags(id, flags)
remove_user_flags(id, flags)

z tym że tutaj każda flaga ma inną nazwę define
#define VIP_FLAG_ALL 0 /* kazdy */
#define VIP_FLAG_A (1<<0) /* flaga "a" */
#define VIP_FLAG_B (1<<1) /* flaga "b" */
#define VIP_FLAG_C (1<<2) /* flaga "c" */
#define VIP_FLAG_D (1<<3) /* flaga "d" */
#define VIP_FLAG_E (1<<4) /* flaga "e" */
#define VIP_FLAG_F (1<<5) /* flaga "f" */
#define VIP_FLAG_G (1<<6) /* flaga "g" */
#define VIP_FLAG_H (1<<7) /* flaga "h" */
#define VIP_FLAG_I (1<<8) /* flaga "i" */
#define VIP_FLAG_J (1<<9) /* flaga "j" */
#define VIP_FLAG_K (1<<10) /* flaga "k" */
#define VIP_FLAG_L (1<<11) /* flaga "l" */
#define VIP_FLAG_M (1<<12) /* flaga "m" */
#define VIP_FLAG_N (1<<13) /* flaga "n" */
#define VIP_FLAG_O (1<<14) /* flaga "o" */
#define VIP_FLAG_P (1<<15) /* flaga "p" */
#define VIP_FLAG_Q (1<<16) /* flaga "q" */
#define VIP_FLAG_R (1<<17) /* flaga "r" */
#define VIP_FLAG_S (1<<18) /* flaga "s" */
#define VIP_FLAG_T (1<<19) /* flaga "t" */
#define VIP_FLAG_U (1<<20) /* flaga "u" */
#define VIP_FLAG_V (1<<21) /* flaga "v" */
#define VIP_FLAG_W (1<<22) /* flaga "w" */
#define VIP_FLAG_X (1<<23) /* flaga "x" */
#define VIP_FLAG_Y (1<<24) /* flaga "y" */
#define VIP_FLAG_Z (1<<25) /* flaga "z" */


Przykład:
Spoiler

Każdy sam może ustalić jakie przywileje ma dawać dana flaga. Flag do wykorzystania jest 26, czyli sporo ;]

Przykładowy plugin



Spoiler


Cvary



Tylko do pluginu vip_w_godzinach.amxx
vwg_wl "0" // czy plugin ma byc wlaczony
vwg_od "21" // od ktorej godziny plugin ma dawac flagi
vwg_do "24" // do ktorej godziny plugin ma dawac flagi
vwg_flagi "abcdefghijklmnopqrstuvwxyz" // jakie flagi ma dawac plugin
vwg_wiad "darmowego vipa" // co daja dawane flagi

Komendy



say /endvip - na czacie wyświetli się graczowi data kiedy kończy się VIP

Komendy admina



Tylko dla admina z flagą "a", można to zmienić w sma.
amx_addvip <name|ip|steamid> <password> <access flags> <account flags> <dd-mm-rrrr> <lenght in days> // dodaje VIPa

Instalacja



vip.ini do configs
vip_file.amxx do plugins
vip_file.sma do scrtipting
vip.txt do data/lang
vip.inc do scripting/include (tylko do kompilacji)

vip_w_godzinach.amxx do plugins
vip_w_godzinach.sma do scrtipting

Inne



Jeśli macie jakieś pytania, to proszę pytać. Samą funkcję dawania flag lekko przerobiłem z innego pluginu. Możliwe też, że za jakiś czas dodam także komendę dla admina, żeby mógł dodać VIPa będąc na serwerze, ale wydaje mi się, że i bez tej komendy jest dobrze. Należy jeszcze pamiętać o tym, że gracz dostaje flagi 0.5 sek. po tym jak wejdzie na serwer, ustawiłem takie opóźnienie, aby nie dawało flag graczowi, który zostanie wyrzucony innym moim pluginem, a dokładniej chodzi o rezerwacje nicków.

Download



Załączony plik  vip_file.sma   11,35 KB  696 Ilość pobrań
  vip_file.amxx
Załączony plik  vip.ini   1,23 KB  697 Ilość pobrań
Załączony plik  vip.txt   505 bajtów  678 Ilość pobrań

Załączony plik  vip.inc   1,98 KB  510 Ilość pobrań


Załączony plik  vip_w_godzinach.sma   1,97 KB  507 Ilość pobrań
  vip_w_godzinach.amxx
  • +
  • -
  • 31


#307698 Advanced Access Control

Napisane przez MarWit w 14.10.2011 17:26

Advanced Access Control by MarWit


opis

Jest to plugin-biblioteka, dodajacy możliwość dodawania zaawansowanych uprawnien, czyli alternatywa dla ADMIN_*.
Dzięki niemu mamy dostęp do większej liczby flag ( każdy znak może byc flagą!, [ wyj. ^ i " ] ), które można przechowywać w dowolnym pliku.

Jak korzystać z tego rozwiązania w swoich pluginach? Oto przykład:


#include <amxmodx>

native aac_get_user_flags(id, szOutput[], iLen) // Dodajemy aby korzystać z funkcji biblioteki.
native aac_user_has_flags(id, const szFlags[]) // Tak jak wyżej.

public plugin_init() {
register_plugin("Test AAC", "0.1", "MarWit")
register_clcmd("say /test", "cmdTest")
}

public cmdTest(id)
{
if(aac_user_has_flags(id, "$#Z")) // Sprawdzamy czy gracz posiada flagi $#Z
{
client_print(id, print_chat, "Posiadasz flagi $#Z :)")
return PLUGIN_CONTINUE
}

client_print(id, print_chat, "Nie posiadasz wszystkich wymaganych flag :(")
return PLUGIN_CONTINUE
}


konfiguracja

Do pliku z konfiguracja ( org. "aac_users.ini ) dodajemy graczy w formacie:
"nick_gracza/sid_gracza/ip_gracza" "flagi_gracza" "czas_posiadania_flag" "haslo_gracza"
Czas posiadania flag wpisujemy w formacie:
1. "ddmmrrrr" np. "16102011" - 16-10-2011
2. "ddmmrrrrggMM" np. "161020111147" - 16-10-2011 11:47
3. Wpisujemy "0", dzięki czemu dana osoba doststaje flagi pernametnie ( można usunąć gracza komendą "aacdel" )

d - dzień (1-31) , m - miesiąc(1-12) , r - rok ( xxxx ), gg - godzina ( 1-12 ), - minuta ( 0-59 )

Hasła nie wpisujemy, jeżeli w 1 polu daliśmy coś innego niż nick.

Oczywiście graczy możemy dodawać i usuwać także komendami.

Zmiana nazwy pliku konfiguracyjnego:
Szukamy
new const g_szFileName[128] = "aac_users.ini"

Gdzie "aac_users.ini", zmieniamy na własną nazwe

Hasło:
Gdy ustawimy graczowi hasło na nick, musi on wpisać do konsoli:
setinfo "_aacpw" "haslo"
Inaczej dostanie kicka z informacja o błędnym haśle.

komendy

Dodawanie gracza:
aacadd "nick_gracza" "flagi_gracza" "czas_posiadania_flag" "haslo_gracza"
Hasła nie wpisujemy, jeżeli w 1 polu daliśmy coś innego niż nick.


Czas posiadania flag wpisujemy w formacie:
1. "ddmmrrrr" np. "16102011" - 16-10-2011
2. "ddmmrrrrggMM" np. "161020111147" - 16-10-2011 11:47
3. Wpisujemy "0", dzięki czemu dana osoba doststaje flagi pernametnie ( można usunąć gracza komendą "aacdel" )

d - dzień (1-31) , m - miesiąc(1-12) , r - rok ( xxxx ), gg - godzina ( 1-12 ), - minuta ( 0-59 )

Usuwanie gracza:
aacdel "nick_gracza"

Menu:
aacmenu

Wszystkie komendy wymagają flagi ADMIN_IMMUNITY

inne informacje

Natywy:

aac_get_user_flags(id, szOutput[], iLen)
Zwraca flagi w postaci stringa. Przykład:


new szFlags[64]
aac_get_user_flags(id, szFlags, 63)


----------------------------------------------------------------

aac_user_has_flags(id, const szFlags[])
Sprawdza czy gracz posiada dane flagi. Przykład ( sprawdzi czy gracz posiada flagi "adt" ):
aac_user_has_flags(id, "adt")


!! UWAGA !!
Plugin dopisujemy NA SAMYM POCZĄTKU plugins.ini, przed wszystkimi pluginami korzystającymi z tej biblioteki!!

download

Załączone pliki


  • +
  • -
  • 7


#268891 Poprawka zapisu GunXPmod na MySQL

Napisane przez Gość w 12.07.2011 11:43

Tutaj przed chwilą dodałem komendę set_exp (Możesz skopiować sobie) Dodanie komendy - set_exp - AMXX.pl: Support AMX Mod X


#262677 Screen Menu

Napisane przez R3X w 25.06.2011 12:44

Screen Menu
v0.4.2

Biblioteka zamknięta w pliku .amxx do tworzenia kołowych menu. Można je spotkać w nowoczesnych grach jak Crisis czy Prototype, więc może się przydać też w CSie. Wybieranie opcji jest całkiem wygodne i spokojnie może zastąpić kilka bindów.

Maksymalna ilość opcji została na stałe zablokowana na wartość 8. API biblioteki jest zgodne z Nowym stylem menu Zobacz opis, z tym , że funkcje zaczynają się smenu_* zamiast menu_*

Przykładowe menu z załącznika ScreenMenu_Test.sma wygląda tak
Dołączona grafika

Wszelkie uwagi i propozycje są mile widziane.


Wymagane pliki:
dhudmessage.inc

Kilka wskazówek:
smenu_create("nazwa", "mcbScreenMenu", "mcbScreenMenuOver");

pierwsza funkcja jest wywoływana po zamknięciu menu i przekazuje informacje na jakiej opcji gracz zatrzymał się ostatnio
druga funkcja jest wywoływana po każdej zmianie aktywnej opcji, nie koniecznie musimy łapać to zdarzenie i można spokojnie pominąć ten parametr

poprawne użycie menu wymaga sekwencji smenu_display ... smenu_exit, w przykładowym kodzie naciśnięcie klawisza E pokazuje menu, a puszczenie E wyłącza menu; moment wyjścia jest traktowany jak wybór opcji, gracz wybiera to co go interesuje przez puszczenie klawisza

to samo możemy zrobić za pomocą komendy aktywnej


register_clcmd("+menu", "wlaczMenu");
register_clcmd("-menu", "wylaczMenu");

bind f +menu


w wlaczMenu robimy display w wylaczMenu exit, wtedy gdy gracz puszcza klawisz F plugin dostaje info o wybranej opcji

smenu_setprop umożliwia konfigurację menu, w następnych wersjach będzie tego więcej, obecnie mamy:
#define SMPROP_SHOW_DESCRIPTION 1 /* Czy pokazywac opis po najechaniu na opcje, param1=number */
#define SMPROP_NORMAL_COLOR 	2 /* Kolor normalny, param1=number[3] */
#define SMPROP_OVER_COLOR 	3 /* Kolor po najechaniu na opcje, param1=number[3] */
#define SMPROP_DISABLED_COLOR 	4 /* Kolor wylaczonej opcji, param1=number[3] */
#define SMPROP_TITLE_COLOR 	5 /* Kolor tytulu, param1=number[3] {0, 0, 0} ukrywa tytul*/
#define SMPROP_PREFIX 		6 /* Prefiks opcji, param1=string[8], domyslnie takie C z kropka*/
czyli można włączyć/wyłączyć pokazywanie podpowiedzi i pokolorować napisy po swojemu


Aktualizacja:
0.4.2
- wywalony spam na chacie
0.4.1
- kursor już nie wariuje
0.4
- wyeliminowano 2 bugi: smenu_display nie działał w callbacku oraz get_info nie pobierało info tylko 2 razy nazwę
0.3
- dodano dynamiczną wersję menu (bez stałego punktu widzenia)

0.2
- dwa nowe pola set_prop
#define SMPROP_TITLE_COLOR 	5 /* Kolor tytulu, param1=number[3] {0, 0, 0} ukrywa tytul*/
#define SMPROP_PREFIX 		6 /* Prefiks opcji, param1=string[8], domyslnie takie C z kropka*/
- wyświetlany tytuł menu
- nowe przykładowe pliki
- możliwość dostosowania położenia menu (komenda +smenu)

0.1
- pierwsza publikacja

Załączone pliki


  • +
  • -
  • 41


#159438 Jak Zrobić Nową Klase Zombie

Napisane przez DeVvILL w 12.08.2010 12:57

Witam W Tym Tutorialu Pokaże Jak Poprawnie Dodać Klasę Zombie Do ZombieModa

Więc Zaczynamy Kiedy Już Zainstalowaliśmy ZombieModa

Otwieramy Plik zp_zclasses40.sma

Następnie Gdy Otworzymy Szukamy

g_zclass_leech = zp_register_zombie_class(zclass5_name, zclass5_info, zclass5_model, zclass5_clawmodel, zclass5_health, zclass5_speed, zclass5_gravity, zclass5_knockback)


a pod tym dajemy to co na dole :).

zp_register_zombie_class(zclass6_name, zclass6_info, zclass6_model, zclass6_clawmodel, zclass6_health, zclass6_speed, zclass6_gravity, zclass6_knockback)


następnie Szukamy


// Leech Zombie Attributes
new const zclass5_name[] = { "Leech Zombie" }
new const zclass5_info[] = { "HP- Knockback+ Leech++" }
new const zclass5_model[] = { "zombie_source" }
new const zclass5_clawmodel[] = { "v_knife_zombie.mdl" }
const zclass5_health = 1300
const zclass5_speed = 190
const Float:zclass5_gravity = 1.0
const Float:zclass5_knockback = 1.25
const zclass5_infecthp = 200 // extra hp for infections


potem gdy to znajdziemy pod tym piszemy

// TWOJA NAZWA KLASY
new const_zclass6_name[] = { "Nazwa Twojego ZOMBIE" }
new const_zclass6_info[] = { "info twojej klasy" }
new const_zclass6_model[] = { "Model Twojego ZOmbiaaka Najlepiej napisać zombie_source" }
new const zclass6_clawmodel[] = { "Model pazurów twojego zombie najlepiej "v_knife_zombie.mdl" }
const zclass6_health = (ŻYCIE ZOMBIE)
const_zclass6_speed = (szybkość Biegania zombie}
const float:zclass6_gravity = (jaka ma być grawitacja zombie)
conct float:zclass6_knockback = (odbicie zombie)

i nasza klasa gotowa ;) jeśli chcemy żeby Przy infekcji zabierało więcej hp piszemy to const zclass6_infecthp = (ilość)

Zezwalam na kopiowanie nawet bez mojej zgody ;)

Wrazie problemów z kompilacja pisać tutaj a spróbuje pomóc :)
  • +
  • -
  • 10


#253219 Pomoc przy tasku

Napisane przez ;(( w 26.05.2011 18:00

Zobacz to, mi się kompiluje, zapomniałeś o ". Linki sobie wrzuć, nie chciałem reklamy robić.

/* Plugin generated by AMXX-Studio */

#include <amxmodx>
#include <amxmisc>
#include <ColorChat>

#define PLUGIN "Info na say"
#define VERSION "1.0"
#define AUTHOR "stepdub"

new name[32];
new czas

public plugin_init() {
	register_plugin(PLUGIN, VERSION, AUTHOR);
	register_clcmd("say /konkurs","konkurs_info");

	czas = random_float(15.0, 20.0)

	set_task(czas, "say_konkurs", _, _, _, "b");
	set_task(czas, "say_konkurs1", _, _, _, "b");
}


public konkurs_info(id)
{
	get_user_name(id, name, 31);
	ColorChat(id, RED, "[Konkurs]^x04 %s, ^x01zareklamuj serwer i zgarnij nagrody!", name);
	ColorChat(id, RED, "[Konkurs]^x01 Wygraj ^x04VIPa^x01,^x04 admina^x01 i^x04 slota^x01. Aby wziść udzial odwiedz forum!");
	ColorChat(id, RED, "[Konkurs]^x04 Adres WWW zostal wydrukowany w konsoli!");
	console_print(id, "------------------------[uSpiewaKa] Konkurs FFA------------------------");
	console_print(id, "-------[Konkurs] link-------");
	console_print(id, "-------[Konkurs] link-------");
	console_print(id, "-------[Konkurs] link-------");
	console_print(id, "-------[Konkurs] link-------");
	console_print(id, "-------[Konkurs] link-------");
	console_print(id, "-----------------------------------------------------------------------");
}

public say_konkurs()
{
	ColorChat(0, RED, "[Konkurs]^x01 Wygraj ^x04VIPa^x01,^x04 admina^x01 i^x04 slota^x01.");
}

public say_konkurs1()
{
	ColorChat(0, RED, "[Konkurs]^x01 Wpisz ^x04/konkurs^x01, aby dowiedziec sie wiecej.");
}

  • +
  • -
  • 1


#253220 Pomoc przy tasku

Napisane przez mierzwi w 26.05.2011 18:00

taski powinny wyglądać chyba tak:
set_task(czas, "say_konkurs", _, _, _, "b");
	set_task(czas, "say_konkurs1", _, _, _, "b");

czyli funkcje w ""


#252307 Jak wyswietlic graczowi jego nick?

Napisane przez ^Grzyboo w 23.05.2011 17:55

Musi działać ^^ tylo new name[32]
  • +
  • -
  • 1


#252306 Jak wyswietlic graczowi jego nick?

Napisane przez Raku129 w 23.05.2011 17:54

new name[32];
get_user_name(id, name, 31);
  • +
  • -
  • 1


#252303 Jak wyswietlic graczowi jego nick?

Napisane przez mierzwi w 23.05.2011 17:51

new name[64]; get_user_name(id, name, charsmax(name));


#252302 Jak wyswietlic graczowi jego nick?

Napisane przez Raku129 w 23.05.2011 17:48

Zrób tablice name, oraz pobierz nick za pomocą get_user_name.
Dokumentacja AMXX.pl: Core >> amxmodx > get_user_name
  • +
  • -
  • 1


#248607 Błąd przy kompilacji edytowanego VIP Plugin 3.4

Napisane przez speedkill w 12.05.2011 13:27

Trzymaj juz zrobione :P

Załączone pliki


  • +
  • -
  • 1