Jump to content

Recommended Posts

Posted (edited)

Hello guys,

I want to share with you my buffer ( nothing special but i like ).

The buffer is Tryskell on acis and i edited htmls and the instance too (Free rev).

Added fighter/mage set (with configs) with buffs animation   :not bad:

And Manual buffs.

Also, I am not 'pro'   :dat:  so... There may be some mistakes..

Download

 

image.pngimage.pngimage.png

image.pngimage.pngimage.png

 

image.pngimage.pngimage.png

image.pngimage.pngimage.png

 

 

Changes:

### Eclipse Workspace Patch 1.0
#P aCis_gameserver
Index: config/npcs.properties
===================================================================
--- config/npcs.properties	(revision 5)
+++ config/npcs.properties	(working copy)
@@ -52,6 +52,12 @@
 # The list of buffs, under a skillId,buffPrice,groupType format.
 BufferBuffs = 264,0,Songs;265,0,Songs;266,0,Songs;267,0,Songs;268,0,Songs;269,0,Songs;270,0,Songs;304,0,Songs;305,0,Songs;306,0,Songs;308,0,Songs;349,0,Songs;363,0,Songs;364,0,Songs;271,0,Dances;272,0,Dances;273,0,Dances;274,0,Dances;275,0,Dances;276,0,Dances;277,0,Dances;309,0,Dances;310,0,Dances;311,0,Dances;1002,0,Warcryer;1006,0,Warcryer;1007,0,Warcryer;1009,0,Warcryer;1308,0,Warcryer;1309,0,Warcryer;1310,0,Warcryer;1362,0,Warcryer;1390,0,Warcryer;1391,0,Warcryer;1413,0,Warcryer;1416,0,Overlord;1003,0,Overlord;1004,0,Overlord;1005,0,Overlord;1008,0,Overlord;1249,0,Overlord;1364,0,Overlord;1365,0,Overlord;1032,0,Prophet;1033,0,Prophet;1035,0,Prophet;1036,0,Prophet;1040,0,Prophet;1043,0,Prophet;1044,0,Prophet;1045,0,Prophet;1048,0,Prophet;1059,0,Shillen_Elder;1062,0,Prophet;1068,0,Prophet;1073,0,Elder;1077,0,Shillen_Elder;1078,0,Shillen_Elder;1085,0,Prophet;1086,0,Prophet;1087,0,Elder;1182,0,Elder;1189,0,Shillen_Elder;1191,0,Prophet;1204,0,Prophet;1242,0,Shillen_Elder;1243,0,Prophet;1259,0,Elder;1268,0,Shillen_Elder;1303,0,Shillen_Elder;1304,0,Elder;1352,0,Elder;1353,0,Elder;1354,0,Elder;1388,0,Shillen_Elder;1389,0,Shillen_Elder;1392,0,Prophet;1393,0,Elder;1397,0,Elder;1355,0,Elder;1356,0,Prophet;1357,0,Shillen_Elder;1363,0,Warcryer;1414,0,Overlord
 
+#Set of fighter buffs
+FighterSet = 1087,1243,1204,1068,1388,1040,1036,1035,1048,1045,1077,1242,1086,1043,1268,1036,1363,1240,1062,271,274,275,310,304,308,306,264,267,269,349,364,268,270,1416
+
+#Set of Mage buffs
+MageSet = 1087,1243,1204,1040,1036,1048,1045,1389,1062,1363,1085,1059,1303,1304,273,276,365,268,270,349,264,267,268,306,308,1416
+
 #=============================================================
 #                             Misc
 #=============================================================
Index: java/net/sf/l2j/Config.java
===================================================================
--- java/net/sf/l2j/Config.java	(revision 5)
+++ java/net/sf/l2j/Config.java	(working copy)
@@ -297,6 +297,10 @@
 	public static int CHAMPION_REWARD_QTY;
 	
 	/** Buffer */
