Guilds
From SWGANH Wiki
A short guide from the packet perspective on to how to tie the many systems of the swg client together to achieve guilds.
Step1: The Setup
- When each player zones into a region regardless if they are part of a guild or not they get the GILD 3. It contains a list of all the guild id and tags for every guild on the server. This packet can sometimes get very large but its used so that when someone has a guild tag displayed you see it. How this works is that when a player is a member of a guild there is a variable in the CREO6 that contains the id of the guild they belong too. It uses the information in the GILD3 to know what tag to display next to their name.
Step2: Creating the guild
- Player brings up guild terminal's radial and sever checks to see if it has been associated with a guild yet. If finds that it has not and returns the "create guild" radial. SERVER SENDS ObjController 147h with OptionID 7(EXAMINE) and OptionID 185 (@guild:menu_create).
- Player clicks on "create guild". CLIENT SENDS ObjectMenuSelectMessage with button id 185.
- The SERVER SENDS SuiCreatePageMessage:Script.inputBox onGuildCreateNameResponse. This displays a small box to the player asking them to enter a name for their guild.
- Player enters a name and presses the OK button. CLIENT SENDS SuiEventNotification with the window ID and the submitted name.
- The server then quickly checks to make sure no other guilds exist with this name and that it doesn't contain any profanity or starwars faction names. Everything checks out and the SERVER SENDS SuiCreatePageMessage:Script.inputBox onGuildCreateAbbrevResponse. This displays a small box to the player asking them to enter a <tag> for their guild(max 5 characters).
- Player enters a tag and presses the OK button. CLIENT SENDS SuiEventNotification with the window ID and the submitted tag.
- The server then creates the guild adding the guild to the database and generating a unique id for the guild. The server then creates a guild chat room. A system message is then sent to the player telling them they successfully created the guild. SERVER SENDS DeltasMessage with GILD3 vID4 that inserts the guilds tag and id into the guild list for the server. SERVER SENDS DeltasMessage with CREO6 vID10 that places the <tag> next to the player's name. SERVER SENDS chat room packets that puts the player into the guild chat. On the server side it sets full rights to this player as they are the guild creator.
Step3: Inviting members
- Player brings up guild terminal's radial and sever checks to see if there are any sponsored members. It finds that there are none and returns the "create guild" radial. SERVER SENDS ObjController 147h with These Options. NOTE: The sponsored button is mission because no one has been sponsored yet.
- Player clicks on "sponsor player". CLIENT SENDS ObjectMenuSelectMessage with button id 190.
- The SERVER SENDS SuiCreatePageMessage:Script.inputBox onGuildSponsorResponse. This displays a small box to the player asking them to enter the full name of the person they wish to sponsor.