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] Pobranie ilości graczy w przeciwnej drużynie.Opis zbędny.


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

#1 Drzanas

    Godlike

  • Power User

Reputacja: 329
Wszechpomocny

  • Postów:1 283
  • Steam:steam
  • Imię:Piotrek
  • Lokalizacja:Warszawa
Offline

Napisano 17.01.2012 20:44

Witam.
Jak pobrac ilośc graczy w drużynie albo w przeciwnej druzynie gracza?
Taka funkcja pobiera ilość http://amxx.pl/dokum...f90/get-players
I tam czytam

Flagi definiują jakich graczy ma funkcja zwrócić:
"a" - Nie zwracaj martwych graczy
"b" - Nie zwracaj żywych graczy
"c" - Nie zwracaj botów ( user_info "*bot" 1 )
"d" - Nie zwracaj prawdziwych graczy
"e" - Z podanego teamu
"f" - Z podanym fragmentem niku
"g" - Ignoruj wielkosc liter w "e" i "f"
"h" - Nie zwracaj HLTV

No dobrze, ale w jakis sposób to zapisać? Ten team?

Z kolei niżej takie coś

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

graphic.png


#2 Jak się nazwać

    Wszechmogący

  • Power User

Reputacja: 169
Profesjonalista

  • Postów:617
  • Imię:a
  • Lokalizacja:a
Offline

Napisano 17.01.2012 20:49

Chodzi chyba o to że info jest pobierane z Sore info (czy coś takiego) a gdy zmienimu komuś team za pomocą amx to info w sore info zostaje że jest w poprzedniej drużynie (tak słyszałem nie jestem pewien) dlatego była do tego łatka gdzieś na allien
  • +
  • -
  • 0
Pisze na zamówienie statystyki pod nvault. GG: 15600964

#3 Drzanas

    Godlike

  • Autor tematu
  • Power User

Reputacja: 329
Wszechpomocny

  • Postów:1 283
  • Steam:steam
  • Imię:Piotrek
  • Lokalizacja:Warszawa
Offline

Napisano 17.01.2012 21:15

No dobrze, a jest jakąś działającą alternatywa tej funkcji?
  • +
  • -
  • 0

graphic.png


#4 ToJaTwojTelefon

    Zaawansowany

  • Użytkownik

Reputacja: 72
Pomocny

  • Postów:87
  • Imię:Mariusz
  • Lokalizacja:Gorlice
Offline

Napisano 17.01.2012 22:23

get_players(players, num)
for(new id=0; id<num; id++)
{
new i = players[id];
if(get_user_team(i) == 1)
{
//jakis kod
}
}


O to Ci chodzi?

Użytkownik ToJaTwojTelefon edytował ten post 17.01.2012 22:25

  • +
  • -
  • 0

#5 Drzanas

    Godlike

  • Autor tematu
  • Power User

Reputacja: 329
Wszechpomocny

  • Postów:1 283
  • Steam:steam
  • Imię:Piotrek
  • Lokalizacja:Warszawa
Offline

Napisano 17.01.2012 23:15

Ostatecznie to chodzi mi o to aby wykryć jak ktoś będzie miał ace albo clutch.
  • +
  • -
  • 0

graphic.png


#6 Nakupenda.

    Not yet YODA

  • Użytkownik

Reputacja: 137
Zaawansowany

  • Postów:451
  • Imię:Paweł
  • Lokalizacja:Warszawa
Offline

Napisano 18.01.2012 11:04


new players[32], num;
get_players(players, num);
for(new i=0; i
{
if(get_user_team(i) == TEAM_T)
//jakaś akcja dla graczy w terro np. sprawdzenie czy gracz ma "ace"

else if(get_user_team(i) == TEAM_CT)
//jakaś akcja dla graczy w ct
}

Użytkownik Nakupenda. edytował ten post 18.01.2012 11:04

  • +
  • -
  • 0

#7 Drzanas

    Godlike

  • Autor tematu
  • Power User

Reputacja: 329
Wszechpomocny

  • Postów:1 283
  • Steam:steam
  • Imię:Piotrek
  • Lokalizacja:Warszawa
Offline

Napisano 18.01.2012 12:48

No tak, ale jeżeli właśnie chce wykryć tego ace to muszę chyba najpierw sprawdzić ile graczy jest w przeciwnej drużynie.
No chyba, że jest to w twoim kodzie, ale tego nie widzę.
  • +
  • -
  • 0

graphic.png


#8 Fili:P

    Godlike

  • Power User

Reputacja: 754
Guru

  • Postów:1 679
  • Imię:Darek
  • Lokalizacja:Warszawa
Offline

Napisano 18.01.2012 13:11


new tt, ct;
new players[32], num;
get_players(players, num);
for(new i=0; i
{
if(get_user_team(i) == TEAM_T)
tt++;

else if(get_user_team(i) == TEAM_CT)
ct++;
}


  • +
  • -
  • 0

#9 DarkGL

    Nie oddam ciasteczka !

  • Administrator

Reputacja: 6 554
Godlike

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

Napisano 18.01.2012 13:31


stock playersInTeam( CsTeams: team ){

	new iIle = 0;

	for( new i = 1 ; i < get_maxplayers() ; i++ ){

		if( !is_user_connected( i ) )

			continue;

		

		if( cs_get_user_team( i ) == team )

			iIle++;

	}

	

	return iIle;

}

  • +
  • -
  • 1

#10 sebul

    Godlike

  • Przyjaciel

Reputacja: 2 035
Godlike

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

Napisano 18.01.2012 15:40

stock playersInTeam( CsTeams: team ){
new iIle, i;
for( i = 1 ; i <= get_maxplayers() ; i++ ){ // musi być <=
if( !is_user_connected( i ) )
continue;

if( cs_get_user_team( i ) == team )
iIle++;
}

return iIle;
}

  • +
  • -
  • 1

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


#11 Drzanas

    Godlike

  • Autor tematu
  • Power User

Reputacja: 329
Wszechpomocny

  • Postów:1 283
  • Steam:steam
  • Imię:Piotrek
  • Lokalizacja:Warszawa
Offline

Napisano 20.01.2012 00:34

Hmm
Próbowałem coś zrozumieć ale się nie udało może dlatego że jeszcze znajomość tworzenia i wykorzystywania stocków jest u mnie na poziomie niskim.
  • +
  • -
  • 0

graphic.png


#12 DarkGL

    Nie oddam ciasteczka !

  • Administrator

Reputacja: 6 554
Godlike

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

Napisano 20.01.2012 01:02

wrzucasz do pluginu i używasz jak normalnej funkcji pierwszy parametr to drużyna której zwrócona zostanie ilość osób w niej
  • +
  • -
  • 0

#13 Nakupenda.

    Not yet YODA

  • Użytkownik

Reputacja: 137
Zaawansowany

  • Postów:451
  • Imię:Paweł
  • Lokalizacja:Warszawa
Offline

Napisano 20.01.2012 23:17

na przykład:
new nanana
nanana = playersInTeam(0)


o ile się nie myle ;)
  • +
  • -
  • 0

#14 Drzanas

    Godlike

  • Autor tematu
  • Power User

Reputacja: 329
Wszechpomocny

  • Postów:1 283
  • Steam:steam
  • Imię:Piotrek
  • Lokalizacja:Warszawa
Offline

Napisano 21.01.2012 14:57

Chciałem tak dla przykładu zobaczyć i zrobiłem tak
Spoiler
oraz tak
Spoiler

I za każdym razem było 0 osób.
Pewnie coś źle zrobiłem :)
  • +
  • -
  • 0

graphic.png


#15 Stachuu :D ??

    Wszechobecny

  • Użytkownik

Reputacja: 237
Wszechwidzący

  • Postów:476
  • GG:
  • Steam:steam
  • Imię:Dawid
  • Lokalizacja:Karsznice
