Jump to content

Recommended Posts

Posted

Hi all members of MaxCheaters today i will pressent you one java code. VIP System

 

AdminVip.java
/*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2, or (at your option)
* any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
* 02111-1307, USA.
*
* http://www.gnu.org/copyleft/gpl.html
*/
package net.sf.l2j.gameserver.handler.admincommandhandlers;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;

import net.sf.l2j.Config;
import net.sf.l2j.L2DatabaseFactory;
import net.sf.l2j.gameserver.Announcements;
import net.sf.l2j.gameserver.GmListTable;
import net.sf.l2j.gameserver.handler.IAdminCommandHandler;
import net.sf.l2j.gameserver.model.L2Object;
import net.sf.l2j.gameserver.model.actor.instance.L2PcInstance;
import net.sf.l2j.gameserver.network.SystemMessageId;
import net.sf.l2j.gameserver.network.serverpackets.SystemMessage;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
/**
*
* Author Rayan
*
*/
public class AdminVip implements IAdminCommandHandler
{
private static String[] _adminCommands =
{
	"admin_setvip",};
private final static Log _log = LogFactory.getLog(AdminVip.class.getName());
private static final int REQUIRED_LEVEL = Config.GM_MENU;

public boolean useAdminCommand(String command, L2PcInstance activeChar)
{
	if (!Config.ALT_PRIVILEGES_ADMIN)
	{
		if (!(checkLevel(activeChar.getAccessLevel()) && activeChar.isGM()))
		{
			return false;
		}
	}
	if (command.startsWith("admin_setvip"))
	{
		L2Object target = activeChar.getTarget();
		L2PcInstance player = null;
		SystemMessage sm = new SystemMessage(SystemMessageId.S1_S2);
		if (target instanceof L2PcInstance)
		{
			player = (L2PcInstance)target;
		} else
		{
			player = activeChar;
		}

		if (player.isvip())
		{
			player.setvip(false);
			sm.addString("You are no longer a server vip.");
			GmListTable.broadcastMessageToGMs("GM "+activeChar.getName()+" removed vip stat of player"+ target.getName());
			Connection connection = null;
			try
			{
				connection = L2DatabaseFactory.getInstance().getConnection();

				PreparedStatement statement = connection.prepareStatement("SELECT obj_id FROM characters where char_name=?");
				statement.setString(1,target.getName());
				ResultSet rset = statement.executeQuery();
				int objId = 0;
				if (rset.next())
				{
					objId = rset.getInt(1);
				}
				rset.close();
				statement.close();

				if (objId == 0) {connection.close(); return false;}

				statement = connection.prepareStatement("UPDATE characters SET vip=0 WHERE obj_id=?");
				statement.setInt(1, objId);
				statement.execute();
				statement.close();
				connection.close();
			}
			catch (Exception e)
			{
				_log.warn("could not set vip stats of char:", e);
			}
			finally
			{
				try { connection.close(); } catch (Exception e) {}
			}
		}
		else
		{
			player.setvip(true);
			sm.addString("You are now a server vip, congratulations!");
			GmListTable.broadcastMessageToGMs("GM "+activeChar.getName()+" has given vip stat for player "+target.getName()+".");
			Connection connection = null;
			try
			{
				connection = L2DatabaseFactory.getInstance().getConnection();

				PreparedStatement statement = connection.prepareStatement("SELECT obj_id FROM characters where char_name=?");
				statement.setString(1,target.getName());
				ResultSet rset = statement.executeQuery();
				int objId = 0;
				if (rset.next())
				{
					objId = rset.getInt(1);
				}
				rset.close();
				statement.close();

				if (objId == 0) {connection.close(); return false;}

				statement = connection.prepareStatement("UPDATE characters SET vip=1 WHERE obj_id=?");
				statement.setInt(1, objId);
				statement.execute();
				statement.close();
				connection.close();
			}
			catch (Exception e)
			{
				_log.warn("could not set vip stats of char:", e);
			}
			finally
			{
				try { connection.close(); } catch (Exception e) {}
			}

		}
		player.sendPacket(sm);
		player.broadcastUserInfo();
		if(player.isvip() == true)
		{
			Announcements.getInstance().announceToAll(player.getName() + " Has Become a Server Vip!");
		}
	}
	return false;
}
  public String[] getAdminCommandList() {
	return _adminCommands;
}
private boolean checkLevel(int level)
{
	return (level >= REQUIRED_LEVEL);
}
}

 

