구역 생성기
구역을 실제 위치에 그대로 그립니다. 로스산토스 지도나 3D 월드에서 점을 찍고, 실제 지면에 맞춰 위아래 두 높이를 정한 다음 ox_lib zones, PolyZone, ox_target, qb-target용 바로 쓸 수 있는 코드를 복사하세요. 점만 Lua 테이블이나 JSON으로 가져갈 수도 있습니다. 기존 구역을 붙여 넣어 수정하고, 전체를 링크로 공유할 수 있습니다.
이 도구와 설명은 아직 영어로만 제공됩니다.
Drawing the zone
- Add points drops a corner wherever you click. Edit moves them: drag a corner, drag an edge to add a corner there, drag inside the shape to move the whole zone. Right click a corner to delete it.
Ctrl+Zundoes,Ctrl+Yredoes. Every drag counts as one step.- The 3D view draws the zone as the solid it really is, the prism between minZ and maxZ, so you can see whether it clears a counter or cuts through a roof. Drag the two flat discs in the middle to set the heights.
- Switching shape keeps the zone where it is, so a polygon you drew becomes a box in the same spot.
Heights
minZandmaxZare world z, the same numbersGetEntityCoordsgives you. The panel shows the ground height under the zone, read from the same height grid the map uses.- A band from about a metre below the floor to two metres above covers a player standing there. Go wider if people arrive in a car or the floor is not flat.
- A sphere has no band: it is a ball around its centre, so it uses the centre z and the radius instead.
What each output is
| Output | What it gives you |
|---|---|
| ox_lib | lib.zones.poly, .box or .sphere with onEnter, onExit and inside stubbed. |
| PolyZone | PolyZone:Create, BoxZone:Create or CircleZone:Create with an onPlayerInOut handler. |
| ox_target | The same zone as an interaction: addPolyZone, addBoxZone or addSphereZone with one option that fires a client event. |
| qb-target | AddPolyZone, AddBoxZone or AddCircleZone with the matching targetoptions table. |
| Lua table / JSON | Just the numbers, for your own inside test or a library not listed here. |
Each tab says which version of the library it was written against, and the comments at the top of every snippet list the fxmanifest lines that library needs.
Shapes the libraries do not have
- ox_lib has no cylinder, so a circle is written as a sixteen sided polygon with a thickness.
- PolyZone's
CircleZonetakes no minZ or maxZ. WithuseZ = falseit tests x and y only, which is a cylinder with no top and no bottom; withuseZ = trueit is a ball. If the height matters there, use a polygon.
Bringing a zone back
Paste a zone from any of the four libraries, the JSON from this tool, or just a list of vector2 orvector3 lines, and it lands on the map ready to edit. Callbacks and target options are not read back, only the shape and the heights.
Limits
- One zone at a time. Combining several into a
ComboZoneis something you do in your own code. - A self intersecting polygon is flagged and drawn, but no library can test it correctly. Fix the crossing before you ship it.
- Everything runs in your browser. Nothing is uploaded and nothing is saved on a server.
