コード例 #1
0
 public void JoinGuild(RealmTime t, JoinGuildPacket pkt)
 {
     var db = new Database();
     var gStruct = db.GetGuild(pkt.GuildName);
     if (psr.Player.Invited == false)
     {
         SendInfo("You need to be invited to join a guild!");
     }
     if (gStruct != null)
     {
         var g = db.ChangeGuild(psr.Account, gStruct.Id, 0, 0, false);
         if (g != null)
         {
             psr.Account.Guild = g;
             Guild = g.Name;
             GuildRank = g.Rank;
             UpdateCount++;
             foreach (var p in RealmManager.GuildMembersOf(g.Name))
             {
                 p.Client.SendPacket(new TextPacket()
                 {
                     BubbleTime = 0,
                     Stars = -1,
                     //Name = "@" + psr.Account.Name + " has joined the guild!"
                     Name = "",
                     Recipient = "*Guild*",
                     Text = psr.Account.Name + " has joined the guild!"
                 });
             }
         }
     }
 }
コード例 #2
0
 public void ChangeGuildRank(RealmTime t, ChangeGuildRankPacket pkt)
 {
     var pname = pkt.Name;
     var rank = pkt.GuildRank;
     if (GuildRank >= 20)
     {
         var other = RealmManager.FindPlayer(pname);
         if (other != null && other.Guild == Guild)
         {
             var rankname = ResolveRankName(other.GuildRank);
             var rankname2 = ResolveRankName(rank);
             other.GuildRank = rank;
             other.Client.Account.Guild.Rank = rank;
             new Database().ChangeGuild(other.Client.Account, other.Client.Account.Guild.Id, other.GuildRank, other.Client.Account.Guild.Fame, false);
             other.UpdateCount++;
             foreach (var p in RealmManager.GuildMembersOf(Guild))
             {
                 p.Client.SendPacket(new TextPacket()
                 {
                     BubbleTime = 0,
                     Stars = -1,
                     Name = "",
                     Recipient = "*Guild*",
                     Text = other.Client.Account.Name + " has been demoted to " + rankname2 + "."
                 });
             }
         }
         else
         {
             try
             {
                 var db = new Database();
                 var acc = db.GetAccount(pname);
                 if (acc.Guild.Name == Guild)
                 {
                     var rankname = ResolveRankName(acc.Guild.Rank);
                     var rankname2 = ResolveRankName(rank);
                     db.ChangeGuild(acc, acc.Guild.Id, rank, acc.Guild.Fame, false);
                     foreach (var p in RealmManager.GuildMembersOf(Guild))
                     {
                         p.Client.SendPacket(new TextPacket()
                         {
                             BubbleTime = 0,
                             Stars = -1,
                             Name = "",
                             Recipient = "*Guild*",
                             Text = acc.Name + " has been promoted to " + rankname2 + "."
                         });
                     }
                 }
                 else
                 {
                     psr.SendPacket(new TextPacket()
                     {
                         BubbleTime = 0,
                         Stars = -1,
                         Name = "*Error*",
                         Text = "You can only change a player in your guild."
                     });
                 }
             }
             catch (Exception e)
             {
                 psr.SendPacket(new TextPacket()
                 {
                     BubbleTime = 0,
                     Stars = -1,
                     Name = "*Error*",
                     Text = e.Message
                 });
             }
         }
     }
     else
     {
         psr.SendPacket(new TextPacket()
         {
             BubbleTime = 0,
             Stars = -1,
             Name = "",
             Text = "Members and initiates cannot promote!"
         });
     }
 }
コード例 #3
0
        public void GuildRemove(RealmTime t, GuildRemovePacket pkt)
        {
            var pname = pkt.Name;
            try
            {
                var p = RealmManager.FindPlayer(pname);
                if (p != null && p.Guild == Guild)
                {
                    var db = new Database();
                    var g = db.ChangeGuild(p.Client.Account, p.Client.Account.Guild.Id, p.GuildRank, p.Client.Account.Guild.Fame, true);
                    p.Guild = "";
                    p.GuildRank = 0;
                    p.Client.Account.Guild = g;
                    p.UpdateCount++;
                    if (p != this)
                    {
                        p.SendGuild("You have been kicked from the guild.");
                        foreach (var pl in RealmManager.GuildMembersOf(Guild))
                            pl.SendGuild(p.nName + " has been kicked from the guild by " + nName + ".");
                    }
                    else
                    {
                        p.SendGuild("You have left the guild.");
                        foreach (var pl in RealmManager.GuildMembersOf(Guild))
                            pl.SendGuild(nName + " has left the guild.");
                    }
                }
                else
                {
                    try
                    {
                        var db = new Database();
                        var other = db.GetAccount(pname);
                        if (other.Guild.Name == Guild)
                        {
                            db.ChangeGuild(other, other.Guild.Id, other.Guild.Rank, other.Guild.Fame, true);
                            foreach (var pl in RealmManager.GuildMembersOf(Guild))
                                pl.SendGuild(pname + " has been kicked from the guild by " + nName + ".");
                        }
                    }
                    catch (Exception e)
                    {
                        psr.SendPacket(new TextPacket()
                        {
                            BubbleTime = 0,
                            Stars = -1,
                            Name = "*Error*",
                            Text = e.Message
                        });
                    }
                }

            }
            catch (Exception e)
            {
                psr.SendPacket(new TextPacket()
                {
                    BubbleTime = 0,
                    Stars = -1,
                    Name = "*Error*",
                    Text = e.Message
                });
            }
        }
コード例 #4
0
ファイル: Player.Guilds.cs プロジェクト: xzyio/Rotmg-PServer
 public void CreateGuild(RealmTime t, CreateGuildPacket pkt)
 {
     bool GuildsActive = true;
     if (GuildsActive == false)
     {
         psr.SendPacket(new CreateGuildResultPacket()
         {
             Success = false,
             ResultMessage = "Guilds currently disabled!"
         });
         return;
     }
     else
     {
         try
         {
             string name = pkt.Name.ToString();
             if (psr.Account.Stats.Fame >= 1000 || Guild != "")
             {
                 if (name != "")
                 {
                     if (new Database().GetGuild(name) != null)
                     {
                         psr.SendPacket(new CreateGuildResultPacket()
                         {
                             Success = false,
                             ResultMessage = "Guild already exists!"
                         });
                         return;
                     }
                     using (Database db1 = new Database())
                     {
                         try
                         {
                             if (Guild != "")
                             {
                                 string oldname = psr.Account.Guild.Name;
                                 Guild g = db1.ChangeGuild(psr.Account, db1.GetGuildId(psr.Account.Guild.Name), 0, true);
                                 psr.Account.Guild.Name = g.Name;
                                 psr.Account.Guild.Rank = 0;
                                 Guild = g.Name;
                                 GuildRank = 0;
                                 UpdateCount++;
                                 psr.SendPacket(new NotificationPacket()
                                 {
                                     Text = "Left guild " + oldname,
                                     Color = new ARGB(0xFF008800),
                                     ObjectId = Id
                                 });
                                 psr.SendPacket(new CreateGuildResultPacket()
                                 {
                                     Success = true
                                 });
                                 foreach (var i in RealmManager.Worlds)
                                 {
                                     if (i.Key != 0)
                                     {
                                         foreach (var e in i.Value.Players)
                                         {
                                             if (e.Value.Client.Account.Guild.Name == oldname)
                                             {
                                                 e.Value.Client.SendPacket(new TextPacket()
                                                 {
                                                     BubbleTime = 0,
                                                     Stars = -1,
                                                     Name = "",
                                                     Recipient = "*Guild*",
                                                     Text = psr.Account.Name + " has left the guild!"
                                                 });
                                             }
                                         }
                                     }
                                 }
                                 return;
                             }
                             else
                             {
                                 if (pkt.Name != "")
                                 {
                                     Guild g = db1.CreateGuild(psr.Account, pkt.Name);
                                     psr.Account.Guild.Name = g.Name;
                                     psr.Account.Guild.Rank = g.Rank;
                                     Guild = g.Name;
                                     GuildRank = g.Rank;
                                     psr.SendPacket(new NotificationPacket()
                                     {
                                         Text = "Created guild " + g.Name,
                                         Color = new ARGB(0xFF008800),
                                         ObjectId = Id
                                     });
                                     psr.SendPacket(new CreateGuildResultPacket()
                                     {
                                         Success = true,
                                         ResultMessage = "Success!"
                                     });
                                     CurrentFame = psr.Account.Stats.Fame = psr.Database.UpdateFame(psr.Account, -1000);
                                     UpdateCount++;
                                     return;
                                 }
                                 else
                                 {
                                     psr.SendPacket(new CreateGuildResultPacket()
                                     {
                                         Success = false,
                                         ResultMessage = "Guild name cannot be blank!"
                                     });
                                     return;
                                 }
                             }
                         }
                         catch (Exception e)
                         {
                             psr.SendPacket(new CreateGuildResultPacket()
                             {
                                 Success = false,
                                 ResultMessage = e.Message
                             });
                             return;
                         }
                     }
                 }
                 else
                 {
                     psr.SendPacket(new CreateGuildResultPacket()
                     {
                         Success = false,
                         ResultMessage = "Name cannot be empty!"
                     });
                 }
             }
             else
             {
                 psr.SendPacket(new CreateGuildResultPacket()
                 {
                     Success = false,
                     ResultMessage = "Not enough fame!"
                 });
             }
         }
         catch (Exception)
         {
             Console.WriteLine("Error at line 755 of Player.cs");
             psr.SendPacket(new TextPacket()
             {
                 Name = "",
                 Stars = -1,
                 BubbleTime = 0,
                 Text = "Error creating guild!"
             });
         }
     }
 }