Доброго времени суток всем.
Решил создать скрипт и скилл который должен вызывать через скилл например .testscript, но что-то не получается. Может кто нибудь может помочь советом как правильно сделать или тыкнуть где у меня ошибка?
(Команда вызывается если написать в чат)
вот скрипт команды
вот скрипт как должен скилл вызывать команду
вот скилл
Решил создать скрипт и скилл который должен вызывать через скилл например .testscript, но что-то не получается. Может кто нибудь может помочь советом как правильно сделать или тыкнуть где у меня ошибка?
(Команда вызывается если написать в чат)
вот скрипт команды
package services;
import l2.gameserver.handler.voicecommands.IVoicedCommandHandler;
import l2.gameserver.handler.voicecommands.VoicedCommandHandler;
import l2.gameserver.model.Player;
import l2.gameserver.scripts.ScriptFile;
public class TestVoiceCommand implements IVoicedCommandHandler, ScriptFile {
private static final String[] _commandList = new String[] {
"testscript"
};
@Override
public boolean useVoicedCommand(String command, Player player, String args) {
if (command.equalsIgnoreCase("testscript")) {
if (player != null) {
player.sendMessage("Скрипт работает! Команда .testscript активна.");
}
return true;
}
return false;
}
@Override
public String[] getVoicedCommandList() {
return _commandList;
}
@Override
public void onLoad() {
VoicedCommandHandler.getInstance().registerVoicedCommandHandler(this);
System.out.println("TestVoiceCommand: загружен и зарегистрирован для .testscript");
}
@Override
public void onReload() {
}
@Override
public void onShutdown() {
}
}
вот скрипт как должен скилл вызывать команду
package services;
import l2.gameserver.model.Player;
import l2.gameserver.model.Skill;
import l2.gameserver.scripts.Functions;
import l2.gameserver.scripts.ScriptFile;
import l2.gameserver.handler.voicecommands.VoicedCommandHandler;
import l2.gameserver.handler.voicecommands.IVoicedCommandHandler;
public class InvokeVoiceCommand extends Functions implements ScriptFile {
@Override
public void onLoad() {
System.out.println("✔ InvokeVoiceCommand загружен успешно (handler for skill 9061).");
}
@Override
public void onReload() {}
@Override
public void onShutdown() {}
public void useSkill(Player player, Skill skill) {
if (player == null || skill == null)
return;
player.sendMessage("✔ Скрипт InvokeVoiceCommand вызван.");
String command = "testscript";
IVoicedCommandHandler handler = VoicedCommandHandler.getInstance().getVoicedCommandHandler(command);
if (handler != null) {
handler.useVoicedCommand(command, player, "");
} else {
player.sendMessage("⚠ Команда ." + command + " не найдена.");
}
}
}
вот скилл
<skill id="9061" levels="1" name="Call ACP">
<set name="skillType" val="NOTDONE"/>
<set name="isHandler" val="true"/>
<set name="handlerName" val="TestVoiceCommand"/>
<set name="target" val="TARGET_SELF"/>
<set name="operateType" val="OP_ACTIVE"/>
<set name="icon" val="icon.skill0000"/>
<for/>
</skill>
