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] Losowanie gracza z teamu


Najlepsza odpowiedź speedkill, 06.09.2013 17:46

Stock:

stock RandomPlayer(g_Team){
	new g_PlayersIndex[33],
		g_Value;
	
	for(new i = 1; i <= g_MaxPlayers; i++){
		if(is_user_alive(i) && get_user_team(i) == g_Team){
			g_PlayersIndex[g_Value] = i;
			g_Value++;
		}
	}
	return g_PlayersIndex[random(g_Value)];
}
TT - RandomPlayer(1)
CT - RandomPlayer(2)

Zmienne:
new g_MaxPlayers;
Gdzieś poniżej:
public plugin_cfg(){
	g_MaxPlayers = get_maxplayers();
}
/* Plugin generated by AMXX-Studio */

#include <amxmodx>
#include <amxmisc>

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

new g_MaxPlayers;

public plugin_init(){
	register_plugin(PLUGIN, VERSION, AUTHOR);
	
	register_clcmd("say /test", "TestCommand");
}

public plugin_cfg(){
	g_MaxPlayers = get_maxplayers();
}

public TestCommand(id){
	new g_UserIndex = RandomPlayer(2);
	
	client_print(id, 3, "Index wylosowanego gracza: %d", g_UserIndex);
}

stock RandomPlayer(g_Team){
	new g_PlayersIndex[33],
		g_Value;
	
	for(new i = 1; i <= g_MaxPlayers; i++){
		if(is_user_alive(i) && get_user_team(i) == g_Team){
			g_PlayersIndex[g_Value] = i;
			g_Value++;
		}
	}
	return g_PlayersIndex[random(g_Value)];
}
Nie testowane ;) Przejdź do postu


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

#1 Qes

    Profesjonalista

  • Użytkownik

Reputacja: 40
Pomocny

  • Postów:204
  • Lokalizacja:Polska
Offline

Napisano 01.09.2013 20:48

Witam,
Jak wylosować gracza z danego team'u?
Załóżmy że chciałbym wylosować CT'ka który dostawałby daną broń.
Chodzi mi dokładnie oto że po wpisaniu /losuj, losuje gracza z CT i daje mu deagle'a

Użytkownik Qes edytował ten post 01.09.2013 20:48

  • +
  • -
  • 0

Polecam serdecznie

cs1.6download.png

Zapraszam!


#2 szelbi

    Hero

  • Power User

Reputacja: 373
Wszechpomocny

  • Postów:1 032
  • Steam:steam
  • Imię:Norbert
  • Lokalizacja:Częstochowa
Offline

Napisano 01.09.2013 20:55

#include <amxmodx>
#include <fun>
#include <cstrike>
 
public plugin_init()
{
  register_plugin("Losowanie", "0.1", "szelbi")
  register_clcmd("say /losuj", "Losuj") 
}

public Losuj(id)
{
	if(!is_user_alive(id)) return PLUGIN_CONTINUE;
 
	new players[32], num;
	get_players(players, num, "aceh", "COUNTERTERRORIST");
	new rand = players[random(num)];
	if(is_user_connected(rand) && is_user_alive(rand) && get_user_team(rand) == 1)
	{
		give_item(rand, "weapon_deagle")
	}
	
	return PLUGIN_CONTINUE;
}

Nie testowane, nie wiem czy zadziała.


  • +
  • -
  • 1

#3 Qes

    Profesjonalista

  • Autor tematu
  • Użytkownik

Reputacja: 40
Pomocny

  • Postów:204
  • Lokalizacja:Polska
Offline

Napisano 01.09.2013 21:05

Nie działa ^ ^
  • +
  • -
  • 0

Polecam serdecznie

cs1.6download.png

Zapraszam!


#4 DarkGL

    Nie oddam ciasteczka !

  • Administrator

Reputacja: 6 555
Godlike

  • Postów:11 984
  • GG:
  • Steam:steam
  • Imię:Rafał
  • Lokalizacja:Warszawa
Offline

Napisano 02.09.2013 01:12

if(is_user_connected(rand) && is_user_alive(rand) && get_user_team(rand) == 1)

na

if( is_user_alive(rand) && get_user_team(rand) == 2 )

  • +
  • -
  • 1

#5 Qes

    Profesjonalista

  • Autor tematu
  • Użytkownik

Reputacja: 40
Pomocny

  • Postów:204
  • Lokalizacja:Polska
Offline

Napisano 02.09.2013 06:33

Znalazłem coś takiego, ale raz działa, raz nie działa.


/* Plugin generated by AMXX-Studio */

#include <amxmodx>
#include <amxmisc>
#include <cstrike>
#include <fun>
#include <fakemeta_util>

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

new nick[32]

new bool:losowaniee = false

new bool:kolorek[33];

public plugin_init(){
	register_plugin(PLUGIN, VERSION, AUTHOR)
	
	register_clcmd("say /losuj", "losowanie", 0);
	register_event("TextMsg","res","a","2&#Game_C")
}
public res() 
	if(losowaniee) 
	losowaniee = false;

