 |
|

11.02.2016, 13:48
|
|
Участник форума
Регистрация: 03.02.2016
Сообщений: 148
С нами:
5407316
Репутация:
0
|
|
Сообщение от Visor123
Ты будешь кривляться и дальше. То есть легализация таких вот цирковых выступлений - это собственно легализация и всего этого дерьма.
Поэтому я и обращаю внимание администрации, что нужно либо эту дерьмотему удалить по правилам форума, либо ничего не делать, легализуя любые оскорбления тролей.
Призываю рассмотреть возможность бана Visor123 за клевету и оскорбления.
|
|
|

11.02.2016, 13:48
|
|
Постоянный
Регистрация: 22.06.2015
Сообщений: 766
С нами:
5732336
Репутация:
0
|
|
Сообщение от Mangol
Бан был до 14 числа 19 55. Лично проверял в тот день когда с тебя волонд снял бан.
Я не знаю снял ли Волонд или нет, я обратил внимания его что было написано до 9 февраля, а потом без даты, не ошибка ли это.
То есть ты сейчас просто раздуваешь цирк дальше, уже про бан.
Почему ты не забанил чела, который написал оскорбление в 1 посту? Пост еще на месте, но правда ты стер почему-то более плохие слова. Это же цирк называется, и уже ты выкручиваешься, расскажи, почему ты занил меня за то что я написал оскорбление на оскорбление? Причем я дал возможность висеть оскорблению полгода - то есть это было не сразу, что типа "обое" плохие.
Нет - ты прицепился ко мне и сейчас тоже, прицепись к тем кто оскорбляет меня.
|
|
|

11.02.2016, 13:49
|
|
Участник форума
Регистрация: 03.02.2016
Сообщений: 148
С нами:
5407316
Репутация:
0
|
|
Сообщение от Visor123
Нет - ты прицепился ко мне и сейчас тоже, прицепись к тем кто оскорбляет меня.
Вот только проблема в том, что тебя никто не оскорбляет.
И не поддерживает тоже, кстати.
|
|
|

11.02.2016, 13:50
|
|
Постоянный
Регистрация: 14.06.2015
Сообщений: 910
С нами:
5744218
Репутация:
1488
|
|
Сообщение от Visor123
Ты будешь кривляться и дальше. То есть легализация таких вот цирковых выступлений - это собственно легализация и всего этого дерьма.
Поэтому я и обращаю внимание администрации, что нужно либо эту дерьмотему удалить по правилам форума, либо ничего не делать, легализуя любые оскорбления тролей.
Извини конечно, но надо лукавить, я вчера как раз читал тот чат, и не видел чтобы конкретно velafrys тебя оскорблял. Ты же соответственно в чате писал что делаешь скрины и ждешь администрация(которая куда-то пропала) чтобы показать их, так можно, пожалуйста, эти скрины?
|
|
|

11.02.2016, 13:53
|
|
Постоянный
Регистрация: 22.06.2015
Сообщений: 766
С нами:
5732336
Репутация:
0
|
|
Сообщение от Influence
Извини конечно, но надо лукавить, я вчера как раз читал тот чат, и не видел чтобы конкретно velafrys тебя оскорблял. Ты же соответственно в чате писал что делаешь скрины и ждешь администрация(которая куда-то пропала) чтобы показать их, так можно, пожалуйста, эти скрины?
Речь вообще не о нем, он появился в теме после создания темы. К примеру пусть тебя назовет говнокодером и что он там еще писал, тебе может это нормально, я же не знаю как ты воспринимаешь тролинг и оскорбления.
Я же не виноват, что нет логов чара, кик бы написал, что не пишите в чат, там все равно что написано. Или "чат не модерируется"
|
|
|

11.02.2016, 13:53
|
|
Новичок
Регистрация: 21.01.2010
Сообщений: 0
С нами:
8581120
Репутация:
0
|
|
Сообщение от Visor123
Я не знаю снял ли Волонд или нет, я обратил внимания его что было написано до 9 февраля, а потом без даты, не ошибка ли это.
То есть ты сейчас просто раздуваешь цирк дальше, уже про бан.
Почему ты не забанил чела, который написал оскорбление в 1 посту? Пост еще на месте, но правда ты стер почему-то более плохие слова. Это же цирк называется, и уже ты выкручиваешься, расскажи, почему ты занил меня за то что я написал оскорбление на оскорбление? Причем я дал возможность висеть оскорблению полгода - то есть это было не сразу, что типа "обое" плохие.
Нет - ты прицепился ко мне и сейчас тоже, прицепись к тем кто оскорбляет меня.
Я прицепился с той причиной что ты в данной теме реально "обосрался" ты же такой парень, всех натягиваешь, а тут вдруг тебя натянули по полной. И пытаешься выехать на том что висел пол года, и тебе было побоку.
Я закрывал темы. Ты хотел этой темы продолжение, получи продолжение.
|
|
|

11.02.2016, 13:53
|
|
Участник форума
Регистрация: 03.02.2016
Сообщений: 148
С нами:
5407316
Репутация:
0
|
|
Сообщение от Visor123
Речь вообще не о нем, он появился в теме после создания темы. К примеру пусть тебя назовет говнокодером и что он там еще писал, тебе может это нормально, я же не знаю как ты воспринимаешь тролинг и оскорбления.
Тебя уже второй раз просят представить пруфы оскорблений, говнокодер.
Пруфы будут?
Уходи с форума, уходи с форума или не позиционируй себя как разработчик, раз не можешь терпеть критики. Я не называл тебя говнокодером с первого поста, а вполне вежливо с тобой общался, т.к. причин не было общаться с тобой иначе. А потом ты сам доказал, кто ты такой.
Такие дела.
|
|
|

11.02.2016, 13:54
|
|
Постоянный
Регистрация: 22.06.2015
Сообщений: 766
С нами:
5732336
Репутация:
0
|
|
Сообщение от velafrys
Тебя уже второй раз просят представить пруфы оскорблений, говнокодер.
Пруфы будут?
Вот оскорбление - прошу принять меры.
|
|
|

11.02.2016, 13:57
|
|
Участник форума
Регистрация: 03.02.2016
Сообщений: 148
С нами:
5407316
Репутация:
0
|
|
Сообщение от Visor123
Вот оскорбление - прошу принять меры.
Это не оскорбление, а нарицательное слово. Грубое, конечно, но часто применимое, если "разработчик" этого заслуживает.
У меня нет причин называть кого-то другого в этом треде говнокодером, но если и будут - бьюсь об заклад, кто угодно докажет обратное, и мне станет стыдно.
А вот ты не можешь доказать.
Опровергни тот факт, что ты не говнокодер.
|
|
|

