Szerző Téma: kimenõ/bejövõ smsek (ötletadás)  (Megtekintve 1776 alkalommal)

Nem elérhető Kovacs_Richard

  • 1743
  • HRP Fejlesztő
  • Discord: Kovacs_Richard#0321
    • Profil megtekintése
    • Hun Role Play Web
kimenõ/bejövõ smsek (ötletadás)
« Válasz #15 Dátum: 2014. Február 21. - 07:38:28 »
0
new SMSinfo[MAX_PLAYERS][500][smsinf];

 
akkor viszont ez nem jó mivel nem kell a MAX_PLAYERS...én máshogy gondoltam amit leírtam :) igaz redundáns adatok lesznek, de egyszerûbb kezelni...kezelheted egy helyen az összes sms-t csak akkor csinálj mellé egy countert a játékosoknak, hogy mennyi SMS-e van, hogy ne kelljen összeszámolni...ahogy írtam növeled amikor jön sms és csökkented amikor töröl...
Régóta nem tevékenykedem, mint SA-MP scripter.
HRP Fejlesztő.

kimenõ/bejövõ smsek (ötletadás)
« Válasz #16 Dátum: 2014. Február 21. - 12:15:41 »
0
new SMSinfo[MAX_PLAYERS][500][smsinf];
igy :new SMSinfo[500][smsinf];
de sztem 500 sms mindenkire pl 50 slotos a szeró hát borzasztóan kevés:((
100 000 azért nem írhatok be sztem.
vagy mégis?
mindenki 500 smst tud akkor
50 * 500 = 25 000 cella ha persze minden igaz.
vagy lesz valami \"kárososdás\" pl  megtellik a ramom hosszú távra nem olyan jó?
meg van minden inditáskor az összes üzenetet behívom :)))
és mikor megjön a játékos kikeresgetem azokat az üzeneteket amihez úgy mond köze van:))
persze akkor valósítom meg ha nyerekvele valami gyorsaságot.
Vagy rossz terv?
és így nem adatbázist terhleme
« Utoljára szerkesztve: 2014. Február 21. - 12:27:11 írta kriszrap »

Nem elérhető Kovacs_Richard

  • 1743
  • HRP Fejlesztő
  • Discord: Kovacs_Richard#0321
    • Profil megtekintése
    • Hun Role Play Web
kimenõ/bejövõ smsek (ötletadás)
« Válasz #17 Dátum: 2014. Február 21. - 13:17:52 »
0
hát én személy szerint a ramot zabálom inkább :)
neked mennyi ramod van?
nekem 16 giga van a laptopomban (+2 szabad slot) szóval én nem félek a RAM elfogyástól :) + ha nagyon kell akkor visszakapcsolom a lapozófájlt is, csak még a RAM negyedét se tudtam kihasználni szóval kikapcsoltam :D + ne b*ssza az SSD-t...szóval RAM + lapozó fájl + nem hiszem hogy olyan sok RAM-ot akarnál zabáltatni a szerverrel, elégnek kell legyen :) de majd hazamegyek és csinálok pár tesztet és megmutatom az eredményeket :)
de én pl simán használok olyat hogy 1000x500 cella 1 kódban de majd írok konkrét példákat...
Régóta nem tevékenykedem, mint SA-MP scripter.
HRP Fejlesztő.

kimenõ/bejövõ smsek (ötletadás)
« Válasz #18 Dátum: 2014. Február 21. - 13:42:13 »
0
hmmmm :))) 1,5 giga ramom van sajnos de nem ezen futtatnám a szerót ha nem bátyámén ott 4gb van 
maradtam a playerid esnél azért mert egyszerübb a lekérdezés és kilépéskor könnyebb nullázni:))
az miért van hogy 25 000 cellánál pawno kifagy picit azt vissza tér?
« Utoljára szerkesztve: 2014. Február 21. - 14:32:08 írta kriszrap »

Nem elérhető Kovacs_Richard

  • 1743
  • HRP Fejlesztő
  • Discord: Kovacs_Richard#0321
    • Profil megtekintése
    • Hun Role Play Web
kimenõ/bejövõ smsek (ötletadás)
« Válasz #19 Dátum: 2014. Február 21. - 18:46:06 »
0
bemásolom pl a GF alapú régi módban mennyi adat tartozott 1 játékoshoz (azaz ennél több ez csak a PlayerInfo volt), de mivel nem publikus ezért a neveket kicseréltem :)
GFRP + a tanulási folyamatom által tárolt adatok...
 
