IS JRR
Introduction
The Join Request Reply packet is used to allow/reject join requests when ISF_JRR is set in IS_ISI, or to move existing cars.
| Type | Name | Description |
|---|---|---|
| byte | Size | 16 |
| byte | Type | ISP_JRR |
| byte | ReqI | 0 |
| byte | PLID | ZERO when this is a reply to a join request - SET to move a car |
| byte | UCID | set when this is a reply to a join request - ignored when moving a car |
| byte | JRRAction | 1 - allow / 0 - reject (should send message to user) |
| byte | Sp2 | |
| byte | Sp3 | |
| ObjectInfo | StartPos | 0: use default start point / Flags = 0x80: set start point |
Packet Details
Size
The size of the packet is always 16 bytes.
Type
The packet type from the ISP_ enumeration, always ISP_JRR.
ReqI
ReqI is always equal to zero.
PLID
Zero when this is a reply to a join request, or a real PLID to move an existing car.
UCID
Set when this is a reply to a join request, ignored when moving an existing car.
JRRAction
The action to perform, from the JRR_ enumeration.
Valid values for replies to join requests:
- JRR_REJECT: Reject the join request
- JRR_SPAWN: Accept the join request
Valid values for moving existing cars:
- JRR_RESET: Resets the cars (including repairs)
- JRR_RESET_NO_REPAIR: Resets the car without repairing it
StartPos
An ObjectInfo used to define the spawn/reset point. If it is filled with zeros, the default start point is used. Otherwise, it should have 0x80 for Flags, a 0 Index, and a position/heading to spawn the car.
Notes
You do not need to set ISF_JRR to teleport cars.
When ISF_JRR is set, you need to reply to join requests, which appear as IS_NPL packets with a NumP of zero. If you do not reply with an IS_JRR packet, the player will be able to join after a short delay. In this situation, only one player can join in the response delay, so crowded servers with frequent joins will have to queue.