Exemple #1
0
        public void SpawnRequest(MClient c, MNetMessage m)
        {
            MSpawnMessage sm = MSpawnMessage.Deserialize <MSpawnMessage>(m.Payload);

            //List<MServerObject> spawns = JsonConvert.DeserializeObject<List<MServerObject>>(sm.Spawnables);
            foreach (DataRow dr in sm.SpawnTable.Rows)
            {
                if (string.IsNullOrEmpty((string)dr["instanceid"]))
                {
                    dr[DB.INSTANCEID]   = UidGen.GUID();
                    dr[DB.DATECREATED]  = DateTime.Now;
                    dr[DB.DATEMODIFIED] = DateTime.Now;
                }
            }

            _DataBase.AddToWorld(sm.SpawnTable);

            MNetMessage mn = new MNetMessage();

            mn.Command = MNetMessage.SPAWN;
            mn.Version = 1;
            mn.Payload = sm.Serialize();
            SendToAllClients(c, mn.Serialize());

            UniverseChanged?.Invoke(this, new ServerEvent("+1", 3));
        }
Exemple #2
0
        public void DeleteObject(MClient c, MNetMessage m)
        {
            MDeleteMessage mp = MDeleteMessage.Deserialize <MDeleteMessage>(m.Payload);

            _DataBase.DeleteObject(mp.InstanceID, c.Account.UserID);

            c.Account.TotalObjects -= _DataBase.DeleteObject(mp.InstanceID, c.Account.UserID);
            if (c.Account.TotalObjects < 0)
            {
                c.Account.TotalObjects = 0;
            }

            MNetMessage mn = new MNetMessage();

            mn.Command = MNetMessage.DELETE;
            mn.Payload = mp.Serialize();

            SendToAllClients(c, mn.Serialize());

            UniverseChanged?.Invoke(this, new ServerEvent("-1", 3));
        }