Hello, how i can delete a condition for party from Kamaloka instances? And i want to delete too level conditions. To make available after level 1-85.
Spoiler
/*
* Copyright (C) 2004-2015 L2J DataPack
*
* This file is part of L2J DataPack.
*
* L2J DataPack 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.
*
* L2J DataPack 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 <http://www.gnu.org/licenses/>.
*/
package instances.Kamaloka;import instances.AbstractInstance;import java.util.ArrayList;import java.util.Arrays;import java.util.Calendar;import java.util.List;import java.util.Map;import l2r.gameserver.data.xml.impl.SkillData;import l2r.gameserver.instancemanager.InstanceManager;import l2r.gameserver.model.L2Party;import l2r.gameserver.model.L2Spawn;import l2r.gameserver.model.L2World;import l2r.gameserver.model.Location;import l2r.gameserver.model.actor.L2Character;import l2r.gameserver.model.actor.L2Npc;import l2r.gameserver.model.actor.instance.L2PcInstance;import l2r.gameserver.model.effects.L2Effect;import l2r.gameserver.model.entity.Instance;import l2r.gameserver.model.instancezone.InstanceWorld;import l2r.gameserver.model.skills.L2Skill;import l2r.gameserver.network.SystemMessageId;import l2r.gameserver.network.serverpackets.SystemMessage;public final classKamaloka extends AbstractInstance{/*
* Reset time for all kamaloka Default: 6:30AM on server time
*/privatestatic final int RESET_HOUR =6;/*
* Time after which instance without players will be destroyed Default: 5 minutes
*/privatestatic final int EMPTY_DESTROY_TIME =5;/*
* Time to destroy instance (and eject players away) after boss defeat Default: 5 minutes
*/privatestatic final int EXIT_TIME =5;/*
* Maximum level difference between players level and kamaloka level Default: 5
*/privatestatic final int MAX_LEVEL_DIFFERENCE =5;/*
* If true shaman in the first room will have same npcId as other mobs, making radar useless Default: true (but not retail like)
*/privatestatic final boolean STEALTH_SHAMAN =true;// Template IDs for Kamaloka// @formatter:offprivatestatic final int[] TEMPLATE_IDS ={57,58,73,60,61,74,63,64,75,66,67,76,69,70,77,72,78,79,134};// Level of the Kamalokaprivatestatic final int[] LEVEL ={85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85};// Duration of the instance, minutesprivatestatic final int[] DURATION ={30,30,45,30,30,45,30,30,45,30,30,45,30,30,45,30,45,45,45};// Maximum party size for the instanceprivatestatic final int[] MAX_PARTY_SIZE ={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};/**
* List of buffs NOT removed on enter from player and pet<br>
* On retail only newbie guide buffs not removed<br>
* CAUTION: array must be sorted in ascension order!
*/protectedstatic final int[] BUFFS_WHITELIST ={4322,4323,4324,4325,4326,4327,4328,4329,4330,4331,5632,5637,5950};// @formatter:on// Teleport points into instances x, y, zprivatestatic final Location[] TELEPORTS ={newLocation(-88429,-220629,-7903),newLocation(-82464,-219532,-7899),newLocation(-10700,-174882,-10936),// -76280, -185540, -10936newLocation(-89683,-213573,-8106),newLocation(-81413,-213568,-8104),newLocation(-10700,-174882,-10936),// -76280, -174905, -10936newLocation(-89759,-206143,-8120),newLocation(-81415,-206078,-8107),newLocation(-10700,-174882,-10936),newLocation(-56999,-219856,-8117),newLocation(-48794,-220261,-8075),newLocation(-10700,-174882,-10936),newLocation(-56940,-212939,-8072),newLocation(-55566,-206139,-8120),newLocation(-10700,-174882,-10936),newLocation(-49805,-206139,-8117),newLocation(-10700,-174882,-10936),newLocation(-10700,-174882,-10936),newLocation(22003,-174886,-10900),};// Respawn delay for the mobs in the first room, seconds Default: 25privatestatic final int FIRST_ROOM_RESPAWN_DELAY =25;//@formatter:off/*
* First room information, null if room not spawned
* Skill is casted on the boss when shaman is defeated and mobs respawn stopped
* Default: 5699 (decrease pdef)
*
* shaman npcId, minions npcId, skillId, skillLvl
*/privatestatic final int[][] FIRST_ROOM ={null,null,{22485,22486,5699,1},null,null,{22488,22489,5699,2},null,null,{22491,22492,5699,3},null,null,{22494,22495,5699,4},null,null,{22497,22498,5699,5},null,{22500,22501,5699,6},{22503,22504,5699,7},{25706,25707,5699,7}};/*
* First room spawns, null if room not spawned
*
* x, y, z
*/privatestatic final int[][][] FIRST_ROOM_SPAWNS ={null,null,{{-12381,-174973,-10955},{-12413,-174905,-10955},{-12377,-174838,-10953},{-12316,-174903,-10953},{-12326,-174786,-10953},{-12330,-175024,-10953},{-12211,-174900,-10955},{-12238,-174849,-10953},{-12233,-174954,-10953}},null,null,{{-12381,-174973,-10955},{-12413,-174905,-10955},{-12377,-174838,-10953},{-12316,-174903,-10953},{-12326,-174786,-10953},{-12330,-175024,-10953},{-12211,-174900,-10955},{-12238,-174849,-10953},{-12233,-174954,-10953}},null,null,{{-12381,-174973,-10955},{-12413,-174905,-10955},{-12377,-174838,-10953},{-12316,-174903,-10953},{-12326,-174786,-10953},{-12330,-175024,-10953},{-12211,-174900,-10955},{-12238,-174849,-10953},{-12233,-174954,-10953}},null,null,{{-12381,-174973,-10955},{-12413,-174905,-10955},{-12377,-174838,-10953},{-12316,-174903,-10953},{-12326,-174786,-10953},{-12330,-175024,-10953},{-12211,-174900,-10955},{-12238,-174849,-10953},{-12233,-174954,-10953}},null,null,{{-12381,-174973,-10955},{-12413,-174905,-10955},{-12377,-174838,-10953},{-12316,-174903,-10953},{-12326,-174786,-10953},{-12330,-175024,-10953},{-12211,-174900,-10955},{-12238,-174849,-10953},{-12233,-174954,-10953}},null,{{-12381,-174973,-10955},{-12413,-174905,-10955},{-12377,-174838,-10953},{-12316,-174903,-10953},{-12326,-174786,-10953},{-12330,-175024,-10953},{-12211,-174900,-10955},{-12238,-174849,-10953},{-12233,-174954,-10953}},{{-12381,-174973,-10955},{-12413,-174905,-10955},{-12377,-174838,-10953},{-12316,-174903,-10953},{-12326,-174786,-10953},{-12330,-175024,-10953},{-12211,-174900,-10955},{-12238,-174849,-10953},{-12233,-174954,-10953}},{{20409,-174827,-10912},{20409,-174947,-10912},{20494,-174887,-10912},{20494,-174767,-10912},{20614,-174887,-10912},{20579,-174827,-10912},{20579,-174947,-10912},{20494,-175007,-10912},{20374,-174887,-10912}}};/*
* Second room information, null if room not spawned
* Skill is casted on the boss when all mobs are defeated
* Default: 5700 (decrease mdef)
*
* npcId, skillId, skillLvl
*/privatestatic final int[][] SECOND_ROOM ={null,null,{22487,5700,1},null,null,{22490,5700,2},null,null,{22493,5700,3},null,null,{22496,5700,4},null,null,{22499,5700,5},null,{22502,5700,6},{22505,5700,7},{25708,5700,7}};/*
* Spawns for second room, null if room not spawned
*
* x, y, z
*/privatestatic final int[][][] SECOND_ROOM_SPAWNS ={null,null,{{-14547,-174901,-10690},{-14543,-175030,-10690},{-14668,-174900,-10690},{-14538,-174774,-10690},{-14410,-174904,-10690}},null,null,{{-14547,-174901,-10690},{-14543,-175030,-10690},{-14668,-174900,-10690},{-14538,-174774,-10690},{-14410,-174904,-10690}},null,null,{{-14547,-174901,-10690},{-14543,-175030,-10690},{-14668,-174900,-10690},{-14538,-174774,-10690},{-14410,-174904,-10690}},null,null,{{-14547,-174901,-10690},{-14543,-175030,-10690},{-14668,-174900,-10690},{-14538,-174774,-10690},{-14410,-174904,-10690}},null,null,{{-14547,-174901,-10690},{-14543,-175030,-10690},{-14668,-174900,-10690},{-14538,-174774,-10690},{-14410,-174904,-10690}},null,{{-14547,-174901,-10690},{-14543,-175030,-10690},{-14668,-174900,-10690},{-14538,-174774,-10690},{-14410,-174904,-10690}},{{-14547,-174901,-10690},{-14543,-175030,-10690},{-14668,-174900,-10690},{-14538,-174774,-10690},{-14410,-174904,-10690}},{{18175,-174991,-10653},{18070,-174890,-10655},{18157,-174886,-10655},{18249,-174885,-10653},{18144,-174821,-10648}}};// miniboss info// skill is casted on the boss when miniboss is defeated// npcId, x, y, z, skill id, skill level/*
* Miniboss information, null if miniboss not spawned
* Skill is casted on the boss when miniboss is defeated
* Default: 5701 (decrease patk)
*
* npcId, x, y, z, skillId, skillLvl
*/privatestatic final int[][] MINIBOSS ={null,null,{25616,-16874,-174900,-10427,5701,1},null,null,{25617,-16874,-174900,-10427,5701,2},null,null,{25618,-16874,-174900,-10427,5701,3},null,null,{25619,-16874,-174900,-10427,5701,4},null,null,{25620,-16874,-174900,-10427,5701,5},null,{25621,-16874,-174900,-10427,5701,6},{25622,-16874,-174900,-10427,5701,7},{25709,15828,-174885,-10384,5701,7}};/*
* Bosses of the kamaloka
* Instance ends when boss is defeated
*
* npcId, x, y, z
*/privatestatic final int[][] BOSS ={{18554,-88998,-220077,-7892},{18555,-81891,-220078,-7893},{29129,-20659,-174903,-9983},{18558,-89183,-213564,-8100},{18559,-81937,-213566,-8100},{29132,-20659,-174903,-9983},{18562,-89054,-206144,-8115},{18564,-81937,-206077,-8100},{29135,-20659,-174903,-9983},{18566,-56281,-219859,-8115},{18568,-49336,-220260,-8068},{29138,-20659,-174903,-9983},{18571,-56415,-212939,-8068},{18573,-56281,-206140,-8115},{29141,-20659,-174903,-9983},{18577,-49084,-206140,-8115},{29144,-20659,-174903,-9983},{29147,-20659,-174903,-9983},{25710,12047,-174887,-9944}};/*
* Escape telepoters spawns, null if not spawned
*
* x, y, z
*/privatestatic final int[][] TELEPORTERS ={null,null,{-10865,-174905,-10944},null,null,{-10865,-174905,-10944},null,null,{-10865,-174905,-10944},null,null,{-10865,-174905,-10944},null,null,{-10865,-174905,-10944},null,{-10865,-174905,-10944},{-10865,-174905,-10944},{21837,-174885,-10904}};/*
* Escape teleporter npcId
*/privatestatic final int TELEPORTER =32496;/*
* Kamaloka captains (start npc's) npcIds.
*/privatestatic final int[] CAPTAINS ={30332,30071,30916,30196,31981,31340};//@formatter:onprotectedclassKamaWorld extends InstanceWorld{publicint index;// 0-18 index of the kama type in arrayspublicint shaman =0;// objectId of the shamanpublicList<L2Spawn> firstRoom;// list of the spawns in the first room (excluding shaman)publicList<Integer> secondRoom;// list of objectIds mobs in the second roompublicint miniBoss =0;// objectId of the minibosspublic L2Npc boss =null;// boss}publicKamaloka(){
super(Kamaloka.class.getSimpleName());
addFirstTalkId(TELEPORTER);
addTalkId(TELEPORTER);
addStartNpc(CAPTAINS);
addTalkId(CAPTAINS);for(int[] mob : FIRST_ROOM){if(mob !=null){if(STEALTH_SHAMAN){
addKillId(mob[1]);}else{
addKillId(mob[0]);}}}for(int[] mob : SECOND_ROOM){if(mob !=null){
addKillId(mob[0]);}}for(int[] mob : MINIBOSS){if(mob !=null){
addKillId(mob[0]);}}for(int[] mob : BOSS){
addKillId(mob[0]);}}/**
* Check if party with player as leader allowed to enter
* @param player party leader
* @param index (0-18) index of the kamaloka in arrays
* @return true if party allowed to enter
*/privatestatic final boolean checkPartyConditions(L2PcInstance player,int index){if(player.isGM()){returntrue;}
final L2Party party = player.getParty();// player must be in party// ...and be party leader// party must not exceed max size for selected instanceif(party.getMemberCount()> MAX_PARTY_SIZE[index]){
player.sendPacket(SystemMessageId.PARTY_EXCEEDED_THE_LIMIT_CANT_ENTER);returnfalse;}// get level of the instance
final int level = LEVEL[index];// and client name
final String instanceName =InstanceManager.getInstance().getInstanceIdName(TEMPLATE_IDS[index]);Map<Integer,Long> instanceTimes;// for each party memberfor(L2PcInstance partyMember : party.getMembers()){// player level must be in rangeif(Math.abs(player.getLevel()- level)> MAX_LEVEL_DIFFERENCE){SystemMessage sm =SystemMessage.getSystemMessage(SystemMessageId.C1_S_LEVEL_REQUIREMENT_IS_NOT_SUFFICIENT_AND_CANNOT_BE_ENTERED);
sm.addPcName(player);
player.sendPacket(sm);returnfalse;}// player must be near party leaderif(!partyMember.isInsideRadius(player,1000,true,true)){SystemMessage sm =SystemMessage.getSystemMessage(SystemMessageId.C1_IS_IN_A_LOCATION_WHICH_CANNOT_BE_ENTERED_THEREFORE_IT_CANNOT_BE_PROCESSED);
sm.addPcName(partyMember);
player.sendPacket(sm);returnfalse;}// get instances reenter times for player
instanceTimes =InstanceManager.getInstance().getAllInstanceTimes(partyMember.getObjectId());if(instanceTimes !=null){for(int id : instanceTimes.keySet()){// find instance with same name (kamaloka or labyrinth)// TODO: Zoey76: Don't use instance name, use other system.if(!instanceName.equals(InstanceManager.getInstance().getInstanceIdName(id))){continue;}// if found instance still can't be reentered - exitif(System.currentTimeMillis()< instanceTimes.get(id)){SystemMessage sm =SystemMessage.getSystemMessage(SystemMessageId.C1_MAY_NOT_RE_ENTER_YET);
sm.addPcName(partyMember);
player.sendPacket(sm);returnfalse;}}}}returntrue;}/**
* Removing all buffs from player and pet except BUFFS_WHITELIST
* @param ch player
*/privatestatic final void removeBuffs(L2Character ch){for(L2Effect e : ch.getEffectList().getEffects()){if(e ==null){continue;}
L2Skill skill = e.getSkill();if(skill.isDebuff()|| skill.isStayAfterDeath()){continue;}if(Arrays.binarySearch(BUFFS_WHITELIST, skill.getId())>=0){continue;}
e.exit();}if(ch.getSummon()!=null){for(L2Effect e : ch.getSummon().getEffectList().getEffects()){if(e ==null){continue;}
L2Skill skill = e.getSkill();if(skill.isDebuff()|| skill.isStayAfterDeath()){continue;}if(Arrays.binarySearch(BUFFS_WHITELIST, skill.getId())>=0){continue;}
e.exit();}}}/**
* Handling enter of the players into kamaloka
* @param player party leader
* @param index (0-18) kamaloka index in arrays
*/private final synchronized void enterInstance(L2PcInstance player,int index){int templateId = TEMPLATE_IDS[index];// check for existing instances for this playerInstanceWorld world =InstanceManager.getInstance().getPlayerWorld(player);// player already in the instanceif(world !=null){// but not in kamalokaif(!(world instanceofKamaWorld)||(world.getTemplateId()!= templateId)){
player.sendPacket(SystemMessageId.YOU_HAVE_ENTERED_ANOTHER_INSTANT_ZONE_THEREFORE_YOU_CANNOT_ENTER_CORRESPONDING_DUNGEON);return;}// check for level difference again on reenterif(player.getLevel()<=10){SystemMessage sm =SystemMessage.getSystemMessage(SystemMessageId.C1_S_LEVEL_REQUIREMENT_IS_NOT_SUFFICIENT_AND_CANNOT_BE_ENTERED);
sm.addPcName(player);
player.sendPacket(sm);return;}// check what instance still existInstance inst =InstanceManager.getInstance().getInstance(world.getInstanceId());if(inst !=null){
removeBuffs(player);
teleportPlayer(player, TELEPORTS[index], world.getInstanceId());}return;}// Creating new kamaloka instanceif(!checkPartyConditions(player, index)){return;}// Creating dynamic instance without template
final int instanceId =InstanceManager.getInstance().createDynamicInstance(null);
final Instance inst =InstanceManager.getInstance().getInstance(instanceId);// set name for the kamaloka
inst.setName(InstanceManager.getInstance().getInstanceIdName(templateId));// set return location
inst.setExitLoc(newLocation(player));// disable summon friend into instance
inst.setAllowSummon(false);// set duration and empty destroy time
inst.setDuration(DURATION[index]*60000);
inst.setEmptyDestroyTime(EMPTY_DESTROY_TIME *60000);// Creating new instanceWorld, using our instanceId and templateId
world =newKamaWorld();
world.setInstanceId(instanceId);
world.setTemplateId(templateId);// set index for easy access to the arrays((KamaWorld) world).index = index;InstanceManager.getInstance().addWorld(world);
world.setStatus(0);// spawn npcs
spawnKama((KamaWorld) world);if(player.isGM()){
world.addAllowed(player.getObjectId());
removeBuffs(player);
teleportPlayer(player, TELEPORTS[index], instanceId);}else{// and finally teleport party into instance
final L2Party party = player.getParty();for(L2PcInstance partyMember : party.getMembers()){
world.addAllowed(partyMember.getObjectId());
removeBuffs(partyMember);
teleportPlayer(partyMember, TELEPORTS[index], instanceId);}}return;}/**
* Called on instance finish and handles reenter time for instance
* @param world instanceWorld
*/@Overrideprotected final void finishInstance(InstanceWorld world){if(world instanceofKamaWorld){Calendar reenter =Calendar.getInstance();
reenter.set(Calendar.MINUTE,10);// if time is >= RESET_HOUR - roll to the next dayif(reenter.get(Calendar.HOUR_OF_DAY)>= RESET_HOUR){
reenter.add(Calendar.DATE,1);}
reenter.set(Calendar.HOUR_OF_DAY, RESET_HOUR);SystemMessage sm =SystemMessage.getSystemMessage(SystemMessageId.INSTANT_ZONE_FROM_HERE_S1_S_ENTRY_HAS_BEEN_RESTRICTED);
sm.addInstanceName(world.getTemplateId());// set instance reenter time for all allowed playersfor(int objectId : world.getAllowed()){
L2PcInstance obj = L2World.getInstance().getPlayer(objectId);if((obj !=null)&& obj.isOnline()){InstanceManager.getInstance().setInstanceTime(objectId, world.getTemplateId(), reenter.getTimeInMillis());
obj.sendPacket(sm);}}// destroy instance after EXIT_TIMEInstance inst =InstanceManager.getInstance().getInstance(world.getInstanceId());
inst.setDuration(EXIT_TIME *60000);
inst.setEmptyDestroyTime(0);}}/**
* Spawn all NPCs in kamaloka
* @param world instanceWorld
*/private final void spawnKama(KamaWorld world){int[] npcs;int[][] spawns;
L2Npc npc;
final int index = world.index;// first room
npcs = FIRST_ROOM[index];
spawns = FIRST_ROOM_SPAWNS[index];if(npcs !=null){
world.firstRoom =newArrayList<>(spawns.length -1);int shaman = getRandom(spawns.length);// random position for shamanfor(int i =0; i < spawns.length; i++){if(i == shaman){// stealth shaman use same npcId as other mobs
npc = addSpawn(STEALTH_SHAMAN ? npcs[1]: npcs[0], spawns[i][0], spawns[i][1], spawns[i][2],0,false,0,false, world.getInstanceId());
world.shaman = npc.getObjectId();}else{
npc = addSpawn(npcs[1], spawns[i][0], spawns[i][1], spawns[i][2],0,false,0,false, world.getInstanceId());
L2Spawn spawn = npc.getSpawn();
spawn.setRespawnDelay(FIRST_ROOM_RESPAWN_DELAY);
spawn.setAmount(1);
spawn.startRespawn();
world.firstRoom.add(spawn);// store mobs spawns}
npc.setIsNoRndWalk(true);}}// second room
npcs = SECOND_ROOM[index];
spawns = SECOND_ROOM_SPAWNS[index];if(npcs !=null){
world.secondRoom =newArrayList<>(spawns.length);for(int[] spawn : spawns){
npc = addSpawn(npcs[0], spawn[0], spawn[1], spawn[2],0,false,0,false, world.getInstanceId());
npc.setIsNoRndWalk(true);
world.secondRoom.add(npc.getObjectId());}}// minibossif(MINIBOSS[index]!=null){
npc = addSpawn(MINIBOSS[index][0], MINIBOSS[index][1], MINIBOSS[index][2], MINIBOSS[index][3],0,false,0,false, world.getInstanceId());
npc.setIsNoRndWalk(true);
world.miniBoss = npc.getObjectId();}// escape teleporterif(TELEPORTERS[index]!=null){
addSpawn(TELEPORTER, TELEPORTERS[index][0], TELEPORTERS[index][1], TELEPORTERS[index][2],0,false,0,false, world.getInstanceId());}// boss
world.boss = addSpawn(BOSS[index][0], BOSS[index][1], BOSS[index][2], BOSS[index][3],0,false,0,false, world.getInstanceId());}/**
* Handles only player's enter, single parameter - integer kamaloka index
*/@Overridepublic final String onAdvEvent(String event, L2Npc npc, L2PcInstance player){
enterInstance(player,Integer.parseInt(event));return"";}/**
* Talk with captains and using of the escape teleporter
*/@Overridepublic final String onTalk(L2Npc npc, L2PcInstance player){
final int npcId = npc.getId();if(npcId == TELEPORTER){
final L2Party party = player.getParty();// only party leader can talk with escape teleporterif((party !=null)&& party.isLeader(player)){
final InstanceWorld world =InstanceManager.getInstance().getWorld(npc.getInstanceId());if(world instanceofKamaWorld){// party members must be in the instanceif(world.isAllowed(player.getObjectId())){Instance inst =InstanceManager.getInstance().getInstance(world.getInstanceId());// teleports entire party awayfor(L2PcInstance partyMember : party.getMembers()){if((partyMember !=null)&&(partyMember.getInstanceId()== world.getInstanceId())){
teleportPlayer(partyMember, inst.getExitLoc(),0);}}}}}}else{return npcId +".htm";}return"";}/**
* Only escape teleporters first talk handled
*/@Overridepublic final String onFirstTalk(L2Npc npc, L2PcInstance player){if(npc.getId()== TELEPORTER){if(player.isGM()){return"32496.htm";}if(player.isInParty()&& player.getParty().isLeader(player)){return"32496.htm";}return"32496-no.htm";}return"";}@Overridepublic final String onKill(L2Npc npc, L2PcInstance player, boolean isSummon){
final InstanceWorld tmpWorld =InstanceManager.getInstance().getWorld(npc.getInstanceId());if(tmpWorld instanceofKamaWorld){
final KamaWorld world =(KamaWorld) tmpWorld;
final int objectId = npc.getObjectId();// first room was spawned ?if(world.firstRoom !=null){// is shaman killed ?if((world.shaman !=0)&&(world.shaman == objectId)){
world.shaman =0;// stop respawn of the minionsfor(L2Spawn spawn : world.firstRoom){if(spawn !=null){
spawn.stopRespawn();}}
world.firstRoom.clear();
world.firstRoom =null;if(world.boss !=null){
final int skillId = FIRST_ROOM[world.index][2];
final int skillLvl = FIRST_ROOM[world.index][3];if((skillId !=0)&&(skillLvl !=0)){
final L2Skill skill =SkillData.getInstance().getInfo(skillId, skillLvl);if(skill !=null){
skill.getEffects(world.boss, world.boss);}}}return super.onKill(npc, player, isSummon);}}// second room was spawned ?if(world.secondRoom !=null){
boolean all =true;// check for all mobs in the second roomfor(int i =0; i < world.secondRoom.size(); i++){// found killed now mobif(world.secondRoom.get(i)== objectId){
world.secondRoom.set(i,0);}elseif(world.secondRoom.get(i)!=0){
all =false;}}// all mobs killed ?if(all){
world.secondRoom.clear();
world.secondRoom =null;if(world.boss !=null){
final int skillId = SECOND_ROOM[world.index][1];
final int skillLvl = SECOND_ROOM[world.index][2];if((skillId !=0)&&(skillLvl !=0)){
final L2Skill skill =SkillData.getInstance().getInfo(skillId, skillLvl);if(skill !=null){
skill.getEffects(world.boss, world.boss);}}}return super.onKill(npc, player, isSummon);}}// miniboss spawned ?if((world.miniBoss !=0)&&(world.miniBoss == objectId)){
world.miniBoss =0;if(world.boss !=null){
final int skillId = MINIBOSS[world.index][4];
final int skillLvl = MINIBOSS[world.index][5];if((skillId !=0)&&(skillLvl !=0)){
final L2Skill skill =SkillData.getInstance().getInfo(skillId, skillLvl);if(skill !=null){
skill.getEffects(world.boss, world.boss);}}}return super.onKill(npc, player, isSummon);}// boss was killed, finish instanceif((world.boss !=null)&&(world.boss == npc)){
world.boss =null;
finishInstance(world);}}return super.onKill(npc, player, isSummon);}@Overridepublicvoid onEnterInstance(L2PcInstance player,InstanceWorld world, boolean firstEntrance){}}
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.
So, make me understand one thing, you consider your previous work a crap? Everyone who has payd for l2jmobius subscription since 2018 untill 2024 had access to a crap version of your server and the best is the latest you release in this very moment to your actual subscribers?
Question
0flee
Hello, how i can delete a condition for party from Kamaloka instances? And i want to delete too level conditions. To make available after level 1-85.
Greetings
4 answers to this question
Recommended Posts
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.