HeroHunt App: Export ve Event'ler
Yönetici komutları, HeroHunt App'in dinlediği oyuncu yükleme event'leri, framework köprüleri, lb-phone entegrasyonu ve verilerin nasıl okunacağı.
v1.0.0'da export yok
hype-herohunt-app henüz kendine ait bir export kaydetmiyor. Oyuncular telefon uygulamasını, yetkililer aşağıdaki komutları kullanır; diğer kaynaklar ise veritabanı tablolarını okuyabilir.
| Ad | Tür | Taraf | Amaç |
|---|---|---|---|
/herospawn | Komut | Sunucu | Test için yöneticinin yanında hero çıkarır |
/heroclear | Komut | Sunucu | Tüm aktif spawnları kaldırır |
hype-herohunt-app:server:player-loaded | Event | Sunucu | Oyuncuyu koleksiyonuna bağlar |
hype-herohunt-app:server:player-unloaded | Event | Sunucu | Oyuncunun önbellekteki verilerini bırakır |
Komutlar
İki komut da group.admin ACE grubuyla sınırlı ox_lib komutlarıdır.
/herospawn
Yöneticinin 15 ile 60 metre çevresinde, yöneticinin yüksekliğinde hero çıkarır. Bir spawn turunu beklemeden yakalamayı, nadirlikleri ve görevleri test etmek için kullan.
/herospawn [hero] [count]
/herospawn hero_049 1
/herospawn random 10Seçenek
Tür
Bu spawnlar zemin kontrolünü ve spawn kurallarını atlar, ama bunun dışında normal spawnlardır: her oyuncu onları görür
ve Spawn.DespawnAfterSeconds sonra süresi dolar. Komut sadece oyun içinde çalışır, sunucu konsolundan çalışmaz.
/heroclear
Tüm aktif spawnları dünyadan kaldırır ve veritabanında expired olarak işaretler. Hem oyun içinde hem sunucu
konsolunda çalışır.
/heroclearEvent'ler
Framework köprüleri bu event'leri senin için tetikler. Uygulamadan gelen her istek de oyuncuyu kendiliğinden bağlar; bu yüzden multicharacter kaynağın ikisini de tetiklemese bile uygulama çalışmaya devam eder.
hype-herohunt-app:server:player-loaded
Oyuncuyu koleksiyonuna bağlar: gerekirse hero_player_data satırı oluşturulur ve keşfedilen herolar yüklenir.
Köprüler bunu QBCore:Server:OnPlayerLoaded (QBox ve QBCore), esx:playerLoaded (ESX) ve playerJoining
(standalone) üzerinden tetikler. Multicharacter kaynağın karakterleri bu event'ler olmadan yüklüyorsa kendin tetikle.
TriggerEvent('hype-herohunt-app:server:player-loaded', source)Seçenek
Tür
hype-herohunt-app:server:player-unloaded
Tersi: oyuncunun önbellekteki verilerini bırakır ve harita akışını durdurur. Köprüler bunu
QBCore:Server:OnPlayerUnload ve esx:playerLogout üzerinden tetikler. Sunucudan çıkan oyuncular kendiliğinden
işlenir.
TriggerEvent('hype-herohunt-app:server:player-unloaded', source)Sadece sunucu
Bunlar yerel sunucu event'leridir. İstemciden asla tetikleme.
Framework köprüleri
frameworks/ içindeki framework köprüleri escrow korumalı değildir. Script framework'ünden tek bir şeye ihtiyaç duyar:
koleksiyonun sahibi olan karakter kimliği.
| Fonksiyon | Döndürdüğü |
|---|---|
GetPlayerIdentifier(playerId) | QBox ve QBCore'da citizenid, ESX'te identifier, standalone'da Rockstar lisansı. Karakter yüklü değilken nil |
frameworks/main.lua, config'teki Framework ayarına göre köprüyü seçer. Her köprü ayrıca framework'ünün yükleme ve
çıkış event'lerini yukarıdaki event'lere aktarır. Ownership = "account" olduğunda (standalone'da her
zaman) sahip için köprü kullanılmaz: koleksiyonlar acc:<lisans> anahtarına aittir.
lb-phone entegrasyonu
Uygulama lb-phone'un özel uygulama API'sini kullanır. lb-phone tarafında hiçbir ayar yapman gerekmez.
| Ne | Nasıl |
|---|---|
| Uygulama ve App Store kaydı | lb-phone başladıktan bir saniye sonra App ayarlarıyla AddCustomApp. lb-phone yeniden başlarsa tekrar eklenir |
| Kaldırma | hype-herohunt-app durduğunda RemoveCustomApp |
| Harita | lb-phone'un dahili GTA haritası; keşif dairesi ve hero işaretleri üstüne çizilir |
| Tema | Telefon ayarlarındaki açık veya koyu temayı izler |
| Görev bildirimleri | Uygulama ekranda açık değilken bir görev tamamlanırsa uygulama adına SendNotification |
| Yol tarifi | Bir herodaki Yol tarifi butonu GPS işareti koyar |
Dahili event'ler
hype-herohunt-app:client:spawns, hype-herohunt-app:client:event ve hype-herohunt-app:server:* callback'leri
dahilidir. Sunucu her yakalamayı, dönüşümü ve ödül almayı kontrol eder; bu yüzden onları elle çağırmak işe yarar bir
şey yapmaz.
Verileri okumak
Her tablo koleksiyon anahtarı olarak owner sütununu kullanır: Ownership = "character" ile karakter kimliği,
"account" ile ve standalone'da acc:<lisans>. Tablo listesi için
Veritabanı bölümüne bak.
SELECT candy, candy_earned, total_captures, total_converted, tasks_completed
FROM hero_player_data
WHERE owner = 'ABC12345';SELECT owner, COUNT(*) AS discovered
FROM hero_discoveries
GROUP BY owner
ORDER BY discovered DESC
LIMIT 10;