Troubleshooting
문제 해결
/status 12 명령어 입력 시 권한이 없다고 나오는 경우
메디컬 체크는 서버에서 실행되며 다음 네 가지 이유 중 하나로 실패합니다:
- 직업이
Config.Permissions.EditOthers에 없거나 목록이 비어 있는 경우 (이 경우 다른 플레이어 진찰이 완전히 비활성화됩니다). - 직업 등급이
Config.Permissions.MinGrade보다 낮은 경우. - 대상과의 거리가
Config.Permissions.MaxDistance(기본값 3m)보다 먼 경우 — 이 경우 "You are too far away." 메시지가 반환됩니다. - ACE 권한 방식을 사용하려고 했으나
Config.Permissions.UseAce가 여전히false로 설정되어 있는 경우.
"You cannot remove it before it expires" 메시지가 나오는 경우
해당 기록은 의사에 의해 작성되었으며 Config.Permissions.LockStaffNotes 옵션이 켜져 있는 상태입니다. 타이머가 종료되면 자동으로 사라집니다. 권한이 있는 직업은 Config.Permissions.StaffCanRemoveLocked가 true인 경우에만 만기 전에 제거할 수 있습니다.
Clear all과 /statusclear도 동일한 방식으로 작동합니다 — 호출자가 제거할 권한이 있는 항목만 제거하고 잠긴 항목은 유지합니다.
마커가 신체에 정확히 위치하지 않는 경우
마커는 매 프레임마다 본(bone) 좌표를 기준으로 투영되므로 펙(ped)을 정확히 따라가야 합니다.
Config.BodyParts의offset은 의도적으로 마커에 적용되지 않습니다 — 이는 월드에 띄워진 텍스트를 신체 위로 들어 올리기 위해 존재합니다. 만약 마커에 이를 적용하면 모든 점이 위로 표류하게 됩니다.- 특정 부위의 마커를 미세 조정하려면, 해당 신체 부위에만 선택 사항인
marker = { x = 0.0, y = 0.0, z = 0.04 }를 추가하세요. - 서버 부하가 높을 때 마커가 끊겨 보인다면
Config.Camera.HotspotRefresh를 조절하세요 — 이는 밀리초 단위의 새로 고침 간격이므로, 값이 높을수록 부하가 줄어들지만 부드러움은 떨어집니다.
캐릭터가 잘리거나, 너무 작거나, 중앙에서 벗어난 경우
Config.Camera.AutoFrame = true를 유지하고 대신 다음 설정을 조정하세요:
Fill— 캐릭터가 화면 높이에서 차지하는 비율입니다. 캐릭터가 답답하게 느껴지면 낮추세요.VerticalNudge— 양수 값은 캐릭터를 화면 아래로 이동시키고, 음수 값은 위로 이동시킵니다.SideOffset— 패널이 캐릭터를 가리지 않도록 펙을 왼쪽으로 얼마나 밀어낼지 설정합니다.Fov— 왜곡을 줄이려면 낮추고, 카메라는 뒤로 빼지 않으면서 신체를 더 많이 담으려면 높이세요.
Distance와 Height는 AutoFrame이 false일 때만 읽힙니다.
텍스트가 의류와 겹치는 경우
해당 신체 부위의 offset에서 z 값을 높이세요. 이 오프셋은 월드 텍스트에만 적용되며 패널에는 영향을 주지 않습니다.
다른 사람이 내 기록을 볼 수 없는 경우
- 상대방이
Config.Text.ViewDistance(기본값 6m) 내에 있어야 합니다. Config.Text.OnlyWhileAiming이 켜져 있는 경우, 조준 키를 누르고 있을 때만 보입니다.- 기록은
bupaStatuses플레이어 스테이트백(statebag)을 통해 전송됩니다. 세션 중간에 입장한 플레이어가 아무것도 보지 못한다면,oxmysql이 정상 작동 중이고 서버 콘솔에 데이터베이스 오류가 없는지 확인하세요.
"Character data is not loaded yet" 메시지가 나오는 경우
서버가 해당 플레이어의 시티즌 ID(citizen id)를 가져오지 못했습니다. QBox, QB-Core 및 ESX 환경에서는 캐릭터 로딩이 완료되지 않았음을 의미합니다. 리소스는 QBCore:Server:PlayerLoaded 및 esx:playerLoaded 이벤트에서 플레이어의 기록을 다시 불러옵니다.
재시작 후에도 기록이 다시 나타나는 경우
의도된 동작입니다 — 기록은 MySQL에 캐릭터의 시티즌 ID로 저장되며 시작 시 다시 불러와집니다. 만료된 항목은 매 Config.Duration.CleanupInterval초(최소 10초)마다 실행되는 정리 스레드에 의해 삭제됩니다.
"Slow down a moment" 메시지가 나오는 경우
Config.Limits.WriteCooldown(기본값 2초)은 작성 간격 사이에 발생하는 스팸 방지 딜레이입니다. 비활성화하려면 0으로 설정하세요.
| 메시지 | 원인 |
|---|---|
| Annotation limit reached | Config.Limits.MaxPerPlayer (기본값 4) |
| That body region already has an annotation | Config.Limits.OnePerBodyPart가 true인 경우 |
| Please write a valid annotation | <, >, ~ 문자를 제거하고 공백을 다듬은 후 텍스트가 비어 있는 경우 |
| Invalid body region | 신체 부위 ID가 Config.BodyParts에 없는 경우 |
설정 중에는 Config.Debug를 켜두세요. 모든 작성에 대한 로그를 출력하여 작성자, 대상, 부위 및 메모 잠금 여부를 보여줍니다.