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; }
public void EnqueueCycle(WiredItem Item) { if (!this.cycleItems.Contains(Item)) { this.cycleItems.Enqueue(Item); } }
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(); } }
public void RemoveWired(WiredItem Item) { if (!this.wiredItems.Contains(Item)) { this.wiredItems.Remove(Item); } this.wiredItems.Remove(Item); }
public void AddWired(WiredItem Item) { if (this.wiredItems.Contains(Item)) { this.wiredItems.Remove(Item); } this.wiredItems.Add(Item); }
public void AddWired(WiredItem Item) { if (wiredItems.Contains(Item)) { wiredItems.Remove(Item); } wiredItems.Add(Item); }
public void MoveWired(RoomItem Item) { WiredItem wired = this.GetWired(Item); if (wired == null) { return; } wired.Item = Item; this.RemoveWired(Item); this.AddWired(wired); }
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); }
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; }
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); }
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(); } } }
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(); } } }
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; }
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); }
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; } } }
public void EnqueueCycle(WiredItem Item) { if(!cycleItems.Contains(Item)) cycleItems.Enqueue(Item); }
public void ReloadWired(WiredItem Item) { SaveWired(Item); RemoveWired(Item); AddWired(Item); }
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; }
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; }
public void ReloadWired(WiredItem Item) { this.SaveWired(Item); this.RemoveWired(Item); this.AddWired(Item); }
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)); } }
public bool IsCycleQueued(WiredItem Item) { return(this.cycleItems.Contains(Item)); }
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(); } }
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(); }
public bool IsCycleQueued(WiredItem Item) { return cycleItems.Contains(Item); }
public void RemoveWired(WiredItem Item) { if (!wiredItems.Contains(Item)) { wiredItems.Remove(Item); } wiredItems.Remove(Item); }
public void OnEvent(WiredItem Item) { Item.Item.ExtraData = "1"; Item.Item.UpdateState(false, true); Item.Item.ReqUpdate(1, true); }
public void OnEvent(WiredItem Item) { Item.Item.ExtraData = Item.Item.ExtraData == "0" ? "1" : "0"; Item.Item.UpdateState(false, true); Item.Item.ReqUpdate(1, true); }