示例#1
0
        public void OnCycle()
        {
            foreach (WiredItem current in this.wiredItems)
            {
                if (current is WiredCycler && current.Type == WiredItemType.TriggerRepeatEffect && !this.IsCycleQueued(current))
                {
                    this.cycleItems.Enqueue(current);
                }
                else if (current is WiredCycler && current.Type == WiredItemType.TriggerLongRepeater && !this.IsCycleQueued(current))
                {
                    this.cycleItems.Enqueue(current);
                }
            }
            Queue queue = new Queue();

            lock (this.cycleItems.SyncRoot)
            {
                while (this.cycleItems.Count > 0)
                {
                    WiredItem wiredItem = (WiredItem)this.cycleItems.Dequeue();
                    if (wiredItem is WiredCycler)
                    {
                        WiredCycler wiredCycler = (WiredCycler)wiredItem;
                        if (!wiredCycler.OnCycle())
                        {
                            queue.Enqueue(wiredItem);
                        }
                    }
                }
            }
            this.cycleItems = queue;
        }
示例#2
0
 public void EnqueueCycle(WiredItem Item)
 {
     if (!this.cycleItems.Contains(Item))
     {
         this.cycleItems.Enqueue(Item);
     }
 }
示例#3
0
        public void SaveWired(WiredItem Item)
        {
            using (IQueryAdapter dbClient = SilverwaveEnvironment.GetDatabaseManager().getQueryreactor())
            {
                string Items = "";
                int i = 0;
                Console.WriteLine(Item.OtherString);
                for(int j = 0;j<Item.Items.Count;j++)
                {
                    if (i != 0)
                        Items += ";";

                    Items += Item.Items[j].Id;
                    if (Item.Item.GetBaseItem().InteractionType == InteractionType.actionposreset)
                    {
                        dbClient.setQuery("REPLACE INTO trigger_in_place (original_x, original_y, original_z, original_trigger, triggers_item) VALUES (@x, @y, @z, @wired, @item)");
                        dbClient.addParameter("x", Item.Items[j].GetX);
                        dbClient.addParameter("y", Item.Items[j].GetY);
                        dbClient.addParameter("z", Item.Items[j].GetZ);
                        dbClient.addParameter("wired", Item.Item.Id);
                        dbClient.addParameter("item", Items);
                        dbClient.runQuery();
                    }
                    i++;
                }
                Console.WriteLine("ItemID: "+Item.Item.Id);
                dbClient.setQuery("REPLACE INTO wired_items VALUES (@id, @items, @delay, @string, @bool)");
                dbClient.addParameter("id", Item.Item.Id);
                dbClient.addParameter("items", Items);
                dbClient.addParameter("delay", Item.Delay);
                dbClient.addParameter("string", Item.OtherString);
                dbClient.addParameter("bool", Item.OtherBool);
                dbClient.runQuery();
            }
        }
示例#4
0
 public void RemoveWired(WiredItem Item)
 {
     if (!this.wiredItems.Contains(Item))
     {
         this.wiredItems.Remove(Item);
     }
     this.wiredItems.Remove(Item);
 }
示例#5
0
 public void AddWired(WiredItem Item)
 {
     if (this.wiredItems.Contains(Item))
     {
         this.wiredItems.Remove(Item);
     }
     this.wiredItems.Add(Item);
 }
示例#6
0
        public void AddWired(WiredItem Item)
        {
            if (wiredItems.Contains(Item))
            {
                wiredItems.Remove(Item);
            }

            wiredItems.Add(Item);
        }
示例#7
0
        public void MoveWired(RoomItem Item)
        {
            WiredItem wired = this.GetWired(Item);

            if (wired == null)
            {
                return;
            }
            wired.Item = Item;
            this.RemoveWired(Item);
            this.AddWired(wired);
        }
示例#8
0
        public List <WiredItem> GetEffects(WiredItem Item)
        {
            List <WiredItem> list = new List <WiredItem>();

            foreach (WiredItem current in this.wiredItems)
            {
                if (this.IsEffect(current.Type) && current.Item.GetX == Item.Item.GetX && current.Item.GetY == Item.Item.GetY)
                {
                    list.Add(current);
                }
            }
            return(list);
        }
示例#9
0
		public WiredItem LoadWired(WiredItem Item)
		{
			if (Item == null || Item.Item == null)
			{
				if (this.wiredItems.Contains(Item))
				{
					this.wiredItems.Remove(Item);
				}
				return null;
			}
			using (IQueryAdapter queryreactor = MercuryEnvironment.GetDatabaseManager().getQueryreactor())
			{
				queryreactor.setQuery("SELECT * FROM wired_items WHERE id=@id LIMIT 1");
				queryreactor.addParameter("id", Item.Item.Id);
				DataRow row = queryreactor.getRow();
				if (row == null)
				{
					WiredItem wiredItem = this.GenerateNewItem(Item.Item);
					this.AddWired(wiredItem);
					this.SaveWired(wiredItem);
					return wiredItem;
				}
				Item.OtherString = row["string"].ToString();
				Item.OtherBool = (row["bool"].ToString() == "1");
				Item.Delay = (int)row["delay"];
				Item.OtherExtraString = row["extra_string"].ToString();
				Item.OtherExtraString2 = row["extra_string_2"].ToString();
				string[] array = row["items"].ToString().Split(new char[]
				{
					';'
				});
				for (int i = 0; i < array.Length; i++)
				{
					string s = array[i];
					int value = 0;
					if (int.TryParse(s, out value))
					{
						RoomItem item = this.Room.GetRoomItemHandler().GetItem(Convert.ToUInt32(value));
						if (Item != null)
						{
							Item.Items.Add(item);
						}
					}
				}
				this.AddWired(Item);
			}
			return Item;
		}
