Axis 25 Опубликовано 20 апреля, 2015 имею исходники феникса. задался вопросом как изменить AI npc Kreed? данный нпц перемещается по локации в стиле ходьбы, а должен бегать. вот скрипт: package core.sunshine.game.ai; import core.sunshine.utilities.ext.scripts.Functions; import core.sunshine.game.model.L2Character; import core.sunshine.game.model.instances.L2NpcInstance; import core.sunshine.utilities.util.Location; import core.sunshine.utilities.util.Rnd; public class Kreed extends DefaultAI { static final Location[] points = { new Location(23436, 11164, -3728), new Location(20256, 11104, -3728), new Location(17330, 13579, -3720), new Location(17415, 13044, -3736), new Location(20153, 12880, -3728), new Location(21621, 13349, -3648), new Location(20686, 10432, -3720), new Location(22426, 10260, -3648), new Location(23436, 11164, -3728) }; private int current_point = -1; private long wait_timeout = 0; private boolean wait = false; public Kreed(L2Character actor) { super(actor); } @Override public boolean isGlobalAI() { return true; } @Override protected boolean thinkActive() { L2NpcInstance actor = getActor(); if (actor == null || actor.isDead()) { return true; } if (_def_think) { doTask(); return true; } if (System.currentTimeMillis() > wait_timeout && (current_point > -1 || Rnd.chance(5))) { if (!wait) { switch (current_point) { case 2: wait_timeout = System.currentTimeMillis() + 15000; wait = true; return true; case 3: wait_timeout = System.currentTimeMillis() + 60000; Functions.npcShout(actor, "The Mass of Darkness will start in a couple of days. Pay more attention to the guard!"); wait = true; return true; } } wait_timeout = 0; wait = false; current_point++; if (current_point >= points.length) { current_point = 0; } addTaskMove(points[current_point]); return true; } if (randomAnimation()) { return true; } return false; } @Override protected void onEvtAttacked(L2Character attacker, int damage) { } @Override protected void onEvtAggression(L2Character target, int aggro) { } } Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
BLaCkSHaRk 45 Опубликовано 20 апреля, 2015 перед addTaskMove добавь actor.setRunning(); 2 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Axis 25 Опубликовано 20 апреля, 2015 спасибо помогло! Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
BLaCkSHaRk 45 Опубликовано 20 апреля, 2015 Не за что, обращайся 2 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
2terege 67 Опубликовано 21 апреля, 2015 (изменено) Не за что, обращайся А может ты добавиш колонку в бд де там задается 2 и 1 правила когда ему бежать иль прост идти и все Вот те на мысль есль что сами думайте делается оч легко Изменено 21 апреля, 2015 пользователем 2terege Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Axis 25 Опубликовано 22 апреля, 2015 к сожалению я не кодер и хз как это сделать, по этому и спрашиваю Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты