Ir para conteúdo
  • Cadastre-se

Frintezza.java script for aCis 356+


Posts recomendados


Não, estou aguardando o Frintezza oficial deles.

voce fez mais alguma modificação no script?

voce ja tem o frintezza mais atualizado?

to com esses erros.

 

1. ERROR in \Frintezza.java (at line 482)
_Zone.update(frintezza);
^^^^^^
The method update(L2GrandBossInstance) is undefined for the type L2BossZone
----------
2. ERROR in \Frintezza.java (at line 486)
_Zone.update(demon2);
^^^^^^
The method update(L2MonsterInstance) is undefined for the type L2BossZone
----------
3. ERROR in \Frintezza.java (at line 490)
_Zone.update(demon3);
^^^^^^
The method update(L2MonsterInstance) is undefined for the type L2BossZone
----------
4. ERROR in \Frintezza.java (at line 494)
_Zone.update(demon1);
^^^^^^
The method update(L2MonsterInstance) is undefined for the type L2BossZone
----------
5. ERROR in \Frintezza.java (at line 498)
_Zone.update(demon4);
^^^^^^
The method update(L2MonsterInstance) is undefined for the type L2BossZone
----------
6. ERROR in \Frintezza.java (at line 626)
_Zone.update(weakScarlet);
^^^^^^
The method update(L2GrandBossInstance) is undefined for the type L2BossZone
----------
7. ERROR in \Frintezza.java (at line 656)
_Zone.update(portrait2);
^^^^^^
The method update(L2MonsterInstance) is undefined for the type L2BossZone
----------
8. ERROR in \Frintezza.java (at line 661)
_Zone.update(portrait3);
^^^^^^
The method update(L2MonsterInstance) is undefined for the type L2BossZone
----------
9. ERROR in \Frintezza.java (at line 666)
_Zone.update(portrait1);
^^^^^^
The method update(L2MonsterInstance) is undefined for the type L2BossZone
----------
10. ERROR in \Frintezza.java (at line 671)
_Zone.update(portrait4);
^^^^^^
The method update(L2MonsterInstance) is undefined for the type L2BossZone
----------
11. ERROR in \Frintezza.java (at line 808)
_Zone.update(weakScarlet);
^^^^^^
The method update(L2GrandBossInstance) is undefined for the type L2BossZone
----------
12. ERROR in \Frintezza.java (at line 852)
_Zone.update(strongScarlet);
^^^^^^
The method update(L2GrandBossInstance) is undefined for the type L2BossZone
----------
12 problems (12 errors)

FlyingBirds_zps9a0601a7.gif

Link para o comentário
Compartilhar em outros sites

  • 6 months later...

Boa tarde, adaptando para acis 364 Frintezza

 

preciso de ajuda

 

Script esta adaptado porem não esta funcionando bem esta faltando algumas coisas e inicio da quest tbm

 

 

 

 

 

 

 

 

 

 

 

import java.util.ArrayList;

import java.util.Iterator;

import java.util.List;

 

import net.sf.l2j.commons.random.Rnd;

 

import net.sf.l2j.Config;

import net.sf.l2j.gameserver.ai.CtrlIntention;

import net.sf.l2j.gameserver.datatables.DoorTable;

import net.sf.l2j.gameserver.datatables.SkillTable;

import net.sf.l2j.gameserver.instancemanager.GrandBossManager;

import net.sf.l2j.gameserver.instancemanager.ZoneManager;

import net.sf.l2j.gameserver.model.L2CommandChannel;

import net.sf.l2j.gameserver.model.L2Party;

import net.sf.l2j.gameserver.model.L2Skill;

import net.sf.l2j.gameserver.model.actor.L2Attackable;

import net.sf.l2j.gameserver.model.actor.L2Character;

import net.sf.l2j.gameserver.model.actor.L2Npc;

import net.sf.l2j.gameserver.model.actor.instance.L2GrandBossInstance;

import net.sf.l2j.gameserver.model.actor.instance.L2MonsterInstance;

import net.sf.l2j.gameserver.model.actor.instance.L2PcInstance;

import net.sf.l2j.gameserver.model.zone.type.L2BossZone;

import net.sf.l2j.gameserver.network.SystemMessageId;

import net.sf.l2j.gameserver.network.serverpackets.AbstractNpcInfo.NpcInfo;

import net.sf.l2j.gameserver.network.serverpackets.CreatureSay;

import net.sf.l2j.gameserver.network.serverpackets.Earthquake;

import net.sf.l2j.gameserver.network.serverpackets.MagicSkillCanceld;

import net.sf.l2j.gameserver.network.serverpackets.MagicSkillUse;

import net.sf.l2j.gameserver.network.serverpackets.NpcSay;

import net.sf.l2j.gameserver.network.serverpackets.PlaySound;

import net.sf.l2j.gameserver.network.serverpackets.SocialAction;

import net.sf.l2j.gameserver.network.serverpackets.SpecialCamera;

import net.sf.l2j.gameserver.network.serverpackets.SystemMessage;

import net.sf.l2j.gameserver.scripting.scripts.ai.L2AttackableAIScript;

import net.sf.l2j.gameserver.skills.AbnormalEffect;

import net.sf.l2j.gameserver.templates.StatsSet;

/**

* @Addapted Reborn12, Dandilo

*/

public class Frintezza extends L2AttackableAIScript

{

private static final int[][] _invadeLoc =

{

{

174102,

-76039,

-5105

},

{

173235,

-76884,

-5105

},

{

175003,

-76933,

-5105

},

{

174196,

-76190,

-5105

},

{

174013,

-76120,

-5105

},

{

173263,

-75161,

-5105

}

};

 

private static final int[][] _skill =

{

{

5015,

1,

5000

},

{

5015,

4,

5000

},

{

5015,

2,

5000

},

{

5015,

5,

5000

},

{

5018,

1,

10000

},

{

5016,

1,

5000

},

{

5015,

3,

5000

},

{

5015,

6,

5000

},

{

5018,

2,

10000

},

{

5019,

1,

10000

},

{

5016,

1,

5000

}

};

private static final int[][] _mobLoc =

{

{

18328,

172894,

-76019,

-5107,

243

},

{

18328,

174095,

-77279,

-5107,

16216

},

{

18328,

174111,

-74833,

-5107,

49043

},

{

18328,

175344,

-76042,

-5107,

32847

},

{

18330,

173489,

-76227,

-5134,

63565

},

{

18330,

173498,

-75724,

-5107,

58498

},

{

18330,

174365,

-76745,

-5107,

22424

},

{

18330,

174570,

-75584,

-5107,

31968

},

{

18330,

174613,

-76179,

-5107,

31471

},

{

18332,

173620,

-75981,

-5107,

4588

},

{

18332,

173630,

-76340,

-5107,

62454

},

{

18332,

173755,

-75613,

-5107,

57892

},

{

18332,

173823,

-76688,

-5107,

2411

},

{

18332,

174000,

-75411,

-5107,

54718

},

{

18332,

174487,

-75555,

-5107,

33861

},

{

18332,

174517,

-76471,

-5107,

21893

},

{

18332,

174576,

-76122,

-5107,

31176

},

{

18332,

174600,

-75841,

-5134,

35927

},

{

18329,

173481,

-76043,

-5107,

61312

},

{

18329,

173539,

-75678,

-5107,

59524

},

{

18329,

173584,

-76386,

-5107,

3041

},

{

18329,

173773,

-75420,

-5107,

51115

},

{

18329,

173777,

-76650,

-5107,

12588

},

{

18329,

174585,

-76510,

-5107,

21704

},

{

18329,

174623,

-75571,

-5107,

40141

},

{

18329,

174744,

-76240,

-5107,

29202

},

{

18329,

174769,

-75895,

-5107,

29572

},

{

18333,

173861,

-76011,

-5107,

383

},

{

18333,

173872,

-76461,

-5107,

8041

},

{

18333,

173898,

-75668,

-5107,

51856

},

{

18333,

174422,

-75689,

-5107,

42878

},

{

18333,

174460,

-76355,

-5107,

27311

},

{

18333,

174483,

-76041,

-5107,

30947

},

{

18331,

173515,

-76184,

-5107,

6971

},

{

18331,

173516,

-75790,

-5134,

3142

},

{

18331,

173696,

-76675,

-5107,

6757

},

{

18331,

173766,

-75502,

-5134,

60827

},

{

18331,

174473,

-75321,

-5107,

37147

},

{

18331,

174493,

-76505,

-5107,

34503

},

{

18331,

174568,

-75654,

-5134,

41661

},

{

18331,

174584,

-76263,

-5107,

31729

},

{

18339,

173892,

-81592,

-5123,

50849

},

{

18339,

173958,

-81820,

-5123,

7459

},

{

18339,

174128,

-81805,

-5150,

21495

},

{

18339,

174245,

-81566,

-5123,

41760

},

{

18334,

173264,

-81529,

-5072,

1646

},

{

18334,

173265,

-81656,

-5072,

441

},

{

18334,

173267,

-81889,

-5072,

0

},

{

18334,

173271,

-82015,

-5072,

65382

},

{

18334,

174867,

-81655,

-5073,

32537

},

{

18334,

174868,

-81890,

-5073,

32768

},

{

18334,

174869,

-81485,

-5073,

32315

},

{

18334,

174871,

-82017,

-5073,

33007

},

{

18335,

173074,

-80817,

-5107,

8353

},

{

18335,

173128,

-82702,

-5107,

5345

},

{

18335,

173181,

-82544,

-5107,

65135

},

{

18335,

173191,

-80981,

-5107,

6947

},

{

18335,

174859,

-80889,

-5134,

24103

},

{

18335,

174924,

-82666,

-5107,

38710

},

{

18335,

174947,

-80733,

-5107,

22449

},

{

18335,

175096,

-82724,

-5107,

42205

},

{

18336,

173435,

-80512,

-5107,

65215

},

{

18336,

173440,

-82948,

-5107,

417

},

{

18336,

173443,

-83120,

-5107,

1094

},

{

18336,

173463,

-83064,

-5107,

286

},

{

18336,

173465,

-80453,

-5107,

174

},

{

18336,

173465,

-83006,

-5107,

2604

},

{

18336,

173468,

-82889,

-5107,

316

},

{

18336,

173469,

-80570,

-5107,

65353

},

{

18336,

173469,

-80628,

-5107,

166

},

{

18336,

173492,

-83121,

-5107,

394

},

{

18336,

173493,

-80683,

-5107,

0

},

{

18336,

173497,

-80510,

-5134,

417

},

{

18336,

173499,

-82947,

-5107,

0

},

{

18336,

173521,

-83063,

-5107,

316

},

{

18336,

173523,

-82889,

-5107,

128

},

{

18336,

173524,

-80627,

-5134,

65027

},

{

18336,

173524,

-83007,

-5107,

0

},

{

18336,

173526,

-80452,

-5107,

64735

},

{

18336,

173527,

-80569,

-5134,

65062

},

{

18336,

174602,

-83122,

-5107,

33104

},

{

18336,

174604,

-82949,

-5107,

33184

},

{

18336,

174609,

-80514,

-5107,

33234

},

{

18336,

174609,

-80684,

-5107,

32851

},

{

18336,

174629,

-80627,

-5107,

33346

},

{

18336,

174632,

-80570,

-5107,

32896

},

{

18336,

174632,

-83066,

-5107,

32768

},

{

18336,

174635,

-82893,

-5107,

33594

},

{

18336,

174636,

-80456,

-5107,

32065

},

{

18336,

174639,

-83008,

-5107,

33057

},

{

18336,

174660,

-80512,

-5107,

33057

},

{

18336,

174661,

-83121,

-5107,

32768

},

{

18336,

174663,

-82948,

-5107,

32768

},

{

18336,

174664,

-80685,

-5107,

32676

},

{

18336,

174687,

-83008,

-5107,

32520

},

{

18336,

174691,

-83066,

-5107,

32961

},

{

18336,

174692,

-80455,

-5107,

33202

},

{

18336,

174692,

-80571,

-5107,

32768

},

{

18336,

174693,

-80630,

-5107,

32994

},

{

18336,

174693,

-82889,

-5107,

32622

},

{

18337,

172837,

-82382,

-5107,

58363

},

{

18337,

172867,

-81123,

-5107,

64055

},

{

18337,

172883,

-82495,

-5107,

64764

},

{

18337,

172916,

-81033,

-5107,

7099

},

{

18337,

172940,

-82325,

-5107,

58998

},

{

18337,

172946,

-82435,

-5107,

58038

},

{

18337,

172971,

-81198,

-5107,

14768

},

{

18337,

172992,

-81091,

-5107,

9438

},

{

18337,

173032,

-82365,

-5107,

59041

},

{

18337,

173064,

-81125,

-5107,

5827

},

{

18337,

175014,

-81173,

-5107,

26398

},

{

18337,

175061,

-82374,

-5107,

43290

},

{

18337,

175096,

-81080,

-5107,

24719

},

{

18337,

175169,

-82453,

-5107,

37672

},

{

18337,

175172,

-80972,

-5107,

32315

},

{

18337,

175174,

-82328,

-5107,

41760

},

{

18337,

175197,

-81157,

-5107,

27617

},

{

18337,

175245,

-82547,

-5107,

40275

},

{

18337,

175249,

-81075,

-5107,

28435

},

{

18337,

175292,

-82432,

-5107,

42225

},

{

18338,

173014,

-82628,

-5107,

11874

},

{

18338,

173033,

-80920,

-5107,

10425

},

{

18338,

173095,

-82520,

-5107,

49152

},

{

18338,

173115,

-80986,

-5107,

9611

},

{

18338,

173144,

-80894,

-5107,

5345

},

{

18338,

173147,

-82602,

-5107,

51316

},

{

18338,

174912,

-80825,

-5107,

24270

},

{

18338,

174935,

-80899,

-5107,

18061

},

{

18338,

175016,

-82697,

-5107,

39533

},

{

18338,

175041,

-80834,

-5107,

25420

},

{

18338,

175071,

-82549,

-5107,

39163

},

{

18338,

175154,

-82619,

-5107,

36345

}

};

private static final int SCARLET1 = 29046;

private static final int SCARLET2 = 29047;

private static final int FRINTEZZA = 29045;

private static final int GUIDE = 32011;

private static final int CUBE = 29061;

// Frintezza Status Tracking :

private static final byte DORMANT = 0; // Frintezza is spawned and no one has entered yet. Entry is unlocked

private static final byte WAITING = 1; // Frintezza is spawend and someone has entered, triggering a 30 minute window for additional people to enter

// before he unleashes his attack. Entry is unlocked

private static final byte FIGHTING = 2; // Frintezza is engaged in battle, annihilating his foes. Entry is locked

private static final byte DEAD = 3; // Frintezza has been killed. Entry is locked

 

private static long _LastAction = 0;

private static int _Angle = 0;

private static int _Heading = 0;

private static int _LocCycle = 0;

private static int _Bomber = 0;

private static int _CheckDie = 0;

private static int _OnCheck = 0;

private static int _OnSong = 0;

private static int _Abnormal = 0;

private static int _OnMorph = 0;

private static int _Scarlet_x = 0;

private static int _Scarlet_y = 0;

private static int _Scarlet_z = 0;

private static int _Scarlet_h = 0;

private static int _SecondMorph = 0;

private static int _ThirdMorph = 0;

private static int _KillHallAlarmDevice = 0;

private static int _KillDarkChoirPlayer = 0;

private static int _KillDarkChoirCaptain = 0;

 

private static L2BossZone _Zone = ZoneManager.getInstance().getZoneById(110011, L2BossZone.class);

private L2GrandBossInstance frintezza, weakScarlet, strongScarlet, activeScarlet;

private L2MonsterInstance demon1, demon2, demon3, demon4, portrait1, portrait2, portrait3, portrait4;

private L2Npc _frintezzaDummy, _overheadDummy, _portraitDummy1, _portraitDummy3, _scarletDummy;

private static List<L2PcInstance> _PlayersInside = new ArrayList<>();

private static List<L2Npc> _Room1Mobs = new ArrayList<>();

private static List<L2Npc> _Room2Mobs = new ArrayList<>();

private static List<L2Attackable> Minions = new ArrayList<>();

// Boss: Frintezza

public Frintezza()

{

super("ai/individual");

int[] mob =

{

SCARLET1,

SCARLET2,

FRINTEZZA,

18328,

18329,

18330,

18331,

18332,

18333,

18334,

18335,

18336,

18337,

18338,

18339,

29048,

29049,

29050,

29051

};

 

addStartNpc(GUIDE);

addTalkId(GUIDE);

addStartNpc(CUBE);

addTalkId(CUBE);

StatsSet info = GrandBossManager.getInstance().getStatsSet(FRINTEZZA);

int status = GrandBossManager.getInstance().getBossStatus(FRINTEZZA);

if (status == DEAD)

{

long temp = (info.getLong("respawn_time") - System.currentTimeMillis());

if (temp > 0)

startQuestTimer("frintezza_unlock", temp, null, null, false);

else

GrandBossManager.getInstance().setBossStatus(FRINTEZZA, DORMANT);

}

else if (status != DORMANT)

GrandBossManager.getInstance().setBossStatus(FRINTEZZA, DORMANT);

 

// tempfix for messed door cords reb12

// with

for (int i = 25150051; i < 25150059; i++)

DoorTable.getInstance().getDoor(i).getRegion();

}

@Override

public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)

