Jump to content
  • 0

PC Bang point (dont work script)


Question

Posted

im try setups this patch (by this manual http://www.maxcheaters.com/forum/index.php?topic=155067.0), and i have a many problems = > Eclipse give me some errors:

 

19307615858f.png

 

please help me.

 

I do not understand that the mistakes I made.

 

i use L2jbrasil-1485, Interlude.

 

im check all files, all files is exists!

 

here in expanded form:

 

e8af3cbe728b.png

 

and my code:

 

Index: /L2JBrasil_CORE/java/com/it/br/gameserver/services/FService.java
===================================================================
--- /L2JBrasil_CORE/java/com/it/br/gameserver/services/FService.java (revision 2928)
+++ /L2JBrasil_CORE/java/com/it/br/gameserver/services/FService.java (revision 2031)
@@ -72,5 +72,5 @@

+	public static final String EVENT_PC_BANG_POINT_FILE = "./config/custom/pcBang.properties";


Index: /L2JBrasil_CORE/java/com/it/br/gameserver/PcPoint.java
===================================================================
--- /L2JBrasil_CORE/java/com/it/br/gameserver/PcPoint.java (revision 2031)
+++ /L2JBrasil_CORE/java/com/it/br/gameserver/PcPoint.java (revision `2031)
@@ -0,0 +1,78 @@
+package com.it.br.gameserver;
+
+import java.util.logging.Logger;
+
+import com.it.br.Config;
+import com.it.br.gameserver.model.L2World;
+import com.it.br.gameserver.model.actor.instance.L2PcInstance;
+import com.it.br.gameserver.network.SystemMessageId;
+import com.it.br.gameserver.network.serverpackets.SystemMessage;
+import com.it.br.util.Rnd;
+
+
+/**
+ * @author Anumis
+ */
+
+public class PcPoint implements Runnable
+{
+	Logger _log = Logger.getLogger(PcPoint.class.getName());
+	private static PcPoint _instance;
+
+	public static PcPoint getInstance()
+	{
+		if(_instance == null)
+		{
+			_instance = new PcPoint();
+		}
+
+		return _instance;
+	}
+
+	private PcPoint()
+	{
+		_log.info("PcBang point event started.");
+	}
+
+	@Override
+	public void run()
+	{
+
+		int score = 0;
+		for(L2PcInstance activeChar: L2World.getInstance().getAllPlayers().values())
+		{
+
+			if(activeChar.getLevel() > Config.PCB_MIN_LEVEL )
+			{
+				score = Rnd.get(Config.PCB_POINT_MIN, Config.PCB_POINT_MAX);
+
+				if(Rnd.get(100) <= Config.PCB_CHANCE_DUAL_POINT)
+				{
+					score *= 2;
+
+					activeChar.addPcBangScore(score);
+
+					SystemMessage sm = new SystemMessage(SystemMessageId.DOUBLE_POINTS_YOU_GOT_$51_GLASSES_PC);
+					sm.addNumber(score);
+					activeChar.sendPacket(sm);
+					sm = null;
+
+					activeChar.updatePcBangWnd(score, true, true);
+				}
+				else
+				{
+					activeChar.addPcBangScore(score);
+
+					SystemMessage sm = new SystemMessage(SystemMessageId.YOU_RECEVIED_$51_GLASSES_PC);
+					sm.addNumber(score);
+					activeChar.sendPacket(sm);
+					sm = null;
+
+					activeChar.updatePcBangWnd(score, true, false);
+				}
+			}
+
+			activeChar = null;
+		} 
+	}
+}
Index: /L2JBrasil_CORE/java/com/it/br/Config.java
===================================================================
--- /L2JBrasil_CORE/java/com/it/br/Config.java (revision 2028)
+++ /L2JBrasil_CORE/java/com/it/br/Config.java (revision 2031)
@@ -1687,55 +1687,48 @@
	public static int HPH_INTERVALOFDOOROFALTER;
	public static int HPH_TIMEOFLOCKUPDOOROFALTAR;
+		//============================================================
+	public static boolean PCB_ENABLE;
+	public static int PCB_MIN_LEVEL;
+	public static int PCB_POINT_MIN;
+	public static int PCB_POINT_MAX;
+	public static int PCB_CHANCE_DUAL_POINT;
+	public static int PCB_INTERVAL;

	//============================================================
+	public static void loadPCBPointConfig()
	{

+		final String PCB_POINT = FService.EVENT_PC_BANG_POINT_FILE;

+		_log.info("Loading: " + PCB_POINT + ".");
+		try
+		{
+			Properties pcbpSettings = new Properties();
+			InputStream is = new FileInputStream(new File(PCB_POINT));
+			pcbpSettings.load(is);
+			is.close();

+			PCB_ENABLE = Boolean.parseBoolean(pcbpSettings.getProperty("PcBangPointEnable", "true"));
+			PCB_MIN_LEVEL = Integer.parseInt(pcbpSettings.getProperty("PcBangPointMinLevel", "20"));
+			PCB_POINT_MIN = Integer.parseInt(pcbpSettings.getProperty("PcBangPointMinCount", "20"));
+			PCB_POINT_MAX = Integer.parseInt(pcbpSettings.getProperty("PcBangPointMaxCount", "1000000"));

+			if(PCB_POINT_MAX < 1)
+			{
+				PCB_POINT_MAX = Integer.MAX_VALUE;
+			}

+			PCB_CHANCE_DUAL_POINT = Integer.parseInt(pcbpSettings.getProperty("PcBangPointDualChance", "20"));
+			PCB_INTERVAL = Integer.parseInt(pcbpSettings.getProperty("PcBangPointTimeStamp", "900"));
+		}
+		catch(Exception e)
+		{
+			e.printStackTrace();
+			throw new Error("Failed to Load " + PCB_POINT + " File.");
+		}

+	}
+	//============================================================
+	


Index: /L2JBrasil_CORE/java/com/it/br/gameserver/network/clientpackets/MultiSellChoose.java
===================================================================
--- /L2JBrasil_CORE/java/com/it/br/gameserver/network/clientpackets/MultiSellChoose.java (revision 107)
+++ /L2JBrasil_CORE/java/com/it/br/gameserver/network/clientpackets/MultiSellChoose.java (revision 2031)
@@ -200,4 +200,9 @@
				{
					player.sendPacket(new SystemMessage(SystemMessageId.THE_CLAN_REPUTATION_SCORE_IS_TOO_LOW));
+					return;
+				}
+				if(e.getItemId() == 65436 && e.getItemCount() * _amount > player.getPcBangScore())
+				{
+					player.sendPacket(new SystemMessage(SystemMessageId.NOT_ENOUGH_ITEMS));
					return;
				}
Index: /L2JBrasil_CORE/java/com/it/br/gameserver/network/clientpackets/EnterWorld.java
===================================================================
--- /L2JBrasil_CORE/java/com/it/br/gameserver/network/clientpackets/EnterWorld.java (revision 1726)
+++ /L2JBrasil_CORE/java/com/it/br/gameserver/network/clientpackets/EnterWorld.java (revision 2031)
@@ -144,4 +144,5 @@
			// activeChar.closeNetConnection();
		}
+	
		if (activeChar.isGM())
		{
@@ -373,4 +374,5 @@
			activeChar.checkAllowedSkills();
		}
+		
		// send user info again .. just like the real client sendPacket(ui);
		if ((activeChar.getClanId() != 0) && (activeChar.getClan() != null))
@@ -396,4 +398,8 @@
		notifyCastleOwner(activeChar);
		activeChar.onPlayerEnter();
+		if(Config.PCB_ENABLE)
+		{
+			activeChar.showPcBangWindow();
+		}
		TvTEvent.onLogin(activeChar);
		PcColorTable.getInstance().process(activeChar);
Index: /L2JBrasil_CORE/java/com/it/br/gameserver/network/serverpackets/ExPCCafePointInfo.java
===================================================================
--- /L2JBrasil_CORE/java/com/it/br/gameserver/network/serverpackets/ExPCCafePointInfo.java (revision 7)
+++ /L2JBrasil_CORE/java/com/it/br/gameserver/network/serverpackets/ExPCCafePointInfo.java (revision 2031)
@@ -15,4 +15,6 @@
package com.it.br.gameserver.network.serverpackets;

+import com.it.br.gameserver.model.actor.instance.L2PcInstance;
+


@@ -25,13 +27,36 @@
{
	private static final String _S__FE_31_EXPCCAFEPOINTINFO = "[s] FE:31 ExPCCafePointInfo";
-	private int _unk1, _unk2, _unk3, _unk4, _unk5 = 0;

-	public ExPCCafePointInfo(int val1, int val2, int val3, int val4, int val5)
+	private L2PcInstance _character;
+	private int m_AddPoint;
+	private int m_PeriodType;
+	private int RemainTime;
+	private int PointType;
+
+	public ExPCCafePointInfo(L2PcInstance user, int modify, boolean add, int hour, boolean _double)
	{
-		_unk1 = val1;
-		_unk2 = val2;
-		_unk3 = val3;
-		_unk4 = val4;
-		_unk5 = val5;
+		_character = user;
+		m_AddPoint = modify;
+
+		if(add)
+		{
+			m_PeriodType = 1;
+			PointType = 1;
+		}
+		else
+		{
+			if(add && _double)
+			{
+				m_PeriodType = 1;
+				PointType = 0;
+			}
+			else
+			{
+				m_PeriodType = 2;
+				PointType = 2;
+			}
+		}
+
+		RemainTime = hour;
	}

@@ -41,9 +66,9 @@
		writeC(0xFE);
		writeH(0x31);
-		writeD(_unk1);
-		writeD(_unk2);
-		writeC(_unk3);
-		writeD(_unk4);
-		writeC(_unk5);
+		writeD(_character.getPcBangScore());
+		writeD(m_AddPoint);
+		writeC(m_PeriodType);
+		writeD(RemainTime);
+		writeC(PointType);
	}

@@ -56,3 +81,4 @@
		return _S__FE_31_EXPCCAFEPOINTINFO;
	}
+
}
Index: /L2JBrasil_CORE/java/com/it/br/gameserver/network/SystemMessageId.java
===================================================================
--- /L2JBrasil_CORE/java/com/it/br/gameserver/network/SystemMessageId.java (revision 1926)
+++ /L2JBrasil_CORE/java/com/it/br/gameserver/network/SystemMessageId.java (revision 2031)
@@ -3873,5 +3873,7 @@
	DEATH_PENALTY_LIFTED(1917),
	DUNGEON_EXPIRES_IN_S1_MINUTES(1918), 
-	S1(3000);
+	S1(3000), 
+	DOUBLE_POINTS_YOU_GOT_$51_GLASSES_PC(3001), 
+	YOU_RECEVIED_$51_GLASSES_PC(3002);

	private int _id;
Index: /L2JBrasil_CORE/java/com/it/br/gameserver/model/actor/instance/L2PcInstance.java
===================================================================
--- /L2JBrasil_CORE/java/com/it/br/gameserver/model/actor/instance/L2PcInstance.java (revision 2029)
+++ /L2JBrasil_CORE/java/com/it/br/gameserver/model/actor/instance/L2PcInstance.java (revision 2031)
@@ -93,5 +93,4 @@
import com.it.br.gameserver.model.L2Clan;
import com.it.br.gameserver.model.L2ClanMember;
import com.it.br.gameserver.model.L2Effect;
import com.it.br.gameserver.model.L2Fishing;
@@ -152,4 +151,5 @@
import com.it.br.gameserver.network.L2GameClient;
import com.it.br.gameserver.network.SystemMessageId;
+import com.it.br.gameserver.network.serverpackets.ExPCCafePointInfo;
import com.it.br.gameserver.network.serverpackets.L2GameServerPacket;
import com.it.br.gameserver.network.serverpackets.ActionFailed;
@@ -234,6 +234,6 @@
	private static final String RESTORE_SKILL_SAVE = "SELECT skill_id,skill_level,effect_count,effect_cur_time, reuse_delay FROM character_skills_save WHERE char_obj_id=? AND class_index=? AND restore_type=? ORDER BY buff_index ASC";
	private static final String DELETE_SKILL_SAVE = "DELETE FROM character_skills_save WHERE char_obj_id=? AND class_index=?";
-	private static final String UPDATE_CHARACTER = "UPDATE characters SET level=?,maxHp=?,curHp=?,maxCp=?,curCp=?,maxMp=?,curMp=?,str=?,con=?,dex=?,_int=?,men=?,wit=?,face=?,hairStyle=?,hairColor=?,heading=?,x=?,y=?,z=?,exp=?,expBeforeDeath=?,sp=?,karma=?,pvpkills=?,pkkills=?,rec_have=?,rec_left=?,clanid=?,maxload=?,race=?,classid=?,deletetime=?,title=?,accesslevel=?,online=?,isin7sdungeon=?,clan_privs=?,wantspeace=?,base_class=?,onlinetime=?,in_jail=?,jail_timer=?,newbie=?,nobless=?,power_grade=?,subpledge=?,last_recom_date=?,lvl_joined_academy=?,apprentice=?,sponsor=?,varka_ketra_ally=?,clan_join_expiry_time=?,clan_create_expiry_time=?,char_name=?,event_points=?,coupon=?,donator=?,death_penalty_level=?,koof=?,noob=?,idiot=? WHERE obj_id=?";
-	private static final String RESTORE_CHARACTER = "SELECT account_name, obj_Id, char_name, level, maxHp, curHp, maxCp, curCp, maxMp, curMp, acc, crit, evasion, mAtk, mDef, mSpd, pAtk, pDef, pSpd, runSpd, walkSpd, str, con, dex, _int, men, wit, face, hairStyle, hairColor, sex, heading, x, y, z, movement_multiplier, attack_speed_multiplier, colRad, colHeight, exp, expBeforeDeath, sp, karma, pvpkills, pkkills, clanid, maxload, race, classid, deletetime, cancraft, title, rec_have, rec_left, accesslevel, online, char_slot, lastAccess, clan_privs, wantspeace, base_class, onlinetime, isin7sdungeon, in_jail, jail_timer, newbie, nobless, power_grade, subpledge, last_recom_date, lvl_joined_academy, apprentice, sponsor, varka_ketra_ally,clan_join_expiry_time,clan_create_expiry_time,event_points,coupon,donator,death_penalty_level,koof,noob,idiot FROM characters WHERE obj_id=?";
+	private static final String UPDATE_CHARACTER = "UPDATE characters SET level=?,maxHp=?,curHp=?,maxCp=?,curCp=?,maxMp=?,curMp=?,str=?,con=?,dex=?,_int=?,men=?,wit=?,face=?,hairStyle=?,hairColor=?,heading=?,x=?,y=?,z=?,exp=?,expBeforeDeath=?,sp=?,karma=?,pvpkills=?,pkkills=?,rec_have=?,rec_left=?,clanid=?,maxload=?,race=?,classid=?,deletetime=?,title=?,accesslevel=?,online=?,isin7sdungeon=?,clan_privs=?,wantspeace=?,base_class=?,onlinetime=?,in_jail=?,jail_timer=?,newbie=?,nobless=?,power_grade=?,subpledge=?,last_recom_date=?,lvl_joined_academy=?,apprentice=?,sponsor=?,varka_ketra_ally=?,clan_join_expiry_time=?,clan_create_expiry_time=?,char_name=?,event_points=?,coupon=?,donator=?,death_penalty_level=?,koof=?,noob=?,idiot=?,pc_point=? WHERE obj_id=?";
+	private static final String RESTORE_CHARACTER = "SELECT account_name, obj_Id, char_name, level, maxHp, curHp, maxCp, curCp, maxMp, curMp, acc, crit, evasion, mAtk, mDef, mSpd, pAtk, pDef, pSpd, runSpd, walkSpd, str, con, dex, _int, men, wit, face, hairStyle, hairColor, sex, heading, x, y, z, movement_multiplier, attack_speed_multiplier, colRad, colHeight, exp, expBeforeDeath, sp, karma, pvpkills, pkkills, clanid, maxload, race, classid, deletetime, cancraft, title, rec_have, rec_left, accesslevel, online, char_slot, lastAccess, clan_privs, wantspeace, base_class, onlinetime, isin7sdungeon, in_jail, jail_timer, newbie, nobless, power_grade, subpledge, last_recom_date, lvl_joined_academy, apprentice, sponsor, varka_ketra_ally,clan_join_expiry_time,clan_create_expiry_time,event_points,coupon,donator,death_penalty_level,koof,noob,idiot,pc_point FROM characters WHERE obj_id=?";
	private static final String RESTORE_CHAR_SUBCLASSES = "SELECT class_id,exp,sp,level,class_index FROM character_subclasses WHERE char_obj_id=? ORDER BY class_index ASC";
	private static final String ADD_CHAR_SUBCLASS = "INSERT INTO character_subclasses (char_obj_id,class_id,exp,sp,level,class_index) VALUES (?,?,?,?,?,?)";
@@ -382,4 +382,6 @@
	/** The Experience of the L2PcInstance before the last Death Penalty */
	private long _expBeforeDeath;
+	/** PC BANG POINT */
+	private int pcBangPoint = 0;
	/**
	 * The Karma of the L2PcInstance (if higher than 0, the name of the L2PcInstance appears in red)
@@ -6722,4 +6724,5 @@
				player.setCoupon(rset.getInt("coupon"));
				player.setDeathPenaltyBuffLevel(rset.getInt("death_penalty_level"));
+				player.pcBangPoint = rset.getInt("pc_point");
				// Add the L2PcInstance object in _allObjects
				// L2World.getInstance().storeObject(player);
@@ -7105,5 +7108,6 @@
			statement.setInt(61, isNoob() ? 1 : 0);
			statement.setInt(62, isIdiot() ? 1 : 0);
-			statement.setInt(63, getObjectId());
+			statement.setInt(63, getPcBangScore());
+			statement.setInt(64, getObjectId());


@@ -13002,9 +13006,32 @@
		return (DM._started && _inEventDM) || (CTF._started && _inEventCTF) || (VIP._started && _inEventVIP) (Zombie._started && _ZombieZ) || && !isGM();
	}*/

+		public int getPcBangScore()
+		{
+			return pcBangPoint;
+		}
+
+		public void reducePcBangScore(int to)
+		{
+			pcBangPoint -= to;
+			updatePcBangWnd(to, false, false);
+		}
+
+		public void addPcBangScore(int to)
+		{
+			pcBangPoint += to;
+		}
+
+		public void updatePcBangWnd(int score, boolean add, boolean duble)
+		{
+			ExPCCafePointInfo wnd = new ExPCCafePointInfo(this, score, add, 24, duble);
+			sendPacket(wnd);
+		}
+
+		public void showPcBangWindow()
+		{
+			ExPCCafePointInfo wnd = new ExPCCafePointInfo(this, 0, false, 24, false);
+			sendPacket(wnd);
+		}
}
Index: /L2JBrasil_CORE/java/com/it/br/gameserver/GameServer.java
===================================================================
--- /L2JBrasil_CORE/java/com/it/br/gameserver/GameServer.java (revision 1999)
+++ /L2JBrasil_CORE/java/com/it/br/gameserver/GameServer.java (revision 2031)
@@ -24,7 +24,9 @@
import java.util.logging.Logger;

+import com.it.br.gameserver.PcPoint;
import com.it.br.gameserver.ai.special.manager.AILoader;
import com.it.br.gameserver.powerpak.PowerPak;
import com.it.br.gameserver.util.sql.SQLQueue;
+

import com.l2jserver.mmocore.network.*;

@@ -575,4 +572,9 @@
		{
			OnlinePlayers.getInstance();
+		}
+		if(Config.PCB_ENABLE)
+		{
+			System.out.println("############PCB_ENABLE################");
+			ThreadPoolManager.getInstance().scheduleGeneralAtFixedRate(PcPoint.getInstance(), Config.PCB_INTERVAL * 1000, Config.PCB_INTERVAL * 1000);
		}
		Util.printSection("L2JJustice EventManager");
@@ -612,4 +614,5 @@
		// Initialize config
		Config.load();
+		Config.loadPCBPointConfig();
		ExternalConfig.loadconfig();
		gameServer = new GameServer();
Index: /L2JBrasil_CORE/java/config/Custom/pcBang.properties
===================================================================
--- /L2JBrasil_CORE/java/config/Custom/pcBang.properties (revision 2031)
+++ /L2JBrasil_CORE/java/config/Custom/pcBang.properties (revision 2031)
@@ -0,0 +1,17 @@                            
+#============================================================#
+# PC Bang Point                                        -#
+#-------------------------------------------------------------#
+BangPointEnable = True
+
+cBangPointMinLevel = 20
+
+PcBangPointMinCount = 20
+PcBangPointMaxCount = 1000000
+
+PcBangPointDualChance = 20
+
+PcBangPointTimeStamp = 900

2 answers to this question

Recommended Posts

  • 0
Posted

im check all files, all files is exists!

 

here in expanded form:

 

e8af3cbe728b.png

 

and my code:

 

Index: /L2JBrasil_CORE/java/com/it/br/gameserver/services/FService.java
===================================================================
--- /L2JBrasil_CORE/java/com/it/br/gameserver/services/FService.java (revision 2928)
+++ /L2JBrasil_CORE/java/com/it/br/gameserver/services/FService.java (revision 2031)
@@ -72,5 +72,5 @@

+	public static final String EVENT_PC_BANG_POINT_FILE = "./config/custom/pcBang.properties";


Index: /L2JBrasil_CORE/java/com/it/br/gameserver/PcPoint.java
===================================================================
--- /L2JBrasil_CORE/java/com/it/br/gameserver/PcPoint.java (revision 2031)
+++ /L2JBrasil_CORE/java/com/it/br/gameserver/PcPoint.java (revision `2031)
@@ -0,0 +1,78 @@
+package com.it.br.gameserver;
+
+import java.util.logging.Logger;
+
+import com.it.br.Config;
+import com.it.br.gameserver.model.L2World;
+import com.it.br.gameserver.model.actor.instance.L2PcInstance;
+import com.it.br.gameserver.network.SystemMessageId;
+import com.it.br.gameserver.network.serverpackets.SystemMessage;
+import com.it.br.util.Rnd;
+
+
+/**
+ * @author Anumis
+ */
+
+public class PcPoint implements Runnable
+{
+	Logger _log = Logger.getLogger(PcPoint.class.getName());
+	private static PcPoint _instance;
+
+	public static PcPoint getInstance()
+	{
+		if(_instance == null)
+		{
+			_instance = new PcPoint();
+		}
+
+		return _instance;
+	}
+
+	private PcPoint()
+	{
+		_log.info("PcBang point event started.");
+	}
+
+	@Override
+	public void run()
+	{
+
+		int score = 0;
+		for(L2PcInstance activeChar: L2World.getInstance().getAllPlayers().values())
+		{
+
+			if(activeChar.getLevel() > Config.PCB_MIN_LEVEL )
+			{
+				score = Rnd.get(Config.PCB_POINT_MIN, Config.PCB_POINT_MAX);
+
+				if(Rnd.get(100) <= Config.PCB_CHANCE_DUAL_POINT)
+				{
+					score *= 2;
+
+					activeChar.addPcBangScore(score);
+
+					SystemMessage sm = new SystemMessage(SystemMessageId.DOUBLE_POINTS_YOU_GOT_$51_GLASSES_PC);
+					sm.addNumber(score);
+					activeChar.sendPacket(sm);
+					sm = null;
+
+					activeChar.updatePcBangWnd(score, true, true);
+				}
+				else
+				{
+					activeChar.addPcBangScore(score);
+
+					SystemMessage sm = new SystemMessage(SystemMessageId.YOU_RECEVIED_$51_GLASSES_PC);
+					sm.addNumber(score);
+					activeChar.sendPacket(sm);
+					sm = null;
+
+					activeChar.updatePcBangWnd(score, true, false);
+				}
+			}
+
+			activeChar = null;
+		} 
+	}
+}
Index: /L2JBrasil_CORE/java/com/it/br/Config.java
===================================================================
--- /L2JBrasil_CORE/java/com/it/br/Config.java (revision 2028)
+++ /L2JBrasil_CORE/java/com/it/br/Config.java (revision 2031)
@@ -1687,55 +1687,48 @@
	public static int HPH_INTERVALOFDOOROFALTER;
	public static int HPH_TIMEOFLOCKUPDOOROFALTAR;
+		//============================================================
+	public static boolean PCB_ENABLE;
+	public static int PCB_MIN_LEVEL;
+	public static int PCB_POINT_MIN;
+	public static int PCB_POINT_MAX;
+	public static int PCB_CHANCE_DUAL_POINT;
+	public static int PCB_INTERVAL;

	//============================================================
+	public static void loadPCBPointConfig()
	{

+		final String PCB_POINT = FService.EVENT_PC_BANG_POINT_FILE;

+		_log.info("Loading: " + PCB_POINT + ".");
+		try
+		{
+			Properties pcbpSettings = new Properties();
+			InputStream is = new FileInputStream(new File(PCB_POINT));
+			pcbpSettings.load(is);
+			is.close();

+			PCB_ENABLE = Boolean.parseBoolean(pcbpSettings.getProperty("PcBangPointEnable", "true"));
+			PCB_MIN_LEVEL = Integer.parseInt(pcbpSettings.getProperty("PcBangPointMinLevel", "20"));
+			PCB_POINT_MIN = Integer.parseInt(pcbpSettings.getProperty("PcBangPointMinCount", "20"));
+			PCB_POINT_MAX = Integer.parseInt(pcbpSettings.getProperty("PcBangPointMaxCount", "1000000"));

+			if(PCB_POINT_MAX < 1)
+			{
+				PCB_POINT_MAX = Integer.MAX_VALUE;
+			}

+			PCB_CHANCE_DUAL_POINT = Integer.parseInt(pcbpSettings.getProperty("PcBangPointDualChance", "20"));
+			PCB_INTERVAL = Integer.parseInt(pcbpSettings.getProperty("PcBangPointTimeStamp", "900"));
+		}
+		catch(Exception e)
+		{
+			e.printStackTrace();
+			throw new Error("Failed to Load " + PCB_POINT + " File.");
+		}

+	}
+	//============================================================
+	


Index: /L2JBrasil_CORE/java/com/it/br/gameserver/network/clientpackets/MultiSellChoose.java
===================================================================
--- /L2JBrasil_CORE/java/com/it/br/gameserver/network/clientpackets/MultiSellChoose.java (revision 107)
+++ /L2JBrasil_CORE/java/com/it/br/gameserver/network/clientpackets/MultiSellChoose.java (revision 2031)
@@ -200,4 +200,9 @@
				{
					player.sendPacket(new SystemMessage(SystemMessageId.THE_CLAN_REPUTATION_SCORE_IS_TOO_LOW));
+					return;
+				}
+				if(e.getItemId() == 65436 && e.getItemCount() * _amount > player.getPcBangScore())
+				{
+					player.sendPacket(new SystemMessage(SystemMessageId.NOT_ENOUGH_ITEMS));
					return;
				}
Index: /L2JBrasil_CORE/java/com/it/br/gameserver/network/clientpackets/EnterWorld.java
===================================================================
--- /L2JBrasil_CORE/java/com/it/br/gameserver/network/clientpackets/EnterWorld.java (revision 1726)
+++ /L2JBrasil_CORE/java/com/it/br/gameserver/network/clientpackets/EnterWorld.java (revision 2031)
@@ -144,4 +144,5 @@
			// activeChar.closeNetConnection();
		}