+	public static String FIGHTER_SET;
+	public static int[] FIGHTER_SET_LIST;
+	public static String MAGE_SET;
+	public static int[] MAGE_SET_LIST;
 	public static int BUFFER_MAX_SCHEMES;
 	public static int BUFFER_MAX_SKILLS;
 	public static int BUFFER_STATIC_BUFF_COST;
@@ -885,7 +889,19 @@
 			BUFFER_MAX_SKILLS = npcs.getProperty("BufferMaxSkillsPerScheme", 24);
 			BUFFER_STATIC_BUFF_COST = npcs.getProperty("BufferStaticCostPerBuff", -1);
 			BUFFER_BUFFS = npcs.getProperty("BufferBuffs");
+			FIGHTER_SET = npcs.getProperty("FighterSet", "2375,3500,3501,3502,4422,4423,4424,4425,6648,6649,6650");
+			MAGE_SET = npcs.getProperty("MageSet", "2375,3500,3501,3502,4422,4423,4424,4425,6648,6649,6650");
+		
+			String[] FighterList = FIGHTER_SET.split(",");
+			FIGHTER_SET_LIST = new int[FighterList.length];
+			for (int i = 0; i < FighterList.length; i++)
+				FIGHTER_SET_LIST[i] = Integer.parseInt(FighterList[i]);
 			
