Geliştirici export'ları
Sunucu scriptlerin Fiveops’u exports.fiveops:<ad>(…) ile çağırabilir. İşlemler web paneliyle aynı yoldan geçer ve
Fiveops loguna yazılır. Export’lar yalnızca sunucu tarafında çalışır.
RegisterNetEvent('my_admin:revive', function(target) local src = source local allowed = exports.fiveops:hasPermission(src, 'revive') if not (allowed.ok and allowed.data) then return end
local result = exports.fiveops:revive(target, src) if not result.ok then print(('canlandırma olmadı: %s'):format(result.error)) endend)Export’ları bir olay işleyicisinden ya da thread içinden (CreateThread) çağır: bazıları Fiveops bulutunun cevabını
bekler.
Dönüş değeri
Section titled “Dönüş değeri”| Alan | Değer |
|---|---|
ok | true ya da false |
data | ok true ise sonuç (aşağıdaki tablolarda) |
error | ok false ise hata kodu |
detail | Hatayla ilgili ek bilgi; nil olabilir |
error | Anlamı |
|---|---|
player_not_found | Oyuncu sunucuda değil ya da karakter yok. |
invalid_args | Bir parametre eksik ya da hatalı; detail hangisi olduğunu söyler. |
unsupported | Framework’ün ya da scriptlerin bunu desteklemiyor (ör. ox_inventory yok). |
framework | Framework değişikliği reddetti. |
cloud | Fiveops bulutu kabul etmedi. |
not_found | Eşleşen bir şey yok (ör. duyurunun alıcısı yok). |
rate_limited | Çok sık gönderildi; biraz bekleyip yeniden dene. |
session_error | Yetkili bilgisi şu an Fiveops’tan alınamadı. Ayrıntı session_pending ise çağrı bir thread dışından geldi ve beklenemedi: CreateThread içinden çağır. |
internal | Beklenmeyen hata; sunucu konsolunda export … hata satırı çıkar. |
İşlemi kim yaptı
Section titled “İşlemi kim yaptı”Her işlemin son parametresi performedBy (isteğe bağlı). Fiveops logunda export’u çağıran resource her zaman görünür;
performedBy işlemi kimin yaptığını ekler.
performedBy | Logda görünen |
|---|---|
| Oyuncunun sunucu ID’si (sayı) | O oyuncu, tam kimliğiyle (hesap, karakter, Discord) |
| Metin | O ad |
{ name = '…', discordId = '…' } | Ad ve Discord hesabı |
nil | Yalnızca resource adı |
Yapılamayan işlemler de sebebiyle loglanır. Oyuncu ya da yetkili okumak loglanmaz.
| Export | Parametreler | data |
|---|---|---|
getPlayers() | — | Çevrimiçi oyuncuların listesi |
getPlayer(target) | Sunucu ID’si ya da çevrimdışı karakter için citizenId (metin) | Tek oyuncu; ek olarak cash, bank ve identifiers (IP asla yok) |
getStaff(src) | Sunucu ID’si | { staff = false } ya da { staff = true, role, title, permissions } |
hasPermission(src, permission) | Sunucu ID’si, izin anahtarı (ör. kick, ban, revive, heal) | true ya da false; sahip ve yönetici rollerinde her izin var |
Oyuncu alanları: id, online, name (karakter), account, citizenId, discordId,
job = { name, label, grade, gradeLabel, isBoss, onDuty }, gang, state (alive, down, dead), frozen,
staff, staffTitle. Çevrimdışı karakterde online = false ve id yerine lastSeen olur.
İşlemler
Section titled “İşlemler”| Export | Parametreler | data |
|---|---|---|
kick(target, reason, performedBy) | Sunucu ID’si; sebep zorunlu | true |
ban(target, reason, duration, performedBy) | Sunucu ID’si ya da citizenId; duration saniye, 0 kalıcı | Yasak kaydı (id, reason, expiresAt) |
revive(target, performedBy) | Sunucu ID’si | { framework }: yalnızca oyunun canlandırması çalıştıysa false |
heal(target, performedBy) | Sunucu ID’si | true |
freeze(target, state, performedBy) | Sunucu ID’si; state = false çözer | { frozen } |
teleport(target, coords, performedBy) | Sunucu ID’si; vector3 ya da { x, y, z }; z yoksa zemin bulunur | true |
giveItem(target, item, count, metadata, performedBy) | Sunucu ID’si ya da citizenId; ox_inventory eşya adı; count varsayılan 1; metadata isteğe bağlı | true |
giveMoney(target, account, amount, performedBy) | Sunucu ID’si ya da citizenId; account cash ya da bank | { cash, bank } |
setJob(target, job, grade, performedBy) | Sunucu ID’si ya da citizenId; meslek adı ve rütbe | true |
announce(card, performedBy) | Aşağıda | { id, count }: count alıcı sayısı |
citizenId hedefi, framework’ün destekliyorsa paneldeki gibi çevrimdışı da çalışır.
Duyuru kartı
Section titled “Duyuru kartı”exports.fiveops:announce({ title = 'Sunucu yeniden başlıyor', text = 'Sunucu 10 dakika sonra yeniden başlayacak.', style = 'warning', target = { kind = 'all' },}, 'Restart botu')| Alan | Değer |
|---|---|
text | Zorunlu, en çok 500 karakter |
title | İsteğe bağlı, en çok 64 karakter |
style | announce (varsayılan), info, event, warning, urgent |
seconds | 4–45, varsayılan 10 |
sound | Sessiz için false |
signature | none (varsayılan), performedBy’ın role’ü ya da name’i |
target | Kimler görecek; varsayılan herkes |
target | Alıcılar |
|---|---|
{ kind = 'all' } | Herkes |
{ kind = 'players', ids = { 3, 12 } } | Bu sunucu ID’leri |
{ kind = 'staff' } | Oyundaki yetkililer |
{ kind = 'job', name = 'police', grades = { 2 }, duty = true } | Bir meslek; grades ve duty isteğe bağlı |
{ kind = 'gang', name = 'ballas' } | Bir çete |
{ kind = 'state', states = { 'dead', 'down' } } | Bu durumdaki oyuncular |
{ kind = 'radius', center = 12, meters = 50 } | Bir oyuncunun çevresi (10–2000 m) |
{ kind = 'role', roleId = '…' } | Bir Discord rolündekiler |
Menüdeki sınır burada da geçerli: gönderen başına 8 saniyede bir duyuru, sunucu genelinde dakikada en çok 6.
Sunucu olayları
Section titled “Sunucu olayları”Sunucu scriptinde AddEventHandler ile dinle.
| Olay | Argümanlar |
|---|---|
fiveops:characterDeleted | citizenId, { id, name, via, batch } |
fiveops:characterRestored | citizenId, { id, name } |
fiveops:charactersDeleted | Toplu işlem ID’si, { total, ok, failed, skipped, via, ref } |
exports.fiveops:emit('staff.action', { actor = 'Atlas', action = 'jail' }) kendi scriptinin bir işlemini paneldeki
yetkili etkinliğine sayar (actor ve action zorunlu, en çok 64 karakter; target ve meta isteğe bağlı). Fiveops
loguna yazılmaz.