Привет!
Может кто-то подскажет, вчера отчаялся писать расширение, которое должно выставлять для NPC параметр FollowTarget, соответственно, заставлять NPC двигаться к персонажу, призвавшему его.
Пытаюсь реализовать агатиона...
Все события и проверки проходятся, но никак не могу понять, как установить followTarget, потому что стандартный setTarget ничего не даёт
Консоль на оба getFollowTarget() выдаёт null (что ожидаемо)
А на isFollowing(), само собой - false
Если смотреть подробнее, как устроен getFollowTarget, то там присутствует тип MoveToRelativeAction, нашел метод moveToRelative(GameObject var1, int var2, int var3), первый параметр ясно - к кому двигаться (GameObject), а вот второй и третий int вообще не понимаю, что это за значения и правильное ли направление я взял для установки followTarget
Может кто-то подскажет, вчера отчаялся писать расширение, которое должно выставлять для NPC параметр FollowTarget, соответственно, заставлять NPC двигаться к персонажу, призвавшему его.
Пытаюсь реализовать агатиона...
Java:
package Simple;
import l2.gameserver.listener.actor.OnMagicUseListener;
import l2.gameserver.listener.actor.npc.OnSpawnListener;
import l2.gameserver.model.Creature;
import l2.gameserver.model.Skill;
import l2.gameserver.model.actor.listener.NpcListenerList;
import l2.gameserver.model.actor.listener.PlayerListenerList;
import l2.gameserver.model.instances.NpcInstance;
import l2.gameserver.scripts.ScriptFile;
public class SimpleCode implements ScriptFile {
@Override
public void onLoad() {
PlayerListenerList.addGlobal(new OnMagicUseListener() {
@Override
public void onMagicUse(Creature creature, Skill skill, Creature creature1, boolean b) {
if(skill.getId() == 100000) {
NpcListenerList.addGlobal(new OnSpawnListener() {
@Override
public void onSpawn(NpcInstance npcInstance) {
if(npcInstance.getNpcId() == skill.getNpcId()) {
System.out.println(npcInstance.getFollowTarget());
npcInstance.setTarget(creature);
npcInstance.moveToRelative(creature, 1, 2);
System.out.println("---------------------------");
System.out.println(npcInstance.getFollowTarget());
System.out.println(npcInstance.isFollowing());
}
}
});
}
}
});
}
@Override
public void onReload() { }
@Override
public void onShutdown() { }
}
Все события и проверки проходятся, но никак не могу понять, как установить followTarget, потому что стандартный setTarget ничего не даёт
Консоль на оба getFollowTarget() выдаёт null (что ожидаемо)
А на isFollowing(), само собой - false
Если смотреть подробнее, как устроен getFollowTarget, то там присутствует тип MoveToRelativeAction, нашел метод moveToRelative(GameObject var1, int var2, int var3), первый параметр ясно - к кому двигаться (GameObject), а вот второй и третий int вообще не понимаю, что это за значения и правильное ли направление я взял для установки followTarget