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

Free Vip od x do x h


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

#1 k4x4z5

    Wszechwidzący

  • Użytkownik

Reputacja: 84
Zaawansowany

  • Postów:257
  • Imię:Marcin
  • Lokalizacja:zDaleka
Offline

Napisano 24.02.2014 17:06

Witam mam problem z kodem na free vipa  od godziny "x" do"x"

#include <amxmodx>
#include <hamsandwich>

new FreeVip[33], Czas1, Czas2

public plugin_init(){
	register_plugin("Free VIP", "1.0", "Karol33k")
	
	Czas1 = register_cvar("free_vip_od_czasu", "15")
	Czas2 = register_cvar("free_vip_do_czasu", "16")
	
	RegisterHam(Ham_Spawn, "player", "fwHamPlayerSpawnPost", 1)
}

public fwHamPlayerSpawnPost(id)
{
	new szTime[3]
	get_time("%H",szTime,2)
	
	new Time_1 = get_pcvar_num(Czas1)
	new Time_2 = get_pcvar_num(Czas2)
	
	new iTime = str_to_num(szTime)
	if(Time_1 <= iTime <= 24)
	{
		if(!(get_user_flags(id) & ADMIN_LEVEL_H))
		{
			remove_user_flags(id, ADMIN_USER);
			set_user_flags(id, ADMIN_LEVEL_H);
			FreeVip[id] = true;
		}
	}
	else if(00 <= iTime <= Time_2)
	{
		if(!(get_user_flags(id) & ADMIN_LEVEL_H))
		{
			remove_user_flags(id, ADMIN_USER);
			set_user_flags(id, ADMIN_LEVEL_H);
			FreeVip[id] = true;
		}
	}
	else if(FreeVip[id])
	{
		remove_user_flags(id, ADMIN_LEVEL_H);
		set_user_flags(id, ADMIN_USER);
		FreeVip[id] = false;
	}
}

I jakos vip nie działa w tych godzinach bo jest ciagle mimo,ze czas jest ustawiony inaczej.


  • +
  • -
  • 0

#2 csdark

    Życzliwy

  • Zbanowany

Reputacja: -17
Tragedia

  • Postów:34
  • Lokalizacja:Polska
Offline

Napisano 24.02.2014 20:21

Jak robiles vip przez generator na amxx to nie bedzie to dzialalo z tym vipem.



#3 k4x4z5

    Wszechwidzący

  • Autor tematu
  • Użytkownik

Reputacja: 84
Zaawansowany

  • Postów:257
  • Imię:Marcin
  • Lokalizacja:zDaleka
Offline

Napisano 24.02.2014 21:57

Vip nie jest z generatora


  • +
  • -
  • 0

#4 kyriuch

    Zaawansowany

  • Użytkownik

Reputacja: -6
Nowy

  • Postów:82
  • GG:
  • Imię:Tomek
  • Lokalizacja:Bydgoszcz
Offline

Napisano 24.02.2014 22:14

warunek nie powinien być jeden dla dodania VIP'a

if(Time_1 <= iTime < Time_2+1)

?

a i nie jestem pewny, czy takie warunki działają w Pawnie, bo jeszcze takich nie używałem, ewentualnie alternatywa:

if(Time_1 <= iTime && Time_2+1 > iTime)

a ten post csdarka kompletnie bez sensu xD

 

@down

chodziło mi o alternatywny sposób (alternatywny warunek), nie jestem taki mądry, żeby używać tak wyszukanych nazw jak iloczyn logiczny i takie tam bzdety xD


Użytkownik kyriuch edytował ten post 24.02.2014 22:27

  • +
  • -
  • 0

#5 sweeper

    Życzliwy

  • Użytkownik

Reputacja: 18
Początkujący

  • Postów:30
  • GG:
  • Imię:Arkadiusz
  • Lokalizacja:Polska
Offline

Napisano 24.02.2014 22:22

 

 

a i nie jestem pewny, czy takie warunki działają w Pawnie, bo jeszcze takich nie używałem, ewentualnie alternatywa:

if(Time_1 <= iTime && Time_2+1 > iTime)

Hmmm, myślałem że to jest koniunkcja( && ) a nie alternatywa ( || )

 

Co do problemu, to zrób vip-owi natyw od sprawdzenia czy ma daną flagę czy nie poprzez wprowadzenie zmiennej

 

 


  • +
  • -
  • 0

