GTA Közösség - A magyar GTA fórum

San Andreas Multiplayer (SA-MP) => SA-MP: Szerverfejlesztés => A témát indította: Casamiro - 2012. Augusztus 31. - 14:39:04

Cím: Random játékos
Írta: Casamiro - 2012. Augusztus 31. - 14:39:04
Ez csak akkor mûködik ha van online játékos(nem NPC)!
Ma szükségem volt egy ilyenre, ezért megírtam, még csak egyedül teszteltem tehát nem biztos hogy rendesen mûködik, de jónak kell lennie. NPCt és nem elérhetõ ID -t nem ad vissza.
 
stock RandomJatekos()
{
new player;
do
{
player = random(GetMaxPlayers());
}
while(!IsPlayerConnected(player) || IsPlayerNPC(player))
return player;
}
Cím: Random játékos
Írta: DrAkE - 2012. Augusztus 31. - 16:41:57
Gondolkoztál azon, hogy végtelen ciklus is lehet, hogy ha nincs fent NPC, vagy játékos?
Cím: Random játékos
Írta: Kovacs_Bela - 2012. Augusztus 31. - 20:23:18

stock RandPlayer()
{
    new returnf;
    for(new i; i < MAX_PLAYERS; i++) { if(IsPlayerConnected(i)) {
    returnf = random(i);
    } }
    return returnf;
}

 
rögtönzött
Cím: Random játékos
Írta: Casamiro - 2012. Augusztus 31. - 20:42:51
Idézetet írta: DrAkE date=1346424117\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"27183\" data-ipsquote-contentclass=\"forums_Topic
Gondolkoztál azon, hogy végtelen ciklus is lehet, hogy ha nincs fent NPC, vagy játékos?
 
Nem mert én ezt csak akkor használom ha van fent játékos.
Cím: Random játékos
Írta: DrAkE - 2012. Augusztus 31. - 20:52:28

stock
RandomJatekos()
{
new
playerek[MAX_PLAYERS],
index = -1,
jatekosok = -1
;
for(;++jatekosok < MAX_PLAYERS;)
{
if(IsPlayerConnected(jatekosok))
   playerek[++index] = jatekosok;
}
return (index > 0) ? (playerek[random(index + 1)]) : -1;
}

 

Idézetet írta: Casamiro date=1346438571\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"27183\" data-ipsquote-contentclass=\"forums_Topic


Gondolkoztál azon, hogy végtelen ciklus is lehet, hogy ha nincs fent NPC, vagy játékos?
 
Nem mert én ezt csak akkor használom ha van fent játékos.
[/quote]
Itt jön az képbe, hogy csak te használod akkor. Mi van ha valaki kezdõ, és õ pont egy Timerbe akarja belerakni?
U.I.: Egy pillanat, javítok a kódomon.
U.I(2): Kész is volna.
Cím: Random játékos
Írta: Zsolesszka - 2012. Augusztus 31. - 21:14:43
Az a baj a fenti kódoddal DrAkE, hogy azt feltételezed hogy a játékos id-k szépen sorban haladnak felfelé, ez így van míg csak jönnek fel a szerverre de ha egyszerre lelép 5 játékos azok helye üres lesz, és míg nem jön senki a helyükre addig nincs játékos az általuk használt azonosítón.
Érthetõbben a szerveren az online játékosok id száma pl. így néz ki:  1, 3, 5, 6, 7, 8, 10, 12,
http://sampforum.hu/index.php?topic=13023.0
Cím: Random játékos
Írta: Casamiro - 2012. Augusztus 31. - 21:49:35
Nem tudtam hogy van ilyen, akkor ezt zárom mert lehet hogy ez nem mindenkinek felel meg.
Cím: Random játékos
Írta: DrAkE - 2012. Augusztus 31. - 21:59:35
Idézetet írta: ɐʞzssǝlosz date=1346440483\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"27183\" data-ipsquote-contentclass=\"forums_Topic
Az a baj a fenti kódoddal DrAkE, hogy azt feltételezed hogy a játékos id-k szépen sorban haladnak felfelé, ez így van míg csak jönnek fel a szerverre de ha egyszerre lelép 5 játékos azok helye üres lesz, és míg nem jön senki a helyükre addig nincs játékos az általuk használt azonosítón.
Érthetõbben a szerveren az online játékosok id száma pl. így néz ki:  1, 3, 5, 6, 7, 8, 10, 12,
http://sampforum.hu/index.php?topic=13023.0
 
De ha megnézed, akkor olyasmi mint amit te írtál. (bár lehet azelõtt írtad, mielõtt a régi lett volna) Viszont ha megnézed, ez használatkor tölti fel a változókat, és annak megfelelõen nyúl az adott címkébe, szóval (elvileg) jónak kell, hogy legyen.