Exemple #1
0
        public static void ResetEntityProperty(LocalHandle entity, string key)
        {
            var handle = NetEntityHandler.EntityToNet(entity.Value);
            var item   = NetEntityHandler.NetToStreamedItem(handle);
            var prop   = item as EntityProperties;

            if (prop == null || string.IsNullOrEmpty(key))
            {
                return;
            }

            if (prop.SyncedProperties == null || !prop.SyncedProperties.ContainsKey(key))
            {
                return;
            }

            prop.SyncedProperties.Remove(key);

            if (!item.LocalOnly)
            {
                var delta = new Delta_EntityProperties();
                delta.SyncedProperties = new Dictionary <string, NativeArgument>();
                delta.SyncedProperties.Add(key, new LocalGamePlayerArgument());
                UpdateEntityInfo(handle, EntityType.Prop, delta);
            }
        }
Exemple #2
0
        public static bool SetEntityProperty(LocalHandle entity, string key, object value)
        {
            var handle = NetEntityHandler.EntityToNet(entity.Value);
            var item   = NetEntityHandler.NetToStreamedItem(handle);
            var prop   = item as EntityProperties;

            if (prop == null || string.IsNullOrEmpty(key))
            {
                return(false);
            }

            if (prop.SyncedProperties == null)
            {
                prop.SyncedProperties = new Dictionary <string, NativeArgument>();
            }

            var nativeArg = ParseNativeArguments(value).Single();

            NativeArgument oldValue = prop.SyncedProperties.Get(key);

            prop.SyncedProperties.Set(key, nativeArg);


            if (!item.LocalOnly)
            {
                var delta = new Delta_EntityProperties();
                delta.SyncedProperties = new Dictionary <string, NativeArgument>();
                delta.SyncedProperties.Add(key, nativeArg);
                UpdateEntityInfo(handle, EntityType.Prop, delta);
            }

            JavascriptHook.InvokeDataChangeEvent(entity, key, DecodeArgumentListPure(oldValue).FirstOrDefault());
            return(true);
        }
Exemple #3
0
        public static bool SetWorldData(string key, object value)
        {
            if (NetEntityHandler.ServerWorld.SyncedProperties == null)
            {
                NetEntityHandler.ServerWorld.SyncedProperties = new Dictionary <string, NativeArgument>();
            }

            var nativeArg = ParseNativeArguments(value).Single();

            NativeArgument oldValue = NetEntityHandler.ServerWorld.SyncedProperties.Get(key);

            NetEntityHandler.ServerWorld.SyncedProperties.Set(key, nativeArg);


            var delta = new Delta_EntityProperties
            {
                SyncedProperties = new Dictionary <string, NativeArgument>()
            };

            delta.SyncedProperties.Add(key, nativeArg);
            UpdateEntityInfo(1, EntityType.Prop, delta);

            JavascriptHook.InvokeDataChangeEvent(new LocalHandle(0), key, DecodeArgumentListPure(oldValue).FirstOrDefault());
            return(true);
        }
Exemple #4
0
        public static void UpdateEntityInfo(int netId, EntityType entity, Delta_EntityProperties newInfo)
        {
            var packet = new UpdateEntity();

            packet.EntityType = (byte)entity;
            packet.Properties = newInfo;
            packet.NetHandle  = netId;
            SendToServer(packet, PacketType.UpdateEntityProperties, true, ConnectionChannel.EntityBackend);
        }
Exemple #5
0
        public static void UpdateEntityInfo(int netId, EntityType entity, Delta_EntityProperties newInfo)
        {
            var packet = new UpdateEntity
            {
                EntityType = (byte)entity,
                Properties = newInfo,
                NetHandle  = netId
            };

            SendToServer(packet, PacketType.UpdateEntityProperties, true, ConnectionChannel.NativeCall);
        }
Exemple #6
0
        public static void ResetWorldData(string key)
        {
            if (NetEntityHandler.ServerWorld.SyncedProperties == null || !NetEntityHandler.ServerWorld.SyncedProperties.ContainsKey(key))
            {
                return;
            }

            NetEntityHandler.ServerWorld.SyncedProperties.Remove(key);

            var delta = new Delta_EntityProperties();

            delta.SyncedProperties = new Dictionary <string, NativeArgument>();
            delta.SyncedProperties.Add(key, new LocalGamePlayerArgument());
            UpdateEntityInfo(1, EntityType.Prop, delta);
        }
Exemple #7
0
        public static void UpdateEntityInfo(int netId, EntityType entity, Delta_EntityProperties newInfo, Client exclude = null)
        {
            var packet = new UpdateEntity
            {
                EntityType = (byte)entity,
                Properties = newInfo,
                NetHandle  = netId
            };

            if (exclude == null)
            {
                Program.ServerInstance.SendToAll(packet, PacketType.UpdateEntityProperties, true, ConnectionChannel.EntityBackend);
            }
            else
            {
                Program.ServerInstance.SendToAll(packet, PacketType.UpdateEntityProperties, true, exclude, ConnectionChannel.EntityBackend);
            }
        }