←  Pluginy

AMXX.pl: Support AMX Mod X i SourceMod

»

Edycja Pluginu
Przeróbka pluginu

  • +
  • -
Książe Happy :)'s Photo 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  ^D^

 

 

Attached Files


Edited by Książe Happy :), 02.06.2021 19:52.
Quote

  • +
  • -
Boski Z Polski's Photo Boski Z Polski 03.06.2021

Check it out

Attached Files

Quote

  • +
  • -
Książe Happy :)'s Photo 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.
Quote

  • +
  • -
Misiu.'s Photo Misiu. 05.06.2021

Pokaż tego nocnego VIP'a

Quote

  • +
  • -
Książe Happy :)'s Photo 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);
}
Quote

  • +
  • -
N1K1Cz's Photo 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 xD)

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ć)

Quote

  • +
  • -
Książe Happy :)'s Photo 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  :lol:

#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.
Quote

  • +
  • -
Misiu.'s Photo Misiu. 06.06.2021

Ja już się pogubiłem xD
Jeszcze raz to w końcu daje flagę, ale nie aktywuje się svip tak?
Quote

  • +
  • -
Obelix's Photo 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
Quote

  • +
  • -
Książe Happy :)'s Photo Książe Happy :) 08.06.2021

Ja już się pogubiłem xD
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  :D

Quote

  • +
  • -
DaFFyy's Photo DaFFyy 11.06.2021

Taki protip, nadawaj flagi przy wchodzeniu na serwer 😏 większość pluginów VIP ma tablice w której przechowuje id VIP-ów podczas łączenia z serwerem, więc ustawienie flag podczas gry może niewiele dać. Zamiast taska daj np w client_authorized albo putinserver czy coś
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.
Quote

  • +
  • -
Książe Happy :)'s Photo Książe Happy :) 13.06.2021

Czyli co dokładnie mam zrobić? Zmienić plugin od nocnego vipa?  :D

Quote

  • +
  • -
DaFFyy's Photo DaFFyy 13.06.2021

Czyli co dokładnie mam zrobić? Zmienić plugin od nocnego vipa?  :D

Zmienić vipa lub zmienić wykrywanie vipa albo dodać natyw do vipa ;) 

Quote

  • +
  • -
Książe Happy :)'s Photo 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ć  :D

Quote

  • +
  • -
DaFFyy's Photo 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ć  :D

 

Najprościej będzie jak losowanie vipa albo vipa od godziny dodasz do pluginu vipa a nie osobno

Quote