hlmod.hu
https://hlmod.hu/

legtöbbet játszott játékos ideje
https://hlmod.hu/viewtopic.php?f=9&t=22224
Oldal: 1 / 1

Szerző:  Patrik3 [2015.09.20. 10:22 ]
Hozzászólás témája:  legtöbbet játszott játékos ideje

Sziasztok,

Van egy olyan kérdésem, hogy hogyan tudom azt megoldani, hogyha van nekem egy időmérő pluginom.
És abba egy menüpontba bele szeretném tenni, azt, hogy :
SMA Forráskód: [ Mindet kijelol ]
  1. Legtöbbet játszott játékos: xy (Név) [xy óra, xy perc]


Valaki segítene? Köszike :D

Szerző:  Akosch:. [2015.09.20. 12:23 ]
Hozzászólás témája:  Re: legtöbbet játszott játékos ideje

Ha az összes játékos közül akarod, akkor az ilyen formában elég sok memóriát fog igényelni + a rendezés se egy gyors művelet, főleg ha tegyük fel 1000 - 2000 elemen kell végig mennie...

Ha csak a jelenleg fent lévők közül szeretnéd az máris barátságosabb, max 32 elem.

Megvalósítás:
Mentésekből beolvasod a dolgokat változókba majd rendezed őket. Rendezésre vannak alap műveletek amxmodx -ben:
SortIntegers - egész számok rendezéséhez
SortFloats - valós számok rendezéséhez
SortStrings - karakterláncok ( szövegek ) rendezéséhez
SortCustom1D - egydimenziós változók rendezéséhez, itt egy külön függvényben te tudod megszabni, h mi szerint rendezze.
SortCustom2D - mint az elöző csak kétdimenziós változókkal

Ezek a "quicksort" rendezési algoritmus alapján rendeznek ami már nevéből is látható, h gyors, de ha mondjuk hudban pörgetsz egy ilyet ami kiírja, h ki a legjobb mondjuk egy mp-s frissüléssel az nem biztos, hogy baráti lesz a szervernek.
Szóval vannak ezek, vagy írsz te egy rendezést ( sorting algorithms vagy társai és milliónyi találat lesz googliban ).
Mondjuk csökkenő sorrendbe teszed őket és akkor a 0. indexűt kell kiiratnod.

Remélem érthető volt, ha valami nem világos kérdezz.

Edit: jobban átgondolva neked elég a legnagyobb érték, fölösleges átrendezni az egészet, és új változókat létrehozni stb...
Elég a maximum érték indexét megkeresni.
SMA Forráskód: [ Mindet kijelol ]
  1. new iMax = 0;
  2.  
  3. for( new i = 1; i < sizeof( valtozo ); i++ )
  4. {
  5. if( valtozo[ iMax ] < valtozo[ i ] )
  6. {
  7. iMax = i;
  8. }
  9. }
  10.  
  11. client_print( id, print_chat, "A legnagyobb érték a tömbben: %i , ami a %i indexen van!", valtozo[ iMax ], iMax );


Lehet van szebb megoldás erre a maximum hely keresésre, de nekem hirtelen ez jött :'D

Oldal: 1 / 1 Minden időpont UTC+02:00 időzóna szerinti
Powered by phpBB® Forum Software © phpBB Limited
https://www.phpbb.com/