public bool BuyItem(string isGift, string purchaseCode, string packetBody, ref Users.UserInfo info, bool noCredits, ref int newId) { info = InstanceManager.Game.Users.GetUser(info.userId); ClientMessage mMessage = new ClientMessage(); try { if (purchaseCode == "special_floor" || purchaseCode == "special_wallpaper") { string type = ""; if (purchaseCode == "special_floor") { type = "floor"; } if (purchaseCode == "special_wallpaper") { type = "wallpaper"; } int decorationId = int.Parse(packetBody.Split(Convert.ToChar(13))[4]); int typeId = InstanceManager.Game.Furni.GetTypeFromSprite(type); if (typeId > 0) { if (info.iCredits >= 2 || noCredits) { if (!noCredits) { info.iCredits -= 2; InstanceManager.Game.Users.UpdateUser(info); info = InstanceManager.Game.Users.GetUser(info.userId); } if (isGift == "1") { string targetUser = packetBody.Split(Convert.ToChar(13))[6]; string desc = SpecialFiltering.FilterChars("2,9,10,13,47", packetBody.Split(Convert.ToChar(13))[7]); if (desc.Length > 202) { desc = desc.Substring(0, 202); } if (InstanceManager.Game.Users.UserExists(targetUser)) { Users.UserInfo giftUser = InstanceManager.Game.Users.GetUser(targetUser); newId = InstanceManager.Game.Furni.CreateNewFurni(InstanceManager.Game.Furni.GetRandomPresentDefinition(), giftUser.userId); Furni.GiftInfo gift = new ThorServer.Game.Furni.GiftInfo(); gift.GiftId = newId; gift.PurchaseCode = purchaseCode; gift.Payload = packetBody; InstanceManager.Game.Furni.AddGift(gift); InstanceManager.Game.Furni.SetStuffDataFloorItem(newId, "!" + desc); long tmpSession = InstanceManager.Sessions.GetSessionFromUser(giftUser.userId); if (tmpSession != -1) { InstanceManager.Sessions.InvokeReactorMethod(tmpSession, "UpdateHandInvoker"); } return(true); } } else { int itemId = InstanceManager.Game.Furni.CreateNewFurni(typeId, info.userId); newId = itemId; InstanceManager.Game.Furni.SetStuffDataFloorItem(itemId, decorationId.ToString()); return(true); } } else { return(false); } } else { return(true); } } else { CatalogueItemInfo item = InstanceManager.Game.Catalogue.GetCatalogueItem(purchaseCode); if (item != null) { if (!item.StaffOnly || InstanceManager.Game.Roles.HasRight(info.iRole, "fuse_staff_catalogue") || noCredits) { if (info.iCredits >= item.ItemCost || noCredits) { if (!noCredits) { info.iCredits -= item.ItemCost; InstanceManager.Game.Users.UpdateUser(info); info = InstanceManager.Game.Users.GetUser(info.userId); } if (isGift == "1") { string targetUser = packetBody.Split(Convert.ToChar(13))[6]; string desc = SpecialFiltering.FilterChars("2,9,10,13,47", packetBody.Split(Convert.ToChar(13))[7]); if (desc.Length > 202) { desc = desc.Substring(0, 202); } if (InstanceManager.Game.Users.UserExists(targetUser)) { Users.UserInfo giftUser = InstanceManager.Game.Users.GetUser(targetUser); newId = InstanceManager.Game.Furni.CreateNewFurni(InstanceManager.Game.Furni.GetRandomPresentDefinition(), giftUser.userId); Furni.GiftInfo gift = new ThorServer.Game.Furni.GiftInfo(); gift.GiftId = newId; gift.PurchaseCode = purchaseCode; gift.Payload = packetBody; InstanceManager.Game.Furni.AddGift(gift); InstanceManager.Game.Furni.SetStuffDataFloorItem(newId, "!" + desc); long tmpSession = InstanceManager.Sessions.GetSessionFromUser(giftUser.userId); if (tmpSession != -1) { InstanceManager.Sessions.InvokeReactorMethod(tmpSession, "UpdateHandInvoker"); } return(true); } } else { int itemId = InstanceManager.Game.Furni.CreateNewFurni(item.FurniType, info.userId); newId = itemId; if (purchaseCode.StartsWith("special_teleporter_")) { int itemId2 = InstanceManager.Game.Furni.CreateNewFurni(item.FurniType, info.userId); InstanceManager.Game.Furni.SetTeleportID(itemId, itemId2); InstanceManager.Game.Furni.SetTeleportID(itemId2, itemId); } if (item.Sticky) { InstanceManager.Game.Furni.SetStuffDataFloorItem(itemId, "20"); } return(true); } } else { return(false); } } } else { return(false); } } } catch { return(false); } return(false); }
public bool BuyItem(string isGift, string purchaseCode, string packetBody, ref Users.UserInfo info, bool noCredits, ref int newId) { info = InstanceManager.Game.Users.GetUser(info.userId); ClientMessage mMessage = new ClientMessage(); try { if (purchaseCode == "special_floor" || purchaseCode == "special_wallpaper") { string type = ""; if (purchaseCode == "special_floor") type = "floor"; if (purchaseCode == "special_wallpaper") type = "wallpaper"; int decorationId = int.Parse(packetBody.Split(Convert.ToChar(13))[4]); int typeId = InstanceManager.Game.Furni.GetTypeFromSprite(type); if (typeId > 0) { if (info.iCredits >= 2 || noCredits) { if (!noCredits) { info.iCredits -= 2; InstanceManager.Game.Users.UpdateUser(info); info = InstanceManager.Game.Users.GetUser(info.userId); } if (isGift == "1") { string targetUser = packetBody.Split(Convert.ToChar(13))[6]; string desc = SpecialFiltering.FilterChars("2,9,10,13,47", packetBody.Split(Convert.ToChar(13))[7]); if (desc.Length > 202) desc = desc.Substring(0, 202); if (InstanceManager.Game.Users.UserExists(targetUser)) { Users.UserInfo giftUser = InstanceManager.Game.Users.GetUser(targetUser); newId = InstanceManager.Game.Furni.CreateNewFurni(InstanceManager.Game.Furni.GetRandomPresentDefinition(), giftUser.userId); Furni.GiftInfo gift = new ThorServer.Game.Furni.GiftInfo(); gift.GiftId = newId; gift.PurchaseCode = purchaseCode; gift.Payload = packetBody; InstanceManager.Game.Furni.AddGift(gift); InstanceManager.Game.Furni.SetStuffDataFloorItem(newId, "!" + desc); long tmpSession = InstanceManager.Sessions.GetSessionFromUser(giftUser.userId); if (tmpSession != -1) { InstanceManager.Sessions.InvokeReactorMethod(tmpSession, "UpdateHandInvoker"); } return true; } } else { int itemId = InstanceManager.Game.Furni.CreateNewFurni(typeId, info.userId); newId = itemId; InstanceManager.Game.Furni.SetStuffDataFloorItem(itemId, decorationId.ToString()); return true; } } else { return false; } } else { return true; } } else { CatalogueItemInfo item = InstanceManager.Game.Catalogue.GetCatalogueItem(purchaseCode); if (item != null) { if (!item.StaffOnly || InstanceManager.Game.Roles.HasRight(info.iRole, "fuse_staff_catalogue") || noCredits) { if (info.iCredits >= item.ItemCost || noCredits) { if (!noCredits) { info.iCredits -= item.ItemCost; InstanceManager.Game.Users.UpdateUser(info); info = InstanceManager.Game.Users.GetUser(info.userId); } if (isGift == "1") { string targetUser = packetBody.Split(Convert.ToChar(13))[6]; string desc = SpecialFiltering.FilterChars("2,9,10,13,47", packetBody.Split(Convert.ToChar(13))[7]); if (desc.Length > 202) desc = desc.Substring(0, 202); if (InstanceManager.Game.Users.UserExists(targetUser)) { Users.UserInfo giftUser = InstanceManager.Game.Users.GetUser(targetUser); newId = InstanceManager.Game.Furni.CreateNewFurni(InstanceManager.Game.Furni.GetRandomPresentDefinition(), giftUser.userId); Furni.GiftInfo gift = new ThorServer.Game.Furni.GiftInfo(); gift.GiftId = newId; gift.PurchaseCode = purchaseCode; gift.Payload = packetBody; InstanceManager.Game.Furni.AddGift(gift); InstanceManager.Game.Furni.SetStuffDataFloorItem(newId, "!" + desc); long tmpSession = InstanceManager.Sessions.GetSessionFromUser(giftUser.userId); if (tmpSession != -1) { InstanceManager.Sessions.InvokeReactorMethod(tmpSession, "UpdateHandInvoker"); } return true; } } else { int itemId = InstanceManager.Game.Furni.CreateNewFurni(item.FurniType, info.userId); newId = itemId; if (purchaseCode.StartsWith("special_teleporter_")) { int itemId2 = InstanceManager.Game.Furni.CreateNewFurni(item.FurniType, info.userId); InstanceManager.Game.Furni.SetTeleportID(itemId, itemId2); InstanceManager.Game.Furni.SetTeleportID(itemId2, itemId); } if (item.Sticky) { InstanceManager.Game.Furni.SetStuffDataFloorItem(itemId, "20"); } return true; } } else { return false; } } } else { return false; } } } catch { return false; } return false; }