示例#1
0
        /// <summary>
        /// Handling the GetSynAttr action from GeneralDataPacket.
        /// </summary>
        /// <param name="client">The client.</param>
        /// <param name="General">The GeneralDataPacket.</param>
        public static void Handle(Entities.GameClient client, GeneralDataPacket General)
        {
            client.LoadGuildInfo();

            Core.LoginHandler.Handle(client);

            client.Teleport(client.Map.MapID, client.X, client.Y);             // poor fix, but updates lastmap to proper ...
        }
示例#2
0
        public static void Handle(Entities.GameClient client, GuildPacket guild)
        {
            if (guild.Data == 0)
            {
                return;
            }
            if (guild.Data == client.EntityUID)
            {
                return;
            }

            if (client.ApplyGuildMemberUID == 0)
            {
                Entities.GameClient requestto;
                if (Core.Kernel.Clients.TrySelect(guild.Data, out requestto))
                {
                    if (!requestto.IsInMap(client))
                    {
                        return;
                    }

                    if (requestto.Guild != null && client.Guild == null)
                    {
                        if (requestto.GuildMemberInfo.Rank == Enums.GuildRank.DeputyLeader ||
                            requestto.GuildMemberInfo.Rank == Enums.GuildRank.GuildLeader)
                        {
                            requestto.ApplyGuildMemberUID = client.EntityUID;

                            using (var request = new Packets.GuildPacket(new Packets.StringPacker()))
                            {
                                request.Action = Enums.GuildAction.ApplyJoin;
                                request.Data   = client.EntityUID;
                                requestto.Send(request);
                            }
                        }
                    }
                }
                return;
            }

            if (client.ApplyGuildMemberUID != guild.Data)
            {
                return;
            }
            client.ApplyGuildMemberUID = 0;

            Entities.GameClient invitefrom;
            if (Core.Kernel.Clients.TrySelect(guild.Data, out invitefrom))
            {
                if (!invitefrom.IsInMap(client))
                {
                    return;
                }

                if (invitefrom.Guild != null && client.Guild == null)
                {
                    if (invitefrom.GuildMemberInfo.Rank == Enums.GuildRank.DeputyLeader ||
                        invitefrom.GuildMemberInfo.Rank == Enums.GuildRank.GuildLeader)
                    {
                        invitefrom.Guild.AddMember(client);
                        client.LoadGuildInfo();
                        //newclient.Screen.FullUpdate();
                    }
                }
            }
        }