- All pending requests pile-up at the bottom left corner of the screen. - Maximum pending requests of any kind is 10. - Requests made by yourself are blue, and have the name of the person you requested from in them. - Requests made by others are white, and have the name of the person who requested you in them. - All requests are numbered and are to be referred to by these numbers to cancel, decline, ignore, or confirm. - Example: BLUE 4 - Requested to join KittyJon. WHITE 3 - Jarhead111 wants you to summon him. WHITE 2 - KittyJon wants you to summon him. BLUE 1 - Requested to summon Jarhead111. WHITE 0 - Jarhead111 wants you to join him. - The newest stays on the bottom of the list so that each request's index remains the same until it is taken care of. (Of course, all others will hopefully change when one is gotten rid of). - Two conflicting requests by the same user causes the older one to be omitted from the list, so in this case, the list would become: BLUE 3 - Requested to join KittyJon. WHITE 2 - KittyJon wants you to summon him. BLUE 1 - Requested to summon Jarhead111. WHITE 0 - Jarhead111 wants you to join him. - Of two parallel OR opposite (they request to be summoned, then to join you) requests by the same person, the oldest request would cancel out. Also, a request by you that is parallel to a request already made by the person you requested it of cancels out, and acts as a confirmation to the first request. For example, you say `join KittyJon, then KittyJon sends a request for you to join him. Both are omitted from the request queue and you join him automatically. - All pending requests last only to 30 seconds after they were made. After this time is up, the corresponding request is omitted from the request queue. - Confirmations, denials, and ignores can be done of incoming requests. Outgoing requests can only be cancelled. For these commands, you use the request ID's shown in the list. So the commands are: `confirm #, `decline #, `ignore # (basically denies without letting the sender know), and `cancel #. For example, say we wanted to cancel our request to summon Jarhead111, and to confirm his request to join him. We would then enter `cancel 1, and then `confirm 0. The list would then look like this: BLUE 1 - Requested to join KittyJon. WHITE 0 - KittyJon wants you to summon him. - Say we forgot that KittyJon wanted us to summon him and we typed `summon KittyJon. He would then be summoned automatically, and we would probably just cancel our request to join him since we joined Jarhead111. And thus the list is empty. - All notifications go in the chat box. This includes initial requests as well as cancellations, denials, and confirmations. Ignores will not leave notifications. - If the number of pending requests exceeds 10, the oldest is omitted from the queue. THE VARIABLES ------------- global.rq_type[ID] = 0[They summon you.], 1[They join you.], 2[You summon them.], 3[You join them.] global.rq_pid[ID] = ID of the player involved in the request that is not you. global.rq_timer[ID] = Time remaining for request ID's display. This is constantly reduced in each request until it reaches 0. Confirmations only work if this is > 0. //Nevermind. We won't need this one with the revisions below this block. //global.rq_orid[ID] = The ID of the request as it is seen in the requestee's client. This will be used to let them know that the request has been confirmed. global.rq_total = The total number of pending requests at the time. Be sure to subtract from this every time a pending request is cancelled, confirmed, declined, or runs out of time. The server gets from the sender: [byte] PID [byte] RQID: 0 - Summon, 1 - Join, 2 - Decline, or 3 - Cancel [byte] PID To The client sent to gets: [byte] PID From [byte] RQID: 0 - Summon, 1 - Join, 2 - Decline, or 3 - Cancel If you have requested a person to join you and they send an RQID of 0, that acts as a confirmation and they immediately join you. Same for you ask them to summon you and they send an RQID of 1. Only one request from each person can exist on the list, and only one request TO each person can exist on the list. If there is more than one from or to a certain person, the oldest cancels out of the list. So, because of the above rule, a decline will take out your single standing request to that person from the list. Cancels are basically the same, they just take out your single standing request FROM that person rather than one that is TO that person.