funkcja ktora pobiera liczbe tt i ct
Rocketfuel 23.04.2013
witam.
Mam taka sprawe z ptb. Ustawilem ze transferowanie zaczyna sie od 4 graczy na mapie. Ale gdy np. 3 graczy gra a 1 jest na spekcie to miota tymi graczami. Chcialbym zrobic tak aby transferowanie zaczynalo sie od 4 graczy czyli liczba tt + ct, tylko nie moge znalezc tego w dokumentacji.
Uwaga nie chodzi mi o get_playersnum!!
Mam taka sprawe z ptb. Ustawilem ze transferowanie zaczyna sie od 4 graczy na mapie. Ale gdy np. 3 graczy gra a 1 jest na spekcie to miota tymi graczami. Chcialbym zrobic tak aby transferowanie zaczynalo sie od 4 graczy czyli liczba tt + ct, tylko nie moge znalezc tego w dokumentacji.
Uwaga nie chodzi mi o get_playersnum!!
dasiek
23.04.2013
Rocketfuel 23.04.2013
mozesz podpowiedziec jak to?
na pewno 'h' i 'c' ale jak TT + CT nie wiem. help!
dasiek
23.04.2013
get_players(players, pnum, "che", "CT"); - CT get_players(players, pnum, "che", "TERRORIST") - TT
w pnum masz ilość a w tabeli players masz Id userów
Pewnie jest "lepszy sposób" jednak ten mi przyszedł pierwszy na myśl
Rocketfuel 23.04.2013
dobra a jak to polaczyc z if?
if (liczba TT + CT)== 4 { //wykonaj to i to }
K!113r
23.04.2013
Utwórz 2 zmienne, pobierzesz osobno ct do jednej i tt do jednej? (toporniej raczej to można pobrać get_playersnum() i pętlą sprawdzać czy należy on do ct lub tt)
sebul
23.04.2013
stock get_realplayersnum(team = 0) {
new playerCnt;
for(new i=1, MaxPlayers=get_maxplayers(); i<=MaxPlayers; ++i) {
if(!is_user_connected(i))
continue;
if(team && get_user_team(i) != team)
continue;
++playerCnt;
}
return playerCnt;
}
get_realplayersnum() - liczba wszystkich graczy
get_realplayersnum(1) - liczba tt
get_realplayersnum(2) - liczba ct
Rocketfuel 23.04.2013
a jak to polaczyc z if? Bo przerabiam ptb a nie chce aby bralo pod uwage spektow.
Rozwiazanie sebula wydaje sie byc sensowne. Tylko jak to podpiac do ptb?
albo mozna zrobic tak bo mi wpadlo do glowy tera
Rozwiazanie sebula wydaje sie byc sensowne. Tylko jak to podpiac do ptb?
albo mozna zrobic tak bo mi wpadlo do glowy tera
if (get_playersnum - SPECTATORS) //wykonaj to i totylko sami obserwatorzy, bez hltv (i tak nie mam na serwie )
Andrzejek
24.04.2013
Może to?
/* Plugin generated by AMXX-Studio */ #include <amxmodx> #include <amxmisc> #define PLUGIN "New Plug-In" #define VERSION "1.0" #define AUTHOR "Andrzejek" new wszyscy_tt, wszyscy_ct; public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR) register_clcmd("say /sprawdz", "sprawdz_ilosc"); } public sprawdz_ilosc(id) { update_terro(); client_print(id, print_chat, "Wszyscy tt: %s | Wszyscy ct: %s", wszyscy_tt, wszyscy_ct); } stock update_terro() { wszyscy_tt = active_players(CS_TEAM_T, false); wszyscy_ct = active_players(CS_TEAM_CT, false); } stock active_players(CsTeams:team, bool:aliveonly = false) { static players[32], inum, i, active, CsTeams:playerteam (aliveonly) ? get_players(players, inum, "ah") : get_players(players, inum, "h") active = 0 for (i = 0; i < inum; ++i) { playerteam = cs_get_user_team(players[i]) if(playerteam == team) active++ } return active }
Rocketfuel 24.04.2013
a jak to wlozyc zamiast tego get_playersnum?
// skip switching for a small number of players if (get_playersnum() < PTB_SWITCHMIN) return
Gość_21977_* 24.04.2013
(aliveonly) ? get_players(players, inum, "ah") : get_players(players, inum, "h") active = 0 for (i = 0; i < inum; ++i) { playerteam = cs_get_user_team(players[i]) if(playerteam == team) active++ }
Tym sposobem:
- Wykonujesz iterację po wszystkich graczach.
Jeśli nie jest to HLTV, to pobierasz jego identyfikator
oraz nick, co jest absolutnie zbędne w tym wypadku. - Następnie, ponownie iterujesz po liście graczy,
tym razem sprawdzając kolejny warunek, czyli team,
o co autor nie prosił i co jest zbędne.
Wracając do tematu:
- korzystając ze stocka sebula:
// skip switching for a small number of players if (get_realplayersnum() < PTB_SWITCHMIN) return
Rocketfuel 24.04.2013
czyli to ma byc tak jak ty piszesz beniu??
A ten stock sebula to na koniec pluginu czy gdzie? (mr.green)
A ten stock sebula to na koniec pluginu czy gdzie? (mr.green)
sebul
25.04.2013
Jeśli ma zwracać liczbę graczy grających w tt lub ct, to trzeba ten kod trochę zmodyfikować, czyli
stock get_realplayersnum() {
new playerCnt;
for(new i=1, MaxPlayers=get_maxplayers(); i<=MaxPlayers; ++i) {
if(!is_user_connected(i))
continue;
if(!(UNASSIGNED < playerTeam[i] <= CTS))
continue;
++playerCnt;
}
return playerCnt;
}
Kawon
06.05.2013
Wiadomość wygenerowana automatycznie
Ten temat został zamknięty przez moderatora.
Powód: Autor tematu zbanowany
Jeśli się z tym nie zgadzasz, raportuj ten post, a moderator lub administrator rozpatrzy go ponownie.
Z pozdrowieniami,
Zespół AMXX.PL
Ten temat został zamknięty przez moderatora.
Powód: Autor tematu zbanowany
Jeśli się z tym nie zgadzasz, raportuj ten post, a moderator lub administrator rozpatrzy go ponownie.
Z pozdrowieniami,
Zespół AMXX.PL