Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Index: /trunk/DataPack/sql/character_premium.sql
- ===================================================================
- --- /trunk/DataPack/sql/character_premium.sql (revision 258)
- +++ /trunk/DataPack/sql/character_premium.sql (revision 258)
- @@ -0,0 +1,18 @@
- +-- ----------------------------
- +-- Table structure for character_premium
- +-- ----------------------------
- +CREATE TABLE IF NOT EXISTS `character_premium` (
- + `account_name` varchar(45) NOT NULL DEFAULT '',
- + `premium_service` int(1) NOT NULL DEFAULT '0',
- + `enddate` decimal(20,0) NOT NULL DEFAULT '0',
- + PRIMARY KEY (`account_name`)
- +);
- +-- ----------------------------
- +-- Table structure for character_premium
- +-- ----------------------------
- +CREATE TABLE IF NOT EXISTS `character_premium` (
- + `account_name` varchar(45) NOT NULL DEFAULT '',
- + `premium_service` int(1) NOT NULL DEFAULT '0',
- + `enddate` decimal(20,0) NOT NULL DEFAULT '0',
- + PRIMARY KEY (`account_name`)
- +);
- Index: /trunk/DataPack/tools/database_installer.bat
- ===================================================================
- --- /trunk/DataPack/tools/database_installer.bat (revision 252)
- +++ /trunk/DataPack/tools/database_installer.bat (revision 258)
- @@ -542,4 +542,5 @@
- character_quest_global_data.sql
- character_quests.sql
- +character_premium.sql
- character_raid_points.sql
- character_recipebook.s ql
- Index: /trunk/DataPack/tools/full_install.sql
- ===================================================================
- --- /trunk/DataPack/tools/full_install.sql (revision 251)
- +++ /trunk/DataPack/tools/full_install.sql (revision 258)
- @@ -67,4 +67,5 @@
- DROP TABLE IF EXISTS character_quest_global_data;
- DROP TABLE IF EXISTS character_quests;
- +DROP TABLE IF EXISTS character_premium;
- DROP TABLE IF EXISTS character_raid_points;
- DROP TABLE IF EXISTS character_recipebook;
- Index: /trunk/DataPack/tools/database_installer.sh
- ===================================================================
- --- /trunk/DataPack/tools/database_installer.sh (revision 251)
- +++ /trunk/DataPack/tools/database_installer.sh (revision 258)
- @@ -287,4 +287,5 @@
- $MYG < ../sql/character_quest_global_data.sql &> /dev/null
- $MYG < ../sql/character_quests.sql &> /dev/null
- +$MYG < ../sql/character_premium.sql &> /dev/null
- $MYG < ../sql/character_raid_points.sql &> /dev/null
- $MYG < ../sql/character_recipebook.sql &> /dev/null
- Index: /trunk/DataPack/data/html/admin/premium_menu.htm
- ===================================================================
- --- /trunk/DataPack/data/html/admin/premium_menu.htm (revision 258)
- +++ /trunk/DataPack/data/html/admin/premium_menu.htm (revision 258)
- @@ -0,0 +1,29 @@
- +<html><title>Premium Service Menu</title><body>
- +<center>
- +<table width=270 border=0 bgcolor="666666">
- +<tr>
- +<td><button value="Main" action="bypass -h admin_admin" width=50 height=15 back="L2UI_ct1.button_df_down" fore="L2UI_ct1.button_df"></td>
- +<td><button value="Game" action="bypass -h admin_admin2" width=50 height=15 back="L2UI_ct1.button_df_down" fore="L2UI_ct1.button_df"></td>
- +<td><button value="Effects" action="bypass -h admin_admin3" width=50 height=15 back="L2UI_ct1.button_df_down" fore="L2UI_ct1.button_df"></td>
- +<td><button value="Server" action="bypass -h admin_admin4" width=50 height=15 back="L2UI_ct1.button_df_down" fore="L2UI_ct1.button_df"></td>
- +<td><button value="Mods" action="bypass -h admin_admin5" width=50 height=15 back="L2UI_ct1.button_df_down" fore="L2UI_ct1.button_df"></td>
- +</tr>
- +</table>
- +<br>
- +<font color="LEVEL">Premium Service Menu</font><br>
- +<table width=250>
- +<tr>
- +<td>Enter Account Name:</td>
- +<td><edit var="acc_name" width=200></td>
- +</tr>
- +</table>
- +<br>
- +<table width=260>
- +<tr>
- +<td><button value="Add 1 month Premium Services" action="bypass -h admin_premium_add1 $acc_name" width=200 height=25 back="L2UI_ct1.button_df" fore="L2UI_ct1.button_df"></td>
- +<td><button value="Add 2 month Premium Services" action="bypass -h admin_premium_add2 $acc_name" width=200 height=25 back="L2UI_ct1.button_df" fore="L2UI_ct1.button_df"></td>
- +<td><button value="Add 3 month Premium Services" action="bypass -h admin_premium_add3 $acc_name" width=200 height=25 back="L2UI_ct1.button_df" fore="L2UI_ct1.button_df"></td>
- +</tr>
- +</table>
- +</center>
- +</body></html>
- Index: /trunk/DataPack/data/html/admin/main_menu.htm
- ===================================================================
- --- /trunk/DataPack/data/html/admin/main_menu.htm (revision 221)
- +++ /trunk/DataPack/data/html/admin/main_menu.htm (revision 258)
- @@ -54,4 +54,5 @@
- <td><button value="TradeOff" action="bypass -h admin_tradeoff" width=65 height=20 back="L2UI_ct1.button_df" fore="L2UI_ct1.button_df"></td>
- <td><button value="Invul" action="bypass -h admin_invul" width=65 height=20 back="L2UI_ct1.button_df" fore="L2UI_ct1.button_df"></td>
- +<td><button value="Pr.Service" action="bypass -h admin_premium_menu" width=65 height=20 back="L2UI_ct1.button_df" fore="L2UI_ct1.button_df"></td>
- </tr><tr>
- <td><button value="Wyvern" action="bypass -h admin_ride_wyvern" width=65 height=20 back="L2UI_ct1.button_df" fore="L2UI_ct1.button_df"></td>
- Index: /trunk/Game/config/main/rates.ini
- ===================================================================
- --- /trunk/Game/config/main/rates.ini (revision 221)
- +++ /trunk/Game/config/main/rates.ini (revision 258)
- @@ -49,4 +49,18 @@
- # Рейт на дроп квестовых предметов. Внимание: данная опция работает не во всех квестах. Многие квесты нужно редактировать в датапаке для работы этой опции.
- RateDropQuest = 1
- +
- +# ---------------------------------------------------------------------------
- +# Система Премиум-Аккаунт (ПА)
- +# ---------------------------------------------------------------------------
- +# Включить функцию Премиум-Аккаунт (ПА)?
- +# По умолчанию: False
- +UsePremiumServices = False
- +# Какие рейты будут приниматься для обладателей ПА?
- +PremiumRateXp = 2
- +PremiumRateSp = 2
- +PremiumRateDropAdena = 2
- +PremiumRateDropItems = 2
- +PremiumRateDropSpoil = 2
- +PremiumRateDropQuest = 2
- # List of RaidBoss items affected by RateDropBossJewel (separated by ",")
- Index: /trunk/Game/src/main/java/com/l2open/gameserver/model/actor/instance/L2PcInstance.java
- ===================================================================
- --- /trunk/Game/src/main/java/com/l2open/gameserver/model/actor/instance/L2PcInstance.java (revision 221)
- +++ /trunk/Game/src/main/java/com/l2open/gameserver/model/actor/instance/L2PcInstance.java (revision 258)
- @@ -299,4 +299,7 @@
- // Character Transformation SQL String Definitions:
- private static final String UPDATE_CHAR_TRANSFORM = "UPDATE characters SET transform_id=? WHERE charId=?";
- + // Character PremiumService String Definitions:
- + private static final String RESTORE_PREMIUMSERVICE = "SELECT premium_service,enddate FROM character_premium WHERE account_name=?";
- + private static final String UPDATE_PREMIUMSERVICE = "UPDATE character_premium SET premium_service=?,enddate=? WHERE account_name=?";
- public static final int REQUEST_TIMEOUT = 15;
- public static final int STORE_PRIVATE_NONE = 0;
- @@ -13752,3 +13755,119 @@
- return new PcKnownList(this);
- }
- +
- + private void createPSdb()
- + {
- + Connection con = null;
- + try
- + {
- + con = L2DatabaseFactory.getInstance().getConnection();
- + PreparedStatement statement = con.prepareStatement("INSERT INTO character_premium (account_name,premium_service,enddate) values(?,?,?)");
- + statement.setString(1, _accountName);
- + statement.setInt(2, 0);
- + statement.setLong(3, 0);
- + statement.executeUpdate();
- + statement.close();
- + }
- + catch (Exception e)
- + {
- + _log.warn("Could not insert char data: "+e);
- + e.printStackTrace();
- + return;
- + }
- + finally
- + {
- + try
- + {
- + if (con != null)
- + con.close();
- + }
- + catch (SQLException e)
- + {
- + e.printStackTrace();
- + }
- + }
- + }
- +
- + private static void PStimeOver(String account)
- + {
- + Connection con = null;
- + try
- + {
- + con = L2DatabaseFactory.getInstance().getConnection();
- + PreparedStatement statement = con.prepareStatement(UPDATE_PREMIUMSERVICE);
- + statement.setInt(1, 0);
- + statement.setLong(2, 0);
- + statement.setString(3, account);
- + statement.execute();
- + statement.close();
- + }
- + catch (SQLException e)
- + {
- + _log.warn("PremiumService: Could not increase data");
- + }
- + finally
- + {
- + try
- + {
- + if (con != null)
- + con.close();
- + }
- + catch (SQLException e)
- + {
- + e.printStackTrace();
- + }
- + }
- + }
- +
- + private static void restorePremServiceData(L2PcInstance player, String account)
- + {
- + boolean sucess=false;
- + Connection con = null;
- + try
- + {
- + con = L2DatabaseFactory.getInstance().getConnection();
- + PreparedStatement statement = con.prepareStatement(RESTORE_PREMIUMSERVICE);
- + statement.setString(1, account);
- + ResultSet rset = statement.executeQuery();
- + while (rset.next())
- + {
- + sucess=true;
- + if (Config.USE_PREMIUMSERVICE){
- + if (rset.getLong("enddate") <= System.currentTimeMillis()){
- + PStimeOver(account);
- + player.setPremiumService(0);
- + }
- + else
- + player.setPremiumService(rset.getInt("premium_service"));
- + }
- + else
- + player.setPremiumService(0);
- + }
- +
- + statement.close();
- +
- + }
- + catch (Exception e)
- + {
- + _log.warn("PremiumService: Could not restore PremiumService data for:" + account + "."+e);
- + e.printStackTrace();
- + }
- + finally
- + {
- + try
- + {
- + if (con != null)
- + con.close();
- + }
- + catch (SQLException e)
- + {
- + e.printStackTrace();
- + }
- + }
- + if (sucess==false)
- + {
- + player.createPSdb();
- + player.setPremiumService(0);
- + }
- + }
- }
- Index: /trunk/Game/src/main/java/com/l2open/gameserver/model/actor/L2Character.java
- ===================================================================
- --- /trunk/Game/src/main/java/com/l2open/gameserver/model/actor/L2Character.java (revision 249)
- +++ /trunk/Game/src/main/java/com/l2open/gameserver/model/actor/L2Character.java (revision 258)
- @@ -6886,3 +6886,15 @@
- }
- + private int _PremiumService;
- +
- + public void setPremiumService(int PS)
- + {
- + _PremiumService=PS;
- + }
- +
- + public int getPremiumService()
- + {
- + return _PremiumService;
- +
- + }
- }
- Index: /trunk/Game/src/main/java/com/l2open/gameserver/handler/AdminCommandHandler.java
- ===================================================================
- --- /trunk/Game/src/main/java/com/l2open/gameserver/handler/AdminCommandHandler.java (revision 221)
- +++ /trunk/Game/src/main/java/com/l2open/gameserver/handler/AdminCommandHandler.java (revision 258)
- @@ -67,4 +67,5 @@
- import com.l2open.gameserver.handler.admincommandhandlers.AdminPledge;
- import com.l2open.gameserver.handler.admincommandhandlers.AdminPolymorph;
- +import com.l2open.gameserver.handler.admincommandhandlers.AdminPremium;
- import com.l2open.gameserver.handler.admincommandhandlers.AdminQuest;
- import com.l2open.gameserver.handler.admincommandhandlers.AdminReload;
- Index: /trunk/Game/src/main/java/com/l2open/gameserver/handler/admincommandhandlers/AdminPremium.java
- ===================================================================
- --- /trunk/Game/src/main/java/com/l2open/gameserver/handler/admincommandhandlers/AdminPremium.java (revision 258)
- +++ /trunk/Game/src/main/java/com/l2open/gameserver/handler/admincommandhandlers/AdminPremium.java (revision 258)
- @@ -0,0 +1,108 @@
- +package com.l2open.gameserver.handler.admincommandhandlers;
- +
- +import java.sql.Connection;
- +import java.sql.SQLException;
- +import java.sql.PreparedStatement;
- +
- +import java.util.Calendar;
- +import java.util.logging.Level;
- +import java.util.logging.Logger;
- +
- +import com.l2open.L2DatabaseFactory;
- +import com.l2open.gameserver.handler.IAdminCommandHandler;
- +import com.l2open.gameserver.model.actor.instance.L2PcInstance;
- +
- +public class AdminPremium implements IAdminCommandHandler
- +{
- + private static final String[] ADMIN_COMMANDS = { "admin_premium_menu", "admin_premium_add1", "admin_premium_add2", "admin_premium_add3" };
- +
- +private static final String UPDATE_PREMIUMSERVICE = "UPDATE character_premium SET premium_service=?,enddate=? WHERE account_name=?";
- +private static final Logger _log = Logger.getLogger(AdminPremium.class.getName());
- +
- + public boolean useAdminCommand(String command, L2PcInstance activeChar)
- + {
- + if (command.equals("admin_premium_menu"))
- + {
- + AdminHelpPage.showHelpPage(activeChar, "premium_menu.htm");
- + }
- + else if (command.startsWith("admin_premium_add1"))
- + {
- + try
- + {
- + String val = command.substring(19);
- + addPremiumServices(1, val);
- + }
- + catch(StringIndexOutOfBoundsException e)
- + {
- + activeChar.sendMessage("Err");
- + }
- + }
- + else if(command.startsWith("admin_premium_add2"))
- + {
- + try
- + {
- + String val = command.substring(19);
- + addPremiumServices(2, val);
- + }
- + catch(StringIndexOutOfBoundsException e)
- + {
- + activeChar.sendMessage("Err");
- + }
- + }
- + else if(command.startsWith("admin_premium_add3"))
- + {
- + try
- + {
- + String val = command.substring(19);
- + addPremiumServices(3, val);
- + }
- + catch(StringIndexOutOfBoundsException e)
- + {
- + activeChar.sendMessage("Err");
- + }
- + }
- + return true;
- + }
- +
- + public String[] getAdminCommandList()
- + {
- + return ADMIN_COMMANDS;
- + }
- +
- + private void addPremiumServices(int Months,String AccName)
- + {
- + Connection con = null;
- + try
- + {
- + Calendar finishtime = Calendar.getInstance();
- + finishtime.setTimeInMillis(System.currentTimeMillis());
- + finishtime.set(Calendar.SECOND, 0);
- + finishtime.add(Calendar.MONTH, Months);
- +
- + con = L2DatabaseFactory.getInstance().getConnection();
- + PreparedStatement statement = con.prepareStatement(UPDATE_PREMIUMSERVICE);
- + statement.setInt(1, 1);
- + statement.setLong(2, finishtime.getTimeInMillis());
- + statement.setString(3, AccName);
- + statement.execute();
- + statement.close();
- + }
- + catch (SQLException e)
- + {
- + _log.info("PremiumService: Could not increase data");
- + }
- + finally
- + {
- + try
- + {
- + if (con != null)
- + con.close();
- + }
- + catch (SQLException e)
- + {
- + e.printStackTrace();
- + }
- + }
- +
- + }
- +}
- Index: /trunk/Game/src/main/java/com/l2open/Config.java
- ===================================================================
- --- /trunk/Game/src/main/java/com/l2open/Config.java (revision 233)
- +++ /trunk/Game/src/main/java/com/l2open/Config.java (revision 258)
- @@ -298,4 +298,11 @@
- public static int RATE_DROP_MANOR;
- public static float RATE_DROP_QUEST;
- + public static boolean USE_PREMIUMSERVICE;
- + public static float PREMIUM_RATE_XP;
- + public static float PREMIUM_RATE_SP;
- + public static float PREMIUM_RATE_DROP_ADENA;
- + public static float PREMIUM_RATE_DROP_SPOIL;
- + public static float PREMIUM_RATE_DROP_ITEMS;
- + public static float PREMIUM_RATE_DROP_QUEST;
- public static float RATE_KARMA_EXP_LOST;
- public static float RATE_SIEGE_GUARDS_PRICE;
- @@ -350,4 +357,11 @@
- RATE_DROP_MANOR = Integer.parseInt(ratesSettings.getProperty("RateDropManor", "1"));
- RATE_DROP_QUEST = Float.parseFloat(ratesSettings.getProperty("RateDropQuest", "1."));
- + USE_PREMIUMSERVICE = Boolean.parseBoolean(ratesSettings.getProperty("UsePremiumServices", "False"));
- + PREMIUM_RATE_XP = Float.parseFloat(ratesSettings.getProperty("PremiumRateXp", "2"));
- + PREMIUM_RATE_SP = Float.parseFloat(ratesSettings.getProperty("PremiumRateSp", "2"));
- + PREMIUM_RATE_DROP_ADENA = Float.parseFloat(ratesSettings.getProperty("PremiumRateDropAdena", "2"));
- + PREMIUM_RATE_DROP_SPOIL = Float.parseFloat(ratesSettings.getProperty("PremiumRateDropSpoil", "2"));
- + PREMIUM_RATE_DROP_ITEMS = Float.parseFloat(ratesSettings.getProperty("PremiumRateDropItems", "2"));
- + PREMIUM_RATE_DROP_QUEST = Float.parseFloat(ratesSettings.getProperty("PremiumRateDropQuest", "2"));
- RATE_KARMA_EXP_LOST = Float.parseFloat(ratesSettings.getProperty("RateKarmaExpLost", "1."));
- RATE_SIEGE_GUARDS_PRICE = Float.parseFloat(ratesSettings.getProperty("RateSiegeGuardsPrice", "1."));
- @@ -2931,4 +2945,16 @@
- else if (pName.equalsIgnoreCase("RateDropQuest"))
- RATE_DROP_QUEST = Float.parseFloat(pValue);
- + else if (pName.equalsIgnoreCase("PremiumRateXp"))
- + PREMIUM_RATE_XP = Float.parseFloat(pValue);
- + else if (pName.equalsIgnoreCase("PremiumRateSp"))
- + PREMIUM_RATE_SP = Float.parseFloat(pValue);
- + else if (pName.equalsIgnoreCase("PremiumRateDropAdena"))
- + PREMIUM_RATE_DROP_ADENA = Float.parseFloat(pValue);
- + else if (pName.equalsIgnoreCase("PremiumRateDropSpoil"))
- + PREMIUM_RATE_DROP_SPOIL = Float.parseFloat(pValue);
- + else if (pName.equalsIgnoreCase("PremiumRateDropItems"))
- + PREMIUM_RATE_DROP_ITEMS = Float.parseFloat(pValue);
- + else if (pName.equalsIgnoreCase("PremiumRateDropQuest"))
- + PREMIUM_RATE_DROP_QUEST = Float.parseFloat(pValue);
- else if (pName.equalsIgnoreCase("RateKarmaExpLost"))
- RATE_KARMA_EXP_LOST = Float.parseFloat(pValue);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement