Documentația Pulse Phone
Framework-uri
3. Pas cu pas pentru framework-ul tău
Telefonul îți găsește singur framework-ul: es_extended, qb-core, qbx_core, ox_core, ND_Core, vrp sau core de la TMC. Ai nevoie de Config.Framework în config/config.lua doar dacă rulează mai multe sau pentru un framework custom.
Framework-ul tău pe scurt
| Framework | Detectat prin | Iteme | Bancă și cash | Bine de știut |
|---|---|---|---|---|
| ESX Legacy | es_extended |
Pulse își adaugă singur itemele în tabelul items al ESX (inventarul implicit). Pe ox_inventory, lipește blocul afișat de verificarea de la pornire |
Conturile ESX | Conturile firmelor prin scriptul tău de society |
| QBCore | qb-core |
Pulse își adaugă singur itemele în shared items-ul QBCore (qb-, ps-, lj-inventory) | Banii QBCore | Gradele isboss conduc firma |
| Qbox | qbx_core (substitutul lui qb-core contează ca Qbox, nu ca al doilea framework) |
Lipește blocul ox_inventory afișat | Banii Qbox | Folosește adaptorul Qbox, niciodată pe cel QBCore |
| ox_core | ox_core |
Lipește blocul ox_inventory afișat | Contul ox_core al personajului; cash-ul este money din ox_inventory |
Fără indicator de serviciu: toată lumea contează ca fiind în serviciu |
| ND Core | ND_Core |
Lipește blocul ox_inventory afișat | bank și cash din ND |
Fără indicator de serviciu; fără conturi de firmă |
| TMC | resursa sa core, recunoscută după obiectul core propriu al TMC |
Fiecare item trebuie să fie în lista de iteme TMC: verificarea de la pornire le afișează | Banii TMC | Rulează prin bridge-ul custom, nimic de configurat |
| vRP 2 | vrp |
Vezi secțiunea vRP | Portofelul și banca vRP | vRP 1 și fork-urile nu sunt suportate |
| Standalone | nimic din cele de mai sus pornit | Nu e nevoie | Banca proprie a telefonului | Pentru servere de test sau servere fără framework |
| Custom | Config.Framework = 'custom' |
Prin bridge-ul tău | Prin bridge-ul tău | Vezi „Framework custom sau făcut intern” |
Forțarea framework-ului
Majoritatea serverelor nu au nevoie niciodată de asta. Forțează framework-ul când linia de la pornire numește unul greșit sau când sunt instalate și pornite două core-uri de framework. Adaugă o linie în server.cfg:
setr phone_framework qb| Valoare | Framework |
|---|---|
esx |
ESX Legacy (es_extended) |
qb |
QBCore (qb-core) |
qbox |
Qbox (qbx_core) |
ox |
ox_core |
nd |
ND Core (ND_Core) |
vrp |
vRP 2 (vrp) |
tmc |
TMC (core) |
standalone |
Fără framework: telefonul își păstrează propria identitate și bancă |
custom |
Propriul tău bridge (vezi „Framework custom sau făcut intern” mai jos) |
auto |
La fel ca dacă lipsește linia: decide Config.Framework |
- Are prioritate față de
Config.Framework. Repornește telefonul după ce o schimbi. - Funcționează și numele resurselor:
qbcore,qb-core,qbx_core,es_extended,ox_core. Un cuvânt pe care nu îl cunoaște este refuzat: verificarea de la pornire spune asta, iar funcțiile legate de bani rămân dezactivate. qbpe un server care ruleazăqbx_corefolosește adaptorul Qbox. Qbox răspunde și ca QBCore.- Dacă framework-ul pe care îl forțezi nu este pornit, telefoanele rămân pe ecranul „not ready” până când pornește. Telefonul nu trece niciodată singur pe alt framework.
Multicharacter funcționează pe orice framework. Config.IdentityScope = 'character' (implicit) îi dă fiecărui personaj propriul telefon. 'player' dă un singur telefon per cont. Alege o singură dată: dacă o schimbi pe un server live, toate telefoanele existente rămân în urmă.
Gestionarea firmelor (serviciu, personal, angajări, contul firmei în aplicația Services) folosește firmele din Config.Services din config/apps.lua. Dacă numele joburilor tale diferă de cele implicite (police, ambulance, mechanic, taxi, fire ...), adaugă-le pe ale tale în lista job a acelei firme. Ca să alegi singur gradele de boss, adaugă bossGrade = <n> la firmă.
ESX Legacy
ensure oxmysql
ensure es_extended
# ... your ESX scripts, inventory, banking ...
ensure pma-voice
ensure screenshot-basic
ensure phone- Iteme: cu inventarul implicit ESX nu ai nimic de făcut. Telefonul își adaugă itemele în tabelul
itemsal ESX la pornire, iar consola spune pe care le-a adăugat.config/items/esx.sqlexistă dacă preferi să le adaugi singur. Cu alt inventar, vezi secțiunea 4. - Bani: banca este contul ESX
bank, cash-ul este contulmoney. - Personaj: telefonul urmează
identifier-ul jucătorului din ESX, așa că esx_multicharacter funcționează. - Boss: gradul numit
bossconduce firma, dacă nu setezibossGrade. - Conturi de firmă: esx_addonaccount / esx_society sau un script de banking din secțiunea 7.
QBCore
ensure oxmysql
ensure qb-core
# ... qb-inventory and your other qb scripts ...
ensure pma-voice
ensure screenshot-basic
ensure phone- Iteme: nimic de lipit. Telefonul adaugă itemele de care are nevoie în shared items-ul QBCore la pornire, iar consola spune pe care le-a adăugat. Copiază imaginile din
config/items/images/înqb-inventory/html/images/; verificarea de la pornire le numește pe cele care lipsesc. - Bani:
bankșicash. - Personaj:
citizenid, așa că qb-multicharacter funcționează. - Boss: gradele cu
isboss = truedin joburile tale, dacă nu setezibossGrade. - Conturi de firmă: Renewed-Banking, qb-banking sau mai vechiul qb-management.
- Multijob: cu ps-multijob pornit, celelalte joburi ale jucătorului apar în Services, iar o singură atingere face un job activ.
Qbox
ensure oxmysql
ensure qbx_core
ensure ox_inventory
# ... your other Qbox scripts, in Qbox's own order ...
ensure pma-voice
ensure screenshot-basic
ensure phone- Iteme: Qbox folosește ox_inventory, care nu poate primi iteme de la alt script. Pornește serverul o dată: verificarea de la pornire afișează intrările care lipsesc, gata de lipit în
ox_inventory/data/items.lua(secțiunea 4). Imaginile merg înox_inventory/web/images/. - Bani:
bankșicash, prin qbx_core. - Personaj:
citizenid. - Boss: gradele cu
isboss = true, dacă nu setezibossGrade. - Multijob: integrat. Celelalte joburi ale unui jucător apar în Services.
- qbx_core răspunde și ca
qb-core. E normal: telefonul le tratează pe cele două ca pe un singur framework.
ox_core
ensure oxmysql
ensure ox_core
ensure ox_inventory
# ... your other scripts ...
ensure pma-voice
ensure screenshot-basic
ensure phone- Iteme: pornește serverul o dată: verificarea de la pornire afișează intrările care lipsesc, gata de lipit în
ox_inventory/data/items.lua(secțiunea 4). Imaginile merg înox_inventory/web/images/. - Bani: banca este contul ox_core al personajului. Cash-ul este itemul
moneydin ox_inventory. - Personaj:
charId. - Joburi: grupurile ox_core nu au indicator de serviciu, așa că telefonul ține singur evidența serviciului. Gestionarea firmelor (personal, angajări, grade) și valet nu sunt disponibile pe ox_core.
ND Core
ensure oxmysql
ensure ox_lib
ensure ND_Core
ensure ox_inventory
# ... your other scripts ...
ensure pma-voice
ensure screenshot-basic
ensure phone- Detectat automat când
ND_Coreeste pornit. Ca să-l forțezi:setr phone_framework nd. - Iteme: ND folosește ox_inventory. Pornește serverul o dată: verificarea de la pornire afișează intrările care lipsesc, gata de lipit în
ox_inventory/data/items.lua(secțiunea 4). - Bani:
bank-ul ND al personajului șicash-ul ND (ox_inventory ține itemulmoneysincronizat). - Personaj: ID-ul de personaj din ND. Numărul de telefon afișat este cel din ND, când personajul are unul.
- Joburi: jobul și rangul ND ale personajului. ND nu are indicator de serviciu, așa că toată lumea contează ca fiind în serviciu. Gestionarea firmelor, conturile de firmă și valet nu sunt disponibile pe ND Core.
- Garaj: mașinile deținute vin din tabelul
nd_vehiclesal ND.
vRP
Este suportat doar vRP 2 (nu vRP 1 sau fork-urile comunității). Telefonul încarcă o mică extensie în vRP din bridge/frameworks/vrp/. Nimic de copiat.
ensure oxmysql
ensure vrp
# ... your other scripts ...
ensure pma-voice
ensure screenshot-basic
ensure phone- Iteme: nu există fișier de iteme pentru vRP, iar vRP 2 nu poate face iteme utilizabile pentru telefon. Păstrează
Config.Item.required = false(implicit) și seteazăConfig.Store.box = false, ca magazinul să predea telefoanele direct. Jucătorii folosesc itemele de încărcare cu/phonepackși/phonecable; cu un inventar vRP, acestea cer ca jucătorul să aibă la elpulse_magpackșipulse_cable, așa că adaugă ambele iteme în lista de iteme vRP sau seteazăConfig.Charging.enabled = false. - Bani: banca și portofelul din vRP.
- Personaj: ID-ul de personaj din vRP.
- Joburi: gestionarea firmelor și valet nu sunt disponibile pe vRP. Aplicația Garage rămâne goală dacă nu conectezi un script de garaj.
TMC
TMC este integrat. Telefonul recunoaște singur core-ul TMC: fără resursă suplimentară și fără modificări în config/config.lua (auto, tmc și custom funcționează toate).
ensure oxmysql
ensure core
# ... your other scripts ...
ensure pma-voice
ensure screenshot-basic
ensure phoneVerificarea de la pornire afișează Framework: TMC.
- Iteme: adaugă itemele Pulse în lista de iteme TMC la fel cum adaugi orice item. Numele sunt
phone,pulse_magpack,pulse_magpack_max,pulse_cable,pulse_router,pulse_burner,pulse_buds,pulse_ringlight,pulse_wallet(config/items/tmc.luaconține intrările) și, pentru cutiile din magazin,pulse_phone_boxplus câte una pentru fiecare finisaj (pulse_phone_box_black...). Etichetele, greutățile și descrierile sunt înconfig/items/qb-core.lua, iar imaginile înconfig/items/images/. Un item care nu este în listă este refuzat, iar jucătorul vede „inventory full”: consola numește atunci itemul. Un item de cutie care lipsește din listă nu oprește vânzarea: magazinul predă telefonul fără cutie și semnalează asta în consolă. Dacă nu vrei deloc cutiile, seteazăConfig.Store.box = false. - Bani: cash-ul personajului și banca lui: resursa
bankinga TMC când rulează (contul personal propriu), altfel banii din bancă ai core-ului. Dacă numerele de cont nu arată caBNK123456, numește câmpul care conține numărul de cont înconfig/config.lua:Config.Providers.tmcBankAccount = 'charinfo.account'(folosește propriul câmp). Wallet afișează o liniuță, niciodată o sumă inventată, când banca nu poate fi citită. - Personaj: citizen id-ul din TMC.
- Joburi: jobul în serviciu (sau primul), cu gradul și starea de serviciu.
- Aveai conectorul temporar
pulse_tmc? Scoateensure pulse_tmcși șterge acel folder. Consola îți amintește cât timp încă rulează.
Standalone (fără framework)
ensure oxmysql
ensure pma-voice
ensure screenshot-basic
ensure phone- Iteme: nu e nevoie. Fiecare jucător are un telefon, un Reserve și un cablu.
- Bani: telefonul are propria bancă. Un jucător nou pornește cu 5000 (
startingBalanceînconfig/apps.lua). - Personaj: licența Rockstar a jucătorului.
- Joburi, mașini și locuințe: telefonul le ține pe ale lui. Le completezi cu comenzile de test din secțiunea 9.
Framework custom sau făcut intern
- Setează
Config.Framework = 'custom'înconfig/config.lua. - Dă-i telefonului un tabel de bridge structurat ca
optional-developer-kit/custom_framework_bridge.lua: fie caConfig.Providers.customînconfig/config.lua, fie din propria ta resursă, cuexports.phone:RegisterFrameworkBridge(MyBridge). - Doar
GetCharacterIdeste obligatoriu. Dacă lași deoparte o funcție de nume, job, licență sau listă de vehicule/locuințe, telefonul se comportă ca și cum serverul tău nu ar avea astfel de date. Dacă lași deoparte o funcție de bani sau de iteme, acea acțiune este refuzată: telefonul nu plătește niciodată dintr-o bancă proprie. Aplicația Bank apare doar când bridge-ul tău areGetBankBalance. - Dacă core-ul tău se repornește în timp ce telefonul continuă să ruleze, apelează
exports.phone:FrameworkRestarted()după ce core-ul este gata.
bridge/frameworks/custom.lua arată cum folosește telefonul tabelul tău. Ca să conectezi alte scripturi făcute intern (un script de banking sau de garaj), vezi optional-developer-kit/custom_provider_template.lua și Exporturi. Cele două șabloane vin în kitul opțional pentru dezvoltatori, zerodevscripts.com/downloads/PulsePhone-developer-kit.zip, nu în folderul phone.