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

[ROZWIĄZANE] Pełny serwer


  • Zamknięty Temat jest zamknięty
11 odpowiedzi w tym temacie

#1 DAx.

    Pomocny

  • Użytkownik

Reputacja: 10
Początkujący

  • Postów:44
  • Imię:Mateusz
  • Lokalizacja:PL
Offline

Napisano 26.05.2014 09:08

Witajcie. Czy istnieje jakaś funkcja sprawdzająca czy serwer jest pełny? Chodzi mi o coś w stylu

if(serwer jest pełny){ 
zrób coś
}

Ewentualnie sprawdzanie, czy to ilość graczy na serwerze jest większa od określonej wcześniej liczby.

 

Mam takie coś, ale nie działa.

#include <amxmodx>
 
#define PLUGIN "New Plug-In"
#define VERSION "1.0"
#define AUTHOR "Author"
 
 
public plugin_init() {
	register_plugin(PLUGIN, VERSION, AUTHOR);
 
 
	set_task(20.0, "sprawdz_graczy", .flags="b");
}
 
public sprawdz_graczy() {
	new players[32], liczba;
	get_players(players, liczba);
	if(liczba > 1) {
		for(new i=1; i<=32; i++) {
				set_user_flags(i, get_user_flags(i) | ADMIN_LEVEL_H);
		}
	}
}
 

  • +
  • -
  • 0

#2 .::Respawn::.

    Zaawansowany

  • Użytkownik

Reputacja: 21
Życzliwy

  • Postów:92
  • GG:
  • Imię:Piotr
  • Lokalizacja:Za górami
Offline

Napisano 26.05.2014 09:17

A ile slotowy serwer?


  • +
  • -
  • 0

Pomagam na GG w celu Klas, Awansów, Pomocy w Klasach,

Moje GG znajdziesz w moim profilu.

CAŁKOWICIE ZA FREE!


#3 DAx.

    Pomocny

  • Autor tematu
  • Użytkownik

Reputacja: 10
Początkujący

  • Postów:44
  • Imię:Mateusz
  • Lokalizacja:PL
Offline

Napisano 26.05.2014 09:18

To chyba nie ma znaczenia :v


  • +
  • -
  • 0

#4 xenos

    Wszechobecny

  • Użytkownik

Reputacja: 216
Profesjonalista

  • Postów:467
  • GG:
  • Imię:Konrad
  • Lokalizacja:Rzeszów
Offline

Napisano 26.05.2014 10:02

Linki do dokumentacji do owych funkcji:
http://amxx.pl/dokum.../get-playersnum
http://amxx.pl/dokum...get_max_players

sprawdzenie czy serwer jest pełny:

if(get_maxplayers() == get_playersnum() )
{
//wykonaj coś
}

sprawdzenie czy jest więcej graczy niż określona wartość

if(get_playersnum() > 10)
{
//wykonaj cos
}


Użytkownik xenos edytował ten post 26.05.2014 10:05

  • +
  • -
  • 2
"Jeśli potrafię to pomogę, jeśli nie potrafię to wskaże drogę którą trzeba dążyć by znaleźć odpowiedz" 

Pluginy:
Szukanie Aktywnych Banów w AmxBansie
Drop After Death
Kto postawił mine

#5 DAx.

    Pomocny

  • Autor tematu
  • Użytkownik

Reputacja: 10
Początkujący

  • Postów:44
  • Imię:Mateusz
  • Lokalizacja:PL
Offline

Napisano 26.05.2014 10:11

#include <amxmodx>

#define PLUGIN "New Plug-In"
#define VERSION "1.0"
#define AUTHOR "Author"
public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR);


set_task(20.0, "sprawdz_graczy", .flags="b");
}

public sprawdz_graczy() {
if(get_playersnum() > 1)
{
for(new i=1; i<=32; i++) {
set_user_flags(i, get_user_flags(i) | ADMIN_LEVEL_H);
}
}
}

Zrobiłem tak i nie działa :/


  • +
  • -
  • 0

#6 DAx.

    Pomocny

  • Autor tematu
  • Użytkownik

Reputacja: 10
Początkujący

  • Postów:44
  • Imię:Mateusz
  • Lokalizacja:PL
Offline

Napisano 26.05.2014 10:12

Tak, tak. Domyślam się, sprawdzamy to w dwóch i jakoś niespecjalnie na razie działa :/


  • +
  • -
  • 0

#7 DAx.

    Pomocny

  • Autor tematu
  • Użytkownik

Reputacja: 10
Początkujący

  • Postów:44
  • Imię:Mateusz
  • Lokalizacja:PL
Offline

Napisano 26.05.2014 10:27

Dalej nic :v







#include <amxmodx>

#define PLUGIN "New Plug-In"
#define VERSION "1.0"
#define AUTHOR "Author"

public plugin_init() {
    register_plugin(PLUGIN, VERSION, AUTHOR);
    
    
    set_task(20.0, "sprawdz_graczy", .flags="b");
}

public sprawdz_graczy()
{
    new num, players[32];
    get_players(players, num, "gh")
    for(new i=0; i<num; i++)
    {
        new id = players[i]
        if(get_playersnum() > 1){
        set_user_flags(id, get_user_flags(id) | ADMIN_LEVEL_H);
	client_print(0, print_chat, "Dziala!")

}
    }
}