enum pInfo
{
var[128],
var,
var,
var,
var,
var,
var,
var,
var,
var,
var,
var,
var,
//comment
var,
var,
var,
var,
var,
var,
var,
var,
var,
var,
var,
var,
var,
var,
var,
var,
var,
var,
var,
var,
var,
var,
var,
var,
var,
var,
var,
var,
var,
//comment
var,
var,
var,
var,
var,
var,
var,
var,
var,
var,
var,
var,
var,
var,
var,
var,
var,
var,
var,
var,
var,
var,
var,
var,
var,
var,
var,
var,
var,
var,
var,
var,
var,
var,
var,
var,
var,
var,
var,
var,
var,
var,
//comment
var,
var,
var,
var,
var,
var,
var,
var,
var,
var,
var,
var,
var,
var,
var,
var,
var,
var,
var,
var,
var,
var,
var,
var,
var,
var,
var,
var,
var,
var,
//comment
//comment
var,
var[128],
var[128],
var[128],
var[128],
var[128],
var,
var[128],
var[128],
var[128],
var[128],
var[128],
var,
var[128],
var[128],
var[128],
var[128],
var[128],
var,
var[128],
var[128],
var[128],
var[128],
var[128],
var,
var[128],
var[128],
var[128],
var[128],
var[128],
//comment
//commment
var,
var,
var,
var[128],
var[128],
var,
var,
var,
var[128],
var[128],
var,
var,
var,
var[128],
var[128],
var,
var,
var,
var[128],
var[128],
var,
var,
var,
var[128],
var[128],
var,
var,
var,
var[128],
var[128],
var,
var,
var,
var[128],
var[128],
var,
var,
var,
var[128],
var[128],
var,
var,
var,
var[128],
var[128],
var,
var,
var,
var[128],
var[128],
//comment
var,
var,
var,
var,
var,
var,
var,
var,
var,
var,
var,
var,
var,
var,
var,
var,
var,
var,
var,
var,
var,
var,
var,
var,
var,
var,
var,
var,
var,
var,
var,
var,
var,
var,
var,
var,
var,
var,
var,
var,
var,
var,
var,
var,
var,
var,
var,
var,
var,
var,
var,
Float:var,
Float:var,
var,
var,
var,
var,
var,
var,
var,
var,
var,
var,
Float:var,
Float:var,
Float:var,
var,
var,
var,
var,
var,
var,
var,
var,
var,
var,
var,
var,
var,
var,
var,
var,
var,
var,
var,
var,
var,
var,
var,
var,
var,
var,
var,
var,
var,
var,
var,
var,
var,
var,
var[MAX_PLAYER_NAME],
//comment
Text:var,
bool:var,
bool:var,
var,
Text3D:var,
Text:var,
bool:var,
Text:var
};
new PlayerInfo[MAX_PLAYERS][pInfo];

 
244 db int
46 db 128 cellás tömb
1 db 24 (MAX_PLAYER_NAME) cellás tömb
5 db float
3 db bool
3 db text
1 db 3DText
6226 cella (24904 byte = 24.3 kbyte)
én inkább a ram-ot eszem mint a procit :) persze azt is elõnyben részesitem (tudom hogy hosszú i, csak ezen a szutyok gépen nincs :D nesze I7, 16 giga ram, 2 gigás vidkártya csak éppen irni nem lehet vele :D ) a fejlesztéseknél, hogy dinamikusan tudjak a szerverrõl kezelni kb mindent ami szükséges lehet...tehát ahol szükséges ott dinamikusan használom az adatokat, de van hely ahol meg pont RAM-ot spórolok :D bit szinten kezelek adatokat :) de okosan kell megcsinálni, amirõl tudod hogy sûrûn lesz használva ott inkább a ramot zabáld amirõl tudod hogy tárol mondjuk 500 adatot de csak induláskor meg havonta 1-2x használod ott nem muszáj mindent tárolni...itt arra gondolok pl én tárolom a felesleges terhelés elkerülése végett az 1. és az utolsó ID-t sok helyen...mondjuk van 500 SMS slot amit betöltésnél töltesz be, ott nem fontos az 1.-t tárolni mivel valószinûleg 0 vagy ahhoz közeli értéknél indul az ellenõrzés, de az utolsót már fontos, mert nem mindegy hogy 0-tól 500-ig fut le az ellenõrzés vagy 0-tól 30-ig ha 30 sms van...de az sms rendszer pont hogy sûrûn használt funkció tehát ott még csinálnék a helyedben egy tömböt amiben eltárolom a játékosoknak az SMS-eit...tehát ha van mondjuk 300 sms a szerveren, abból a játékosnak szól 2 akkor azt a 2-t nem úgy kérdezed le hogy végig mész a 300-on és megnézed melyik szól neki, hanem eltárolod azt a 2 sms azonositót hogy melyik 2 SMS az övé...nem akarlak megkavarni csak gondoltam elmondom nagy vonalakban, hogyan csinálom én, persze nem kötelezõ neked is igy csinálni, csak tudd, hogy van ilyen lehetõség is :) nem mindig a ramot kell zabálni...mérlegelni kell, hogy hol mi a fontos és hogyan lehet a legjobb eredményt elérni, persze mindennek van elõnye és hátránya...processzor vs memória :) gyorsaságot vagy kevesebb memória terhelést akarsz...persze itt a gyorsaság nem mindig szembetûnõ de sok kicsi sokra megy :P sok helyen nyersz egy kis sebességet akkor láthatóan gyorsabb lesz a kód, viszont láthatóan több memóriát ehet :D szóval csak óvatosan :)
Régóta nem tevékenykedem, mint SA-MP scripter.
HRP Fejlesztő.

