Jump to content
  • 0

Question

Posted

hi MaxCheaters.com!

 

server:interlude.l2jteon rev.566

 

i want to create Premium Accounts on My Server.

example: who have premium account for him rates will be x100x100x100

 

Recommended Posts

  • 0
Posted

if you have made this mod please write little mod how to do this

i think its best if you start learning a bit more java.. before thinking of moding your server more than what config files allow..

 

great.. and now that youre so good.. you can keep answering the next 10posts of how do i add that to my server?

 

 

//off topic

 

ohhh cmon the modern worlds post hunting leave it as it is

 

if someone dont get it he talk about a diff file

 

obviously my post wasnt spam, however yourse is..

 

ofc but this is a simple way :)

L2NpcInstance

   public int getExpReward()

   {

      double rateXp = getStat().calcStat(Stats.MAX_HP , 1, this, null);

+      if (player.isDonator())

+         return (int)(getTemplate().rewardExp * rateXp * Config.RATE_XP * Config.DONATOR_XP);

+      else

        return (int)(getTemplate().rewardExp * rateXp * Config.RATE_XP);

   }

 

im not sure why you quoted me.. however now you can start explaining it to lekino.. gl.

 

  • 0
Posted

i have found this patch for premium accounts

 

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.sql
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);

 

can someone make it for l2jteon?

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now



×
×
  • Create New...

AdBlock Extension Detected!

Our website is made possible by displaying online advertisements to our members.

Please disable AdBlock browser extension first, to be able to use our community.

I've Disabled AdBlock