Server/Game/guild.cpp
DWORD gid = GetID();
TPacketGCGuild p;
p.header = HEADER_GC_GUILD;
p.size = sizeof(p) + sizeof(DWORD) + GUILD_NAME_MAX_LEN + 1 + CHARACTER_NAME_MAX_LEN + 1;
p.subheader = GUILD_SUBHEADER_GC_GUILD_INVITE;
TEMP_BUFFER buf;
buf.write( &p, sizeof(p) );
buf.write( &gid, sizeof(DWORD) );
buf.write( GetName(), GUILD_NAME_MAX_LEN + 1 );
buf.write( pchInviter->GetName(), CHARACTER_NAME_MAX_LEN + 1 ); // send inviter name
pchInvitee->GetDesc()->Packet( buf.read_peek(), buf.size() );
Client/UserInterface/PythonNetworkStreamPhaseGame.cpp
case GUILD_SUBHEADER_GC_GUILD_INVITE:
{
DWORD dwGuildID;
if (!Recv(sizeof(dwGuildID), &dwGuildID))
return false;
char szGuildName[GUILD_NAME_MAX_LEN+1];
if (!Recv(sizeof(szGuildName), &szGuildName))
return false;
char szInviterName[CHARACTER_NAME_MAX_LEN+1];
if (!Recv(sizeof(szInviterName), &szInviterName))
return false;
szGuildName[GUILD_NAME_MAX_LEN] = 0;
szInviterName[CHARACTER_NAME_MAX_LEN] = 0;
PyCallClassMemberFunc(m_apoPhaseWnd[PHASE_WINDOW_GAME], "RecvGuildInviteQuestion", Py_BuildValue("(iss)", dwGuildID, szGuildName, szInviterName));
Tracef(" <Guild Invite> %d, %s, %s\n", dwGuildID, szGuildName, szInviterName);
break;
}
root/game.py
## Guild
def RecvGuildInviteQuestion(self, guildID, guildName, inviterName):
guildInviteQuestionDialog = uicommon.QuestionDialog()
guildInviteQuestionDialog.SetText(localeInfo.GUILD_DO_YOU_JOIN_NEW % (inviterName, guildName))
guildInviteQuestionDialog.SetAcceptEvent(lambda arg=True: self.AnswerGuildInvite(arg))
guildInviteQuestionDialog.SetCancelEvent(lambda arg=False: self.AnswerGuildInvite(arg))
guildInviteQuestionDialog.Open()
guildInviteQuestionDialog.guildID = guildID
self.guildInviteQuestionDialog = guildInviteQuestionDialog
locale_game.txt
GUILD_DO_YOU_JOIN_NEW %s has invited you to %s. Do you want to join?