Szerző Téma: RandPlayerID (azoknak akik nem használnak foreach.inc-t)  (Megtekintve 1737 alkalommal)

RandPlayerID (azoknak akik nem használnak foreach.inc-t)
« Dátum: 2011. június 21. - 23:54:18 »
0 Show voters
[pawn]
stock
RandPlayerID()
{
new
   OnLine[MAX_PLAYERS],
   OnLineCount = -1;
for(new i = 0, gmp = GetMaxPlayers(); i < gmp; i++)
{
   if(IsPlayerConnected(i))
      OnLine[++OnLineCount] = i;
}
return (OnLineCount > -1)?(OnLine[random(OnLineCount + 1)]):(INVALID_PLAYER_ID);
}      
[/pawn]
Példa:
[pawn]
COMMAND:sorsol(playerid)
{
new
   str[128];
format(str, sizeof str, \"OnLine véletlenszerû playerid: %d\", RandPlayerID());
SendClientMessage(playerid, -1, str);
//   print(str);
return 1;
}
[/pawn]
Edit:
Közben kicsit kutakodtam hátha valaki írt már pont ezen az elven hát írt de azért nem törlöm a topicot linkelem azt amit találtam:
link
És itt egy egész topic a témáról  ;D
Ha minden igaz akkor minden hiba lehetõség kiküszöbölve. Kód frissítve. Ha mégis akad, akkor írjátok ide.
« Utoljára szerkesztve: 2011. november 14. - 22:40:09 írta Zsolesszka »

Nem elérhető kurta999

  • 2759
  • Éllő fédisznó
    • Profil megtekintése
RandPlayerID (azoknak akik nem használnak foreach.inc-t)
« Válasz #1 Dátum: 2011. június 22. - 12:56:21 »
0 Show voters
Hasznos dolog, de a foreach-al egyszerûbb.
Amúgy most vagy én néztem el, vagy tényleg ígyvan.
Az online az egy 500-as tömb, aminek az értékei maximum 255 lehet. Tehát ha több, mint 255 játékos van a szerveren, akkor nemfog menni.
« Utoljára szerkesztve: 2011. június 22. - 12:58:19 írta kurta999 »

RandPlayerID (azoknak akik nem használnak foreach.inc-t)
« Válasz #2 Dátum: 2011. június 22. - 15:43:05 »
0 Show voters
@ Kurta igazad van egy cella értéke így nem lehet több 255-nél ezért javítom a fenti kódot.

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal