I am creating Frintezza for aCis but I came across something really does FinalEmperialTomb exist in the interlude? Because I created it based on research and I didn't find anything about Interlude, I just found about High Five. A part of my code, yes it is working perfectly I would like to know more about FinalEmperialTomb because I don't want to waste time on it.
package net.sf.l2j.gameserver.scripting.script.ai.area;import java.util.Set;import java.util.concurrent.ConcurrentHashMap;import net.sf.l2j.commons.random.Rnd;import net.sf.l2j.gameserver.data.manager.GrandBossManager;import net.sf.l2j.gameserver.data.manager.ZoneManager;import net.sf.l2j.gameserver.data.xml.DoorData;import net.sf.l2j.gameserver.data.xml.ScriptData;import net.sf.l2j.gameserver.enums.SayType;import net.sf.l2j.gameserver.enums.ScriptEventType;import net.sf.l2j.gameserver.model.actor.Creature;import net.sf.l2j.gameserver.model.actor.Npc;import net.sf.l2j.gameserver.model.actor.Player;import net.sf.l2j.gameserver.model.location.Location;import net.sf.l2j.gameserver.model.zone.type.BossZone;import net.sf.l2j.gameserver.network.serverpackets.CreatureSay;import net.sf.l2j.gameserver.network.serverpackets.ExShowScreenMessage;import net.sf.l2j.gameserver.scripting.script.ai.AttackableAIScript;import net.sf.l2j.gameserver.scripting.script.ai.boss.Frintezza;publicclassFinalEmperialTomb extends AttackableAIScript{privatestatic final BossZone ZONE =ZoneManager.getInstance().getZoneById(110012,BossZone.class);privatestatic 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}};privatestatic final int[] NPCS ={18328,18329,18330,18331,18332,18333,18334,18335,18336,18337,18338,18339,29048,29049,29050,29051,32011};privatestatic final Location[] FRINTEZZA_IN ={newLocation(174102,-76039,-5105),newLocation(173235,-76884,-5105),newLocation(175003,-76933,-5105),newLocation(174196,-76190,-5105),newLocation(174013,-76120,-5105),newLocation(173263,-75161,-5105)};privateSet<Npc> _roomMobs =ConcurrentHashMap.newKeySet();privateint _check;publicFinalEmperialTomb(){
super("ai/area");}@Overrideprotectedvoid registerNpcs(){
addEventIds(NPCS,ScriptEventType.ON_TALK,ScriptEventType.ON_KILL);}@OverridepublicString onTalk(Npc npc,Player player){String htmltext ="";int status;switch(npc.getNpcId()){case32011:if(player.getInventory().hasItems(8073)){
status =GrandBossManager.getInstance().getBossStatus(Frintezza.FRINTEZZA);if(status ==Frintezza.DORMANT){GrandBossManager.getInstance().setBossStatus(Frintezza.FRINTEZZA,Frintezza.WAITING);
startQuestTimer("close", null, null,100);
startQuestTimer("beginning", null, null,5000);ScriptData.getInstance().getQuest("Frintezza").startQuestTimer("frintezza_despawn", null, null,60000);// Take item from party leader.
takeItems(player,8784,1);
final BossZone zone =ZoneManager.getInstance().getZoneById(110012,BossZone.class);
zone.allowPlayerEntry(player,300);
player.teleportTo(Rnd.get(FRINTEZZA_IN),50);}elseif(status ==Frintezza.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
htmltext ="<html><body>You dont have required item.</body></html>";break;}return htmltext;}@OverridepublicString onTimer(String name,Npc npc,Player player){if(name.equalsIgnoreCase("beginning")){
closeDoors();
_check =35;for(int i =0; i <=17; i++)
_roomMobs.add(addSpawn(MOBLOC[i][0], MOBLOC[i][1], MOBLOC[i][2], MOBLOC[i][3], MOBLOC[i][4],false,0,false));
ZONE.broadcastPacket(newCreatureSay(SayType.SHOUT,"Hall Alarm Device","Intruders! Sound the alarm!"));
startQuestTimer("check", null, null,60000);ScriptData.getInstance().getQuest("Frintezza").startQuestTimer("frintezza_despawn", null, null,60000);}elseif(name.equalsIgnoreCase("check")){if(_check ==0){
ZONE.broadcastPacket(newCreatureSay(SayType.SHOUT,"Frintezza Gatekeeper","Time limit exceeded, challenge failed!"));
ZONE.oustAllPlayers();
cancelQuestTimers("check");ScriptData.getInstance().getQuest("Frintezza").cancelQuestTimers("frintezza_despawn");
deleteAllMobs();
closeDoors();GrandBossManager.getInstance().setBossStatus(Frintezza.FRINTEZZA,Frintezza.DORMANT);}
_check--;
ZONE.broadcastPacket(newExShowScreenMessage(_check +" minute(s) remaining.",10000));}elseif(name.equalsIgnoreCase("cleanMobs"))
deleteAllMobs();elseif(name.equalsIgnoreCase("close"))
closeDoors();return super.onTimer(name, npc, player);}@OverridepublicString onKill(Npc npc,Creature killer){switch(npc.getNpcId()){case18328:int alarmsRemaining = getRemainingMonsters(npc);if(alarmsRemaining ==1){for(int i =25150051; i <=25150058; i++)
openDoor(i);}elseif(alarmsRemaining ==0){
ZONE.broadcastPacket(newCreatureSay(npc.getObjectId(),SayType.SHOUT, npc.getName(),"De-activate the alarm."));
deleteAllMobs();Spawn(1);}break;case18339:if(getRemainingMonsters(npc)==0)Spawn(2);break;case18334:if(getRemainingMonsters(npc)==0){
deleteAllMobs();
openDoor(25150045);
openDoor(25150046);
cancelQuestTimers("check");
startQuestTimer("waiting", null, null,180000);}break;}return super.onKill(npc, killer);}privatevoidSpawn(int spawn){if(spawn ==1){for(int i =41; i <=44; i++)
_roomMobs.add(addSpawn(MOBLOC[i][0], MOBLOC[i][1], MOBLOC[i][2], MOBLOC[i][3], MOBLOC[i][4],false,0,false));for(int i =25150051; i <=25150058; i++)
openDoor(i);
openDoor(25150042);
openDoor(25150043);}else{
closeDoor(25150042);
closeDoor(25150043);
closeDoor(25150045);
closeDoor(25150046);for(int i =25150061; i <=25150070; i++)
openDoor(i);for(int i =45; i <=131; i++)
_roomMobs.add(addSpawn(MOBLOC[i][0], MOBLOC[i][1], MOBLOC[i][2], MOBLOC[i][3], MOBLOC[i][4],false,0,false));}}privatestaticvoid closeDoors(){for(int i =25150051; i <=25150058; i++)
closeDoor(i);for(int i =25150061; i <=25150070; i++)
closeDoor(i);
closeDoor(25150042);
closeDoor(25150043);
closeDoor(25150045);
closeDoor(25150046);}privatestaticvoid openDoor(int doorid){DoorData.getInstance().getDoor(doorid).openMe();}privatestaticvoid closeDoor(int doorid){DoorData.getInstance().getDoor(doorid).closeMe();}privatevoid deleteAllMobs(){for(Npc mob : _roomMobs)
mob.deleteMe();for(Npc mob : ZONE.getKnownTypeInside(Npc.class))
mob.deleteMe();
_roomMobs.clear();}privateint getRemainingMonsters(Npc npc){
_roomMobs.remove(npc);return(int)_roomMobs.stream().filter(m -> m.getNpcId()== npc.getNpcId()).count();}}
Unlock Unlimited Access with GoProxy's Residential Proxies!
Experience seamless, secure, and unrestricted connectivity worldwide with GoProxy's Unlimited Residential Proxies.
Our service offers access to a global network of rotating residential IPs, ensuring top performance for your large-scale data collection, streaming, and more.
✔️Unlimited Traffic & IPs: Enjoy unrestricted access with our rotating residential proxies, delivering high performance through a vast global IP pool.
✔️High Success Rate: Achieve a 99.96% success rate with a rapid 0.6-second response time, ensuring efficient and reliable operations.
✔️Flexible Sessions: Customize IP rotation to fit your project needs, with options for automatic rotation and sticky sessions lasting up to 60 minutes.
✔️Global Coverage: Access IPs from over 120 countries, making it ideal for businesses requiring high bandwidth without region-specific constraints.
All plans include unlimited traffic and IPs, unlimited concurrent requests, and access to real residential IP addresses.
Elevate your online operations with GoProxy's Unlimited Residential Proxies—your smart choice for large-scale projects.
👉 Learn more and get started today: GoProxy Unlimited Proxies
Question
Williams
I am creating Frintezza for aCis but I came across something really does FinalEmperialTomb exist in the interlude? Because I created it based on research and I didn't find anything about Interlude, I just found about High Five. A part of my code, yes it is working perfectly I would like to know more about FinalEmperialTomb because I don't want to waste time on it.
4 answers to this question
Recommended Posts