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

Dodatkowe AP dla randomowej osoby na serwerze


Najlepsza odpowiedź Ogen Dogen, 02.01.2017 02:03

Na szybko pisane, nietestowane:

public random_player()
{
	if (get_playersnum() == 0) return -1;
	new Array:arr = ArrayCreate(1,32);
	for (new i=0; i<32; i++) {
		if (is_user_connected(i)) ArrayPushCell(arr, i);
	}
	new choosen = random_num(0, ArraySize(arr));
	new choosen_id = ArrayGetCell(arr, choosen);
	ArrayClear(arr);
	return choosen_id;
}
Przejdź do postu


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

#1 Robiin

    Godlike

  • Support Team

Reputacja: 1 107
Super Hero

  • Postów:2 051
  • Imię:Robert
  • Lokalizacja:Wrocław
Online

Napisano 30.12.2016 13:06

Cześć,

kodzik taki jak poniżej nie działa, ale według kodu (tak mi się przynajmniej wydaje) wszystko jest okej.

Jest gdzieś na forum gotowa - sprawdzona funkcja "random_player" albo coś w tym rodzaju? Nie jestem 100%towo pewny co do tej na dole.

 

 

Public początku rundy wykonuje się, pomijając 1 rundę. Jak wykonać ten event też w pierwszej rundzie - tej, która jest pomijana? Nie mogę użyć 

register_logevent("Poczatek_Rundy", 2, "1=Round_Start")  

ponieważ public to odliczanie do pierwszego zm, więc póki nie znałbym przyszłości, to nie zadziałałoby to.

public event_round_start()
{
	set_task(1.0, "countdown")

	new gracze[33], num=-1;
	for(new id=1; id<=gMaxPlayers; ++id){
		if(is_user_alive(id)){
			gracze[++num]=id;
		}
	}
	if(++num){
		winner=gracze[random(num)];
		new losowe_ap = random_num(1, 10)
		zp_set_user_ammo_packs(winner, zp_get_user_ammo_packs(winner)+losowe_ap)
		new forum[33], name_winner[33];
		get_pcvar_string(NazwaCvara,forum, 31);
		get_user_name(winner, name_winner, 32);
		ColorChat(0, GREEN, "[%s] %s^x01 wygral^x04 %i^x01 AP w losowaniu!", forum, name_winner, losowe_ap)
	} else winner=0;
}

  • +
  • -
  • 1

Nie dołączam do żadnej sieci, nie pomagam z tworzeniem paczek, nie napisze pluginów za zero.


#2 Master Yoga

    Support Team | Mocarz

  • Support Team

Reputacja: 136
Zaawansowany

  • Postów:275
  • Lokalizacja:Magistrala Adresowa
Offline

Napisano 01.01.2017 17:33

Czy ty zarejestrowałeś event w taki sposób :

register_logevent("Poczatek_Rundy", 2, "1=Round_Start")  

=>

public event_round_start() != public Poczatek_Rundy()

??????????


  • +
  • -
  • 0

HTML ★ CSS ★ JAVASCRIPT ★ AJAX ★ JQUERY ★ PHP ★ C++ ★ PAWN ★ SQL ★ Objective-C++


MKW0tb8.pngMKW0tb8.pngMKW0tb8.png


#3 tytusek

    Czempion

  • Power User

Reputacja: 229
Wszechwidzący

  • Postów:822
Offline

Napisano 01.01.2017 18:13

edit, nie doczytałem ;x


 


  • +
  • -
  • 0

#4 Robiin

    Godlike

  • Autor tematu
  • Support Team

Reputacja: 1 107
Super Hero

  • Postów:2 051
  • Imię:Robert
  • Lokalizacja:Wrocław
Online

Napisano 01.01.2017 19:16

Czy ty zarejestrowałeś event w taki sposób :

register_logevent("Poczatek_Rundy", 2, "1=Round_Start")  

=>

public event_round_start() != public Poczatek_Rundy()

??????????

 

Nie, a dlaczego?


  • +
  • -
  • 1

Nie dołączam do żadnej sieci, nie pomagam z tworzeniem paczek, nie napisze pluginów za zero.


#5 Master Yoga

    Support Team | Mocarz

  • Support Team

Reputacja: 136
Zaawansowany

  • Postów:275
  • Lokalizacja:Magistrala Adresowa
Offline

Napisano 01.01.2017 20:18

Nie, a dlaczego?



