User:Gshlvr/Guild
From The Mana World
This is how the guild system worked before it was removed from tmwa.
Server handling of guild packets from client
0x0165 CMSG_GUILD_CREATE
(map) clif_parse_CreateGuild // map/clif.cpp guild_create // map/guild.cpp guild_makemember // map/guild.cpp intif_guild_create -- 0x3030 // map/intif.cpp (char) mapif_parse_CreateGuild // char/int_guild.cpp mapif_guild_created -- 0x3830 // char/int_guild.cpp (map) intif_parse_GuildCreated // map/intif.cpp guild_created // map/guild.cpp clif_guild_created -- 0x167 (client) // map/clif.cpp (char) mapif_guild_info -- 0x3831 (map) intif_parse_GuildInfo // map/intif.cpp guild_recv_noinfo // map/guild.cpp None -- set guild_id to 0 guild_recv_info // map/guild.cpp clif_guild_basicinfo -- 0x01b6 // map/clif.cpp (client) clif_guild_emblem -- 0x0152 // map/clif.cpp (client) clif_guild_memberlist -- 0x0154 // map/clif.cpp (client) clif_guild_skillinfo -- 0x0162 // map/clif.cpp (client) clif_guild_belonginfo -- 0x016c // map/clif.cpp (client) clif_guild_notice -- 0x016f // map/clif.cpp (client)
0x0168 CMSG_GUILD_INVITE
(map) clif_parse_GuildInvite // map/clif.cpp guild_invite // map/guild.cpp clif_guild_inviteack -- 0x0169 // map/clif.cpp (client) clif_guild_invite -- 0x016a // map/clif.cpp (client)
0x016b CMSG_GUILD_INVITE_REPLY
clif_parse_GuildInviteReply // map/clif.cpp guild_reply_invite // map/guild.cpp clif_guild_inviteack --- 0x0169 // map/clif.cpp guild_makemember // map/guild.cpp intif_guild_addmember -- 0x3032 // map/intif.cpp mapif_parse_GuildAddMember // char/int_guild.cpp guild_calcinfo // char/int_guild.cpp mapif_guild_memberadded -- 0x3832 // char/int_guild.cpp intif_parse_GuildMemberAdded // map/intif.cpp guild_member_added // map/guild.cpp intif_guild_leave -- 0x3034 // map/intif.cpp clif_guild_inviteack -- 0x0169 // map/clif.cpp guild_check_conflict // map/guild.cpp guild_check_conflict_sub // map/guild.cpp mapif_parse_GuildLeave // map/intif.cpp >>> mapif_guild_info -- 0x3831 // char/int_guild.cpp intif_parse_guildInfo // map/intif.cpp guild_recv_noinfo // map/guild.cpp set guild_id to 0 guild_recv_info // map/guild.cpp clif_guild_basicinfo --- 0x01b6 // map/clif.cpp (client) clif_guild_emblem ------ 0x0152 // map/clif.cpp (client) clif_guild_memberlist -- 0x0154 // map/clif.cpp (client) clif_guild_skillinfo --- 0x0162 // map/clif.cpp (client) clif_guild_belonginfo -- 0x016c // map/clif.cpp (client) clif_guild_notice ------ 0x016f // map/clif.cpp
Client handling of guild packets from tmwa
0x0167 SMSG_GUILD_CREATE_RESPONSE
processGuildCreateResponse notify(GUILD_CREATED)[0] notify(GUILD_ALREADY)[1] notify(GUILD_ALREADY)[2] notify(GUILD_EMPERIUM_CHECK_FAILED)[3] notify(GUILD_ERROR)[default]
0x016c SMSG_GUILD_POSITION_INFO
processGuildPositionInfo setGuildPositionFlags(Invite) getGuild(guildID) if not guild, return setName(guildName) setEmblemId(emblem) {open guild tab} {if local player} set guild and guild name
0x016d SMSG_GUILD_MEMBER_LOGIN
processGuildMemberLogin {if they're in our guild} guildTab->showOnline(guildmember, online) socialWindow->updateGuildCounter()
0x014e SMSG_GUILD_MASTER_OR_MEMBER
unimplemented?
processguildMasterOrMember // net/ea/guildhandler.cpp msg.readInt32("type") {0x57 for member, 0xd7 for master}
0x01b6 SMSG_GUILD_BASIC_INFO
processGuildBasicInfo // net/ea/guildhandler.cpp {if guildTab && showBasicInfo} print a bunch of stuff to guild chat {get new or existing guild} g->setName g->setEmblemId
0x014c SMSG_GUILD_ALIANCE_INFO
unimplemented?
processGuildAllianceInfo // net/ea/guildhandler.cpp {if msg length < 4 } return msg.readInt32("opposition") msg.readInt32("guild id") msg.raedString(24, "guild name")
0x0154 SMSG_GUILD_MEMBER_LIST
hair and hair color are skipped as well as the 50 bytes at the end of the packet
processGuildMemberList // net/ea/guildhandler.cpp {if msg len < 4 } return { if !taGuild } return taGuild->clearMembers() {create a guild member and add to taGuild} { if guild member } setOnline(online) setID(id) setCharId(charId) setGender(intToGender(gender)) setLevel(level) setExp(exp) setPos(pos) setRace(race) { if player can be found and their level != 'level' } being->setLevel(level) being->updateName() increment onlineNum increment totalNum taGuild->sort() { if actorManager } updatePlayerGuild() updatePlayerColors() { if socialWindow } updateGuildCounter(onlineNum, totalNum)
0x0166 SMSG_GUILD_POS_NAME_LIST
processGuildPosNameList // net/ea/guildhandler.cpp { if !taGuild } return { if msg len < 4 } return taGuild->addPos(id, name)
0x0160 SMSG_GUILD_POS_INFO_LIST
unimplemented?
processGuildPosInfoList // net/ea/guildhandler.cpp { if msg len < 4 } return msg.readInt32("id") msg.readInt32("mode") msg.readInt32("same id") msg.readInt32("exp mode")
0x0174 SMSG_GUILD_POSITION_CHANGED
unimplemented?
processGuildPositionChanged // net/ea/guildhandler.cpp msg.readInt16("len") msg.readInt32("id") msg.readInt32("mode") msg.readInt32("same ip") msg.readInt32("exp mode") msg.readString(24, "name")
0x0156 SMSG_GUILD_MEMBER_POS_CHANGE
unimplemented?
message length is skipped
processGuildPositionChanged // net/ea/guildhandler.cpp { if guild member(accountId, charId) exists } setPos(pos)
0x0152 SMSG_GUILD_EMBLEM_DATA
unimplemented?
processGuildEmblemData // net/ea/guildhandler.cpp length = "len" msg.readInt32("guild id") msg.readint32("emblem id") { if length < 12 } return msg.skip(length - 12, "emblem data")
0x0162 SMSG_GUILD_SKILL_INFO
skill points is unused
processGuildSkillInfo // net/ea/guildhandler.cpp count = "len" - 6 / 37 { if skillDialog } hideSkills(SkillOwner::Guild) { try updating the skill } { if that failed, add the skill } { if skillDialog } skillDialog->updateModels()
0x016f SMSG_GUILD_NOTICE
processGuildNotice // net/ea/guildhandler.cpp msg1 = "msg1" msg2 = "msg2" { if guildTab } chatLog(msg1, BY_SERVER) chatLog(msg2, BY_SERVER)
0x016a SMSG_GUILD_INVITE
processGuildInvite // net/ea/guildhandler.cpp guildId = "guild id" guildName = "guild name" { if socialWindow } showGuildInvite(guildName, guildId, "")
0x0169 SMSG_GUILD_INVITE_ACK
processGuildInviteAck // net/ea/guildhandler.cpp notify(GUILD_INVITE_FAILED) [0] notify(GUILD_INVITE_REJECTED) [1] notify(GUILD_INVITE_JOINED) [2] notify(GUILD_INVITE_FULL) [3] notify(GUILD_INVITE_ERROR) [default]
0x015a SMSG_GUILD_LEAVE
0x015c SMSG_GUILD_EXPULSION
0x0163 SMSG_GUILD_EXPULSION_LIST
0x017f SMSG_GUILD_MESSAGE
0x010e SMSG_GUILD_SKILL_UP
unimplemented?
processGuildSkillUp // net/ea/guildhandler.cpp msg.readInt16("skill id") msg.readInt16("level") msg.readInt16("sp") msg.readInt16("range") msg.readUInt8("unused?")
0x0171 SMSG_GUILD_REQ_ALLIANCE
Implementation not planned at this time
0x0173 SMSG_GUILD_REQ_ALLIANCE_ACK
Implementation not planned at this time
0x0184 SMSG_GUILD_DEL_ALLIANCE
Implementation not planned at this time
0x0181 SMSG_GUILD_OPPOSITION_ACK
Implementation not planned at this time
0x015e SMSG_GUILD_BROKEN
unimplemented?
processGuildBroken msg.readInt32("flag")