+	
		if (activeChar.isGM())
		{
@@ -373,4 +374,5 @@
			activeChar.checkAllowedSkills();
		}
+		
		// send user info again .. just like the real client sendPacket(ui);
		if ((activeChar.getClanId() != 0) && (activeChar.getClan() != null))
@@ -396,4 +398,8 @@
		notifyCastleOwner(activeChar);
		activeChar.onPlayerEnter();
+		if(Config.PCB_ENABLE)
+		{
+			activeChar.showPcBangWindow();
+		}
		TvTEvent.onLogin(activeChar);
		PcColorTable.getInstance().process(activeChar);
Index: /L2JBrasil_CORE/java/com/it/br/gameserver/network/serverpackets/ExPCCafePointInfo.java
===================================================================
--- /L2JBrasil_CORE/java/com/it/br/gameserver/network/serverpackets/ExPCCafePointInfo.java (revision 7)
+++ /L2JBrasil_CORE/java/com/it/br/gameserver/network/serverpackets/ExPCCafePointInfo.java (revision 2031)
@@ -15,4 +15,6 @@
package com.it.br.gameserver.network.serverpackets;

+import com.it.br.gameserver.model.actor.instance.L2PcInstance;
+


@@ -25,13 +27,36 @@
{
	private static final String _S__FE_31_EXPCCAFEPOINTINFO = "[s] FE:31 ExPCCafePointInfo";
-	private int _unk1, _unk2, _unk3, _unk4, _unk5 = 0;

-	public ExPCCafePointInfo(int val1, int val2, int val3, int val4, int val5)
+	private L2PcInstance _character;
+	private int m_AddPoint;
+	private int m_PeriodType;
+	private int RemainTime;
+	private int PointType;
+
+	public ExPCCafePointInfo(L2PcInstance user, int modify, boolean add, int hour, boolean _double)
	{
-		_unk1 = val1;
-		_unk2 = val2;
-		_unk3 = val3;
-		_unk4 = val4;
-		_unk5 = val5;
+		_character = user;
+		m_AddPoint = modify;
+
+		if(add)
+		{
+			m_PeriodType = 1;
+			PointType = 1;
+		}
+		else
+		{
+			if(add && _double)
+			{
+				m_PeriodType = 1;
+				PointType = 0;
+			}
+			else
+			{
+				m_PeriodType = 2;
+				PointType = 2;
+			}
+		}
+
+		RemainTime = hour;
	}

@@ -41,9 +66,9 @@
		writeC(0xFE);
		writeH(0x31);
-		writeD(_unk1);
-		writeD(_unk2);
-		writeC(_unk3);
-		writeD(_unk4);
-		writeC(_unk5);
+		writeD(_character.getPcBangScore());
+		writeD(m_AddPoint);
+		writeC(m_PeriodType);
+		writeD(RemainTime);
+		writeC(PointType);
	}