{

long temp = 0;

if (event.equalsIgnoreCase("waiting"))

{

startQuestTimer("close", 27000, npc, null, false);

startQuestTimer("camera_1", 30000, npc, null, false);

_Zone.broadcastPacket(new Earthquake(174232, -88020, -5116, 45, 27));

}

else if (event.equalsIgnoreCase("room1_spawn"))

{

CreatureSay cs = new CreatureSay(0, 1, "Hall Alarm Device", "Intruders! Sound the alarm!");

_Zone.broadcastPacket(cs);

for (int i = 0; i <= 17; i++)

{

L2Npc mob = addSpawn(_mobLoc[0], _mobLoc[1], _mobLoc[2], _mobLoc[3], _mobLoc[4], false, 0, false);

_Room1Mobs.add(mob);

}

}

else if (event.equalsIgnoreCase("room1_spawn2"))

{

for (int i = 18; i <= 26; i++)

{

L2Npc mob = addSpawn(_mobLoc[0], _mobLoc[1], _mobLoc[2], _mobLoc[3], _mobLoc[4], false, 0, false);

_Room1Mobs.add(mob);

}

}

else if (event.equalsIgnoreCase("room1_spawn3"))

{

for (int i = 27; i <= 32; i++)

{

L2Npc mob = addSpawn(_mobLoc[0], _mobLoc[1], _mobLoc[2], _mobLoc[3], _mobLoc[4], false, 0, false);

_Room1Mobs.add(mob);

}

}

else if (event.equalsIgnoreCase("room1_spawn4"))

{

for (int i = 33; i <= 40; i++)

{

L2Npc mob = addSpawn(_mobLoc[0], _mobLoc[1], _mobLoc[2], _mobLoc[3], _mobLoc[4], false, 0, false);

_Room1Mobs.add(mob);

}

}

else if (event.equalsIgnoreCase("room2_spawn"))

{

for (int i = 41; i <= 44; i++)

{

L2Npc mob = addSpawn(_mobLoc[0], _mobLoc[1], _mobLoc[2], _mobLoc[3], _mobLoc[4], false, 0, false);

_Room2Mobs.add(mob);

}

}

else if (event.equalsIgnoreCase("room2_spawn2"))

{

for (int i = 45; i <= 131; i++)

{

L2Npc mob = addSpawn(_mobLoc[0], _mobLoc[1], _mobLoc[2], _mobLoc[3], _mobLoc[4], false, 0, false);

_Room2Mobs.add(mob);

}

}

else if (event.equalsIgnoreCase("room1_del"))

{

for (L2Npc mob : _Room1Mobs)

{

if (mob != null)

mob.deleteMe();

}

_Room1Mobs.clear();

}

else if (event.equalsIgnoreCase("room2_del"))

{

for (L2Npc mob : _Room2Mobs)

{

if (mob != null)

mob.deleteMe();

}

_Room2Mobs.clear();

}

else if (event.equalsIgnoreCase("room3_del"))

{

if (demon1 != null)

demon1.deleteMe();

if (demon2 != null)

demon2.deleteMe();

if (demon3 != null)

demon3.deleteMe();

if (demon4 != null)

demon4.deleteMe();

if (portrait1 != null)

portrait1.deleteMe();

if (portrait2 != null)

portrait2.deleteMe();

if (portrait3 != null)

portrait3.deleteMe();

if (portrait4 != null)

portrait4.deleteMe();

if (frintezza != null)

frintezza.deleteMe();

if (weakScarlet != null)

weakScarlet.deleteMe();

if (strongScarlet != null)

strongScarlet.deleteMe();

 

demon1 = null;

demon2 = null;

demon3 = null;

demon4 = null;

portrait1 = null;

portrait2 = null;

portrait3 = null;

portrait4 = null;

frintezza = null;

weakScarlet = null;

strongScarlet = null;

activeScarlet = null;

}

else if (event.equalsIgnoreCase("clean"))

{

_LastAction = 0;

_LocCycle = 0;

_CheckDie = 0;

_OnCheck = 0;

_Abnormal = 0;

_OnMorph = 0;

_SecondMorph = 0;

_ThirdMorph = 0;

_KillHallAlarmDevice = 0;

_KillDarkChoirPlayer = 0;

_KillDarkChoirCaptain = 0;

_PlayersInside.clear();

}

else if (event.equalsIgnoreCase("close"))

{

for (int i = 25150051; i <= 25150058; i++)

DoorTable.getInstance().getDoor(i).closeMe();

for (int i = 25150061; i <= 25150070; i++)

DoorTable.getInstance().getDoor(i).closeMe();

 

DoorTable.getInstance().getDoor(25150042).closeMe();

DoorTable.getInstance().getDoor(25150043).closeMe();

DoorTable.getInstance().getDoor(25150045).closeMe();

DoorTable.getInstance().getDoor(25150046).closeMe();

}

else if (event.equalsIgnoreCase("loc_check"))

{

if (GrandBossManager.getInstance().getBossStatus(FRINTEZZA) == FIGHTING)

{

if (!_Zone.isInsideZone(npc))

npc.teleToLocation(174232, -88020, -5116, 0);

if (npc.getX() < 171932 || npc.getX() > 176532 || npc.getY() < -90320 || npc.getY() > -85720 || npc.getZ() < -5130)

npc.teleToLocation(174232, -88020, -5116, 0);

}

}

else if (event.equalsIgnoreCase("camera_1"))

{

GrandBossManager.getInstance().setBossStatus(29045, 2);

_frintezzaDummy = addSpawn(29052, 0x2a8a0, 0xfffea133, -5022, 16048, false, 0L, false);

_frintezzaDummy.setIsInvul(false);

_frintezzaDummy.setIsImmobilized(false);

_overheadDummy = addSpawn(29052, 0x2a898, 0xfffea82c, -5110, 16384, false, 0L, false);

_overheadDummy.setIsInvul(false);

_overheadDummy.setIsImmobilized(false);

_overheadDummy.setCollisionHeight(600);

_Zone.broadcastPacket(new NpcInfo(_overheadDummy, null));

_portraitDummy1 = addSpawn(29052, 0x2a1a2, 0xfffea8ae, -5100, 16048, false, 0L, false);

_portraitDummy1.setIsImmobilized(false);

_portraitDummy1.setIsInvul(false);

_portraitDummy3 = addSpawn(29052, 0x2af8c, 0xfffea8ae, -5100, 16048, false, 0L, false);

_portraitDummy3.setIsImmobilized(false);

_portraitDummy3.setIsInvul(false);

_scarletDummy = addSpawn(29053, 0x2a898, 0xfffea82c, -5110, 16384, false, 0L, false);

_scarletDummy.setIsInvul(false);

_scarletDummy.setIsImmobilized(false);

startQuestTimer("stop_pc", 0L, npc, null, false);

startQuestTimer("camera_2", 1000L, _overheadDummy, null, false);

}

else if (event.equalsIgnoreCase("camera_2"))

{

_Zone.broadcastPacket(new SpecialCamera(_overheadDummy.getObjectId(), 0, 75, -89, 0, 100, 0, 0, 1, 0));

startQuestTimer("camera_2b", 0L, _overheadDummy, null, false);

}

else if (event.equalsIgnoreCase("camera_2b"))

{

_Zone.broadcastPacket(new SpecialCamera(_overheadDummy.getObjectId(), 0, 75, -89, 0, 100, 0, 0, 1, 0));

startQuestTimer("camera_3", 0L, _overheadDummy, null, false);

}

else if (event.equalsIgnoreCase("camera_3"))

{

_Zone.broadcastPacket(new SpecialCamera(_overheadDummy.getObjectId(), 300, 90, -10, 6500, 7000, 0, 0, 1, 0));

frintezza = (L2GrandBossInstance) addSpawn(29045, 0x2a8a0, 0xfffea133, -5022, 16048, false, 0L, false);

GrandBossManager.getInstance().addBoss(frintezza);

frintezza.setIsImmobilized(true);

frintezza.setIsInvul(true);

frintezza.disableAllSkills();

_Zone.updateKnownList(frintezza);

demon2 = (L2MonsterInstance) addSpawn(29051, 0x2af04, 0xfffea577, -5100, 28205, false, 0L, false);

demon2.setIsImmobilized(true);

demon2.disableAllSkills();

_Zone.updateKnownList(demon2);

demon3 = (L2MonsterInstance) addSpawn(29051, 0x2a240, 0xfffea582, -5100, 64817, false, 0L, false);

demon3.setIsImmobilized(true);

demon3.disableAllSkills();

_Zone.updateKnownList(demon3);

demon1 = (L2MonsterInstance) addSpawn(29050, 0x2aed9, 0xfffeab83, -5100, 35048, false, 0L, false);

demon1.setIsImmobilized(true);

demon1.disableAllSkills();

_Zone.updateKnownList(demon1);

demon4 = (L2MonsterInstance) addSpawn(29050, 0x2a25a, 0xfffeab83, -5100, 57730, false, 0L, false);

demon4.setIsImmobilized(true);

demon4.disableAllSkills();

_Zone.updateKnownList(demon4);

startQuestTimer("camera_4", 6500L, _overheadDummy, null, false);

}

else if (event.equalsIgnoreCase("camera_4"))

{

_Zone.broadcastPacket(new SpecialCamera(_frintezzaDummy.getObjectId(), 1800, 90, 8, 6500, 7000, 0, 0, 1, 0));

startQuestTimer("camera_5", 900L, _frintezzaDummy, null, false);

}

else if (event.equalsIgnoreCase("camera_5"))

{

_Zone.broadcastPacket(new SpecialCamera(_frintezzaDummy.getObjectId(), 140, 90, 10, 2500, 4500, 0, 0, 1, 0));

startQuestTimer("camera_5b", 4000L, _frintezzaDummy, null, false);

}

else if (event.equalsIgnoreCase("camera_5b"))

{

_Zone.broadcastPacket(new SpecialCamera(frintezza.getObjectId(), 40, 75, -10, 0, 1000, 0, 0, 1, 0));

startQuestTimer("camera_6", 0L, frintezza, null, false);

}

else if (event.equalsIgnoreCase("camera_6"))

{

_Zone.broadcastPacket(new SpecialCamera(frintezza.getObjectId(), 40, 75, -10, 0, 12000, 0, 0, 1, 0));

startQuestTimer("camera_7", 1350L, frintezza, null, false);

}

else if (event.equalsIgnoreCase("camera_7"))

{

_Zone.broadcastPacket(new SocialAction(frintezza, 2));

startQuestTimer("camera_8", 7000L, frintezza, null, false);

}

else if (event.equalsIgnoreCase("camera_8"))

{

startQuestTimer("camera_9", 1000L, frintezza, null, false);

_frintezzaDummy.deleteMe();

_frintezzaDummy = null;

}

else if (event.equalsIgnoreCase("camera_9"))

{

_Zone.broadcastPacket(new SocialAction(demon2, 1));

_Zone.broadcastPacket(new SocialAction(demon3, 1));

startQuestTimer("camera_9b", 400L, frintezza, null, false);

}

else if (event.equalsIgnoreCase("camera_9b"))

{

_Zone.broadcastPacket(new SocialAction(demon1, 1));

_Zone.broadcastPacket(new SocialAction(demon4, 1));

Iterator<L2Character> i$ = _Zone.getCharactersInside().iterator();

do

{

if (!i$.hasNext())

break;

@SuppressWarnings("cast")

L2Character pc = (L2Character) i$.next();

if (pc instanceof L2PcInstance)

if (pc.getX() < 0x2a898)

pc.broadcastPacket(new SpecialCamera(_portraitDummy1.getObjectId(), 1000, 118, 0, 0, 1000, 0, 0, 1, 0));

else

pc.broadcastPacket(new SpecialCamera(_portraitDummy3.getObjectId(), 1000, 62, 0, 0, 1000, 0, 0, 1, 0));

}

while (true);

startQuestTimer("camera_9c", 0L, frintezza, null, false);

}

else if (event.equalsIgnoreCase("camera_9c"))

{

Iterator<L2Character> i$ = _Zone.getCharactersInside().iterator();

do

{

if (!i$.hasNext())

break;

@SuppressWarnings("cast")

L2Character pc = (L2Character) i$.next();

if (pc instanceof L2PcInstance)

if (pc.getX() < 0x2a898)

pc.broadcastPacket(new SpecialCamera(_portraitDummy1.getObjectId(), 1000, 118, 0, 0, 10000, 0, 0, 1, 0));

else

pc.broadcastPacket(new SpecialCamera(_portraitDummy3.getObjectId(), 1000, 62, 0, 0, 10000, 0, 0, 1, 0));

}

while (true);

startQuestTimer("camera_10", 2000L, frintezza, null, false);

}

else if (event.equalsIgnoreCase("camera_10"))

{

_Zone.broadcastPacket(new SpecialCamera(frintezza.getObjectId(), 240, 90, 0, 0, 1000, 0, 0, 1, 0));

startQuestTimer("camera_11", 0L, frintezza, null, false);

}

else if (event.equalsIgnoreCase("camera_11"))

{

_Zone.broadcastPacket(new SpecialCamera(frintezza.getObjectId(), 240, 90, 25, 5500, 10000, 0, 0, 1, 0));

_Zone.broadcastPacket(new SocialAction(frintezza, 3));

_portraitDummy1.deleteMe();

_portraitDummy3.deleteMe();

_portraitDummy1 = null;

_portraitDummy3 = null;

startQuestTimer("camera_12", 4500L, frintezza, null, false);

}

else if (event.equalsIgnoreCase("camera_12"))

{

_Zone.broadcastPacket(new SpecialCamera(frintezza.getObjectId(), 100, 195, 35, 0, 10000, 0, 0, 1, 0));

startQuestTimer("camera_13", 700L, frintezza, null, false);

}

else if (event.equalsIgnoreCase("camera_13"))

{

_Zone.broadcastPacket(new SpecialCamera(frintezza.getObjectId(), 100, 195, 35, 0, 10000, 0, 0, 1, 0));

startQuestTimer("camera_14", 1300L, frintezza, null, false);

}

else if (event.equalsIgnoreCase("camera_14"))

{

_Zone.broadcastPacket(new SpecialCamera(frintezza.getObjectId(), 120, 180, 45, 1500, 10000, 0, 0, 1, 0));

_Zone.broadcastPacket(new MagicSkillUse(frintezza, frintezza, 5006, 1, 34000, 0));

startQuestTimer("camera_16", 1500L, frintezza, null, false);

}

else if (event.equalsIgnoreCase("camera_16"))

{

_Zone.broadcastPacket(new SpecialCamera(frintezza.getObjectId(), 520, 135, 45, 8000, 10000, 0, 0, 1, 0));

startQuestTimer("camera_17", 7500L, frintezza, null, false);

}

else if (event.equalsIgnoreCase("camera_17"))

{

_Zone.broadcastPacket(new SpecialCamera(frintezza.getObjectId(), 1500, 110, 25, 10000, 13000, 0, 0, 1, 0));

startQuestTimer("camera_18", 9500L, frintezza, null, false);

}

else if (event.equalsIgnoreCase("camera_18"))

{

_Zone.broadcastPacket(new SpecialCamera(_overheadDummy.getObjectId(), 930, 160, -20, 0, 1000, 0, 0, 1, 0));

startQuestTimer("camera_18b", 0L, _overheadDummy, null, false);

}

else if (event.equalsIgnoreCase("camera_18b"))

{

_Zone.broadcastPacket(new SpecialCamera(_overheadDummy.getObjectId(), 600, 180, -25, 0, 10000, 0, 0, 1, 0));

_Zone.broadcastPacket(new MagicSkillUse(_scarletDummy, _overheadDummy, 5004, 1, 5800, 0));

weakScarlet = (L2GrandBossInstance) addSpawn(29046, 0x2a898, 0xfffea82c, -5110, 16384, false, 0L, true);

weakScarlet.setIsInvul(true);

weakScarlet.setIsImmobilized(true);

weakScarlet.disableAllSkills();

_Zone.updateKnownList(weakScarlet);

activeScarlet = weakScarlet;

startQuestTimer("camera_19", 2400L, _scarletDummy, null, false);

startQuestTimer("camera_19b", 5000L, _scarletDummy, null, false);

}

else if (event.equalsIgnoreCase("camera_19"))

weakScarlet.teleToLocation(0x2a898, 0xfffea82c, -5110, 0);

else if (event.equalsIgnoreCase("camera_19b"))

{

_Zone.broadcastPacket(new SpecialCamera(_scarletDummy.getObjectId(), 800, 180, 10, 1000, 10000, 0, 0, 1, 0));

startQuestTimer("camera_20", 2100L, _scarletDummy, null, false);

}

else if (event.equalsIgnoreCase("camera_20"))

{

_Zone.broadcastPacket(new SpecialCamera(weakScarlet.getObjectId(), 300, 60, 8, 0, 10000, 0, 0, 1, 0));

startQuestTimer("camera_21", 2000L, weakScarlet, null, false);

}

else if (event.equalsIgnoreCase("camera_21"))

{

_Zone.broadcastPacket(new SpecialCamera(weakScarlet.getObjectId(), 500, 90, 10, 3000, 5000, 0, 0, 1, 0));

startQuestTimer("camera_22", 3000L, weakScarlet, null, false);

}

else if (event.equalsIgnoreCase("camera_22"))

{

portrait2 = (L2MonsterInstance) addSpawn(29049, 0x2af04, 0xfffea577, -5000, 28205, false, 0L, false);

portrait2.setIsImmobilized(true);

portrait2.disableAllSkills();

_Zone.updateKnownList(portrait2);

portrait3 = (L2MonsterInstance) addSpawn(29049, 0x2a240, 0xfffea582, -5000, 64817, false, 0L, false);

portrait3.setIsImmobilized(true);

portrait3.disableAllSkills();

_Zone.updateKnownList(portrait3);

portrait1 = (L2MonsterInstance) addSpawn(29048, 0x2aed9, 0xfffeab83, -5000, 35048, false, 0L, false);

portrait1.setIsImmobilized(true);

portrait1.disableAllSkills();

_Zone.updateKnownList(portrait1);

portrait4 = (L2MonsterInstance) addSpawn(29048, 0x2a25a, 0xfffeab83, -5000, 57730, false, 0L, false);

portrait4.setIsImmobilized(true);

portrait4.disableAllSkills();

_Zone.updateKnownList(portrait4);

_overheadDummy.deleteMe();

_scarletDummy.deleteMe();

_overheadDummy = null;

_scarletDummy = null;

startQuestTimer("camera_23", 2000L, weakScarlet, null, false);

startQuestTimer("start_pc", 2000L, weakScarlet, null, false);

startQuestTimer("loc_check", 60000L, weakScarlet, null, true);

startQuestTimer("songs_play", 10000 + Rnd.get(10000), frintezza, null, false);

startQuestTimer("skill01", 10000 + Rnd.get(10000), weakScarlet, null, false);

}

else if (event.equalsIgnoreCase("camera_23"))

{

demon1.setIsImmobilized(false);

demon2.setIsImmobilized(false);

demon3.setIsImmobilized(false);

demon4.setIsImmobilized(false);

demon1.enableAllSkills();

demon2.enableAllSkills();

demon3.enableAllSkills();

demon4.enableAllSkills();

portrait1.setIsImmobilized(false);

portrait2.setIsImmobilized(false);

portrait3.setIsImmobilized(false);

portrait4.setIsImmobilized(false);

portrait1.enableAllSkills();

portrait2.enableAllSkills();

portrait3.enableAllSkills();

portrait4.enableAllSkills();

weakScarlet.setIsInvul(false);

weakScarlet.setIsImmobilized(false);

weakScarlet.enableAllSkills();

weakScarlet.setRunning();

startQuestTimer("spawn_minion", 20000L, portrait1, null, false);

startQuestTimer("spawn_minion", 20000L, portrait2, null, false);

startQuestTimer("spawn_minion", 20000L, portrait3, null, false);

startQuestTimer("spawn_minion", 20000L, portrait4, null, false);

}

else if (event.equalsIgnoreCase("stop_pc"))

{

for (L2Character cha : _Zone.getCharactersInside())

{

cha.abortAttack();

cha.abortCast();

cha.disableAllSkills();

cha.setTarget(null);

cha.stopMove(null);

cha.setIsImmobilized(true);

cha.getAI().setIntention(CtrlIntention.IDLE);

}

}

else if (event.equalsIgnoreCase("stop_npc"))

{

_Heading = npc.getHeading();

if (_Heading < 32768)

_Angle = Math.abs(180 - (int) (_Heading / 182.044444444));

else

_Angle = Math.abs(540 - (int) (_Heading / 182.044444444));

}

else if (event.equalsIgnoreCase("start_pc"))

{

for (L2Character cha : _Zone.getCharactersInside())

{

if (cha != frintezza)

{

cha.enableAllSkills();

cha.setIsImmobilized(false);

}

}

}

else if (event.equalsIgnoreCase("start_npc"))

{

npc.setRunning();

npc.setIsInvul(false);

}

else if (event.equalsIgnoreCase("morph_end"))

{

_OnMorph = 0;

}

else if (event.equalsIgnoreCase("morph_01"))

{

_Zone.broadcastPacket(new SpecialCamera(weakScarlet.getObjectId(), 250, _Angle, 12, 2000, 15000, 0, 0, 1, 0));

startQuestTimer("morph_02", 3000, weakScarlet, null, false);

}

else if (event.equalsIgnoreCase("morph_02"))

{

_Zone.broadcastPacket(new SocialAction(weakScarlet, 1));

weakScarlet.setRHandId(7903);

startQuestTimer("morph_03", 4000, weakScarlet, null, false);

}

else if (event.equalsIgnoreCase("morph_03"))

{

startQuestTimer("morph_04", 1500, weakScarlet, null, false);

}

else if (event.equalsIgnoreCase("morph_04"))

{

_Zone.broadcastPacket(new SocialAction(weakScarlet, 4));

L2Skill skill = SkillTable.getInstance().getInfo(5017, 1);

if (skill != null)

skill.getEffects(weakScarlet, weakScarlet);

 

startQuestTimer("morph_end", 6000, weakScarlet, null, false);

startQuestTimer("start_pc", 3000, weakScarlet, null, false);

startQuestTimer("start_npc", 3000, weakScarlet, null, false);

startQuestTimer("songs_play", 10000 + Rnd.get(10000), frintezza, null, false);

startQuestTimer("skill02", 10000 + Rnd.get(10000), weakScarlet, null, false);

}

else if (event.equalsIgnoreCase("morph_05a"))

{

_Zone.broadcastPacket(new SocialAction(frintezza, 4));

}

else if (event.equalsIgnoreCase("morph_05"))

{

_Zone.broadcastPacket(new SpecialCamera(frintezza.getObjectId(), 250, 120, 15, 0, 1000, 0, 0, 1, 0));

startQuestTimer("morph_06", 0, frintezza, null, false);

}

else if (event.equalsIgnoreCase("morph_06"))

{

_Zone.broadcastPacket(new SpecialCamera(frintezza.getObjectId(), 250, 120, 15, 0, 10000, 0, 0, 1, 0));

 

cancelQuestTimers("loc_check");

 

_Scarlet_x = weakScarlet.getX();

_Scarlet_y = weakScarlet.getY();

_Scarlet_z = weakScarlet.getZ();

_Scarlet_h = weakScarlet.getHeading();

weakScarlet.deleteMe();

weakScarlet = null;

activeScarlet = null;

weakScarlet = (L2GrandBossInstance) addSpawn(29046, _Scarlet_x, _Scarlet_y, _Scarlet_z, _Scarlet_h, false, 0, false);

weakScarlet.setIsInvul(true);

weakScarlet.setIsImmobilized(true);

weakScarlet.disableAllSkills();

weakScarlet.setRHandId(7903);

_Zone.updateKnownList(weakScarlet);

 

startQuestTimer("morph_07", 7000, frintezza, null, false);

}

else if (event.equalsIgnoreCase("morph_07"))

{

_Zone.broadcastPacket(new MagicSkillUse(frintezza, frintezza, 5006, 1, 34000, 0));

_Zone.broadcastPacket(new SpecialCamera(frintezza.getObjectId(), 500, 70, 15, 3000, 10000, 0, 0, 1, 0));

startQuestTimer("morph_08", 3000, frintezza, null, false);

}

else if (event.equalsIgnoreCase("morph_08"))

{

_Zone.broadcastPacket(new SpecialCamera(frintezza.getObjectId(), 2500, 90, 12, 6000, 10000, 0, 0, 1, 0));

startQuestTimer("morph_09", 3000, frintezza, null, false);

}

else if (event.equalsIgnoreCase("morph_09"))

{

_Zone.broadcastPacket(new SpecialCamera(weakScarlet.getObjectId(), 250, _Angle, 12, 0, 1000, 0, 0, 1, 0));

startQuestTimer("morph_10", 0, weakScarlet, null, false);

}

else if (event.equalsIgnoreCase("morph_10"))

{

_Zone.broadcastPacket(new SpecialCamera(weakScarlet.getObjectId(), 250, _Angle, 12, 0, 10000, 0, 0, 1, 0));

startQuestTimer("morph_11", 500, weakScarlet, null, false);

}

else if (event.equalsIgnoreCase("morph_11"))

{

weakScarlet.doDie(weakScarlet);

_Zone.broadcastPacket(new SpecialCamera(weakScarlet.getObjectId(), 450, _Angle, 14, 8000, 8000, 0, 0, 1, 0));

 

startQuestTimer("morph_12", 6250, weakScarlet, null, false);

startQuestTimer("morph_13", 7200, weakScarlet, null, false);

}

else if (event.equalsIgnoreCase("morph_12"))

{

weakScarlet.deleteMe();

weakScarlet = null;

}

else if (event.equalsIgnoreCase("morph_13"))

{

strongScarlet = (L2GrandBossInstance) addSpawn(SCARLET2, _Scarlet_x, _Scarlet_y, _Scarlet_z, _Scarlet_h, false, 0, false);

strongScarlet.setIsInvul(true);

strongScarlet.setIsImmobilized(true);

strongScarlet.disableAllSkills();

_Zone.updateKnownList(strongScarlet);

activeScarlet = strongScarlet;

 

_Zone.broadcastPacket(new SpecialCamera(strongScarlet.getObjectId(), 450, _Angle, 12, 500, 14000, 0, 0, 1, 0));

 

startQuestTimer("morph_14", 3000, strongScarlet, null, false);

startQuestTimer("loc_check", 60000, strongScarlet, null, true);

}

else if (event.equalsIgnoreCase("morph_14"))

{

startQuestTimer("morph_15", 5100, strongScarlet, null, false);

}

else if (event.equalsIgnoreCase("morph_15"))

{

_Zone.broadcastPacket(new SocialAction(strongScarlet, 2));

L2Skill skill = SkillTable.getInstance().getInfo(0, 1);

if (skill != null)

skill.getEffects(strongScarlet, strongScarlet);

 

startQuestTimer("morph_end", 9000, strongScarlet, null, false);

startQuestTimer("start_pc", 6000, strongScarlet, null, false);

startQuestTimer("start_npc", 6000, strongScarlet, null, false);

startQuestTimer("songs_play", 10000 + Rnd.get(10000), frintezza, null, false);

startQuestTimer("skill03", 10000 + Rnd.get(10000), strongScarlet, null, false);

}

else if (event.equalsIgnoreCase("morph_16"))

{

_Zone.broadcastPacket(new SpecialCamera(strongScarlet.getObjectId(), 300, _Angle - 180, 5, 0, 7000, 0, 0, 1, 0));

startQuestTimer("morph_17", 0, strongScarlet, null, false);

}

else if (event.equalsIgnoreCase("morph_17"))

{

_Zone.broadcastPacket(new SpecialCamera(strongScarlet.getObjectId(), 200, _Angle, 85, 4000, 10000, 0, 0, 1, 0));

startQuestTimer("morph_17b", 7400, frintezza, null, false);

startQuestTimer("morph_18", 7500, frintezza, null, false);

}

else if (event.equalsIgnoreCase("morph_17b"))

{

frintezza.doDie(frintezza);

}

else if (event.equalsIgnoreCase("morph_18"))

{

_Zone.broadcastPacket(new SpecialCamera(frintezza.getObjectId(), 100, 120, 5, 0, 7000, 0, 0, 1, 0));

startQuestTimer("morph_19", 0, frintezza, null, false);

}

else if (event.equalsIgnoreCase("morph_19"))

{

_Zone.broadcastPacket(new SpecialCamera(frintezza.getObjectId(), 100, 90, 5, 5000, 15000, 0, 0, 1, 0));

startQuestTimer("morph_20", 7000, frintezza, null, false);

startQuestTimer("spawn_cubes", 7000, frintezza, null, false);

}

else if (event.equalsIgnoreCase("morph_20"))

{

_Zone.broadcastPacket(new SpecialCamera(frintezza.getObjectId(), 900, 90, 25, 7000, 10000, 0, 0, 1, 0));

startQuestTimer("start_pc", 7000, frintezza, null, false);

}

else if (event.equalsIgnoreCase("songs_play"))

{

if (frintezza != null && !frintezza.isDead() && _OnMorph == 0)

{

_OnSong = Rnd.get(1, 5);

if (_OnSong == 1 && _ThirdMorph == 1 && strongScarlet.getCurrentHp() < strongScarlet.getMaxHp() * 0.6 && Rnd.get(100) < 80)

{

_Zone.broadcastPacket(new MagicSkillUse(frintezza, frintezza, 5007, 1, 32000, 0));

startQuestTimer("songs_effect", 5000, frintezza, null, false);

startQuestTimer("songs_play", 32000 + Rnd.get(10000), frintezza, null, false);

}

else if (_OnSong == 2 || _OnSong == 3)

{

_Zone.broadcastPacket(new MagicSkillUse(frintezza, frintezza, 5007, _OnSong, 32000, 0));

startQuestTimer("songs_effect", 5000, frintezza, null, false);

startQuestTimer("songs_play", 32000 + Rnd.get(10000), frintezza, null, false);

}

else if (_OnSong == 4 && _SecondMorph == 1)

{

_Zone.broadcastPacket(new MagicSkillUse(frintezza, frintezza, 5007, 4, 31000, 0));

startQuestTimer("songs_effect", 5000, frintezza, null, false);

startQuestTimer("songs_play", 31000 + Rnd.get(10000), frintezza, null, false);

}

else if (_OnSong == 5 && _ThirdMorph == 1 && _Abnormal == 0)

{

_Abnormal = 1;

_Zone.broadcastPacket(new MagicSkillUse(frintezza, frintezza, 5007, 5, 35000, 0));

startQuestTimer("songs_effect", 5000, frintezza, null, false);

startQuestTimer("songs_play", 35000 + Rnd.get(10000), frintezza, null, false);

}

else

startQuestTimer("songs_play", 5000 + Rnd.get(5000), frintezza, null, false);

}

}

else if (event.equalsIgnoreCase("songs_effect"))

{

L2Skill skill = SkillTable.getInstance().getInfo(5008, _OnSong);

if (skill == null)

return null;

 

if (_OnSong == 1 || _OnSong == 2 || _OnSong == 3)

{

if (frintezza != null && !frintezza.isDead() && activeScarlet != null && !activeScarlet.isDead())

skill.getEffects(frintezza, activeScarlet);

}

else if (_OnSong == 4)

{

for (L2Character cha : _Zone.getCharactersInside())

{

if (cha instanceof L2PcInstance && Rnd.get(100) < 80)

{

skill.getEffects(frintezza, cha);

cha.sendPacket(SystemMessage.getSystemMessage(SystemMessageId.YOU_FEEL_S1_EFFECT).addSkillName(5008, 4));

}

}

}

else if (_OnSong == 5)

{

for (L2Character cha : _Zone.getCharactersInside())

{

if (cha instanceof L2PcInstance && Rnd.get(100) < 70)

{

cha.abortAttack();

cha.abortCast();

cha.disableAllSkills();

cha.stopMove(null);

cha.setIsParalyzed(true);

cha.setIsImmobilized(true);

cha.getAI().setIntention(CtrlIntention.IDLE);

skill.getEffects(frintezza, cha);

cha.startAbnormalEffect(AbnormalEffect.DANCE_STUNNED);

cha.sendPacket(SystemMessage.getSystemMessage(SystemMessageId.YOU_FEEL_S1_EFFECT).addSkillName(5008, 5));

}

}

startQuestTimer("stop_effect", 25000, frintezza, null, false);

}

}

else if (event.equalsIgnoreCase("stop_effect"))

{

for (L2Character cha : _Zone.getCharactersInside())

{

if (cha instanceof L2PcInstance)

{

cha.stopAbnormalEffect(AbnormalEffect.DANCE_STUNNED);

cha.stopAbnormalEffect(AbnormalEffect.FLOATING_ROOT);

cha.enableAllSkills();

cha.setIsImmobilized(false);

cha.setIsParalyzed(false);

}

}

_Abnormal = 0;

}

else if (event.equalsIgnoreCase("attack_stop"))

{

cancelQuestTimers("skill01");

cancelQuestTimers("skill02");

cancelQuestTimers("skill03");

cancelQuestTimers("songs_play");

cancelQuestTimers("songs_effect");

 

_Zone.broadcastPacket(new MagicSkillCanceld(frintezza.getObjectId()));

}

else if (event.equalsIgnoreCase("check_hp"))

{

if (npc.isDead())

{

_OnMorph = 1;

_Zone.broadcastPacket(new PlaySound(1, "BS01_D", 1, npc.getObjectId(), npc.getX(), npc.getY(), npc.getZ()));

 

startQuestTimer("attack_stop", 0, frintezza, null, false);

startQuestTimer("stop_pc", 0, npc, null, false);

startQuestTimer("stop_npc", 0, npc, null, false);

startQuestTimer("morph_16", 0, npc, null, false);

}

else

{

_CheckDie = _CheckDie + 10;

if (_CheckDie < 3000)

startQuestTimer("check_hp", 10, npc, null, false);

else

{

_OnCheck = 0;

_CheckDie = 0;

}

}

}

else if (event.equalsIgnoreCase("skill01"))

{

if (weakScarlet != null && !weakScarlet.isDead() && _SecondMorph == 0 && _ThirdMorph == 0 && _OnMorph == 0)

{

int i = Rnd.get(0, 1);

L2Skill skill = SkillTable.getInstance().getInfo(_skill[0], _skill[1]);

if (skill != null)

{

weakScarlet.stopMove(null);

weakScarlet.setIsCastingNow(true);

weakScarlet.doCast(skill);

}

startQuestTimer("skill01", _skill[2] + 5000 + Rnd.get(10000), npc, null, false);

}

}

else if (event.equalsIgnoreCase("skill02"))

{

if (weakScarlet != null && !weakScarlet.isDead() && _SecondMorph == 1 && _ThirdMorph == 0 && _OnMorph == 0)

{

int i = 0;

if (_Abnormal == 0)

i = Rnd.get(2, 5);

else

i = Rnd.get(2, 4);

 

L2Skill skill = SkillTable.getInstance().getInfo(_skill[0], _skill[1]);

if (skill != null)

{

weakScarlet.stopMove(null);

weakScarlet.setIsCastingNow(true);

weakScarlet.doCast(skill);

}

startQuestTimer("skill02", _skill[2] + 5000 + Rnd.get(10000), npc, null, false);

 

if (i == 5)

{

_Abnormal = 1;

startQuestTimer("float_effect", 4000, weakScarlet, null, false);

}

}

}

else if (event.equalsIgnoreCase("skill03"))

{

if (strongScarlet != null && !strongScarlet.isDead() && _SecondMorph == 1 && _ThirdMorph == 1 && _OnMorph == 0)

{

int i = 0;

if (_Abnormal == 0)

i = Rnd.get(6, 10);

else

i = Rnd.get(6, 9);

 

L2Skill skill = SkillTable.getInstance().getInfo(_skill[0], _skill[1]);

if (skill != null)

{

strongScarlet.stopMove(null);

strongScarlet.setIsCastingNow(true);

strongScarlet.doCast(skill);

}

startQuestTimer("skill03", _skill[2] + 5000 + Rnd.get(10000), npc, null, false);

 

if (i == 10)

{

_Abnormal = 1;

startQuestTimer("float_effect", 3000, npc, null, false);

}

}

}

else if (event.equalsIgnoreCase("float_effect"))

{

if (npc.isCastingNow())

{

startQuestTimer("float_effect", 500, npc, null, false);

}

else

{

for (L2Character cha : _Zone.getCharactersInside())

{

if (cha instanceof L2PcInstance)

{

if (cha.getFirstEffect(5016) != null)

{

cha.abortAttack();

cha.abortCast();

cha.disableAllSkills();

cha.stopMove(null);

cha.setIsParalyzed(true);

cha.setIsImmobilized(true);

cha.getAI().setIntention(CtrlIntention.IDLE);

cha.startAbnormalEffect(AbnormalEffect.FLOATING_ROOT);

}

}

}

startQuestTimer("stop_effect", 25000, npc, null, false);

}

}

else if (event.equalsIgnoreCase("action"))

{

_Zone.broadcastPacket(new SocialAction(npc, 1));

}

else if (event.equalsIgnoreCase("bomber"))

{

_Bomber = 0;

}

else if (event.equalsIgnoreCase("room_final"))

{

_Zone.broadcastPacket(new NpcSay(npc.getObjectId(), 1, npc.getNpcId(), "Exceeded his time limit, challenge failed!"));

_Zone.oustAllPlayers();

 

cancelQuestTimers("waiting");

cancelQuestTimers("frintezza_despawn");

startQuestTimer("clean", 1000, npc, null, false);

startQuestTimer("close", 1000, npc, null, false);

startQuestTimer("room1_del", 1000, npc, null, false);

startQuestTimer("room2_del", 1000, npc, null, false);

 

GrandBossManager.getInstance().setBossStatus(FRINTEZZA, DORMANT);

}

else if (event.equalsIgnoreCase("frintezza_despawn"))

{

temp = (System.currentTimeMillis() - _LastAction);

if (temp > Config.DESPAWN_TIME_FRINTEZZA)

{

_Zone.oustAllPlayers();

 

cancelQuestTimers("waiting");

cancelQuestTimers("loc_check");

cancelQuestTimers("room_final");

cancelQuestTimers("spawn_minion");

startQuestTimer("clean", 1000, npc, null, false);

startQuestTimer("close", 1000, npc, null, false);

startQuestTimer("attack_stop", 1000, npc, null, false);

startQuestTimer("room1_del", 1000, npc, null, false);

startQuestTimer("room2_del", 1000, npc, null, false);

startQuestTimer("room3_del", 1000, npc, null, false);

startQuestTimer("minions_despawn", 1000, npc, null, false);

 

GrandBossManager.getInstance().setBossStatus(FRINTEZZA, DORMANT);

 

cancelQuestTimers("frintezza_despawn");

}

}

else if (event.equalsIgnoreCase("minions_despawn"))

{

for (int i = 0; i < Minions.size(); i++)

{

L2Attackable mob = Minions.get(i);

if (mob != null)

mob.decayMe();

}

Minions.clear();

}

else if (event.equalsIgnoreCase("spawn_minion"))

{

if (npc != null && !npc.isDead() && frintezza != null && !frintezza.isDead())

{

L2Npc mob = addSpawn(npc.getNpcId() + 2, npc.getX(), npc.getY(), npc.getZ(), npc.getHeading(), false, 0, false);

((L2Attackable) mob).setIsRaidMinion(true);

Minions.add((L2Attackable) mob);

startQuestTimer("action", 200, mob, null, false);

startQuestTimer("spawn_minion", 18000, npc, null, false);

}

}

else if (event.equalsIgnoreCase("spawn_cubes"))

{

addSpawn(CUBE, 174232, -88020, -5114, 16384, false, 900000, false);

}

else if (event.equalsIgnoreCase("frintezza_unlock"))

{

GrandBossManager.getInstance().setBossStatus(FRINTEZZA, DORMANT);

}

else if (event.equalsIgnoreCase("remove_players"))

{

_Zone.oustAllPlayers();

}

 

return super.onAdvEvent(event, npc, player);

}

 

