private void FreepassEffect(Account p,SLOT slot,Room room,bool isBotMode) { DBQuery dbQuery = new DBQuery(); if (p._bonus.freepass == 0 || p._bonus.freepass == 1 && room._channelType == 4) { if (isBotMode || slot.state < SLOT_STATE.BATTLE_READY) { return; } if (p._gp > 0) { p._gp -= 200; if (p._gp < 0) { p._gp = 0; } dbQuery.AddQuery("gp",(object)p._gp); } dbQuery.AddQuery("escapes",(object)++p._statistic.escapes); } else { if (room._state != RoomState.Battle) { return; } int num1 = 0; int num2 = 0; int num3; int num4; if (isBotMode) { int num5 = (int)room.IngameAiLevel * (150 + slot.allDeaths); if (num5 == 0) { ++num5; } int num6 = slot.Score / num5; num3 = num2 + num6; num4 = num1 + num6; } else { int num5 = slot.allKills != 0 || slot.allDeaths != 0 ? (int)slot.inBattleTime(DateTime.Now) : 0; if (room.room_type == (byte)2 || room.room_type == (byte)4) { num4 = (int)((double)slot.Score + (double)num5 / 2.5 + (double)slot.allDeaths * 2.2 + (double)(slot.objetivos * 20)); num3 = (int)((double)slot.Score + (double)num5 / 3.0 + (double)slot.allDeaths * 2.2 + (double)(slot.objetivos * 20)); } else { num4 = (int)((double)slot.Score + (double)num5 / 2.5 + (double)slot.allDeaths * 1.8 + (double)(slot.objetivos * 20)); num3 = (int)((double)slot.Score + (double)num5 / 3.0 + (double)slot.allDeaths * 1.8 + (double)(slot.objetivos * 20)); } } p._exp += ConfigGS.maxBattleXP < num4 ? ConfigGS.maxBattleXP : num4; p._gp += ConfigGS.maxBattleGP < num3 ? ConfigGS.maxBattleGP : num3; if (num3 > 0) { dbQuery.AddQuery("gp",(object)p._gp); } if (num4 > 0) { dbQuery.AddQuery("exp",(object)p._exp); } } ComDiv.updateDB("accounts","player_id",(object)p.player_id,dbQuery.GetTables(),dbQuery.GetValues()); }
private void FreepassEffect(Account p,SLOT slot,Room room,bool isBotMode) { DBQuery query = new DBQuery(); if (p._bonus.freepass == 0 || p._bonus.freepass == 1 && room._channelType == 4) { if (isBotMode || slot.state < SLOT_STATE.BATTLE_READY) { return; } if (p._gp > 0) { p._gp -= 200; if (p._gp < 0) { p._gp = 0; } query.AddQuery("gp",p._gp); } query.AddQuery("escapes",++p._statistic.escapes); } else// if (ch._type != 4) { if (room._state != RoomState.Battle) { return; } int xp = 0,gp = 0; if (isBotMode) { int level = room.IngameAiLevel * (150 + slot.allDeaths); if (level == 0) { level++; } int reward = (slot.Score / level); gp += reward; xp += reward; } else { int timePlayed = slot.allKills == 0 && slot.allDeaths == 0 ? 0 : (int)slot.inBattleTime(DateTime.Now); if (room.room_type == 2 || room.room_type == 4) { xp = (int)(slot.Score + (timePlayed / 2.5) + (slot.allDeaths * 2.2) + (slot.objetivos * 20)); gp = (int)(slot.Score + (timePlayed / 3.0) + (slot.allDeaths * 2.2) + (slot.objetivos * 20)); } else { xp = (int)(slot.Score + (timePlayed / 2.5) + (slot.allDeaths * 1.8) + (slot.objetivos * 20)); gp = (int)(slot.Score + (timePlayed / 3.0) + (slot.allDeaths * 1.8) + (slot.objetivos * 20)); } } p._exp += ConfigGS.maxBattleXP < xp ? ConfigGS.maxBattleXP : xp; p._gp += ConfigGS.maxBattleGP < gp ? ConfigGS.maxBattleGP : gp; if (gp > 0) { query.AddQuery("gp",p._gp); } if (xp > 0) { query.AddQuery("exp",p._exp); } } ComDiv.updateDB("contas","player_id",p.player_id,query.GetTables(),query.GetValues()); }