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
Tudástár / Optimalizálás

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.