MTADEV Tudástár
Használható MTA:SA fejlesztői dokumentáció
Gyakorlati leírások Lua, resource struktúra, SQL, biztonság, optimalizálás, moderáció és Discord/web összekötés témákban. Nem csak szöveg: ellenőrzőlisták és másolható példák is vannak.
9 cikk
9 kategória
gyakorlati példák
Optimalizálás: render, timer, elementData
Egy resource nem attól jó, hogy sok funkció van benne, hanem attól, hogy sok játékos mellett sem terheli feleslegesen a szervert vagy a klienst.
onClientRender szabályok
- Csak akkor fusson, amikor tényleg látszik a panel vagy HUD.
- Ne hozz létre minden frame-ben új textúrát/fontot.
- Ne számolj drága dolgokat minden frame-ben, ha elég másodpercenként.
local panelVisible = false
function drawPanel()
if not panelVisible then return end
dxDrawText("Panel", 100, 100)
end
addEventHandler("onClientRender", root, drawPanel)Timerek
- Sok játékosnál a játékosonkénti timer helyett jobb egy központi timer.
- 50 ms alatti timer csak nagyon indokolt esetben legyen.
- Leállításkor tisztítsd a timereket.
elementData
Az elementData kényelmes, de túlhasználva sok hálózati forgalmat okozhat.
- Ne frissítsd minden frame-ben.
- Csak azt szinkronizáld, amit más kliensnek is látnia kell.
- Lokális UI állapothoz használj Lua változót.
Moderátori figyelmeztető jelek
- Több száz `setTimer` egy resource-ban.
- `onClientRender` belsejében fájlbetöltés vagy SQL-szerű művelet.
- Minden játékosra folyamatos `setElementData` frissítés.