Net/sf/l2j/config.java
@@ 1143 @@
-	public static int       MAX_MATK_SPEED;
+	public static boolean   VIP_NAME_COLOR_ENABLED;
+	public static int       VIP_NAME_COLOR;

@@ 2640 @@

-            	MAX_MATK_SPEED = Integer.parseInt(customSettings.getProperty("MaxMAtkSpeed", "1999"));
+            	VIP_NAME_COLOR_ENABLED  = Boolean.parseBoolean(customSettings.getProperty("VIPNameColorEnabled", "False")); 
+            	VIP_NAME_COLOR          = Integer.decode("0x" + customSettings.getProperty("VIPColorName", "0099ff"));

 

net/sf/gameserver/network/clientpackets/EnterWorld

@@ 179 @@

-                 if (activeChar.isdonator())
-               	 	{
-              	 	activeChar.getAppearance().setNameColor(L2Config.DONATOR_NAME_COLOR);
-             	 	activeChar.sendMessage("Welcome Donator "+activeChar.getName()+" !");
-            	 	activeChar.sendMessage("Enjoy your Stay Mate!");
-           	 	}
+                                  
+                 if (activeChar.isvip())
+          	 	{
+          	 	activeChar.getAppearance().setNameColor(L2Config.VIP_NAME_COLOR);
+          	 	activeChar.sendMessage("Welcome V.I.P "+activeChar.getName()+" !");
+          	 	activeChar.sendMessage("Enjoy your Stay Mate!");
+         	 	Announcements.getInstance().announceToAll("VIP Character " +activeChar.getName()+ " is Now Online!"); 
+          	 	}

 

net.sf.l2j.gameserver

@@ 130 @@

-import net.sf.l2j.gameserver.handler.admincommandhandlers.AdminUnblockIp;
+import net.sf.l2j.gameserver.handler.admincommandhandlers.AdminVip;






@@ 647 @@

-        _adminCommandHandler.registerAdminCommandHandler(new AdminDonator());
+        _adminCommandHandler.registerAdminCommandHandler(new AdminVip());

 

@@221 : 744 @@
L2PcInstance.java

@@222 : 831 @@
vip

@@500@@
-	private boolean _donator = false;
+	private boolean _vip = false;
+

@@5828@@

-				player.setdonator(rset.getInt("donator")==1);
+				player.setvip(rset.getInt("vip")==1);
+

@@6303@@

-			statement.setInt(58, isdonator() ? 1 : 0);
+			statement.setInt(59, isvip() ? 1 : 0);

@@6440@@

+ 	public boolean isvip()
+ 	{
+ 	return _vip;
+ 	}
+
+ 	public void setvip(boolean vip)
+ 	{
+ 	_vip = vip;
+    }
+

 

net.sf.gameserver.model.L2World.java

@@ 75 @@
-    private Map<String, L2PcInstance> _alldonatorPlayers;
+    private Map<String, L2PcInstance> _allvipPlayers;


@@ 99 @@
-        _alldonatorPlayers   = new FastMap<String, L2PcInstance>().setShared(true);
+        _allvipPlayers   = new FastMap<String, L2PcInstance>().setShared(true);

@@ 273 @@

-    public Collection<L2PcInstance> getAlldonatorPlayers()
-    {
-    	return _alldonatorPlayers.values();
-    }
+    
+    public Collection<L2PcInstance> getAllvipPlayers()
+    {
+    	return _allvipPlayers.values();
+    }

@@ 402 @@
-
-           	if (((L2PcInstance) object).isdonator())
-          		_alldonatorPlayers.put(player.getName().toLowerCase(), player);
+          	
+          	if (((L2PcInstance) object).isvip())
+          		_allvipPlayers.put(player.getName().toLowerCase(), player);
+           	

 

net.fiero.l2j.gameserver.network.clientpackets.say2.java

@ 181,1 @

