7 печатей. (Лабиринт)

  • Автор темы Автор темы 1mpulse
  • Дата начала Дата начала

1mpulse

Путник
Пользователь
Сообщения
12
Розыгрыши
0
Репутация
1
Реакции
1
Баллы
0
Всем привет.
проблема в лабиринте 7 печатей (195_SevenSignsSecretRitualofthePriests)
Когда проходишь лабиринт у гвардов очень большой радиус скила, пытался найти ID скила в коде квеста результата 0.
Подскажите пожалуйста как уменьшить радиус агра у НПЦ (или скила)
P.S в xml нашел по ID нпц агр выставил 0, результата не дало.
Сборка emurt hf.
Заранее спасибо!:OnionHead:
 

Всем привет.
проблема в лабиринте 7 печатей (195_SevenSignsSecretRitualofthePriests)
Когда проходишь лабиринт у гвардов очень большой радиус скила, пытался найти ID скила в коде квеста результата 0.
Подскажите пожалуйста как уменьшить радиус агра у НПЦ (или скила)
P.S в xml нашел по ID нпц агр выставил 0, результата не дало.
Сборка emurt hf.
Заранее спасибо!:OnionHead:
Аи смотрите, в скриптах должно быть.
 
package ai;

import l2p.commons.threading.RunnableImpl;
import l2p.gameserver.ThreadPoolManager;
import l2p.gameserver.ai.DefaultAI;
import l2p.gameserver.geodata.GeoEngine;
import l2p.gameserver.model.Creature;
import l2p.gameserver.model.Playable;
import l2p.gameserver.model.Skill;
import l2p.gameserver.model.World;
import l2p.gameserver.model.instances.NpcInstance;
import l2p.gameserver.scripts.Functions;
import l2p.gameserver.tables.SkillTable;
import l2p.gameserver.utils.Location;

/**
* AI NPC для SSQ Dungeon - Если находят чара в радиусе 120, то кричат в чат и
* отправляют на точку старта - Видят и цепляют тех, кто находится в хайде -
* Никогда и никого не атакуют
*
* @author n0nam3
* @date 20/09/2010 19:03
*/
public class GuardofDawn extends DefaultAI {

private static final int _aggrorange = 150;
private static final Skill _skill = SkillTable.getInstance().getInfo(5978, 1);
private Location _locStart = null;
private Location _locEnd = null;
private Location _locTele = null;
private boolean moveToEnd = true;
private boolean noCheckPlayers = false;

public GuardofDawn(NpcInstance actor, Location locationEnd, Location telePoint) {
super(actor);
AI_TASK_ATTACK_DELAY = 200;
setStartPoint(((NpcInstance) actor).getSpawnedLoc()); // точка старта, по сути место спавна.
setEndPoint(locationEnd);
setTelePoint(telePoint);
}

public class Teleportation extends RunnableImpl {

Location _telePoint = null;
Playable _target = null;

public Teleportation(Location telePoint, Playable target) {
_telePoint = telePoint;
_target = target;
}

@Override
public void runImpl() {
_target.teleToLocation(_telePoint);
noCheckPlayers = false;
}
}

@Override
protected boolean thinkActive() {
NpcInstance actor = getActor();

// проверяем игроков вокруг
if (!noCheckPlayers) {
checkAroundPlayers(actor);
}

// если есть задания - делаем их
if (_def_think) {
doTask();
return true;
}

// заданий нет, значит можно давать новое, для этого ставим moveToEnd обратное значение
moveToEnd = !moveToEnd;

// добавляем задачу на движение
if (!moveToEnd) {
addTaskMove(getEndPoint(), true);
} else {
addTaskMove(getStartPoint(), true);
}
doTask();

return true;
}

private boolean checkAroundPlayers(NpcInstance actor) {
for (Playable target : World.getAroundPlayables(actor, _aggrorange, _aggrorange)) {
if (target != null && target.isPlayer() && !target.isInvul() && GeoEngine.canSeeTarget(actor, target, false)) {
actor.doCast(_skill, target, true);
Functions.npcSay(actor, "Intruder! Protect the Priests of Dawn!");
noCheckPlayers = true;
ThreadPoolManager.getInstance().schedule(new Teleportation(getTelePoint(), target), 3000);
return true;
}
}
return false;
}

private void setStartPoint(Location loc) {
_locStart = loc;
}

private void setEndPoint(Location loc) {
_locEnd = loc;
}

private void setTelePoint(Location loc) {
_locTele = loc;
}

private Location getStartPoint() {
return _locStart;
}

private Location getEndPoint() {
return _locEnd;
}

private Location getTelePoint() {
return _locTele;
}

@Override
protected void thinkAttack() {
}

@Override
protected void onIntentionAttack(Creature target) {
}

@Override
protected void onEvtAttacked(Creature attacker, int damage) {
}

@Override
protected void onEvtAggression(Creature attacker, int aggro) {
}

@Override
protected void onEvtClanAttacked(Creature attacked_member, Creature attacker, int damage) {
}
}
Не могу понять где редактировать агрессивность НПЦ.... int _aggrorange = 150 ставил 1.. Результата не дало...
 
если просто отрубить то
private boolean noCheckPlayers = false;
На тру поменяй
 
если просто отрубить то
private boolean noCheckPlayers = false;
На тру поменяй
Спасибо за подсказку, думал на счет этого. Но вопрос остается тот же))) как уменьшить шанс Агра у НПЦ)
Заранее спасибо.
 
Обратите внимание, что данный пользователь заблокирован! Не совершайте с ним никаких сделок! Перейдите в его профиль, чтобы узнать причину блокировки.
Спасибо за подсказку, думал на счет этого. Но вопрос остается тот же))) как уменьшить шанс Агра у НПЦ)
Заранее спасибо.
не забывайте, что там несколько видов нпц.
идем в SSQ > Ai.

private static final int _aggrorange = 150;
private static final Skill _skill = SkillTable.getInstance().getInfo(5978, 1);
private Location _locStart = null;
private Location _locEnd = null;
private Location _locTele = null;
private boolean moveToEnd = true;
private boolean noCheckPlayers = false;
private static final int _aggrorange = 300;
private static final Skill _skill = SkillTable.getInstance().getInfo(5978, 1);
private Location _locTele = null;
private boolean noCheckPlayers = false;
private static final int _aggrorange = 120;
private static final Skill _skill = SkillTable.getInstance().getInfo(5978, 1);
private Location _locTele = null;
private boolean noCheckPlayers = false;
по надобности смотрим сам скилл.
<skill id="5978" levels="1" name="Death Strike" >
<set name="name-ru" val="Удар Тьмой" />
<!-- SSQ skill -->
<set name="icon" val="icon.skill0000" />
<set name="reuseDelay" val="1000" />
<set name="magicLevel" val="85" />
<set name="castRange" val="500" />
<set name="hitTime" val="2000" />
<set name="hitCancelTime" val="500" />
<set name="mpConsume2" val="75" />
<set name="target" val="TARGET_ONE" />
<set name="skillType" val="PDAM" />
<set name="operateType" val="OP_ACTIVE" />
</skill>
меняем значения, которые выделены красным.
 
Назад
Сверху Снизу