Cześć,
kodzik taki jak poniżej nie działa

 

Przy ilu graczach to sprawdzałeś ? 1 ?


  • +
  • -
  • 0

HTML ★ CSS ★ JAVASCRIPT ★ AJAX ★ JQUERY ★ PHP ★ C++ ★ PAWN ★ SQL ★ Objective-C++


MKW0tb8.pngMKW0tb8.pngMKW0tb8.png


#6 Robiin

    Godlike

  • Autor tematu
  • Support Team

Reputacja: 1 107
Super Hero

  • Postów:2 051
  • Imię:Robert
  • Lokalizacja:Wrocław
Online

Napisano 01.01.2017 20:43

Sprawdzałem przy 1-10


  • +
  • -
  • 1

Nie dołączam do żadnej sieci, nie pomagam z tworzeniem paczek, nie napisze pluginów za zero.


#7 Ogen Dogen

    Czempion

  • Power User

Reputacja: 261
Wszechwidzący

  • Postów:837
  • GG:
  • Steam:steam
  • Imię:Marcin
  • Lokalizacja:Dąbrowa Górnicza
Offline

Napisano 02.01.2017 02:03   Najlepsza odpowiedź

Na szybko pisane, nietestowane:

public random_player()
{
	if (get_playersnum() == 0) return -1;
	new Array:arr = ArrayCreate(1,32);
	for (new i=0; i<32; i++) {
		if (is_user_connected(i)) ArrayPushCell(arr, i);
	}
	new choosen = random_num(0, ArraySize(arr));
	new choosen_id = ArrayGetCell(arr, choosen);
	ArrayClear(arr);
	return choosen_id;
}

  • +
  • -
  • 0

b_350_20_360204_C20008_FFFFFF_000000.png 193.33.176.115:27015

 

94e23d811c.png

 


#8 Robiin

    Godlike

  • Autor tematu
  • Support Team

Reputacja: 1 107
Super Hero

  • Postów:2 051
  • Imię:Robert
  • Lokalizacja:Wrocław
Online

Napisano 02.01.2017 11:45

public random_player()
{
	if (get_playersnum() == 0) return -1;
	new Array:arr = ArrayCreate(1,32);
	for (new i=0; i<32; i++) {
		if (is_user_connected(i)) ArrayPushCell(arr, i);
	}
	new choosen = random_num(0, ArraySize(arr));
	new choosen_id = ArrayGetCell(arr, choosen);
	ArrayClear(arr);
	return choosen_id;
}

Na serwerze nie ma 32 slotów, więc 

g_maxplayers = get_maxplayers()

w plugin_init się przyda.

 

 

 


  • +
  • -
  • 1

Nie dołączam do żadnej sieci, nie pomagam z tworzeniem paczek, nie napisze pluginów za zero.


#9 _McHappy

    Wszechwiedzący

  • Support Team

Reputacja: 243
Wszechwidzący

  • Postów:501
  • GG:
  • Imię:Radek
  • Lokalizacja:Tak
Offline

Napisano 02.01.2017 13:20

Nie powinno być

ArraySize(arr) - 1

w

new choosen = random_num(0, ArraySize(arr));

?

Użytkownik _McHappy edytował ten post 02.01.2017 13:21

  • +
  • -
  • 1

#10 Robiin

    Godlike

  • Autor tematu
  • Support Team

Reputacja: 1 107
Super Hero

  • Postów:2 051
  • Imię:Robert
  • Lokalizacja:Wrocław
Online

Napisano 02.01.2017 13:34

Można to zastąpić warunkiem.

Temat rozwiązany.


  • +
  • -
  • 1

Nie dołączam do żadnej sieci, nie pomagam z tworzeniem paczek, nie napisze pluginów za zero.


#11 Master Yoga

    Support Team | Mocarz

  • Support Team

Reputacja: 136
Zaawansowany

  • Postów:275
  • Lokalizacja:Magistrala Adresowa
Offline

Napisano 02.01.2017 18:44

Nie powinno być

ArraySize(arr) - 1

w

new choosen = random_num(0, ArraySize(arr));

?

 
No oczywiście, że powinno być Size - 1.


  • +
  • -
  • 0

HTML ★ CSS ★ JAVASCRIPT ★ AJAX ★ JQUERY ★ PHP ★ C++ ★ PAWN ★ SQL ★ Objective-C++


MKW0tb8.pngMKW0tb8.pngMKW0tb8.png





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

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