11.02.2016, 13:58
|
|
Новичок
Регистрация: 21.01.2010
Сообщений: 0
С нами:
8581120
Репутация:
0
|
|
Сообщение от velafrys
Это не оскорбление, а нарицательное слово. Грубое, конечно, но часто применимое, если "разработчик" этого заслуживает.
У меня нет причин называть кого-то другого в этом треде говнокодером, но если и будут - бьюсь об заклад, кто угодно докажет обратное, и мне станет стыдно.
А вот ты не можешь доказать.
Опровергни тот факт, что ты не говнокодер.
Код:
Код:
/*
* This program is free software: you can redistribute it and/or modify it under
* the terms of the GNU General Public License as published by the Free Software
* Foundation, either version 3 of the License, or (at your option) any later
* version.
*
* This program is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
* FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
* details.
*
* You should have received a copy of the GNU General Public License along with
* this program. If not, see .
*/
package instances.IceQueenCastle2;
import java.util.Calendar;
import java.util.concurrent.ScheduledFuture;
import ai.group_template.L2AttackableAIScript;
import net.l2emuproject.gameserver.ThreadPoolManager;
import net.l2emuproject.gameserver.ai.CtrlIntention;
import net.l2emuproject.gameserver.datatables.NpcTable;
import net.l2emuproject.gameserver.datatables.SkillTable;
import net.l2emuproject.gameserver.instancemanager.InstanceManager;
import net.l2emuproject.gameserver.instancemanager.ZoneManager;
import net.l2emuproject.gameserver.instancemanager.InstanceManager.InstanceWorld;
import net.l2emuproject.gameserver.model.L2Effect;
import net.l2emuproject.gameserver.model.L2Party;
import net.l2emuproject.gameserver.model.L2Skill;
import net.l2emuproject.gameserver.model.L2Spawn;
import net.l2emuproject.gameserver.model.actor.L2Character;
import net.l2emuproject.gameserver.model.actor.L2Npc;
import net.l2emuproject.gameserver.model.actor.instance.L2DoorInstance;
import net.l2emuproject.gameserver.model.actor.instance.L2MonsterInstance;
import net.l2emuproject.gameserver.model.actor.instance.L2PcInstance;
import net.l2emuproject.gameserver.model.entity.Instance;
import net.l2emuproject.gameserver.model.quest.QuestState;
import net.l2emuproject.gameserver.model.quest.State;
import net.l2emuproject.gameserver.model.zone.L2BossZone;
import net.l2emuproject.gameserver.model.zone.L2Zone;
import net.l2emuproject.gameserver.network.SystemMessageId;
import net.l2emuproject.gameserver.network.serverpackets.ExShowScreenMessage;
import net.l2emuproject.gameserver.network.serverpackets.SystemMessage;
import net.l2emuproject.gameserver.skills.Formulas;
import net.l2emuproject.gameserver.templates.chars.L2NpcTemplate;
import net.l2emuproject.geoserver.model.Location;
import net.l2emuproject.tools.random.Rnd;
/**
*
* @author Visor123
* L2Emu Enterprise Server
*
*/
public class IceQueenCastle2 extends L2AttackableAIScript
{
private static final boolean debug = false;
private static final int INSTANCEID = 139;
private static final String qn = "IceQueenCastle2";
private static final String qnPrev = "10286_ReunionWithSirra";
private static final int PLAYERS_MIN = 10;
private static final int PLAYERS_MAX = 27;
private static int _zoneScriptId = 200010; //script zone for start
private static int _zoneBossId = 12015;
private static L2BossZone _Zone;
private static final Location _enterLoc = new Location(114025, -112300, -11200);
private static final Location _centerLoc = new Location(114722, -114797, -11200);
private static final int[][] _iceKnightLoc = {{113845,-116091,-11168,8264}
,{113381,-115622,-11168,8264}
,{113380,-113978,-11168,-8224}
,{113845,-113518,-11168,-8224}
,{115591,-113516,-11168,-24504}
,{116053,-113981,-11168,-24504}
,{116061,-115611,-11168,24804}
,{115597,-116080,-11168,24804}
,{112942,-115480,-10960,52}
,{112940,-115146,-10960,52}
,{112945,-114453,-10960,52}
,{112945,-114123,-10960,52}
,{116497,-114117,-10960,32724}
,{116499,-114454,-10960,32724}
,{116501,-115145,-10960,32724}
,{116502,-115473,-10960,32724}};
private static final int _maxIceKnigth = 20; //OFF 160
private static final int[][] _iceKnightLocThrone = {{114713,-115109,-11202,16456}
,{114008,-115080,-11202,3568}
,{114422,-115508,-11202,12400}
,{115023,-115508,-11202,20016}
,{115459,-115079,-11202,27936}};
private static final int[] _maxIceKnigthThrone = {12,12,30};//first, second, third
private static final int[][] _iceIceBreathLoc = {{114713,-115109,-11202,16456}
,{114008,-115080,-11202,3568}
,{114422,-115508,-11202,12400}
,{115023,-115508,-11202,20016}
,{115459,-115079,-11202,27936}};
private static final int _maxIceBreath = 10;
private static final int _maxIceStone = 6;
private static final int FreyaOnThrone = 29177;
private static final int Freya = 29179;
private static final int[][] Freya_Skills = {{6274,1},{6275,1},{6276,1},{6277,1},{6278,1},{6279,1},{6280,1},{6282,1},{6283,1},{6284,1},{6285,1}};
private static final int Glacier = 18853;
private static final int Glakias = 25699;
private static final int ArcheryKnight = 18855;
private static final int ArchersBreath = 18854;
/*private static final int FreyaController = 18930;
private static final Location FreyaControllerLoc = new Location(114707,-114793,-11199,0);
private static final int IceElementalController = 18931;
private static final Location IceElementalControllerLoc = new Location(114707,-114795,-11199,0);
private static final int IceCastleController = 18932;
private static final Location IceCastleControllerLoc = new Location(114707,-114797,-11199,0);*/
private static final int[] _zoneSkill = {6437,7};
private static final int Kegor = 18851;
private static final int Jinia = 18850;
private static final int JINIA2 = 32781;
static class Timer implements Runnable
{
@Override
public void run()
{
if (time > 10)
{
world.BossZone.broadcastPacket(new ExShowScreenMessage("00 : "+time, 1500), world.instanceId); //need check
ThreadPoolManager.scheduleGeneral(new Timer(time - 1, world), 1000L);
}
}
private int time;
private FreyaWorld world;
public Timer(int _time, FreyaWorld _world)
{
time = _time;
world = _world;
}
}
private static class FreyaWorld extends InstanceWorld
{
L2AttackableAIScript _quest;
L2Npc Npc_Freya;
L2Npc Npc_Kegor;
L2Npc Npc_Jinia;
L2Npc Npc_Glakias;
L2BossZone BossZone;
int stage = 0;
ScheduledFuture knigthController = null;
int countKnigth = 0;
ScheduledFuture knigthThroneController = null;
int countKnigthThrone = 0;
ScheduledFuture breathController = null;
ScheduledFuture stoneController = null;
int countIceBreath = 0;
int countIceStone = 0;
ScheduledFuture zoneSkillController = null;
ScheduledFuture helpMoveController = null;
public FreyaWorld(Instance inst, L2AttackableAIScript quest)
{
super(inst);
_quest = quest;
}
@Override
public void decayMe()
{
stopHelpMoveController();
stopBreathController();
stopKnigthController();
stopKnigthThroneController();
stopStoneController();
stopZoneSkillController();
super.decayMe();
}
synchronized void decCountKnigth()
{ countKnigth --; }
synchronized void decCountKnigthThrone()
{ countKnigthThrone --; }
synchronized void decCountIceBreath()
{ countIceBreath --; }
synchronized void decCountIceStone()
{ countIceStone --; }
synchronized void incCountKnigth()
{ countKnigth ++; }
synchronized void incCountKnigthThrone()
{ countKnigthThrone ++; }
synchronized void incCountIceBreath()
{ countIceBreath ++; }
synchronized void incCountIceStone()
{ countIceStone ++; }
synchronized void startStoneController()
{
if (stoneController != null)
stoneController.cancel(false);
stoneController = ThreadPoolManager.scheduleGeneralAtFixedRate(new iceStoneController(_quest, this, 3), 1000L, 30000L);
}
synchronized void stopStoneController()
{
if (stoneController != null)
stoneController.cancel(false);
stoneController = null;
}
synchronized void startBreathController()
{
if (breathController != null)
breathController.cancel(false);
breathController = ThreadPoolManager.scheduleGeneralAtFixedRate(new breathController(_quest, this, 3), 1000L, 30000L);
}
synchronized void stopBreathController()
{
if (breathController != null)
breathController.cancel(false);
breathController = null;
}
synchronized void startZoneSkillController()
{
if (zoneSkillController != null)
zoneSkillController.cancel(false);
zoneSkillController = ThreadPoolManager.scheduleGeneralAtFixedRate(new zoneSkillController(_quest, this), 1000L, 10000L);
}
synchronized void stopZoneSkillController()
{
if (zoneSkillController != null)
zoneSkillController.cancel(false);
zoneSkillController = null;
for (L2PcInstance player : getPlayers())
{
L2Effect effects[] = player.getAllEffects();
for (int j = 0; j = 3)
{
party.getCommandChannel().broadcastToChannelMembers(new SystemMessage(2104));
return false;
}
}
if (party.getCommandChannel().getMembers().size() PLAYERS_MAX)
{
party.getCommandChannel().broadcastToChannelMembers(new SystemMessage(2764));
return false;
}
for (L2PcInstance plr : party.getCommandChannel().getMembers())
{
if (InstanceManager.getInstance().getPlayerWorld(plr) != null)
{
party.getCommandChannel().broadcastToChannelMembers(new SystemMessage(SystemMessageId.ALREADY_ENTERED_ANOTHER_INSTANCE_CANT_ENTER));
return false;
}
if (plr.getLevel() Calendar.WEDNESDAY)
result.set(Calendar.DAY_OF_WEEK,Calendar.SATURDAY);
else
{
if (result.get(Calendar.DAY_OF_WEEK) == Calendar.WEDNESDAY)
{
if (result.get(Calendar.HOUR_OF_DAY) 0))
{
//_log.info("onEnterZone: "+ zone.getId() + " Zone Name: "+ zone.getName());
InstanceWorld tmpworld = InstanceManager.getInstance().getWorld(character.getInstanceId());
//_log.info("freya2 onEnterZone tmpworld="+tmpworld.getClass().getCanonicalName());
if (tmpworld != null && tmpworld.templateId == INSTANCEID)
{
//_log.info("onEnterZone tmpworld.templateId="+tmpworld.templateId+" INSTANCEID="+INSTANCEID);
final FreyaWorld world = (FreyaWorld) tmpworld;
//_log.info("zone.getId(): " + zone.getId() + " world.status: " + world.status);
if (zone.getId() == _zoneScriptId && world.status 0)
{
InstanceWorld tmpworld = InstanceManager.getInstance().getWorld(npc.getInstanceId());
if (tmpworld instanceof FreyaWorld)
{
final FreyaWorld world = (FreyaWorld) tmpworld;
if (npc.getNpcId() == FreyaOnThrone && world.status == 1)
{
endStage(world);
world.setStatus(2);
world.stage = 2;
startStage(world);
}
else if (npc.getNpcId() == ArcheryKnight)
{
if (npc.getTag() != null && (Integer)npc.getTag() == 1)
world.decCountKnigthThrone();
else
world.decCountKnigth();
if (world.status >= 2 && world.status = 12)
{
allowBossZone(world);
world.BossZone.broadcastMovie(23, world.instanceId);
stopAll(world);
ThreadPoolManager.scheduleGeneral(new Runnable()
{
@Override
public void run()
{
world.Npc_Glakias = IceQueenCastle2.spawn(Glakias, 114722, -114797, -11200, 16384, world);
startAll(world);
}
}, 7000L);
}
}
}
else if (npc.getNpcId() == ArchersBreath)
{
world.decCountIceBreath();
}
else if (npc.getNpcId() == Glakias && world.status == 12)
{
world.Npc_Glakias = null;
world.setStatus(world.status + 1);
endStage(world);
ThreadPoolManager.scheduleGeneral(new Timer(60, world), 100L);
ThreadPoolManager.scheduleGeneral(new Runnable()
{
@Override
public void run()
{
world.stage = 3;
IceQueenCastle2.startStage(world);
}
}, 60100L);
}
else if (npc.getNpcId() == Freya/* && world.status == 15*/)
{
world.setStatus(16/*world.status + 1*/);
endStage(world);
//complete quest 10286_ReunionWithSirra
for (L2PcInstance player1 : world.getPlayers())
{
if (player1 != null)
{
QuestState qs = player1.getQuestState(qnPrev);
if (qs != null && !qs.isCompleted() && qs.getInt("progress") == 2 && qs.getInt("cond") == 6)
{
qs.set("progress", "3");
qs.set("cond", "7");
qs.playSound("ItemSound.quest_middle");
}
}
}
allowBossZone(world);
world.BossZone.broadcastMovie(19, world.instanceId);
ThreadPoolManager.scheduleGeneral(new Runnable()
{
@Override
public void run()
{
world.setStatus(world.status + 1);
}
}, 16000L);
world.getSelfInstance().setDuration(5); //duration 5 min
}
else if (npc.getNpcId() == Glacier)
{
npc.setDisplayEffect(3);
world.decCountIceStone();
addSpawn(ArchersBreath, npc.getX(), npc.getY(), npc.getZ(), npc.getHeading(), true, 0, false, world.instanceId);
world.incCountIceBreath();
}
}
}
return null;
}
private static void setInstanceReenterTime(InstanceWorld world)
{
if (world != null)
{
try
{
long nextUpdate = generateUpdateTime();
// set instance reenter time for all allowed players
for (L2PcInstance player : world.getPlayers())
{
if (player != null)
InstanceManager.getInstance().setInstanceTime(player.getObjectId(), INSTANCEID, nextUpdate);
}
}
catch (Exception e) {
// TODO: handle exception
}
}
}
@Override
public String onAttack(L2Npc npc, L2PcInstance player, int damage, boolean isPet)
{
if (npc.getInstanceId() > 0)
{
InstanceWorld tmpworld = InstanceManager.getInstance().getWorld(npc.getInstanceId());
if (tmpworld instanceof FreyaWorld && tmpworld.templateId == INSTANCEID)
{
final FreyaWorld world = (FreyaWorld) tmpworld;
if (npc.getNpcId() == Freya && npc.getCurrentHp() = _maxIceBreath) return;
int[] loc = _iceIceBreathLoc[Rnd.get(0, _iceIceBreathLoc.length - 1)];
_quest.addSpawn(ArchersBreath, loc[0], loc[1], loc[2], loc[3], true, 0, false, ww.instanceId);
ww.incCountIceBreath();
}
}
}
}
static class iceStoneController implements Runnable
{
private L2AttackableAIScript _quest;
private FreyaWorld ww;
private int count;
public iceStoneController(L2AttackableAIScript quest, FreyaWorld world, int startCount)
{
_quest = quest;
ww = world;
count = startCount;
}
@Override
public void run()
{
if (ww != null && ww.countIceStone = _maxIceStone) return;
int[] loc = _iceIceBreathLoc[Rnd.get(0, _iceIceBreathLoc.length - 1)];
_quest.addSpawn(Glacier, loc[0], loc[1], loc[2], loc[3], true, 0, false, ww.instanceId);
ww.incCountIceStone();
}
count = 1;
}
}
}
static class zoneSkillController implements Runnable
{
//private L2AttackableAIScript _quest;
private FreyaWorld ww;
public zoneSkillController(L2AttackableAIScript quest, FreyaWorld world)
{
//_quest = quest;
ww = world;
}
@Override
public void run()
{
if (ww != null && ww.countIceStone > 0)
{
int skillLvl = Rnd.get(1, _zoneSkill[1]);
L2Skill skill = SkillTable.getInstance().getInfo(_zoneSkill[0], skillLvl);
for (L2PcInstance player : ww.getPlayers())
{
if (Formulas.calcSkillSuccess(player, player, skill, (byte)0, false, false, false))
skill.getEffects(player, player);
}
}
}
}
static class knigthController implements Runnable
{
private L2AttackableAIScript _quest;
private FreyaWorld ww;
private int count;
public knigthController(L2AttackableAIScript quest, FreyaWorld world, int startCount)
{
_quest = quest;
ww = world;
count = startCount;
}
@Override
public void run()
{
if (ww != null && ww.countKnigth = _maxIceKnigth) return;
int[] loc = _iceKnightLoc[Rnd.get(0, _iceKnightLoc.length - 1)];
L2Npc knight = _quest.addSpawn(ArcheryKnight, loc[0], loc[1], loc[2], loc[3], true, 0, false, ww.instanceId);
if (knight != null)
{
ww.incCountKnigth();
knight.setIsImmobilized(true);
knight.setDisplayEffect(1);
_quest.startQuestTimer("startAggro", 20000L, knight, null);
}
}
}
}
}
static class knigthThroneController implements Runnable
{
private L2AttackableAIScript _quest;
private FreyaWorld ww;
private int count;
public knigthThroneController(L2AttackableAIScript quest, FreyaWorld world, int startCount)
{
_quest = quest;
ww = world;
count = startCount;
}
@Override
public void run()
{
if (ww != null && ww.countKnigthThrone = _maxIceKnigthThrone[ww.stage - 1]) return;
int[] loc = _iceKnightLocThrone[Rnd.get(0, _iceKnightLocThrone.length - 1)];
L2Npc knight = _quest.addSpawn(ArcheryKnight, loc[0], loc[1], loc[2], loc[3], true, 0, false, ww.instanceId);
if (knight != null)
{
knight.setTag((Integer)1);
ww.incCountKnigthThrone();
}
}
}
}
}
static class helpMoveController implements Runnable
{
private L2AttackableAIScript _quest;
private FreyaWorld ww;
public helpMoveController(L2AttackableAIScript quest, FreyaWorld world)
{
_quest = quest;
ww = world;
}
@Override
public void run()
{
if (ww != null)
{
for (L2Npc npc : ww.getNpcs())
{
if (npc != null && npc != ww.Npc_Freya && npc != ww.Npc_Glakias && npc != ww.Npc_Jinia && npc != ww.Npc_Kegor && !npc.isImmobilized() && !npc.isInCombat())
_quest.startQuestTimer("moveTo", Rnd.get(200, 800), npc, null);
}
}
}
}
private static void moveTo(L2Npc npc, Location loc)
{
if (npc != null)
{
npc.setRunning();
npc.getAI().setIntention(CtrlIntention.AI_INTENTION_MOVE_TO, new Location(loc.getX(), loc.getY(), loc.getZ()), true);
if (npc.getSpawn() != null)
{
npc.getSpawn().setLocx(loc.getX());
npc.getSpawn().setLocy(loc.getY());
npc.getSpawn().setLocz(loc.getZ());
}
}
}
@Override
public final String onSpawn(L2Npc npc)
{
if (npc.getNpcId() == Glacier)
{
npc.setDisplayEffect(1);
npc.setIsImmobilized(true);
startQuestTimer("changeEffect", 1900L, npc, null);
}
npc.setIsNoAnimation(true);
return null;
}
@Override
public final String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
{
if (npc != null && npc.getInstanceId() > 0 && InstanceManager.getInstance().getWorld(npc.getInstanceId()) != null && InstanceManager.getInstance().getWorld(npc.getInstanceId()).templateId == INSTANCEID)
{
FreyaWorld world = (FreyaWorld) InstanceManager.getInstance().getWorld(npc.getInstanceId());
if (event.equalsIgnoreCase("changeEffect"))
{
//npc.setIsImmobilized(false);
npc.setDisplayEffect(2);
npc.broadcastFullInfo();
}
else if (event.equalsIgnoreCase("startAggro"))
{
npc.setIsImmobilized(false);
npc.setDisplayEffect(2);
npc.broadcastFullInfo();
}
else if (event.equalsIgnoreCase("moveTo"))
{
if (!npc.isImmobilized() && !npc.isInCombat())
{
if (Rnd.chance100(50) && !world.getPlayers().isEmpty())
{
try
{
L2PcInstance target = world.getSelfInstance().getRandomPlayer();
if (target != null)
{
npc.getAI().setIntention(CtrlIntention.AI_INTENTION_ATTACK, target);
return null;
}
}
catch (Exception e) {
// TODO: handle exception
startQuestTimer("moveTo", 3000L, npc, null);
}
}
Location toLoc = _centerLoc;
if (world.Npc_Glakias != null)
toLoc = world.Npc_Glakias.getLocation();
else if (world.Npc_Freya != null && world.stage != 2)
toLoc = world.Npc_Freya.getLocation();
if (!npc.isInsideRadius(toLoc.getX(), toLoc.getY(), toLoc.getZ(), 500))
moveTo(npc, toLoc);
}
}
}
return null;
}
@Override
public String onTalk(L2Npc npc, L2PcInstance player)
{
int npcId = npc.getNpcId();
if (npcId == JINIA2)
{
enterInstance(npc, player);
}
return "";
}
public IceQueenCastle2(int id, String name, String descr)
{
super(id, name, descr);
addEnterZoneId(_zoneScriptId);
addStartNpc(JINIA2);
addTalkId(JINIA2);
addKillId(FreyaOnThrone);
addKillId(ArcheryKnight);
addSpawnId(ArcheryKnight);
addKillId(ArchersBreath);
addSpawnId(ArchersBreath);
addKillId(Glakias);
addKillId(Freya);
addKillId(Glacier);
addAttackId(Freya);
addAttackId(ArcheryKnight);
addSpawnId(Glacier);
registerSkillsForNpc(Freya, Freya_Skills);
_Zone = (L2BossZone)ZoneManager.getInstance().getZoneById(_zoneBossId);;
}
public static void main(String args[])
{
new IceQueenCastle2(-1, qn, "instances");
}
}
Нет, не говнокодер.
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|