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
 

Zdjęcie

VIP nocny - Admin nie ma przyznawanego VIP'a


Najlepsza odpowiedź Boski Z Polski, 24.12.2022 10:55

33554432 to flaga "z", ADMIN_USER czyli brak admina

Problemem jest to, że bazowo każdemu adminowi nie ustawia flagi "z".

Plugin od losowania vip'a nie sprawdza czy gracz ma flagę "z" dlatego poprawnie rozdaje usługe.

Plugin od nocnego vip'a sprawdza czy gracz ma flagę "z". Admin nie ma flagi "z", więc nie dostanie usługi.

Najprostszym rozwiązaniem będzie zmiana funkcji "fwHamPlayerSpawnPost" w nocnym vipie na:

public fwHamPlayerSpawnPost(id)
{
	set_task(12.0,"fwHamPlayerSpawnPost",id)
	new Godzina[3]
	get_time("%H",Godzina,2)
	
	new Czas = str_to_num(Godzina)
	if( 22 <= Czas <= 24 )
	{
		if(!(get_user_flags(id) & ADMIN_LEVEL_H))
		{
			set_user_flags(id, ADMIN_LEVEL_H);
			ExecuteForward(Forward_amxbans, iRet, id);
			DarmowyVIP[id] = true;
			return;
		}
		
	}
	else if( 00 <= Czas <= 07 )
	{
		if(!(get_user_flags(id) & ADMIN_LEVEL_H))
		{
			set_user_flags(id, ADMIN_LEVEL_H);
			ExecuteForward(Forward_amxbans, iRet, id);
			DarmowyVIP[id] = true;
			return;
		}
		
	}
	else if( DarmowyVIP[id] )
	{
		remove_user_flags(id, ADMIN_LEVEL_H);
		DarmowyVIP[id] = false;
	}
}

Zmieniłem tylko to:

if(get_user_flags(id) & 33554432 == 33554432)

na to:

if(!(get_user_flags(id) & ADMIN_LEVEL_H))
Przejdź do postu


  • Nie możesz napisać tematu
  • Zaloguj się, aby dodać odpowiedź
1 odpowiedź w tym temacie

#1 MrStrajker

    Zaawansowany

  • Użytkownik

Reputacja: 1
Nowy

  • Postów:109
  • GG:
  • Imię:Patryk
  • Lokalizacja:Sosnowiec
Offline

Napisano 24.12.2022 06:51

Witam,

 

Po zmianie na najnowszą wersje amxbansa pojawił się problem z nocnym vipem.

Plugin przyznaje wszystkim graczom darmowego vipa w godzinach nocnych oprócz adminom.

Wystarczy, że usunę sobie admina, zresetuje mapę i plugin przyznaje mi prawidłowo vipa.

Dodam, że listę adminów mam pobieraną ze SQL

 

Proszę o pomoc :)

 

@EDIT

Posiadam jeszcze losowanie_vipa gdzie plugin działa na podobnej zasadzie przyznawania vip'a.

Sprawdziłem czy tutaj vip jest przyznawany - tutaj wszystko działa.. niezależnie czy mam admina czy nie - vip jest dodawany.

Załączone pliki


Użytkownik MrStrajker edytował ten post 24.12.2022 07:20

  • +
  • -
  • 0

#2 Boski Z Polski

    Profesjonalista

  • Użytkownik

Reputacja: 64
Pomocny

  • Postów:185
  • Steam:steam
  • Imię:Olgierd
  • Lokalizacja:Leszno
Offline

Napisano 24.12.2022 10:55   Najlepsza odpowiedź

33554432 to flaga "z", ADMIN_USER czyli brak admina

Problemem jest to, że bazowo każdemu adminowi nie ustawia flagi "z".

Plugin od losowania vip'a nie sprawdza czy gracz ma flagę "z" dlatego poprawnie rozdaje usługe.

Plugin od nocnego vip'a sprawdza czy gracz ma flagę "z". Admin nie ma flagi "z", więc nie dostanie usługi.

Najprostszym rozwiązaniem będzie zmiana funkcji "fwHamPlayerSpawnPost" w nocnym vipie na:

public fwHamPlayerSpawnPost(id)
{
	set_task(12.0,"fwHamPlayerSpawnPost",id)
	new Godzina[3]
	get_time("%H",Godzina,2)
	
	new Czas = str_to_num(Godzina)
	if( 22 <= Czas <= 24 )
	{
		if(!(get_user_flags(id) & ADMIN_LEVEL_H))
		{
			set_user_flags(id, ADMIN_LEVEL_H);
			ExecuteForward(Forward_amxbans, iRet, id);
			DarmowyVIP[id] = true;
			return;
		}
		
	}
	else if( 00 <= Czas <= 07 )
	{
		if(!(get_user_flags(id) & ADMIN_LEVEL_H))
		{
			set_user_flags(id, ADMIN_LEVEL_H);
			ExecuteForward(Forward_amxbans, iRet, id);
			DarmowyVIP[id] = true;
			return;
		}
		
	}
	else if( DarmowyVIP[id] )
	{
		remove_user_flags(id, ADMIN_LEVEL_H);
		DarmowyVIP[id] = false;
	}
}

Zmieniłem tylko to:

if(get_user_flags(id) & 33554432 == 33554432)

na to:

if(!(get_user_flags(id) & ADMIN_LEVEL_H))

  • +
  • -
  • 1




Użytkownicy przeglądający ten temat: 0

0 użytkowników, 0 gości, 0 anonimowych