private static void WriteCharaInfo(SendGPacket pk,Room room,SLOT slot,CupomEffects effects) { int id = room.room_type == (byte)7 || room.room_type == (byte)12 ? (room.rodada == 1 && slot._team == 1 || room.rodada == 2 && slot._team == 0 ? (room.rodada == 2 ? slot._equip._red : slot._equip._blue) : (room.TRex != slot._id ? slot._equip._dino : -1)) : (slot._team == 0 ? slot._equip._red : slot._equip._blue); int num = 0; if (effects.HasFlag((System.Enum)CupomEffects.Ketupat)) { num += 10; } if (effects.HasFlag((System.Enum)CupomEffects.HP5)) { num += 5; } if (effects.HasFlag((System.Enum)CupomEffects.HP10)) { num += 10; } if (id == -1) { pk.writeC(byte.MaxValue); pk.writeH(ushort.MaxValue); } else { pk.writeC((byte)ComDiv.getIdStatics(id,2)); pk.writeH((short)ComDiv.getIdStatics(id,4)); } pk.writeC((byte)num); pk.writeC(effects.HasFlag((System.Enum)CupomEffects.C4SpeedKit)); }
private static void WriteCharaInfo(SendGPacket pk,Room room,SLOT slot,CupomEffects effects) { int charaId = 0; if ((RoomType)room.room_type == RoomType.Boss || (RoomType)room.room_type == RoomType.Cross_Counter) { if (room.rodada == 1 && slot._team == 1 || room.rodada == 2 && slot._team == 0) { charaId = room.rodada == 2 ? slot._equip._red : slot._equip._blue; } else if (room.TRex == slot._id) { charaId = -1; } else { charaId = slot._equip._dino; } } else { charaId = slot._team == 0 ? slot._equip._red : slot._equip._blue; } int HPBonus = 0; if (effects.HasFlag(CupomEffects.Ketupat)) { HPBonus += 10; } if (effects.HasFlag(CupomEffects.HP5)) { HPBonus += 5; } if (effects.HasFlag(CupomEffects.HP10)) { HPBonus += 10; } if (charaId == -1) { pk.writeC(255); pk.writeH(65535); } else { pk.writeC((byte)ComDiv.getIdStatics(charaId,2)); pk.writeH((short)ComDiv.getIdStatics(charaId,4)); } pk.writeC((byte)HPBonus); pk.writeC(effects.HasFlag(CupomEffects.C4SpeedKit)); }
private void cupomIncreaseDays(Account p, string originalName) { int itemId = ComDiv.createItemId(12, ComDiv.getIdStatics(this.itemId, 2), ComDiv.getIdStatics(this.itemId, 3), 0); int idStatics = ComDiv.getIdStatics(this.itemId, 4); CupomEffects effects = p.effects; if (itemId == 1200065000 && (effects & (CupomEffects.Colete20 | CupomEffects.Colete10 | CupomEffects.Colete5)) > (CupomEffects)0 || itemId == 1200079000 && (effects & (CupomEffects.Colete90 | CupomEffects.Colete10 | CupomEffects.Colete5)) > (CupomEffects)0 || (itemId == 1200044000 && (effects & (CupomEffects.Colete90 | CupomEffects.Colete20 | CupomEffects.Colete5)) > (CupomEffects)0 || itemId == 1200030000 && (effects & (CupomEffects.Colete90 | CupomEffects.Colete20 | CupomEffects.Colete10)) > (CupomEffects)0) || (itemId == 1200078000 && (effects & (CupomEffects.HollowPointF | CupomEffects.HollowPoint | CupomEffects.IronBullet)) > (CupomEffects)0 || itemId == 1200032000 && (effects & (CupomEffects.HollowPointPlus | CupomEffects.HollowPointF | CupomEffects.IronBullet)) > (CupomEffects)0 || (itemId == 1200031000 && (effects & (CupomEffects.HollowPointPlus | CupomEffects.HollowPointF | CupomEffects.HollowPoint)) > (CupomEffects)0 || itemId == 1200036000 && (effects & (CupomEffects.HollowPointPlus | CupomEffects.HollowPoint | CupomEffects.IronBullet)) > (CupomEffects)0)) || (itemId == 1200028000 && effects.HasFlag((Enum)CupomEffects.HP5) || itemId == 1200040000 && effects.HasFlag((Enum)CupomEffects.HP10))) { this.erro = 2147483648U; } else { ItemsModel itemsModel1 = p._inventory.getItem(itemId); if (itemsModel1 == null) { bool flag = p._bonus.AddBonuses(itemId); CupomFlag cupomEffect = CupomEffectManager.getCupomEffect(itemId); if (cupomEffect != null && cupomEffect.EffectFlag > (CupomEffects)0 && !p.effects.HasFlag((Enum)cupomEffect.EffectFlag)) { p.effects |= cupomEffect.EffectFlag; PlayerManager.updateCupomEffects(p.player_id, p.effects); } if (flag) { PlayerManager.updatePlayerBonus(p.player_id, p._bonus.bonuses, p._bonus.freepass); } GameClient client = this._client; int type = 1; Account player = p; int id = itemId; int category = 3; string name = originalName + " [Active]"; int equip = 2; DateTime dateTime = DateTime.Now; dateTime = dateTime.AddDays((double)idStatics); int num = (int)uint.Parse(dateTime.ToString("yyMMddHHmm")); long objId = 0; ItemsModel itemsModel2 = new ItemsModel(id, category, name, equip, (uint)num, objId); INVENTORY_ITEM_CREATE_PAK inventoryItemCreatePak = new INVENTORY_ITEM_CREATE_PAK(type, player, itemsModel2); client.SendPacket((SendPacket)inventoryItemCreatePak); } else { DateTime exact = DateTime.ParseExact(itemsModel1._count.ToString(), "yyMMddHHmm", (IFormatProvider)CultureInfo.InvariantCulture); itemsModel1._count = uint.Parse(exact.AddDays((double)idStatics).ToString("yyMMddHHmm")); ComDiv.updateDB("player_items", "count", (object)(long)itemsModel1._count, "object_id", (object)itemsModel1._objId, "owner_id", (object)p.player_id); this._client.SendPacket((SendPacket) new INVENTORY_ITEM_CREATE_PAK(2, p, itemsModel1)); } } }
private void CupomIncreaseDays(Account player, string originalName) { int cupomId = CreateItemId(12, GetIdStatics(itemId, 2), GetIdStatics(itemId, 3), 0); int days = GetIdStatics(itemId, 4); player.SetCuponsFlags(); CupomEffects effects = player.effects; if (cupomId == 1200065000 && ((effects & (CupomEffects.Colete5 | CupomEffects.Colete10 | CupomEffects.Colete20)) > 0) || cupomId == 1200079000 && ((effects & (CupomEffects.Colete5 | CupomEffects.Colete10 | CupomEffects.Colete90)) > 0) || cupomId == 1200044000 && ((effects & (CupomEffects.Colete5 | CupomEffects.Colete20 | CupomEffects.Colete90)) > 0) || cupomId == 1200030000 && ((effects & (CupomEffects.Colete20 | CupomEffects.Colete10 | CupomEffects.Colete90)) > 0) || cupomId == 1200078000 && ((effects & (CupomEffects.IronBullet | CupomEffects.HollowPoint | CupomEffects.HollowPointF)) > 0) || cupomId == 1200032000 && ((effects & (CupomEffects.HollowPointF | CupomEffects.HollowPointPlus | CupomEffects.IronBullet)) > 0) || cupomId == 1200031000 && ((effects & (CupomEffects.HollowPointF | CupomEffects.HollowPointPlus | CupomEffects.HollowPoint)) > 0) || cupomId == 1200036000 && ((effects & (CupomEffects.HollowPoint | CupomEffects.HollowPointPlus | CupomEffects.IronBullet)) > 0) || cupomId == 1200028000 && effects.HasFlag(CupomEffects.HP5) || cupomId == 1200040000 && effects.HasFlag(CupomEffects.HP10)) { client.SendCompletePacket(PackageDataManager.INVENTORY_ITEM_EQUIP_0x80000000_PAK); return; } else { ItemsModel item = player.inventory.GetItem(cupomId); if (item == null) { bool changed = player.bonus.AddBonuses(cupomId); if (changed) { player.UpdatePlayerBonus(); } client.SendPacket(new PROTOCOL_INVENTORY_ITEM_CREATE_ACK(1, player, new ItemsModel(cupomId, 3, originalName + " [Active]", 2, int.Parse(DateTime.Now.AddDays(days).ToString("yyMMddHHmm"))))); } else { DateTime data = DateTime.ParseExact(item.count.ToString(), "yyMMddHHmm", CultureInfo.InvariantCulture).AddDays(days); if ((data - DateTime.Now).Days + 1 > Settings.MaxBuyItemDays) //+1 porque ele não conta o dia atual da compra neste calculo, no jogo compra 30 dias, aqui mostra 29 e somo mais 1 { Logger.Warning($" [GAME] [{GetType().Name}] Não foi possivel comprar mais de {Settings.MaxBuyItemDays} dias do mesmo equipamento. ItemId: {item.id} PlayerId: {player.playerId} Date: {DateTime.Now}"); client.SendCompletePacket(PackageDataManager.INVENTORY_ITEM_EQUIP_0x80000000_PAK); return; } item.count = int.Parse(data.ToString("yyMMddHHmm")); player.ExecuteQuery($"UPDATE player_items SET count='{item.count}' WHERE object_id='{item.objectId}' AND owner_id='{player.playerId}'"); client.SendPacket(new PROTOCOL_INVENTORY_ITEM_CREATE_ACK(2, player, item)); } } }
private void cupomIncreaseDays(Account p, string originalName) { int cupomId = ComDiv.createItemId(12, ComDiv.getIdStatics(itemId, 2), ComDiv.getIdStatics(itemId, 3), 0), days = ComDiv.getIdStatics(itemId, 4); CupomEffects eff = p.effects; if (cupomId == 1200065000 && ((eff & (CupomEffects.Colete5 | CupomEffects.Colete10 | CupomEffects.Colete20)) > 0) || cupomId == 1200079000 && ((eff & (CupomEffects.Colete5 | CupomEffects.Colete10 | CupomEffects.Colete90)) > 0) || cupomId == 1200044000 && ((eff & (CupomEffects.Colete5 | CupomEffects.Colete20 | CupomEffects.Colete90)) > 0) || cupomId == 1200030000 && ((eff & (CupomEffects.Colete20 | CupomEffects.Colete10 | CupomEffects.Colete90)) > 0) || cupomId == 1200078000 && ((eff & (CupomEffects.IronBullet | CupomEffects.HollowPoint | CupomEffects.HollowPointF)) > 0) || cupomId == 1200032000 && ((eff & (CupomEffects.HollowPointF | CupomEffects.HollowPointPlus | CupomEffects.IronBullet)) > 0) || cupomId == 1200031000 && ((eff & (CupomEffects.HollowPointF | CupomEffects.HollowPointPlus | CupomEffects.HollowPoint)) > 0) || cupomId == 1200036000 && ((eff & (CupomEffects.HollowPoint | CupomEffects.HollowPointPlus | CupomEffects.IronBullet)) > 0) || cupomId == 1200028000 && eff.HasFlag(CupomEffects.HP5) || cupomId == 1200040000 && eff.HasFlag(CupomEffects.HP10)) { erro = 0x80000000; } else { ItemsModel item = p._inventory.getItem(cupomId); if (item == null) { bool changed = p._bonus.AddBonuses(cupomId); CupomFlag cupom = CupomEffectManager.getCupomEffect(cupomId); if (cupom != null && cupom.EffectFlag > 0 && !p.effects.HasFlag(cupom.EffectFlag)) { p.effects |= cupom.EffectFlag; PlayerManager.updateCupomEffects(p.player_id, p.effects); } if (changed) { PlayerManager.updatePlayerBonus(p.player_id, p._bonus.bonuses, p._bonus.freepass); } _client.SendPacket(new INVENTORY_ITEM_CREATE_PAK(1, p, new ItemsModel(cupomId, 3, originalName + " [Active]", 2, uint.Parse(DateTime.Now.AddDays(days).ToString("yyMMddHHmm"))))); } else { DateTime data = DateTime.ParseExact(item._count.ToString(), "yyMMddHHmm", CultureInfo.InvariantCulture); item._count = uint.Parse(data.AddDays(days).ToString("yyMMddHHmm")); ComDiv.updateDB("player_items", "count", (long)item._count, "id", item._objId, "owner_id", p.player_id); _client.SendPacket(new INVENTORY_ITEM_CREATE_PAK(2, p, item)); } } }
public static void SendUDPPlayerSync(Room room, SLOT slot,CupomEffects effects,int type) { using (SendGPacket pk = new SendGPacket()) { pk.writeH((short)1); pk.writeD(room.UniqueRoomId); pk.writeD(room.mapId * 16 + (int)room.room_type); pk.writeQ(room.StartTick); pk.writeC((byte)type); pk.writeC((byte)room.rodada); pk.writeC((byte)slot._id); pk.writeC((byte)slot.spawnsCount); pk.writeC(BitConverter.GetBytes(slot._playerId)[0]); if (type == 0 || type == 2) { Game_SyncNet.WriteCharaInfo(pk,room,slot,effects); } Game_SyncNet.SendPacket(pk.mstream.ToArray(),room.UDPServer.Connection); } }
public void DiscountPlayerItems() { bool updEffect = false; uint data_atual = uint.Parse(DateTime.Now.ToString("yyMMddHHmm")); List <object> removedItems = new List <object>(); int bonuses = _bonus != null ? _bonus.bonuses : 0, freepass = _bonus != null ? _bonus.freepass : 0; lock (_inventory._items) { for (int i = 0; i < _inventory._items.Count; i++) { ItemsModel item = _inventory._items[i]; if (item._count <= data_atual & item._equip == 2) { if (item._category == 3) { if (_bonus == null) { continue; } bool changed = _bonus.RemoveBonuses(item._id); if (!changed) { if (item._id == 1200014000) { ComDiv.updateDB("player_bonus", "sightcolor", 4, "player_id", player_id); _bonus.sightColor = 4; } else if (item._id == 1200006000) { ComDiv.updateDB("contas", "name_color", 0, "player_id", player_id); name_color = 0; } else if (item._id == 1200009000) { ComDiv.updateDB("player_bonus", "fakerank", 55, "player_id", player_id); _bonus.fakeRank = 55; } else if (item._id == 1200010000) { if (_bonus.fakeNick.Length > 0) { ComDiv.updateDB("player_bonus", "fakenick", "", "player_id", player_id); ComDiv.updateDB("contas", "player_name", _bonus.fakeNick, "player_id", player_id); player_name = _bonus.fakeNick; _bonus.fakeNick = ""; } } } CupomFlag cupom = CupomEffectManager.getCupomEffect(item._id); if (cupom != null && cupom.EffectFlag > 0 && effects.HasFlag(cupom.EffectFlag)) { effects -= cupom.EffectFlag; updEffect = true; } } removedItems.Add(item._objId); _inventory._items.RemoveAt(i--); } else if (item._count == 0) { removedItems.Add(item._objId); _inventory._items.RemoveAt(i--); } } ComDiv.deleteDB("player_items", "id", removedItems.ToArray(), "owner_id", player_id); } removedItems = null; if (_bonus != null && (_bonus.bonuses != bonuses || _bonus.freepass != freepass)) { PlayerManager.updatePlayerBonus(player_id, _bonus.bonuses, _bonus.freepass); } if (effects < 0) { effects = 0; } if (updEffect) { PlayerManager.updateCupomEffects(player_id, effects); } _inventory.LoadBasicItems(); int type = PlayerManager.CheckEquipedItems(_equip, _inventory._items); if (type > 0) { DBQuery query = new DBQuery(); if ((type & 2) == 2) { PlayerManager.updateWeapons(_equip, query); } if ((type & 1) == 1) { PlayerManager.updateChars(_equip, query); } ComDiv.updateDB("contas", "player_id", player_id, query.GetTables(), query.GetValues()); query = null; } }
public void DiscountPlayerItems() { bool flag = false; uint num1 = uint.Parse(DateTime.Now.ToString("yyMMddHHmm")); List <object> objectList = new List <object>(); int num2 = this._bonus != null ? this._bonus.bonuses : 0; int num3 = this._bonus != null ? this._bonus.freepass : 0; lock (this._inventory._items) { for (int index = 0; index < this._inventory._items.Count; ++index) { ItemsModel itemsModel = this._inventory._items[index]; if (itemsModel._count <= num1 & itemsModel._equip == 2) { if (itemsModel._category == 3) { if (this._bonus != null) { if (!this._bonus.RemoveBonuses(itemsModel._id)) { if (itemsModel._id == 1200014000) { ComDiv.updateDB("player_bonus", "sightcolor", (object)4, "player_id", (object)this.player_id); this._bonus.sightColor = 4; } else if (itemsModel._id == 1200006000) { ComDiv.updateDB("accounts", "name_color", (object)0, "player_id", (object)this.player_id); this.name_color = 0; } else if (itemsModel._id == 1200009000) { ComDiv.updateDB("player_bonus", "fakerank", (object)55, "player_id", (object)this.player_id); this._bonus.fakeRank = 55; } else if (itemsModel._id == 1200010000 && this._bonus.fakeNick.Length > 0) { ComDiv.updateDB("player_bonus", "fakenick", (object)"", "player_id", (object)this.player_id); ComDiv.updateDB("accounts", "player_name", (object)this._bonus.fakeNick, "player_id", (object)this.player_id); this.player_name = this._bonus.fakeNick; this._bonus.fakeNick = ""; } } CupomFlag cupomEffect = CupomEffectManager.getCupomEffect(itemsModel._id); if (cupomEffect != null && cupomEffect.EffectFlag > (CupomEffects)0 && this.effects.HasFlag((Enum)cupomEffect.EffectFlag)) { this.effects -= cupomEffect.EffectFlag; flag = true; } } else { continue; } } objectList.Add((object)itemsModel._objId); this._inventory._items.RemoveAt(index--); } else if (itemsModel._count == 0U) { objectList.Add((object)itemsModel._objId); this._inventory._items.RemoveAt(index--); } } ComDiv.deleteDB("player_items", "object_id", objectList.ToArray(), "owner_id", (object)this.player_id); } if (this._bonus != null && (this._bonus.bonuses != num2 || this._bonus.freepass != num3)) { PlayerManager.updatePlayerBonus(this.player_id, this._bonus.bonuses, this._bonus.freepass); } if (this.effects < (CupomEffects)0) { this.effects = (CupomEffects)0; } if (flag) { PlayerManager.updateCupomEffects(this.player_id, this.effects); } this._inventory.LoadBasicItems(); int num4 = PlayerManager.CheckEquipedItems(this._equip, this._inventory._items, false); if (num4 <= 0) { return; } DBQuery query = new DBQuery(); if ((num4 & 2) == 2) { PlayerManager.updateWeapons(this._equip, query); } if ((num4 & 1) == 1) { PlayerManager.updateChars(this._equip, query); } ComDiv.updateDB("accounts", "player_id", (object)this.player_id, query.GetTables(), query.GetValues()); }