Ejemplo n.º 1
0
        public static DataTable ToDataTable(this IEnumerable <IAvatar> avatars)
        {
            DataTable dt = new DataTable();

            dt.Columns.Add("ID", typeof(int));
            dt.Columns.Add("Name", typeof(String));
            dt.Columns.Add("Race", typeof(String));
            dt.Columns.Add("Gender", typeof(Gender));
            dt.Columns.Add("Health", typeof(int));
            dt.Columns.Add("HealthMax", typeof(int));
            dt.Columns.Add("Willpower", typeof(int));
            dt.Columns.Add("WillpowerMax", typeof(int));
            dt.Columns.Add("X", typeof(int));
            dt.Columns.Add("Y", typeof(int));
            dt.Columns.Add("Z", typeof(int));
            dt.Columns.Add("Type", typeof(ObjectType));
            dt.Columns.Add("Level", typeof(int));
            dt.Columns.Add("IsOnline", typeof(bool));
            dt.Columns.Add("HouseholdName", typeof(String));
            dt.Columns.Add("HouseholdImageUri", typeof(String));
            dt.Columns.Add("RankName", typeof(String));
            dt.Columns.Add("RankImageUri", typeof(String));
            dt.Columns.Add("Zone", typeof(String));

            foreach (var avatar in avatars)
            {
                DataRow dr = dt.NewRow();
                dr["ID"]           = avatar.ID;
                dr["Name"]         = avatar.Name;
                dr["Race"]         = avatar.Race;
                dr["Gender"]       = avatar.Gender;
                dr["Health"]       = avatar.Body;
                dr["HealthMax"]    = avatar.BodyMax;
                dr["Willpower"]    = avatar.Mind;
                dr["WillpowerMax"] = avatar.MindMax;
                dr["X"]            = avatar.X;
                dr["Y"]            = avatar.Y;
                dr["Z"]            = avatar.Z;
                dr["Type"]         = avatar.ObjectType;
                dr["Level"]        = avatar.Properties.GetValue <int>(PerenthiaAvatar.LevelProperty);
                dr["IsOnline"]     = Game.Server.World.IsAvatarOnline(avatar);

                if (avatar is IPlayer)
                {
                    var player = avatar as IPlayer;
                    dr["HouseholdName"]     = player.Household.HouseholdName;
                    dr["HouseholdImageUri"] = player.Household.HouseholdImageUri;
                    dr["RankName"]          = player.Household.RankName;
                    dr["RankImageUri"]      = player.Household.RankImageUri;
                }

                MapManager.MapDetail detail = Game.Server.World.Map.GetDetail(avatar.Location);
                if (detail != null)
                {
                    dr["Zone"] = detail.Name;
                }
                dt.Rows.Add(dr);
            }
            return(dt);
        }
Ejemplo n.º 2
0
        public void Resurrect(IAvatar avatar)
        {
            avatar.SetBody(avatar.BodyMax);
            avatar.SetMind(avatar.MindMax);
            avatar.Context.Add(new RdlSystemMessage(RdlSystemMessage.PriorityType.Positive, "You have been resurrected!"));
            avatar.Context.AddRange(avatar.GetRdlProperties(
                                        Avatar.BodyProperty,
                                        Avatar.BodyMaxProperty,
                                        Avatar.MindProperty,
                                        Avatar.MindMaxProperty));

            this.Enter(avatar, Direction.Empty);
            // Don't want to send down the whole map. Just send down the zone.
            //avatar.Context.AddRange(this.World.GetRdlMap(avatar.X, avatar.Y));

            Character player = avatar as Character;

            if (player != null)
            {
                MapManager.MapDetail detail = this.World.Map.GetDetail(player.Location);
                if (detail != null)
                {
                    string zone = player.Properties.GetValue <string>(Character.ZoneProperty);
                    if (detail.Name != zone)
                    {
                        player.Properties.SetValue(Character.ZoneProperty, detail.Name);
                        player.Context.Add(new RdlProperty(player.ID, Character.ZoneProperty, zone));
                    }
                }
            }
        }
Ejemplo n.º 3
0
 /// <summary>
 /// Saves the specified map details.
 /// </summary>
 /// <param name="map">The map detail t save.</param>
 public abstract void SaveMap(MapManager.MapDetail map);
Ejemplo n.º 4
0
        public static AvatarData ToServiceObject(this IAvatar avatar, bool includeSkills)
        {
            var obj = new AvatarData();

            obj.ID           = avatar.ID;
            obj.Gender       = avatar.Gender.ToString();
            obj.Health       = avatar.Body;
            obj.HealthMax    = avatar.BodyMax;
            obj.IsOnline     = Game.Server.World.IsAvatarOnline(avatar);
            obj.Name         = avatar.Name;
            obj.Race         = avatar.Race;
            obj.Type         = (int)avatar.ObjectType;
            obj.Willpower    = avatar.Mind;
            obj.WillpowerMax = avatar.MindMax;
            obj.X            = avatar.X;
            obj.Y            = avatar.Y;
            obj.Z            = avatar.Z;
            obj.Level        = avatar.Properties.GetValue <int>(PerenthiaAvatar.LevelProperty);

            if (includeSkills)
            {
                List <NameValuePair> skills = new List <NameValuePair>();
                foreach (var skill in avatar.Skills)
                {
                    skills.Add(new NameValuePair {
                        Name = skill.Key, Value = (int)skill.Value
                    });
                }
                obj.Skills = skills.ToArray();
            }

            if (avatar is Character)
            {
                Character c = avatar as Character;
                if (c.Household != null)
                {
                    obj.HouseholdImageUri = c.Household.HouseholdImageUri;
                    obj.HouseholdName     = c.Household.HouseholdName;
                    obj.RankImageUri      = c.Household.RankImageUri;
                    obj.RankName          = c.Household.RankName;
                    obj.RankOrder         = c.Household.RankOrder;
                }
                //List<AwardData> awards = new List<AwardData>();
                //foreach (var a in c.Awards)
                //{
                //    awards.Add(new AwardData
                //    {
                //        Name = a.Name,
                //        ImageUri = String.Concat(ConfigurationManager.AppSettings["MediaUri"], a.ImageUri),
                //        Type = a.ObjectType
                //    });
                //}
                //obj.Awards = awards.ToArray();
            }

            MapManager.MapDetail detail = Game.Server.World.Map.GetDetail(avatar.Location);
            if (detail != null)
            {
                obj.Zone = detail.Name;
            }
            return(obj);
        }