@@ -56,3 +81,4 @@
		return _S__FE_31_EXPCCAFEPOINTINFO;
	}
+
}
Index: /L2JBrasil_CORE/java/com/it/br/gameserver/network/SystemMessageId.java
===================================================================
--- /L2JBrasil_CORE/java/com/it/br/gameserver/network/SystemMessageId.java (revision 1926)
+++ /L2JBrasil_CORE/java/com/it/br/gameserver/network/SystemMessageId.java (revision 2031)
@@ -3873,5 +3873,7 @@
	DEATH_PENALTY_LIFTED(1917),
	DUNGEON_EXPIRES_IN_S1_MINUTES(1918), 
-	S1(3000);
+	S1(3000), 
+	DOUBLE_POINTS_YOU_GOT_$51_GLASSES_PC(3001), 
+	YOU_RECEVIED_$51_GLASSES_PC(3002);

	private int _id;
Index: /L2JBrasil_CORE/java/com/it/br/gameserver/model/actor/instance/L2PcInstance.java
===================================================================
--- /L2JBrasil_CORE/java/com/it/br/gameserver/model/actor/instance/L2PcInstance.java (revision 2029)
+++ /L2JBrasil_CORE/java/com/it/br/gameserver/model/actor/instance/L2PcInstance.java (revision 2031)
@@ -93,5 +93,4 @@
import com.it.br.gameserver.model.L2Clan;
import com.it.br.gameserver.model.L2ClanMember;
import com.it.br.gameserver.model.L2Effect;
import com.it.br.gameserver.model.L2Fishing;
@@ -152,4 +151,5 @@
import com.it.br.gameserver.network.L2GameClient;
import com.it.br.gameserver.network.SystemMessageId;
+import com.it.br.gameserver.network.serverpackets.ExPCCafePointInfo;
import com.it.br.gameserver.network.serverpackets.L2GameServerPacket;
import com.it.br.gameserver.network.serverpackets.ActionFailed;
@@ -234,6 +234,6 @@
	private static final String RESTORE_SKILL_SAVE = "SELECT skill_id,skill_level,effect_count,effect_cur_time, reuse_delay FROM character_skills_save WHERE char_obj_id=? AND class_index=? AND restore_type=? ORDER BY buff_index ASC";
	private static final String DELETE_SKILL_SAVE = "DELETE FROM character_skills_save WHERE char_obj_id=? AND class_index=?";
