package handlers.voicedcommandhandlers;
import org.l2jmobius.gameserver.enums.ChatType;
import org.l2jmobius.gameserver.handler.IVoicedCommandHandler;
import org.l2jmobius.gameserver.model.actor.Player;
import org.l2jmobius.gameserver.network.serverpackets.CreatureSay;
public class SetAIO implements IVoicedCommandHandler
{
private static final String[] VOICED_COMMANDS =
{
"setAIO"
};
@Override
public boolean useVoicedCommand(String command, Player activeChar, String target)
{
if (command.startsWith(VOICED_COMMANDS[0]))
{
activeChar.sendPacket(new CreatureSay(null, ChatType.WORLD, "SetAIO", "You have been activate AIO."));
}
return false;
}
@Override
public String[] getVoicedCommandList()
{
return VOICED_COMMANDS;
}
}
Как я понял команду через точку. пример .setaio ?Может сделаешь команду через . Вместо //, и при покупке делаешь запись как конфиги делают, проверяешь есть ли запись и даёшь добро на обработку команды которую благополучно скопируешь из админки
<a action="bypass -h voice .setAIO" width=60 height=21>set AIO</a>
Запихиваем это в data/script/handlers/voicedcommands/Java:package handlers.voicedcommandhandlers; import org.l2jmobius.gameserver.enums.ChatType; import org.l2jmobius.gameserver.handler.IVoicedCommandHandler; import org.l2jmobius.gameserver.model.actor.Player; import org.l2jmobius.gameserver.network.serverpackets.CreatureSay; public class SetAIO implements IVoicedCommandHandler { private static final String[] VOICED_COMMANDS = { "setAIO" }; @Override public boolean useVoicedCommand(String command, Player activeChar, String target) { if (command.startsWith(VOICED_COMMANDS[0])) { activeChar.sendPacket(new CreatureSay(null, ChatType.WORLD, "SetAIO", "You have been activate AIO.")); } return false; } @Override public String[] getVoicedCommandList() { return VOICED_COMMANDS; } }
называем файлик "SetAIO.java" и вставляем содержимое.
Потом заходим в "data/script/handlers/", ищем MasterHandler и вставляем ссылку на класс
Посмотреть вложение 53866
Заходим в игру, и пишем ".setAIO" и получаем красивую надпись
покапался в исходниках мобиуса. данные папки есть в l2j_mobius_clasicЗапихиваем это в data/script/handlers/voicedcommands/Java:package handlers.voicedcommandhandlers; import org.l2jmobius.gameserver.enums.ChatType; import org.l2jmobius.gameserver.handler.IVoicedCommandHandler; import org.l2jmobius.gameserver.model.actor.Player; import org.l2jmobius.gameserver.network.serverpackets.CreatureSay; public class SetAIO implements IVoicedCommandHandler { private static final String[] VOICED_COMMANDS = { "setAIO" }; @Override public boolean useVoicedCommand(String command, Player activeChar, String target) { if (command.startsWith(VOICED_COMMANDS[0])) { activeChar.sendPacket(new CreatureSay(null, ChatType.WORLD, "SetAIO", "You have been activate AIO.")); } return false; } @Override public String[] getVoicedCommandList() { return VOICED_COMMANDS; } }
называем файлик "SetAIO.java" и вставляем содержимое.
Потом заходим в "data/script/handlers/", ищем MasterHandler и вставляем ссылку на класс
Посмотреть вложение 53866
Заходим в игру, и пишем ".setAIO" и получаем красивую надпись
по задумке - выдается макс лвл на чара и топ шмот для каста и колличества маны, после чего чару выдаются все умения усиляющего характера. Но, как я понял, чар не может нормально играть после этого и спустя Н-ное колличество времени у него эти предметы пропадают, вместе с умениями.Что хоть делает эта команда, спавнит с именем и временем, понять не могу
Это превращает персонажа в бафера. тоесть я выдаю на персонажа. //setaio вася 1Что хоть делает эта команда, спавнит с именем и временем, понять не могу
# Система AIO
# ---------------------------------------------------------------------------
# Включить систему AIO
EnableAioSystem = True
# Цвет ника
AllowAioNameColor = True
AioNameColor = 88AA88
# Цвет титула
AllowAioTitleColor = True
AioTitleColor = 88AA88
# Список навыков AIO
# Format : skillid,skilllvl;skillid2,skilllvl2;....skillidn,skilllvln
AioSkills = 1085,3;1304,3;1087,3;1354,1;1062,2;1005,3;1243,6;1045,6;1048,6;\
1311,6;168,3;213,8;1007,3;1309,3;1552,3;1006,3;1229,15;1308,3;1253,3;1284,3;\
1009,3;1310,4;1363,1;1362,1;1397,3;1292,6;1078,6;307,1;276,1;309,1;274,1;275,1;\
272,1;277,1;273,1;311,1;366,1;365,1;310,1;271,1;1242,3;1257,3;1353,3;1391,3;\
1352,1;229,7;228,3;1077,3;1218,33;1059,3;1219,33;1217,33;1388,3;1389,3;1240,3;\
1086,2;1032,3;1073,2;1036,2;1035,4;1068,3;1003,3;1282,2;1356,1;1355,1;1357,33;\
1044,3;1182,3;1191,3;1033,3;1189,3;1259,4;1306,6;234,23;1040,3;364,1;264,1;306,1;\
269,1;270,1;265,1;363,1;349,1;308,1;305,1;304,1;267,1;266,1;268,1;1390,3;1303,2;\
1204,2;1268,4;1413,1;4699,8;4700,8;4703,8
# Aio Buffers может использовать GK?
AllowAioUseGk = False
# Aio Buffers может говорить с класс мастером
AllowAioUseClassMaster = False
# Разрешить AIO в Евентах?
AllowAioInEvents = False
примеры с ЮтубаЧто хоть делает эта команда, спавнит с именем и временем, понять не могу
в данном случае лучше купить у кого-то за 5к руб.примеры с Ютуба
Вы не можете просматривать ссылку пожалуйста воспользуйтесь следующими ссылками Вход или Регистрация
Вы не можете просматривать ссылку пожалуйста воспользуйтесь следующими ссылками Вход или Регистрация
Вы не можете просматривать ссылку пожалуйста воспользуйтесь следующими ссылками Вход или Регистрация
Я бы хотел реализовать как пример 3 или пример 2
Я вроде нашел решение но пока не понял как реализовать htm .в данном случае лучше купить у кого-то за 5к руб.
Как 3 вариант вот тут можно поискать думаю - L2JDev 12.1 Премиум
Импорты кривые походу, и там есть норм баг, у тебя уже на след день будут 80 чары бегать, нет никаких сейвов какой лвл и прочее, просто вывалил 80, пачку скилов,завтра падает статус лвл остаётся скилы тоже, итем можно убрать продать сломатьНе работает
Посмотреть вложение 53868
по этому мне и не нравятся хроники эсенсоподобных. у меня есть классы поддержки в игре PP/SE/EE/ES/Warlock/BD/SWS/А зачем делать лесопед, сделай как есенц у всех есть бафы чем делать окно бафера
Звучит хорошо. НО так как я совсем еще зеленый в java и подобных языках. я не знаю как реализовать.Ну там сделано как квест, создаёшь папку с кв там создаёшь htm в ней линки с ид кв и номером страницы куда хочешь прыгнуть ядро делает проверку условия если все ок вываливает кучу скилов и барахла
package quests.AioSeller;
import org.l2jmobius.Config;
import org.l2jmobius.gameserver.enums.ChatType;
import org.l2jmobius.gameserver.model.actor.Npc;
import org.l2jmobius.gameserver.model.actor.Player;
import org.l2jmobius.gameserver.model.quest.Quest;
import org.l2jmobius.gameserver.model.quest.QuestState;
import org.l2jmobius.gameserver.network.serverpackets.CreatureSay;
import org.l2jmobius.gameserver.network.serverpackets.SocialAction;
/**
* @author TiTaM
*/
public class AioSeller extends Quest
{
// ------------------------------------------------
// Id do Npc
private static final int[] NPC =
{
50009
};
// ------------------------------------------------
// Id da moeda e quantidade para a primeira opçao.
private static final int MOEDA1 = 57;
private static final int COUNT1 = 30000000;
// Dias pra a primeira opçao.
private static final int DIAS1 = 30;
// ------------------------------------------------
// Id da moeda e quantidade para a segunda opçao.
private static final int MOEDA2 = 57;
private static final int COUNT2 = 60000000;
// Dias pra a segunda opçao.
private static final int DIAS2 = 60;
// ------------------------------------------------
// Id da moeda e quantidade para a terceira opçao.
private static final int MOEDA3 = 57;
private static final int COUNT3 = 100000000;
// Dias pra a terceira opçao.
private static final int DIAS3 = 90;
// ------------------------------------------------
public AioSeller(int questid, String name, String descr)
{
super(questid, name);
for (int NPC_ID : NPC)
{
addStartNpc(NPC_ID);
addFirstTalkId(NPC_ID);
addTalkId(NPC_ID);
}
}
@Override
public String onAdvEvent(String event, Npc npc, Player player)
{
QuestState st = player.getQuestState(getName());
String htmltext = "";
int npcId = npc.getNpcId();
if (event.equalsIgnoreCase("1.htm"))
{
return "1.htm";
}
if (event.equalsIgnoreCase("2.htm"))
{
return "2.htm";
}
if (event.equalsIgnoreCase("3.htm"))
{
return "3.htm";
}
if (event.equalsIgnoreCase("4.htm"))
{
return "4.htm";
}
if (event.equalsIgnoreCase("5.htm"))
{
return "5.htm";
}
if (event.equalsIgnoreCase("6.htm"))
{
return "6.htm";
}
if (event.equalsIgnoreCase("7.htm"))
{
return "7.htm";
}
if (event.equalsIgnoreCase("8.htm"))
{
return "8.htm";
}
if (event.equalsIgnoreCase("9.htm"))
{
return "9.htm";
}
if (event.equalsIgnoreCase("10.htm"))
{
return "10.htm";
}
if (event.equalsIgnoreCase("aio_option_1"))
{
if (npcId == NPC[0])
{
if (player.getLevel() > 1)
{
htmltext = "aiolevel.htm";
if (player.isAio())
{
htmltext = "already_isaio.htm";
}
}
else
{
if (st.getQuestItemsCount(MOEDA1) >= COUNT1)
{
st.takeItems(MOEDA1, COUNT1);
player.setAio(true);
player.getAppearance().setNameColor(Config.AIO_NCOLOR);
player.getAppearance().setTitleColor(Config.AIO_TCOLOR);
int daysleft = player.getAioEndTime() <= 0 ? 0 : (int) ((player.getAioEndTime() - System.currentTimeMillis()) / 86400000);
player.setEndTime("aio", daysleft + DIAS1);
player.getInventory().addItem("", 9388, 1, player, null);
player.broadcastPacket(new SocialAction(player.getObjectId(), 16));
player.sendPacket(new CreatureSay(0, ChatType.WHISPER, "Aio System", "Теперь у вас есть статус AIO со специальными способностями, поздравляем!."));
player.getStat().addExp(player.getStat().getExpForLevel(81));
player.rewardAioSkills();
player.sendSkillList();
player.broadcastUserInfo();
htmltext = "win_aio.htm";
}
else
{
htmltext = "no_item.htm";
}
}
}
}
if (event.equalsIgnoreCase("aio_option_2"))
{
if (npcId == NPC[0])
{
if (player.getLevel() > 1)
{
htmltext = "aiolevel.htm";
if (player.isAio())
{
htmltext = "already_isaio.htm";
}
}
else
{
if (st.getQuestItemsCount(MOEDA2) >= COUNT2)
{
st.takeItems(MOEDA2, COUNT2);
player.setAio(true);
player.getAppearance().setNameColor(Config.AIO_NCOLOR);
player.getAppearance().setTitleColor(Config.AIO_TCOLOR);
int daysleft = player.getAioEndTime() <= 0 ? 0 : (int) ((player.getAioEndTime() - System.currentTimeMillis()) / 86400000);
player.setEndTime("aio", daysleft + DIAS2);
player.getInventory().addItem("", 9388, 1, player, null);
player.broadcastPacket(new SocialAction(player.getObjectId(), 16));
player.sendPacket(new CreatureSay(0, ChatType.WHISPER, "Aio System", "Dear player, you have AIO status now with special abilities , congratulations."));
player.getStat().addExp(player.getStat().getExpForLevel(81));
player.rewardAioSkills();
player.sendSkillList();
player.broadcastUserInfo();
htmltext = "win_aio.htm";
}
else
{
htmltext = "no_item.htm";
}
}
}
}
if (event.equalsIgnoreCase("aio_option_3"))
{
if (npcId == NPC[0])
{
if (player.getLevel() > 1)
{
htmltext = "aiolevel.htm";
if (player.isAio())
{
htmltext = "already_isaio.htm";
}
}
else
{
if (st.getQuestItemsCount(MOEDA3) >= COUNT3)
{
st.takeItems(MOEDA3, COUNT3);
player.setAio(true);
player.getAppearance().setNameColor(Config.AIO_NCOLOR);
player.getAppearance().setTitleColor(Config.AIO_TCOLOR);
int daysleft = player.getAioEndTime() <= 0 ? 0 : (int) ((player.getAioEndTime() - System.currentTimeMillis()) / 86400000);
player.setEndTime("aio", daysleft + DIAS3);
player.getInventory().addItem("", 9388, 1, player, null);
player.broadcastPacket(new SocialAction(player.getObjectId(), 16));
player.sendPacket(new CreatureSay(0, ChatType.WHISPER, "Aio System", "Dear player, you have AIO status now with special abilities , congratulations."));
player.getStat().addExp(player.getStat().getExpForLevel(81));
player.rewardAioSkills();
player.sendSkillList();
player.broadcastUserInfo();
htmltext = "win_aio.htm";
}
else
{
htmltext = "no_item.htm";
}
}
}
}
if (event.equalsIgnoreCase("remove_aio"))
{
if (npcId == NPC[0])
{
if (player.isAio())
{
player.setAio(false);
player.setAioEndTime(0);
player.lostAioSkills();
player.getInventory().destroyItemByItemId("", 9388, 1, player, null);
player.getAppearance().setNameColor(0xFFFFFF);
player.getAppearance().setTitleColor(0xFFFF77);
player.broadcastUserInfo();
player.sendSkillList();
player.broadcastUserInfo();
htmltext = "remove_aio.htm";
}
else
{
htmltext = "none.htm";
}
}
return htmltext;
}
st.exitQuest(true);
return htmltext;
}
@Override
public String onFirstTalk(Npc npc, Player player)
{
QuestState st = player.getQuestState(getName());
if (st == null)
{
st = newQuestState(player);
}
String htmltext = "";
int npcId = npc.getNpcId();
if (npcId == NPC[0])
{
htmltext = "1.htm";
}
return htmltext;
}
public static void main(String[] args)
{
new AioSeller(-1, "AioSeller", "custom");
}
}
We use cookies and similar technologies for the following purposes:
Do you accept cookies and these technologies?
We use cookies and similar technologies for the following purposes:
Do you accept cookies and these technologies?