示例#1
0
 internal List<RoomItem> method_24(GameClient Session)
 {
     List<RoomItem> list = new List<RoomItem>();
     foreach (RoomItem @class in this.Hashtable_0.Values)
     {
         @class.Class69_0.OnRemove(Session, @class);
         ServerMessage Message = new ServerMessage(94u);
         Message.AppendRawUInt(@class.uint_0);
         Message.AppendStringWithBreak("");
         Message.AppendBoolean(false);
         this.SendMessage(Message, null);
         list.Add(@class);
     }
     foreach (RoomItem @class in this.Hashtable_1.Values)
     {
         @class.Class69_0.OnRemove(Session, @class);
         ServerMessage Message = new ServerMessage(84u);
         Message.AppendRawUInt(@class.uint_0);
         Message.AppendStringWithBreak("");
         Message.AppendBoolean(false);
         this.SendMessage(Message, null);
         list.Add(@class);
     }
     this.hashtable_4.Clear();
     this.hashtable_0.Clear();
     this.hashtable_1.Clear();
     this.hashtable_2.Clear();
     this.hashtable_3.Clear();
     using (DatabaseClient class2 = GoldTree.GetDatabase().GetClient())
     {
         class2.ExecuteQuery(string.Concat(new object[]
         {
             "UPDATE items SET room_id = 0, user_id = '",
             Session.GetHabbo().Id,
             "' WHERE room_id = '",
             this.Id,
             "'"
         }));
     }
     this.method_22();
     this.method_83();
     return list;
 }
示例#2
0
 public void method_29(GameClient Session, uint uint_2, bool bool_13, bool bool_14)
 {
     RoomItem @class = this.method_28(uint_2);
     if (@class != null)
     {
         Dictionary<int, AffectedTile> dictionary = this.method_94(@class.GetBaseItem().Length, @class.GetBaseItem().Width, @class.Int32_0, @class.Int32_1, @class.int_3);
         @class.Class69_0.OnRemove(Session, @class);
         if (@class.Boolean_1)
         {
             ServerMessage Message = new ServerMessage(84u);
             Message.AppendRawUInt(@class.uint_0);
             Message.AppendStringWithBreak("");
             Message.AppendBoolean(false);
             this.SendMessage(Message, null);
         }
         else
         {
             if (@class.Boolean_2)
             {
                 ServerMessage Message = new ServerMessage(94u);
                 Message.AppendRawUInt(@class.uint_0);
                 Message.AppendStringWithBreak("");
                 Message.AppendBoolean(false);
                 this.SendMessage(Message, null);
                 string text = @class.GetBaseItem().InteractionType.ToLower();
                 switch (text)
                 {
                     case "bb_patch":
                         this.list_5.Remove(@class);
                         if (@class.ExtraData == "5")
                         {
                             this.list_6.Remove(@class);
                         }
                         else
                         {
                             if (@class.ExtraData == "8")
                             {
                                 this.list_7.Remove(@class);
                             }
                             else
                             {
                                 if (@class.ExtraData == "11")
                                 {
                                     this.list_9.Remove(@class);
                                 }
                                 else
                                 {
                                     if (@class.ExtraData == "14")
                                     {
                                         this.list_8.Remove(@class);
                                     }
                                 }
                             }
                         }
                         break;
                     case "blue_score":
                         this.list_12.Remove(@class);
                         break;
                     case "green_score":
                         this.list_13.Remove(@class);
                         break;
                     case "red_score":
                         this.list_10.Remove(@class);
                         break;
                     case "yellow_score":
                         this.list_11.Remove(@class);
                         break;
                     case "stickiepole":
                         this.list_3.Remove(@class);
                         break;
                     case "wf_trg_onsay":
                     case "wf_trg_enterroom":
                     case "wf_trg_furnistate":
                     case "wf_trg_onfurni":
                     case "wf_trg_offfurni":
                     case "wf_trg_gameend":
                     case "wf_trg_gamestart":
                     case "wf_trg_atscore":
                         this.list_14.Remove(@class);
                         break;
                     case "wf_trg_attime":
                         @class.bool_0 = false;
                         this.list_14.Remove(@class);
                         break;
                     case "wf_trg_timer":
                         @class.bool_0 = false;
                         this.list_14.Remove(@class);
                         break;
                     case "wf_act_saymsg":
                     case "wf_act_kick_user":
                     case "wf_act_moveuser":
                     case "wf_act_togglefurni":
                     case "wf_act_givepoints":
                     case "wf_act_moverotate":
                     case "wf_act_matchfurni":
                     case "wf_act_give_phx":
                         this.list_15.Remove(@class);
                         break;
                     case "wf_cnd_trggrer_on_frn":
                     case "wf_cnd_furnis_hv_avtrs":
                     case "wf_cnd_has_furni_on":
                     case "wf_cnd_match_snapshot":
                     case "wf_cnd_time_more_than":
                     case "wf_cnd_time_less_than":
                     case "wf_cnd_phx":
                         this.list_16.Remove(@class);
                         break;
                     case "freeze_tile":
                         this.GetFreeze().RemoveFreezeTile(@class);
                         break;
                     case "freeze_ice_block":
                         this.GetFreeze().RemoveFreezeBlock(@class);
                         break;
                     case "freeze_exit":
                         RoomItem exitTeleport = this.GetFreeze().ExitTeleport;
                         if ((exitTeleport != null) && (@class.uint_0 == exitTeleport.uint_0))
                         {
                             this.GetFreeze().ExitTeleport = null;
                         }
                         break;
                     case "freeze_blue_gate":
                         this.GetGameManager().RemoveFreezeGate(@class);
                         break;
                     case "freeze_red_gate":
                         this.GetGameManager().RemoveFreezeGate(@class);
                         break;
                     case "freeze_green_gate":
                         this.GetGameManager().RemoveFreezeGate(@class);
                         break;
                     case "freeze_yellow_gate":
                         this.GetGameManager().RemoveFreezeGate(@class);
                         break;
                     case "freeze_blue_score":
                         this.GetGameManager().RemoveFreezeScoreboard(@class);
                         break;
                     case "freeze_red_score":
                         this.GetGameManager().RemoveFreezeScoreboard(@class);
                         break;
                     case "freeze_green_score":
                         this.GetGameManager().RemoveFreezeScoreboard(@class);
                         break;
                     case "freeze_yellow_score":
                         this.GetGameManager().RemoveFreezeScoreboard(@class);
                         break;
                 }
             }
         }
         if (@class.Boolean_1)
         {
             this.hashtable_4.Remove(@class.uint_0);
         }
         else
         {
             this.hashtable_0.Remove(@class.uint_0);
         }
         if (this.hashtable_3.Contains(@class.uint_0))
         {
             this.hashtable_3.Remove(@class.uint_0);
         }
         if (this.hashtable_2.Contains(@class.uint_0))
         {
             this.hashtable_2.Remove(@class.uint_0);
         }
         if (!this.hashtable_1.Contains(@class.uint_0))
         {
             this.hashtable_1.Add(@class.uint_0, @class);
         }
         if (bool_13)
         {
             using (DatabaseClient class2 = GoldTree.GetDatabase().GetClient())
             {
                 class2.ExecuteQuery("DELETE FROM items WHERE Id = '" + uint_2 + "' LIMIT 1");
             }
         }
         if (bool_14)
         {
             this.method_22();
         }
         this.method_87(this.method_43(@class.Int32_0, @class.Int32_1), true, true);
         foreach (AffectedTile current in dictionary.Values)
         {
             this.method_87(this.method_43(current.Int32_0, current.Int32_1), true, true);
         }
     }
 }