Jump to content

[L2Jacis] Pc Bang Point Event


Recommended Posts

Hello Friends, well here I come to share the event of PC Bang Point

 

Interlude
DP: L2JaCis
REV: 354

 

 

Index: java/net/sf/l2j/gameserver/model/actor/instance/L2PcInstance.java
===================================================================
--- java/net/sf/l2j/gameserver/model/actor/instance/L2PcInstance.java	(revision 9)
+++ java/net/sf/l2j/gameserver/model/actor/instance/L2PcInstance.java	(working copy)
@@ -164,6 +164,7 @@
 import net.sf.l2j.gameserver.network.serverpackets.ExFishingEnd;
 import net.sf.l2j.gameserver.network.serverpackets.ExFishingStart;
 import net.sf.l2j.gameserver.network.serverpackets.ExOlympiadMode;
+import net.sf.l2j.gameserver.network.serverpackets.ExPCCafePointInfo;
 import net.sf.l2j.gameserver.network.serverpackets.ExSetCompassZoneCode;
 import net.sf.l2j.gameserver.network.serverpackets.ExStorageMaxCount;
 import net.sf.l2j.gameserver.network.serverpackets.FriendList;
@@ -311,8 +312,8 @@
 	private static final String DELETE_SKILL_SAVE = "DELETE FROM character_skills_save WHERE char_obj_id=? AND class_index=?";
 	
 	private static final String INSERT_CHARACTER = "INSERT INTO characters (account_name,obj_Id,char_name,level,maxHp,curHp,maxCp,curCp,maxMp,curMp,face,hairStyle,hairColor,sex,exp,sp,karma,pvpkills,pkkills,clanid,race,classid,deletetime,cancraft,title,accesslevel,online,isin7sdungeon,clan_privs,wantspeace,base_class,nobless,power_grade,last_recom_date) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)";
-	private static final String UPDATE_CHARACTER = "UPDATE characters SET level=?,maxHp=?,curHp=?,maxCp=?,curCp=?,maxMp=?,curMp=?,face=?,hairStyle=?,hairColor=?,sex=?,heading=?,x=?,y=?,z=?,exp=?,expBeforeDeath=?,sp=?,karma=?,pvpkills=?,pkkills=?,rec_have=?,rec_left=?,clanid=?,race=?,classid=?,deletetime=?,title=?,accesslevel=?,online=?,isin7sdungeon=?,clan_privs=?,wantspeace=?,base_class=?,onlinetime=?,punish_level=?,punish_timer=?,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=?,death_penalty_level=? WHERE obj_id=?";
-	private static final String RESTORE_CHARACTER = "SELECT account_name, obj_Id, char_name, level, maxHp, curHp, maxCp, curCp, maxMp, curMp, face, hairStyle, hairColor, sex, heading, x, y, z, exp, expBeforeDeath, sp, karma, pvpkills, pkkills, clanid, race, classid, deletetime, cancraft, title, rec_have, rec_left, accesslevel, online, char_slot, lastAccess, clan_privs, wantspeace, base_class, onlinetime, isin7sdungeon, punish_level, punish_timer, nobless, power_grade, subpledge, last_recom_date, lvl_joined_academy, apprentice, sponsor, varka_ketra_ally,clan_join_expiry_time,clan_create_expiry_time,death_penalty_level FROM characters WHERE obj_id=?";
+	private static final String UPDATE_CHARACTER = "UPDATE characters SET level=?,maxHp=?,curHp=?,maxCp=?,curCp=?,maxMp=?,curMp=?,face=?,hairStyle=?,hairColor=?,sex=?,heading=?,x=?,y=?,z=?,exp=?,expBeforeDeath=?,sp=?,karma=?,pvpkills=?,pkkills=?,rec_have=?,rec_left=?,clanid=?,race=?,classid=?,deletetime=?,title=?,accesslevel=?,online=?,isin7sdungeon=?,clan_privs=?,wantspeace=?,base_class=?,onlinetime=?,punish_level=?,punish_timer=?,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=?,death_penalty_level=?,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, face, hairStyle, hairColor, sex, heading, x, y, z, exp, expBeforeDeath, sp, karma, pvpkills, pkkills, clanid, race, classid, deletetime, cancraft, title, rec_have, rec_left, accesslevel, online, char_slot, lastAccess, clan_privs, wantspeace, base_class, onlinetime, isin7sdungeon, punish_level, punish_timer, nobless, power_grade, subpledge, last_recom_date, lvl_joined_academy, apprentice, sponsor, varka_ketra_ally,clan_join_expiry_time,clan_create_expiry_time,death_penalty_level,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 (?,?,?,?,?,?)";
@@ -376,6 +377,8 @@
 	
 	private PcAppearance _appearance;
 	
+	private int pcBangPoint = 0;
+
 	private long _expBeforeDeath;
 	private int _karma;
 	private int _pvpKills;
@@ -5324,6 +5327,8 @@
 				player.setOnlineTime(rset.getLong("onlinetime"));
 				player.setNoble(rset.getInt("nobless") == 1, false);
 				
+				player.pcBangPoint = rset.getInt("pc_point");
+
 				player.setClanJoinExpiryTime(rset.getLong("clan_join_expiry_time"));
 				if (player.getClanJoinExpiryTime() < System.currentTimeMillis())
 					player.setClanJoinExpiryTime(0);
@@ -5747,7 +5752,8 @@
 			statement.setLong(47, getClanCreateExpiryTime());
 			statement.setString(48, getName());
 			statement.setLong(49, getDeathPenaltyBuffLevel());
-			statement.setInt(50, getObjectId());
+			statement.setInt(50, getPcBangScore());
+			statement.setInt(51, getObjectId());
 			
 			statement.execute();
 			statement.close();
@@ -10564,4 +10570,33 @@
 		teleToLocation(0, 0, 0, 0);
 		sendMessage("Error with your coords, Please ask a GM for help!");
 	}
+	
+	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);
+	}
+
 }
\ No newline at end of file
Index: java/net/sf/l2j/gameserver/network/clientpackets/EnterWorld.java
===================================================================
--- java/net/sf/l2j/gameserver/network/clientpackets/EnterWorld.java	(revision 9)
+++ java/net/sf/l2j/gameserver/network/clientpackets/EnterWorld.java	(working copy)
@@ -227,6 +227,8 @@
 		
 		activeChar.onPlayerEnter();
 		
+		activeChar.showPcBangWindow();
+
 		sendPacket(new SkillCoolTime(activeChar));
 		
 		// If player logs back in a stadium, port him in nearest town.
Index: java/net/sf/l2j/gameserver/network/serverpackets/ExPCCafePointInfo.java
===================================================================
--- java/net/sf/l2j/gameserver/network/serverpackets/ExPCCafePointInfo.java	(revision 9)
+++ java/net/sf/l2j/gameserver/network/serverpackets/ExPCCafePointInfo.java	(working copy)
@@ -1,46 +1,75 @@
-/*
- * 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 3 of the License, 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, see <http://www.gnu.org/licenses/>.
+/* 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.network.serverpackets;
 
-/**
- * Format: ch ddcdc
- * @author KenM
- */
+import net.sf.l2j.gameserver.model.actor.instance.L2PcInstance;
+
 public class ExPCCafePointInfo extends L2GameServerPacket
 {
-	private final int _score, _modify, _periodType, _remainingTime;
-	private int _pointType = 0;
+	private static final String _S__FE_31_EXPCCAFEPOINTINFO = "[S] FE:31 ExPCCafePointInfo";
+	private L2PcInstance _character;
+	private int m_AddPoint;
+	private int m_PeriodType;
+	private int RemainTime;
+	private int PointType;
 	
-	public ExPCCafePointInfo(int score, int modify, boolean addPoint, boolean pointType, int remainingTime)
+	public ExPCCafePointInfo(L2PcInstance user, int modify, boolean add, int hour, boolean _double)
 	{
-		_score = score;
-		_modify = addPoint ? modify : modify * -1;
-		_remainingTime = remainingTime;
-		_pointType = addPoint ? (pointType ? 0 : 1) : 2;
-		_periodType = 1; // get point time
+		_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;
 	}
-	
+
 	@Override
 	protected void writeImpl()
 	{
 		writeC(0xFE);
 		writeH(0x31);
-		writeD(_score);
-		writeD(_modify);
-		writeC(_periodType);
-		writeD(_remainingTime);
-		writeC(_pointType);
+		writeD(_character.getPcBangScore());
+		writeD(m_AddPoint);
+		writeC(m_PeriodType);
+		writeD(RemainTime);
+		writeC(PointType);
+	}
+	
+	@Override
+	public String getType()
+	{
+		return _S__FE_31_EXPCCAFEPOINTINFO;
 	}
 }
\ No newline at end of file
Index: java/net/sf/l2j/gameserver/scripting/scripts/custom/PcPoint.java
===================================================================
--- java/net/sf/l2j/gameserver/scripting/scripts/custom/PcPoint.java	(revision 0)
+++ java/net/sf/l2j/gameserver/scripting/scripts/custom/PcPoint.java	(revision 0)
@@ -0,0 +1,58 @@
+/*
+ * Copyright (C) 2004-2014 L2J DataPack
+ * 
+ * This file is part of L2J DataPack.
+ * 
+ * L2J DataPack 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 3 of the License, or
+ * (at your option) any later version.
+ * 
+ * L2J DataPack 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, see <http://www.gnu.org/licenses/>.
+ */
+package net.sf.l2j.gameserver.scripting.scripts.custom;
+
+import net.sf.l2j.commons.random.Rnd;
+import net.sf.l2j.gameserver.datatables.NpcTable;
+import net.sf.l2j.gameserver.model.actor.L2Npc;
+import net.sf.l2j.gameserver.model.actor.instance.L2PcInstance;
+import net.sf.l2j.gameserver.model.actor.template.NpcTemplate;
+import net.sf.l2j.gameserver.scripting.Quest;
+
+public class PcPoint extends Quest
+{	
+    public PcPoint()
+    {
+        super(-1, "custom");
+        for (NpcTemplate t : NpcTable.getInstance().getTemplates(t -> t.isType("L2Monster")))
+        {
+            addKillId(t.getIdTemplate());
+        }
+    }
+    
+    @Override
+    public String onKill(L2Npc npc, L2PcInstance killer, boolean isPet)
+    {
+        if ((killer.getLevel() >= 75) && (npc.getLevel() < 60)) 
+        {
+            return "";
+        }
+		int score = 0;
+		score = Rnd.get(100, 250);
+		killer.addPcBangScore(score);
+		killer.updatePcBangWnd(score, true, false);
+        return super.onKill(npc, killer, isPet);
+    }
+    
+    public static void main(String[] arg)
+    {
+        new PcPoint();
+    }
+    
+}
\ No newline at end of file
Index: data/xml/scripts.xml
===================================================================
--- data/xml/scripts.xml	(revision 9)
+++ data/xml/scripts.xml	(working copy)
@@ -361,7 +361,8 @@
 	<script path="scripts.custom.NpcLocationInfo"/>
 	<script path="scripts.custom.HeroCirclet"/>
 	<script path="scripts.custom.HeroWeapon"/>
-
+	<script path="scripts.custom.PcPoint"/>
+	
 	<!-- Events -->
 
 <!-- 	<script path="scripts.events.GiftOfVitality"/> -->
Index: sql/characters.sql
===================================================================
--- sql/characters.sql	(revision 9)
+++ sql/characters.sql	(working copy)
@@ -54,6 +54,7 @@
   `clan_join_expiry_time` BIGINT UNSIGNED NOT NULL DEFAULT 0,
   `clan_create_expiry_time` BIGINT UNSIGNED NOT NULL DEFAULT 0,
   `death_penalty_level` SMALLINT UNSIGNED NOT NULL DEFAULT 0,
+  `pc_point` int (1) NOT NULL DEFAULT 0,
   PRIMARY KEY (obj_Id),
   KEY `clanid` (`clanid`)
 );
\ No newline at end of file
Link to comment
Share on other sites

  • 9 months later...
  • 1 month later...
  • 1 month later...
  • 2 years later...

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



×
×
  • Create New...