VIP na nick/IP/SID
sebul
16.10.2011
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.
Download
vip_file.sma 11,35 KB 696 Ilość pobrań
vip.ini 1,23 KB 697 Ilość pobrań vip.txt 505 bajtów 678 Ilość pobrań
vip.inc 1,98 KB 510 Ilość pobrań
vip_w_godzinach.sma 1,97 KB 507 Ilość pobrań
Użytkownik sebul edytował ten post 16.09.2013 18:02
Domiss
18.10.2011
a jak mam amxbans i czyta mi ze strony to ten plugin będzie działać ? Chcę go głównie do kont na cod.
sebul
21.10.2011
Tak, będzie działać, w ogóle czemu miało by nie działać? To nie jest żaden plugin do tworzenia kont dla adminów, dając komuś flagę "a", nie będzie miała ta osoba immunitetu na serwerze, tylko po prostu w innym pluginie można sprawdzić, czy gracz posiada tę flagę.
Pierwszy post zaktualizowany.
d0naciak
12.11.2011
Co zrobić żeby ustawić vipa na zawsze ?
I czy trzeba dopisywać do plugins-codmod.ini
I czy trzeba dopisywać do plugins-codmod.ini
sebul
12.11.2011
"STEAM_0:0:123456" "" "abcde" "ce" "09-07-2011" "-1"Co zrobić żeby ustawić vipa na zawsze ?
Ważna jest sama końcówka, czyli jak dasz tam -1 to vip będzie na zawsze, a dokładniej po wpisaniu na sayu /endvip będzie zawsze pokazywać jak dobrze pamiętam, że za 3 dni kończy się vip.
Nie ma różnicy gdzie to wpiszesz, do plugins-codmod.ini też możesz wpisać, oczywiście jeśli nie masz tego w plugins.ini czy gdzieś tam jeszcze.I czy trzeba dopisywać do plugins-codmod.ini
d0naciak
16.11.2011
Ale mi chodzi o to czy plugin musi być włączony
Nie ma różnicy gdzie to wpiszesz, do plugins-codmod.ini też możesz wpisać, oczywiście jeśli nie masz tego w plugins.ini czy gdzieś tam jeszcze.I czy trzeba dopisywać do plugins-codmod.ini
sebul
16.11.2011
Czyli? Jak sobie wyobrażasz, żeby działało coś co nie jest gdziekolwiek włączone?Ale mi chodzi o to czy plugin musi być włączony
Mgkus
10.05.2012
Więc jeżeli jest zapis na nick, to client używa: setinfo _pw "<password>" ? Nie będzie to kolidowało z adminem ? Może _pw przerobić na coś innego np. setinfo _pv "<password>".
sebul
10.05.2012
Nie będzie kolidowało z adminem, jeśli hasło będzie takie samo. A jak chcesz mieć na coś innego to dodajesz jakiś nowy cvar w jakimś pluginie (nawet edytując ten plugin) i wtedy tylko zamieniasz w tym pluginie jedną rzecz, czyli "amx_password_field" na własny cvar.
damian1920
20.05.2012
Jakie cvars do tego pluginu?
..........
Użytkownik damian1920 edytował ten post 20.05.2012 02:16
..........
Użytkownik damian1920 edytował ten post 20.05.2012 02:16
sebul
20.05.2012
Plugin nie ma żadnych cvarów, znaczy nie tworzy żadnych cvarów, jedynie korzysta z tego "amx_password_field".Jakie cvars do tego pluginu?
..........
radek_b11 25.05.2012
jak zmienić: VIP Kończy Ci się 25-05-2012 na VIP Kończy Ci się za 5dni itd ?
sebul
25.05.2012
Zwykłe odejmowanie czasu (kończący - aktualny) i zmiana formatu daty, a dokładniej 253 linijka. Do tego trzeba zmienić tekst w pliku vip.txt.jak zmienić: VIP Kończy Ci się 25-05-2012 na VIP Kończy Ci się za 5dni itd ?
sebul
25.05.2012
format_time(g_user_flags_end[id], 15, "%j", vips_data[endtime]-current_time);
client_print(id, print_chat, "** %L **", id, "VIP_END", g_user_flags_end[id]);
VIP_END = VIP/KP konczy sie za %s dni
Nie sprawdzałem, ale jak nikomu nie będziesz dawał vipa na dłużej niż 1 rok, to powinno być dobrze.
Jak masz więcej pytań, to pisz nowy temat, bo ten nie jest o przerabianiu tego pluginu.
radek_b11 25.05.2012
jest prawie że dobrze tylko że zamiast 3 to mam część setna 003 jak zrobić bez 0 ? (akurat to się przyda gdyby ktoś tez potrzebował coś takiego)
sebul
25.05.2012
client_print(id, print_chat, "** %L **", id, "VIP_END", str_to_num(g_user_flags_end[id]));
VIP_END = VIP/KP konczy sie za %i dni