@Override

public String onTalk(L2Npc npc, L2PcInstance player)

{

if (npc.getNpcId() == CUBE)

{

int x = 150037 + Rnd.get(500);

int y = -57720 + Rnd.get(500);

player.teleToLocation(x, y, -2976, 0);

return null;

}

 

String htmltext = "";

 

Integer status = GrandBossManager.getInstance().getBossStatus(FRINTEZZA);

 

if (status == DEAD)

{

htmltext = "<html><body>There is nothing beyond the Magic Force Field. Come back later.<br>(You may not enter because Frintezza is not inside the Imperial Tomb.)</body></html>";

}

else if (status == DORMANT)

{

boolean party_check_success = true;

 

if (!Config.BYPASS_FRINTEZZA_PARTIES_CHECK)

{

 

if ((!player.isInParty() || !player.getParty().isLeader(player)) || (player.getParty().getCommandChannel() == null) || (player.getParty().getCommandChannel().getChannelLeader() != player))

{

htmltext = "<html><body>No reaction. Contact must be initiated by the Command Channel Leader.</body></html>";

party_check_success = false;

}

else if (player.getParty().getCommandChannel().getPartys().size() < Config.FRINTEZZA_MIN_PARTIES || player.getParty().getCommandChannel().getPartys().size() > Config.FRINTEZZA_MAX_PARTIES)

{

htmltext = "<html><body>Your command channel needs to have at least " + Config.FRINTEZZA_MIN_PARTIES + " parties and a maximum of " + Config.FRINTEZZA_MAX_PARTIES + ".</body></html>";

party_check_success = false;

}

 

}

 

if (party_check_success)

{

 

if (player.getInventory().getItemByItemId(8073) == null)

{

htmltext = "<html><body>You dont have required item.</body></html>";

}

else

{

player.destroyItemByItemId("Quest", 8073, 1, player, true);

GrandBossManager.getInstance().setBossStatus(FRINTEZZA, WAITING);

 

startQuestTimer("close", 0, npc, null, false);

startQuestTimer("room1_spawn", 5000, npc, null, false);

startQuestTimer("room_final", Config.FRINTEZZA_TIME_CHALLENGE, null, null, false);

startQuestTimer("frintezza_despawn", 60000, null, null, true);

 

_LastAction = System.currentTimeMillis();

 

if (Config.BYPASS_FRINTEZZA_PARTIES_CHECK)

{

 

if (player.getParty() != null)

{

 

L2CommandChannel CC = player.getParty().getCommandChannel();

 

if (CC != null)

{ // teleport all parties into CC reb12

 

for (L2Party party : CC.getPartys())

{

if (party == null)

continue;

 

synchronized (_PlayersInside)

{

 

for (L2PcInstance member : party.getPartyMembers())

{

if (member == null || member.getLevel() < 74)

continue;

if (!member.isInsideRadius(npc, 700, false, false))

continue;

if (_PlayersInside.size() > 45)

{

member.sendMessage("The number of challenges have been full, so can not enter.");

break;

}

_PlayersInside.add(member);

_Zone.allowPlayerEntry(member, 300);

member.teleToLocation(_invadeLoc[_LocCycle][0] + Rnd.get(50), _invadeLoc[_LocCycle][1] + Rnd.get(50), _invadeLoc[_LocCycle][2], 0);

}

if (_PlayersInside.size() > 45)

break;

 

}

 

_LocCycle++;

if (_LocCycle >= 6)

_LocCycle = 1;

}

 

}

else

{ // teleport just actual party reb12

 

L2Party party = player.getParty();

 

for (L2PcInstance member : party.getPartyMembers())

{

if (member == null || member.getLevel() < 74)

continue;

if (!member.isInsideRadius(npc, 700, false, false))

continue;

 

synchronized (_PlayersInside)

{

if (_PlayersInside.size() > 45)

{

member.sendMessage("The number of challenges have been full, so can not enter.");

break;

}

_PlayersInside.add(member);

}

 

_Zone.allowPlayerEntry(member, 300);

member.teleToLocation(_invadeLoc[_LocCycle][0] + Rnd.get(50), _invadeLoc[_LocCycle][1] + Rnd.get(50), _invadeLoc[_LocCycle][2], 0);

}

 

_LocCycle++;

if (_LocCycle >= 6)

_LocCycle = 1;

 

}

 

}

else

{ // teleport just player reb12

 

if (player.isInsideRadius(npc, 700, false, false))

{

 

synchronized (_PlayersInside)

{

_PlayersInside.add(player);

 

}

player.teleToLocation(_invadeLoc[_LocCycle][0] + Rnd.get(50), _invadeLoc[_LocCycle][1] + Rnd.get(50), _invadeLoc[_LocCycle][2], 0);

 

}

 

}

 

}

else

{

 

L2CommandChannel CC = player.getParty().getCommandChannel();

 

for (L2Party party : CC.getPartys())

{

if (party == null)

continue;

 

synchronized (_PlayersInside)

{

for (L2PcInstance member : party.getPartyMembers())

{

if (member == null || member.getLevel() < 74)

continue;

if (!member.isInsideRadius(npc, 700, false, false))

continue;

if (_PlayersInside.size() > 45)

{

member.sendMessage("The number of challenges have been full, so can not enter.");

break;

}

_PlayersInside.add(member);

_Zone.allowPlayerEntry(member, 300);

member.teleToLocation(_invadeLoc[_LocCycle][0] + Rnd.get(50), _invadeLoc[_LocCycle][1] + Rnd.get(50), _invadeLoc[_LocCycle][2], 0);

}

if (_PlayersInside.size() > 45)

break;

 

}

 

_LocCycle++;

if (_LocCycle >= 6)

_LocCycle = 1;

}

 

}

 

}

 

}

 

}

else

htmltext = "<html><body>Someone else is already inside the Magic Force Field. Try again later.</body></html>";

 

return htmltext;

}

 

