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());
        }