-		if (_text.length() > 99)
-		{
-			_log.info("Say2: Msg Type = '" + _type + "' Text length more than 99 truncate them.");
-			_text = _text.substring(0, 99);
-		} 		                 
+        
+		 if (_text.startsWith("~") && activeChar.isvip())
+		 {
+			 for (L2PcInstance player : L2World.getInstance().getAllPlayers())
+			 player.sendPacket(new CreatureSay(0, 15, activeChar.getName(), _text));
+			 return;
+		 }
+		 

 

Credits : Kяaσh from L2JV-i-t-a-l-i-t-y Team. the real dev there

Posted

Sorry, but failed code. It's so crappy coded. Unneeded connections to the database... Even more.

 

Anyway, what's the difference from the original?

Posted

Why to make useless connections* to the database, since you add these lines:

+				player.setvip(rset.getInt("vip")==1);

+			statement.setInt(59, isvip() ? 1 : 0);

 

Also the 'diff'(let god decide if it's a diff), deletes donator system lines. If a newbie tries to apply the patch, he will go mad.

 

 

connections:

			Connection connection = null;
			try
			{
				connection = L2DatabaseFactory.getInstance().getConnection();

				PreparedStatement statement = connection.prepareStatement("SELECT obj_id FROM characters where char_name=?");
				statement.setString(1,target.getName());
				ResultSet rset = statement.executeQuery();
				int objId = 0;
				if (rset.next())
				{
					objId = rset.getInt(1);
				}
				rset.close();
				statement.close();

				if (objId == 0) {connection.close(); return false;}

				statement = connection.prepareStatement("UPDATE characters SET vip=0 WHERE obj_id=?");
				statement.setInt(1, objId);
				statement.execute();
				statement.close();
				connection.close();
			}
			catch (Exception e)
			{
				_log.warn("could not set vip stats of char:", e);
			}
			finally
			{
				try { connection.close(); } catch (Exception e) {}
			}

  • 2 weeks later...

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



  • Posts

    • That domainn tho :_D
    • Perfect way to experience L2 without the brutal official grind. The progression here is so much smoother and faster, you get to the fun PvP and epic raids way quicker. The custom stuff keeps it fresh too. Definitely worth diving into!
    • L2-Getwork server highly customized with high-stats https://l2server.eu/ https://discord.gg/SsVhm7R Rates: L2 High Five fully customized Getwork Style with High Stats and Enchant ExP/Sp: 75x (custom) Drop/Spoil: 1x (custom) Safe: 500 Max: 50 000   Enchant System: Normal Scrolls: 93% - fail - decrease enchant by 20 Blessed Scrolls: 96% - fail - decrease enchant by 10   Armor Max Enchant D-Grade: +1000 Max Enchant C-Grade: +2000 Max Enchant B-Grade: +3000 Max Enchant A-Grade: +4000 Max Enchant S-Grade: +5000   Weapons Max Enchant D-Grade: +5000 Max Enchant C-Grade: +10000 Max Enchant B-Grade: +15000 Max Enchant A-Grade: +20000 Max Enchant S-Grade: +25000 - 50000   Fir Tree Branch (Weapon): +100 into Weapons (max 50 000) Fir Tree Branch (Armor): +15 into Armor (max 5000) Road to Dvc Cloak Enchant: +1 into cloak (max +1000) Masks of Spirit/Demon Horns Enchants: +1 into Masks (max +10) Each accessories has different max enchant and chances Daily Missions (.missions) Collections (ALT + B) Gambling System(.gamble) - each pack cost different amount Gamble Points, different items How to get gambling points? - by killing Raid Bosses/Events or Completing Daily Missions. Clan Bonus VIP Bonuses (maximum level 10) Battlepass (maximum level 100) - by killing monsters Rebirth (starting in Parnassus) Everything in ALT+B Master's Buffs - 100 Small Glass Box (1 buff) Farm Zones: Custom Farm Zones: Ruin of Agony (Exp Zone) Underground Coliseum (Safe Exp Zone) DVC,Brigand,Frost are similiar farm zones with same monsters Dvc Brigand Stronghold Frost Lake Parnassus - TOP ZONE some of our features: .gamble,collections,battlepass,talent tree, rebirth        
    • https://www.mediafire.com/file/l905r1sd84hnovf/FileEdit.rar/file
  • Topics

×
×
  • 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