@Override

public String onAttack(L2Npc npc, L2PcInstance attacker, int damage, boolean isPet, L2Skill skill)

{

_LastAction = System.currentTimeMillis();

if (npc.getNpcId() == FRINTEZZA)

{

npc.setCurrentHpMp(npc.getMaxHp(), 0);

return null;

}

if (npc.getNpcId() == SCARLET1 && _SecondMorph == 0 && _ThirdMorph == 0 && _OnMorph == 0 && npc.getCurrentHp() < npc.getMaxHp() * 0.75 && GrandBossManager.getInstance().getBossStatus(FRINTEZZA) == FIGHTING)

{

startQuestTimer("attack_stop", 0, frintezza, null, false);

 

_SecondMorph = 1;

_OnMorph = 1;

 

startQuestTimer("stop_pc", 1000, npc, null, false);

startQuestTimer("stop_npc", 1000, npc, null, false);

startQuestTimer("morph_01", 1100, npc, null, false);

}

else if (npc.getNpcId() == SCARLET1 && _SecondMorph == 1 && _ThirdMorph == 0 && _OnMorph == 0 && npc.getCurrentHp() < npc.getMaxHp() * 0.5 && GrandBossManager.getInstance().getBossStatus(FRINTEZZA) == FIGHTING)

{

startQuestTimer("attack_stop", 0, frintezza, null, false);

 

_ThirdMorph = 1;

_OnMorph = 1;

 

startQuestTimer("stop_pc", 2000, npc, null, false);

startQuestTimer("stop_npc", 2000, npc, null, false);

startQuestTimer("morph_05a", 2000, npc, null, false);

startQuestTimer("morph_05", 2100, npc, null, false);

}

else if (npc.getNpcId() == SCARLET2 && _SecondMorph == 1 && _ThirdMorph == 1 && _OnCheck == 0 && damage >= npc.getCurrentHp() && GrandBossManager.getInstance().getBossStatus(FRINTEZZA) == FIGHTING)

{

_OnCheck = 1;

startQuestTimer("check_hp", 0, npc, null, false);

}

else if ((npc.getNpcId() == 29050 || npc.getNpcId() == 29051) && _Bomber == 0)

{

if (npc.getCurrentHp() < npc.getMaxHp() * 0.1)

{

if (Rnd.get(100) < 30)

{

_Bomber = 1;

startQuestTimer("bomber", 3000, npc, null, false);

 

L2Skill skill1 = SkillTable.getInstance().getInfo(5011, 1);

if (skill1 != null)

{

npc.doCast(skill1);

}

}

}

}

 

return super.onAttack(npc, attacker, damage, isPet, skill);

}

 

