Esempio n. 1
0
        private static void Process_String(Player client, string[] command)
        {
            if (client.Account.Permission < PlayerPermission.GM)
                return;
            if (command.Length < 2)
                client.SendMessage("Error: Proper format is /string Content");
            else
                client.SendToScreen(StringsPacket.Create(client.UID, StringAction.Fireworks, command[1]), true);


        }
        public void SendEnemyList(Player client)
        {
            for (var i = 0; i < 5; i++)
            {
                var targetGuild = GuildManager.GetGuild(_enemies[i]);
                if (targetGuild == null)
                {
                    continue;
                }

                targetGuild = targetGuild.MasterGuild;
                if (targetGuild != null)
                {
                    client.Send(StringsPacket.Create(targetGuild.Id, StringAction.SetEnemy, targetGuild.StringInfo));
                }
            }
        }
 public override void Run(Player _client, ConquerItem _item)
 {
     _client.SendToScreen(StringsPacket.Create(_client.UID, Enum.StringAction.Fireworks, _item.BaseItem.Name), true);
     _client.DeleteItem(_item);
 }
        public void SendMemberList(Player client)
        {
            StringsPacket packet = new StringsPacket();

            packet.Strings = new Packets.NetStringPacker();
            packet.Type    = StringAction.MemberList;
            packet.UID     = client.UID;

            if (client.GuildId <= 0)
            {
                return;
            }
            String        GL          = "";
            List <String> OnMembers   = new List <String>();
            List <String> OffMembers  = new List <String>();
            List <String> OnDeputies  = new List <String>();
            List <String> OffDeputies = new List <String>();

            var memberlist = Database.ServerDatabase.Context.GuildAttributes.GetMembers(client.GuildId);

            foreach (var entry in memberlist)
            {
                var member = Database.ServerDatabase.Context.Characters.GetByUID(entry.Id);

                if (entry.Rank == GuildRank.GuildLeader)
                {
                    GL = member.Name + Convert.ToChar(32) + member.Level + Convert.ToChar(32) + client.IsOnline(member.Name);
                }
                else if (entry.Rank == GuildRank.DeputyLeader)
                {
                    if (client.IsOnline(member.Name) == 1)
                    {
                        OnDeputies.Add(member.Name + Convert.ToChar(32) + member.Level + Convert.ToChar(32) + "1");
                    }
                    else
                    {
                        OffDeputies.Add(member.Name + Convert.ToChar(32) + member.Level + Convert.ToChar(32) + "0");
                    }
                }
                else
                {
                    if (client.IsOnline(member.Name) == 1)
                    {
                        OnMembers.Add(member.Name + Convert.ToChar(32) + member.Level + Convert.ToChar(32) + "1");
                    }
                    else
                    {
                        OffMembers.Add(member.Name + Convert.ToChar(32) + member.Level + Convert.ToChar(32) + "0");
                    }
                }
            }

            if (GL.EndsWith("1"))
            {
                packet.Strings.AddString(GL);
            }

            foreach (var dep in OnDeputies)
            {
                packet.Strings.AddString(dep);
            }

            foreach (var mem in OnMembers)
            {
                packet.Strings.AddString(mem);
            }

            if (GL.EndsWith("0"))
            {
                packet.Strings.AddString(GL);
            }

            foreach (var dep in OffDeputies)
            {
                packet.Strings.AddString(dep);
            }

            foreach (var mem in OffMembers)
            {
                packet.Strings.AddString(mem);
            }

            client.Send(packet);
        }
        public override void Run(Game_Server.Player _client, ushort _linkback)
        {
            Responses = new List <NpcDialogPacket>();
            AddAvatar();
            switch (_linkback)
            {
            case 0:
                AddText("I can help you to divorce your spouse. You just will have to agree to a divorce. I will also need a MeteorTear. If you have this item and you really want to get divorced, we will do it soon.");
                AddOption("Yes, I want a divorce.", 1);
                AddOption("Just passing by.", 255);
                break;

            case 1:
                if (_client.Spouse == Constants.DEFAULT_MATE)
                {
                    AddText("You really sure you want to divorce your spouse now? You will not regret later?");
                    AddOption("No I'll not. Let's do this.", 2);
                    AddOption("I prefer to remain married.", 255);
                }
                else
                {
                    AddText("Sorry, I can not divorce you if you are not married.");
                    AddOption("Okay.", 255);
                }
                break;

            case 2:
                AddText("Are you ready? Be sure you're with MeteorTear, I really need it.");
                AddOption("Yeah. I am ready.", 3);
                AddOption("Let me think it over.", 255);
                break;

            case 3:
                if (_client.Spouse == Constants.DEFAULT_MATE && _client.HasItem(Constants.METEOR_TEAR_ID))
                {
                    var dbSpouse = Database.ServerDatabase.Context.Characters.GetByName(_client.Spouse);
                    if (dbSpouse != null)
                    {
                        dbSpouse.Spouse = Constants.DEFAULT_MATE;
                        Database.ServerDatabase.Context.Characters.AddOrUpdate(dbSpouse);

                        var meteorTear = _client.GetItemByID(Constants.METEOR_TEAR_ID);
                        _client.RemoveItem(meteorTear);
                        meteorTear.DbItem.Owner = dbSpouse.UID;
                        meteorTear.Save();

                        var spouse = Managers.PlayerManager.GetUser(_client.Spouse);
                        if (spouse != null)
                        {
                            spouse.AddItem(meteorTear);
                            spouse.Send(ItemInformationPacket.Create(meteorTear));

                            //sanity check incase they log out while it's being saved above or something weird
                            spouse.Spouse = Constants.DEFAULT_MATE;
                            spouse.Send((StringsPacket.Create(spouse.UID, StringAction.Mate, Constants.DEFAULT_MATE)));
                        }

                        Managers.PlayerManager.SendToServer(new TalkPacket(ChatType.GM, "Unfortunately! " + _client.Name + " and " + _client.Spouse + " got divorced."));

                        _client.Spouse = Constants.DEFAULT_MATE;
                        _client.Save();
                        AddText("Done, you are now divorced. You are free to find another passion around. Be happy my friend.");
                        AddOption("Thank you.", 255);
                    }
                }
                else
                {
                    AddText("Sorry, I can not divorce you if you don't have a MeteorTear.");
                    AddOption("Okay.", 255);
                }
                break;
            }
            AddFinish();
            Send();
        }