Przeróbka pluginu
Książe Happy :)
02.06.2021
Witam,
Przychodzę z prośbą o przerobienie jednego pluginu. Plugin jest autorstwa użytkownika Rivit. Na serwerze posiadam plugin nocnego vipa, który nadpisuje flagę X, i nie dodaje usługi SuperVipa. Czy jest możliwość przerobić plugin tak, aby w momencie dodania flagi X, zabierał flagę T która odpowiada za zwyklego Vip'a?
Będę bardzo wdzięczny za pomoc
Attached Files
Edited by Książe Happy :), 02.06.2021 19:52.
Książe Happy :)
04.06.2021
Hm, plugin dodaje flagę, ale nie dodaje SuperVipa.
Czy może to być spowodowane tym, że jeśli ktoś nie posiada flagi T (ponieważ nocny vip jest dostępny od godziny 19-8), to nie doda mu usługi SuperVipa (Flagi X)?
Edited by Książe Happy :), 04.06.2021 18:02.
Książe Happy :)
05.06.2021
Proszę bardzo -
#include <amxmodx> #define OD_GODZINY 19 #define DO_GODZINY 8 #define FLAGA_VIP ADMIN_LEVEL_H #define PLUGIN "New Plug-In" #define VERSION "1.0" #define AUTHOR "author" new bool:g_bDarmowyVip; new g_ForwardOne; public plugin_init() { new szGodzina[4], iGodzina; register_plugin(PLUGIN, VERSION, AUTHOR); g_ForwardOne=CreateMultiForward("amxbans_admin_connect", ET_CONTINUE, FP_CELL); get_time("%H", szGodzina, 3); iGodzina = str_to_num(szGodzina); if(OD_GODZINY <= iGodzina || iGodzina < DO_GODZINY) g_bDarmowyVip = true; } public client_authorized(id){ if(!g_bDarmowyVip){ return; } set_task(1.0, "Free_VIP", id); } public client_disconnect(id){ remove_task(id) } public Free_VIP(id) { if(get_user_flags(id) & (ADMIN_LEVEL_G | FLAGA_VIP)){ return; } set_user_flags(id, FLAGA_VIP); new iForwardOne; ExecuteForward(g_ForwardOne, iForwardOne, id); }
N1K1Cz
06.06.2021
O ile dobrze zrozumiałem to chodzi o to, że jak gościa wylosuje i dostaje svipa (flaga X) i jest noc czyli dostaje też flagę T (VIP) to ma VIPA a nie SVIPA? (trochę chaotycznie to napisałeś i trudno skumać o co kaman )
Jeżeli dobrze zrozumiałem to zrób coś takiego zamień w nocnym vipie:
if(get_user_flags(id) & (ADMIN_LEVEL_G | FLAGA_VIP)){ return; }
na:
if(get_user_flags(id) & ADMIN_FLAG_X){ return; }
i na górze pluginu dopisz:
#define ADMIN_FLAG_X (1<<23)
Ten plugin co przerobił go "Boski z Polski" jest ok (więc wgraj ten co on ci dał + dopisz to co tu napisałem do nocnego vipa), ale w tym losowaniu vipa jest tak ustawione, że to nadaję na mapę czyli nie sprawdza ci czy znowu ten VIP nocny dał mu vipa, bo ten nocny vip ma taska co jedną sekundę więc on będzie cały czas ustawiał tą flagę T aż nie minie ta godzina 8:00
Jeżeli bym coś źle zrobił/zrozumiał to przepraszam - postaram poprawić ewentualnie (lub popraw mnie ktoś jak coś źle napisałem)
(Jeżeli źle zrobiłem to napisz mi dokładniej o co ci chodzi, bo nie bardzo to zrozumieć)
Książe Happy :)
06.06.2021
Podany kod wyżej, to moja pomyłka. Plugin został przerabiany na inny serwer i kompletnie o tym zapomniałem. Zgłosiłem post w celu edycji kodu na poprawny, ale nikt się nie zmienił. Tu jest oto poprawny kod, żeby było wszystko jasne
#include <amxmodx> #define OD_GODZINY 6 #define DO_GODZINY 5 #define FLAGA_VIP ADMIN_LEVEL_H #define ADMIN_FLAG_X (1<<23) #define PLUGIN "New Plug-In" #define VERSION "1.0" #define AUTHOR "author" new bool:g_bDarmowyVip; new g_ForwardOne; public plugin_init() { new szGodzina[4], iGodzina; register_plugin(PLUGIN, VERSION, AUTHOR); g_ForwardOne=CreateMultiForward("amxbans_admin_connect", ET_CONTINUE, FP_CELL); get_time("%H", szGodzina, 3); iGodzina = str_to_num(szGodzina); if(OD_GODZINY <= iGodzina || iGodzina < DO_GODZINY) g_bDarmowyVip = true; } public client_authorized(id){ if(!g_bDarmowyVip){ return; } set_task(1.0, "Free_VIP", id); } public client_disconnect(id){ remove_task(id) } public Free_VIP(id) { if(get_user_flags(id) & ADMIN_FLAG_X){ return; } set_user_flags(id, FLAGA_VIP); new iForwardOne; ExecuteForward(g_ForwardOne, iForwardOne, id); }
Chodzi mi dokładnie o to, że nocnego vipa mam aktywnego na serwerze w godzinach od 19-8. Gdy testowałem plugin losowy SuperVip, to dodawało flagę graczowi, ale nie dodawało mu SuperVipa. Gdy testowałem plugin który przerobił Boski Z Polski, to plugin nocnego vipa nie był aktywny, bo było jeszcze zbyt wcześnie, dlatego też myślałem że przez to nie dodaje usługi SuperVipa, graczowi który nie posiada flagi T.
Edited by Książe Happy :), 06.06.2021 18:13.
Misiu.
06.06.2021
Jeszcze raz to w końcu daje flagę, ale nie aktywuje się svip tak?
Obelix
07.06.2021
Trudno się połapać
Rozumiem, że gdy wylosuje jakiemuś graczu SVIPa to ma też zabrać flagę odpowiadającą za zwykłego VIPa?
tzw. Wylosowałeś svipa = Plugin ma dodać flagę SVIPa i zabrać flagę VIPa
Spróbuj zabrać flagę, może zadziała
https://amxx.pl/doku...move_user_flags
remove_user_flags
Książe Happy :)
08.06.2021
Ja już się pogubiłem
Jeszcze raz to w końcu daje flagę, ale nie aktywuje się svip tak?
Tak, dokładnie o to chodzi
Trudno się połapać
Rozumiem, że gdy wylosuje jakiemuś graczu SVIPa to ma też zabrać flagę odpowiadającą za zwykłego VIPa?
tzw. Wylosowałeś svipa = Plugin ma dodać flagę SVIPa i zabrać flagę VIPa
Spróbuj zabrać flagę, może zadziała
https://amxx.pl/doku...move_user_flags
remove_user_flags
Kolega wyżej, w pierwszej odpowiedzi zrobił dokładnie to samo co Ty teraz zaleciłeś i nie pomogło
DaFFyy
11.06.2021
Tak działa np VIP z generatora
public client_authorized_vip(id){
g_Vip[id]=true;
}więc koledzy nie popisali się wiedzą, ale ważne, że próbowali
Edited by DaFFyy, 11.06.2021 22:18.
DaFFyy
13.06.2021
Czyli co dokładnie mam zrobić? Zmienić plugin od nocnego vipa?
Zmienić vipa lub zmienić wykrywanie vipa albo dodać natyw do vipa
Książe Happy :)
17.06.2021
A mogę liczyć na pomoc, żeby zmienić wykrywanie vipa, lub natywy? Ten vip co jest aktualnie na serwerze, to musi zostać
DaFFyy
18.06.2021
A mogę liczyć na pomoc, żeby zmienić wykrywanie vipa, lub natywy? Ten vip co jest aktualnie na serwerze, to musi zostać
Najprościej będzie jak losowanie vipa albo vipa od godziny dodasz do pluginu vipa a nie osobno