Here you go, I shit extension. While the puzzles don’t fit in my head at all, how to throw it out is normal in XML
Вот держите я насрал экстеншен. Пока в голове вообще ни как пазлы не сложатся как выкинуть нормально это в XML нет
Code:
Classic/Legacy revision
Interlude
How to build: https://lucera2.com/threads/how-to-add-your-quests-or-subsystems-to-an-assembly.1406/
Вот держите я насрал экстеншен. Пока в голове вообще ни как пазлы не сложатся как выкинуть нормально это в XML нет
Code:
Classic/Legacy revision
Java:
package services;
import l2.gameserver.listener.actor.player.OnPlayerEnterListener;
import l2.gameserver.model.Player;
import l2.gameserver.model.actor.instances.player.Macro;
import l2.gameserver.model.actor.instances.player.ShortCut;
import l2.gameserver.model.actor.listener.CharListenerList;
import l2.gameserver.network.l2.s2c.MacroUpdateType;
import l2.gameserver.network.l2.s2c.SendMacroList;
import l2.gameserver.network.l2.s2c.ShortCutRegister;
import l2.gameserver.scripts.Functions;
import l2.gameserver.scripts.ScriptFile;
import java.util.ArrayList;
import java.util.List;
public class RegMacros extends Functions implements ScriptFile, OnPlayerEnterListener
{
@Override
public void onPlayerEnter(Player player)
{
if(player.getOnlineTime() == 0)
{
List<Macro.L2MacroCmd> commands = new ArrayList<>();
List<Macro.L2MacroCmd> commands1 = new ArrayList<>();
List<Macro.L2MacroCmd> commands2 = new ArrayList<>();
List<Macro.L2MacroCmd> commands3 = new ArrayList<>();
List<Macro.L2MacroCmd> commands4 = new ArrayList<>();
List<Macro.L2MacroCmd> commands5 = new ArrayList<>();
List<Macro.L2MacroCmd> commands6 = new ArrayList<>();
List<Macro.L2MacroCmd> commands7 = new ArrayList<>();
Macro.L2MacroCmd mc = new Macro.L2MacroCmd(1, 3, 0, 0, ".menu");
Macro.L2MacroCmd mc1 = new Macro.L2MacroCmd(2, 3, 0, 0, ".pa");
Macro.L2MacroCmd mc2 = new Macro.L2MacroCmd(2, 3, 0, 0, ".acp");
Macro.L2MacroCmd mc3 = new Macro.L2MacroCmd(2, 3, 0, 0, ".epic");
Macro.L2MacroCmd mc4 = new Macro.L2MacroCmd(2, 3, 0, 0, ".relog");
Macro.L2MacroCmd mc5 = new Macro.L2MacroCmd(2, 3, 0, 0, ".rb");
Macro.L2MacroCmd mc6 = new Macro.L2MacroCmd(2, 3, 0, 0, ".autofarm");
Macro.L2MacroCmd mc7 = new Macro.L2MacroCmd(2, 3, 0, 0, ".achiv");
commands.add(mc);
commands1.add(mc1);
commands2.add(mc2);
commands3.add(mc3);
commands4.add(mc4);
commands5.add(mc5);
commands6.add(mc6);
commands7.add(mc7);
//Авто фарм - .autofarm
Macro m = new Macro(1, 1000, "MENU", "Open player settings panel", "MENU", commands.toArray(new Macro.L2MacroCmd[commands.size()]));
Macro m1 = new Macro(2, 1000, "PREM", "Check premium status of PA", "PA", commands1.toArray(new Macro.L2MacroCmd[commands.size()]));
Macro m2 = new Macro(3, 1000, "ACP", "Open acp settings panel", "ACP", commands2.toArray(new Macro.L2MacroCmd[commands.size()]));
Macro m3 = new Macro(4, 1000, "EPIC", "Check Epic Boss status", "EPIC", commands3.toArray(new Macro.L2MacroCmd[commands.size()]));
Macro m4 = new Macro(5, 1000, "FPS", "Clear FPS cache", "FPS", commands4.toArray(new Macro.L2MacroCmd[commands.size()]));
Macro m5 = new Macro(6, 1000, "RAID", "Check Boss status", "RAID", commands5.toArray(new Macro.L2MacroCmd[commands.size()]));
Macro m6 = new Macro(7, 1000, "FARM", "Open farming settings panel", "FARM", commands6.toArray(new Macro.L2MacroCmd[commands.size()]));
Macro m7 = new Macro(8, 1000, "ACHI", "Open achievements panel", "ACHIV", commands7.toArray(new Macro.L2MacroCmd[commands.size()]));
player.registerMacro(m);
player.registerMacro(m1);
player.registerMacro(m2);
player.registerMacro(m3);
player.registerMacro(m4);
player.registerMacro(m5);
player.registerMacro(m6);
player.registerMacro(m7);
player.sendPacket(new SendMacroList(MacroUpdateType.ADD, 1, m));
player.sendPacket(new SendMacroList(MacroUpdateType.ADD, 1, m1));
player.sendPacket(new SendMacroList(MacroUpdateType.ADD, 1, m2));
player.sendPacket(new SendMacroList(MacroUpdateType.ADD, 1, m3));
player.sendPacket(new SendMacroList(MacroUpdateType.ADD, 1, m4));
player.sendPacket(new SendMacroList(MacroUpdateType.ADD, 1, m5));
player.sendPacket(new SendMacroList(MacroUpdateType.ADD, 1, m6));
player.sendPacket(new SendMacroList(MacroUpdateType.ADD, 1, m7));
// Slot, Page, Type ( Macro = 4), id (Macro ID), level player, class
ShortCut shortCut = new ShortCut( 0, 2,4,1, 0, player.getClassId().getId());
ShortCut shortCut1 = new ShortCut(1, 2, 4, 2, 0, player.getClassId().getId());
ShortCut shortCut2 = new ShortCut(2, 2, 4, 3, 0, player.getClassId().getId());
ShortCut shortCut3 = new ShortCut(3, 2, 4, 4, 0, player.getClassId().getId());
ShortCut shortCut4 = new ShortCut(4, 2, 4, 5, 0, player.getClassId().getId());
ShortCut shortCut5 = new ShortCut(5, 2, 4, 6, 0, player.getClassId().getId());
ShortCut shortCut6 = new ShortCut(6, 2, 4, 7, 0, player.getClassId().getId());
ShortCut shortCut7 = new ShortCut(7, 2, 4, 8, 0, player.getClassId().getId());
player.sendPacket(new ShortCutRegister(player, shortCut));
player.sendPacket(new ShortCutRegister(player, shortCut1));
player.sendPacket(new ShortCutRegister(player, shortCut2));
player.sendPacket(new ShortCutRegister(player, shortCut3));
player.sendPacket(new ShortCutRegister(player, shortCut4));
player.sendPacket(new ShortCutRegister(player, shortCut5));
player.sendPacket(new ShortCutRegister(player, shortCut6));
player.sendPacket(new ShortCutRegister(player, shortCut7));
player.registerShortCut(shortCut);
player.registerShortCut(shortCut1);
player.registerShortCut(shortCut2);
player.registerShortCut(shortCut3);
player.registerShortCut(shortCut4);
player.registerShortCut(shortCut5);
player.registerShortCut(shortCut6);
player.registerShortCut(shortCut7);
}
}
@Override
public void onLoad()
{
CharListenerList.addGlobal(this);
}
@Override
public void onReload()
{
}
@Override
public void onShutdown()
{
}
}
Interlude
Java:
package services;
import l2.gameserver.listener.actor.player.OnPlayerEnterListener;
import l2.gameserver.model.Player;
import l2.gameserver.model.actor.instances.player.Macro;
import l2.gameserver.model.actor.instances.player.ShortCut;
import l2.gameserver.model.actor.listener.CharListenerList;
import l2.gameserver.network.l2.s2c.ShortCutRegister;
import l2.gameserver.scripts.Functions;
import l2.gameserver.scripts.ScriptFile;
import java.util.ArrayList;
import java.util.List;
public class RegMacros extends Functions implements ScriptFile, OnPlayerEnterListener
{
@Override
public void onPlayerEnter(Player player)
{
if(player.getOnlineTime() == 0)
{
List<Macro.L2MacroCmd> commands = new ArrayList<>();
List<Macro.L2MacroCmd> commands1 = new ArrayList<>();
List<Macro.L2MacroCmd> commands2 = new ArrayList<>();
List<Macro.L2MacroCmd> commands3 = new ArrayList<>();
List<Macro.L2MacroCmd> commands4 = new ArrayList<>();
List<Macro.L2MacroCmd> commands5 = new ArrayList<>();
List<Macro.L2MacroCmd> commands6 = new ArrayList<>();
List<Macro.L2MacroCmd> commands7 = new ArrayList<>();
Macro.L2MacroCmd mc = new Macro.L2MacroCmd(1, 3, 0, 0, ".menu");
Macro.L2MacroCmd mc1 = new Macro.L2MacroCmd(1, 3, 0, 0, ".pa");
Macro.L2MacroCmd mc2 = new Macro.L2MacroCmd(1, 3, 0, 0, ".acp");
Macro.L2MacroCmd mc3 = new Macro.L2MacroCmd(1, 3, 0, 0, ".epic");
Macro.L2MacroCmd mc4 = new Macro.L2MacroCmd(1, 3, 0, 0, ".relog");
Macro.L2MacroCmd mc5 = new Macro.L2MacroCmd(1, 3, 0, 0, ".rb");
Macro.L2MacroCmd mc6 = new Macro.L2MacroCmd(1, 3, 0, 0, ".autofarm");
Macro.L2MacroCmd mc7 = new Macro.L2MacroCmd(1, 3, 0, 0, ".achiv");
commands.add(mc);
commands1.add(mc1);
commands2.add(mc2);
commands3.add(mc3);
commands4.add(mc4);
commands5.add(mc5);
commands6.add(mc6);
commands7.add(mc7);
Macro m = new Macro (1001, 0, "Menu", "Open player settings panel", "MENU", commands.toArray(new Macro.L2MacroCmd[commands.size()]));
Macro m1 = new Macro(1002, 0, "Premium", "Check Premium status of PA", "PA", commands1.toArray(new Macro.L2MacroCmd[commands.size()]));
Macro m2 = new Macro(1003, 0, "Acp", "Open Acp settings panel", "ACP", commands2.toArray(new Macro.L2MacroCmd[commands.size()]));
Macro m3 = new Macro(1004, 0, "Epic Boss", "Check Epic Boss status", "EPIC", commands3.toArray(new Macro.L2MacroCmd[commands.size()]));
Macro m4 = new Macro(1005, 0, "FPS", "Clear FPS cache", "FPS", commands4.toArray(new Macro.L2MacroCmd[commands.size()]));
Macro m5 = new Macro(1006, 0, "Raid Boss", "Check Raid Boss status", "RAID", commands5.toArray(new Macro.L2MacroCmd[commands.size()]));
Macro m6 = new Macro(1007, 0, "Autofarm", "Open Autofarm settings panel", "FARM", commands6.toArray(new Macro.L2MacroCmd[commands.size()]));
Macro m7 = new Macro(1008, 0, "Achievements", "Open Achievements panel", "ACHIV", commands7.toArray(new Macro.L2MacroCmd[commands.size()]));
player.registerMacro(m);
player.registerMacro(m1);
player.registerMacro(m2);
player.registerMacro(m3);
player.registerMacro(m4);
player.registerMacro(m5);
player.registerMacro(m6);
player.registerMacro(m7);
// Slot, Page, Type ( Macro = 4), id (Macro ID), level player, class
ShortCut shortCut = new ShortCut( 0, 2, 4,1001, 0, player.getClassId().getId());
ShortCut shortCut1 = new ShortCut(1, 2, 4,1002, 0, player.getClassId().getId());
ShortCut shortCut2 = new ShortCut(2, 2, 4,1003, 0, player.getClassId().getId());
ShortCut shortCut3 = new ShortCut(3, 2, 4,1004, 0, player.getClassId().getId());
ShortCut shortCut4 = new ShortCut(4, 2, 4,1005, 0, player.getClassId().getId());
ShortCut shortCut5 = new ShortCut(5, 2, 4,1006, 0, player.getClassId().getId());
ShortCut shortCut6 = new ShortCut(6, 2, 4,1007, 0, player.getClassId().getId());
ShortCut shortCut7 = new ShortCut(7, 2, 4,1008, 0, player.getClassId().getId());
player.sendPacket(new ShortCutRegister(player, shortCut));
player.sendPacket(new ShortCutRegister(player, shortCut1));
player.sendPacket(new ShortCutRegister(player, shortCut2));
player.sendPacket(new ShortCutRegister(player, shortCut3));
player.sendPacket(new ShortCutRegister(player, shortCut4));
player.sendPacket(new ShortCutRegister(player, shortCut5));
player.sendPacket(new ShortCutRegister(player, shortCut6));
player.sendPacket(new ShortCutRegister(player, shortCut7));
player.registerShortCut(shortCut);
player.registerShortCut(shortCut1);
player.registerShortCut(shortCut2);
player.registerShortCut(shortCut3);
player.registerShortCut(shortCut4);
player.registerShortCut(shortCut5);
player.registerShortCut(shortCut6);
player.registerShortCut(shortCut7);
}
}
@Override
public void onLoad()
{
CharListenerList.addGlobal(this);
}
@Override
public void onReload()
{
}
@Override
public void onShutdown()
{
}
}
How to build: https://lucera2.com/threads/how-to-add-your-quests-or-subsystems-to-an-assembly.1406/
Last edited: