SHARE
TWEET

Untitled

a guest Feb 26th, 2020 130 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. using Butterfly.HabboHotel.GameClients;
  2. using Butterfly.HabboHotel.Rooms.Wired.WiredHandlers.Interfaces;
  3. using Butterfly.Communication.Packets.Outgoing;
  4. using Butterfly.Communication.Packets.Outgoing.Structure;
  5. using Butterfly.HabboHotel.Items;
  6. using Butterfly.Database.Interfaces;
  7. using System.Data;
  8. using System.Collections.Generic;
  9. using Butterfly.HabboHotel.Roleplay;
  10. using Butterfly.HabboHotel.Roleplay.Player;
  11. using Butterfly.HabboHotel.Roleplay.Enemy;
  12. using Butterfly.Communication.Packets.Outgoing.WebSocket;
  13. using System.Linq;
  14.  
  15. namespace Butterfly.HabboHotel.Rooms.Wired.WiredHandlers.Effects
  16. {
  17.     public class SuperWired : IWired, IWiredEffect, IWiredCycleable
  18.     {
  19.         private readonly WiredHandler handler;
  20.         private readonly int itemID;
  21.         private string message;
  22.         public int Delay { get; set; }
  23.         private bool disposed;
  24.  
  25.         public SuperWired(string message, int mdelay, bool GodPermission, bool StaffPermission, WiredHandler handler, int itemID)
  26.         {
  27.             this.itemID = itemID;
  28.             this.handler = handler;
  29.             this.message = "";
  30.            
  31.             this.Delay = mdelay;
  32.             this.disposed = false;
  33.  
  34.             string effet = "";
  35.  
  36.             if (message.Contains(":"))
  37.                 effet = message.Split(new char[] { ':' })[0].ToLower();
  38.             else
  39.                 effet = message;
  40.  
  41.             switch (effet)
  42.             {
  43.                 case "rpsendtimeuser":
  44.                 case "rptimespeed":
  45.                 case "cyclehoureffect":
  46.                 case "setenemy":
  47.                 case "enemyaggrostop":
  48.                 case "enemyaggrostart":
  49.                 case "addenemy":
  50.                 case "removeenemy":
  51.                 case "userpvp":
  52.                 case "pvp":
  53.                 case "addmunition":
  54.                 case "munition":
  55.                 case "rpsay":
  56.                 case "rpsayme":
  57.                 case "rpexp":
  58.                 case "rpremoveexp":
  59.                 case "removemoney":
  60.                 case "addmoney":
  61.                 case "work":
  62.                 case "health":
  63.                 case "healthplus":
  64.                 case "hit":
  65.                 case "weaponfarid":
  66.                 case "weaponcacid":
  67.                 case "removeenergy":
  68.                 case "addenergy":
  69.                 case "allowitemsbuy":
  70.                 case "inventoryadd":
  71.                 case "inventoryremove":
  72.                 case "sendroomid":
  73.                 case "botchoose":
  74.                     if (this.handler.GetRoom().RpRoom)
  75.                         this.message = message;
  76.                     else
  77.                         this.message = "";
  78.                     break;
  79.  
  80.                 case "alert":
  81.                 case "send":
  82.                 case "enablestaff":
  83.                 case "teleportdisabled":
  84.                 case "roomingamechat":
  85.                 case "jackanddaisy":
  86.                 case "openpage":
  87.                 case "playsounduser":
  88.                 case "playsoundroom":
  89.                 case "playmusicroom":
  90.                 case "playmusicuser":
  91.                 case "stopsounduser":
  92.                 case "stopsoundroom":
  93.                     if (StaffPermission)
  94.                         this.message = message;
  95.                     else
  96.                         this.message = "";
  97.                     break;
  98.                 case "badge":
  99.                 case "achievement":
  100.                 case "givelot":
  101.                     if (GodPermission)
  102.                         this.message = message;
  103.                     else
  104.                         this.message = "";
  105.                     break;
  106.                 case "moveto":
  107.                 case "reversewalk":
  108.                 case "speedwalk":
  109.                 case "configbot":
  110.                 case "rot":
  111.                 case "roommute":
  112.                 case "enable":
  113.                 case "dance":
  114.                 case "sit":
  115.                 case "lay":
  116.                 case "handitem":
  117.                 case "setspeed":
  118.                 case "freeze":
  119.                 case "unfreeze":
  120.                 case "roomdiagonal":
  121.                 case "roomoblique":
  122.                 case "point":
  123.                 case "usertimer":
  124.                 case "addusertimer":
  125.                 case "removeusertimer":
  126.                 case "addpoint":
  127.                 case "removepoint":
  128.                 case "ingame":
  129.                 case "setitemmode":
  130.                 case "addpointteam":
  131.                 case "breakwalk":
  132.                 case "allowshoot":
  133.                 case "transf":
  134.                 case "transfstop":
  135.                 case "pushpull":
  136.                     this.message = message;
  137.                     break;
  138.                 default:
  139.                     this.message = "";
  140.                     break;
  141.             }
  142.         }
  143.  
  144.         public bool OnCycle(RoomUser user, Item item)
  145.         {
  146.             this.HandleEffect(user, item);
  147.             return false;
  148.         }
  149.  
  150.         public bool Disposed()
  151.         {
  152.             return this.disposed;
  153.         }
  154.  
  155.         public void Handle(RoomUser user, Item TriggerItem)
  156.         {
  157.             if (string.IsNullOrEmpty(this.message) || this.message == ":")
  158.                 return;
  159.  
  160.             if (this.Delay > 0)
  161.                 this.handler.RequestCycle(new WiredCycle(this, user, TriggerItem, this.Delay));
  162.             else
  163.                 this.HandleEffect(user, TriggerItem);
  164.         }
  165.  
  166.         private void HandleEffect(RoomUser User, Item TriggerItem)
  167.         {
  168.             if (string.IsNullOrEmpty(this.message) || this.message == ":")
  169.                 return;
  170.  
  171.             string Cmd = "";
  172.             string Value = "";
  173.  
  174.             if (this.message.Contains(":"))
  175.             {
  176.                 Cmd = this.message.Split(new char[] { ':' })[0].ToLower();
  177.                 Value = this.message.Split(new char[] { ':' })[1];
  178.             }
  179.             else
  180.             {
  181.                 Cmd = this.message;
  182.             }
  183.  
  184.             RpCommand(Cmd, Value, this.handler.GetRoom(), User, TriggerItem);
  185.             UserCommand(Cmd, Value, User, TriggerItem);
  186.             RoomCommand(Cmd, Value, this.handler.GetRoom(), TriggerItem, User);
  187.             BotCommand(Cmd, Value, User, TriggerItem);
  188.         }
  189.  
  190.         private void RpCommand(string Cmd, string Value, Room Room, RoomUser User, Item TriggerItem)
  191.         {
  192.             if (Room == null || !Room.RpRoom)
  193.                 return;
  194.  
  195.             if (User == null || User.GetClient() == null)
  196.                 return;
  197.  
  198.             RolePlayer Rp = User.Roleplayer;
  199.             if (Rp == null)
  200.                 return;
  201.  
  202.             switch (Cmd)
  203.             {
  204.                 case "botchoose":
  205.                     {
  206.                         List<string[]> ChooseList = new List<string[]>();
  207.                         if (string.IsNullOrEmpty(Value))
  208.                         {
  209.                             Rp.SendWebPacket(new BotChooseComposer(ChooseList));
  210.                             break;
  211.                         }
  212.  
  213.                         if (Value.Contains(","))
  214.                         {
  215.                             foreach (string pChoose in Value.Split(','))
  216.                             {
  217.                                 List<string> list = pChoose.Split(';').ToList();
  218.                                 if (list.Count == 3)
  219.                                 {
  220.                                     RoomUser BotOrPet = Room.GetRoomUserManager().GetBotByName(list[0]);
  221.                                     if (BotOrPet != null && BotOrPet.BotData != null)
  222.                                         list.Add(BotOrPet.BotData.Look);
  223.                                     else
  224.                                         list.Add("");
  225.  
  226.                                     ChooseList.Add(list.ToArray());
  227.                                 }
  228.                             }
  229.                         }
  230.                         else
  231.                         {
  232.                             List<string> list = Value.Split(';').ToList();
  233.                             if (list.Count == 3)
  234.                             {
  235.                                 RoomUser BotOrPet = Room.GetRoomUserManager().GetBotByName(list[0]);
  236.                                 if (BotOrPet != null && BotOrPet.BotData != null)
  237.                                     list.Add(BotOrPet.BotData.Look);
  238.                                 else
  239.                                     list.Add("");
  240.  
  241.                                 ChooseList.Add(list.ToArray());
  242.                             }
  243.                         }
  244.                         Rp.SendWebPacket(new BotChooseComposer(ChooseList));
  245.                         break;
  246.                     }
  247.                 case "rpsendtimeuser":
  248.                     {
  249.                         User.SendWhisperChat("Il est " + Room.RpHour + " heures et " + Room.RpMinute + " minutes");
  250.                         break;
  251.                     }
  252.                 case "setenemy":
  253.                     {
  254.                         string[] Params = Value.Split(';');
  255.                         if (Params.Length != 3)
  256.                             break;
  257.  
  258.                         RoomUser BotOrPet = Room.GetRoomUserManager().GetBotOrPetByName(Params[0]);
  259.                         if (BotOrPet == null || BotOrPet.BotData == null || BotOrPet.BotData.RoleBot == null)
  260.                             break;
  261.  
  262.                         RPEnemy RPEnemyConfig = null;
  263.  
  264.                         if(!BotOrPet.IsPet)
  265.                             RPEnemyConfig = ButterflyEnvironment.GetGame().GetRoleplayManager().GetEnemyManager().GetEnemyBot(BotOrPet.BotData.Id);
  266.                         else
  267.                             RPEnemyConfig = ButterflyEnvironment.GetGame().GetRoleplayManager().GetEnemyManager().GetEnemyPet(BotOrPet.BotData.Id);
  268.  
  269.                         if (RPEnemyConfig == null)
  270.                             break;
  271.  
  272.                         switch (Params[1])
  273.                         {
  274.                             case "health":
  275.                                 {
  276.                                     if (!int.TryParse(Params[2], out int ParamInt))
  277.                                         break;
  278.  
  279.                                     if (ParamInt <= 0)
  280.                                         ParamInt = 0;
  281.                                     if (ParamInt > 9999)
  282.                                         ParamInt = 9999;
  283.  
  284.                                     RPEnemyConfig.Health = ParamInt;
  285.                                     BotOrPet.BotData.RoleBot.SetConfig(RPEnemyConfig);
  286.  
  287.                                     using (IQueryAdapter queryreactor = ButterflyEnvironment.GetDatabaseManager().GetQueryReactor())
  288.                                         queryreactor.RunQuery("UPDATE roleplay_enemy SET health = '"+ ParamInt + "' WHERE id = '"+ RPEnemyConfig.Id + "'");
  289.  
  290.                                     break;
  291.                                 }
  292.                             case "weaponfarid":
  293.                                 {
  294.                                     if (!int.TryParse(Params[2], out int ParamInt))
  295.                                         break;
  296.  
  297.                                     if (ParamInt <= 0)
  298.                                         ParamInt = 0;
  299.                                     if (ParamInt > 9999)
  300.                                         ParamInt = 9999;
  301.  
  302.                                     RPEnemyConfig.WeaponGunId = ParamInt;
  303.                                     BotOrPet.BotData.RoleBot.SetConfig(RPEnemyConfig);
  304.  
  305.                                     using (IQueryAdapter queryreactor = ButterflyEnvironment.GetDatabaseManager().GetQueryReactor())
  306.                                         queryreactor.RunQuery("UPDATE roleplay_enemy SET weaponFarId = '" + ParamInt + "' WHERE id = '" + RPEnemyConfig.Id + "'");
  307.                                     break;
  308.                                 }
  309.                             case "weaponcacid":
  310.                                 {
  311.                                     if (!int.TryParse(Params[2], out int ParamInt))
  312.                                         break;
  313.  
  314.                                     if (ParamInt <= 0)
  315.                                         ParamInt = 0;
  316.                                     if (ParamInt > 9999)
  317.                                         ParamInt = 9999;
  318.  
  319.                                     RPEnemyConfig.WeaponCacId = ParamInt;
  320.                                     BotOrPet.BotData.RoleBot.SetConfig(RPEnemyConfig);
  321.  
  322.                                     using (IQueryAdapter queryreactor = ButterflyEnvironment.GetDatabaseManager().GetQueryReactor())
  323.                                         queryreactor.RunQuery("UPDATE roleplay_enemy SET weaponCacId = '" + ParamInt + "' WHERE id = '" + RPEnemyConfig.Id + "'");
  324.                                     break;
  325.                                 }
  326.                             case "deadtimer":
  327.                                 {
  328.                                     if (!int.TryParse(Params[2], out int ParamInt))
  329.                                         break;
  330.  
  331.                                     if (ParamInt <= 0)
  332.                                         ParamInt = 0;
  333.                                     if (ParamInt > 9999)
  334.                                         ParamInt = 9999;
  335.  
  336.                                     RPEnemyConfig.DeadTimer = ParamInt;
  337.                                     BotOrPet.BotData.RoleBot.SetConfig(RPEnemyConfig);
  338.  
  339.                                     using (IQueryAdapter queryreactor = ButterflyEnvironment.GetDatabaseManager().GetQueryReactor())
  340.                                         queryreactor.RunQuery("UPDATE roleplay_enemy SET deadTimer = '" + ParamInt + "' WHERE id = '" + RPEnemyConfig.Id + "'");
  341.                                     break;
  342.                                 }
  343.                             case "lootitemid":
  344.                                 {
  345.                                     int ParamInt = 0;
  346.                                     if (!int.TryParse(Params[2], out ParamInt))
  347.                                         break;
  348.  
  349.                                     if (ParamInt <= 0)
  350.                                         ParamInt = 0;
  351.                                     if (ParamInt > 9999)
  352.                                         ParamInt = 9999;
  353.  
  354.                                     RPEnemyConfig.LootItemId = ParamInt;
  355.                                     BotOrPet.BotData.RoleBot.SetConfig(RPEnemyConfig);
  356.  
  357.                                     using (IQueryAdapter queryreactor = ButterflyEnvironment.GetDatabaseManager().GetQueryReactor())
  358.                                         queryreactor.RunQuery("UPDATE roleplay_enemy SET lootItemId = '" + ParamInt + "' WHERE id = '" + RPEnemyConfig.Id + "'");
  359.                                     break;
  360.                                 }
  361.                             case "moneydrop":
  362.                                 {
  363.                                     if (!int.TryParse(Params[2], out int ParamInt))
  364.                                         break;
  365.  
  366.                                     if (ParamInt <= 0)
  367.                                         ParamInt = 0;
  368.                                     if (ParamInt > 9999)
  369.                                         ParamInt = 9999;
  370.  
  371.                                     RPEnemyConfig.MoneyDrop = ParamInt;
  372.                                     BotOrPet.BotData.RoleBot.SetConfig(RPEnemyConfig);
  373.  
  374.                                     using (IQueryAdapter queryreactor = ButterflyEnvironment.GetDatabaseManager().GetQueryReactor())
  375.                                         queryreactor.RunQuery("UPDATE roleplay_enemy SET moneyDrop = '" + ParamInt + "' WHERE id = '" + RPEnemyConfig.Id + "'");
  376.                                     break;
  377.                                 }
  378.                             case "teamid":
  379.                                 {
  380.                                     if (!int.TryParse(Params[2], out int ParamInt))
  381.                                         break;
  382.  
  383.                                     if (ParamInt <= 0)
  384.                                         ParamInt = 0;
  385.                                     if (ParamInt > 9999)
  386.                                         ParamInt = 9999;
  387.  
  388.                                     RPEnemyConfig.TeamId = ParamInt;
  389.                                     BotOrPet.BotData.RoleBot.SetConfig(RPEnemyConfig);
  390.  
  391.                                     using (IQueryAdapter queryreactor = ButterflyEnvironment.GetDatabaseManager().GetQueryReactor())
  392.                                         queryreactor.RunQuery("UPDATE roleplay_enemy SET teamId = '" + ParamInt + "' WHERE id = '" + RPEnemyConfig.Id + "'");
  393.                                     break;
  394.                                 }
  395.                             case "aggrodistance":
  396.                                 {
  397.                                     if (!int.TryParse(Params[2], out int ParamInt))
  398.                                         break;
  399.  
  400.                                     if (ParamInt <= 0)
  401.                                         ParamInt = 0;
  402.                                     if (ParamInt > 9999)
  403.                                         ParamInt = 9999;
  404.  
  405.                                     RPEnemyConfig.AggroDistance = ParamInt;
  406.                                     BotOrPet.BotData.RoleBot.SetConfig(RPEnemyConfig);
  407.  
  408.                                     using (IQueryAdapter queryreactor = ButterflyEnvironment.GetDatabaseManager().GetQueryReactor())
  409.                                         queryreactor.RunQuery("UPDATE roleplay_enemy SET aggroDistance = '" + ParamInt + "' WHERE id = '" + RPEnemyConfig.Id + "'");
  410.                                     break;
  411.                                 }
  412.                             case "zonedistance":
  413.                                 {
  414.                                     if (!int.TryParse(Params[2], out int ParamInt))
  415.                                         break;
  416.  
  417.                                     if (ParamInt <= 0)
  418.                                         ParamInt = 0;
  419.                                     if (ParamInt > 9999)
  420.                                         ParamInt = 9999;
  421.  
  422.                                     RPEnemyConfig.ZoneDistance = ParamInt;
  423.                                     BotOrPet.BotData.RoleBot.SetConfig(RPEnemyConfig);
  424.  
  425.                                     using (IQueryAdapter queryreactor = ButterflyEnvironment.GetDatabaseManager().GetQueryReactor())
  426.                                         queryreactor.RunQuery("UPDATE roleplay_enemy SET zoneDistance = '" + ParamInt + "' WHERE id = '" + RPEnemyConfig.Id + "'");
  427.                                     break;
  428.                                 }
  429.                             case "resetposition":
  430.                                 {
  431.                                     RPEnemyConfig.ResetPosition = (Params[2] == "true");
  432.                                     BotOrPet.BotData.RoleBot.SetConfig(RPEnemyConfig);
  433.  
  434.                                     using (IQueryAdapter queryreactor = ButterflyEnvironment.GetDatabaseManager().GetQueryReactor())
  435.                                         queryreactor.RunQuery("UPDATE roleplay_enemy SET resetPosition = '" + ButterflyEnvironment.BoolToEnum(RPEnemyConfig.ResetPosition) + "' WHERE id = '" + RPEnemyConfig.Id + "'");
  436.                                     break;
  437.                                 }
  438.                             case "lostaggrodistance":
  439.                                 {
  440.                                     if (!int.TryParse(Params[2], out int ParamInt))
  441.                                         break;
  442.  
  443.                                     if (ParamInt <= 0)
  444.                                         ParamInt = 0;
  445.                                     if (ParamInt > 9999)
  446.                                         ParamInt = 9999;
  447.  
  448.                                     RPEnemyConfig.LostAggroDistance = ParamInt;
  449.                                     BotOrPet.BotData.RoleBot.SetConfig(RPEnemyConfig);
  450.  
  451.                                     using (IQueryAdapter queryreactor = ButterflyEnvironment.GetDatabaseManager().GetQueryReactor())
  452.                                         queryreactor.RunQuery("UPDATE roleplay_enemy SET lostAggroDistance = '" + ParamInt + "' WHERE id = '" + RPEnemyConfig.Id + "'");
  453.                                     break;
  454.                                 }
  455.                             case "zombiemode":
  456.                                 {
  457.                                     RPEnemyConfig.ZombieMode = (Params[2] == "true");
  458.                                     BotOrPet.BotData.RoleBot.SetConfig(RPEnemyConfig);
  459.  
  460.                                     using (IQueryAdapter queryreactor = ButterflyEnvironment.GetDatabaseManager().GetQueryReactor())
  461.                                         queryreactor.RunQuery("UPDATE roleplay_enemy SET zombieMode = '" + ButterflyEnvironment.BoolToEnum(RPEnemyConfig.ZombieMode) + "' WHERE id = '" + RPEnemyConfig.Id + "'");
  462.                                     break;
  463.                                 }
  464.                         }
  465.                         break;
  466.                     }
  467.                 case "removeenemy":
  468.                     {
  469.                         RoomUser BotOrPet = Room.GetRoomUserManager().GetBotOrPetByName(Value);
  470.                         if (BotOrPet == null || BotOrPet.BotData == null || BotOrPet.BotData.RoleBot == null)
  471.                             break;
  472.  
  473.                         if (!BotOrPet.IsPet)
  474.                         {
  475.                             ButterflyEnvironment.GetGame().GetRoleplayManager().GetEnemyManager().RemoveEnemyBot(BotOrPet.BotData.Id);
  476.                             BotOrPet.BotData.RoleBot = null;
  477.                             BotOrPet.BotData.AiType = RoomBots.AIType.Generic;
  478.                             BotOrPet.BotData.GenerateBotAI(BotOrPet.VirtualId);
  479.                         }
  480.                         else
  481.                         {
  482.                             ButterflyEnvironment.GetGame().GetRoleplayManager().GetEnemyManager().RemoveEnemyPet(BotOrPet.BotData.Id);
  483.                             BotOrPet.BotData.RoleBot = null;
  484.                             BotOrPet.BotData.AiType = RoomBots.AIType.Pet;
  485.                             BotOrPet.BotData.GenerateBotAI(BotOrPet.VirtualId);
  486.                         }
  487.                         break;
  488.                     }
  489.                 case "addenemy":
  490.                     {
  491.                         RoomUser BotOrPet = Room.GetRoomUserManager().GetBotOrPetByName(Value);
  492.                         if (BotOrPet == null || BotOrPet.BotData == null || BotOrPet.BotData.RoleBot != null)
  493.                                 break;
  494.  
  495.                         if (!BotOrPet.IsPet)
  496.                         {
  497.                             RPEnemy RPEnemyConfig = ButterflyEnvironment.GetGame().GetRoleplayManager().GetEnemyManager().AddEnemyBot(BotOrPet.BotData.Id);
  498.                             if (RPEnemyConfig != null)
  499.                             {
  500.                                 BotOrPet.BotData.RoleBot = new RoleBot(RPEnemyConfig);
  501.                                 BotOrPet.BotData.AiType = RoomBots.AIType.RolePlayBot;
  502.                                 BotOrPet.BotData.GenerateBotAI(BotOrPet.VirtualId);
  503.                             }
  504.                         }
  505.                         else
  506.                         {
  507.                             RPEnemy RPEnemyConfig = ButterflyEnvironment.GetGame().GetRoleplayManager().GetEnemyManager().AddEnemyPet(BotOrPet.BotData.Id);
  508.                             if (RPEnemyConfig != null)
  509.                             {
  510.                                 BotOrPet.BotData.RoleBot = new RoleBot(RPEnemyConfig);
  511.                                 BotOrPet.BotData.AiType = RoomBots.AIType.RolePlayPet;
  512.                                 BotOrPet.BotData.GenerateBotAI(BotOrPet.VirtualId);
  513.                             }
  514.                         }
  515.                         break;
  516.                     }
  517.                 case "enemyaggrostop":
  518.                     {
  519.                         RoomUser BotOrPet = Room.GetRoomUserManager().GetBotOrPetByName(Value);
  520.                         if (BotOrPet == null || BotOrPet.BotData == null || BotOrPet.BotData.RoleBot == null)
  521.                                 break;
  522.  
  523.                         BotOrPet.BotData.RoleBot.ResetAggro();
  524.  
  525.                         break;
  526.                     }
  527.                 case "enemyaggrostart":
  528.                     {
  529.                         RoomUser BotOrPet = Room.GetRoomUserManager().GetBotOrPetByName(Value);
  530.                         if (BotOrPet == null || BotOrPet.BotData == null || BotOrPet.BotData.RoleBot == null)
  531.                                 break;
  532.  
  533.                         BotOrPet.BotData.RoleBot.AggroVirtuelId = User.VirtualId;
  534.                         BotOrPet.BotData.RoleBot.AggroTimer = 0;
  535.  
  536.                         break;
  537.                     }
  538.                 case "sendroomid":
  539.                     {
  540.                         int RoomId;
  541.                         if (int.TryParse(Value, out RoomId))
  542.                         {
  543.                             Room room = ButterflyEnvironment.GetGame().GetRoomManager().LoadRoom(RoomId);
  544.                             if (room != null && room.RoomData.OwnerId == Room.RoomData.OwnerId)
  545.                             {
  546.                                 User.GetClient().GetHabbo().IsTeleporting = true;
  547.                                 User.GetClient().GetHabbo().TeleportingRoomID = RoomId;
  548.                                 User.GetClient().GetHabbo().PrepareRoom(RoomId, "");
  549.                             }
  550.                         }
  551.                         break;
  552.                     }
  553.                 case "inventoryadd":
  554.                     {
  555.                         int ItemId = 0;
  556.                         int.TryParse(Value, out ItemId);
  557.  
  558.                         RPItem RpItem = ButterflyEnvironment.GetGame().GetRoleplayManager().GetItemManager().GetItem(ItemId);
  559.                         if (RpItem == null)
  560.                             break;
  561.  
  562.                         Rp.AddInventoryItem(RpItem.Id);
  563.                         break;
  564.                     }
  565.                 case "inventoryremove":
  566.                     {
  567.                         int ItemId = 0;
  568.                         int.TryParse(Value, out ItemId);
  569.  
  570.                         RPItem RpItem = ButterflyEnvironment.GetGame().GetRoleplayManager().GetItemManager().GetItem(ItemId);
  571.                         if (RpItem == null)
  572.                             break;
  573.  
  574.                         Rp.RemoveInventoryItem(RpItem.Id);
  575.                         break;
  576.                     }
  577.                 case "userpvp":
  578.                     {
  579.                         if (Value == "true")
  580.                             Rp.PvpEnable = true;
  581.                         else
  582.                             Rp.PvpEnable = false;
  583.                         break;
  584.                     }
  585.                 case "allowitemsbuy":
  586.                     {
  587.                         List<RPItem> ItemsList = new List<RPItem>();
  588.                         User.AllowBuyItems.Clear();
  589.  
  590.                         if (string.IsNullOrEmpty(Value))
  591.                         {
  592.                             Rp.SendItemsList(ItemsList);
  593.                             break;
  594.                         }
  595.  
  596.                         if (Value.Contains(","))
  597.                         {
  598.                             foreach (string pId in Value.Split(','))
  599.                             {
  600.                                 int Id = 0;
  601.                                 if (!int.TryParse(pId, out Id))
  602.                                     continue;
  603.  
  604.                                 RPItem RpItem = ButterflyEnvironment.GetGame().GetRoleplayManager().GetItemManager().GetItem(Id);
  605.                                 if (RpItem == null)
  606.                                     continue;
  607.                                 ItemsList.Add(RpItem);
  608.                                 User.AllowBuyItems.Add(Id);
  609.                             }
  610.                         }
  611.                         else
  612.                         {
  613.                             int Id = 0;
  614.                             if (!int.TryParse(Value, out Id))
  615.                                 break;
  616.  
  617.                             RPItem RpItem = ButterflyEnvironment.GetGame().GetRoleplayManager().GetItemManager().GetItem(Id);
  618.                             if (RpItem == null)
  619.                                 break;
  620.                             ItemsList.Add(RpItem);
  621.                             User.AllowBuyItems.Add(Id);
  622.                         }
  623.  
  624.                         Rp.SendItemsList(ItemsList);
  625.  
  626.                         break;
  627.                     }
  628.                 case "removeenergy":
  629.                     {
  630.                         int Nb = 0;
  631.                         int.TryParse(Value, out Nb);
  632.  
  633.                         Rp.RemoveEnergy(Nb);
  634.  
  635.                         Rp.SendUpdate();
  636.                         break;
  637.                     }
  638.                 case "addenergy":
  639.                     {
  640.                         int Nb = 0;
  641.                         int.TryParse(Value, out Nb);
  642.  
  643.                         Rp.AddEnergy(Nb);
  644.  
  645.                         Rp.SendUpdate();
  646.                         break;
  647.                     }
  648.                 case "weaponfarid":
  649.                     {
  650.                         int Nb = 0;
  651.                         int.TryParse(Value, out Nb);
  652.                         if (Nb < 0 || Nb > 2)
  653.                             Nb = 0;
  654.  
  655.                         Rp.WeaponGun = ButterflyEnvironment.GetGame().GetRoleplayManager().GetWeaponManager().GetWeaponGun(Nb);
  656.  
  657.                         break;
  658.                     }
  659.                 case "weaponcacid":
  660.                     {
  661.                         int Nb = 0;
  662.                         int.TryParse(Value, out Nb);
  663.  
  664.                         if (Nb < 0 || Nb > 3)
  665.                             Nb = 0;
  666.  
  667.                         Rp.WeaponCac = ButterflyEnvironment.GetGame().GetRoleplayManager().GetWeaponManager().GetWeaponCac(Nb);
  668.                         break;
  669.                     }
  670.                 case "pvp":
  671.                     {
  672.                         if (Value == "true")
  673.                             Room.Pvp = true;
  674.                         else
  675.                             Room.Pvp = false;
  676.                         break;
  677.                     }
  678.                 case "munition":
  679.                     {
  680.                         int Nb = 0;
  681.                         int.TryParse(Value, out Nb);
  682.                         if (Nb > 99)
  683.                             Nb = 99;
  684.                         if (Nb < 0)
  685.                             Nb = 0;
  686.  
  687.                         Rp.Munition = Nb;
  688.  
  689.                         Rp.SendUpdate();
  690.                         break;
  691.                     }
  692.                 case "addmunition":
  693.                     {
  694.                         int Nb = 0;
  695.                         int.TryParse(Value, out Nb);
  696.  
  697.                         Rp.AddMunition(Nb);
  698.                         Rp.SendUpdate();
  699.                         break;
  700.                     }
  701.                 case "removemunition":
  702.                     {
  703.                         int Nb = 0;
  704.                         int.TryParse(Value, out Nb);
  705.  
  706.                         Rp.RemoveMunition(Nb);
  707.                         Rp.SendUpdate();
  708.                         break;
  709.                     }
  710.                 case "rpexp":
  711.                     {
  712.                         int Nb = 0;
  713.                         int.TryParse(Value, out Nb);
  714.                         if (Nb <= 0)
  715.                             break;
  716.  
  717.                         Rp.AddExp(Nb);
  718.                         break;
  719.                     }
  720.                 case "rpremoveexp":
  721.                     {
  722.                         int Nb = 0;
  723.                         int.TryParse(Value, out Nb);
  724.                         if (Nb <= 0)
  725.                             break;
  726.  
  727.                         Rp.RemoveExp(Nb);
  728.                         break;
  729.                     }
  730.                 case "removemoney":
  731.                     {
  732.                         int Nb = 0;
  733.                         int.TryParse(Value, out Nb);
  734.                         if (Nb <= 0)
  735.                             break;
  736.  
  737.                         if (Rp.Money - Nb < 0)
  738.                         {
  739.                             Rp.Money = 0;
  740.                         }
  741.                         else
  742.                         {
  743.                             Rp.Money -= Nb;
  744.                         }
  745.                         Rp.SendUpdate();
  746.                         break;
  747.                     }
  748.                 case "addmoney":
  749.                     {
  750.                         int Nb = 0;
  751.                         int.TryParse(Value, out Nb);
  752.                         if (Nb <= 0)
  753.                             break;
  754.  
  755.                         Rp.Money += Nb;
  756.                         Rp.SendUpdate();
  757.                         break;
  758.                     }
  759.                 case "health":
  760.                     {
  761.                         int Nb = 0;
  762.                         int.TryParse(Value, out Nb);
  763.                         if (Nb <= 0)
  764.                             break;
  765.  
  766.                         if (Nb > Rp.HealthMax)
  767.                             Rp.Health = Rp.HealthMax;
  768.                         else
  769.                             Rp.Health = Nb;
  770.                         Rp.SendUpdate();
  771.                         break;
  772.                     }
  773.                 case "healthplus":
  774.                     {
  775.                         int Nb = 0;
  776.                         int.TryParse(Value, out Nb);
  777.                         if (Nb <= 0)
  778.                             break;
  779.  
  780.                         Rp.AddHealth(Nb);
  781.  
  782.                         Rp.SendUpdate();
  783.                         break;
  784.                     }
  785.                 case "hit":
  786.                     {
  787.                         int Nb = 0;
  788.                         int.TryParse(Value, out Nb);
  789.                         if (Nb <= 0)
  790.                             break;
  791.  
  792.                         Rp.Hit(User, Nb, Room, false, true);
  793.                         Rp.SendUpdate();
  794.                         break;
  795.                     }
  796.                 case "rpsay":
  797.                     {
  798.                         User.OnChat(Value, 0, false);
  799.                         break;
  800.                     }
  801.                 case "rpsayme":
  802.                     {
  803.                         User.OnChatMe(Value, 0, false);
  804.                         break;
  805.                     }
  806.             }
  807.         }
  808.  
  809.         private void BotCommand(string Cmd, string Value, RoomUser User, Item TriggerItem)
  810.         {
  811.             if (User == null || !User.IsBot)
  812.                 return;
  813.  
  814.             switch (Cmd)
  815.             {
  816.                 case "dance":
  817.                     {
  818.                         int danceid;
  819.                         if (int.TryParse(Value, out danceid))
  820.                         {
  821.                             if (danceid < 0 || danceid > 4)
  822.                                 danceid = 0;
  823.                             if (danceid > 0 && User.CarryItemID > 0)
  824.                                 User.CarryItem(0);
  825.                             User.DanceId = danceid;
  826.                             User.mRoom.SendPacket(new DanceComposer(User, danceid));
  827.                         }
  828.  
  829.                         break;
  830.                     }
  831.  
  832.                 case "handitem":
  833.                     {
  834.                         int carryid;
  835.                         if (int.TryParse(Value, out carryid))
  836.                             User.CarryItem(carryid, true);
  837.                         break;
  838.                     }
  839.                 case "sit":
  840.                     {
  841.                         if (User.RotBody % 2 == 0)
  842.                         {
  843.                             User.SetStatus("sit", "0.5");
  844.  
  845.                             User.IsSit = true;
  846.                             User.UpdateNeeded = true;
  847.                         }
  848.                         break;
  849.                     }
  850.  
  851.                 case "lay":
  852.                     {
  853.                         if (User.RotBody % 2 == 0)
  854.                         {
  855.                             User.SetStatus("lay", "0.7");
  856.  
  857.                             User.IsLay = true;
  858.                             User.UpdateNeeded = true;
  859.                         }
  860.                         break;
  861.                     }
  862.  
  863.                 case "enable":
  864.                     {
  865.                         int NumEnable;
  866.                         if (!int.TryParse(Value, out NumEnable))
  867.                             return;
  868.  
  869.                         if (!ButterflyEnvironment.GetGame().GetEffectsInventoryManager().EffectExist(NumEnable, false))
  870.                             return;
  871.  
  872.                         User.ApplyEffect(NumEnable);
  873.                         break;
  874.                     }
  875.  
  876.                 case "breakwalk":
  877.                     {
  878.                         if (Value == "true")
  879.                             User.breakwalk = true;
  880.                         else
  881.                             User.breakwalk = false;
  882.  
  883.                         break;
  884.                     }
  885.  
  886.                 case "freeze":
  887.                     {
  888.                         int Seconde = 0;
  889.                         int.TryParse(Value, out Seconde);
  890.                         Seconde = Seconde * 2;
  891.                         User.Freeze = true;
  892.                         User.FreezeEndCounter = Seconde;
  893.                         break;
  894.                     }
  895.                 case "unfreeze":
  896.                     {
  897.                         User.Freeze = false;
  898.                         User.FreezeEndCounter = 0;
  899.                         break;
  900.                     }
  901.             }
  902.         }
  903.  
  904.         private void RoomCommand(string Cmd, string Value, Room Room, Item TriggerItem, RoomUser User)
  905.         {
  906.             if (Room == null)
  907.                 return;
  908.  
  909.             switch (Cmd)
  910.             {
  911.                 case "stopsoundroom":
  912.                     {
  913.                         Room.SendPacketWeb(new StopSoundComposer(Value));
  914.                         break;
  915.                     }
  916.                 case "playsoundroom":
  917.                     {
  918.                         Room.SendPacketWeb(new PlaySoundComposer(Value, 1)); //Type = Trax
  919.                         break;
  920.                     }
  921.                 case "playmusicroom":
  922.                     {
  923.                         Room.SendPacketWeb(new PlaySoundComposer(Value, 2, true)); //Type = Trax
  924.                         break;
  925.                     }
  926.                 case "configbot":
  927.                     {
  928.                         string[] Params = Value.Split(';');
  929.  
  930.                         RoomUser Bot = Room.GetRoomUserManager().GetBotByName(Params[0]);
  931.                         if (Bot == null)
  932.                             return;
  933.  
  934.                         switch (Params[1])
  935.                         {
  936.                             case "enable":
  937.                                 {
  938.                                     if (Params.Length < 3)
  939.                                         break;
  940.  
  941.                                     int.TryParse(Params[2], out int IntValue);
  942.  
  943.                                     if (!ButterflyEnvironment.GetGame().GetEffectsInventoryManager().EffectExist(IntValue, false))
  944.                                         return;
  945.  
  946.                                     if (Bot.CurrentEffect != IntValue)
  947.                                         Bot.ApplyEffect(IntValue);
  948.  
  949.                                     if (Bot.BotData.Enable != IntValue)
  950.                                     {
  951.                                         Bot.BotData.Enable = IntValue;
  952.                                     }
  953.                                     break;
  954.                                 }
  955.                             case "handitem":
  956.                                 {
  957.                                     if (Params.Length < 3)
  958.                                         break;
  959.  
  960.                                     int.TryParse(Params[2], out int IntValue);
  961.  
  962.                                     if (Bot.CarryItemID != IntValue)
  963.                                         Bot.CarryItem(IntValue, true);
  964.  
  965.                                     if (Bot.BotData.Handitem != IntValue)
  966.                                     {
  967.                                         Bot.BotData.Handitem = IntValue;
  968.                                     }
  969.                                     break;
  970.                                 }
  971.                             case "rot":
  972.                                 {
  973.                                     if (Params.Length < 3)
  974.                                         break;
  975.  
  976.                                     int.TryParse(Params[2], out int IntValue);
  977.                                     IntValue = (IntValue > 7 || IntValue < 0) ? 0 : IntValue;
  978.  
  979.                                     if (Bot.RotBody != IntValue)
  980.                                     {
  981.                                         Bot.RotBody = IntValue;
  982.                                         Bot.RotHead = IntValue;
  983.                                         Bot.UpdateNeeded = true;
  984.                                     }
  985.  
  986.                                     if (Bot.BotData.Rot != IntValue)
  987.                                     {
  988.                                         Bot.BotData.Rot = IntValue;
  989.                                     }
  990.                                     break;
  991.                                 }
  992.                             case "sit":
  993.                                 {
  994.                                     if (Bot.BotData.Status == 1)
  995.                                     {
  996.                                         Bot.BotData.Status = 0;
  997.  
  998.                                         Bot.RemoveStatus("sit");
  999.                                         Bot.IsSit = false;
  1000.                                         Bot.UpdateNeeded = true;
  1001.                                     }
  1002.                                     else
  1003.                                     {
  1004.                                         if (!Bot.IsSit)
  1005.                                         {
  1006.                                             Bot.SetStatus("sit", (Bot.IsPet) ? "" : "0.5");
  1007.                                             Bot.IsSit = true;
  1008.                                             Bot.UpdateNeeded = true;
  1009.                                         }
  1010.  
  1011.                                         Bot.BotData.Status = 1;
  1012.                                     }
  1013.                                     break;
  1014.                                 }
  1015.                             case "lay":
  1016.                                 {
  1017.                                     if (Bot.BotData.Status == 2)
  1018.                                     {
  1019.                                         Bot.BotData.Status = 0;
  1020.  
  1021.                                         Bot.RemoveStatus("lay");
  1022.                                         Bot.IsSit = false;
  1023.                                         Bot.UpdateNeeded = true;
  1024.                                     }
  1025.                                     else
  1026.                                     {
  1027.                                         if (!Bot.IsLay)
  1028.                                         {
  1029.                                             Bot.SetStatus("lay", (Bot.IsPet) ? "" : "0.7");
  1030.                                             Bot.IsLay = true;
  1031.                                             Bot.UpdateNeeded = true;
  1032.                                         }
  1033.  
  1034.                                         Bot.BotData.Status = 2;
  1035.                                     }
  1036.                                     break;
  1037.                                 }
  1038.                         }
  1039.                         break;
  1040.                     }
  1041.                 case "rptimespeed":
  1042.                     {
  1043.                         if (!Room.RpRoom)
  1044.                             break;
  1045.  
  1046.                         if (Value == "true")
  1047.                             Room.RpTimeSpeed = true;
  1048.                         else
  1049.                             Room.RpTimeSpeed = false;
  1050.  
  1051.                         break;
  1052.                     }
  1053.                 case "cyclehoureffect":
  1054.                     {
  1055.                         if (!Room.RpRoom)
  1056.                             break;
  1057.  
  1058.                         if (Value == "true")
  1059.                             Room.RpCycleHourEffect = true;
  1060.                         else
  1061.                             Room.RpCycleHourEffect = false;
  1062.  
  1063.                         break;
  1064.                     }
  1065.                 case "jackanddaisy":
  1066.                     {
  1067.                         RoomUser Bot = null;
  1068.                         if (ButterflyEnvironment.GetRandomNumber(0, 1) == 1)
  1069.                             Bot = Room.GetRoomUserManager().GetBotOrPetByName("Jack");
  1070.                         else
  1071.                             Bot = Room.GetRoomUserManager().GetBotOrPetByName("Daisy");
  1072.  
  1073.                         if (Bot == null)
  1074.                             break;
  1075.  
  1076.                         List<string> Phrases = new List<string>();
  1077.  
  1078.                         switch (Value)
  1079.                         {
  1080.                             case "wait":
  1081.                                 {
  1082.  
  1083.                                     Phrases.Add("Merci de patienter, le jeu va bientôt commencer !");
  1084.                                     Phrases.Add("Le jeu ne devrait pas tarder à commencer !");
  1085.                                     Phrases.Add("Le jeu va commencer dans quelques minutes !");
  1086.                                     Phrases.Add("Le jeu va commencer dans quelques instants");
  1087.                                     Phrases.Add("Patience, le jeu va débuter sous peu !");
  1088.                                     break;
  1089.                                 }
  1090.                             case "win":
  1091.                                 {
  1092.                                     if (Bot.BotData.Name == "Jack")
  1093.                                     {
  1094.                                         Phrases.Add("Fichtre... #username# a gagné !");
  1095.                                         Phrases.Add("Et c'est ce moussaillon de #username# qui repart avec le trésor !");
  1096.                                         Phrases.Add("#username# vient de décrocher une très belle surprise !");
  1097.                                     }
  1098.                                     else
  1099.                                     {
  1100.                                         Phrases.Add("Félicitations à #username# qui remporte la partie !");
  1101.                                         Phrases.Add("Félicitons #username# qui remporte la partie !");
  1102.                                         Phrases.Add("La chance était du côté de #username# aujourd'hui");
  1103.                                     }
  1104.                                     break;
  1105.                                 }
  1106.                             case "loose":
  1107.                                 {
  1108.                                     if (Bot.BotData.Name == "Jack")
  1109.                                     {
  1110.                                         Phrases.Add("Oulà ! #username# viens de se faire botter l'arrière train' !");
  1111.                                         Phrases.Add("Et #username# qui rejoint l'équipe des loosers");
  1112.                                         Phrases.Add("Une défaite en bonne et due forme de #username# !");
  1113.                                     }
  1114.                                     else
  1115.                                     {
  1116.                                         Phrases.Add("La prochaine fois tu y arriveras #username#, j'en suis sûre et certain !");
  1117.                                         Phrases.Add("Courage #username#, tu y arriveras la prochaine fois !");
  1118.                                         Phrases.Add("Ne soit pas triste #username#, d'autres occasions se présenteront à toi !");
  1119.                                     }
  1120.                                     break;
  1121.                                 }
  1122.                             case "startgame":
  1123.                                 {
  1124.                                     Phrases.Add("Allons y, lets go !");
  1125.                                     Phrases.Add("C'est parti !");
  1126.                                     Phrases.Add("A vos marques, prêts ? Partez !");
  1127.                                     Phrases.Add("Let's go!");
  1128.                                     Phrases.Add("Ne perdons pas plus de temps, c'est parti !");
  1129.                                     Phrases.Add("Que la partie commence !");
  1130.                                     break;
  1131.                                 }
  1132.                             case "endgame":
  1133.                                 {
  1134.                                     Phrases.Add("L'animation est terminé, bravo à tout les gagnant(e)s !");
  1135.                                     Phrases.Add("L'animation est enfin terminé ! reviens nous voir à la prochaine animation !");
  1136.                                     break;
  1137.                                 }
  1138.                             case "fungame":
  1139.                                 {
  1140.                                     if (Bot.BotData.Name == "Jack")
  1141.                                     {
  1142.                                         Phrases.Add("Mhhhh, les joueurs sont vraiment mauvais à ce point ?");
  1143.                                         Phrases.Add("On sait déjà tous qui sera le grand vaiqueur...");
  1144.                                         Phrases.Add("Qui ne tente rien n'a rien");
  1145.                                     }
  1146.                                     else
  1147.                                     {
  1148.                                         Phrases.Add("La victoire approche tenez le coup !");
  1149.                                         Phrases.Add("C'est pour ça qu'il faut toujours avoir un trèfle à 4 feuilles");
  1150.                                         Phrases.Add("En essayant continuellement, on finit par réussir, plus ça rate, plus on a des chances que ça marque ;)");
  1151.                                     }
  1152.                                     break;
  1153.                                 }
  1154.                         }
  1155.  
  1156.                         string TextMessage = Phrases[ButterflyEnvironment.GetRandomNumber(0, Phrases.Count - 1)];
  1157.                         if (User != null)
  1158.                             TextMessage = TextMessage.Replace("#username#", User.GetUsername());
  1159.  
  1160.                         Bot.OnChat(TextMessage, 2, true);
  1161.  
  1162.                         break;
  1163.                     }
  1164.                 case "roomingamechat":
  1165.                     {
  1166.                         if (Value == "true")
  1167.                             Room.RoomIngameChat = true;
  1168.                         else
  1169.                             Room.RoomIngameChat = false;
  1170.                         break;
  1171.                     }
  1172.                 case "roommute":
  1173.                     {
  1174.                         if (Value == "true")
  1175.                             Room.RoomMuted = true;
  1176.                         else
  1177.                             Room.RoomMuted = false;
  1178.                         break;
  1179.                     }
  1180.                 case "roomfreeze":
  1181.                     {
  1182.                         if (Value == "true")
  1183.                             Room.FreezeRoom = true;
  1184.                         else
  1185.                             Room.FreezeRoom = false;
  1186.                         break;
  1187.                     }
  1188.                 case "setspeed":
  1189.                     {
  1190.                         int Vitesse = 0;
  1191.                         int.TryParse(Value, out Vitesse);
  1192.  
  1193.                         Room.GetRoomItemHandler().SetSpeed(Vitesse);
  1194.                         break;
  1195.                     }
  1196.                 case "roomdiagonal":
  1197.                     {
  1198.                         if (Value == "true")
  1199.                             Room.GetGameMap().DiagonalEnabled = true;
  1200.                         else
  1201.                             Room.GetGameMap().DiagonalEnabled = false;
  1202.  
  1203.                         break;
  1204.                     }
  1205.                 case "roomoblique":
  1206.                     {
  1207.                         if (Value == "true")
  1208.                             Room.GetGameMap().ObliqueDisable = true;
  1209.                         else
  1210.                             Room.GetGameMap().ObliqueDisable = false;
  1211.  
  1212.                         break;
  1213.                     }
  1214.  
  1215.                 case "setitemmode":
  1216.                     {
  1217.                         if (TriggerItem == null)
  1218.                             break;
  1219.                         int Count = 0;
  1220.                         int.TryParse(Value, out Count);
  1221.  
  1222.                         if (Count > TriggerItem.GetBaseItem().Modes - 1)
  1223.                             break;
  1224.  
  1225.                         int result = 0;
  1226.                         if (!int.TryParse(TriggerItem.ExtraData, out result))
  1227.                             break;
  1228.  
  1229.                         TriggerItem.ExtraData = Count.ToString();
  1230.                         TriggerItem.UpdateState();
  1231.                         Room.GetGameMap().updateMapForItem(TriggerItem);
  1232.  
  1233.                         break;
  1234.                     }
  1235.  
  1236.                 case "pushpull":
  1237.                     {
  1238.                         if (Value == "true")
  1239.                             Room.PushPullAllowed = true;
  1240.                         else
  1241.                             Room.PushPullAllowed = false;
  1242.                         break;
  1243.                     }
  1244.             }
  1245.         }
  1246.  
  1247.         private void UserCommand(string Cmd, string Value, RoomUser User, Item TriggerItem)
  1248.         {
  1249.             if (User == null || User.IsBot || User.GetClient() == null)
  1250.                 return;
  1251.  
  1252.             switch (Cmd)
  1253.             {
  1254.                 case "stopsounduser":
  1255.                 {
  1256.                     User.GetClient().GetHabbo().SendWebPacket(new StopSoundComposer(Value)); //Type = Trax
  1257.                     break;
  1258.                 }
  1259.                 case "playsounduser":
  1260.                     {
  1261.                         User.GetClient().GetHabbo().SendWebPacket(new PlaySoundComposer(Value, 1)); //Type = furni
  1262.                         break;
  1263.                     }
  1264.                 case "playmusicuser":
  1265.                     {
  1266.                         User.GetClient().GetHabbo().SendWebPacket(new PlaySoundComposer(Value, 2, true)); //Type = Trax
  1267.                         break;
  1268.                     }
  1269.                 case "moveto":
  1270.                     {
  1271.                         if (Value == "true")
  1272.                             User.AllowMoveTo = true;
  1273.                         else
  1274.                             User.AllowMoveTo = false;
  1275.                         break;
  1276.                     }
  1277.                 case "reversewalk":
  1278.                     {
  1279.                         if (Value == "true")
  1280.                             User.ReverseWalk = true;
  1281.                         else
  1282.                             User.ReverseWalk = false;
  1283.                         break;
  1284.                     }
  1285.                 case "speedwalk":
  1286.                     {
  1287.                         if (Value == "true")
  1288.                             User.WalkSpeed = true;
  1289.                         else
  1290.                             User.WalkSpeed = false;
  1291.                         break;
  1292.                     }
  1293.                 case "openpage":
  1294.                     {
  1295.                         User.GetClient().SendPacket(new NuxAlertComposer("habbopages/" + Value));
  1296.                         break;
  1297.                     }
  1298.                 case "rot":
  1299.                     {
  1300.                         int ValueInt = 0;
  1301.                         int.TryParse(Value, out ValueInt);
  1302.  
  1303.                         if (ValueInt > 7 || ValueInt < 0)
  1304.                             ValueInt = 0;
  1305.  
  1306.                         if (User.RotBody == ValueInt && User.RotHead == ValueInt)
  1307.                             break;
  1308.  
  1309.                         User.RotBody = ValueInt;
  1310.                         User.RotHead = ValueInt;
  1311.                         User.UpdateNeeded = true;
  1312.  
  1313.                         break;
  1314.                     }
  1315.                 case "allowshoot":
  1316.                     {
  1317.                         if (Value == "true")
  1318.                             User.AllowShoot = true;
  1319.                         else
  1320.                             User.AllowShoot = false;
  1321.                         break;
  1322.                     }
  1323.                 case "addpointteam":
  1324.                     {
  1325.                         if (User.team == Games.Team.none)
  1326.                             break;
  1327.  
  1328.                         int Count = 0;
  1329.                         int.TryParse(Value, out Count);
  1330.  
  1331.                         if (User.mRoom == null)
  1332.                             break;
  1333.  
  1334.                         User.mRoom.GetGameManager().AddPointToTeam(User.team, Count, User);
  1335.                         break;
  1336.                     }
  1337.                 case "ingame":
  1338.                     {
  1339.                         if (Value == "true")
  1340.                             User.InGame = true;
  1341.                         else
  1342.                             User.InGame = false;
  1343.  
  1344.                         break;
  1345.                     }
  1346.                 case "usertimer":
  1347.                     {
  1348.                         int Points = 0;
  1349.                         int.TryParse(Value, out Points);
  1350.  
  1351.                         User.UserTimer = Points;
  1352.                         break;
  1353.                     }
  1354.                 case "addusertimer":
  1355.                     {
  1356.                         int Points = 0;
  1357.                         int.TryParse(Value, out Points);
  1358.  
  1359.                         if (Points == 0)
  1360.                             break;
  1361.  
  1362.                         User.UserTimer += Points;
  1363.                         break;
  1364.                     }
  1365.                 case "removeusertimer":
  1366.                     {
  1367.                         int Points = 0;
  1368.                         int.TryParse(Value, out Points);
  1369.  
  1370.                         if (Points == 0)
  1371.                             break;
  1372.  
  1373.                         if (Points >= User.UserTimer)
  1374.                         {
  1375.                             User.UserTimer = 0;
  1376.                         }
  1377.                         else
  1378.                         {
  1379.                             User.UserTimer -= Points;
  1380.                         }
  1381.                         break;
  1382.                     }
  1383.                 case "point":
  1384.                     {
  1385.                         int Points = 0;
  1386.                         int.TryParse(Value, out Points);
  1387.  
  1388.                         User.WiredPoints = Points;
  1389.                         break;
  1390.                     }
  1391.                 case "addpoint":
  1392.                     {
  1393.                         int Points = 0;
  1394.                         int.TryParse(Value, out Points);
  1395.  
  1396.                         if (Points == 0)
  1397.                             break;
  1398.  
  1399.                         User.WiredPoints += Points;
  1400.                         break;
  1401.                     }
  1402.                 case "removepoint":
  1403.                     {
  1404.                         int Points = 0;
  1405.                         int.TryParse(Value, out Points);
  1406.  
  1407.                         if (Points == 0)
  1408.                             break;
  1409.  
  1410.                         if (Points >= User.WiredPoints)
  1411.                         {
  1412.                             User.WiredPoints = 0;
  1413.                         }
  1414.                         else
  1415.                         {
  1416.                             User.WiredPoints -= Points;
  1417.                         }
  1418.                         break;
  1419.                     }
  1420.                 case "freeze":
  1421.                     {
  1422.                         int Seconde = 0;
  1423.                         int.TryParse(Value, out Seconde);
  1424.                         Seconde = Seconde * 2;
  1425.                         User.Freeze = true;
  1426.                         User.FreezeEndCounter = Seconde;
  1427.                         break;
  1428.                     }
  1429.                 case "unfreeze":
  1430.                     {
  1431.                         User.Freeze = false;
  1432.                         User.FreezeEndCounter = 0;
  1433.                         break;
  1434.                     }
  1435.                 case "breakwalk":
  1436.                     {
  1437.                         if (Value == "true")
  1438.                             User.breakwalk = true;
  1439.                         else
  1440.                             User.breakwalk = false;
  1441.  
  1442.                         break;
  1443.                     }
  1444.                 case "enable":
  1445.                     {
  1446.                         int NumEnable;
  1447.                         if (!int.TryParse(Value, out NumEnable))
  1448.                             return;
  1449.  
  1450.                         if (!ButterflyEnvironment.GetGame().GetEffectsInventoryManager().EffectExist(NumEnable, false))
  1451.                             return;
  1452.  
  1453.                         User.ApplyEffect(NumEnable);
  1454.                         break;
  1455.                     }
  1456.                 case "enablestaff":
  1457.                     {
  1458.                         int NumEnable;
  1459.                         if (!int.TryParse(Value, out NumEnable))
  1460.                             return;
  1461.  
  1462.                         if (!ButterflyEnvironment.GetGame().GetEffectsInventoryManager().EffectExist(NumEnable, true))
  1463.                             return;
  1464.  
  1465.                         User.ApplyEffect(NumEnable);
  1466.                         break;
  1467.                     }
  1468.                 case "dance":
  1469.                     {
  1470.                         if (User.mRoom == null)
  1471.                             break;
  1472.  
  1473.                         int danceid;
  1474.                         if (int.TryParse(Value, out danceid))
  1475.                         {
  1476.                             if (danceid < 0 || danceid > 4)
  1477.                                 danceid = 0;
  1478.                             if (danceid > 0 && User.CarryItemID > 0)
  1479.                                 User.CarryItem(0);
  1480.                             User.DanceId = danceid;
  1481.                             ServerPacket Message = new ServerPacket(ServerPacketHeader.DanceMessageComposer);
  1482.                             Message.WriteInteger(User.VirtualId);
  1483.                             Message.WriteInteger(danceid);
  1484.                             User.mRoom.SendPacket(Message);
  1485.                         }
  1486.                         break;
  1487.                     }
  1488.                 case "handitem":
  1489.                     {
  1490.                         int carryid;
  1491.                         if (int.TryParse(Value, out carryid))
  1492.                             User.CarryItem(carryid, true);
  1493.                         break;
  1494.                     }
  1495.                 case "sit":
  1496.                     {
  1497.                         if (User.RotBody % 2 == 0)
  1498.                         {
  1499.                             if (User.transformation)
  1500.                                 User.SetStatus("sit", "");
  1501.                             else
  1502.                                 User.SetStatus("sit", "0.5");
  1503.  
  1504.                             User.IsSit = true;
  1505.                             User.UpdateNeeded = true;
  1506.                         }
  1507.                         break;
  1508.                     }
  1509.  
  1510.                 case "lay":
  1511.                     {
  1512.                         if (User.RotBody % 2 == 0)
  1513.                         {
  1514.                             if (User.transformation)
  1515.                                 User.SetStatus("lay", "");
  1516.                             else
  1517.                                 User.SetStatus("lay", "0.7");
  1518.  
  1519.                             User.IsLay = true;
  1520.                             User.UpdateNeeded = true;
  1521.                         }
  1522.                         break;
  1523.                     }
  1524.                 case "transf":
  1525.                     {
  1526.                         int raceId = 0;
  1527.                         string petName = Value;
  1528.                         if (Value.Contains(" "))
  1529.                         {
  1530.                             if (int.TryParse(Value.Split(' ')[1], out raceId))
  1531.                             {
  1532.                                 if (raceId < 1 || raceId > 50)
  1533.                                 {
  1534.                                     raceId = 0;
  1535.                                 }
  1536.                             }
  1537.  
  1538.                             petName = Value.Split(' ')[0];
  1539.                         }
  1540.  
  1541.                         if (User.SetPetTransformation(petName, raceId))
  1542.                         {
  1543.                             User.transformation = true;
  1544.  
  1545.                             User.mRoom.SendPacket(new UserRemoveComposer(User.VirtualId));
  1546.                             User.mRoom.SendPacket(new UsersComposer(User));
  1547.                         }
  1548.                         break;
  1549.                     }
  1550.                 case "transfstop":
  1551.                     {
  1552.                         User.transformation = false;
  1553.  
  1554.                         User.mRoom.SendPacket(new UserRemoveComposer(User.VirtualId));
  1555.                         User.mRoom.SendPacket(new UsersComposer(User));
  1556.                         break;
  1557.                     }
  1558.                 case "badge":
  1559.                     {
  1560.                         User.GetClient().GetHabbo().GetBadgeComponent().GiveBadge(Value, true);
  1561.                         User.GetClient().SendPacket(new ReceiveBadgeComposer(Value));
  1562.                         break;
  1563.                     }
  1564.                 case "send":
  1565.                     {
  1566.                         int RoomId;
  1567.                         if (int.TryParse(Value, out RoomId))
  1568.                         {
  1569.                             User.GetClient().GetHabbo().IsTeleporting = true;
  1570.                             User.GetClient().GetHabbo().TeleportingRoomID = RoomId;
  1571.                             User.GetClient().GetHabbo().PrepareRoom(RoomId, "");
  1572.                         }
  1573.                         break;
  1574.                     }
  1575.                 case "alert":
  1576.                     {
  1577.                         User.GetClient().SendNotification(Value);
  1578.                         break;
  1579.                     }
  1580.                 case "achievement":
  1581.                     {
  1582.                         ButterflyEnvironment.GetGame().GetAchievementManager().ProgressAchievement(User.GetClient(), Value, 1);
  1583.                         break;
  1584.                     }
  1585.                 case "givelot":
  1586.                     {
  1587.                         if (User.IsBot || User.GetClient() == null || User.GetClient().GetHabbo() == null || User.GetClient().GetHabbo().Rank > 4)
  1588.                             return;
  1589.                         if (User.WiredGivelot)
  1590.                             return;
  1591.  
  1592.                         User.WiredGivelot = true;
  1593.  
  1594.                         ItemData ItemData = null;
  1595.                         if (!ButterflyEnvironment.GetGame().GetItemManager().GetItem(4156455, out ItemData))
  1596.                             return;
  1597.  
  1598.                         int NbLot = ButterflyEnvironment.GetRandomNumber(1, 3);
  1599.  
  1600.                         if (User.GetClient().GetHabbo().Rank > 1)
  1601.                             NbLot = ButterflyEnvironment.GetRandomNumber(3, 5);
  1602.  
  1603.                         int NbBadge = ButterflyEnvironment.GetRandomNumber(1, 2);
  1604.                         if (User.GetClient().GetHabbo().Rank > 1)
  1605.                             NbBadge = ButterflyEnvironment.GetRandomNumber(2, 3);
  1606.  
  1607.                         ItemData ItemDataBadge = null;
  1608.                         if (!ButterflyEnvironment.GetGame().GetItemManager().GetItem(91947063, out ItemDataBadge))
  1609.                             return;
  1610.  
  1611.                         List<Item> Items = ItemFactory.CreateMultipleItems(ItemData, User.GetClient().GetHabbo(), "", NbLot);
  1612.                         Items.AddRange(ItemFactory.CreateMultipleItems(ItemDataBadge, User.GetClient().GetHabbo(), "", NbBadge));
  1613.  
  1614.                         foreach (Item PurchasedItem in Items)
  1615.                         {
  1616.                             if (User.GetClient().GetHabbo().GetInventoryComponent().TryAddItem(PurchasedItem))
  1617.                             {
  1618.                                 User.GetClient().SendPacket(new FurniListNotificationComposer(PurchasedItem.Id, 1));
  1619.                             }
  1620.                         }
  1621.                         User.GetClient().SendNotification(string.Format(ButterflyEnvironment.GetLanguageManager().TryGetValue("notif.givelot.sucess", User.GetClient().Langue), NbLot, NbBadge));
  1622.  
  1623.                         using (IQueryAdapter queryreactor = ButterflyEnvironment.GetDatabaseManager().GetQueryReactor())
  1624.                             queryreactor.RunQuery("UPDATE users SET game_points = game_points + 1, game_points_month = game_points_month + 1 WHERE id = '" + User.GetClient().GetHabbo().Id + "';");
  1625.  
  1626.                         ButterflyEnvironment.GetGame().GetModerationTool().LogStaffEntry(1953042, User.mRoom.RoomData.OwnerName, User.RoomId, string.Empty, "givelot", "SuperWired givelot: " + User.GetUsername());
  1627.                         break;
  1628.                     }
  1629.             }
  1630.         }
  1631.  
  1632.         public void Dispose()
  1633.         {
  1634.             this.message = (string)null;
  1635.             this.disposed = true;
  1636.         }
  1637.  
  1638.         public void SaveToDatabase(IQueryAdapter dbClient)
  1639.         {
  1640.             WiredUtillity.SaveTriggerItem(dbClient, this.itemID, this.Delay.ToString(), this.message, false, null);
  1641.         }
  1642.  
  1643.         public void LoadFromDatabase(IQueryAdapter dbClient, Room insideRoom)
  1644.         {
  1645.             dbClient.SetQuery("SELECT trigger_data, trigger_data_2 FROM wired_items WHERE trigger_id = @id ");
  1646.             dbClient.AddParameter("id", this.itemID);
  1647.             DataRow row = dbClient.GetRow();
  1648.             if (row == null)
  1649.                 return;
  1650.             this.message = row["trigger_data"].ToString();
  1651.  
  1652.             int result;
  1653.             this.Delay = (int.TryParse(row["trigger_data_2"].ToString(), out result)) ? result : 0;
  1654.         }
  1655.  
  1656.         public void OnTrigger(GameClient Session, int SpriteId)
  1657.         {
  1658.             ServerPacket Message15 = new ServerPacket(ServerPacketHeader.WiredEffectConfigMessageComposer);
  1659.             Message15.WriteBoolean(false);
  1660.             Message15.WriteInteger(0);
  1661.             Message15.WriteInteger(0);
  1662.             Message15.WriteInteger(SpriteId);
  1663.             Message15.WriteInteger(this.itemID);
  1664.             Message15.WriteString(this.message);
  1665.             Message15.WriteInteger(0);
  1666.  
  1667.             Message15.WriteInteger(0);
  1668.             Message15.WriteInteger(7); //7
  1669.             Message15.WriteInteger(this.Delay);
  1670.  
  1671.             Message15.WriteInteger(0);
  1672.             Session.SendPacket(Message15);
  1673.         }
  1674.  
  1675.         public void DeleteFromDatabase(IQueryAdapter dbClient)
  1676.         {
  1677.             dbClient.RunQuery("DELETE FROM wired_items WHERE trigger_id = '" + this.itemID + "'");
  1678.         }
  1679.     }
  1680. }
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
Top