Example #1
0
        /// <summary>
        /// Creates a new npc and spawns it.
        /// </summary>
        /// <param name="id">The id of the npc.</param>
        /// <param name="name">The name of the npc.</param>
        /// <param name="location">The location of the npc.</param>
        /// <param name="mesh">The mesh of the npc.</param>
        /// <param name="avatar">The avatar of the npc.</param>
        /// <param name="npctype">The type of the npc.</param>
        /// <param name="flag">The flat of the npc.</param>
        public static void CreateNPC(uint id, string name, Maps.MapPoint location, ushort mesh, byte avatar, Enums.NPCType npctype = Enums.NPCType.Normal, ushort flag = 2)
        {
            Entities.NPC npc = new ProjectX_V3_Game.Entities.NPC();

            npc.EntityUID = id;
            npc.Mesh = (ushort)(mesh * 10);
            npc.Flag = flag;
            npc.Name = name;
            npc.X = location.X;
            npc.Y = location.Y;
            npc.NPCType = npctype;
            npc.Avatar = avatar;

            if (!location.Map.EnterMap(npc))
            {
                return;
            }

            if (Core.Kernel.NPCs.TryAdd(npc.EntityUID, npc))
            {
                IniFile npcini = new IniFile(ServerDatabase.DatabaseLocation + "\\NPCInfo\\" + id + ".ini", "Info");
                npcini.WriteString("Name", name);
                npcini.WriteString("Type", npctype.ToString());
                npcini.Write<ushort>("MapID", location.MapID);
                npcini.Write<ushort>("X", location.X);
                npcini.Write<ushort>("Y", location.Y);
                npcini.Write<ushort>("Flag", flag);
                npcini.Write<ushort>("Mesh", mesh);
                npcini.Write<byte>("Avatar", avatar);

                npc.Screen.UpdateScreen(null);
            }
        }
Example #2
0
        /// <summary>
        /// Adds a new map to the database and server.
        /// </summary>
        /// <param name="mapid">The new map id.</param>
        /// <returns>Returns true if the map was added.</returns>
        public static bool AddMap(ushort mapid)
        {
            string name = "UnknownMap" + ProjectX_V3_Lib.ThreadSafe.RandomGenerator.Generator.Next();
            Maps.Map map = new ProjectX_V3_Game.Maps.Map(mapid, name);
            Enums.MapTypeFlags flag = Enums.MapTypeFlags.Normal;
            if (!map.Flags.TryAdd((ulong)flag, flag))
                return false;
            map.MapType = Enums.MapType.Normal;

            IniFile ini = new IniFile(Database.ServerDatabase.DatabaseLocation + "\\MapInfo\\" + mapid + ".ini", "MapInfo");
            ini.Write<ushort>("ID", mapid);
            ini.WriteString("Name", name);
            ini.WriteString("MapType", "Normal");
            ini.SetSection("Flags");
            ini.Write<int>("Count", 1);
            ini.WriteString("0", "Normal");

            return Core.Kernel.Maps.TryAddAndDismiss(mapid, name, map);
        }
Example #3
0
 public void NewFile()
 {
     const string fileName = "NewFile.ini";
     using (IniFile ini = new IniFile(fileName)) {
         ini.WriteString("foo", "bar", "qux");
         Assert.AreEqual("qux", ini.ReadString("foo", "bar"));
     }
     Assert.IsTrue(File.Exists(fileName));
     File.Delete(fileName);
 }
Example #4
0
        protected override void ExecuteTask() {
            string whatImDoing = String.Format("Setting {0}/{1}={2} in file: {3}", 
                                    Section, Key, Value, FileName);

            // display build log message
            Log(Level.Verbose,  LogPrefix + whatImDoing);

            // perform operation
            try {
                IniFile iniFile = new IniFile(FileName);
                iniFile.WriteString(Section, Key, Value);
            }
            catch (Exception e) {
                throw new BuildException("Failed: " + whatImDoing,Location,e);
            }
        }
 /// <summary>
 /// Sets the login info of the character or creates the base character file if first time logging in.
 /// </summary>
 /// <param name="client">The client.</param>
 /// <param name="Account">The account.</param>
 /// <param name="DatabaseUID">The database UID.</param>
 /// <param name="EntityUID">The entity UID.</param>
 public static void SetLoginOrCreate(SocketClient client, string Account, int DatabaseUID, uint EntityUID)
 {
     IniFile characterfile = new IniFile(DatabaseLocation + "\\Characters\\" + DatabaseUID + ".ini", "Character");
     if (!characterfile.Exists())
         characterfile.Write<bool>("New", true);
     characterfile.WriteString("Account", Account);
     characterfile.Write<uint>("LastEntityUID", EntityUID);
 }
Example #6
0
 private static void WriteStringKey(string key, string value,
                             string firstvalue)
 {
     using (IniFile ini = new IniFile(fileName)) {
         Assert.AreEqual(firstvalue, ini.ReadString("Section1", key));
         ini.WriteString("Section1", key, value);
         Assert.AreEqual(value, ini.ReadString("Section1", key));
     }
     using (IniFile ini = new IniFile(fileName)) {
         Assert.AreEqual(value, ini.ReadString("Section1", key));
     }
 }
Example #7
0
 public void WriteStringNoSection()
 {
     using (IniFile ini = new IniFile(fileName)) {
         Assert.IsFalse(ini.SectionExists("doesnotexist"));
         ini.WriteString("doesnotexist", "foo", "bar");
         Assert.IsTrue(ini.SectionExists("doesnotexist"));
         Assert.AreEqual("bar", ini.ReadString("doesnotexist", "foo"));
     }
     using (IniFile ini = new IniFile(fileName)) {
         Assert.IsTrue(ini.SectionExists("doesnotexist"));
         Assert.AreEqual("bar", ini.ReadString("doesnotexist", "foo"));
     }
 }
Example #8
0
 public void WriteAndRead()
 {
     using (IniFile ini = new IniFile(fileName)) {
         ini.WriteString("foo", "bar", "qux");
         Assert.AreEqual("qux", ini.ReadString("foo", "bar"));
     }
     using (IniFile ini = new IniFile(fileName)) {
         ini.WriteString("foo", "bar", "qux");
         Assert.AreEqual("qux", ini.ReadString("foo", "bar"));
     }
     using (IniFile ini = new IniFile(fileName)) {
         Assert.AreEqual("qux", ini.ReadString("foo", "bar"));
     }
 }