Jump to content

PC Bang Points Event


vagos123
 Share

Recommended Posts

Hellooo!

 

Bauwbas Here has shared a pc bang event but not full , as he misses FService.java and has client modding....

 

I want to share a pc bang event i found on a russian site of l2j development , in which there is no client modding , as it uses system messages , and generally it is full..

 

Haven't tested it yet as i am working on an Interlude Project and as you know it has a lot -beep-ing work!

 

Anywayz here comes the code :

 

 

Index: /Gs folder/java/l2justice/com/gameserver/services/FService.java
===================================================================
--- /Gs folder/java/l2justice/com/gameserver/services/FService.java (revision 2928)
+++ /Gs folder/java/l2justice/com/gameserver/services/FService.java (revision 2031)
@@ -72,5 +72,5 @@

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

Index: /Gs folder/java/l2justice/com/gameserver/PcPoint.java
===================================================================
--- /Gs folder/java/l2justice/com/gameserver/PcPoint.java (revision 2031)
+++ /Gs folder/java/l2justice/com/gameserver/PcPoint.java (revision `2031)
@@ -0,0 +1,78 @@
+package l2justice.com.gameserver;
+
+import java.util.logging.Logger;
+
+import net.sf.l2j.Config;
+import net.sf.l2j.gameserver.model.L2World;
+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 net.sf.l2j.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())
+ {
+
+ 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: /Gs folder/java/net/sf/l2j/Config.java
===================================================================
--- /Gs folder/java/net/sf/l2j/Config.java (revision 2028)
+++ /Gs folder/java/net/sf/l2j/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: /Gs folder/java/net/sf/l2j/gameserver/clientpackets/MultiSellChoose.java
===================================================================
--- /Gs folder/java/net/sf/l2j/gameserver/clientpackets/MultiSellChoose.java (revision 107)
+++ /Gs folder/java/net/sf/l2j/gameserver/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: /Gs folder/java/net/sf/l2j/gameserver/clientpackets/EnterWorld.java
===================================================================
--- /Gs folder/java/net/sf/l2j/gameserver/clientpackets/EnterWorld.java (revision 1726)
+++ /Gs folder/java/net/sf/l2j/gameserver/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: /Gs folder/java/net/sf/l2j/gameserver/network/serverpackets/ExPCCafePointInfo.java
===================================================================
--- /Gs folder/java/net/sf/l2j/gameserver/network/serverpackets/ExPCCafePointInfo.java (revision 7)
+++ /Gs folder/java/net/sf/l2j/gameserver/network/serverpackets/ExPCCafePointInfo.java (revision 2031)
@@ -15,4 +15,6 @@
package net.sf.l2j.gameserver.network.serverpackets;

+import net.sf.l2j.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: /Gs folder/java/net/sf/l2j/gameserver/network/SystemMessageId.java
===================================================================
--- /Gs folder/java/net/sf/l2j/gameserver/network/SystemMessageId.java (revision 1926)
+++ /Gs folder/java/net/sf/l2j/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: /Gs folder/java/net/sf/l2j/gameserver/model/actor/instance/L2PcInstance.java
===================================================================
--- /Gs folder/java/net/sf/l2j/gameserver/model/actor/instance/L2PcInstance.java (revision 2029)
+++ /Gs folder/java/net/sf/l2j/gameserver/model/actor/instance/L2PcInstance.java (revision 2031)
@@ -93,5 +93,4 @@
import net.sf.l2j.gameserver.model.L2Clan;
import net.sf.l2j.gameserver.model.L2ClanMember;
import net.sf.l2j.gameserver.model.L2Effect;
import net.sf.l2j.gameserver.model.L2Fishing;
@@ -152,4 +151,5 @@
import net.sf.l2j.gameserver.network.L2GameClient;
import net.sf.l2j.gameserver.network.SystemMessageId;
+import net.sf.l2j.gameserver.network.serverpackets.ExPCCafePointInfo;
import net.sf.l2j.gameserver.network.serverpackets.L2GameServerPacket;
import net.sf.l2j.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: /Gs folder/java/net/sf/l2j/gameserver/GameServer.java
===================================================================
--- /Gs folder/java/net/sf/l2j/gameserver/GameServer.java (revision 1999)
+++ /Gs folder/java/net/sf/l2j/gameserver/GameServer.java (revision 2031)
@@ -24,7 +24,9 @@
import java.util.logging.Logger;

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

import org.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: /Gs folder/java/config/Custom/pcBang.properties
===================================================================
--- /Gs folder/java/config/Custom/pcBang.properties (revision 2031)
+++ /Gs folder/java/config/Custom/pcBang.properties (revision 2031)
@@ -0,0 +1,17 @@
+#============================================================#
+# PC Bang Point -#
+#-------------------------------------------------------------#
+PcBangPointEnable = True
+
+PcBangPointMinLevel = 20
+
+PcBangPointMinCount = 20
+PcBangPointMaxCount = 1000000
+
+PcBangPointDualChance = 20
+
+PcBangPointTimeStamp = 900

 

NOTE : This is an event which can be used in all chronicles without HUGE adaptation.. So i don't want to see spamming like " What chronicle are u using ? " etc

 

Enjoy it and cyaz till next time which will propably be with my project

 

CyaZ and Have a nice New Year's Eve !

 

Link to comment
Share on other sites

useless, why? FService.java is same as Config.java, in Fservice.java (usualy russian packs) is links to config files, for e.g.

 

 

fortress_config = config/mods/fortress.properties

 

:))

Link to comment
Share on other sites

Making a trading npc. Taking Bang Points and giving a item.

The only problem i have is that  st.getPlayer().reducePcBangScore(POINTS) <- THis getting error.

Any idea?

import sys
from com.l2jserver.gameserver.model.actor.instance import L2PcInstance
from java.util import Iterator
from com.l2jserver.gameserver.datatables import SkillTable
from com.l2jserver		       import L2DatabaseFactory
from com.l2jserver.gameserver.model.quest import State
from com.l2jserver.gameserver.model.actor.appearance import PcAppearance
from com.l2jserver.gameserver.model.quest import QuestState
from com.l2jserver.gameserver.model.quest.jython import QuestJython as JQuest
from com.l2jserver.gameserver.model.quest        			import State
from com.l2jserver.gameserver.model.quest        			import QuestState
from com.l2jserver.gameserver.model.quest.jython 			import QuestJython as JQuest
from com.l2jserver.gameserver.network.serverpackets      	import PledgeShowInfoUpdate
from com.l2jserver.gameserver.network.serverpackets      	import SystemMessage


qn = "90099_BangPoints"

NPC=[32070]
COINS= 4356
COUNT = 10
POINTS = 100
QuestId     = 8205
QuestName   = "BangPoints"
QuestDesc   = "custom"
InitialHtml = "1.htm"

print "INFO Loaded: Points Bying Manager"

class Quest (JQuest) :

def __init__(self,id,name,descr): JQuest.__init__(self,id,name,descr)


def onEvent(self,event,st):
	htmltext = event


	if ((st.getPlayer().getPcBangScore()) < COUNT) :	
                        htmltext = "Error1.htm"

	else:
		st.getPlayer().setTarget(st.getPlayer())

		if event == "2":
			st.giveItems(COINS,COUNT)
                st.getPlayer().reducePcBangScore(POINTS)
                st.playSound("ItemSound.quest_finish")
			st.setState(State.COMPLETED)
			st.exitQuest(1)
			return "End.htm"


		if htmltext != event:
			st.setState(State.COMPLETED)
			st.exitQuest(1)
	return htmltext


def onTalk (self,npc,player):
   st = player.getQuestState(qn)
   htmltext = "<html><head><body>I have nothing to say to you</body></html>"
   st.setState(State.STARTED)
   return InitialHtml

QUEST       = Quest(QuestId,str(QuestId) + "_" + QuestName,QuestDesc)

for npcId in NPC:
QUEST.addStartNpc(npcId)
QUEST.addTalkId(npcId)

Link to comment
Share on other sites

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.

 Share



  • Posts

    • Send me the corect pass pls!!  thanks in advance!!
    • Welcome back to L2Etina! We are coming back with a new  x3 Interlude Chronicle  For those who didn't play before, L2Etina is Interlude Chronicle with Classic Client. It means game interface is new and that we have a lot of cool features like radar, mail, Item Search Window, Seed Auction, Buff Stores. Gameplay stays the same as on Interlude though, so there aren't any changes to skills, bosses, drops etc. We are aiming to provide a long-term server without any kind of wipe.   Rates: Experience: 3x Skill Points: 3x Adena Drop: 2x Item Drop: 2x Seal Stones Drop: 2x Spoil Rate: 2x Raid/Epic Boss Experience: 1x Raid/Epic Boss Skill Points: 1x Raid/Epic Boss Drop: 1x No Dual Box No Bots No Donate No Auto Pick Up Siege of each castle takes place every 2 weeks First Castle Siege starts date TBD Heroes are selected every 2 weeks First Olympiad Period starts date TBD     Classic Game Client: Modern look of the game Improved performance No Critical Errors Tons of new Game Settings and Interface Windows Damage on the Screen Healths Bars Mail Radar Cloaks Party Tokens Skill Learning Panel New Skills Enchanting Items on Chat Npc Debuff Info Improved Clan Notice Editing Quick Status Actions Exp Bar and redesigned Main Menu Friend Manager Quest Areas on the Map Redesigned Character Creation Clan Ranking Redesigned Past Olympiad Ranking Colorful System Messages No Adena Limit   Custom Features: Guide Window provides all important information about Lineage II and L2Etina Soul Crystal Window shows which monsters you need to hunt and which Soul Crystal you need for your weapon Bot Reporting Function and Smart Guard provides playing without Bots Item Search Window allows you to find every possible source of getting item that you are interested in Buff Store allows automatic buff sales Offline Private Store Sales Seed Auction allows everyone to take part in manor Shady Man allows to purchase info about respawn of Subclass Raid Bosses & exchanges Pipette Knife for Red Pipette Knife Shadow weapons are disabled Fishing system is disabled Automatic Twitch Rewards Ranking Window Automatic Crystallization Sales Exit Game Statistics     Enchant Rates: Safe Enchant: +3 Safe Enchant Full-Armor: +4 Max Enchant: +16 Enchanting Chance: 66%   Skills: Skills learned by Skills Panel Spell Books are required for Skill Learning Retail amount of Buff Slots Retail Buff Duration Skills can be enchanted by Skills Panel   Bosses Respawn Duration: Cabrio, Kernon, Golkonda, Hallate: 20 - 24 hours Flame of Splendor Barakiel: 16 - 20 hours Queen Ant: 34 - 36 hours Orfen: 46 - 48 hours Core: 58 - 60 hours Zaken: 58 - 60 hours Baium: 164 - 168 hours Frintezza: 44 - 48 hours Antharas: 260 - 264 hours Valakas: 260 - 264 hours     Quest Item Drop Rate: Dangerous Seduction: Requires first class transfer Kamael: A Window to the Future: Requires first class transfer Gather the Flames: 1x Relics of the Old Empire: 1x Alliance with Varka Silenos: 1x Alliance with Ketra Orcs: 1x War with Ketra: 1x War with Varka: 1x Third Class Quests: 1x Seekers of the Holy Grail: 1x Guardians of the Holy Grail: 1x The Finest Food: 1x Four Goblets: 1x Legacy of Insolence: 1x Exploration of the Giants' Cave, Part I & II: 1x Coins of Magic: 3x Other Quests: 2x     Beta Testing: 22th of August Grand Opening: 16th of September Visit us at https://l2etina.com Discord : https://discord.gg/l2etina
    • his Profile on maxcheaters? @VisaGriaunantis
    • Hey, I don't know if this post really fits there but I've searched everywhere on the internet and this is the most active and helpful place i could find. I was wondering if its possible I could get the login screen of h5 part 4 without the GUI, like without the login screen in the middle, the text on top right and the settings on bottom right. I have no clue when it comes to coding, so I would like some guidance. Is it easy to do? Do I just search it in some folder or do I have to edit some stuff in order to make the GUI go away and then open the game and take a capture of the login screen? I just want to record the login screen without these things so I can make it into an animated wallpaper for me and my friend, h5 part 4 was our favorite. Thanks in advance !
    • AMD Ryzen 9 3900x      12cores, 24 threads @4,60Ghz turbo      64GB DDR3 ECC      2x 512GB NVME SSD      1Gbit Shared Port 50TB Bandwdith   169€/month   Order: https://hostslick.com/dedicated-servers     Are you fan of AMD Ryzen? We still have some!   Order within next 48h from now and get a FREE Graphic Card  Gigabit geforce gtx 1050 ti  4GB included! (normally +40€/m!)
  • Topics

×
×
  • Create New...