Zrobiłem tak, by pokazywało, czy w ogóle wykonywane jest zadanie między klamerkami, gdzie to dodawane są flagi. Otóż jak widać wyżej dodałem, by co 20 sekund pojawiał się napisa "Działa!". No i się pojawia, więc myślę, że to może być jakiś błąd z set_user_flags :c Jakieś pomysły? ;d

 

edit. Zaraz lukne to sprawdzanie na początku rundy

#include <amxmodx>

#define PLUGIN "New Plug-In"
#define VERSION "1.0"
#define AUTHOR "Author"

public plugin_init() {
    register_plugin(PLUGIN, VERSION, AUTHOR);
    
    
    register_event("HLTV", "Nowa_Runda", "a", "1=0", "2=0")
}

public Nowa_Runda()
{
    new num, players[32];
    get_players(players, num, "gh")
    for(new i=0; i<num; i++)
    {
        new id = players[i]
        if(get_playersnum() > 1){
        set_user_flags(id, get_user_flags(id) | ADMIN_LEVEL_H);
	client_print(0, print_chat, "Dziala!")
}
    }
}


Dalej nic :v


Użytkownik DAx. edytował ten post 26.05.2014 10:36

  • +
  • -
  • 0

#8 DAx.

    Pomocny

  • Autor tematu
  • Użytkownik

Reputacja: 10
Początkujący

  • Postów:44
  • Imię:Mateusz
  • Lokalizacja:PL
Offline

Napisano 26.05.2014 10:36

Ok, lukne i zedytuje

 

Wygląda to tak

#include <amxmodx>

#define PLUGIN "New Plug-In"
#define VERSION "1.0"
#define AUTHOR "Author"

public plugin_init() {
    register_plugin(PLUGIN, VERSION, AUTHOR);
    
    
    register_event("HLTV", "Nowa_Runda", "a", "1=0", "2=0")
}

public Nowa_Runda()
{
    new num, players[32];
    get_players(players, num, "gh")
    for(new i=0; i<num; i++)
    {
        new id = players[i]
        if(get_playersnum() > 1){
        set_user_flags(id, get_user_flags(id) | ADMIN_LEVEL_H)
	server_cmd("amx_reloadadmins")
	client_print(0, print_chat, "Dziala!")
}
    }
}

i dalej nie działa. Dla pewności, że dałem dobrą flagę zabrałem sobie vipa i nie miałem, więc ADMIN_LEVEL_H jest na pewno dobrze xD


Użytkownik DAx. edytował ten post 26.05.2014 10:38

  • +
  • -
  • 0

#9 DAx.

    Pomocny

  • Autor tematu
  • Użytkownik

Reputacja: 10
Początkujący

  • Postów:44
  • Imię:Mateusz
  • Lokalizacja:PL
Offline

Napisano 26.05.2014 10:47

Tak, jest nas 2 :X

 

Dałeś poprawki, które też nie działały.

 

To nie dział też :|


  • +
  • -
  • 0

#10 DAx.

    Pomocny

  • Autor tematu
  • Użytkownik

Reputacja: 10
Początkujący

  • Postów:44
  • Imię:Mateusz
  • Lokalizacja:PL
Offline

Napisano 26.05.2014 11:05

Niestety dalej nie działa :c

 

client_print działa, pokazuje się to w momencie zrespienia, no ale vipa nie dodaje :v


  • +
  • -
  • 0

#11 GwynBleidD

    Godlike

  • Przyjaciel

Reputacja: 1 869
Godlike

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

Napisano 26.05.2014 11:23   Najlepsza odpowiedź

Czyli nie sprawdzasz, czy dodaje FLAGĘ, ale czy dodaje VIPa, tak?

Dodanie flagi NIE WYSTARCZY przy wielu pluginach VIPa, dlaczego? Ano dlatego, że plugin od vipa sprawdza flagę jedynie w momencie wchodzenia gracza na serwer!

Żeby sprawdzić, czy flaga została prawidłowo przyznana wpisz w konsoli amx_who, jeśli flaga się obok użytkownika "świeci" to musisz podejść do dodawania VIPa w inny sposób, najlepiej dodając forward albo natyw. Jeśli używasz VIPa z generatora to nie trzeba go edytować. Wystarczy w pluginie, który ma VIPa dodawać zarejestrować forward (lub 2 jeśli VIPa chcesz zabierać). Te forwardy to "client_authorized_vip" i "client_disconnect_vip", oba przyjmują po jednym argumencie, którym jest ID gracza. Gdy chcesz komuś dodać VIPa NIE MUSISZ dodawać flagi, wykonujesz po prostu 1 z forwardów, gdy chcesz VIPa zabrać, wykonujesz 2gi. Zmiana jest ważna do zmiany mapy lub do reconnecta gracza.
  • +
  • -
  • 1

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


#12 DAx.

    Pomocny

  • Autor tematu
  • Użytkownik

Reputacja: 10
Początkujący

  • Postów:44
  • Imię:Mateusz
  • Lokalizacja:PL
Offline

Napisano 26.05.2014 11:39

Ok, dodałem do vipa event początku rundy i na końcu kodu dałem takie cuś

public PoczatekRundy()
{
    new num, players[32];
    get_players(players, num, "gh")
    for(new i=0; i<num; i++)
    {
        new id = players[i]
        if(get_playersnum() > 1)
        {
		g_Vip[id]=true;
            client_print(0, print_chat, "Dziala!")
            server_cmd("amx_reloadadmins")
        }
    }
}

dodałem g_Vip[id]=true;

 

Teraz działa, dzięki wielkie :)


  • +
  • -
  • 0




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

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