
17.08.2015, 13:02
|
|
Флудер
Регистрация: 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);
}
}
}
|
|
|