示例#10
0
 public WiredItem LoadWired(WiredItem Item)
 {
     if (Item == null || Item.Item == null)
     {
         if (this.wiredItems.Contains(Item))
         {
             this.wiredItems.Remove(Item);
         }
         return(null);
     }
     using (IQueryAdapter queryreactor = CyberEnvironment.GetDatabaseManager().getQueryReactor())
     {
         queryreactor.setQuery("SELECT * FROM wired_items WHERE id=@id LIMIT 1");
         queryreactor.addParameter("id", Item.Item.Id);
         DataRow row = queryreactor.getRow();
         if (row == null)
         {
             WiredItem wiredItem = this.GenerateNewItem(Item.Item);
             this.AddWired(wiredItem);
             this.SaveWired(wiredItem);
             return(wiredItem);
         }
         Item.OtherString       = row["string"].ToString();
         Item.OtherBool         = (row["bool"].ToString() == "1");
         Item.Delay             = (int)row["delay"];
         Item.OtherExtraString  = row["extra_string"].ToString();
         Item.OtherExtraString2 = row["extra_string_2"].ToString();
         string[] array = row["items"].ToString().Split(new char[]
         {
             ';'
         });
         for (int i = 0; i < array.Length; i++)
         {
             string s     = array[i];
             int    value = 0;
             if (int.TryParse(s, out value))
             {
                 RoomItem item = this.Room.GetRoomItemHandler().GetItem(Convert.ToUInt32(value));
                 if (Item != null)
                 {
                     Item.Items.Add(item);
                 }
             }
         }
         this.AddWired(Item);
     }
     return(Item);
 }
示例#11
0
 public void SaveWired(WiredItem Item)
 {
     if (Item == null)
     {
         return;
     }
     checked
     {
         using (IQueryAdapter queryreactor = CyberEnvironment.GetDatabaseManager().getQueryReactor())
         {
             string text = "";
             int    num  = 0;
             foreach (RoomItem current in Item.Items)
             {
                 if (num != 0)
                 {
                     text += ";";
                 }
                 text += current.Id;
                 num++;
             }
             if (Item.OtherString == null)
             {
                 Item.OtherString = "";
             }
             if (Item.OtherExtraString == null)
             {
                 Item.OtherExtraString = "";
             }
             if (Item.OtherExtraString2 == null)
             {
                 Item.OtherExtraString2 = "";
             }
             queryreactor.setQuery("REPLACE INTO wired_items VALUES (@id, @items, @delay, @string, @bool, @extrastring, @extrastring2)");
             queryreactor.addParameter("id", Item.Item.Id);
             queryreactor.addParameter("items", text);
             queryreactor.addParameter("delay", Item.Delay);
             queryreactor.addParameter("string", Item.OtherString);
             queryreactor.addParameter("bool", CyberEnvironment.BoolToEnum(Item.OtherBool));
             queryreactor.addParameter("extrastring", Item.OtherExtraString);
             queryreactor.addParameter("extrastring2", Item.OtherExtraString2);
             queryreactor.runQuery();
         }
     }
 }
示例#12
0
		public void SaveWired(WiredItem Item)
		{
            if (Item == null)
            {
                return;
            }
			checked
			{
				using (IQueryAdapter queryreactor = MercuryEnvironment.GetDatabaseManager().getQueryreactor())
				{
					string text = "";
					int num = 0;
					foreach (RoomItem current in Item.Items)
					{
						if (num != 0)
						{
							text += ";";
						}
						text += current.Id;
						num++;
					}
					if (Item.OtherString == null)
					{
						Item.OtherString = "";
					}
					if (Item.OtherExtraString == null)
					{
						Item.OtherExtraString = "";
					}
					if (Item.OtherExtraString2 == null)
					{
						Item.OtherExtraString2 = "";
					}
					queryreactor.setQuery("REPLACE INTO wired_items VALUES (@id, @items, @delay, @string, @bool, @extrastring, @extrastring2)");
					queryreactor.addParameter("id", Item.Item.Id);
					queryreactor.addParameter("items", text);
					queryreactor.addParameter("delay", Item.Delay);
					queryreactor.addParameter("string", Item.OtherString);
					queryreactor.addParameter("bool", MercuryEnvironment.BoolToEnum(Item.OtherBool));
					queryreactor.addParameter("extrastring", Item.OtherExtraString);
					queryreactor.addParameter("extrastring2", Item.OtherExtraString2);
					queryreactor.runQuery();
				}
			}
		}
示例#13
0
        public WiredItem LoadWired(WiredItem Item)
        {
            if (Item == null || Item.Item == null)
            {
                if(wiredItems.Contains(Item))
                    wiredItems.Remove(Item);

                return null;
            }

            using (IQueryAdapter dbClient = SilverwaveEnvironment.GetDatabaseManager().getQueryreactor())
            {
                dbClient.setQuery("SELECT * FROM wired_items WHERE id=@id LIMIT 1");
                dbClient.addParameter("id", Item.Item.Id);
                DataRow Row = dbClient.getRow();

                if (Row == null)
                {
                    WiredItem I = GenerateNewItem(Item.Item);
                    AddWired(I);
                    SaveWired(I);
                    return I;
                }

                Item.OtherString = Row["string"].ToString();
                Item.OtherBool = Row["bool"].ToString() == "1";
                Item.Delay = (int)Row["delay"];

                foreach (String StringId in Row["items"].ToString().Split(';'))
                {
                    int Id = 0;
                    if (int.TryParse(StringId, out Id))
                    {
                        RoomItem AItem = Room.GetRoomItemHandler().GetItem(Convert.ToUInt32(Id));
                        if (Item != null)
                        {
                            Item.Items.Add(AItem);
                        }
                    }
                }
                AddWired(Item);
            }
            return Item;
        }
示例#14
0
        public bool Execute(params object[] Stuff)
        {
            RoomUser      roomUser = (RoomUser)Stuff[0];
            WiredItemType item     = (WiredItemType)Stuff[1];

            foreach (RoomItem Aitem in this.Items)
            {
                switch (Aitem.GetBaseItem().InteractionType)
                {
                case InteractionType.triggerrepeater:
                case InteractionType.triggertimer:
                    WiredItem Trigger = Room.GetWiredHandler().GetWired(Aitem);

                    Trigger.Delay = 5000;
                    Room.GetWiredHandler().ReloadWired(Trigger);
                    break;
                }
            }

            return(true);
        }
示例#15
0
 public void RemoveWired(RoomItem Item)
 {
     foreach (WiredItem current in this.wiredItems)
     {
         if (current.Item.Id == Item.Id)
         {
             Queue queue = new Queue();
             lock (this.cycleItems.SyncRoot)
             {
                 while (this.cycleItems.Count > 0)
                 {
                     WiredItem wiredItem = (WiredItem)this.cycleItems.Dequeue();
                     if (wiredItem.Item.Id != Item.Id)
                     {
                         queue.Enqueue(wiredItem);
                     }
                 }
             }
             this.cycleItems = queue;
             this.wiredItems.Remove(current);
             break;
         }
     }
 }
示例#16
0
 public void EnqueueCycle(WiredItem Item)
 {
     if(!cycleItems.Contains(Item))
         cycleItems.Enqueue(Item);
 }
示例#17
0
 public void ReloadWired(WiredItem Item)
 {
     SaveWired(Item);
     RemoveWired(Item);
     AddWired(Item);
 }
示例#18
0
		public List<WiredItem> GetEffects(WiredItem Item)
		{
			List<WiredItem> list = new List<WiredItem>();
			foreach (WiredItem current in this.wiredItems)
			{
				if (this.IsEffect(current.Type) && current.Item.GetX == Item.Item.GetX && current.Item.GetY == Item.Item.GetY)
				{
					list.Add(current);
				}
			}
			return list;
		}
示例#19
0
        public List<WiredItem> GetEffects(WiredItem Item)
        {
            List<WiredItem> Items = new List<WiredItem>();
            foreach (WiredItem C in wiredItems)
            {
                if (IsEffect(C.Type) && (C.Item.GetX == Item.Item.GetX && C.Item.GetY == Item.Item.GetY))
                {
                    Items.Add(C);
                }
            }

            return Items;
        }
示例#20
0
		public void ReloadWired(WiredItem Item)
		{
			this.SaveWired(Item);
			this.RemoveWired(Item);
			this.AddWired(Item);
		}
