Показать сообщение отдельно

  #3  
Старый 17.08.2015, 13:02
kick
Флудер
Регистрация: 20.01.2015
Сообщений: 7,201
С нами: 5952720

Репутация: 6527


По умолчанию

Цитата:
Сообщение от Спойлер  


Код:


[CODE]
package l2s.extensions;

import java.sql.ResultSet;

import l2s.database.FiltredPreparedStatement;
import l2s.database.L2DatabaseFactory;
import l2s.database.ThreadConnection;
import l2s.database.utils.DbUtils;
import l2s.game.instancemanager.ServerVariables;
import l2s.game.model.L2ObjectsStorage;
import l2s.game.tables.FakePlayersTable;

public class Stat
{
private static long _insertItemCounter = 0;
private static long _deleteItemCounter = 0;
private static long _updateItemCounter = 0;
private static long _lazyUpdateItem = 0;
private static long _updatePlayerBase = 0;

private static long _taxSum;

private static long _taxLastUpdate;
private static long _rouletteSum;
private static long _rouletteLastUpdate;
private static long _adenaSum;

public static void init()
{
_taxSum = ServerVariables.getLong("taxsum", 0);
_rouletteSum = ServerVariables.getLong("rouletteSum", 0);

ThreadConnection con = null;
FiltredPreparedStatement statement = null;
ResultSet rset = null;
try
{
con = L2DatabaseFactory.getInstance().getConnection();
statement = con.prepareStatement("SELECT (SELECT SUM(count) FROM items WHERE item_id=57) + (SELECT SUM(treasury) FROM castle) AS `count`");
rset = statement.executeQuery();
if(rset.next())
_adenaSum = rset.getLong("count");
}
catch(Exception e)
{
System.out.println("Unable to load extended RRD stats");
e.printStackTrace();
}
finally
{
DbUtils.closeQuietly(con, statement, rset);
}
}

public static void increaseInsertItemCount()
{
_insertItemCounter += 1;
}

public static long getInsertItemCount()
{
return _insertItemCounter;
}

public static void increaseDeleteItemCount()
{
_deleteItemCounter += 1;
}

public static long getDeleteItemCount()
{
return _deleteItemCounter;
}

public static void increaseUpdateItemCount()
{
_updateItemCounter += 1;
}

public static long getUpdateItemCount()
{
return _updateItemCounter;
}

public static void increaseLazyUpdateItem()
{
_lazyUpdateItem += 1;
}

public static long getLazyUpdateItem()
{
return _lazyUpdateItem;
}

public static void increaseUpdatePlayerBase()
{
_updatePlayerBase += 1;
}

public static long getUpdatePlayerBase()
{
return _updatePlayerBase;
}

public static void addTax(long sum)
{
_taxSum += sum;
if(System.currentTimeMillis() - _taxLastUpdate

Цитата:
Сообщение от Спойлер  


Код:


Код:
package l2s.extensions;

import java.lang.reflect.Field;
import java.sql.ResultSet;
import java.sql.SQLException;

import l2s.database.FiltredStatement;
import l2s.database.L2DatabaseFactory;
import l2s.database.ThreadConnection;
import l2s.database.utils.DbUtils;
import l2s.game.model.actor.L2Player;

public class Bonus
{
    private L2Player _owner = null;

    public double RATE_XP = 1;
    public double RATE_SP = 1;
    public double RATE_QUESTS_REWARD = 1;
    public double RATE_QUESTS_DROP = 1;
    public double RATE_DROP_ADENA = 1;
    public double RATE_DROP_ITEMS = 1;
    public double RATE_DROP_SPOIL = 1;

    public Bonus(final L2Player player)
    {
        if(player == null || player.getNetConnection() == null)
            return;

        _owner = player;
        restore();

        if(player.getNetConnection() == null)
            return;

        final double bonus = player.getNetConnection().getBonus();
        if(player.hasPremiumAccount())
            player.startBonusTask(player.getNetConnection().getBonusExpire() * 1000);

        RATE_XP *= bonus;
        RATE_SP *= bonus;
        RATE_DROP_ADENA *= bonus;
        RATE_DROP_ITEMS *= bonus;
        RATE_DROP_SPOIL *= bonus;
        RATE_QUESTS_REWARD *= bonus;
        RATE_QUESTS_DROP *= bonus;
    }

    private void restore()
    {
        ThreadConnection con = null;
        FiltredStatement statement = null;
        ResultSet rset = null;
        try
        {
            con = L2DatabaseFactory.getInstance().getConnection();
            statement = con.createStatement();
            rset = statement.executeQuery("SELECT bonus_name, bonus_value FROM bonus WHERE login='" + _owner.getAccountName() + "' AND (bonus_expire_time='-1' OR bonus_expire_time > " + System.currentTimeMillis() / 1000 + ")");
            while (rset.next())
            {
                final String bonus_name = rset.getString("bonus_name");
                final double bonus_value = rset.getDouble("bonus_value");
                final Class cls = getClass();
                try
                {
                    final Field fld = cls.getField(bonus_name);
                    try
                    {
                        fld.setDouble(this, bonus_value);
                    }
                    catch(final IllegalArgumentException e)
                    {
                        e.printStackTrace();
                    }
                    catch(final IllegalAccessException e)
                    {
                        e.printStackTrace();
                    }
                }
                catch(final SecurityException e)
                {
                    e.printStackTrace();
                }
                catch(final NoSuchFieldException e)
                {
                    e.printStackTrace();
                }
            }
        }
        catch(final SQLException e)
        {
            e.printStackTrace();
        }
        finally
        {
            DbUtils.closeQuietly(con, statement, rset);
        }
    }
}
 
Ответить с цитированием