public losowanie(id)
{
	
	if(is_user_connected(id) && is_user_alive(id) &&  cs_get_user_team(id) == CS_TEAM_CT && !losowaniee)
	{
		
		new players[32], num
		get_players(players, num);
		new rand = random_num(1,num)
		if(cs_get_user_team(rand) == CS_TEAM_T && is_user_alive(rand))
		{
			losowaniee = true;
			get_user_name(rand, nick, sizeof nick - 1)
			fm_set_user_rendering(rand,kRenderFxGlowShell,0,255,0,kRenderNormal,8)
			set_task(10.0, "kolor", rand);
			kolorek[rand] = true
			set_hudmessage(255, 255, 255, 0.03, 0.60, 0, 6.0, 5.0, _, _, 21)
			show_hudmessage(0, "Wylosowany zostal: %s", nick)
			
		}
		
	}
	return PLUGIN_HANDLED
}

public kolor(rand)
{
	fm_set_user_rendering(rand,kRenderFxGlowShell,0,0,0,kRenderNormal,8)
	kolorek[rand] = false
	losowaniee = false;
}
/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1045\\ f0\\ fs16 \n\\ par }
*/


Użytkownik Qes edytował ten post 02.09.2013 06:35

  • +
  • -
  • 0

Polecam serdecznie

cs1.6download.png

Zapraszam!


#6 Qes

    Profesjonalista

  • Autor tematu
  • Użytkownik

Reputacja: 40
Pomocny

  • Postów:204
  • Lokalizacja:Polska
Offline

Napisano 02.09.2013 20:27

Nie mogłem edytować, ale co do tego u góry to chciałbym dodać że czasami działa, a czasami nie, czyli czasem daje podświetlenie i pokazuje wiadomość że wybrano gracza, a czasem nie i nie wiem ale zdaje mi się że czasem losuje "Pustą" osobę której nie ma, czyli jest dwoch TT, a losuje spośród 3 lub więcej

Użytkownik Qes edytował ten post 02.09.2013 20:27

  • +
  • -
  • 0

Polecam serdecznie

cs1.6download.png

Zapraszam!


#7 radim

    Godlike

  • Moderator

Reputacja: 939
Master

  • Postów:2 725
  • Steam:steam
  • Imię:Arkadiusz
  • Lokalizacja:Janów Lub.
Offline

Napisano 06.09.2013 13:48

Zamień:

new rand = random_num(1,num)

na:

new rand = players[random(num)]

  • +
  • -
  • 0

Chcąc napisać do mnie prywatną wiadomość, wpierw zapoznaj się ze stroną "O mnie" w moim profilu użytkownika [ radim ] !


#8 d0naciak

    Godlike

  • Power User

Reputacja: 1 029
Hero

  • Postów:2 414
  • GG:
  • Steam:steam
  • Imię:Dawid
  • Lokalizacja:Kotlarka
Offline

Napisano 06.09.2013 16:48

#include <amxmodx>
#include <fun>
#include <cstrike>
 
public plugin_init()
{
  register_plugin("Losowanie", "0.1", "szelbi")
  register_clcmd("say /losuj", "Losuj") 
}

public Losuj(id)
{
	if(!is_user_alive(id)) return PLUGIN_CONTINUE;
 
	new players[32], num;
	get_players(players, num, "aceh", "COUNTERTERRORIST");
	new rand = players[random(num)];
	if(is_user_connected(rand) && is_user_alive(rand) && get_user_team(rand) == 1)
	{
		give_item(rand, "weapon_deagle")
	}
	
	return PLUGIN_CONTINUE;
}

Nie testowane, nie wiem czy zadziała.

 

 

Zmień to o czym dark mówił oraz zamień

get_players(players, num, "aceh", "COUNTERTERRORIST");

na

get_players(players, num, "aceh", "CT");

  • +
  • -
  • 0

#9 Klakier

    Volenti non fit iniuria

  • Power User

Reputacja: 391
Wszechpomocny

  • Postów:878
  • GG:
  • Imię:Sebastian
  • Lokalizacja:Mogilno
Offline

Napisano 06.09.2013 17:14

 

#include <amxmodx>
#include <fun>
#include <cstrike>
 
public plugin_init()
{
  register_plugin("Losowanie", "0.1", "szelbi")
  register_clcmd("say /losuj", "Losuj") 
}

public Losuj(id)
{
	if(!is_user_alive(id)) return PLUGIN_CONTINUE;
 
	new players[32], num;
	get_players(players, num, "aceh", "COUNTERTERRORIST");
	new rand = players[random(num)];
	if(is_user_connected(rand) && is_user_alive(rand) && get_user_team(rand) == 1)
	{
		give_item(rand, "weapon_deagle")
	}
	
	return PLUGIN_CONTINUE;
}

Nie testowane, nie wiem czy zadziała.

 

 

Zmień to o czym dark mówił oraz zamień

get_players(players, num, "aceh", "COUNTERTERRORIST");

na

get_players(players, num, "aceh", "CT");

 

W dokumentacji pisze:

