Szerző Téma: Két kérdés (változó és parancsfeldolgozó)  (Megtekintve 783 alkalommal)

Nem elérhető Game94

  • 405
    • Profil megtekintése
Két kérdés (változó és parancsfeldolgozó)
« Dátum: 2011. december 27. - 16:51:57 »
0 Show voters
Lenne két kérdésem:
Szerintetek melyiket használjam?
Az alap változókat (new xy;) vagy a PVar-t használjam? Szerintetek melyik a gyorsabb és melyiket célszerûbb használni ?
A második kérdés:
Melyik parancsfeldolgozót érdemes használni és miért ?
ZCMD + sscanf vagy YCMD + sscanf ?

Nem elérhető kurta999

  • 2759
  • Éllő fédisznó
    • Profil megtekintése
Két kérdés (változó és parancsfeldolgozó)
« Válasz #1 Dátum: 2011. december 27. - 17:07:56 »
+1 Show voters
ZCMD az egszerûbb.
YCMD-ben sokkal több a lehetõséged.
Ha nem használod ki YCMD-nek a lehetõségeit, akkor nyugodtan maradhatsz a ZCMD mellett.
Sebességben kb. egyforma, YCMD valamivel gyorsabbnak bizonyult, de tényleg csak semmi külömbség.


Játékos változó tárolására szerintem rendes változót használj.
Ha az érték 0 és 255 között van, akkor char tömböket.
Ha pedig csak logikai változót akarsz tárolni, akkor bit flag-al old meg.
Ez a megoldás sokkal praktikusabb, mint a PVar, mert a PVar-t ha beállítod, rögtön le foglal neked 4bájt memórit.
Ha pedig csak egy char tömböt használsz, akkor csak MAX_PLAYERS bájtot fog lefoglalni.
Ha pedig bit flaggal megoldod, akkor tudsz egy változóban 32db hamis/igaz értéket tárolni. Ez így bele fog férni 4 bátjba, ha ezt PVar-al csinálnád, akkor 32 * 4bájt kéne rá.
A PVar pedig jóval lassúbb, mint a sima változó.
Szóval én nem ajánlom a PVar-t, csak az olyan helyekre, ahol összeköttetésben van a FilterScript és a Játékmód.

Nem elérhető Game94

  • 405
    • Profil megtekintése
Két kérdés (változó és parancsfeldolgozó)
« Válasz #2 Dátum: 2011. december 27. - 17:46:31 »
0 Show voters
Köszi a segítséget.
Átolvastam alaposabban az YCMD-nek a funkcióit, inkább ezt használom ;D
Edit:
Beraktam a módomba az YCMD-t, de az a gondom vele hogy kidob egy csomó warning-ot:
[pawn]C:\\Documents and Settings\\XP4ever\\Asztal\\samp 0.3d\\pawno\\include\\YSI\\y_commands.inc(793) : warning 219: local variable \"hash\" shadows a variable at a preceding level
C:\\Documents and Settings\\XP4ever\\Asztal\\samp 0.3d\\pawno\\include\\YSI\\y_commands.inc(1191) : warning 219: local variable \"hash\" shadows a variable at a preceding level
C:\\Documents and Settings\\XP4ever\\Asztal\\samp 0.3d\\pawno\\include\\YSI\\y_commands.inc(1243) : warning 219: local variable \"hash\" shadows a variable at a preceding level
C:\\Documents and Settings\\XP4ever\\Asztal\\samp 0.3d\\pawno\\include\\YSI\\y_commands.inc(1264) : warning 219: local variable \"hash\" shadows a variable at a preceding level
C:\\Documents and Settings\\XP4ever\\Asztal\\samp 0.3d\\pawno\\include\\YSI\\y_commands.inc(1326) : warning 219: local variable \"hash\" shadows a variable at a preceding level
C:\\Documents and Settings\\XP4ever\\Asztal\\samp 0.3d\\pawno\\include\\YSI\\y_commands.inc(1519) : warning 219: local variable \"hash\" shadows a variable at a preceding level
C:\\Documents and Settings\\XP4ever\\Asztal\\samp 0.3d\\pawno\\include\\YSI\\y_commands.inc(1600) : warning 219: local variable \"hash\" shadows a variable at a preceding level
C:\\Documents and Settings\\XP4ever\\Asztal\\samp 0.3d\\pawno\\include\\YSI\\y_commands.inc(1706) : warning 219: local variable \"hash\" shadows a variable at a preceding level
C:\\Documents and Settings\\XP4ever\\Asztal\\samp 0.3d\\pawno\\include\\YSI\\y_commands.inc(1955) : warning 219: local variable \"hash\" shadows a variable at a preceding level
Pawn compiler 3.2.3664           Copyright © 1997-2006, ITB CompuPhase
9 Warnings.[/pawn]
Edit2: Most néztem hogy Notepad ++ al nem a legjobb.. Valami megoldás?
« Utoljára szerkesztve: 2011. december 27. - 18:29:10 írta Game94 »

Két kérdés (változó és parancsfeldolgozó)
« Válasz #3 Dátum: 2011. december 27. - 19:01:14 »
0 Show voters
A ycmd include fáljjában blogálian definiálva van  egy \"hash\" nevû változó, ami zavarja a mododat, mivel te is létrehoztál valószínüleg egy hash nevû változót.
A megoldás:
1. a y_commands.inc fájlban átnevezed a változót, és ahol hash néven volt használva, mindenhol átírod.
2. a mododban átnevezed a változót, és ahol hash néven volt használva, mindenhol átírod.

Nem elérhető Game94

  • 405
    • Profil megtekintése
Két kérdés (változó és parancsfeldolgozó)
« Válasz #4 Dátum: 2011. december 27. - 19:11:22 »
0 Show voters
Igen, tudom hogy ezt jelenti ez a warning, de nem ez a gond.
Mivel nincs hash nevû változó létrehozva a módomban.
Itt le van írva hogy mi a gond, de nem tudok túl jól angolul.
http://forum.sa-mp.com/showthread.php?t=185611&page=10

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal