コード例 #1
0
ファイル: fame.cs プロジェクト: Zeroeh/PrivateServerOld
        public void HandleRequest(HttpListenerContext context)
        {
            NameValueCollection query;
            using (StreamReader rdr = new StreamReader(context.Request.InputStream))
                query = HttpUtility.ParseQueryString(rdr.ReadToEnd());
            using (var db = new Database())
            {
                var acc = db.GetAccount(int.Parse(query["accountId"]));
                var chr = db.LoadCharacter(acc, int.Parse(query["charId"]));

                var cmd = db.CreateQuery();
                cmd.CommandText = @"SELECT time, killer, firstBorn FROM death WHERE accId=@accId AND chrId=@charId;";
                cmd.Parameters.AddWithValue("@accId", query["accountId"]);
                cmd.Parameters.AddWithValue("@charId", query["charId"]);
                int time;
                string killer;
                bool firstBorn;
                using (var rdr = cmd.ExecuteReader())
                {
                    rdr.Read();
                    time = Database.DateTimeToUnixTimestamp(rdr.GetDateTime("time"));
                    killer = rdr.GetString("killer");
                    firstBorn = rdr.GetBoolean("firstBorn");
                }

                using (StreamWriter wtr = new StreamWriter(context.Response.OutputStream))
                    wtr.Write(chr.FameStats.Serialize(acc, chr, time, killer, firstBorn));
            }
        }
コード例 #2
0
        public void GuildRemove(RealmTime t, GuildRemovePacket pkt)
        {
            string pname = pkt.Name;
            try
            {
                Player p = RealmManager.FindPlayer(pname);
                if (p != null && p.Guild == Guild)
                {
                    Database db = new Database();
                    Guild g = db.ChangeGuild(p.Client.Account, p.Client.Account.Guild.Id, p.GuildRank, true);
                    p.Guild = "";
                    p.GuildRank = 0;
                    p.Client.Account.Guild = g;
                    p.UpdateCount++;
                    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
                {
                    try
                    {
                        Database db = new Database();
                        Account other = db.GetAccount(pname);
                        if (other.Guild.Name == Guild)
                        {
                            db.ChangeGuild(other, other.Guild.Id, other.Guild.Rank, 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
                });
            }
        }
コード例 #3
0
 public void ChangeGuildRank(RealmTime t, ChangeGuildRankPacket pkt)
 {
     string pname = pkt.Name;
     int rank = pkt.GuildRank;
     if (GuildRank > 20)
     {
         Player other = RealmManager.FindPlayer(pname);
         if (other != null && other.Guild == Guild)
         {
             string rankname = ResolveRankName(other.GuildRank);
             string 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, 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 + "'s rank has been changed to " + rankname2 + "."
                 });
             }
         }
         else
         {
             try
             {
                 Database db = new Database();
                 Account acc = db.GetAccount(pname);
                 if (acc.Guild.Name == Guild)
                 {
                     string rankname = ResolveRankName(acc.Guild.Rank);
                     string rankname2 = ResolveRankName(rank);
                     db.ChangeGuild(acc, acc.Guild.Id, rank, false);
                     foreach (var p in RealmManager.GuildMembersOf(Guild))
                     {
                         p.Client.SendPacket(new TextPacket()
                         {
                             BubbleTime = 0,
                             Stars = -1,
                             Name = "",
                             Recipient = "*Guild*",
                             Text = acc.Name + "'s rank has been changed 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 Recruits cannot promote!"
         });
     }
 }