#6 glut

    Godlike

  • Przyjaciel

Reputacja: 954
Master

  • Postów:2 086
  • GG:
  • Steam:steam
  • Imię:Mateusz
  • Lokalizacja:Namysłów
Offline

Napisano 26.02.2014 09:32

A czy twój Vip ma sprawdzanie cały czas czy gracz ma flagę czy tylko przy wejściu ??
  • +
  • -
  • 0

Nie pomagam za darmo na PW/GG/Steam od tego jest forum

 

TP Game + RR

 

Znak rozpoznawczy :coto:


#7 GwynBleidD

    Godlike

  • Przyjaciel

Reputacja: 1 869
Godlike

  • Postów:3 066
  • Steam:steam
  • Lokalizacja:Przemyśl
Offline

Napisano 26.02.2014 10:37

1. Sprawdź, czy Twój plugin dodaje flagę użytkownikowi. Jeśli tak, to musisz jeszcze w swoim pluginie VIPa wymusić jej sprawdzenie w momencie, gdy zostanie nadana.
  • +
  • -
  • 0

NIE pomagam na PW. Nie trudź się, na zlecenia nie odpiszę... Od pomagania jest forum.
NIE zaglądam w tematy wysłane na PW. Jeśli są na forum to prędzej czy później je przeczytam. Jeśli mam co w nich odpisać, to odpiszę.
 
1988650.png?theme=dark


#8 k4x4z5

    Wszechwidzący

  • Autor tematu
  • Użytkownik

Reputacja: 84
Zaawansowany

  • Postów:257
  • Imię:Marcin
  • Lokalizacja:zDaleka
Offline

Napisano 26.02.2014 14:05

Plugin dodaje flage użytkownikowi, jak wymusic jej sprawdzenie?:D


  • +
  • -
  • 0

#9 kyriuch

    Zaawansowany

  • Użytkownik

Reputacja: -6
Nowy

  • Postów:82
  • GG:
  • Imię:Tomek
  • Lokalizacja:Bydgoszcz
Offline

Napisano 26.02.2014 16:26

if(get_user_flags(id) & ADMIN_LEVEL_H))

?


  • +
  • -
  • 0

#10 GwynBleidD

    Godlike

  • Przyjaciel

Reputacja: 1 869
Godlike

  • Postów:3 066
  • Steam:steam
  • Lokalizacja:Przemyśl
Offline

Napisano 26.02.2014 19:51

Masz 3 opcje

 

1. Zamiast sprawdzania flagi w jednym miejscu (pewnie w client_authorized to masz) i zapisywania do zmiennej czy gracz ma vipa, czy nie, sprawdzaj za każdym razem gdy VIP ma coś dostać itp. Opcja niezalecana z przyczyn optymalizacji.

 

2. Z client_authorized wydzielasz sprawdzanie do osobnej funkcji (jeśli masz już tak wydzielone to po kłopocie), oznaczasz tą funkcję jako public i w pluginie w którym "rozdajesz" VIPa wywołujesz tego publica jako forward (czyli rejestrujesz forward o takiej nazwie i go wywołujesz). Przykład:

public client_authorized(id) {
    authorize_vip(id)
}
public authorize_vip(id) {
    if (get_user_flags(id) & FLAGA_VIPA)
        vip[id] = true
}

 

3. Z client_authorized wydzielasz PRZYDZIELANIE vipa (jeśli masz już tak wydzielone to po kłopocie), oznaczasz ją jako public i wykonujesz jako forward gdy chcesz komuś VIPa przydzielić.

public client_authorized(id) {
    if (get_user_flags(id) & FLAGA_VIPA)
       vip_authorized(id)
}
public vip_authorized(id) {
    vip[id] = true
}

Zaleta tego sposobu jest taka, że nie musisz komuś przydzielać flagi, żeby mu dać VIPa, co musisz zrobić przy poprzednich dwóch. Działa więc dużo lepiej i ten polecam :)


  • +
  • -
  • 2

NIE pomagam na PW. Nie trudź się, na zlecenia nie odpiszę... Od pomagania jest forum.
NIE zaglądam w tematy wysłane na PW. Jeśli są na forum to prędzej czy później je przeczytam. Jeśli mam co w nich odpisać, to odpiszę.
 
1988650.png?theme=dark





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

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