Pulse Phone 문서
Framework
3. framework별 단계 안내
휴대폰은 framework를 스스로 찾습니다: es_extended, qb-core, qbx_core, ox_core, ND_Core, vrp 또는 TMC의 core. Config.Framework(config/config.lua)는 둘 이상이 실행 중이거나 커스텀 framework를 쓸 때만 필요합니다.
내 framework 한눈에 보기
| Framework | 감지 기준 | 아이템 | 은행과 현금 | 알아 두면 좋은 점 |
|---|---|---|---|---|
| ESX Legacy | es_extended |
Pulse가 ESX의 items 테이블에 아이템을 직접 추가합니다(기본 인벤토리). ox_inventory에서는 시작 점검이 출력하는 블록을 붙여 넣으세요 |
ESX 계좌 | 소사이어티 스크립트를 통한 회사 계좌 |
| QBCore | qb-core |
Pulse가 QBCore의 shared items에 아이템을 직접 추가합니다(qb-, ps-, lj-inventory) | QBCore 돈 | isboss 직급이 회사를 운영합니다 |
| Qbox | qbx_core(내장된 qb-core 대체 구현은 두 번째 framework가 아니라 Qbox로 인식) |
출력된 ox_inventory 블록을 붙여 넣으세요 | Qbox 돈 | QBCore 어댑터가 아닌 Qbox 어댑터를 사용합니다 |
| ox_core | ox_core |
출력된 ox_inventory 블록을 붙여 넣으세요 | 캐릭터의 ox_core 계좌, 현금은 ox_inventory의 money |
근무 플래그 없음: 모두 근무 중으로 간주합니다 |
| ND Core | ND_Core |
출력된 ox_inventory 블록을 붙여 넣으세요 | ND의 bank와 cash |
근무 플래그 없음, 회사 계좌 없음 |
| TMC | core 리소스, TMC 자체 core 객체로 인식 |
모든 아이템이 TMC 아이템 목록에 있어야 합니다. 시작 점검이 출력해 줍니다 | TMC 돈 | 커스텀 브리지로 작동하며, 설정할 것이 없습니다 |
| vRP 2 | vrp |
vRP 섹션 참고 | vRP 지갑과 은행 | vRP 1과 포크 버전은 지원하지 않습니다 |
| Standalone | 위의 어떤 것도 실행 중이지 않음 | 필요 없음 | 휴대폰 자체 은행 | 테스트 서버나 framework 없는 서버용 |
| 커스텀 | Config.Framework = 'custom' |
내 브리지를 통해 | 내 브리지를 통해 | "커스텀 또는 자체 제작 framework" 참고 |
framework 강제 지정
대부분의 서버는 이 설정이 필요 없습니다. 시작 시 표시되는 framework가 잘못되었거나, framework core가 두 개 설치되어 시작될 때 강제로 지정하세요. server.cfg에 한 줄을 추가합니다:
setr phone_framework qb| 값 | 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 |
framework 없음: 휴대폰이 자체 신원과 은행을 사용합니다 |
custom |
직접 만든 브리지(아래 "커스텀 또는 자체 제작 framework" 참고) |
auto |
줄을 넣지 않은 것과 같습니다: Config.Framework가 결정합니다 |
Config.Framework보다 우선합니다. 바꾼 뒤에는 휴대폰을 재시작하세요.- 리소스 이름도 사용할 수 있습니다:
qbcore,qb-core,qbx_core,es_extended,ox_core. 모르는 단어는 거부되며, 시작 점검에 그렇게 표시되고 돈 관련 기능은 꺼진 상태로 유지됩니다. qb를qbx_core가 실행 중인 서버에서 지정하면 Qbox 어댑터를 사용합니다. Qbox는 QBCore로도 응답합니다.- 강제로 지정한 framework가 시작되지 않으면, 시작될 때까지 휴대폰은 "not ready" 화면에 머뭅니다. 휴대폰이 스스로 다른 framework로 바꾸는 일은 없습니다.
멀티캐릭터는 모든 framework에서 작동합니다. Config.IdentityScope = 'character'(기본값)는 캐릭터마다 휴대폰을 따로 줍니다. 'player'는 계정당 휴대폰 하나입니다. 한 번만 정하세요. 운영 중인 서버에서 바꾸면 기존 휴대폰을 모두 잃게 됩니다.
회사 관리(근무, 직원, 채용, Services 앱의 회사 계좌)는 Config.Services(config/apps.lua)에 있는 회사를 사용합니다. 직업 이름이 기본값(police, ambulance, mechanic, taxi, fire ...)과 다르다면 해당 회사의 job 목록에 추가하세요. 보스 직급을 직접 정하려면 회사에 bossGrade = <n>을 추가하세요.
ESX Legacy
ensure oxmysql
ensure es_extended
# ... your ESX scripts, inventory, banking ...
ensure pma-voice
ensure screenshot-basic
ensure phone- 아이템: ESX 기본 인벤토리에서는 할 일이 없습니다. 휴대폰이 시작 시 ESX의
items테이블에 아이템을 추가하고, 무엇을 추가했는지 콘솔에 알려 줍니다. 직접 추가하고 싶다면config/items/esx.sql을 사용하세요. 다른 인벤토리는 4절을 참고하세요. - 돈: 은행은 ESX
bank계좌, 현금은money계좌입니다. - 캐릭터: 휴대폰은 ESX 플레이어
identifier를 따르므로 esx_multicharacter가 작동합니다. - 보스: 이름이
boss인 직급이 회사를 관리합니다. 단,bossGrade를 설정하면 그 값을 따릅니다. - 회사 계좌: esx_addonaccount / esx_society, 또는 7절의 은행 스크립트.
QBCore
ensure oxmysql
ensure qb-core
# ... qb-inventory and your other qb scripts ...
ensure pma-voice
ensure screenshot-basic
ensure phone- 아이템: 붙여 넣을 것이 없습니다. 휴대폰이 시작 시 필요한 아이템을 QBCore shared items에 추가하고, 무엇을 추가했는지 콘솔에 알려 줍니다. 이미지는
config/items/images/에서qb-inventory/html/images/로 복사하세요. 빠진 이미지는 시작 점검이 알려 줍니다. - 돈:
bank와cash. - 캐릭터:
citizenid를 사용하므로 qb-multicharacter가 작동합니다. - 보스: 직업에서
isboss = true인 직급입니다. 단,bossGrade를 설정하면 그 값을 따릅니다. - 회사 계좌: Renewed-Banking, qb-banking 또는 구버전 qb-management.
- 멀티잡: ps-multijob이 실행 중이면 플레이어의 다른 직업이 Services에 표시되며, 탭 한 번으로 활성 직업을 바꿉니다.
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- 아이템: Qbox는 ox_inventory를 사용하며, ox_inventory는 다른 스크립트로부터 아이템을 받을 수 없습니다. 서버를 한 번 시작하세요. 시작 점검이 빠진 항목을 출력하며, 그대로
ox_inventory/data/items.lua에 붙여 넣으면 됩니다(4절). 이미지는ox_inventory/web/images/에 넣습니다. - 돈: qbx_core를 통한
bank와cash. - 캐릭터:
citizenid. - 보스:
isboss = true인 직급입니다. 단,bossGrade를 설정하면 그 값을 따릅니다. - 멀티잡: 내장되어 있습니다. 플레이어의 다른 직업이 Services에 표시됩니다.
- qbx_core는
qb-core로도 응답합니다. 정상입니다. 휴대폰은 둘을 하나의 framework로 취급합니다.
ox_core
ensure oxmysql
ensure ox_core
ensure ox_inventory
# ... your other scripts ...
ensure pma-voice
ensure screenshot-basic
ensure phone- 아이템: 서버를 한 번 시작하세요. 시작 점검이 빠진 항목을 출력하며, 그대로
ox_inventory/data/items.lua에 붙여 넣으면 됩니다(4절). 이미지는ox_inventory/web/images/에 넣습니다. - 돈: 은행은 캐릭터의 ox_core 계좌입니다. 현금은 ox_inventory의
money아이템입니다. - 캐릭터:
charId. - 직업: ox_core 그룹에는 근무 플래그가 없으므로 휴대폰이 근무 상태를 직접 관리합니다. 회사 관리(직원, 채용, 직급)와 발레파킹은 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- 자동 감지:
ND_Core가 시작되어 있으면 스스로 찾습니다. 강제로 지정하려면:setr phone_framework nd. - 아이템: ND는 ox_inventory를 사용합니다. 서버를 한 번 시작하세요. 시작 점검이 빠진 항목을 출력하며, 그대로
ox_inventory/data/items.lua에 붙여 넣으면 됩니다(4절). - 돈: 캐릭터의 ND
bank와 NDcash(ox_inventory가money아이템을 맞춰 줍니다). - 캐릭터: ND의 캐릭터 id. 캐릭터에 ND 자체 전화번호가 있으면 그 번호를 표시합니다.
- 직업: 캐릭터의 ND 직업과 계급. ND에는 근무 플래그가 없으므로 모두 근무 중으로 간주합니다. 회사 관리, 회사 계좌, 발레파킹은 ND Core에서 사용할 수 없습니다.
- 차고: 소유 차량은 ND의
nd_vehicles테이블에서 가져옵니다.
vRP
vRP 2만 지원합니다(vRP 1이나 커뮤니티 포크는 지원하지 않습니다). 휴대폰은 bridge/frameworks/vrp/에서 작은 확장 기능을 vRP에 불러옵니다. 복사할 것은 없습니다.
ensure oxmysql
ensure vrp
# ... your other scripts ...
ensure pma-voice
ensure screenshot-basic
ensure phone- 아이템: vRP용 아이템 파일은 없으며, vRP 2는 휴대폰용 아이템을 사용 가능하게 만들 수 없습니다.
Config.Item.required = false(기본값)를 유지하고,Config.Store.box = false로 설정해 매장이 휴대폰을 직접 넘겨주게 하세요. 플레이어는/phonepack과/phonecable로 충전 아이템을 사용합니다. vRP 인벤토리에서는 플레이어가pulse_magpack과pulse_cable을 가지고 있어야 하므로, 두 아이템을 vRP 아이템 목록에 추가하거나Config.Charging.enabled = false로 설정하세요. - 돈: vRP의 은행과 지갑.
- 캐릭터: vRP의 캐릭터 id.
- 직업: 회사 관리와 발레파킹은 vRP에서 사용할 수 없습니다. 차고 스크립트를 연결하지 않으면 Garage 앱은 비어 있습니다.
TMC
TMC는 내장되어 있습니다. 휴대폰이 TMC의 core를 스스로 인식하므로, 추가 리소스도 config/config.lua 변경도 필요 없습니다(auto, tmc, custom 모두 작동합니다).
ensure oxmysql
ensure core
# ... your other scripts ...
ensure pma-voice
ensure screenshot-basic
ensure phone시작 점검에 Framework: TMC가 표시됩니다.
- 아이템: 다른 아이템을 추가하는 것과 같은 방식으로 TMC 아이템 목록에 Pulse 아이템을 추가하세요. 이름은
phone,pulse_magpack,pulse_magpack_max,pulse_cable,pulse_router,pulse_burner,pulse_buds,pulse_ringlight,pulse_wallet이며(config/items/tmc.lua에 항목이 있습니다), 매장 박스용으로pulse_phone_box와 마감별 박스 하나씩(pulse_phone_box_black...)이 있습니다. 라벨, 무게, 설명은config/items/qb-core.lua에, 이미지는config/items/images/에 있습니다. 목록에 없는 아이템은 거부되며 플레이어에게는 "inventory full"로 표시되고, 콘솔에 해당 아이템 이름이 나옵니다. 박스 아이템이 목록에 없어도 판매는 막히지 않습니다. 매장은 그 휴대폰을 박스 없이 넘겨주고 콘솔에 알립니다. 박스를 전혀 쓰지 않으려면Config.Store.box = false로 설정하세요. - 돈: 캐릭터의 현금과 은행입니다. 은행은 TMC의
banking리소스가 실행 중이면 그것(본인 개인 계좌), 아니면 core의 은행 잔액을 사용합니다. 계좌번호 형식이BNK123456과 다르다면, 계좌번호가 들어 있는 필드를config/config.lua에서 지정하세요:Config.Providers.tmcBankAccount = 'charinfo.account'(내 필드로 바꿔서). 은행을 읽을 수 없을 때 Wallet은 지어낸 숫자가 아니라 대시를 표시합니다. - 캐릭터: TMC의 citizen id.
- 직업: 근무 중인 직업(또는 첫 번째 직업)과 그 직급, 근무 상태.
- 임시
pulse_tmc커넥터를 쓰고 있었나요?ensure pulse_tmc를 제거하고 그 폴더를 삭제하세요. 아직 실행 중이면 콘솔이 알려 줍니다.
Standalone (framework 없음)
ensure oxmysql
ensure pma-voice
ensure screenshot-basic
ensure phone- 아이템: 필요 없습니다. 모든 플레이어에게 휴대폰, Reserve, 케이블이 있습니다.
- 돈: 휴대폰이 자체 은행을 사용합니다. 새 플레이어는 5000으로 시작합니다(
startingBalance,config/apps.lua). - 캐릭터: 플레이어의 Rockstar 라이선스.
- 직업, 차량, 집: 휴대폰이 자체적으로 관리합니다. 9절의 테스트 명령어로 채워 넣으세요.
커스텀 또는 자체 제작 framework
Config.Framework = 'custom'을config/config.lua에 설정하세요.optional-developer-kit/custom_framework_bridge.lua형태의 브리지 테이블을 휴대폰에 넘겨주세요.Config.Providers.custom으로config/config.lua에 넣거나, 내 리소스에서exports.phone:RegisterFrameworkBridge(MyBridge)로 등록하면 됩니다.- 필수 항목은
GetCharacterId뿐입니다. 이름, 직업, 라이선스, 차량/집 목록 함수를 빼면 휴대폰은 서버에 그런 데이터가 없는 것처럼 동작합니다. 돈이나 아이템 함수를 빼면 해당 동작은 거부됩니다. 휴대폰이 자체 은행에서 대신 결제하는 일은 없습니다. Bank 앱은 브리지에GetBankBalance가 있을 때만 나타납니다. - 휴대폰이 실행 중인 상태에서 core가 재시작되면, core가 준비된 뒤
exports.phone:FrameworkRestarted()를 호출하세요.
bridge/frameworks/custom.lua에서 휴대폰이 테이블을 어떻게 쓰는지 볼 수 있습니다. 다른 자체 제작 스크립트(은행이나 차고 스크립트)를 연결하려면 optional-developer-kit/custom_provider_template.lua와 Export를 참고하세요. 두 템플릿은 phone 폴더가 아니라 선택형 개발자 키트 zerodevscripts.com/downloads/PulsePhone-developer-kit.zip에 들어 있습니다.