-	private static final String UPDATE_CHARACTER = "UPDATE characters SET level=?,maxHp=?,curHp=?,maxCp=?,curCp=?,maxMp=?,curMp=?,str=?,con=?,dex=?,_int=?,men=?,wit=?,face=?,hairStyle=?,hairColor=?,heading=?,x=?,y=?,z=?,exp=?,expBeforeDeath=?,sp=?,karma=?,pvpkills=?,pkkills=?,rec_have=?,rec_left=?,clanid=?,maxload=?,race=?,classid=?,deletetime=?,title=?,accesslevel=?,online=?,isin7sdungeon=?,clan_privs=?,wantspeace=?,base_class=?,onlinetime=?,in_jail=?,jail_timer=?,newbie=?,nobless=?,power_grade=?,subpledge=?,last_recom_date=?,lvl_joined_academy=?,apprentice=?,sponsor=?,varka_ketra_ally=?,clan_join_expiry_time=?,clan_create_expiry_time=?,char_name=?,event_points=?,coupon=?,donator=?,death_penalty_level=?,koof=?,noob=?,idiot=? WHERE obj_id=?";
-	private static final String RESTORE_CHARACTER = "SELECT account_name, obj_Id, char_name, level, maxHp, curHp, maxCp, curCp, maxMp, curMp, acc, crit, evasion, mAtk, mDef, mSpd, pAtk, pDef, pSpd, runSpd, walkSpd, str, con, dex, _int, men, wit, face, hairStyle, hairColor, sex, heading, x, y, z, movement_multiplier, attack_speed_multiplier, colRad, colHeight, exp, expBeforeDeath, sp, karma, pvpkills, pkkills, clanid, maxload, race, classid, deletetime, cancraft, title, rec_have, rec_left, accesslevel, online, char_slot, lastAccess, clan_privs, wantspeace, base_class, onlinetime, isin7sdungeon, in_jail, jail_timer, newbie, nobless, power_grade, subpledge, last_recom_date, lvl_joined_academy, apprentice, sponsor, varka_ketra_ally,clan_join_expiry_time,clan_create_expiry_time,event_points,coupon,donator,death_penalty_level,koof,noob,idiot FROM characters WHERE obj_id=?";
+	private static final String UPDATE_CHARACTER = "UPDATE characters SET level=?,maxHp=?,curHp=?,maxCp=?,curCp=?,maxMp=?,curMp=?,str=?,con=?,dex=?,_int=?,men=?,wit=?,face=?,hairStyle=?,hairColor=?,heading=?,x=?,y=?,z=?,exp=?,expBeforeDeath=?,sp=?,karma=?,pvpkills=?,pkkills=?,rec_have=?,rec_left=?,clanid=?,maxload=?,race=?,classid=?,deletetime=?,title=?,accesslevel=?,online=?,isin7sdungeon=?,clan_privs=?,wantspeace=?,base_class=?,onlinetime=?,in_jail=?,jail_timer=?,newbie=?,nobless=?,power_grade=?,subpledge=?,last_recom_date=?,lvl_joined_academy=?,apprentice=?,sponsor=?,varka_ketra_ally=?,clan_join_expiry_time=?,clan_create_expiry_time=?,char_name=?,event_points=?,coupon=?,donator=?,death_penalty_level=?,koof=?,noob=?,idiot=?,pc_point=? WHERE obj_id=?";
+	private static final String RESTORE_CHARACTER = "SELECT account_name, obj_Id, char_name, level, maxHp, curHp, maxCp, curCp, maxMp, curMp, acc, crit, evasion, mAtk, mDef, mSpd, pAtk, pDef, pSpd, runSpd, walkSpd, str, con, dex, _int, men, wit, face, hairStyle, hairColor, sex, heading, x, y, z, movement_multiplier, attack_speed_multiplier, colRad, colHeight, exp, expBeforeDeath, sp, karma, pvpkills, pkkills, clanid, maxload, race, classid, deletetime, cancraft, title, rec_have, rec_left, accesslevel, online, char_slot, lastAccess, clan_privs, wantspeace, base_class, onlinetime, isin7sdungeon, in_jail, jail_timer, newbie, nobless, power_grade, subpledge, last_recom_date, lvl_joined_academy, apprentice, sponsor, varka_ketra_ally,clan_join_expiry_time,clan_create_expiry_time,event_points,coupon,donator,death_penalty_level,koof,noob,idiot,pc_point FROM characters WHERE obj_id=?";
	private static final String RESTORE_CHAR_SUBCLASSES = "SELECT class_id,exp,sp,level,class_index FROM character_subclasses WHERE char_obj_id=? ORDER BY class_index ASC";
	private static final String ADD_CHAR_SUBCLASS = "INSERT INTO character_subclasses (char_obj_id,class_id,exp,sp,level,class_index) VALUES (?,?,?,?,?,?)";
@@ -382,4 +382,6 @@
	/** The Experience of the L2PcInstance before the last Death Penalty */
	private long _expBeforeDeath;
+	/** PC BANG POINT */
+	private int pcBangPoint = 0;
	/**
	 * The Karma of the L2PcInstance (if higher than 0, the name of the L2PcInstance appears in red)
@@ -6722,4 +6724,5 @@
				player.setCoupon(rset.getInt("coupon"));
				player.setDeathPenaltyBuffLevel(rset.getInt("death_penalty_level"));
+				player.pcBangPoint = rset.getInt("pc_point");
				// Add the L2PcInstance object in _allObjects
				// L2World.getInstance().storeObject(player);
@@ -7105,5 +7108,6 @@
			statement.setInt(61, isNoob() ? 1 : 0);
			statement.setInt(62, isIdiot() ? 1 : 0);
-			statement.setInt(63, getObjectId());
+			statement.setInt(63, getPcBangScore());
+			statement.setInt(64, getObjectId());


@@ -13002,9 +13006,32 @@
		return (DM._started && _inEventDM) || (CTF._started && _inEventCTF) || (VIP._started && _inEventVIP) (Zombie._started && _ZombieZ) || && !isGM();
	}*/

+		public int getPcBangScore()
+		{
+			return pcBangPoint;
+		}
+
+		public void reducePcBangScore(int to)
+		{
+			pcBangPoint -= to;
+			updatePcBangWnd(to, false, false);
+		}
+
+		public void addPcBangScore(int to)
+		{
+			pcBangPoint += to;
+		}
+
+		public void updatePcBangWnd(int score, boolean add, boolean duble)
+		{
+			ExPCCafePointInfo wnd = new ExPCCafePointInfo(this, score, add, 24, duble);
+			sendPacket(wnd);
+		}
+
+		public void showPcBangWindow()
+		{
+			ExPCCafePointInfo wnd = new ExPCCafePointInfo(this, 0, false, 24, false);
+			sendPacket(wnd);
+		}
}
Index: /L2JBrasil_CORE/java/com/it/br/gameserver/GameServer.java
===================================================================
--- /L2JBrasil_CORE/java/com/it/br/gameserver/GameServer.java (revision 1999)
+++ /L2JBrasil_CORE/java/com/it/br/gameserver/GameServer.java (revision 2031)
@@ -24,7 +24,9 @@
import java.util.logging.Logger;

+import com.it.br.gameserver.PcPoint;
import com.it.br.gameserver.ai.special.manager.AILoader;
import com.it.br.gameserver.powerpak.PowerPak;
import com.it.br.gameserver.util.sql.SQLQueue;
+

import com.l2jserver.mmocore.network.*;

@@ -575,4 +572,9 @@
		{
			OnlinePlayers.getInstance();
+		}
+		if(Config.PCB_ENABLE)
+		{
+			System.out.println("############PCB_ENABLE################");
+			ThreadPoolManager.getInstance().scheduleGeneralAtFixedRate(PcPoint.getInstance(), Config.PCB_INTERVAL * 1000, Config.PCB_INTERVAL * 1000);
		}
		Util.printSection("L2JJustice EventManager");
@@ -612,4 +614,5 @@
		// Initialize config
		Config.load();
+		Config.loadPCBPointConfig();
		ExternalConfig.loadconfig();
		gameServer = new GameServer();
Index: /L2JBrasil_CORE/java/config/Custom/pcBang.properties
===================================================================
--- /L2JBrasil_CORE/java/config/Custom/pcBang.properties (revision 2031)
+++ /L2JBrasil_CORE/java/config/Custom/pcBang.properties (revision 2031)
@@ -0,0 +1,17 @@                            
+#============================================================#
+# PC Bang Point                                        -#
+#-------------------------------------------------------------#
+BangPointEnable = True
+
+cBangPointMinLevel = 20
+
+PcBangPointMinCount = 20
+PcBangPointMaxCount = 1000000
+
+PcBangPointDualChance = 20
+
+PcBangPointTimeStamp = 900

Guest
This topic is now closed to further replies.


  • Posts

    • No matter what you are going to use, paid or non-paid or whatever, everything requires personal time investment and a lot of trial and error in many sectors of IT. I have used and seen (clients of mine) L2J Sunrise, Mobius, ACIS, and Lucera. Not even one was close enough to providing a decent outcome without the need for some heavy dev intervention. Even if you provide a decent pack, you will have to think about cheaters, marketing, monitoring, network protection, and the list goes on depending on the problem. Thus, I have no clue why people here debate so much about datapacks because  I remember the days when we were playing on private servers with 80% less functionality than the current Lineage 2 emulator state, and it was enough to have fun. Now the leftovers are such a toxic community that I have no idea what drives people to open projects except money.    My 2 cents choose whatever will ease your life in terms of development and your life/work/budget balance and dont spent months trying to figure out what datapack is superior over the other. You have more serious things to consider.
    • I’ve played around with similar growth setups, and what usually makes the whole thing smoother is pairing them with something steady on the side. For example, I once used famoid.com for a small boost so the main profile didn’t look empty while the Mother/Child flow warmed up. Your themed accounts idea can work nicely as long as the profiles stay active and feel human enough to spark replies.
    • I never said that, can you read? Are you going to start an argument when that isn't the main goal of this post? Or are you just used to the same old discussion mechanics?     Thank you very much for your recommendation. A few months ago, I worked on a project called 'L2Avalon' using a compiled Lucera2 (it was the only thing the project leader provided me), and based on my 20 years of experience playing Lineage 2, I feel like it's broken everywhere, unless the specific version of Lucera I was using was just old. I don't have a problem coding and fixing things, but I am looking for a solid base so I don't do unnecessary work.   Replying to the first guy: I would never discredit paid work; obviously, any paid work will be better than a free one for obvious reasons. But my reality is that I don't want to throw money away, mainly because saving up a large sum of money is a matter of several months in my current situation here in Argentina.
  • Topics

×
×
  • Create New...

Important Information

This community uses essential cookies to function properly. Non-essential cookies and third-party services are used only with your consent. Read our Privacy Policy and We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue..

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