Szerző Téma: [ Leírás ]A ciklusokról (3 ciklus,példák,magyarázatok)  (Megtekintve 13079 alkalommal)

[ Leírás ]A ciklusokról (3 ciklus,példák,magyarázatok)
« Válasz #45 Dátum: 2011. június 30. - 11:58:14 »
0 Show voters
Teljesen mindegy,mivel a változó alap értéke 0 lesz ha létrehozod,felesleges beállítani neki  :)
Akár ezt is lehet csinálni:
[pawn]
new a,b,c,d,i;
for(;i<500;i++)
{
    GetPlayerHealth(i,a);
    GetPlayerArmour(i,b);
    //stbstb
}
[/pawn]

Nem elérhető Sheet

  • 1508
  • Támogató
    • Profil megtekintése
[ Leírás ]A ciklusokról (3 ciklus,példák,magyarázatok)
« Válasz #46 Dátum: 2011. június 30. - 11:58:50 »
0 Show voters
Idézetet írta: ChuckNorris date=1309427894\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"2912\" data-ipsquote-contentclass=\"forums_Topic
Teljesen mindegy,mivel a változó alap értéke 0 lesz ha létrehozod,felesleges beállítani neki  :)
Akár ezt is lehet csinálni:
[pawn]
new a,b,c,d,i;
for(;i<500;i++)
{
    GetPlayerHealth(i,a);
    GetPlayerArmour(i,b);
    //stbstb
}
[/pawn]
 
Rendben, köszi a magyarázatot :)

Nem elérhető krisk

  • 2380
    • Profil megtekintése
[ Leírás ]A ciklusokról (3 ciklus,példák,magyarázatok)
« Válasz #47 Dátum: 2011. július 24. - 18:18:04 »
0 Show voters
Ez viszont érdekes. Lehet, hogy lassú a sok memória szabaddá tétel/lefoglalás, de viszont nagyobb stringeknél meg kell gondolni, hogy a CPU vagy a RAM? Bár ez csak az igénytelenül megírt scripteknél baj.
« Utoljára szerkesztve: 2011. július 24. - 18:24:52 írta krisk »

Nem elérhető Xeon

[ Leírás ]A ciklusokról (3 ciklus,példák,magyarázatok)
« Válasz #48 Dátum: 2011. augusztus 29. - 16:23:38 »
0 Show voters
new player=0;
for( ; player++ != MAX_PLAYERS; ) SetPlayerHealth(player,0);
Végig olvastam és többet tudok mint elõtte, de ezt nem tudom felfogni. Mi a feltétel? Mikor állítja be a játékos életét 0 ra?

[ Leírás ]A ciklusokról (3 ciklus,példák,magyarázatok)
« Válasz #49 Dátum: 2011. augusztus 31. - 18:12:52 »
0 Show voters
Idézetet írta: Xeon date=1314627818\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"2912\" data-ipsquote-contentclass=\"forums_Topic
new player=0;
for( ; player++ != MAX_PLAYERS; ) SetPlayerHealth(player,0);
Végig olvastam és többet tudok mint elõtte, de ezt nem tudom felfogni. Mi a feltétel? Mikor állítja be a játékos életét 0 ra?
 
A ciklus középsõ része. Szóval ez:
player++ != MAX_PLAYERS
Képzeld el így:
 
if(player++ != MAX_PLAYERS)

 
Természetesen ez nem helyes,csak példaképpen.
A feltétel lemagyarosítva itt az,hogy a játékos id nem egyenlõ-e a MAY_PLAYERS definícióval.Ez alapból definiálva van és az értéke 500. Tehát a feltétel az,hogy amíg player változó nem egyenlõ 500-al. A ++ mûveleti jelek megnövelik a változó értékét minden mûvelet végén. Tehát minden játékos id-jén keresztül megy a folyamat. Ez kicsit pazarló,MAX_PLAYERS helyett én inkább így használnám:
 
new player=0,maxplayers=GetMaxPlayers();
for( ; player++ != maxplayers; ) SetPlayerHealth(player,0);

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal