←  Problemy

AMXX.pl: Support AMX Mod X i SourceMod

»

CoD Stary
Dodanie nowych Flag do amxconst.inc ADMI...

Zablokowany

  • +
  • -
Marek89- - zdjęcie Marek89- 21.07.2011

Witam
Na początku nadmienię że oszukałem się bardzo dużo na forach jak rozwiązać ten problem, ale go nie znalazłem, zawsze forum pomagało na problemy, ale nie tym razem, więc postanowiłem napisać pierwszy post.

Mam problem, skończyły mi się wszystkie wolne flagi dla klas premium. (Klas mam więcej niż wolnych ADMIN_LEVEL_)
Postanowiłem stworzyć nowe, kombinowałem z liczbami, oraz tymi literami które jeszcze nie były używane, oraz dodawałem polskie znaki ale żadne z flag które potem przypisałem do klasy nie działało. Czyli użytkownik miał przypisaną odpowiednią utworzoną nową flagę, a premium było niedostępne jak bym nie posiadał preferowanej flagi.
Plik amxconst.inc zmieniłem na serwere jak i dla AMXX-Studio. Kompilowało się ładnie beż żadnych błędów.

Do CodMod dodaję dla premium flagę jak zawsze, ale jak dodam te nowe to nie działa:

 if(item == SzybkiSniper && !(get_user_flags(id) & ADMIN_LEVEL_W))
{
client_print(id, print_chat, "[COD:MW] Klasa Premium -> Klasa Premium");
WybierzKlase(id);
return PLUGIN_CONTINUE;


Wyedytowałem plik amxconst.inc następująco:
Całość pliku w załączniku


#define ADMIN_ALL 0 /* everyone */
#define ADMIN_IMMUNITY (1<<0) /* flag "a" */
#define ADMIN_RESERVATION (1<<1) /* flag "b" */
#define ADMIN_KICK (1<<2) /* flag "c" */
#define ADMIN_BAN (1<<3) /* flag "d" */
#define ADMIN_SLAY (1<<4) /* flag "e" */
#define ADMIN_MAP (1<<5) /* flag "f" */
#define ADMIN_CVAR (1<<6) /* flag "g" */
#define ADMIN_CFG (1<<7) /* flag "h" */
#define ADMIN_CHAT (1<<8) /* flag "i" */
#define ADMIN_VOTE (1<<9) /* flag "j" */
#define ADMIN_PASSWORD (1<<10) /* flag "k" */
#define ADMIN_RCON (1<<11) /* flag "l" */
#define ADMIN_LEVEL_A (1<<12) /* flag "m" */
#define ADMIN_LEVEL_B (1<<13) /* flag "n" */
#define ADMIN_LEVEL_C (1<<14) /* flag "o" */
#define ADMIN_LEVEL_D (1<<15) /* flag "p" */
#define ADMIN_LEVEL_E (1<<16) /* flag "q" */
#define ADMIN_LEVEL_F (1<<17) /* flag "r" */
#define ADMIN_LEVEL_G (1<<18) /* flag "s" */
#define ADMIN_LEVEL_H (1<<19) /* flag "t" */
#define ADMIN_MENU (1<<20) /* flag "u" */
#define ADMIN_ADMIN (1<<24) /* flag "y" */
#define ADMIN_USER (1<<25) /* flag "z" */
/* moje nowe wprowadzone flagi */
#define ADMIN_LEVEL_W (1<<26) /* flag "w" */
#define ADMIN_LEVEL_X (1<<27) /* flag "x" */
#define ADMIN_LEVEL_V (1<<28) /* flag "v" */
#define ADMIN_LEVEL_1 (1<<29) /* flag "1" */
#define ADMIN_LEVEL_0 (1<<30) /* flag "0" */
#define ADMIN_LEVEL_2 (1<<31) /* flag "2" */
#define ADMIN_LEVEL_Ś (1<<32) /* flag "ś" */
#define ADMIN_LEVEL_Ć (1<<33) /* flag "ć" */

#define FLAG_KICK (1<<0) /* flag "a" */
#define FLAG_TAG (1<<1) /* flag "b" */
#define FLAG_AUTHID (1<<2) /* flag "c" */
#define FLAG_IP (1<<3) /* flag "d" */
#define FLAG_NOPASS (1<<4) /* flag "e" */

#define PLUGIN_CONTINUE 0 /* Results returned by public functions */
#define PLUGIN_HANDLED 1 /* stop other plugins */
#define PLUGIN_HANDLED_MAIN 2 /* to use in client_command(), continue all plugins but stop the command */

Załączone pliki


Użytkownik Marek89- edytował ten post 21.07.2011 18:36
Odpowiedz

  • +
  • -
Goliath - zdjęcie Goliath 21.07.2011

Od razu mówię - nie próbuj dodawać nowych flag do amxconst.inc, bo to nic nie da. Możesz użyć mojego pluginu, który dodaje nowy zakres flag (od 'a' do 'z'). Trzymaj:
Załączony plik  vip.rar   1,5 KB   111 Ilość pobrań
Flagi dodajesz do pliku amxmodx/configs/vips.ini w następujący sposób:
"Nick" "abc" "1"
"SteamID" "abc" "2"
"IP" "abc" "3"
A do odczytu flag, używasz funkcji get_user_vip_flags, zamiast get_user_flags. Przykład:
 if(item == Klasa && !(get_user_vip_flags(id) & VIP_FLAG_B))
{
client_print(id, print_chat, "[COD:MW] Klasa jest premium itd.");
WybierzKlase(id);
return PLUGIN_CONTINUE;
}

Teraz dana klasa będzie tylko dla osób z flagą B.

PS. Na początku pluginu, w którym używasz funkcji get_user_vip_flags, musisz dopisać na początku:
#include <vip>

I oczywiście wrzucić vip.inc i vip_const.inc do folderu include kompilatora.
Odpowiedz

  • +
  • -
Marek89- - zdjęcie Marek89- 21.07.2011

Zapomniałem dodać ważną kwestię, mianowicie korzystam z bazy Mysql dla użytkowników (amxxbans 6.xx) Także nie zapisuje graczy w user.ini
W tym przypadku ten plugin mi się nie przyda, ale dzięki.
Dalej szukam rozwiązania problemu.
Odpowiedz
Zablokowany