kimenõ/bejövõ smsek (ötletadás)
« Válasz #20 Dátum: 2014. Február 21. - 20:36:17 »
0
\" egy tömböt amiben eltárolom a játékosoknak az SMS-eit...tehát ha van mondjuk 300 sms a szerveren, abból a játékosnak szól 2 akkor azt a 2-t nem úgy kérdezed le hogy végig mész a 300-on és megnézed melyik szól neki, hanem eltárolod azt a 2 sms azonositót hogy melyik 2 SMS az övé\"
erre írnál egy kódódt mert nem annyira értem :)
nagyon köszi a tippeket :)
kezdõ kérdés mi számit ram terhelés nem meg proci igazából?:)))

Nem elérhető Kovacs_Richard

  • 1743
  • HRP Fejlesztő
  • Discord: Kovacs_Richard#0321
    • Profil megtekintése
    • Hun Role Play Web
kimenõ/bejövõ smsek (ötletadás)
« Válasz #21 Dátum: 2014. Február 22. - 11:05:43 »
+1
kezdõ kérdés mi számit ram terhelés nem meg proci igazából?:)))[/quote]
hát pont az amit beidéztél, hogy ha van 500 SMS slot és abból 300 van használva akkor eltárolod, hogy az utolsó slot ami használva van az a 299-es (mivel 0-tól indexel), és ugye ezt a RAM-ban el kell tárolnod...
összes sms bejárása:
 
for(new i; i < sizeof(SMSInfo); i++)

 
utolsó sms-ig bejárás:
 
for(new i; i <= LastSMSVar; i++)

 
a LastSMSVar az a változó amiben tárolod az utolsó SMS ID-t...amikor küld valaki 1 SMS-t hozzáadod ugye a tömbhöz, na ott növeled 1-el...
SMS Küldésnél:
 
if(LastSMSVar == MAX_SMS-1) { SendClientMessage(playerid,0xFF0000FF,\"Szerver: Megtelt az sms lista, nem lehet SMS-t küldeni!\"); return 1; }
LastSMSVar++;
SMSInfo[LastSMSVar][kuldo] = playerid;
...

 
SMS törlésnél meg ellenõrzöd, ha az utolsó SMS-t törölte mind2 játékos akkor
 
LastSMSVar--;

 
van még pár trükk amivel lehet gyorsitani a kódon, de nem akarlak megkeverni mivel mérlegelni kell és több szempont alapján kell eldönteni hol mit hogyan alkalmazhatsz...
Régóta nem tevékenykedem, mint SA-MP scripter.
HRP Fejlesztő.

kimenõ/bejövõ smsek (ötletadás)
« Válasz #22 Dátum: 2014. Február 22. - 14:41:16 »
0
nagyon klafa teszik:))
aha hogy csinálom hogy játékosonként 500 sms küldésem /fogadásaim
SMSinfo[max_players][500]; kérésem te melyikel csinálnád?
ott csak annyi hogy mysql_num_rows() persze ha igazam van?

Nem elérhető Kovacs_Richard

  • 1743
  • HRP Fejlesztő
  • Discord: Kovacs_Richard#0321
    • Profil megtekintése
    • Hun Role Play Web
kimenõ/bejövõ smsek (ötletadás)
« Válasz #23 Dátum: 2014. Február 23. - 12:11:05 »
+1
hát ha játékosonként tárolod el az üzenetet akkor több RAM-ot fogyaszt mivel 2x van tárolva az üzenet...
igazából én mit csinálnék?
az én helyemben: én már nem \"játékos\" szinten gondolkodok az ilyen dolgokban, de nem részletezném a lényeg hogy én teljesen máshogy oldom meg az ilyeneket :D
a te helyedben: az SMS szövegek 1 tömbben lennének és a játékosoknak tárolnám el külön tömbben, hogy melyik SMS szól nekik, így az SMS szövegek limitjét felvenném mondjuk 1000*64 karakterre tehát 1000 db 64 karakteres SMS-t tudsz tárolni, de talán a 32 is elég ez késõbb derül ki amikor élesben használják a játékosok...kezdetben fejenként 20 SMS-t engednék tárolni, de ha van konkrét limit elképzelésed akkor már azt is alkalmazhatod, ismerni kell a felhasználó igényeket...azért csak 20-at, mert ha eddig nem voltak hozzászokva, hogy van SMS tárolás akkor valószínûleg nem is fogják törölni és csak feleslegesen áll a memóriában + foglalja a slotot...és késõbb a felhasználó igények szerint módosítanám :)
Régóta nem tevékenykedem, mint SA-MP scripter.
HRP Fejlesztő.

kimenõ/bejövõ smsek (ötletadás)
« Válasz #24 Dátum: 2014. Február 23. - 13:13:28 »
0
köszi így már menni fog:)) mentek a pluszok:)

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal