Pulse Phone 문서
요구 사항
2. 요구 사항
| 항목 | 필수 여부 | 없을 때 일어나는 일 |
|---|---|---|
| OneSync 켜기 | 필수 | 시작 점검이 OneSync ... off로 실패합니다. set onesync on을 추가하세요. |
| 게임 빌드 2699 이상 | 필수 | 휴대폰 모델이 스트리밍되지 않습니다. sv_enforceGameBuild를 설정하세요. |
| MariaDB 10.6+ 또는 MySQL 8 위의 oxmysql(또는 ghmattimysql, mysql-async) | 권장 | SQL 리소스가 실행 중이지 않으면 데이터는 서버의 key/value 저장소에 보관됩니다. 데이터는 유지되지만 쿼리할 수 없으며, 플레이어가 약 30명을 넘으면 데이터베이스를 사용해야 합니다. |
| 보이스 스크립트: pma-voice, mumble-voip, SaltyChat, TokoVOIP 또는 YACA | 권장 | 통화는 연결되지만 소리가 나지 않습니다. |
| screenshot-basic | 권장(기본 리소스 또는 다운로드에 포함된 더 가벼운 사본: 빠른 시작 6단계 참고) | 카메라로 구도는 잡을 수 있지만 사진을 저장할 수 없습니다. |
| framework | 선택 사항 | 휴대폰이 standalone으로 실행됩니다. 휴대폰은 플레이어 라이선스에 연결되고, 휴대폰이 자체 은행을 사용합니다. |
완성된 server.cfg 블록:
set onesync on
set sv_enforceGameBuild 2699 # or newer
ensure oxmysql
# ... your framework, then your inventory, banking, garage and housing scripts ...
ensure pma-voice
ensure screenshot-basic
ensure phone
# ... scripts that use the phone ...데이터베이스. 휴대폰이 어떤 저장소를 쓸지는 시작할 때마다 결정됩니다:
| 내 서버 | 휴대폰의 데이터 보관 위치 |
|---|---|
| oxmysql, mysql-async 또는 ghmattimysql이 실행 중이고 데이터베이스가 응답함 | 데이터베이스. 테이블은 첫 시작 시 생성되고, 업데이트마다 새 테이블이 자동으로 추가됩니다. |
| SQL 리소스가 전혀 실행 중이지 않음 | 자동으로 서버의 key/value 저장소를 사용합니다. 재시작 후에도 유지되지만 쿼리할 수 없습니다. 플레이어가 약 30명을 넘거나, 콘솔에 저장소 저장이 느리다는 경고가 나오면 데이터베이스를 사용하세요. |
| SQL 리소스는 실행 중이지만 데이터베이스가 30초 안에 응답하지 않음 | 응답이 올 때까지 아무것도 저장하지 않습니다. 콘솔에 이유가 표시되며, 휴대폰은 15~60초마다 다시 시도하고 데이터베이스가 응답하면 스스로 시작을 마칩니다. |
마지막 경우에는 set phone_db_fallback "kvp"를 server.cfg에 넣어 휴대폰이 대신 key/value 저장소를 쓰게 할 수 있습니다. 이 데이터는 key/value 저장소에 남고 나중에 데이터베이스로 복사되지 않으므로, 끊어진 연결을 우회하는 방법이 아니라 테스트 서버에서만 사용하세요. 또한 모든 쿼리에는 10초 제한이 있습니다. 데이터베이스가 끝내 응답하지 않는 쿼리는 요청한 앱에 실패로 보고되며, 콘솔에 해당 쿼리가 한 번 표시됩니다.
지원 데이터베이스: MariaDB 10.6 이상 또는 MySQL 8.0 이상. 각 릴리스의 phone.sql은 패키지를 빌드하기 전에 MySQL 8의 SQL 모드로 실행되는 새 MariaDB 데이터베이스에서 검사합니다. 이전 버전(MariaDB 10.4 또는 10.5, MySQL 5.7)은 작동할 수도 있지만 테스트하지 않았고 지원하지 않습니다.
phone.sql은 리소스가 테이블을 만들 수 없는 호스트 전용입니다. 파일에 collation이 지정되어 있지 않으므로, 휴대폰이 직접 테이블을 만들 때와 마찬가지로 서버의 utf8mb4 기본값이 적용됩니다. 기존 데이터베이스에서 실행해도 안전하며, 업데이트 후 새 파일을 다시 실행하면 빠진 것만 추가됩니다.
sv_stateBagStrictMode는 켜 둬도 됩니다. 다른 플레이어에게 보이는 휴대폰의 모든 것(들고 있는 애니메이션, 손에 든 휴대폰, 화면, 손전등)은 서버가 값을 확인한 뒤 설정하며, 플레이어의 게임이 설정하지 않습니다.
휴대폰 교체
다른 휴대폰의 테이블. 이전에 쓰던 휴대폰이 같은 이름의 테이블(예: phone_messages)을 남겨 두었다면, Pulse Phone이 자체 테이블을 만들 수 있도록 첫 시작 시 old_<name>으로 이름이 바뀝니다. 아무것도 삭제되지 않습니다. 데이터베이스 사용자에게 테이블 이름 변경 권한이 없다면 시작 점검에 테이블 이름과 함께 [FAIL] Database가 표시됩니다. 사용자에게 ALTER 권한을 주거나, 데이터베이스 도구(HeidiSQL, phpMyAdmin)에서 각 테이블 이름을 old_<name>으로 바꾼 뒤 재시작하세요.