Offline

Napisano 21.01.2012 15:13

moze zadziala

/* Plugin generated by AMXX-Studio */

#include <amxmodx>
#include <amxmisc>
#include <cstrike>

#define PLUGIN "New Plugin"
#define VERSION "1.0"
#define AUTHOR "Author"

public plugin_init() {
    register_plugin(PLUGIN, VERSION, AUTHOR)
   
    register_clcmd("say /test","test");
}
public test(id){
   
    client_print(id, print_chat, "[TEST] Mamy %i antyterrorystow", playersInTeam(CS_TEAM_CT)) 
    client_print(id, print_chat, "[TEST] Mamy %i terrorystow", playersInTeam(CS_TEAM_T))  
   
}
stock playersInTeam(CsTeams:team){
    new iIle = 0, i;
    for( i = 1 ; i <= get_maxplayers() ; i++ ){ // musi być <=
        if( !is_user_connected( i ) )
            continue;
       
        if(cs_get_user_team(i) == team)
            iIle++;
    }
    return iIle;
}

  • +
  • -
  • 1

#16 DarkGL

    Nie oddam ciasteczka !

  • Administrator

Reputacja: 6 554
Godlike

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

Napisano 21.01.2012 15:13

pierwszy parametr to drużyna której zwrócona zostanie ilość osób w niej

np.

ilosc = playersInTeam(CS_TEAM_CT)

  • +
  • -
  • 1

#17 Drzanas

    Godlike

  • Autor tematu
  • Power User

Reputacja: 329
Wszechpomocny

  • Postów:1 283
  • Steam:steam
  • Imię:Piotrek
  • Lokalizacja:Warszawa
Offline

Napisano 22.01.2012 12:41

No nie zrozumiałem na początku o co chodzi z tym parametrem, ale teraz już działa.
A jakbym chciał jeszcze żeby brało pod uwagę tylko żywych graczy to muszę dodać is_user_alive przy tym drugim if ?
stock playersInTeam(CsTeams:team){
new iIle = 0, i;
for( i = 1 ; i <= get_maxplayers() ; i++ ){ // musi być <=
if( !is_user_connected( i ) )
continue;

if( is_user_alive | cs_get_user_team(i) == team)
iIle++;
}
return iIle;
}

  • +
  • -
  • 0

graphic.png


#18 sebul

    Godlike

  • Przyjaciel

Reputacja: 2 035
Godlike

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

Napisano 22.01.2012 12:47

stock get_teamplayersnum(CsTeams:team = CS_TEAM_UNASSIGNED, bool:team_enabled = true, bool:alive = false) {
new playerCnt, i;
for(i=1; i<=get_maxplayers(); i++) {
if(!is_user_connected(i) || is_user_hltv(i)) continue;
if(team_enabled && cs_get_user_team(i) != team) continue;
if(alive && !is_user_alive(i)) continue;

playerCnt++;
}

return playerCnt;
}

  • +
  • -
  • 2

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


#19 Drzanas

    Godlike

  • Autor tematu
  • Power User

Reputacja: 329
Wszechpomocny

  • Postów:1 283
  • Steam:steam
  • Imię:Piotrek
  • Lokalizacja:Warszawa
Offline

Napisano 22.01.2012 13:44

Niestety pokazuje nadal wszystkich graczy w drużynie.
A ten mój sposób to coś nie działa.
W drużynie w której ja jestem pokazuje że jest 0 graczy a w przeciwnej pokazuje ilośc bez względu na to czy żyje czy nie.
  • +
  • -
  • 0

graphic.png


#20 Stachuu :D ??

    Wszechobecny

  • Użytkownik

Reputacja: 237
Wszechwidzący

  • Postów:476
  • GG:
  • Steam:steam
  • Imię:Dawid
  • Lokalizacja:Karsznice
Offline

Napisano 22.01.2012 13:51

a jak wywołujesz
get_teamplayersnum
  • +
  • -
  • 0




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

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