@Override

public String onKill(L2Npc npc, L2PcInstance killer, boolean isPet)

{

if (npc.getNpcId() == SCARLET2)

{

_Zone.broadcastPacket(new PlaySound(1, "BS01_D", 1, npc.getObjectId(), npc.getX(), npc.getY(), npc.getZ()));

 

startQuestTimer("stop_pc", 0, null, null, false);

startQuestTimer("stop_npc", 0, npc, null, false);

startQuestTimer("morph_16", 0, npc, null, false);

 

GrandBossManager.getInstance().setBossStatus(FRINTEZZA, DEAD);

long respawnTime = (long) Config.SPAWN_INTERVAL_FRINTEZZA + Rnd.get(-Config.RANDOM_SPAWN_TIME_FRINTEZZA, Config.RANDOM_SPAWN_TIME_FRINTEZZA);

respawnTime *= 3600000;

 

cancelQuestTimers("spawn_minion");

cancelQuestTimers("frintezza_despawn");

startQuestTimer("close", 0, null, null, false);

startQuestTimer("rooms_del", 0, npc, null, false);

startQuestTimer("minions_despawn", 0, null, null, false);

startQuestTimer("remove_players", 900000, null, null, false);

startQuestTimer("frintezza_unlock", respawnTime, null, null, false);

 

StatsSet info = GrandBossManager.getInstance().getStatsSet(FRINTEZZA);

info.set("respawn_time", System.currentTimeMillis() + respawnTime);

GrandBossManager.getInstance().setStatsSet(FRINTEZZA, info);

}

else if (npc.getNpcId() == 18328)

{

_KillHallAlarmDevice++;

if (_KillHallAlarmDevice == 3) // open walls reb12

{

for (int i = 25150051; i <= 25150058; i++)

DoorTable.getInstance().getDoor(i).openMe();

}

else if (_KillHallAlarmDevice == 4)

{

startQuestTimer("room1_del", 100, npc, null, false);

startQuestTimer("room2_spawn", 100, npc, null, false);

DoorTable.getInstance().getDoor(25150042).openMe();

DoorTable.getInstance().getDoor(25150043).openMe();

}

}

else if (npc.getNpcId() == 18339)

{

_KillDarkChoirPlayer++;

if (_KillDarkChoirPlayer == 2)

{

DoorTable.getInstance().getDoor(25150042).closeMe();

DoorTable.getInstance().getDoor(25150043).closeMe();

 

for (int i = 25150061; i <= 25150070; i++)

DoorTable.getInstance().getDoor(i).openMe();

 

startQuestTimer("room2_spawn2", 1000, npc, null, false);

}

}

else if (npc.getNpcId() == 18334)

{

_KillDarkChoirCaptain++;

if (_KillDarkChoirCaptain == 8)

{

startQuestTimer("room2_del", 100, npc, null, false);

 

DoorTable.getInstance().getDoor(25150045).openMe();

DoorTable.getInstance().getDoor(25150046).openMe();

 

startQuestTimer("waiting", Config.WAIT_TIME_FRINTEZZA, npc, null, false);

cancelQuestTimers("room_final");

}

}

 

return super.onKill(npc, killer, isPet);

}

}

 

 

 

 

 

L2BossZone.java

 

public void updateKnownList(L2Npc npc)
{
if (_characterList == null || _characterList.isEmpty())
{
return;
}
for (L2Character character : _characterList)
{
if (character instanceof L2PcInstance)
{
npc.getStatus().addStatusListener(character);
}
}
}
Editado por terry123456
Link para o comentário
Compartilhar em outros sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Visitante
Responder

×   Você colou conteúdo com formatação.   Remover formatação

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Processando...
  • Registre-se

    Faça parte da maior e  mais antigas comunidades sobre Lineage2 da América Latina.





×
×
  • Criar Novo...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.