Ako funguje ?
Vačšina object streamerov funguje na princípe "IsPlayerRageOfPoint" čiže ak je blízko objektu, ukáže. Nevýhodou je že ak máte v móde 20 000 objektov tak kontroluje vašu pozíciu s 20 000 objektamy... čo dosť zaťažuje CPU...
Tento streamer funguje na princípe "zón" (Atomas tu písal návod...). Ak máte v zóne 200 objektov tak nekontroluje či ste pri niakom z objektov, ale iba kontroluje či ste v zóne.
Funckie
- Kód: Vybrať všetko
CreateObjectArea(id,Float:MinX, Float:MinY, Float:MaxX, Float:MaxY)
id = id zóny npr. 5 a potom objekty dávate do zóny 5...
MinX = Pozícia zóny X
MinY = Pozícia zóny Y
MaxX = Pozícia zóny X2
MaxY = Pozícia zóny Y2
(dáva sa do OnGameModeinit)
- Kód: Vybrať všetko
IsPlayerInObjectArea(playerid, areaid)
playerid = hráčove id
areaid = id areay, v našom prípade 5
(využitie ? toto využije streamer, vy ani moc nie)
- Kód: Vybrať všetko
CreateStreamedObject(area,Ob,Float:xx,Float:yy,Float:zz,Float:rx,Float:ry,Float:rz)
area = id zóny, v našom prípade 5
ob = id objektu ja nwm npr. niaka dialnica
xx = súradnice xx
yy = súradnice yy
zz = súradnice zz
rx = rotácia x
ry = rotácia y
rz = rotácia z
(dáva sa do OnGameModeInit)
- Kód: Vybrať všetko
OnPlayerConnectedObject(playerid)
playerid = id hráča
(dáva sa do OnPlayerConnect)
- Kód: Vybrať všetko
OnObjectGameModeInit()
(dáva sa do OnGameModeInit, spustí 1 sekundový timer, čas si môžte zmeniť)
Ukážkový script
http://pastebin.com/DqpnEbYW
Download INC
pastebin = http://pastebin.com/sTAp3RQq
http://solidfiles.com/d/1715b/
Úspora
Aj bez testov sa dá úspora pochopiť, predstavte si že máte 20 000 objektov v obyčajnom streamery. Každú sekundu by kontrolovalo vašu pozíciu s 20 000 objektamy...
A na druhú stranu predstavte si že máte 100 zón po 200 objektov. Miesto 20 000 pozícii by kontrolovalo iba 100...
S Pozdravom
KiLlMaN aka QWER