+			String[] MageList = MAGE_SET.split(",");
+			MAGE_SET_LIST = new int[MageList.length];
+			for (int i = 0; i < MageList.length; i++)
+				MAGE_SET_LIST[i] = Integer.parseInt(MageList[i]);
+			
 			BUFFER_BUFFLIST = new HashMap<>();
 			for (String skillInfo : BUFFER_BUFFS.split(";"))
 			{
Index: java/net/sf/l2j/gameserver/model/actor/instance/L2BufferInstance.java
===================================================================
--- java/net/sf/l2j/gameserver/model/actor/instance/L2BufferInstance.java	(revision 5)
+++ java/net/sf/l2j/gameserver/model/actor/instance/L2BufferInstance.java	(working copy)
@@ -27,9 +27,11 @@
 import net.sf.l2j.commons.lang.StringUtil;
 import net.sf.l2j.gameserver.datatables.BufferTable;
 import net.sf.l2j.gameserver.datatables.SkillTable;
+import net.sf.l2j.gameserver.model.L2Skill;
 import net.sf.l2j.gameserver.model.actor.L2Character;
 import net.sf.l2j.gameserver.model.actor.L2Summon;
 import net.sf.l2j.gameserver.model.actor.template.NpcTemplate;
+import net.sf.l2j.gameserver.network.serverpackets.MagicSkillUse;
 import net.sf.l2j.gameserver.network.serverpackets.NpcHtmlMessage;
 
 public class L2BufferInstance extends L2NpcInstance
@@ -42,8 +44,11 @@
 	@Override
 	public void onBypassFeedback(L2PcInstance player, String command)
 	{
 		StringTokenizer st = new StringTokenizer(command, " ");
 		String currentCommand = st.nextToken();
+		int buffid = 0;
 		
 		if (currentCommand.startsWith("menu"))
 		{
@@ -52,13 +57,29 @@
 			html.replace("%objectId%", getObjectId());
 			player.sendPacket(html);
 		}
+		if (currentCommand.startsWith("chat"))
+		{
+			final NpcHtmlMessage html = new NpcHtmlMessage(0);
+			html.setFile(getHtmlPath(getNpcId(), Integer.parseInt(st.nextToken())));
+			html.replace("%objectId%", getObjectId());
+			player.sendPacket(html);
+		}
 		else if (currentCommand.startsWith("cleanup"))
 		{
+                       L2Skill buff;
+                       buff = SkillTable.getInstance().getInfo(1056, 1);
+                       buff.getEffects(this, player);
 			player.stopAllEffectsExceptThoseThatLastThroughDeath();
+			player.broadcastPacket(new MagicSkillUse(this, player, 1056, 1, 5, 0));
 			
 			final L2Summon summon = player.getPet();
 			if (summon != null)
+			{
+                               buff.getEffects(this, summon);
+				summon.broadcastPacket(new MagicSkillUse(this, summon, 1056, 1, 5, 0));
 				summon.stopAllEffectsExceptThoseThatLastThroughDeath();
+			}
+
 			
 			final NpcHtmlMessage html = new NpcHtmlMessage(0);
 			html.setFile(getHtmlPath(getNpcId(), 0));
@@ -69,10 +90,17 @@
 		{
 			player.setCurrentHpMp(player.getMaxHp(), player.getMaxMp());
 			player.setCurrentCp(player.getMaxCp());
+		        L2Skill buff = SkillTable.getInstance().getInfo(1218, 1);
+	                buff.getEffects(this, player);
+			player.broadcastPacket(new MagicSkillUse(this, player, 1218, 1, 5, 0));
 			final L2Summon summon = player.getPet();
 			if (summon != null)
+			{
+                               buff.getEffects(this, player);
+				summon.broadcastPacket(new MagicSkillUse(this, summon, 1218, 1, 5, 0));
 				summon.setCurrentHpMp(summon.getMaxHp(), summon.getMaxMp());
+			}
 			
 			final NpcHtmlMessage html = new NpcHtmlMessage(0);
 			html.setFile(getHtmlPath(getNpcId(), 0));
@@ -103,6 +131,53 @@
 		{
 			showEditSchemeWindow(player, st.nextToken(), st.nextToken());
 		}
+		if (currentCommand.startsWith("getbuff"))
+		{
+			buffid = Integer.parseInt(st.nextToken());
+			int nextWindow = Integer.parseInt(st.nextToken());
+			if (buffid != 0)
+			{
+                               L2Skill buff =SkillTable.getInstance().getInfo(buffid, SkillTable.getInstance().getMaxLevel(buffid));
+                               buff.getEffects(this, player);
+				player.broadcastPacket(new MagicSkillUse(this, player, buffid, SkillTable.getInstance().getMaxLevel(buffid), 0, 0));
+				final NpcHtmlMessage html = new NpcHtmlMessage(0);
+				html.setFile(getHtmlPath(getNpcId(), nextWindow));
+				html.replace("%objectId%", getObjectId());
+				player.sendPacket(html);
+			}
+		}
+		else if (currentCommand.startsWith("fighterSet"))
+		{
+                       int fighterSet[] = Config.FIGHTER_SET_LIST;
+			player.stopAllEffectsExceptThoseThatLastThroughDeath();
+			L2Skill buff ;
+			for (int id: fighterSet)
+			{
+				buff = SkillTable.getInstance().getInfo(id, SkillTable.getInstance().getMaxLevel(id));
+                               buff.getEffects(this, player);
+				player.broadcastPacket(new MagicSkillUse(this, player, id, buff.getLevel(), 0, 0));
+			}
+			final NpcHtmlMessage html = new NpcHtmlMessage(0);
+			html.setFile(getHtmlPath(getNpcId(), 0));
+			html.replace("%objectId%", getObjectId());
+			player.sendPacket(html);
+		}
+		else if (currentCommand.startsWith("mageSet"))
+		{
+                       int mageSet[] = Config.MAGE_SET_LIST;
+			player.stopAllEffectsExceptThoseThatLastThroughDeath();
+			L2Skill buff ;
+                       for (int id: mageSet)
+                        {
+                            buff = SkillTable.getInstance().getInfo(id, SkillTable.getInstance().getMaxLevel(id));
+                            buff.getEffects(this, player);
+                            player.broadcastPacket(new MagicSkillUse(this, player, id, buff.getLevel(), 0, 0));
+                        }
+			final NpcHtmlMessage html = new NpcHtmlMessage(0);
+			html.setFile(getHtmlPath(getNpcId(), 0));
+			html.replace("%objectId%", getObjectId());
+			player.sendPacket(html);
+		}
 		else if (currentCommand.startsWith("skill"))
 		{
 			final String groupType = st.nextToken();
@@ -226,7 +301,7 @@
 		
 		final Map<String, ArrayList<Integer>> schemes = BufferTable.getInstance().getPlayerSchemes(player.getObjectId());
 		if (schemes == null || schemes.isEmpty())
-			sb.append("<font color=\"LEVEL\">You haven't defined any scheme, please go to 'Manage my schemes' and create at least one valid scheme.</font>");
+			sb.append("<center><font color=\"LEVEL\">You haven't defined any scheme</font></center>");
 		else
 		{
 			for (Map.Entry<String, ArrayList<Integer>> scheme : schemes.entrySet())
@@ -254,12 +329,14 @@
 		
 		final Map<String, ArrayList<Integer>> schemes = BufferTable.getInstance().getPlayerSchemes(player.getObjectId());
 		if (schemes == null || schemes.isEmpty())
-			sb.append("<font color=\"LEVEL\">You haven't created any scheme.</font>");
+			sb.append("<center><font color=\"3399CC\">You haven't created any scheme.</font></center>");
 		else
 		{
-			sb.append("<table>");
+			sb.append("<table bgcolor=000000 width =300>");
 			for (Map.Entry<String, ArrayList<Integer>> scheme : schemes.entrySet())
-				StringUtil.append(sb, "<tr><td width=140>", scheme.getKey(), " (", scheme.getValue().size(), " skill(s))</td><td width=60><button value=\"Clear\" action=\"bypass -h npc_%objectId%_clearscheme ", scheme.getKey(), "\" width=55 height=15 back=\"sek.cbui94\" fore=\"sek.cbui92\"></td><td width=60><button value=\"Drop\" action=\"bypass -h npc_%objectId%_deletescheme ", scheme.getKey(), "\" width=55 height=15 back=\"sek.cbui94\" fore=\"sek.cbui92\"></td></tr>");
+				StringUtil.append(sb, "<tr><td width=140><font color=\"3399CC\">", scheme.getKey(), " (", scheme.getValue().size(), " skill(s))</font></td><td width=60><button value=\"Clear\" action=\"bypass -h npc_%objectId%_clearscheme ", scheme.getKey(), "\" width=75 height=15 back=\"L2UI.DefaultButton_click\" fore=\"L2UI.DefaultButton\"></td><td width=60><button value=\"Drop\" action=\"bypass -h npc_%objectId%_deletescheme ", scheme.getKey(), "\" width=75 height=15 back=\"L2UI.DefaultButton_click\" fore=\"L2UI.DefaultButton\"></td></tr>");
 			
 			sb.append("</table>");
 		}
@@ -311,17 +388,17 @@
 	{
 		final Map<String, ArrayList<Integer>> schemes = BufferTable.getInstance().getPlayerSchemes(player.getObjectId());
 		if (schemes == null || schemes.isEmpty())
-			return "Please create at least one scheme.";
+			return "<table bgcolor=000000 width =300><tr><td align=center width=300><font color=\"3399CC\">Please create at least one scheme.</font></td></tr></table>";
 		
 		final StringBuilder sb = new StringBuilder(200);
-		sb.append("<table>");
+		sb.append("<table bgcolor=000000 width =300>");
 		
 		for (Map.Entry<String, ArrayList<Integer>> scheme : schemes.entrySet())
 		{
 			if (schemeName.equalsIgnoreCase(scheme.getKey()))
-				StringUtil.append(sb, "<tr><td width=200>", scheme.getKey(), " (<font color=\"LEVEL\">", scheme.getValue().size(), "</font> / ", Config.BUFFER_MAX_SKILLS, " skill(s))</td></tr>");
+				StringUtil.append(sb, "<tr><td align=center width=300>", scheme.getKey(), " (<font color=\"LEVEL\">", scheme.getValue().size(), "</font> / ", Config.BUFFER_MAX_SKILLS, " skill(s))</td></tr>");
 			else
-				StringUtil.append(sb, "<tr><td width=200><a action=\"bypass -h npc_%objectId%_editschemes none ", scheme.getKey(), "\">", scheme.getKey(), " (", scheme.getValue().size(), " / ", Config.BUFFER_MAX_SKILLS, " skill(s))</a></td></tr>");
+				StringUtil.append(sb, "<tr><td align=center width=300><font color=\"3399CC\"><a action=\"bypass -h npc_%objectId%_editschemes none ", scheme.getKey(), "\">", scheme.getKey(), " (", scheme.getValue().size(), " / ", Config.BUFFER_MAX_SKILLS, " skill(s))</a></font></td></tr>");
 		}
 		
 		sb.append("</table>");
@@ -394,7 +471,7 @@
 	{
 		final List<Integer> skills = BufferTable.getInstance().getScheme(player.getObjectId(), schemeName);
 		if (skills.isEmpty())
-			return "That scheme is empty.";
+			return "<font color=\"3399CC\">That scheme is empty.</font>";
 		
 		final StringBuilder sb = new StringBuilder(500);
 		sb.append("<table>");

Edited by melron
  • Upvote 2
Posted (edited)

With a quick glance, when you do this:
 

   buff = SkillTable.getInstance().getInfo(id, SkillTable.getInstance().getMaxLevel(id));
   MagicSkillUse mgc = new MagicSkillUse(this, player, id, buff.getLevel(), 0, 0);
   SkillTable.getInstance().getInfo(id, buff.getLevel()).getEffects(this, player);
   player.broadcastPacket(mgc);

you do 1 unnecessary call, change the getEffects() call to:

   buff.getEffects(this, player);

or even better:

  buff = SkillTable.getInstance().getInfo(id, SkillTable.getInstance().getMaxLevel(id));
  buff.getEffects(this, player);
  player.broadcastPacket(new MagicSkillUse(this, player, id, buff.getLevel(), 0, 0));
Edited by Versus
Posted (edited)

 

With a quick glance, when you do this:

 

   buff = SkillTable.getInstance().getInfo(id, SkillTable.getInstance().getMaxLevel(id));
   MagicSkillUse mgc = new MagicSkillUse(this, player, id, buff.getLevel(), 0, 0);
   SkillTable.getInstance().getInfo(id, buff.getLevel()).getEffects(this, player);
   player.broadcastPacket(mgc);

you do 1 unnecessary call, change the getEffects() call to:

   buff.getEffects(this, player);

or even better:

  buff = SkillTable.getInstance().getInfo(id, SkillTable.getInstance().getMaxLevel(id));
  buff.getEffects(this, player);
  player.broadcastPacket(new MagicSkillUse(this, player, id, buff.getLevel(), 0, 0));

Thans for your hint! Edited!

Edited by ⏇Melron⏇℠Abs
Posted

[gr] apo ta kalutera shares pou exoun ginei to teleutaio kairo kai einai mia buffer..

 

gl man

[gr] Ευχαριστώ πολύ φίλε μου!

 

Thanks!

Posted (edited)

Buffs with MANUAL description, so old school :D

Hah, there are many players arround who cant understand the buff just with the icon... Sounds !@# but is still usefull this way (my opinion)... :D

Edited by ⏇Melron⏇℠Abs
  • Thanks 1

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

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.




  • Posts

    • the only thing you know how to do is to change drawings inside a lineage2 client and you decide to talk about the IQ of others? hahahaha
    • Web: https://cheatcenter.net/ Counter Strike 2 Nixware Hack With the Nixware cheat, you have powerful software in your hands for exciting battles in Counter-Strike 2! The perfect set of features for Rage and Semi-Rage games will provide you with confidence on the battlefield. Use antiaim to avoid being hit. Customize the world for yourself by adjusting the colors and the sky. Shoot through the walls and use other unique opportunities to defeat your rivals and become the leader of the team! Product Description LEGITBOT FOV Hitboxes Head Neck Chest Stomach Pelvis Smooth Shot delay Kill delay Lock target Lock mouse Draw FOV Disable when Smoke Flash Jump RAGEBOT Aimbot FOV changer Hitscan Head Neck Chest Stomach Pelvis HeadBody point scale Minimal damage Hitchance Force shoot PSilent Antiaim Autoscope Autostop (between shots) Bunnyhop Auto strafer with smooth adjustment Accurate walk ESP Box Glow Skeleton Footsteps Name Weapon name Health Health bar Ammo Chams Ragdoll chams Offscreen ESP Box Minimal and maximum radius customization Minimal and maximum size customization WORLD Bomb esp Timer Damage Name Weapons Icon Name Glow Grenades Color Trajectory Timer Grenade proximity warning SKINS Gloves Seed Paint kit Wear Knifes Seed Paint kit Wear Weapons Seed Paint kit Wear MISC View Model Editor View Model Chams Hand chams Glove chams Sleeve chams Weapon chams Auto Accept Show player money Spectator list World modulation (world, clouds, sky, sun) Spread circle TaserKnife range Hit markerHit effect Aspect ratio Third person REMOVALS Flash Smoke Visual recoil Scope borders Zoom Sniper crosshair check Team intro First person legs Model occlusion Shadows Fog Decals Particles Water effect Lightning  
    • Web: https://cheatcenter.net/ Counter Strike 2 Xone Hack Looking for a legit cheat for Counter-Strike 2? Xone is your perfect choice! Our product provides unsurpassed features that allow you to play legit and at the same time have an advantage over other players. Discover a new level of gaming efficiency with Xone! Product Description AIM Draw fov Draw target Only enemy Only visible Status Smooth Fov Hitbox Compensation Standalone Target switch Trigger Use aimbot Sticky mode Recoil compensation Delay Custom setting for all VISUAL Enable Box Skeleton Head Loot Health Weapon Name Defuser Bomb Visible check MISK Radar Only enemy Color Enemy/Team Scale Size Keybind Spectator list Bomb info  
    • Web: https://cheatcenter.net/ Apex Legends Phoenix Macro We are excited to introduce our new development, Phoenix private macros for Apex Legends. Recently, it has become harder to develop stable and undetectable cheats for Apex, so we decided to add a safer option to our range. Our macros offer a revolutionary solution in the world of Apex scripts and macros. Everything is launched and configured through a convenient menu and works with all weapons and computer mouse models. So, our program is very user-friendly. Phoenix Macros provide you with an advantage in the game while minimizing the risk of your account being banned. In addition, we offer our program at a very affordable price. If you don't want to risk using cheats, then Phoenix Macro is perfect for you! Product Description Weapon recoil control (Apex Macros) Enable - You can enable/disable the macro during the game Weapon - the choice of weapons with which the macro will work Works with all weapons in the game Scopes - works with all scopes in the game Attachments - works with all weapon mods in the game Control X / Y - adjustment of vertical and horizontal recoil Auto-detection of weapons in your arms Auto-detection of weapon modules Hipfire - macro works when you shoot from the hip (not aiming) Legit Mode - is a safer way to control recoil List of supported weapons (Script / Macros for All Weapons) R99 R301 Alternator RE45 Flatline Spitfire C.A.R. Hemlock Rampage Devotion Volt P2020 SCOUT G7 Havoc PDW L-Star w30-30 Nemesis List of supported modules for guns Double Tap Trigger Turbocharger 2x HCOG "Bruiser" 1x-2x Variable Holo 3x HCOG "Ranger" 2x-4x Variable AOG Barrel Stabilizer Laser Sight Add. Script Features (Phoenix Macro) Binds - bind keys to select the desired weapon Autodetection - automatic detection of weapons in hands when holding a key Selector Circle - a convenient window for selecting weapons (in the form of a circle / wheel) Anti OBS - hide the script window and menu on screenshots and when recording via OBS Languages - English, French, German, Italian, Polish, Portuguese (Brazilian), Russian, Spanish and Turkish Use Controller - phoenix macro for apex works with gamepads
  • Topics

×
×
  • Create New...