Skip to content

Client JavaScript overview

Client resources запускают JavaScript через Varion client runtime. Runtime инжектит global varion object, native bridge и resource/manifest helpers.

Полный справочник по varion.* — на странице Client JS API. Отдельные страницы: WebView и GTA natives.

Resource config

toml
enabled = true
type = "js"
main = "server/main.js"
client-type = "js"
client-main = "client/main.js"
client-files = [ "client/**" ]

Server manifest содержит client resources, а client runtime загружает configured client-main из resource cache.

Events

javascript
varion.on('resourceStart', (name) => varion.log(`start ${name}`));
varion.onServer('chat:addMessage', (author, message) => {});
varion.emitServer('chat:message', 'hello');

varion.onServerUnreliable и varion.emitServerUnreliable также реализованы.

RPC

javascript
const result = await varion.callServer('inventory:get');

varion.onRpc('client:ping', async () => {
  return { pong: true };
});

Resources and HTTP

javascript
const config = varion.getResourceConfig('mymode');
const path = varion.getResourcePath('mymode', 'client/main.js');
const url = varion.assetUrl('ui-pack', 'index.html');
const response = await varion.Http.getJson('/server-info.json');

varion.HttpClient validates protocol, host и port against server manifest and asset bases.

Storage

javascript
varion.LocalStorage.set('token', 'value');
varion.LocalStorage.save();

Local storage cached in client runtime и flushed on resource stop.

См. также

  • Client JS API — полный справочник runtime (события, сущности, голос, аудио, HTTP, файлы, WebSocket, разрешения, статистика, утилиты и т.д.).
  • WebView — overlay/DUI UI, методы и события WebView.
  • GTA natives — вызов GTA-нативов из client JS.

Source backing

Страница основана на src/network/CNetworkManager.cpp, client/src/scripting/CClientScriptRuntime.cpp, sdk/client-js-runtime/injected/events-bootstrap.js, sdk/client-js-runtime/injected/mvalue-bootstrap.js и sdk/client-js-runtime/injected/services-bootstrap.js.

Varion Multiplayer Platform