Flagi nie są już suportowane przez autorów amxx'a i mogą zwracać nie prawidłowe wyniki - szczególnie w fladze "e" oraz możliwe w "a" i "b". Zalecane jest sprawdzanie czy gracze spełniają wymagania przez zastosowanie odpowiednich warunków w pętli programu.

  • +
  • -
  • 0

Sell - System Klanów (wojny, top15 etc)

 

Kontakt GG: 7285018


#10 speedkill

    Godlike

  • Przyjaciel

Reputacja: 1 592
Godlike

  • Postów:2 733
  • GG:
  • Steam:steam
  • Imię:Michał
  • Lokalizacja:Prudnik
Offline

Napisano 06.09.2013 17:46   Najlepsza odpowiedź

Stock:
stock RandomPlayer(g_Team){
	new g_PlayersIndex[33],
		g_Value;
	
	for(new i = 1; i <= g_MaxPlayers; i++){
		if(is_user_alive(i) && get_user_team(i) == g_Team){
			g_PlayersIndex[g_Value] = i;
			g_Value++;
		}
	}
	return g_PlayersIndex[random(g_Value)];
}
TT - RandomPlayer(1)
CT - RandomPlayer(2)

Zmienne:
new g_MaxPlayers;
Gdzieś poniżej:
public plugin_cfg(){
	g_MaxPlayers = get_maxplayers();
}
/* Plugin generated by AMXX-Studio */

#include <amxmodx>
#include <amxmisc>

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

new g_MaxPlayers;

public plugin_init(){
	register_plugin(PLUGIN, VERSION, AUTHOR);
	
	register_clcmd("say /test", "TestCommand");
}

public plugin_cfg(){
	g_MaxPlayers = get_maxplayers();
}

public TestCommand(id){
	new g_UserIndex = RandomPlayer(2);
	
	client_print(id, 3, "Index wylosowanego gracza: %d", g_UserIndex);
}

stock RandomPlayer(g_Team){
	new g_PlayersIndex[33],
		g_Value;
	
	for(new i = 1; i <= g_MaxPlayers; i++){
		if(is_user_alive(i) && get_user_team(i) == g_Team){
			g_PlayersIndex[g_Value] = i;
			g_Value++;
		}
	}
	return g_PlayersIndex[random(g_Value)];
}
Nie testowane ;)
  • +
  • -
  • 1

If you can dream it, you can do it.


#11 Qes

    Profesjonalista

  • Autor tematu
  • Użytkownik

Reputacja: 40
Pomocny

  • Postów:204
  • Lokalizacja:Polska
Offline

Napisano 07.09.2013 09:55

Speedkil a jak ustawić do tego świecenie się gracza tak jak pokazałem to ja w tym pluginie
/* Plugin generated by AMXX-Studio */

#include 
#include 
#include 
#include 
#include 

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

new nick[32]

new bool:losowaniee = false

new bool:kolorek[33];

public plugin_init(){
	register_plugin(PLUGIN, VERSION, AUTHOR)
	
	register_clcmd("say /losuj", "losowanie", 0);
	register_event("TextMsg","res","a","2Game_C")
}
public res() 
	if(losowaniee) 
	losowaniee = false;

public losowanie(id)
{
	
	if(is_user_connected(id) && is_user_alive(id) &&  cs_get_user_team(id) == CS_TEAM_CT && !losowaniee)
	{
		
		new players[32], num
		get_players(players, num);
		new rand = players[random(num)]
		if(cs_get_user_team(rand) == CS_TEAM_T && is_user_alive(rand))
		{
			losowaniee = true;
			get_user_name(rand, nick, sizeof nick - 1)
			fm_set_user_rendering(rand,kRenderFxGlowShell,0,255,0,kRenderNormal,8)
			set_task(10.0, "kolor", rand);
			kolorek[rand] = true
			set_hudmessage(255, 255, 255, 0.03, 0.60, 0, 6.0, 5.0, _, _, 21)
			show_hudmessage(0, "Wylosowany zostal: %s", nick)
			
		}
		
	}
	return PLUGIN_HANDLED
}

public kolor(rand)
{
	fm_set_user_rendering(rand,kRenderFxGlowShell,0,0,0,kRenderNormal,8)
	kolorek[rand] = false
	losowaniee = false;
}
/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1045\\ f0\\ fs16 \n\\ par }
*/

  • +
  • -
  • 0

Polecam serdecznie

cs1.6download.png

Zapraszam!


#12 sebul

    Godlike

  • Przyjaciel

Reputacja: 2 035
Godlike

  • Postów:5 411
  • Steam:steam
  • Imię:Sebastian
  • Lokalizacja:Ostrołęka
Offline

Napisano 14.09.2013 15:34

Przecież masz wszystko podane już, używasz funkcji "RandomPlayer", która zwraca id gracza i możesz sobie robić z tym id gracza co chcesz, czyli dawać jakieś świecenie, itp.
  • +
  • -
  • 0

Posiadam TBM (inaczej PTB), które działa dużo lepiej niż zwykłe PTB, nawet na modach z lvlami. Zainteresowany? Proszę bardzo





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

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