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)); }
public INVENTORY_ITEM_EQUIP_PAK(uint erro, ItemsModel item = null, Account p = null) { this.erro = erro; if (erro != 1) { return; } if (item != null) { int wclass = ComDiv.getIdStatics(item._id, 1); if (wclass == 13 || wclass == 15) { if (item._count > 1 && item._equip == 1) { ComDiv.updateDB("player_items", "count", (long)--item._count, "id", item._objId, "owner_id", p.player_id); } else { PlayerManager.DeleteItem(item._objId, p.player_id); p._inventory.RemoveItem(item); item._id = 0; item._count = 0; } } else { item._equip = 2; } this.item = item; } else { this.erro = 0x80000000; } }
public INVENTORY_ITEM_EQUIP_PAK(uint erro, ItemsModel item = null, Account p = null) { this.erro = erro; if (erro != 1U) { return; } if (item != null) { switch (ComDiv.getIdStatics(item._id, 1)) { case 13: case 15: if (item._count > 1U && item._equip == 1) { ComDiv.updateDB("player_items", "count", (object)(long)--item._count, "object_id", (object)item._objId, "owner_id", (object)p.player_id); break; } PlayerManager.DeleteItem(item._objId, p.player_id); p._inventory.RemoveItem(item); item._id = 0; item._count = 0U; break; default: item._equip = 2; break; } this.item = item; } else { this.erro = 2147483648U; } }
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 cupomIncreaseGold(Account p, int cupomId) { int increase = ComDiv.getIdStatics(cupomId, 4) * 1000 + ComDiv.getIdStatics(cupomId, 3) * 100 + ComDiv.getIdStatics(cupomId, 2) * 1000000; if (PlayerManager.updateAccountGold(p.player_id, p._gp + increase)) { p._gp += increase; this._client.SendPacket((SendPacket) new AUTH_GOLD_REWARD_PAK(increase, p._gp, 0)); } else { this.erro = 2147483648U; } }
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 cupomIncreaseGold(Account p, int cupomId) { int gold = ComDiv.getIdStatics(cupomId, 4) * 1000; gold += ComDiv.getIdStatics(cupomId, 3) * 100; gold += ComDiv.getIdStatics(cupomId, 2) * 1000000; if (PlayerManager.updateAccountGold(p.player_id, p._gp + (gold))) { p._gp += gold; _client.SendPacket(new AUTH_GOLD_REWARD_PAK(gold, p._gp, 0)); } else { erro = 0x80000000; } }
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 override void run() { try { Account player = this._client._player; ItemsModel itemsModel = player == null ? (ItemsModel)null : player._inventory.getItem(this.objId); if (itemsModel != null && itemsModel._id > 1300000000) { int itemId = ComDiv.createItemId(12, ComDiv.getIdStatics(itemsModel._id, 2), ComDiv.getIdStatics(itemsModel._id, 3), 0); uint cuponDays = uint.Parse(DateTime.Now.AddDays((double)ComDiv.getIdStatics(itemsModel._id, 4)).ToString("yyMMddHHmm")); switch (itemId) { case 1200005000: case 1201052000: this.objetivo = BitConverter.ToUInt32(this.info, 0); break; case 1200010000: case 1201047000: case 1201051000: this.txt = ComDiv.arrayToString(this.info, this.info.Length); break; default: if (this.info.Length != 0) { this.objetivo = (uint)this.info[0]; break; } break; } this.CreateCuponEffects(itemId, cuponDays, player); } else { this.erro = 2147483648U; } this._client.SendPacket((SendPacket) new INVENTORY_ITEM_EQUIP_PAK(this.erro, itemsModel, player)); } catch (Exception ex) { Logger.info("INVENTORY_ITEM_EFFECT_REC: " + ex.ToString()); this._client.SendPacket((SendPacket) new INVENTORY_ITEM_EQUIP_PAK(2147483648U, (ItemsModel)null, (Account)null)); } }
public override void run() { try { Account p = _client._player; ItemsModel item = p == null ? null : p._inventory.getItem(objId); if (item != null && item._id > 1300000000) { int cuponId = ComDiv.createItemId(12, ComDiv.getIdStatics(item._id, 2), ComDiv.getIdStatics(item._id, 3), 0); uint cuponDays = uint.Parse(DateTime.Now.AddDays(ComDiv.getIdStatics(item._id, 4)).ToString("yyMMddHHmm")); if (cuponId == 1201047000 || cuponId == 1201051000 || cuponId == 1200010000) { txt = ComDiv.arrayToString(info, info.Length); } else if (cuponId == 1201052000 || cuponId == 1200005000) { objetivo = BitConverter.ToUInt32(info, 0); } else if (info.Length > 0) { objetivo = info[0]; } CreateCuponEffects(cuponId, cuponDays, p); } else { erro = 0x80000000; } _client.SendPacket(new INVENTORY_ITEM_EQUIP_PAK(erro, item, p)); } catch (Exception ex) { SaveLog.fatal(ex.ToString()); Printf.b_danger("[INVENTORY_ITEM_EFFECT_REC.run] Erro fatal!"); _client.SendPacket(new INVENTORY_ITEM_EQUIP_PAK(0x80000000)); } }
public static void Load(int type) { try { using (NpgsqlConnection connection = SQLjec.getInstance().conn()) { connection.Open(); NpgsqlCommand command = connection.CreateCommand(); command.CommandText = "SELECT * FROM shop"; command.CommandType = CommandType.Text; NpgsqlDataReader data = command.ExecuteReader(); while (data.Read()) { GoodItem good = new GoodItem { id = data.GetInt32(0), price_gold = data.GetInt32(3), price_cash = data.GetInt32(4), auth_type = data.GetInt16(6), buy_type2 = data.GetInt16(7), buy_type3 = data.GetInt16(8), tag = data.GetInt16(9), title = data.GetInt16(10), visibility = data.GetInt16(11) }; good._item.SetItemId(data.GetInt32(1)); good._item._name = data.GetString(2); good._item._count = (UInt32)data.GetInt32(5); int Static = ComDiv.getIdStatics(good._item._id, 1); if (type == 1 || type == 2 && Static == 12) { ShopAllList.Add(good); if (good.visibility != 2 && good.visibility != 4) { ShopBuyableList.Add(good); } if (!ShopUniqueList.ContainsKey(good._item._id) && good.auth_type > 0) { ShopUniqueList.Add(good._item._id, good); if (good.visibility == 4) { set4p++; } } } } if (type == 1) { LoadDataMatching1Goods(0); LoadDataMatching2(1); LoadDataItems(); } command.Dispose(); data.Close(); connection.Dispose(); connection.Close(); } if (set4p > 0) { Printf.warning("[Aviso] Existem " + set4p + " itens na loja invisíveis, porém com os ícones liberados."); } } catch (Exception ex) { SaveLog.fatal(ex.ToString()); Printf.b_danger("[ShopManager.Load] Erro fatal!"); } }
public override void run() { try { Account player = this._client._player; if (player == null) { return; } ItemsModel itemsModel = player._inventory.getItem(this.objId); PlayerBonus bonus = player._bonus; if (itemsModel == null) { this.erro = 2147483648U; } else if (ComDiv.getIdStatics(itemsModel._id, 1) == 12) { if (bonus == null) { this._client.SendPacket((SendPacket) new INVENTORY_ITEM_EXCLUDE_PAK(2147483648U, 0L)); return; } if (!bonus.RemoveBonuses(itemsModel._id)) { if (itemsModel._id == 1200014000) { if (ComDiv.updateDB("player_bonus", "sightcolor", (object)4, "player_id", (object)player.player_id)) { bonus.sightColor = 4; this._client.SendPacket((SendPacket) new BASE_USER_EFFECTS_PAK(0, bonus)); } else { this.erro = 2147483648U; } } else if (itemsModel._id == 1200010000) { if (bonus.fakeNick.Length == 0) { this.erro = 2147483648U; } else if (ComDiv.updateDB("accounts", "player_name", (object)bonus.fakeNick, "player_id", (object)player.player_id) && ComDiv.updateDB("player_bonus", "fakenick", (object)"", "player_id", (object)player.player_id)) { player.player_name = bonus.fakeNick; bonus.fakeNick = ""; this._client.SendPacket((SendPacket) new BASE_USER_EFFECTS_PAK(0, bonus)); this._client.SendPacket((SendPacket) new AUTH_CHANGE_NICKNAME_PAK(player.player_name)); } else { this.erro = 2147483648U; } } else if (itemsModel._id == 1200009000) { if (ComDiv.updateDB("player_bonus", "fakerank", (object)55, "player_id", (object)player.player_id)) { bonus.fakeRank = 55; this._client.SendPacket((SendPacket) new BASE_USER_EFFECTS_PAK(0, bonus)); } else { this.erro = 2147483648U; } } else if (itemsModel._id == 1200006000) { if (ComDiv.updateDB("accounts", "name_color", (object)0, "player_id", (object)player.player_id)) { player.name_color = 0; this._client.SendPacket((SendPacket) new BASE_2612_PAK(player)); Room room = player._room; if (room != null) { using (ROOM_GET_NICKNAME_PAK roomGetNicknamePak = new ROOM_GET_NICKNAME_PAK(player._slotId, player.player_name, player.name_color)) room.SendPacketToPlayers((SendPacket)roomGetNicknamePak); } } else { this.erro = 2147483648U; } } } else { PlayerManager.updatePlayerBonus(player.player_id, bonus.bonuses, bonus.freepass); } CupomFlag cupomEffect = CupomEffectManager.getCupomEffect(itemsModel._id); if (cupomEffect != null && cupomEffect.EffectFlag > (CupomEffects)0 && player.effects.HasFlag((Enum)cupomEffect.EffectFlag)) { player.effects -= cupomEffect.EffectFlag; PlayerManager.updateCupomEffects(player.player_id, player.effects); } } if (this.erro == 1U && itemsModel != null) { if (PlayerManager.DeleteItem(itemsModel._objId, player.player_id)) { player._inventory.RemoveItem(itemsModel); } else { this.erro = 2147483648U; } } this._client.SendPacket((SendPacket) new INVENTORY_ITEM_EXCLUDE_PAK(this.erro, this.objId)); } catch (Exception ex) { Logger.info("[INVENTORY_ITEM_EXCLUDE_REC] " + ex.ToString()); this._client.SendPacket((SendPacket) new INVENTORY_ITEM_EXCLUDE_PAK(2147483648U, 0L)); } }
public override void run() { if (this._client == null) { return; } if (this._client._player == null) { return; } try { Account player = this._client._player; ItemsModel itemsModel1 = player._inventory.getItem(this.objId); if (itemsModel1 != null) { this.itemId = itemsModel1._id; this.oldCOUNT = itemsModel1._count; if (itemsModel1._category == 3 && player._inventory._items.Count >= 500) { this._client.SendPacket((SendPacket) new INVENTORY_ITEM_EQUIP_PAK(2147487785U, (ItemsModel)null, (Account)null)); Logger.warning("O inventário do jogador: '" + player.player_name + "' está cheio demais!"); return; } if (this.itemId == 1301049000) { if (PlayerManager.updateKD(player.player_id, 0, 0, player._statistic.headshots_count, player._statistic.totalkills_count)) { player._statistic.kills_count = 0; player._statistic.deaths_count = 0; this._client.SendPacket((SendPacket) new BASE_USER_CHANGE_STATS_PAK(player._statistic)); } else { this.erro = 2147483648U; } } else if (this.itemId == 1301048000) { if (PlayerManager.updateFights(0, 0, 0, 0, player._statistic.totalfights_count, player.player_id)) { player._statistic.fights = 0; player._statistic.fights_win = 0; player._statistic.fights_lost = 0; player._statistic.fights_draw = 0; this._client.SendPacket((SendPacket) new BASE_USER_CHANGE_STATS_PAK(player._statistic)); } else { this.erro = 2147483648U; } } else if (this.itemId == 1301050000) { if (ComDiv.updateDB("accounts", "escapes", (object)0, "player_id", (object)player.player_id)) { player._statistic.escapes = 0; this._client.SendPacket((SendPacket) new BASE_USER_CHANGE_STATS_PAK(player._statistic)); } else { this.erro = 2147483648U; } } else if (this.itemId == 1301053000) { if (PlayerManager.updateClanBattles(player.clanId, 0, 0, 0)) { Clan clan = ClanManager.getClan(player.clanId); if (clan._id > 0 && clan.owner_id == this._client.player_id) { clan.partidas = 0; clan.vitorias = 0; clan.derrotas = 0; this._client.SendPacket((SendPacket) new CLAN_CHANGE_FIGHTS_PAK()); } else { this.erro = 2147483648U; } } else { this.erro = 2147483648U; } } else if (this.itemId == 1301055000) { Clan clan = ClanManager.getClan(player.clanId); if (clan._id > 0 && clan.owner_id == this._client.player_id) { if (clan.maxPlayers + 50 <= 250 && ComDiv.updateDB("clan_data", "max_players", (object)(clan.maxPlayers + 50), "clan_id", (object)player.clanId)) { clan.maxPlayers += 50; this._client.SendPacket((SendPacket) new CLAN_CHANGE_MAX_PLAYERS_PAK(clan.maxPlayers)); } else { this.erro = 2147487830U; } } else { this.erro = 2147487830U; } } else if (this.itemId == 1301056000) { Clan clan = ClanManager.getClan(player.clanId); if (clan._id > 0 && (double)clan._pontos != 1000.0) { if (ComDiv.updateDB("clan_data", "pontos", (object)1000f, "clan_id", (object)player.clanId)) { clan._pontos = 1000f; this._client.SendPacket((SendPacket) new CLAN_CHANGE_POINTS_PAK()); } else { this.erro = 2147487830U; } } else { this.erro = 2147487830U; } } else if (this.itemId > 1301113000 && this.itemId < 1301119000) { int increase = this.itemId == 1301114000 ? 500 : (this.itemId == 1301115000 ? 1000 : (this.itemId == 1301116000 ? 5000 : (this.itemId == 1301117000 ? 10000 : 30000))); if (ComDiv.updateDB("accounts", "gp", (object)(player._gp + increase), "player_id", (object)player.player_id)) { player._gp += increase; this._client.SendPacket((SendPacket) new AUTH_GOLD_REWARD_PAK(increase, player._gp, 0)); } else { this.erro = 2147483648U; } } else if (this.itemId == 1301999000) { if (ComDiv.updateDB("accounts", "exp", (object)(player._exp + 515999), "player_id", (object)player.player_id)) { player._exp += 515999; this._client.SendPacket((SendPacket) new A_3096_PAK(515999, 0)); } else { this.erro = 2147483648U; } } else if (itemsModel1._category == 3 && RandomBoxXML.ContainsBox(this.itemId)) { RandomBoxModel box = RandomBoxXML.getBox(this.itemId); if (box != null) { List <RandomBoxItem> sortedList = box.getSortedList(INVENTORY_ITEM_EQUIP_REC.GetRandomNumber(1, 100)); List <RandomBoxItem> rewardList = box.getRewardList(sortedList, INVENTORY_ITEM_EQUIP_REC.GetRandomNumber(0, sortedList.Count)); if (rewardList.Count > 0) { int index1 = rewardList[0].index; this._client.SendPacket((SendPacket) new AUTH_RANDOM_BOX_REWARD_PAK(this.itemId, index1)); List <ItemsModel> items = new List <ItemsModel>(); for (int index2 = 0; index2 < rewardList.Count; ++index2) { RandomBoxItem randomBoxItem = rewardList[index2]; if (randomBoxItem.item != null) { items.Add(randomBoxItem.item); } else if (PlayerManager.updateAccountGold(player.player_id, player._gp + (int)randomBoxItem.count)) { player._gp += (int)randomBoxItem.count; this._client.SendPacket((SendPacket) new AUTH_GOLD_REWARD_PAK((int)randomBoxItem.count, player._gp, 0)); } else { this.erro = 2147483648U; break; } if (randomBoxItem.special) { using (AUTH_JACKPOT_NOTICE_PAK jackpotNoticePak = new AUTH_JACKPOT_NOTICE_PAK(player.player_name, this.itemId, index1)) GameManager.SendPacketToAllClients((SendPacket)jackpotNoticePak); } } if (items.Count > 0) { this._client.SendPacket((SendPacket) new INVENTORY_ITEM_CREATE_PAK(1, player, items)); } } else { this.erro = 2147483648U; } } else { this.erro = 2147483648U; } } else { int idStatics = ComDiv.getIdStatics(itemsModel1._id, 1); if (idStatics <= 11) { if (itemsModel1._equip == 1) { itemsModel1._equip = 2; ItemsModel itemsModel2 = itemsModel1; DateTime dateTime = DateTime.Now; dateTime = dateTime.AddSeconds((double)itemsModel1._count); int num = (int)uint.Parse(dateTime.ToString("yyMMddHHmm")); itemsModel2._count = (uint)num; ComDiv.updateDB("player_items", "object_id", (object)this.objId, "owner_id", (object)player.player_id, new string[2] { "count", "equip" }, (object)(long)itemsModel1._count, (object)itemsModel1._equip); } else { this.erro = 2147483648U; } } else if (idStatics == 13) { this.cupomIncreaseDays(player, itemsModel1._name); } else if (idStatics == 15) { this.cupomIncreaseGold(player, itemsModel1._id); } else { this.erro = 2147483648U; } } } else { this.erro = 2147483648U; } this._client.SendPacket((SendPacket) new INVENTORY_ITEM_EQUIP_PAK(this.erro, itemsModel1, player)); } catch (OverflowException ex) { Logger.error("[Data do erro: " + DateTime.Now.ToString("dd/MM/yyyy HH:mm") + "] Obj: " + (object)this.objId + "; Id do item: " + (object)this.itemId + "; Count na Db: " + (object)this.oldCOUNT + "; Id do cara: " + (object)this._client.player_id + "; Nick: '" + this._client._player.player_name + "'\r\n" + ex.ToString()); this._client.SendPacket((SendPacket) new INVENTORY_ITEM_EQUIP_PAK(2147483648U, (ItemsModel)null, (Account)null)); } catch (Exception ex) { Logger.info("INVENTORY_ITEM_EQUIP_REC: " + ex.ToString()); this._client.SendPacket((SendPacket) new INVENTORY_ITEM_EQUIP_PAK(2147483648U, (ItemsModel)null, (Account)null)); } }
public static void RegistryFragInfos(Room room,SLOT killer,out int score,bool isBotMode,bool isSuicide,FragInfos kills) { score = 0; ITEM_CLASS weaponClass = (ITEM_CLASS)ComDiv.getIdStatics(kills.weapon,1); for (int i = 0; i < kills.frags.Count; i++) { Frag frag = kills.frags[i]; CharaDeath deathType = (CharaDeath)(frag.hitspotInfo >> 4); if (kills.killsCount - (isSuicide ? 1 : 0) > 1) { frag.killFlag |= deathType == CharaDeath.BOOM || deathType == CharaDeath.OBJECT_EXPLOSION || deathType == CharaDeath.POISON || deathType == CharaDeath.HOWL || deathType == CharaDeath.TRAMPLED || weaponClass == ITEM_CLASS.SHOTGUN ? KillingMessage.MassKill : KillingMessage.PiercingShot; } else { int num2 = 0; if (deathType == CharaDeath.HEADSHOT) { num2 = 4; } else if (deathType == CharaDeath.DEFAULT && weaponClass == ITEM_CLASS.KNIFE) { num2 = 6; } if (num2 > 0) { int num3 = killer.lastKillState >> 12; if (num2 == 4) { if (num3 != 4) { killer.repeatLastState = false; } killer.lastKillState = num2 << 12 | (killer.killsOnLife + 1); if (killer.repeatLastState) { frag.killFlag |= (killer.lastKillState & 16383) <= 1 ? KillingMessage.Headshot : KillingMessage.ChainHeadshot; } else { frag.killFlag |= KillingMessage.Headshot; killer.repeatLastState = true; } } else if (num2 == 6) { if (num3 != 6) { killer.repeatLastState = false; } killer.lastKillState = num2 << 12 | (killer.killsOnLife + 1); if (killer.repeatLastState && (killer.lastKillState & 16383) > 1) { frag.killFlag |= KillingMessage.ChainSlugger; } else { killer.repeatLastState = true; } } } else { killer.lastKillState = 0; killer.repeatLastState = false; } } int victimId = frag.VictimSlot; SLOT victimSlot = room._slots[victimId]; if (victimSlot.killsOnLife > 3) { frag.killFlag |= KillingMessage.ChainStopper; } if ((kills.weapon == 19016 || kills.weapon == 19022) && kills.killerIdx == victimId || victimSlot.specGM) { } else { victimSlot.allDeaths++; //exprosao acid } if (killer._team != victimSlot._team) { score += AllUtils.getKillScore(frag.killFlag); killer.allKills++; if (killer._deathState == DeadEnum.isAlive) { killer.killsOnLife++; } if (victimSlot._team == 0) { room._redDeaths++; room._blueKills++; } else { room._blueDeaths++; room._redKills++; } if (room.room_type == 7) { if (killer._team == 0) { room.red_dino += 4; } else { room.blue_dino += 4; } } } victimSlot.lastKillState = 0; victimSlot.killsOnLife = 0; victimSlot.repeatLastState = false; victimSlot.passSequence = 0; victimSlot._deathState = DeadEnum.isDead; if (!isBotMode) { AllUtils.CompleteMission(room,victimSlot,MISSION_TYPE.DEATH,0); } if (deathType == CharaDeath.HEADSHOT) { killer.headshots++; } } }
public override void run() { try { Account p = _client._player; if (p == null) { return; } ItemsModel item = p._inventory.getItem(objId); PlayerBonus bonus = p._bonus; if (item == null) { erro = 0x80000000; } else if (ComDiv.getIdStatics(item._id, 1) == 12) { if (bonus == null) { _client.SendPacket(new INVENTORY_ITEM_EXCLUDE_PAK(0x80000000)); return; } bool changed = bonus.RemoveBonuses(item._id); if (!changed) { if (item._id == 1200014000) { if (ComDiv.updateDB("player_bonus", "sightcolor", 4, "player_id", p.player_id)) { bonus.sightColor = 4; _client.SendPacket(new BASE_USER_EFFECTS_PAK(0, bonus)); } else { erro = 0x80000000; } } else if (item._id == 1200010000) { if (bonus.fakeNick.Length == 0) { erro = 0x80000000; } else { if (ComDiv.updateDB("contas", "player_name", bonus.fakeNick, "player_id", p.player_id) && ComDiv.updateDB("player_bonus", "fakenick", "", "player_id", p.player_id)) { p.player_name = bonus.fakeNick; bonus.fakeNick = ""; _client.SendPacket(new BASE_USER_EFFECTS_PAK(0, bonus)); _client.SendPacket(new AUTH_CHANGE_NICKNAME_PAK(p.player_name)); } else { erro = 0x80000000; } } } else if (item._id == 1200009000) { if (ComDiv.updateDB("player_bonus", "fakerank", 55, "player_id", p.player_id)) { bonus.fakeRank = 55; _client.SendPacket(new BASE_USER_EFFECTS_PAK(0, bonus)); } else { erro = 0x80000000; } } else if (item._id == 1200006000) { if (ComDiv.updateDB("contas", "name_color", 0, "player_id", p.player_id)) { p.name_color = 0; _client.SendPacket(new BASE_2612_PAK(p)); Room room = p._room; if (room != null) { using (ROOM_GET_NICKNAME_PAK packet = new ROOM_GET_NICKNAME_PAK(p._slotId, p.player_name, p.name_color)) room.SendPacketToPlayers(packet); } } else { erro = 0x80000000; } } } else { PlayerManager.updatePlayerBonus(p.player_id, bonus.bonuses, bonus.freepass); } CupomFlag cupom = CupomEffectManager.getCupomEffect(item._id); if (cupom != null && cupom.EffectFlag > 0 && p.effects.HasFlag(cupom.EffectFlag)) { p.effects -= cupom.EffectFlag; PlayerManager.updateCupomEffects(p.player_id, p.effects); } } if (erro == 1 && item != null) { if (PlayerManager.DeleteItem(item._objId, p.player_id)) { p._inventory.RemoveItem(item); } else { erro = 0x80000000; } } _client.SendPacket(new INVENTORY_ITEM_EXCLUDE_PAK(erro, objId)); } catch (Exception ex) { SaveLog.fatal(ex.ToString()); Printf.b_danger("[INVENTORY_ITEM_EXCLUDE_REC.INVENTORY_ITEM_EXCLUDE_REC] Erro fatal!"); _client.SendPacket(new INVENTORY_ITEM_EXCLUDE_PAK(0x80000000)); } }
public override void run() { if (_client == null || _client._player == null) { return; } try { Account p = _client._player; ItemsModel itemObj = p._inventory.getItem(objId); if (itemObj != null) { itemId = itemObj._id; oldCOUNT = itemObj._count; if (itemObj._category == 3 && p._inventory._items.Count >= 500) { _client.SendPacket(new INVENTORY_ITEM_EQUIP_PAK(0x80001029)); SaveLog.warning("O inventário do jogador: '" + p.player_name + "' está cheio demais!"); Printf.warning("Inventario do jogador " + p.player_name + " esta cheio"); return; } if (itemId == 1301049000) { if (PlayerManager.updateKD(p.player_id, 0, 0, p._statistic.headshots_count, p._statistic.totalkills_count)) { p._statistic.kills_count = 0; p._statistic.deaths_count = 0; _client.SendPacket(new BASE_USER_CHANGE_STATS_PAK(p._statistic)); } else { erro = 0x80000000; } } else if (itemId == 1301048000) { if (PlayerManager.updateFights(0, 0, 0, 0, p._statistic.totalfights_count, p.player_id)) { p._statistic.fights = 0; p._statistic.fights_win = 0; p._statistic.fights_lost = 0; p._statistic.fights_draw = 0; _client.SendPacket(new BASE_USER_CHANGE_STATS_PAK(p._statistic)); } else { erro = 0x80000000; } } else if (itemId == 1301050000) { if (ComDiv.updateDB("contas", "escapes", 0, "player_id", p.player_id)) { p._statistic.escapes = 0; _client.SendPacket(new BASE_USER_CHANGE_STATS_PAK(p._statistic)); } else { erro = 0x80000000; } } else if (itemId == 1301053000) { if (PlayerManager.updateClanBattles(p.clanId, 0, 0, 0)) { Clan c = ClanManager.getClan(p.clanId); if (c._id > 0 && c.owner_id == _client.player_id) { c.partidas = 0; c.vitorias = 0; c.derrotas = 0; _client.SendPacket(new CLAN_CHANGE_FIGHTS_PAK()); } else { erro = 0x80000000; } } else { erro = 0x80000000; } } else if (itemId == 1301055000) { Clan c = ClanManager.getClan(p.clanId); if (c._id > 0 && c.owner_id == _client.player_id) { if (c.maxPlayers + 50 <= 250 && ComDiv.updateDB("clan_data", "max_players", c.maxPlayers + 50, "clan_id", p.clanId)) { c.maxPlayers += 50; _client.SendPacket(new CLAN_CHANGE_MAX_PLAYERS_PAK(c.maxPlayers)); } else { erro = 0x80001056; } } else { erro = 0x80001056; } } else if (itemId == 1301056000) { Clan c = ClanManager.getClan(p.clanId); if (c._id > 0 && c._pontos != 1000) { if (ComDiv.updateDB("clan_data", "pontos", 1000.0f, "clan_id", p.clanId)) { c._pontos = 1000; _client.SendPacket(new CLAN_CHANGE_POINTS_PAK()); } else { erro = 0x80001056; } } else { erro = 0x80001056; } } else if (itemId > 1301113000 && itemId < 1301119000) { int goldReceive = itemId == 1301114000 ? 500 : (itemId == 1301115000 ? 1000 : (itemId == 1301116000 ? 5000 : (itemId == 1301117000 ? 10000 : 30000))); if (ComDiv.updateDB("contas", "gp", p._gp + goldReceive, "player_id", p.player_id)) { p._gp += goldReceive; _client.SendPacket(new AUTH_GOLD_REWARD_PAK(goldReceive, p._gp, 0)); } else { erro = 0x80000000; } } else if (itemId == 1301999000) { if (ComDiv.updateDB("contas", "exp", p._exp + 515999, "player_id", p.player_id)) { p._exp += 515999; _client.SendPacket(new A_3096_PAK(515999, 0)); } else { erro = 0x80000000; } } else if (itemObj._category == 3 && RandomBoxXML.ContainsBox(itemId)) { RandomBoxModel box = RandomBoxXML.getBox(itemId); if (box != null) { List <RandomBoxItem> sortedList = box.getSortedList(GetRandomNumber(1, 100)); List <RandomBoxItem> rewardList = box.getRewardList(sortedList, GetRandomNumber(0, sortedList.Count)); if (rewardList.Count > 0) { int itemIdx = rewardList[0].index; _client.SendPacket(new AUTH_RANDOM_BOX_REWARD_PAK(itemId, itemIdx)); List <ItemsModel> rewards = new List <ItemsModel>(); for (int i = 0; i < rewardList.Count; i++) { RandomBoxItem cupom = rewardList[i]; if (cupom.item != null) { rewards.Add(cupom.item); } else if (PlayerManager.updateAccountGold(p.player_id, p._gp + (int)cupom.count)) { p._gp += (int)cupom.count; _client.SendPacket(new AUTH_GOLD_REWARD_PAK((int)cupom.count, p._gp, 0)); } else { erro = 0x80000000; break; } if (cupom.special) { using (AUTH_JACKPOT_NOTICE_PAK packet = new AUTH_JACKPOT_NOTICE_PAK(p.player_name, itemId, itemIdx)) GameManager.SendPacketToAllClients(packet); } } if (rewards.Count > 0) { _client.SendPacket(new INVENTORY_ITEM_CREATE_PAK(1, p, rewards)); } } else { erro = 0x80000000; } sortedList = null; rewardList = null; } else { erro = 0x80000000; } } else { int wclass = ComDiv.getIdStatics(itemObj._id, 1); if (wclass <= 11) { if (itemObj._equip == 1) { itemObj._equip = 2; itemObj._count = uint.Parse(DateTime.Now.AddSeconds(itemObj._count).ToString("yyMMddHHmm")); ComDiv.updateDB("player_items", "id", objId, "owner_id", p.player_id, new string[] { "count", "equip" }, (long)itemObj._count, itemObj._equip); } else { erro = 0x80000000; } } else if (wclass == 13) { cupomIncreaseDays(p, itemObj._name); } else if (wclass == 15) { cupomIncreaseGold(p, itemObj._id); } else { erro = 0x80000000; } } } else { erro = 0x80000000; } _client.SendPacket(new INVENTORY_ITEM_EQUIP_PAK(erro, itemObj, p)); } catch (OverflowException ex) { Printf.b_danger("[INVENTORY_ITEM_EQUIP_REC.run] Erro fatal!"); SaveLog.fatal(" Obj: " + objId + "; Id do item: " + itemId + "; Count na Db: " + oldCOUNT + "; Id do cara: " + _client.player_id + "; Nick: '" + _client._player.player_name + "'\r\n" + ex.ToString()); _client.SendPacket(new INVENTORY_ITEM_EQUIP_PAK(0x80000000)); } catch (Exception ex) { Printf.b_danger("[INVENTORY_ITEM_EQUIP_REC.run] Erro fatal!"); SaveLog.fatal(ex.ToString()); _client.SendPacket(new INVENTORY_ITEM_EQUIP_PAK(0x80000000)); } }
public static void RegistryFragInfos(Room room,SLOT killer,out int score,bool isBotMode,bool isSuicide,FragInfos kills) { score = 0; ITEM_CLASS idStatics = (ITEM_CLASS)ComDiv.getIdStatics(kills.weapon,1); for (int index = 0; index < kills.frags.Count; ++index) { Frag frag = kills.frags[index]; CharaDeath charaDeath = (CharaDeath)((int)frag.hitspotInfo >> 4); if ((int)kills.killsCount - (isSuicide ? 1 : 0) > 1) { frag.killFlag |= charaDeath == CharaDeath.BOOM || charaDeath == CharaDeath.OBJECT_EXPLOSION || (charaDeath == CharaDeath.POISON || charaDeath == CharaDeath.HOWL) || (charaDeath == CharaDeath.TRAMPLED || idStatics == ITEM_CLASS.SHOTGUN) ? KillingMessage.MassKill : KillingMessage.PiercingShot; } else { int num1 = 0; switch (charaDeath) { case CharaDeath.DEFAULT: if (idStatics == ITEM_CLASS.KNIFE) { num1 = 6; break; } break; case CharaDeath.HEADSHOT: num1 = 4; break; } if (num1 > 0) { int num2 = killer.lastKillState >> 12; switch (num1) { case 4: if (num2 != 4) { killer.repeatLastState = false; } killer.lastKillState = num1 << 12 | killer.killsOnLife + 1; if (killer.repeatLastState) { frag.killFlag |= (killer.lastKillState & 16383) <= 1 ? KillingMessage.Headshot : KillingMessage.ChainHeadshot; break; } frag.killFlag |= KillingMessage.Headshot; killer.repeatLastState = true; break; case 6: if (num2 != 6) { killer.repeatLastState = false; } killer.lastKillState = num1 << 12 | killer.killsOnLife + 1; if (killer.repeatLastState && (killer.lastKillState & 16383) > 1) { frag.killFlag |= KillingMessage.ChainSlugger; break; } killer.repeatLastState = true; break; } } else { killer.lastKillState = 0; killer.repeatLastState = false; } } int victimSlot = frag.VictimSlot; SLOT slot = room._slots[victimSlot]; if (slot.killsOnLife > 3) { frag.killFlag |= KillingMessage.ChainStopper; } if ((kills.weapon != 19016 && kills.weapon != 19022 || (int)kills.killerIdx != victimSlot) && !slot.specGM) { ++slot.allDeaths; } if (killer._team != slot._team) { score += AllUtils.getKillScore(frag.killFlag); ++killer.allKills; if (killer._deathState == DeadEnum.isAlive) { ++killer.killsOnLife; } if (slot._team == 0) { ++room._redDeaths; ++room._blueKills; } else { ++room._blueDeaths; ++room._redKills; } if (room.room_type == (byte)7) { if (killer._team == 0) { room.red_dino += 4; } else { room.blue_dino += 4; } } } slot.lastKillState = 0; slot.killsOnLife = 0; slot.repeatLastState = false; slot.passSequence = 0; slot._deathState = DeadEnum.isDead; if (!isBotMode) { AllUtils.CompleteMission(room,slot,MISSION_TYPE.DEATH,0); } if (charaDeath == CharaDeath.HEADSHOT) { ++killer.headshots; } } }