示例#21
0
        public static void SaveWired(GameClient Session, RoomItem Item, ClientMessage Request)
        {
            if (!Item.IsWired)
            {
                return;
            }
            Room         room         = Item.GetRoom();
            WiredHandler wiredHandler = room.GetWiredHandler();

            checked
            {
                switch (Item.GetBaseItem().InteractionType)
                {
                case InteractionType.triggerroomenter:
                {
                    Request.PopWiredInt32();
                    string    otherString = Request.PopFixedString();
                    WiredItem wired       = wiredHandler.GetWired(Item);
                    wired.OtherString = otherString;
                    wiredHandler.ReloadWired(wired);
                    break;
                }

                case InteractionType.triggerlongrepeater:
                {
                    Request.PopWiredInt32();
                    int       delay  = Request.PopWiredInt32() * 5000;
                    WiredItem wired2 = wiredHandler.GetWired(Item);
                    wired2.Delay = delay;
                    wiredHandler.ReloadWired(wired2);
                    break;
                }

                case InteractionType.triggerrepeater:
                {
                    Request.PopWiredInt32();
                    int       delay  = Request.PopWiredInt32() * 500;
                    WiredItem wired2 = wiredHandler.GetWired(Item);
                    wired2.Delay = delay;
                    wiredHandler.ReloadWired(wired2);
                    break;
                }

                case InteractionType.triggeronusersay:
                {
                    Request.PopWiredInt32();
                    int       num          = Request.PopWiredInt32();
                    string    otherString2 = Request.PopFixedString();
                    WiredItem wired3       = wiredHandler.GetWired(Item);
                    wired3.OtherString = otherString2;
                    wired3.OtherBool   = (num == 1);
                    wiredHandler.ReloadWired(wired3);
                    break;
                }

                case InteractionType.triggerstatechanged:
                {
                    Request.PopWiredInt32();
                    Request.PopFixedString();
                    List <RoomItem> furniItems = WiredSaver.GetFurniItems(Request, room);
                    int             num2       = Request.PopWiredInt32();
                    WiredItem       wired4     = wiredHandler.GetWired(Item);
                    wired4.Delay = num2 * 500;
                    wired4.Items = furniItems;
                    wiredHandler.ReloadWired(wired4);
                    break;
                }

                case InteractionType.triggerwalkonfurni:
                {
                    Request.PopWiredInt32();
                    Request.PopFixedString();
                    List <RoomItem> furniItems2 = WiredSaver.GetFurniItems(Request, room);
                    int             num3        = Request.PopWiredInt32();
                    WiredItem       wired5      = wiredHandler.GetWired(Item);
                    wired5.Delay = num3 * 500;
                    wired5.Items = furniItems2;
                    wiredHandler.ReloadWired(wired5);
                    break;
                }

                case InteractionType.triggerwalkofffurni:
                {
                    Request.PopWiredInt32();
                    Request.PopFixedString();
                    List <RoomItem> furniItems3 = WiredSaver.GetFurniItems(Request, room);
                    int             num4        = Request.PopWiredInt32();
                    WiredItem       wired6      = wiredHandler.GetWired(Item);
                    wired6.Delay = num4 * 500;
                    wired6.Items = furniItems3;
                    wiredHandler.ReloadWired(wired6);
                    break;
                }

                case InteractionType.actionmoverotate:
                {
                    Request.PopWiredInt32();
                    int num5 = Request.PopWiredInt32();
                    int num6 = Request.PopWiredInt32();
                    Request.PopFixedString();
                    List <RoomItem> furniItems4 = WiredSaver.GetFurniItems(Request, room);
                    int             num7        = Request.PopWiredInt32();
                    WiredItem       wired7      = wiredHandler.GetWired(Item);
                    wired7.Items       = furniItems4;
                    wired7.Delay       = num7 * 500;
                    wired7.OtherString = num6 + ";" + num5;
                    wiredHandler.ReloadWired(wired7);
                    break;
                }

                case InteractionType.actionshowmessage:
                case InteractionType.actionkickuser:
                {
                    Request.PopWiredInt32();
                    string    otherString3 = Request.PopFixedString();
                    WiredItem wired8       = wiredHandler.GetWired(Item);
                    wired8.OtherString = otherString3;
                    wiredHandler.ReloadWired(wired8);
                    break;
                }

                case InteractionType.actionteleportto:
                {
                    Request.PopWiredInt32();
                    Request.PopFixedString();
                    List <RoomItem> furniItems5 = WiredSaver.GetFurniItems(Request, room);
                    int             num8        = Request.PopWiredInt32();
                    WiredItem       wired9      = wiredHandler.GetWired(Item);
                    wired9.Items = furniItems5;
                    wired9.Delay = num8 * 500;
                    wiredHandler.ReloadWired(wired9);
                    break;
                }

                case InteractionType.actiontogglestate:
                {
                    Request.PopWiredInt32();
                    Request.PopFixedString();
                    List <RoomItem> furniItems6 = WiredSaver.GetFurniItems(Request, room);
                    int             num9        = Request.PopWiredInt32();
                    WiredItem       wired10     = wiredHandler.GetWired(Item);
                    wired10.Items = furniItems6;
                    wired10.Delay = num9 * 500;
                    wiredHandler.ReloadWired(wired10);
                    break;
                }

                case InteractionType.actiongivereward:
                {
                    Request.PopWiredInt32();
                    int  num10     = Request.PopWiredInt32();
                    bool otherBool = Request.PopWiredInt32() == 1;
                    int  num11     = Request.PopWiredInt32();
                    Request.PopWiredInt32();
                    string          otherString4 = Request.PopFixedString();
                    List <RoomItem> furniItems7  = WiredSaver.GetFurniItems(Request, room);
                    WiredItem       wired11      = wiredHandler.GetWired(Item);
                    wired11.Items             = furniItems7;
                    wired11.Delay             = 0;
                    wired11.OtherBool         = otherBool;
                    wired11.OtherString       = otherString4;
                    wired11.OtherExtraString  = num10.ToString();
                    wired11.OtherExtraString2 = num11.ToString();
                    wiredHandler.ReloadWired(wired11);
                    break;
                }

                case InteractionType.actionmuteuser:
                {
                    Request.PopWiredInt32();
                    int             minutes     = Request.PopWiredInt32() * 500;
                    string          Message     = Request.PopFixedString();
                    List <RoomItem> furniItems7 = WiredSaver.GetFurniItems(Request, room);
                    WiredItem       wired11     = wiredHandler.GetWired(Item);
                    wired11.Items       = furniItems7;
                    wired11.Delay       = minutes;
                    wired11.OtherBool   = false;
                    wired11.OtherString = Message;
                    wiredHandler.ReloadWired(wired11);
                    break;
                }

                case InteractionType.triggerscoreachieved:
                {
                    Request.PopWiredInt32();
                    int pointsRequired = Request.PopWiredInt32();

                    WiredItem wired11 = wiredHandler.GetWired(Item);
                    wired11.Delay       = 0;
                    wired11.OtherString = pointsRequired.ToString();
                    wiredHandler.ReloadWired(wired11);
                    break;
                }

                case InteractionType.conditionitemsmatches:
                case InteractionType.conditionitemsdontmatch:
                case InteractionType.actionposreset:

                {
                    // Coded by Finn for Cyber Emulator
                    Request.PopWiredInt32();
                    bool ActualExtraData = Request.PopWiredInt32() == 1;
                    bool ActualRot       = Request.PopWiredInt32() == 1;
                    bool ActualPosition  = Request.PopWiredInt32() == 1;

                    string Booleans = (ActualExtraData.ToString() + "," + ActualRot.ToString() + "," + ActualPosition.ToString()).ToLower();

                    Request.PopFixedString();
                    List <RoomItem> Items = WiredSaver.GetFurniItems(Request, room);

                    int       Delay = Request.PopWiredInt32() * 500;
                    WiredItem Wiry  = wiredHandler.GetWired(Item);

                    string DataToSave       = "";
                    string ExtraStringForWI = "";

                    foreach (RoomItem AItem in Items)
                    {
                        DataToSave       += (AItem.Id + "|" + AItem.ExtraData + "|" + AItem.Rot + "|" + AItem.GetX + "," + AItem.GetY + "," + AItem.GetZ.ToString());
                        ExtraStringForWI += (AItem.Id + "," + ((ActualExtraData) ? AItem.ExtraData : "N") + "," + ((ActualRot) ? AItem.Rot.ToString() : "N") + "," + ((ActualPosition) ? AItem.GetX.ToString() : "N") + "," + ((ActualPosition) ? AItem.GetY.ToString() : "N"));

                        if (AItem != Items.Last())
                        {
                            DataToSave       += "/";
                            ExtraStringForWI += ";";
                        }
                    }

                    Wiry.Items             = Items;
                    Wiry.Delay             = Delay;
                    Wiry.OtherBool         = true;
                    Wiry.OtherString       = Booleans;
                    Wiry.OtherExtraString  = DataToSave;
                    Wiry.OtherExtraString2 = ExtraStringForWI;
                    wiredHandler.ReloadWired(Wiry);
                    break;
                }

                case InteractionType.conditiongroupmember:
                case InteractionType.conditionnotgroupmember:
                {
                    // Nothing is needed.
                    break;
                }

                case InteractionType.conditionhowmanyusersinroom:
                case InteractionType.conditionnegativehowmanyusers:
                {
                    Request.PopWiredInt32();
                    int Minimum = Request.PopWiredInt32();
                    int Maximum = Request.PopWiredInt32();

                    string    EI      = Minimum + "," + Maximum;
                    WiredItem wired12 = wiredHandler.GetWired(Item);
                    wired12.Items       = new List <RoomItem>();
                    wired12.OtherString = EI;
                    wiredHandler.ReloadWired(wired12);
                    break;
                }

                case InteractionType.conditionusernotwearingeffect:
                case InteractionType.conditionuserwearingeffect:
                {
                    Request.PopWiredInt32();
                    int       Effect  = Request.PopWiredInt32();
                    WiredItem wired12 = wiredHandler.GetWired(Item);
                    wired12.Items       = new List <RoomItem>();
                    wired12.OtherString = Effect.ToString();
                    wiredHandler.ReloadWired(wired12);
                    break;
                }

                case InteractionType.conditionuserwearingbadge:
                case InteractionType.conditionusernotwearingbadge:
                {
                    Request.PopWiredInt32();
                    string    badge   = Request.PopFixedString();
                    WiredItem wired12 = wiredHandler.GetWired(Item);
                    wired12.Items       = new List <RoomItem>();
                    wired12.OtherString = badge;
                    wiredHandler.ReloadWired(wired12);
                    break;
                }

                case InteractionType.conditiondaterangeactive:
                {
                    Request.PopWiredInt32();
                    int startDate = Request.PopWiredInt32();
                    int endDate   = Request.PopWiredInt32();      //timestamps

                    WiredItem wired12 = wiredHandler.GetWired(Item);
                    wired12.Items       = new List <RoomItem>();
                    wired12.OtherString = startDate + "," + endDate;

                    if (startDate == 0)
                    {
                        wired12.OtherString = "";
                        Session.SendNotif(@"Para poder guardar la fecha debes introducirlo así: <b>YYYY/MM/dd hh:mm</b> o bien <b>dd/MM/YYYY hh:mm</b><br />No especifiques fecha de término si no hay. La hora y los minutos son opcionales. Anímate a arreglarlo.<br /><br /><br />Con cariño,<br /><b>Finn</b>");
                    }

                    wiredHandler.ReloadWired(wired12);
                    break;
                }

                case InteractionType.conditionfurnishaveusers:
                case InteractionType.conditiontriggeronfurni:
                case InteractionType.conditionfurnihasfurni:
                case InteractionType.conditionfurnitypematches:
                case InteractionType.conditionfurnishavenotusers:
                case InteractionType.conditiontriggerernotonfurni:
                case InteractionType.conditionfurnihasnotfurni:
                case InteractionType.conditionfurnitypedontmatch:
                {
                    Request.PopWiredInt32();
                    Request.PopFixedString();
                    List <RoomItem> furniItems8 = WiredSaver.GetFurniItems(Request, room);
                    WiredItem       wired12     = wiredHandler.GetWired(Item);
                    wired12.Items = furniItems8;
                    wiredHandler.ReloadWired(wired12);
                    break;
                }

                case InteractionType.actiongivescore:
                {
                    Request.PopWiredInt32();
                    int ScoreToGive     = Request.PopWiredInt32();
                    int MaxTimesPerGame = Request.PopWiredInt32();

                    string NewExtraInfo = (ScoreToGive + "," + MaxTimesPerGame);

                    List <RoomItem> furniItems8 = WiredSaver.GetFurniItems(Request, room);
                    WiredItem       wired12     = wiredHandler.GetWired(Item);
                    wired12.Items       = furniItems8;
                    wired12.OtherString = NewExtraInfo;
                    wiredHandler.ReloadWired(wired12);
                    break;
                }
                }

                Session.SendMessage(new ServerMessage(Outgoing.SaveWiredMessageComposer));
            }
        }
示例#22
0
 public bool IsCycleQueued(WiredItem Item)
 {
     return(this.cycleItems.Contains(Item));
 }
示例#23
0
        public void SaveWired(WiredItem Item)
        {
            using (IQueryAdapter dbClient = SilverwaveEnvironment.GetDatabaseManager().getQueryreactor())
            {
                string Items = "";
                int i = 0;
                foreach (RoomItem IItem in Item.Items)
                {
                    if (i != 0)
                        Items += ";";

                    Items += IItem.Id;

                    i++;
                }

                dbClient.setQuery("REPLACE INTO wired_items VALUES (@id, @items, @delay, @string, @bool)");
                dbClient.addParameter("id", Item.Item.Id);
                dbClient.addParameter("items", Items);
                dbClient.addParameter("delay", Item.Delay);
                dbClient.addParameter("string", Item.OtherString);
                dbClient.addParameter("bool", Item.OtherBool);
                dbClient.runQuery();
            }
        }
示例#24
0
 private void SaveWired(UserInfo session, WiredItem item, ClientMessage request)
 {
     /*
      * if (item == null || !item.IsWired)
      *  return;
      *
      * Room room = item.GetRoom();
      *
      * WiredHandler wiredHandler = room?.GetWiredHandler();
      *
      * if (wiredHandler == null)
      *  return;
      *
      * switch (item.GetBaseItem().InteractionType)
      * {
      * case Interaction.TriggerTimer:
      *  {
      *      request.GetInteger();
      *      IWiredItem wired = wiredHandler.GetWired(item);
      *      int delay = request.GetInteger()*500;
      *      wired.Delay = delay;
      *      wiredHandler.ReloadWired(wired);
      *      break;
      *  }
      * case Interaction.TriggerRoomEnter:
      *  {
      *      request.GetInteger();
      *      string otherString = request.GetString();
      *      IWiredItem wired = wiredHandler.GetWired(item);
      *      wired.OtherString = otherString;
      *      wiredHandler.ReloadWired(wired);
      *      break;
      *  }
      *
      * case Interaction.TriggerLongRepeater:
      *  {
      *      request.GetInteger();
      *      int delay = request.GetInteger()*5000;
      *      IWiredItem wired2 = wiredHandler.GetWired(item);
      *      wired2.Delay = delay;
      *      wiredHandler.ReloadWired(wired2);
      *      break;
      *  }
      *
      * case Interaction.TriggerRepeater:
      *  {
      *      request.GetInteger();
      *      int delay = request.GetInteger()*500;
      *      IWiredItem wired2 = wiredHandler.GetWired(item);
      *      wired2.Delay = delay;
      *      wiredHandler.ReloadWired(wired2);
      *      break;
      *  }
      * case Interaction.TriggerOnUserSay:
      *  {
      *      request.GetInteger();
      *      int num = request.GetInteger();
      *      string otherString2 = request.GetString();
      *      IWiredItem wired3 = wiredHandler.GetWired(item);
      *      wired3.OtherString = otherString2;
      *      wired3.OtherBool = num == 1;
      *      wiredHandler.ReloadWired(wired3);
      *      break;
      *  }
      * case Interaction.TriggerStateChanged:
      *  {
      *      request.GetInteger();
      *      request.GetString();
      *      List<RoomItem> furniItems = GetFurniItems(request, room);
      *      int num2 = request.GetInteger();
      *      IWiredItem wired4 = wiredHandler.GetWired(item);
      *      wired4.Delay = num2*500;
      *      wired4.Items = furniItems;
      *      wiredHandler.ReloadWired(wired4);
      *      break;
      *  }
      * case Interaction.TriggerWalkOnFurni:
      * case Interaction.ActionChase:
      * case Interaction.ActionResetTimer:
      *  {
      *      request.GetInteger();
      *      request.GetString();
      *      List<RoomItem> furniItems2 = GetFurniItems(request, room);
      *      int num3 = request.GetInteger();
      *      IWiredItem wired5 = wiredHandler.GetWired(item);
      *      wired5.Delay = num3*500;
      *      wired5.Items = furniItems2;
      *      wiredHandler.ReloadWired(wired5);
      *      break;
      *  }
      *
      * case Interaction.TriggerWalkOffFurni:
      *  {
      *      request.GetInteger();
      *      request.GetString();
      *      List<RoomItem> furniItems3 = GetFurniItems(request, room);
      *      int num4 = request.GetInteger();
      *      IWiredItem wired6 = wiredHandler.GetWired(item);
      *      wired6.Delay = num4*500;
      *      wired6.Items = furniItems3;
      *      wiredHandler.ReloadWired(wired6);
      *      break;
      *  }
      * case Interaction.ActionMoveRotate:
      * case Interaction.ActionMoveToDir:
      *  {
      *      request.GetInteger();
      *      int dir = request.GetInteger();
      *      int rot = request.GetInteger();
      *      request.GetString();
      *      List<RoomItem> furniItems4 = GetFurniItems(request, room);
      *      int delay = request.GetInteger();
      *      IWiredItem wired7 = wiredHandler.GetWired(item);
      *      wired7.Items = furniItems4;
      *      wired7.Delay = delay*500;
      *      wired7.OtherString = $"{dir};{rot}";
      *      wiredHandler.ReloadWired(wired7);
      *      break;
      *  }
      * case Interaction.ActionShowMessage:
      * case Interaction.ActionKickUser:
      *  {
      *      request.GetInteger();
      *      string otherString3 = request.GetString();
      *      IWiredItem wired8 = wiredHandler.GetWired(item);
      *      wired8.OtherString = otherString3;
      *      wiredHandler.ReloadWired(wired8);
      *      break;
      *  }
      * case Interaction.ActionTeleportTo:
      *  {
      *      request.GetInteger();
      *      request.GetString();
      *      List<RoomItem> furniItems5 = GetFurniItems(request, room);
      *      int num8 = request.GetInteger();
      *      IWiredItem wired9 = wiredHandler.GetWired(item);
      *      wired9.Items = furniItems5;
      *      wired9.Delay = num8*500;
      *      wiredHandler.ReloadWired(wired9);
      *      break;
      *  }
      * case Interaction.ActionToggleState:
      *  {
      *      request.GetInteger();
      *      request.GetString();
      *      List<RoomItem> furniItems6 = GetFurniItems(request, room);
      *      int num9 = request.GetInteger();
      *      IWiredItem wired10 = wiredHandler.GetWired(item);
      *      wired10.Items = furniItems6;
      *      wired10.Delay = num9*500;
      *      wiredHandler.ReloadWired(wired10);
      *      break;
      *  }
      * case Interaction.ActionGiveReward:
      *  {
      *      if (!session.Info.HasPermission("fuse_use_superwired"))
      *          return;
      *
      *      request.GetInteger();
      *      int often = request.GetInteger();
      *      bool unique = request.GetIntegerAsBool();
      *      int limit = request.GetInteger();
      *      request.GetInteger();
      *      string extrainfo = request.GetString();
      *      List<RoomItem> furniItems7 = GetFurniItems(request, room);
      *      IWiredItem wired11 = wiredHandler.GetWired(item);
      *      wired11.Items = furniItems7;
      *      wired11.Delay = 0;
      *      wired11.OtherBool = unique;
      *      wired11.OtherString = extrainfo;
      *      wired11.OtherExtraString = often.ToString();
      *      wired11.OtherExtraString2 = limit.ToString();
      *      wiredHandler.ReloadWired(wired11);
      *      break;
      *  }
      * case Interaction.ActionMuteUser:
      *  {
      *      request.GetInteger();
      *      int minutes = request.GetInteger()*500;
      *      string message = request.GetString();
      *      List<RoomItem> furniItems7 = GetFurniItems(request, room);
      *      IWiredItem wired11 = wiredHandler.GetWired(item);
      *      wired11.Items = furniItems7;
      *      wired11.Delay = minutes;
      *      wired11.OtherBool = false;
      *      wired11.OtherString = message;
      *      wiredHandler.ReloadWired(wired11);
      *      break;
      *  }
      * case Interaction.TriggerScoreAchieved:
      *  {
      *      request.GetInteger();
      *      int pointsRequired = request.GetInteger();
      *
      *      IWiredItem wired11 = wiredHandler.GetWired(item);
      *      wired11.Delay = 0;
      *      wired11.OtherString = pointsRequired.ToString();
      *      wiredHandler.ReloadWired(wired11);
      *      break;
      *  }
      *
      * case Interaction.ConditionItemsMatches:
      * case Interaction.ConditionItemsDontMatch:
      * case Interaction.ActionPosReset:
      *  {
      *      request.GetInteger();
      *      bool actualExtraData = request.GetIntegerAsBool();
      *      bool actualRot = request.GetIntegerAsBool();
      *      bool actualPosition = request.GetIntegerAsBool();
      *
      *      string booleans = $"{actualExtraData},{actualRot},{actualPosition}".ToLower();
      *
      *      request.GetString();
      *      List<RoomItem> items = GetFurniItems(request, room);
      *
      *      int delay = request.GetInteger()*500;
      *      IWiredItem wiry = wiredHandler.GetWired(item);
      *
      *      string dataToSave = string.Empty;
      *      string extraStringForWi = string.Empty;
      *
      *      foreach (RoomItem aItem in items)
      *      {
      *          if (aItem.GetBaseItem().InteractionType == Interaction.Dice)
      *          {
      *              // Why have a RETURN here?
      *              dataToSave += string.Format("0|0|0|0,0,0", aItem.Id, aItem.ExtraData, aItem.Rot, aItem.X,
      *                  aItem.Y, aItem.Z);
      *              extraStringForWi +=
      *                  $"{aItem.Id},{(actualExtraData ? aItem.ExtraData : "N")},{(actualRot ? aItem.Rot.ToString() : "N")},{(actualPosition ? aItem.X.ToString() : "N")},{(actualPosition ? aItem.Y.ToString() : "N")}";
      *
      *              return;
      *          }
      *
      *          dataToSave += $"{aItem.Id}|{aItem.ExtraData}|{aItem.Rot}|{aItem.X},{aItem.Y},{aItem.Z}";
      *          extraStringForWi +=
      *              $"{aItem.Id},{(actualExtraData ? aItem.ExtraData : "N")},{(actualRot ? aItem.Rot.ToString() : "N")},{(actualPosition ? aItem.X.ToString() : "N")},{(actualPosition ? aItem.Y.ToString() : "N")}";
      *
      *          if (aItem == items.Last())
      *              continue;
      *
      *          dataToSave += "/";
      *          extraStringForWi += ";";
      *      }
      *
      *      wiry.Items = items;
      *      wiry.Delay = delay;
      *      wiry.OtherBool = true;
      *      wiry.OtherString = booleans;
      *      wiry.OtherExtraString = dataToSave;
      *      wiry.OtherExtraString2 = extraStringForWi;
      *      wiredHandler.ReloadWired(wiry);
      *      break;
      *  }
      *
      * case Interaction.ConditionGroupMember:
      * case Interaction.ConditionNotGroupMember:
      * case Interaction.TriggerCollision:
      *  {
      *      break;
      *  }
      *
      * case Interaction.ConditionHowManyUsersInRoom:
      * case Interaction.ConditionNegativeHowManyUsers:
      *  {
      *      request.GetInteger();
      *      int minimum = request.GetInteger();
      *      int maximum = request.GetInteger();
      *
      *      string ei = $"{minimum},{maximum}";
      *      IWiredItem wired12 = wiredHandler.GetWired(item);
      *      wired12.Items = new List<RoomItem>();
      *      wired12.OtherString = ei;
      *      wiredHandler.ReloadWired(wired12);
      *      break;
      *  }
      *
      * case Interaction.ConditionUserNotWearingEffect:
      * case Interaction.ConditionUserWearingEffect:
      *  {
      *      request.GetInteger();
      *      int effect = request.GetInteger();
      *      IWiredItem wired12 = wiredHandler.GetWired(item);
      *      wired12.Items = new List<RoomItem>();
      *      wired12.OtherString = effect.ToString();
      *      wiredHandler.ReloadWired(wired12);
      *      break;
      *  }
      *
      * case Interaction.ConditionUserWearingBadge:
      * case Interaction.ConditionUserNotWearingBadge:
      * case Interaction.ConditionUserHasFurni:
      *  {
      *      request.GetInteger();
      *      string badge = request.GetString();
      *      IWiredItem wired12 = wiredHandler.GetWired(item);
      *      wired12.Items = new List<RoomItem>();
      *      wired12.OtherString = badge;
      *      wiredHandler.ReloadWired(wired12);
      *      break;
      *  }
      *
      * case Interaction.ConditionDateRangeActive:
      *  {
      *      request.GetInteger();
      *
      *      int startDate = request.GetInteger();
      *      int endDate = request.GetInteger();
      *
      *      IWiredItem wired12 = wiredHandler.GetWired(item);
      *      wired12.Items = new List<RoomItem>();
      *      wired12.OtherString = $"{startDate},{endDate}";
      *
      *      if (startDate == 0)
      *      {
      *          wired12.OtherString = string.Empty;
      *          session.SendNotif(Yupi.GetLanguage().GetVar("user_wired_con_date_range"));
      *      }
      *
      *      wiredHandler.ReloadWired(wired12);
      *      break;
      *  }
      *
      * case Interaction.ConditionFurnisHaveUsers:
      * case Interaction.ConditionTriggerOnFurni:
      * case Interaction.ConditionFurniTypeMatches:
      * case Interaction.ConditionFurnisHaveNotUsers:
      * case Interaction.ConditionTriggererNotOnFurni:
      * case Interaction.ConditionFurniTypeDontMatch:
      *  {
      *      request.GetInteger();
      *      request.GetString();
      *      List<RoomItem> furniItems = GetFurniItems(request, room);
      *      IWiredItem wired12 = wiredHandler.GetWired(item);
      *
      *      wired12.Items = furniItems;
      *      wiredHandler.ReloadWired(wired12);
      *      break;
      *  }
      * case Interaction.ConditionFurniHasFurni:
      * case Interaction.ConditionFurniHasNotFurni:
      *  {
      *      request.GetInteger();
      *      bool allItems = request.GetIntegerAsBool();
      *      request.GetString();
      *
      *      List<RoomItem> furniItems = GetFurniItems(request, room);
      *      IWiredItem wired = wiredHandler.GetWired(item);
      *
      *      wired.OtherBool = allItems;
      *      wired.Items = furniItems;
      *      wiredHandler.ReloadWired(wired);
      *      break;
      *  }
      * case Interaction.ActionGiveScore:
      *  {
      *      request.GetInteger();
      *      int scoreToGive = request.GetInteger();
      *      int maxTimesPerGame = request.GetInteger();
      *
      *      string newExtraInfo = $"{scoreToGive},{maxTimesPerGame}";
      *
      *      List<RoomItem> furniItems8 = GetFurniItems(request, room);
      *      IWiredItem wired12 = wiredHandler.GetWired(item);
      *      wired12.Items = furniItems8;
      *      wired12.OtherString = newExtraInfo;
      *      wiredHandler.ReloadWired(wired12);
      *      break;
      *  }
      * case Interaction.ActionJoinTeam:
      *  {
      *      request.GetInteger();
      *      int team = request.GetInteger();
      *      IWiredItem wired = wiredHandler.GetWired(item);
      *      wired.Delay = team*500;
      *      wiredHandler.ReloadWired(wired);
      *      break;
      *  }
      * case Interaction.ActionBotTalk:
      *  {
      *      request.GetInteger();
      *      bool type = request.GetIntegerAsBool();
      *      string[] data = request.GetString().Split((char) 9);
      *      IWiredItem wired = wiredHandler.GetWired(item);
      *      wired.OtherBool = type;
      *      wired.OtherString = data[0];
      *      wired.OtherExtraString = data[1];
      *      wiredHandler.ReloadWired(wired);
      *      break;
      *  }
      * case Interaction.ActionBotClothes:
      *  {
      *      request.GetInteger();
      *      string[] data = request.GetString().Split((char) 9);
      *      IWiredItem wired = wiredHandler.GetWired(item);
      *      wired.OtherString = data[0];
      *      wired.OtherExtraString = data[1];
      *      wiredHandler.ReloadWired(wired);
      *      break;
      *  }
      * case Interaction.ActionBotTeleport:
      *  {
      *      request.GetInteger();
      *      string botName = request.GetString();
      *      List<RoomItem> furniItems = GetFurniItems(request, room);
      *      IWiredItem wired = wiredHandler.GetWired(item);
      *      wired.Items = furniItems;
      *      wired.OtherString = botName;
      *      wiredHandler.ReloadWired(wired);
      *      break;
      *  }
      * case Interaction.ActionBotGiveHanditem:
      *  {
      *      request.GetInteger();
      *      int handitem = request.GetInteger();
      *      string botName = request.GetString();
      *      IWiredItem wired = wiredHandler.GetWired(item);
      *      wired.OtherString = botName;
      *      wired.Delay = handitem*500;
      *      wiredHandler.ReloadWired(wired);
      *      break;
      *  }
      * case Interaction.ActionBotMove:
      *  {
      *      request.GetInteger();
      *      string botName = request.GetString();
      *      List<RoomItem> furniItems = GetFurniItems(request, room);
      *      IWiredItem wired = wiredHandler.GetWired(item);
      *      wired.Items = furniItems;
      *      wired.OtherString = botName;
      *      wiredHandler.ReloadWired(wired);
      *      break;
      *  }
      * case Interaction.ActionCallStacks:
      *  {
      *      request.GetInteger();
      *      request.GetString();
      *      List<RoomItem> furniItems = GetFurniItems(request, room);
      *      IWiredItem wired = wiredHandler.GetWired(item);
      *      int num = request.GetInteger();
      *      wired.Items = furniItems;
      *      wired.Delay = num*500;
      *      wiredHandler.ReloadWired(wired);
      *      break;
      *  }
      * case Interaction.ActionBotTalkToAvatar:
      *  {
      *      request.GetInteger();
      *      bool type = request.GetIntegerAsBool();
      *      string[] data = request.GetString().Split((char) 9);
      *      IWiredItem wired = wiredHandler.GetWired(item);
      *      wired.OtherBool = type;
      *      wired.OtherString = data[0];
      *      wired.OtherExtraString = data[1];
      *      wiredHandler.ReloadWired(wired);
      *      break;
      *  }
      * case Interaction.ConditionTimeMoreThan:
      * case Interaction.ConditionTimeLessThan:
      *  {
      *      request.GetInteger();
      *      int time = request.GetInteger();
      *      IWiredItem wired12 = wiredHandler.GetWired(item);
      *      Console.WriteLine(time);
      *      wired12.Delay = time*500;
      *      wiredHandler.ReloadWired(wired12);
      *      break;
      *  }
      * case Interaction.ConditionUserHasHanditem:
      *  {
      *      request.GetInteger();
      *      int handitem = request.GetInteger();
      *      IWiredItem wired = wiredHandler.GetWired(item);
      *      wired.Delay = handitem*500;
      *      wiredHandler.ReloadWired(wired);
      *      break;
      *  }
      * }
      *
      * session.Send(new SimpleServerMessageBuffer(PacketLibraryManager.OutgoingHandler("SaveWiredMessageComposer")));
      */
     throw new NotImplementedException();
 }
示例#25
0
 public bool IsCycleQueued(WiredItem Item)
 {
     return cycleItems.Contains(Item);
 }
示例#26
0
        public void RemoveWired(WiredItem Item)
        {
            if (!wiredItems.Contains(Item))
            {
                wiredItems.Remove(Item);
            }

            wiredItems.Remove(Item);
        }
示例#27
0
		public void AddWired(WiredItem Item)
		{
			if (this.wiredItems.Contains(Item))
			{
				this.wiredItems.Remove(Item);
			}
			this.wiredItems.Add(Item);
		}
示例#28
0
 public void OnEvent(WiredItem Item)
 {
     Item.Item.ExtraData = "1";
     Item.Item.UpdateState(false, true);
     Item.Item.ReqUpdate(1, true);
 }
示例#29
0
		public void RemoveWired(WiredItem Item)
		{
			if (!this.wiredItems.Contains(Item))
			{
				this.wiredItems.Remove(Item);
			}
			this.wiredItems.Remove(Item);
		}
示例#30
0
 public void ReloadWired(WiredItem Item)
 {
     this.SaveWired(Item);
     this.RemoveWired(Item);
     this.AddWired(Item);
 }
示例#31
0
 public void OnEvent(WiredItem Item)
 {
     Item.Item.ExtraData = Item.Item.ExtraData == "0" ? "1" : "0";
     Item.Item.UpdateState(false, true);
     Item.Item.ReqUpdate(1, true);
 }