Advertisement
Guest User

Untitled

a guest
Sep 25th, 2016
72
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 36.24 KB | None | 0 0
  1. using System;
  2. using System.Linq;
  3. using System.Collections.Generic;
  4.  
  5. using Plus.Core;
  6. using Plus.Communication.Packets.Incoming;
  7. using Plus.HabboHotel.Catalog;
  8. using Plus.HabboHotel.GameClients;
  9. using Plus.HabboHotel.Items;
  10. using Plus.HabboHotel.Groups;
  11. using Plus.HabboHotel.Users.Effects;
  12. using Plus.HabboHotel.Items.Utilities;
  13. using Plus.HabboHotel.Users.Inventory.Bots;
  14.  
  15. using Plus.HabboHotel.Rooms.AI;
  16. using Plus.Communication.Packets.Outgoing.Catalog;
  17. using Plus.Communication.Packets.Outgoing.Inventory.Bots;
  18. using Plus.Communication.Packets.Outgoing.Inventory.Pets;
  19. using Plus.Communication.Packets.Outgoing.Inventory.Purse;
  20. using Plus.Communication.Packets.Outgoing.Inventory.Furni;
  21. using Plus.Communication.Packets.Outgoing.Inventory.AvatarEffects;
  22. using Plus.Database.Interfaces;
  23. using Plus.Communication.Packets.Outgoing.Moderation;
  24. using Plus.Communication.Packets.Outgoing.Rooms.Notifications;
  25. using Plus.HabboHotel.Groups.Forums;
  26.  
  27. namespace Plus.Communication.Packets.Incoming.Catalog
  28. {
  29. public class PurchaseFromCatalogEvent : IPacketEvent
  30. {
  31. public void Parse(GameClient Session, ClientPacket Packet)
  32. {
  33. //// if (DBConfigData.DBData["catalogue_enabled"] != "1")
  34. //{
  35. // Session.SendMessage(new RoomNotificationComposer("Mince..", "Le développeur de l'hôtel à désactivé le catalogue.", "", "Ok", "event:close", false));
  36. // Session.SendNotification("Le développeur de l'hôtel à désactivé le catalogue.");
  37. // return;
  38. // }
  39.  
  40. int PageId = Packet.PopInt();
  41. int ItemId = Packet.PopInt();
  42. string ExtraData = Packet.PopString();
  43. int Amount = Packet.PopInt();
  44.  
  45.  
  46. CatalogPage Page = null;
  47. if (!PlusEnvironment.GetGame().GetCatalog().TryGetPage(PageId, out Page))
  48. return;
  49.  
  50. if (!Page.Enabled || !Page.Visible || Page.MinimumRank > Session.GetHabbo().Rank || (Page.MinimumVIP > Session.GetHabbo().VIPRank && Session.GetHabbo().Rank == 1))
  51. return;
  52.  
  53. CatalogItem Item = null;
  54. if (!Page.Items.TryGetValue(ItemId, out Item))
  55. {
  56. if (Page.ItemOffers.ContainsKey(ItemId))
  57. {
  58. Item = (CatalogItem)Page.ItemOffers[ItemId];
  59. if (Item == null)
  60. return;
  61. }
  62. else
  63. return;
  64. }
  65.  
  66. // Fixé par Amine exploits 3°
  67. if (Amount < 1 || Amount > 100 || !Item.HaveOffer)
  68. Amount = 1;
  69.  
  70. int AmountPurchase = Item.Amount > 1 ? Item.Amount : Amount;
  71.  
  72. int TotalCreditsCost = Amount > 1 ? ((Item.CostCredits * Amount) - ((int)Math.Floor((double)Amount / 6) * Item.CostCredits)) : Item.CostCredits;
  73. int TotalPixelCost = Amount > 1 ? ((Item.CostPixels * Amount) - ((int)Math.Floor((double)Amount / 6) * Item.CostPixels)) : Item.CostPixels;
  74. int TotalDiamondCost = Amount > 1 ? ((Item.CostDiamonds * Amount) - ((int)Math.Floor((double)Amount / 6) * Item.CostDiamonds)) : Item.CostDiamonds;
  75.  
  76. if (Session.GetHabbo().Credits < TotalCreditsCost || Session.GetHabbo().Duckets < TotalPixelCost || Session.GetHabbo().Diamonds < TotalDiamondCost)
  77. return;
  78.  
  79. int LimitedEditionSells = 0;
  80. int LimitedEditionStack = 0;
  81.  
  82. #region Create the extradata
  83. switch (Item.Data.InteractionType)
  84. {
  85. case InteractionType.MUSIC_DISC:
  86. ExtraData = Item.ExtraData;
  87. break;
  88. case InteractionType.NONE:
  89. ExtraData = "";
  90. break;
  91.  
  92. case InteractionType.GUILD_ITEM:
  93. case InteractionType.GUILD_GATE:
  94. break;
  95.  
  96. #region Pet handling
  97.  
  98. case InteractionType.pet0:
  99. case InteractionType.pet1:
  100. case InteractionType.pet2:
  101. case InteractionType.pet3:
  102. case InteractionType.pet4:
  103. case InteractionType.pet5:
  104. case InteractionType.pet6:
  105. case InteractionType.pet7:
  106. case InteractionType.pet8:
  107. case InteractionType.pet9:
  108. case InteractionType.pet10:
  109. case InteractionType.pet11:
  110. case InteractionType.pet12:
  111. case InteractionType.pet13: //Caballo
  112. case InteractionType.pet14:
  113. case InteractionType.pet15:
  114. case InteractionType.pet16: //Mascote agrée
  115. case InteractionType.pet17: //Mascote agrée
  116. case InteractionType.pet18: //Mascote agrée
  117. case InteractionType.pet19: //Mascote agrée
  118. case InteractionType.pet20: //Mascote agrée
  119. case InteractionType.pet21: //Mascote agrée
  120. case InteractionType.pet22: //Mascote agrée
  121. case InteractionType.pet28:
  122. case InteractionType.pet29:
  123. case InteractionType.pet30:
  124. try
  125. {
  126. string[] Bits = ExtraData.Split('\n');
  127. string PetName = Bits[0];
  128. string Race = Bits[1];
  129. string Color = Bits[2];
  130.  
  131. int.Parse(Race); // to trigger any possible errors
  132.  
  133. if (!PetUtility.CheckPetName(PetName))
  134. return;
  135.  
  136. if (Race.Length > 2)
  137. return;
  138.  
  139. if (Color.Length != 6)
  140. return;
  141.  
  142. PlusEnvironment.GetGame().GetAchievementManager().ProgressAchievement(Session, "ACH_PetLover", 1);
  143. }
  144. catch (Exception e)
  145. {
  146. Logging.LogException(e.ToString());
  147. return;
  148. }
  149.  
  150. break;
  151.  
  152. #endregion
  153.  
  154. case InteractionType.FLOOR:
  155. case InteractionType.WALLPAPER:
  156. case InteractionType.LANDSCAPE:
  157.  
  158. Double Number = 0;
  159.  
  160. try
  161. {
  162. if (string.IsNullOrEmpty(ExtraData))
  163. Number = 0;
  164. else
  165. Number = Double.Parse(ExtraData, PlusEnvironment.CultureInfo);
  166. }
  167. catch (Exception e)
  168. {
  169. Logging.HandleException(e, "Catalog.HandlePurchase: " + ExtraData);
  170. }
  171.  
  172. ExtraData = Number.ToString().Replace(',', '.');
  173. break; // Maintien des extra // todo: Validé!
  174.  
  175. case InteractionType.POSTIT:
  176. ExtraData = "FFFF33";
  177. break;
  178.  
  179. case InteractionType.MOODLIGHT:
  180. ExtraData = "1,1,1,#000000,255";
  181. break;
  182.  
  183. case InteractionType.TROPHY:
  184. ExtraData = Session.GetHabbo().Username + Convert.ToChar(9) + DateTime.Now.Day + "-" + DateTime.Now.Month + "-" + DateTime.Now.Year + Convert.ToChar(9) + ExtraData;
  185. break;
  186.  
  187. case InteractionType.MANNEQUIN:
  188. ExtraData = "m" + Convert.ToChar(5) + ".ch-210-1321.lg-285-92" + Convert.ToChar(5) + "Default Mannequin";
  189. break;
  190.  
  191. case InteractionType.BADGE_DISPLAY:
  192. if (!Session.GetHabbo().GetBadgeComponent().HasBadge(ExtraData))
  193. {
  194. Session.SendMessage(new BroadcastMessageAlertComposer("Oops, it appears that you do not own this badge."));
  195. return;
  196. }
  197.  
  198. ExtraData = ExtraData + Convert.ToChar(9) + Session.GetHabbo().Username + Convert.ToChar(9) + DateTime.Now.Day + "-" + DateTime.Now.Month + "-" + DateTime.Now.Year;
  199. break;
  200.  
  201. case InteractionType.BADGE:
  202. {
  203. if (Session.GetHabbo().GetBadgeComponent().HasBadge(Item.Data.ItemName))
  204. {
  205. Session.SendMessage(new PurchaseErrorComposer(1));
  206. return;
  207. }
  208. break;
  209. }
  210.  
  211. case InteractionType.GUILD_FORUM:
  212. {
  213. GroupForum Gf;
  214. Group Gp;
  215. int GpId;
  216. if (!int.TryParse(ExtraData, out GpId))
  217. {
  218. Session.SendNotification("Oops, erreur l'ID du groupe");
  219. Session.SendMessage(new PurchaseOKComposer());
  220. return;
  221. }
  222.  
  223. if (!PlusEnvironment.GetGame().GetGroupManager().TryGetGroup(GpId, out Gp))
  224. {
  225. Session.SendNotification("Erreur le forum n'existe pas");
  226. Session.SendMessage(new PurchaseOKComposer());
  227. return;
  228. }
  229.  
  230. if (!PlusEnvironment.GetGame().GetGroupForumManager().TryGetForum(GpId, out Gf))
  231. {
  232.  
  233. if (Gp.CreatorId != Session.GetHabbo().Id)
  234. {
  235. Session.SendMessage(new PurchaseOKComposer());
  236. return;
  237. }
  238.  
  239. Gf = PlusEnvironment.GetGame().GetGroupForumManager().CreateGroupForum(Gp);
  240. }
  241.  
  242.  
  243. var keys = new Dictionary<string, string>();
  244. keys.Add("groupId", ExtraData);
  245. keys.Add("groupName", Gp.Name);
  246. //Session.SendMessage(new RoomNotificationComposer("", "Hey " + Session.GetHabbo().Username + " voilà ton forums! :) ", "Forums", "", "", true));
  247. Session.SendMessage(new RoomNotificationComposer("forums.delivered", keys));
  248.  
  249.  
  250. break;
  251. }
  252.  
  253. default:
  254. ExtraData = "";
  255. break;
  256. }
  257. #endregion
  258.  
  259.  
  260. if (Item.IsLimited)
  261. {
  262. if (Item.LimitedEditionStack <= Item.LimitedEditionSells)
  263. {
  264. Session.SendNotification("This item has sold out!\n\n" + "Please note, you have not recieved another item (You have also not been charged for it!)");
  265. Session.SendMessage(new CatalogUpdatedComposer());
  266. Session.SendMessage(new PurchaseOKComposer());
  267. return;
  268. }
  269.  
  270. Item.LimitedEditionSells++;
  271. using (IQueryAdapter adap = PlusEnvironment.GetDatabaseManager().GetQueryReactor())
  272. {
  273. adap.RunQuery("UPDATE `catalog_items` SET `limited_sells` = '" + Item.LimitedEditionSells + "' WHERE `id` = '" + Item.Id + "' LIMIT 1");
  274. LimitedEditionSells = Item.LimitedEditionSells;
  275. LimitedEditionStack = Item.LimitedEditionStack;
  276. }
  277. }
  278.  
  279. if (Item.CostCredits > 0)
  280. {
  281. Session.GetHabbo().Credits -= TotalCreditsCost;
  282. Session.SendMessage(new CreditBalanceComposer(Session.GetHabbo().Credits));
  283. }
  284.  
  285. if (Item.CostPixels > 0)
  286. {
  287. Session.GetHabbo().Duckets -= TotalPixelCost;
  288. Session.SendMessage(new HabboActivityPointNotificationComposer(Session.GetHabbo().Duckets, Session.GetHabbo().Duckets));//Love you, Tom.
  289. }
  290.  
  291. if (Item.CostDiamonds > 0)
  292. {
  293. Session.GetHabbo().Diamonds -= TotalDiamondCost;
  294. Session.SendMessage(new HabboActivityPointNotificationComposer(Session.GetHabbo().Diamonds, 0, 5));
  295. }
  296.  
  297. Item NewItem = null;
  298. switch (Item.Data.Type.ToString().ToLower())
  299. {
  300. default:
  301. List<Item> GeneratedGenericItems = new List<Item>();
  302.  
  303. switch (Item.Data.InteractionType)
  304. {
  305. default:
  306. if (AmountPurchase > 1)
  307. {
  308. List<Item> Items = ItemFactory.CreateMultipleItems(Item.Data, Session.GetHabbo(), ExtraData, AmountPurchase);
  309.  
  310. if (Items != null)
  311. {
  312. GeneratedGenericItems.AddRange(Items);
  313. }
  314. }
  315. else
  316. {
  317. NewItem = ItemFactory.CreateSingleItemNullable(Item.Data, Session.GetHabbo(), ExtraData, ExtraData, 0, LimitedEditionSells, LimitedEditionStack);
  318.  
  319. if (NewItem != null)
  320. {
  321. GeneratedGenericItems.Add(NewItem);
  322. }
  323. }
  324. break;
  325.  
  326. case InteractionType.GUILD_GATE:
  327. case InteractionType.GUILD_ITEM:
  328. case InteractionType.GUILD_FORUM:
  329. if (AmountPurchase > 1)
  330. {
  331. List<Item> Items = ItemFactory.CreateMultipleItems(Item.Data, Session.GetHabbo(), ExtraData, AmountPurchase, Convert.ToInt32(ExtraData));
  332.  
  333. if (Items != null)
  334. {
  335. GeneratedGenericItems.AddRange(Items);
  336. }
  337. PlusEnvironment.GetGame().GetAchievementManager().ProgressAchievement(Session, "ACH_Forums", 1);
  338. }
  339. else
  340. {
  341. NewItem = ItemFactory.CreateSingleItemNullable(Item.Data, Session.GetHabbo(), ExtraData, ExtraData, Convert.ToInt32(ExtraData));
  342.  
  343. if (NewItem != null)
  344. {
  345. GeneratedGenericItems.Add(NewItem);
  346. }
  347. PlusEnvironment.GetGame().GetAchievementManager().ProgressAchievement(Session, "ACH_Forums", 1);
  348. }
  349. break;
  350.  
  351. case InteractionType.ARROW:
  352. case InteractionType.TELEPORT:
  353. for (int i = 0; i < AmountPurchase; i++)
  354. {
  355. List<Item> TeleItems = ItemFactory.CreateTeleporterItems(Item.Data, Session.GetHabbo());
  356.  
  357. if (TeleItems != null)
  358. {
  359. GeneratedGenericItems.AddRange(TeleItems);
  360. }
  361. }
  362. break;
  363.  
  364. case InteractionType.MOODLIGHT:
  365. {
  366. if (AmountPurchase > 1)
  367. {
  368. List<Item> Items = ItemFactory.CreateMultipleItems(Item.Data, Session.GetHabbo(), ExtraData, AmountPurchase);
  369.  
  370. if (Items != null)
  371. {
  372. GeneratedGenericItems.AddRange(Items);
  373. foreach (Item I in Items)
  374. {
  375. ItemFactory.CreateMoodlightData(I);
  376. }
  377. }
  378. }
  379. else
  380. {
  381. NewItem = ItemFactory.CreateSingleItemNullable(Item.Data, Session.GetHabbo(), ExtraData, ExtraData);
  382.  
  383. if (NewItem != null)
  384. {
  385. GeneratedGenericItems.Add(NewItem);
  386. ItemFactory.CreateMoodlightData(NewItem);
  387. }
  388. }
  389. }
  390. break;
  391.  
  392. case InteractionType.TONER:
  393. {
  394. if (AmountPurchase > 1)
  395. {
  396. List<Item> Items = ItemFactory.CreateMultipleItems(Item.Data, Session.GetHabbo(), ExtraData, AmountPurchase);
  397.  
  398. if (Items != null)
  399. {
  400. GeneratedGenericItems.AddRange(Items);
  401. foreach (Item I in Items)
  402. {
  403. ItemFactory.CreateTonerData(I);
  404. }
  405. }
  406. }
  407. else
  408. {
  409. NewItem = ItemFactory.CreateSingleItemNullable(Item.Data, Session.GetHabbo(), ExtraData, ExtraData);
  410.  
  411. if (NewItem != null)
  412. {
  413. GeneratedGenericItems.Add(NewItem);
  414. ItemFactory.CreateTonerData(NewItem);
  415. }
  416. }
  417. }
  418. break;
  419.  
  420. case InteractionType.DEAL:
  421. {
  422. //Fetch the deal where the ID is this items ID.
  423. var DealItems = (from d in Page.Deals.Values.ToList() where d.Id == Item.Id select d);
  424.  
  425. //This bit, iterating ONE item? How can I make this simpler
  426. foreach (CatalogDeal DealItem in DealItems)
  427. {
  428. //Here I loop the DealItems ItemDataList.
  429. foreach (CatalogItem CatalogItem in DealItem.ItemDataList.ToList())
  430. {
  431. List<Item> Items = ItemFactory.CreateMultipleItems(CatalogItem.Data, Session.GetHabbo(), "", AmountPurchase);
  432.  
  433. if (Items != null)
  434. {
  435. GeneratedGenericItems.AddRange(Items);
  436. }
  437. }
  438. }
  439. break;
  440. }
  441.  
  442. }
  443.  
  444. foreach (Item PurchasedItem in GeneratedGenericItems)
  445. {
  446. if (Session.GetHabbo().GetInventoryComponent().TryAddItem(PurchasedItem))
  447. {
  448. //Session.SendMessage(new FurniListAddComposer(PurchasedItem));
  449. Session.SendMessage(new FurniListNotificationComposer(PurchasedItem.Id, 1));
  450. }
  451. }
  452. break;
  453.  
  454. case "e":
  455. AvatarEffect Effect = null;
  456.  
  457. if (Session.GetHabbo().Effects().HasEffect(Item.Data.SpriteId))
  458. {
  459. Effect = Session.GetHabbo().Effects().GetEffectNullable(Item.Data.SpriteId);
  460.  
  461. if (Effect != null)
  462. {
  463. Effect.AddToQuantity();
  464. }
  465. }
  466. else
  467. Effect = AvatarEffectFactory.CreateNullable(Session.GetHabbo(), Item.Data.SpriteId, 3600);
  468.  
  469. if (Effect != null)// && Session.GetHabbo().Effects().TryAdd(Effect))
  470. {
  471. Session.SendMessage(new AvatarEffectAddedComposer(Item.Data.SpriteId, 3600));
  472. }
  473. break;
  474.  
  475. case "r":
  476. Bot Bot = BotUtility.CreateBot(Item.Data, Session.GetHabbo().Id);
  477. if (Bot != null)
  478. {
  479. Session.GetHabbo().GetInventoryComponent().TryAddBot(Bot);
  480. Session.SendMessage(new BotInventoryComposer(Session.GetHabbo().GetInventoryComponent().GetBots()));
  481. Session.SendMessage(new FurniListNotificationComposer(Bot.Id, 5));
  482. }
  483. else
  484. Session.SendNotification("Oops! There was an error whilst purchasing this bot. It seems that there is no bot data for the bot!");
  485. break;
  486.  
  487.  
  488. case "b":
  489. {
  490. Session.GetHabbo().GetBadgeComponent().GiveBadge(Item.Data.ItemName, true, Session);
  491. Session.SendMessage(new FurniListNotificationComposer(0, 4));
  492. break;
  493. }
  494.  
  495. case "p":
  496. {
  497. switch (Item.Data.InteractionType)
  498. {
  499. #region Pets
  500. #region Pet 0
  501. case InteractionType.pet0:
  502. string[] PetData = ExtraData.Split('\n');
  503. Pet GeneratedPet = PetUtility.CreatePet(Session.GetHabbo().Id, PetData[0], 0, PetData[1], PetData[2]);
  504.  
  505. Session.GetHabbo().GetInventoryComponent().TryAddPet(GeneratedPet);
  506.  
  507. break;
  508. #endregion
  509. #region Pet 1
  510. case InteractionType.pet1:
  511. string[] PetData1 = ExtraData.Split('\n');
  512. Pet GeneratedPet1 = PetUtility.CreatePet(Session.GetHabbo().Id, PetData1[0], 1, PetData1[1], PetData1[2]);
  513.  
  514. Session.GetHabbo().GetInventoryComponent().TryAddPet(GeneratedPet1);
  515.  
  516. break;
  517. #endregion
  518. #region Pet 2
  519. case InteractionType.pet2:
  520. string[] PetData5 = ExtraData.Split('\n');
  521. Pet GeneratedPet5 = PetUtility.CreatePet(Session.GetHabbo().Id, PetData5[0], 2, PetData5[1], PetData5[2]);
  522.  
  523. Session.GetHabbo().GetInventoryComponent().TryAddPet(GeneratedPet5);
  524.  
  525. break;
  526. #endregion
  527. #region Pet 3
  528. case InteractionType.pet3:
  529. string[] PetData2 = ExtraData.Split('\n');
  530. Pet GeneratedPet2 = PetUtility.CreatePet(Session.GetHabbo().Id, PetData2[0], 3, PetData2[1], PetData2[2]);
  531.  
  532. Session.GetHabbo().GetInventoryComponent().TryAddPet(GeneratedPet2);
  533.  
  534. break;
  535. #endregion
  536. #region Pet 4
  537. case InteractionType.pet4:
  538. string[] PetData3 = ExtraData.Split('\n');
  539. Pet GeneratedPet3 = PetUtility.CreatePet(Session.GetHabbo().Id, PetData3[0], 4, PetData3[1], PetData3[2]);
  540.  
  541. Session.GetHabbo().GetInventoryComponent().TryAddPet(GeneratedPet3);
  542.  
  543. break;
  544. #endregion
  545. #region Pet 5
  546. case InteractionType.pet5:
  547. string[] PetData7 = ExtraData.Split('\n');
  548. Pet GeneratedPet7 = PetUtility.CreatePet(Session.GetHabbo().Id, PetData7[0], 5, PetData7[1], PetData7[2]);
  549.  
  550. Session.GetHabbo().GetInventoryComponent().TryAddPet(GeneratedPet7);
  551.  
  552. break;
  553. #endregion
  554. #region Pet 6 (wrong?)
  555. case InteractionType.pet6:
  556. string[] PetData4 = ExtraData.Split('\n');
  557. Pet GeneratedPet4 = PetUtility.CreatePet(Session.GetHabbo().Id, PetData4[0], 6, PetData4[1], PetData4[2]);
  558.  
  559. Session.GetHabbo().GetInventoryComponent().TryAddPet(GeneratedPet4);
  560.  
  561. break;
  562. #endregion
  563. #region Pet 7 (wrong?)
  564. case InteractionType.pet7:
  565. string[] PetData6 = ExtraData.Split('\n');
  566. Pet GeneratedPet6 = PetUtility.CreatePet(Session.GetHabbo().Id, PetData6[0], 7, PetData6[1], PetData6[2]);
  567.  
  568. Session.GetHabbo().GetInventoryComponent().TryAddPet(GeneratedPet6);
  569.  
  570. break;
  571. #endregion
  572. #region Pet 8
  573. case InteractionType.pet8:
  574. string[] PetData8 = ExtraData.Split('\n');
  575. Pet GeneratedPet8 = PetUtility.CreatePet(Session.GetHabbo().Id, PetData8[0], 8, PetData8[1], PetData8[2]);
  576.  
  577. Session.GetHabbo().GetInventoryComponent().TryAddPet(GeneratedPet8);
  578.  
  579. break;
  580. #endregion
  581. #region Pet 8
  582. case InteractionType.pet9:
  583. string[] PetData9 = ExtraData.Split('\n');
  584. Pet GeneratedPet9 = PetUtility.CreatePet(Session.GetHabbo().Id, PetData9[0], 9, PetData9[1], PetData9[2]);
  585.  
  586. Session.GetHabbo().GetInventoryComponent().TryAddPet(GeneratedPet9);
  587.  
  588. break;
  589. #endregion
  590. #region Pet 10
  591. case InteractionType.pet10:
  592. string[] PetData10 = ExtraData.Split('\n');
  593. Pet GeneratedPet10 = PetUtility.CreatePet(Session.GetHabbo().Id, PetData10[0], 10, PetData10[1], PetData10[2]);
  594.  
  595. Session.GetHabbo().GetInventoryComponent().TryAddPet(GeneratedPet10);
  596.  
  597. break;
  598. #endregion
  599. #region Pet 11
  600. case InteractionType.pet11:
  601. string[] PetData11 = ExtraData.Split('\n');
  602. Pet GeneratedPet11 = PetUtility.CreatePet(Session.GetHabbo().Id, PetData11[0], 11, PetData11[1], PetData11[2]);
  603.  
  604. Session.GetHabbo().GetInventoryComponent().TryAddPet(GeneratedPet11);
  605.  
  606. break;
  607. #endregion
  608. #region Pet 12
  609. case InteractionType.pet12:
  610. string[] PetData12 = ExtraData.Split('\n');
  611. Pet GeneratedPet12 = PetUtility.CreatePet(Session.GetHabbo().Id, PetData12[0], 12, PetData12[1], PetData12[2]);
  612.  
  613. Session.GetHabbo().GetInventoryComponent().TryAddPet(GeneratedPet12);
  614.  
  615. break;
  616. #endregion
  617. #region Pet 13
  618. case InteractionType.pet13: //Caballo - Horse
  619. string[] PetData13 = ExtraData.Split('\n');
  620. Pet GeneratedPet13 = PetUtility.CreatePet(Session.GetHabbo().Id, PetData13[0], 13, PetData13[1], PetData13[2]);
  621.  
  622. Session.GetHabbo().GetInventoryComponent().TryAddPet(GeneratedPet13);
  623.  
  624. break;
  625. #endregion
  626. #region Pet 14
  627. case InteractionType.pet14:
  628. string[] PetData14 = ExtraData.Split('\n');
  629. Pet GeneratedPet14 = PetUtility.CreatePet(Session.GetHabbo().Id, PetData14[0], 14, PetData14[1], PetData14[2]);
  630.  
  631. Session.GetHabbo().GetInventoryComponent().TryAddPet(GeneratedPet14);
  632.  
  633. break;
  634. #endregion
  635. #region Pet 15
  636. case InteractionType.pet15:
  637. string[] PetData15 = ExtraData.Split('\n');
  638. Pet GeneratedPet15 = PetUtility.CreatePet(Session.GetHabbo().Id, PetData15[0], 15, PetData15[1], PetData15[2]);
  639.  
  640. Session.GetHabbo().GetInventoryComponent().TryAddPet(GeneratedPet15);
  641.  
  642. break;
  643. #endregion
  644. #region Pet 16
  645. case InteractionType.pet16: // Mascota Agregada
  646. string[] PetData16 = ExtraData.Split('\n');
  647. Pet GeneratedPet16 = PetUtility.CreatePet(Session.GetHabbo().Id, PetData16[0], 16, PetData16[1], PetData16[2]);
  648.  
  649. Session.GetHabbo().GetInventoryComponent().TryAddPet(GeneratedPet16);
  650.  
  651. break;
  652. #endregion
  653. #region Pet 17
  654. case InteractionType.pet17: // Mascota Agregada
  655. string[] PetData17 = ExtraData.Split('\n');
  656. Pet GeneratedPet17 = PetUtility.CreatePet(Session.GetHabbo().Id, PetData17[0], 17, PetData17[1], PetData17[2]);
  657.  
  658. Session.GetHabbo().GetInventoryComponent().TryAddPet(GeneratedPet17);
  659.  
  660. break;
  661. #endregion
  662. #region Pet 18
  663. case InteractionType.pet18: // Mascota Agregada
  664. string[] PetData18 = ExtraData.Split('\n');
  665. Pet GeneratedPet18 = PetUtility.CreatePet(Session.GetHabbo().Id, PetData18[0], 18, PetData18[1], PetData18[2]);
  666.  
  667. Session.GetHabbo().GetInventoryComponent().TryAddPet(GeneratedPet18);
  668.  
  669. break;
  670. #endregion
  671. #region Pet 19
  672. case InteractionType.pet19: // Mascota Agregada
  673. string[] PetData19 = ExtraData.Split('\n');
  674. Pet GeneratedPet19 = PetUtility.CreatePet(Session.GetHabbo().Id, PetData19[0], 19, PetData19[1], PetData19[2]);
  675.  
  676. Session.GetHabbo().GetInventoryComponent().TryAddPet(GeneratedPet19);
  677.  
  678. break;
  679. #endregion
  680. #region Pet 20
  681. case InteractionType.pet20: // Mascota Agregada
  682. string[] PetData20 = ExtraData.Split('\n');
  683. Pet GeneratedPet20 = PetUtility.CreatePet(Session.GetHabbo().Id, PetData20[0], 20, PetData20[1], PetData20[2]);
  684.  
  685. Session.GetHabbo().GetInventoryComponent().TryAddPet(GeneratedPet20);
  686.  
  687. break;
  688. #endregion
  689. #region Pet 21
  690. case InteractionType.pet21: // Mascota Agregada
  691. string[] PetData21 = ExtraData.Split('\n');
  692. Pet GeneratedPet21 = PetUtility.CreatePet(Session.GetHabbo().Id, PetData21[0], 21, PetData21[1], PetData21[2]);
  693.  
  694. Session.GetHabbo().GetInventoryComponent().TryAddPet(GeneratedPet21);
  695.  
  696. break;
  697. #endregion
  698. #region Pet 22
  699. case InteractionType.pet22: // Mascota Agregada
  700. string[] PetData22 = ExtraData.Split('\n');
  701. Pet GeneratedPet22 = PetUtility.CreatePet(Session.GetHabbo().Id, PetData22[0], 22, PetData22[1], PetData22[2]);
  702.  
  703. Session.GetHabbo().GetInventoryComponent().TryAddPet(GeneratedPet22);
  704.  
  705. break;
  706. #endregion
  707. #region Pet 28
  708. case InteractionType.pet28: // Mascota Agregada
  709. string[] PetData28 = ExtraData.Split('\n');
  710. Pet GeneratedPet28 = PetUtility.CreatePet(Session.GetHabbo().Id, PetData28[0], 28, PetData28[1], PetData28[2]);
  711.  
  712. Session.GetHabbo().GetInventoryComponent().TryAddPet(GeneratedPet28);
  713.  
  714. break;
  715. #endregion
  716. #region Pet 29
  717. case InteractionType.pet29:
  718. string[] PetData29 = ExtraData.Split('\n');
  719. Pet GeneratedPet29 = PetUtility.CreatePet(Session.GetHabbo().Id, PetData29[0], 29, PetData29[1], PetData29[2]);
  720.  
  721. Session.GetHabbo().GetInventoryComponent().TryAddPet(GeneratedPet29);
  722.  
  723. break;
  724. #endregion
  725. #region Pet 30
  726. case InteractionType.pet30:
  727. string[] PetData30 = ExtraData.Split('\n');
  728. Pet GeneratedPet30 = PetUtility.CreatePet(Session.GetHabbo().Id, PetData30[0], 30, PetData30[1], PetData30[2]);
  729.  
  730. Session.GetHabbo().GetInventoryComponent().TryAddPet(GeneratedPet30);
  731.  
  732. break;
  733. #endregion
  734. #endregion
  735. }
  736.  
  737. Session.SendMessage(new FurniListNotificationComposer(0, 3));
  738. Session.SendMessage(new PetInventoryComposer(Session.GetHabbo().GetInventoryComponent().GetPets()));
  739.  
  740. ItemData PetFood = null;
  741. if (PlusEnvironment.GetGame().GetItemManager().GetItem(320, out PetFood))
  742. {
  743. Item Food = ItemFactory.CreateSingleItemNullable(PetFood, Session.GetHabbo(), "", "");
  744. if (Food != null)
  745. {
  746. Session.GetHabbo().GetInventoryComponent().TryAddItem(Food);
  747. Session.SendMessage(new FurniListNotificationComposer(Food.Id, 1));
  748. }
  749. }
  750. break;
  751. }
  752. }
  753.  
  754.  
  755. Session.SendMessage(new PurchaseOKComposer(Item, Item.Data));
  756. Session.SendMessage(new FurniListUpdateComposer());
  757. }
  758. }
  759. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement