• SEARCH

    통합검색
  • GAMEZONE
    • 커뮤니티
      • 공지사항
      • 유저게시판
        • 등업게시판
        • 출석체크
        • 정회원 무료자료실
      • 스크린샷
      • 인증자료실
    • 리니지
      • 게임공략 & 팁
      • 홍보게시판
      • 유틸자료실
      • 소스자료실
      • 자유게시판
      • 노하우 게시판
    • 메이플스토리
      • 게임공략 & 팁
      • 홍보게시판
      • 유틸자료실
      • 소스자료실
      • 자유게시판
      • 노하우 게시판
    • 바람의나라
      • 자유게시판
      • 홍보게시판
      • 자료게시판
        • 유틸자료실
        • 소스자료실
        • 클라이언트
        • 팩 자료실
      • 연구게시판
        • 개발내역
        • 질문과답변
        • 기타
      • 강의게시판
        • DR
        • CR
        • 구버전
        • 클라이언트 개조
        • 노하우 게시판
        • 게임공략 & 팁
    • 다크에덴
      • 게임공략 & 팁
      • 홍보게시판
      • 유틸자료실
      • 소스자료실
      • 자유게시판
      • 노하우 게시판
    • 믹스마스터
      • 게임공략 & 팁
      • 홍보게시판
      • 유틸자료실
      • 소스자료실
      • 자유게시판
      • 노하우 게시판
    • 라그나로크
      • 게임공략 & 팁
      • 홍보게시판
      • 유틸자료실
      • 소스자료실
      • 자유게시판
      • 노하우 게시판
    • 기타게임
      • 게임공략 & 팁
      • 홍보게시판
      • 유틸자료실
      • 소스자료실
      • 자유게시판
      • 노하우 게시판
    • 게임강의
    • 비베&포토샵
      • 자유게시판
      • 자료실
        • 일반자료실
        • 포인트 자료실
      • 노하우게시판
      • 포토샵게시판
    • 모바일
      • 게임공략
      • 포인트 자료실
      • 유틸자료실
      • 자유게시판
  • 리니지 소스자료실
    • 리니지 소스자료실 ()
    • 오림시스템[해양전]

      • 준희미니
      • 2016.06.29 - 14:08 73

    몬스터는 나비켓으로 만드세요..

     

    따로 안만들어드리겠습니다.

    공부공부!! 만드시는법 모르시는분은 검색 하셔서 한번해보세요! 참쉽죠잉

     

    주의!

    제 팩은 에바팩이 아닙니다 에바이용하시는분들은 자바 설정잘하시구. 단어 잘보세요

     

     

    C_NpcAction.java

     

    import l1j.server.model.L1OrimQuest; //추가

     

    htmlid = "";//검색

     

    } else if (((L1NpcInstance) obj). getNpcTemplate (). getNpcId () == 91329) { //오림

       if (s.equalsIgnoreCase ( "enter")) {
     
        boolean entrance = false;
     
        if (pc.isInParty ()) {

         if (pc.getParty (). isLeader (pc)) { 
          int members = 1;

          for (L1PcInstance player : L1World.getInstance (). getVisiblePlayer (pc)) {
     
           if (pc.getParty (). isMember (player)) {
     
            members + +;
     
            if (pc.getParty (). getNumOfMembers () == members &&
     
              pc.getParty (). getNumOfMembers ()> 1) {
     
                      entrance = true;
     
            }
     
           }
     
          }
     
         }
     
        }
     
        if (pc.isGm ()) {

         int instanceMap = L1OrimQuest.getInstance (). setActiveMaps (9101);
     
         L1Teleport.teleport (pc, 32798, 32805, (short) (instanceMap), 6, true);
     
         L1OrimQuest.getInstance (). getActiveMaps (instanceMap). start ();
     
         return;
     
        }
     
        if (entrance) {/ / 입장 
         if (L1OrimQuest.getInstance (). getNumOfActiveMaps () <50) {
     
          int instanceMap = L1OrimQuest.getInstance (). setActiveMaps (9101);
     
          for (L1PcInstance ptmember : pc.getParty (). getMembers ()) {
     
           L1PolyMorph.undoPoly (ptmember) ;

           L1Teleport.teleport (ptmember, 32798, 32805, (short) (instanceMap), 6, true);

          }

          L1OrimQuest.getInstance (). getActiveMaps (instanceMap). start ();

         }
     
        } else {
     
         htmlid = "";
     
        }

       }
    /////////////////////////////////

    } else {
      htmlid = "j_html02";
     
        } //검색

    ////////////////////추가////
    } else if (s.equalsIgnoreCase ( "b")) {

        if (! pc.isGm ()) {

         return;

        }

        if (pc.getInventory (). checkItem (L1ItemId.ADENA 10000)

          && pc.getInventory (). checkItem (50025, 1)) {

         int mate = 1;

         if (pc.getInventory (). countItems (50025)> 3) {

          mate = pc.getInventory (). countItems (50025) - 2;

         }

         if (! pc.isGm ()) {

          pc.getInventory (). consumeItem (50025, mate);

          pc.getInventory (). consumeItem (L1ItemId.ADENA, 10000);

         }
     
         htmlid = "";

         L1Teleport
     
           . teleport (pc, 32745, 32855, (short) 9202, 6, true);
     
        } else {
     
         htmlid = "j_html02";
     
        }
    ////////////////////////////////////

    } else {
      htmlid = "j_html06";
     
        } //검색

    ////////////추가
    } else if (s.equalsIgnoreCase ( "e")) {

        if (pc.getInventory (). checkItem (50026,1) / / 오림의 일기 6 월 14 일

          && pc.getInventory (). checkItem (50027,1) / / 오림의 일기 6 월 16 일

          && pc.getInventory (). checkItem (50028,1) / / 오림의 일기 6 월 18 일

          && pc.getInventory (). checkItem (50029,1) / / 오림의 일기 6 월 21 일

          && pc.getInventory (). checkItem (50030,1) / / 오림의 일기 6 월 22 일
     
          && pc.getInventory (). checkItem (50031,1) / / 오림의 일기 6 월 25 일
     
          && pc.getInventory (). checkItem (50032,1) / / 오림의 일기 7 월 5 일
     
          && pc.getInventory (). checkItem (50033,1) / / 오림의 일기 7 월 17 일

          && pc.getInventory (). checkItem (50034,1) / / 오림의 일기 7 월 18 일
     
          && pc.getInventory (). checkItem (50035,1) / / 오림의 일기 8 월 5 일
     
          && pc.getInventory (). checkItem (50036,1) / / 오림의 일기 8 월 8 일

          && pc.getInventory (). checkItem (50037,1) / / 오림의 일기 8 월 9 일

          && pc.getInventory (). checkItem (50038,1) / / 오림의 일기 8 월 10 일

          && pc.getInventory (). checkItem (50039,1) / / 오림의 일기 8 월 11 일

          && pc.getInventory (). checkItem (50040,1) / / 오림의 일기 8 월 12 일

          && pc.getInventory (). checkItem (50041,1) / / 오림의 일기 8 월 13 일

          && pc.getInventory (). checkItem (50042,1) / / 오림의 일기 8 월 14 일


         ) {

         materials = new int [] {50026,50027,50028,50029,50030,50031,50032,50033,

            50034,50035,50036,50037,50038,50039,50040,50041,50042,50043}; / / 아데나,

         counts = new int [] {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1};

         createitem = new int [] {50044}; / / 오림의 일기장

         createcount = new int [] {1};
     
         htmlid = "j_html04";

        } else {
     
         htmlid = "j_html06";
     
        }
       }
    //////////////////////////////////////////////
    S_RedMessage.java 자바 한개만드세요 없는분들
    ////////////////////////////////////////////

     
     /* This program is free software : you can redistribute it and / or modify
     
     * it under the terms of the GNU General Public License as published by
     
     * the Free Software Foundation, either version 3 of the License, or
     
     * (at your option) any later version.
     
     *
     
     * This program is distributed in the hope that it will be useful,
     
     * but WITHOUT ANY WARRANTY; without even the implied warranty of
     
     * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
     
     * GNU General Public License for more details.
     
     *
     
     * You should have received a copy of the GNU General Public License
     
     * along with this program. If not, see <http://www.gnu.org/licenses/>.
     
     * /
     
    package l1j.server.packets.server;
     
    import java.util.logging.Logger;
     
    import l1j.server.codes.Opcodes;
     
    public class S_RedMessage extends ServerBasePacket {
     
     private static Logger _log = Logger.getLogger (S_RedMessage.class.getName ());
     
     private static final String S_RedMessage = "[S] S_RedMessage";
     
     public S_RedMessage (String s) {
     
      writeC (Opcodes.S_OPCODE_ACTIVESPELLS);
     
      writeC (0x54);
     
      writeC (0x02);
     
      writeS ( "\ \ f3"+ s);
     
     }
     
     @ Override
     
     public byte [] getContent () {
     
      return getBytes ();
     
     }
     
     @ Override
     
     public String getType () {
     
      return S_RedMessage;
     
     } 
    }
    //////////////////////////
    S_DisplayClack.java 만드세요
    /////////////////////////

    /* This program is free software : you can redistribute it and / or modify
     
     * it under the terms of the GNU General Public License as published by
     
     * the Free Software Foundation, either version 3 of the License, or
     
     * (at your option) any later version.
     
     *
     
     * This program is distributed in the hope that it will be useful,
     
     * but WITHOUT ANY WARRANTY; without even the implied warranty of
     
     * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
     
     * GNU General Public License for more details.
     
     *
     
     * You should have received a copy of the GNU General Public License
     
     * along with this program. If not, see <http://www.gnu.org/licenses/>.
     
     * /

    package l1j.server.packets.server;
     
    import java.util.logging.Logger;
     
    import l1j.server.codes.Opcodes;
     
    public class S_DisplayClack extends ServerBasePacket {
     
     private static Logger _log = Logger.getLogger (S_DisplayClack.class.getName ());
     
     private static final String S_DisplayClack = "[S] S_DisplayClack";
     
     public S_DisplayClack () {
     
      writeC (Opcodes.S_OPCODE_ACTIVESPELLS);
     
      writeC (0x53);
     
      writeC (0x01);
     
      writeC (0x00);
     
      writeC (0x00);
     
      writeC (0x00);
     
      writeC (0x01);
     
      writeC (0x1d);
     
     }
     
     @ Override
     
     public byte [] getContent () {
     
      return getBytes ();
     
     }
     
     @ Override
     
     public String getType () {
     
      return S_DisplayClack;
     
     } 
    }
    //////////////////
    S_YellowMessage.java 만드세요
    /////////////////

    /* This program is free software : you can redistribute it and / or modify
     
     * it under the terms of the GNU General Public License as published by
     
     * the Free Software Foundation, either version 3 of the License, or
     
     * (at your option) any later version.
     
     *
     
     * This program is distributed in the hope that it will be useful,
     
     * but WITHOUT ANY WARRANTY; without even the implied warranty of
     
     * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
     
     * GNU General Public License for more details.
     
     *
     
     * You should have received a copy of the GNU General Public License
     
     * along with this program. If not, see <http://www.gnu.org/licenses/>.
     
     * /
    package l1j.server.packets.server;

    import java.util.logging.Logger;
     
    import l1j.server.codes.Opcodes;
     
    public class S_YellowMessage extends ServerBasePacket {
     
     private static Logger _log = Logger.getLogger (S_YellowMessage.class.getName ());
     
     private static final String S_YellowMessage = "[S] S_YellowMessage";
     
     public S_YellowMessage (String s) {
     
      writeC (Opcodes.S_OPCODE_ACTIVESPELLS);
     
      writeC (0x54);
     
      writeC (0x02);
     
      writeS ( "\ \ f ="+ s);
     
     }
     
     @ Override
     
     public byte [] getContent () {
     
      return getBytes ();
     
     }
     
     @ Override
     
     public String getType () {
     
      return S_YellowMessage;
     
     } 
    }
    ///////////////
    S_BlackWindow.java 만드세요
    /////////////////////

    /* This program is free software : you can redistribute it and / or modify
     
     * it under the terms of the GNU General Public License as published by
     
     * the Free Software Foundation, either version 3 of the License, or
     
     * (at your option) any later version.
     
     *
     
     * This program is distributed in the hope that it will be useful,
     
     * but WITHOUT ANY WARRANTY; without even the implied warranty of
     
     * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
     
     * GNU General Public License for more details.
     
     *
     
     * You should have received a copy of the GNU General Public License
     
     * along with this program. If not, see <http://www.gnu.org/licenses/>.
     
     * /
    package l1j.server.packets.server;
     
    import java.util.logging.Logger;
     
    import l1j.server.codes.Opcodes;
     
    public class S_BlackWindow extends ServerBasePacket {

     private static Logger _log = Logger.getLogger (S_BlackWindow.class.getName ());
     
     private static final String S_BlackWindow = "[S] S_BlackWindow";
     
     public S_BlackWindow () {
     
      writeC (Opcodes.S_OPCODE_ACTIVESPELLS);
     
      writeC (0x53);
     
      writeC (0x04);
     
      writeC (0x00);
     
      writeC (0x00);
     
      writeC (0x00);
     
      writeC (0x01);
     
      writeC (0x1d);
     
     }
     
     @ Override
     
     public byte [] getContent () {
     
      return getBytes ();

     }
     
     @ Override

     public String getType () {
     
      return S_BlackWindow;
     
     } 
    }

    l1j/server/templates/L1DoorGfx.java


    Private L1DoorGfx (int gfxId, int direction, int rightEdgeOffset, //이것을
    Public L1DoorGfx (int gfxId, int direction, int rightEdgeOffset,  //이것으로

    //////////////////////
    model/L1OrimQuest.java 만드세요
    //////////////////////////

    package l1j.server.model;
     
    import java.util.HashMap;
     
    import java.util.logging.Logger;

    import l1j.server.model.etc.L1OrimQuestInstance;
     
    import l1j.server.model.map.L1InstanceMap;
     
    public class L1OrimQuest {
     
     private static Logger _log = Logger.getLogger (L1OrimQuest.class.getName ());
     
     
     
     private static HashMap <Integer, L1OrimQuestInstance> _activeMaps;

     private static L1OrimQuest _instance;
     
     public static L1OrimQuest getInstance () {
     
      if (_instance == null) {
     
       _instance = new L1OrimQuest ();
     
      }
     
      return _instance;
     
     }
     

     L1OrimQuest () {
     
      _activeMaps = new HashMap <Integer, L1OrimQuestInstance> ();
     
     }
     
      ///////////////////////지정자////
     
     public L1OrimQuestInstance getActiveMaps (int mapId) {

      if (! _activeMaps.containsKey (mapId)) {

       return null;
     
      }
     
      return _activeMaps.get (mapId);
     
     }

     ///////////해쉬맵///
     
     public short setActiveMaps (int mapId) {
     
      int instanceMapId = L1InstanceMap.getInstance (). addInstanceMap (mapId);
     
      L1OrimQuestInstance obj = new L1OrimQuestInstance ((short) instanceMapId);
     
      _activeMaps.put (instanceMapId, obj);
     
      return obj.getMapId ();
     
     }
     
     
     
     ////////완료부분 맵가동///
     
     public void resetActiveMaps (int mapId) {
     
      if (! _activeMaps.containsKey (mapId)) {
     
       return;
     
      }
     
      _activeMaps.remove (mapId);
     
      L1InstanceMap.getInstance (). removeInstanceMap (mapId);
     
     }
     
     
     
             ///시작할때 //
     
     public int getNumOfActiveMaps () {
     
      return _activeMaps.size ();
     
     }
     
    }


    L1NpcInstance.java
    import l1j.server.model.L1OrimQuest; //추가

     

     else if (getNpcId () == 91297) {//검색

    윗 부분에

    if (L1HardinQuest.getInstance (). getActiveMaps (getMapId ()). isActive ()) { //추가
    L1HardinQuest.getInstance (). getActiveMaps (getMapId ()). setActionHardin (pc, actionId);

     else if (getNpcId () == 91297) {//검색

           아랫부분에

    if (L1HardinQuest.getInstance (). getActiveMaps (getMapId ()). isActive ()) {
        L1HardinQuest.getInstance (). getActiveMaps (getMapId ()). setActionKerenis (pc, actionId);

       }

      } else if (getNpcId () == 91449) {/ / 배


        L1OrimQuest.getInstance (). getActiveMaps (getMapId ()). setAction (pc, actionId);
       }

    L1MonsterInstance.java
    import l1j.server.model.L1OrimQuest;//추가

    private void doExecutionWhenNpcDied () throws InterruptedException {//검색
    if (91265 <= getNpcId () && 91268> = getNpcId ()) { //추가

    . lunkerDie (this);//검색
    }
    }

    } else if (getNpcId () == 91455) {/ / 주술 미믹

       if (L1OrimQuest.getInstance (). getActiveMaps (getMapId ())! = null) {

        L1OrimQuest.getInstance (). getActiveMaps (getMapId ()). mimicDie (this);

       }
     
      } else if (getNpcId () == 91481) {/ / 크라켄
     
       if (L1OrimQuest.getInstance (). getActiveMaps (getMapId ())! = null) {

        L1OrimQuest.getInstance (). getActiveMaps (getMapId ()). crakenDead ();
     
       }

      } else if (getNpcId () == 91492) {/ / 오른쪽

       if (L1OrimQuest.getInstance (). getActiveMaps (getMapId ())! = null) {
     
        L1OrimQuest.getInstance (). getActiveMaps (getMapId ()). crakenTailDead_Right ();
     
       }

      } else if (getNpcId () == 91491) {/ /  왼쪽
     
       if (L1OrimQuest.getInstance (). getActiveMaps (getMapId ())! = null) {

        L1OrimQuest.getInstance (). getActiveMaps (getMapId ()). crakenTailDead_Left ();
     
       }

     

    그다음 적정부분에

     

    private boolean _isCurseMimic;

     public void setCurseMimic (boolean curseMimic) {

      _isCurseMimic = curseMimic;
     
     }

     
     public boolean isCurseMimic () {
     
      return _isCurseMimic;
     
     } 
    }

    L1TrodSwitch.java

    import l1j.server.model.L1OrimQuest; //임포트 추가
    import l1j.server.model.L1Teleport;
    import l1j.server.model.instance.L1PcInstance;

               L1Location loc; //검색 
       switch (_switchId) {

      class SwitchThread implements Runnable { //변경 기존거 주석처리. 혹시대비.
      
      @ Override

      public void run () {

     

       / / IF 문은 else 구성

       try {
     
        int mapId = _trodFrom.getMapId ();
     
        boolean onPc;
     
        L1Location loc;

        switch (_switchId) {

    L1Location (32666,32797, _trodFrom.getMapId ()), 5); //검색
        break;

    case 14 :/ /추가
     
         if (L1OrimQuest.getInstance (). getActiveMaps (mapId) == null) return;

         L1Teleport.teleport (_trodFrom, new L1Location (32677,32800, _trodFrom.getMapId ()), 5, true);
     
        break;
     
        case 15 :/ / 과거 오림의 연락선 -> 선내에

         if (L1OrimQuest.getInstance (). getActiveMaps (mapId) == null) return;
     
         L1Teleport.teleport (_trodFrom, new L1Location (32677,32864, _trodFrom.getMapId ()), 5, true);

        break;
     
        case 16 :/ / 과거 오림의 연락선 -> 선내에
     
         if (L1OrimQuest.getInstance (). getActiveMaps (mapId) == null) return;
     
         L1Teleport.teleport (_trodFrom, new L1Location (32741,32860, _trodFrom.getMapId ()), 5, true);

        break;
     
        case 17 :/ / 과거 오림의 연락선 -> 선내에
     
         if (L1OrimQuest.getInstance (). getActiveMaps (mapId) == null) return;
     
         L1Teleport.teleport (_trodFrom, new L1Location (32805,32862, _trodFrom.getMapId ()), 5, true);
     
        break;

        case 18 :/ / 선내 -> 과거 오림의 연락선에

         if (L1OrimQuest.getInstance (). getActiveMaps (mapId) == null) return;
     
         L1Teleport.teleport (_trodFrom, new L1Location (32792,32802, _trodFrom.getMapId ()), 2, true);
     
        break;

    ///////////////////////
    L1OrimQuestInstance.java 만드세요
    //////////////////////


    /*
     * This program is free software: you can redistribute it and/or modify
     * it under the terms of the GNU General Public License as published by
     * the Free Software Foundation, either version 3 of the License, or
     * (at your option) any later version.
     *
     * This program is distributed in the hope that it will be useful,
     * but WITHOUT ANY WARRANTY; without even the implied warranty of
     * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     * GNU General Public License for more details.
     *
     * You should have received a copy of the GNU General Public License
     * along with this program.  If not, see <
    http://www.gnu.org/licenses/>.
     */

    package jp.l1j.server.model.etc;

    import java.util.ArrayList;
    import java.util.Collections;
    import java.util.Timer;
    import java.util.TimerTask;
    import l1j.server.codes.ActionCodes;
    import l1j.server.datatables.DoorTable;
    import l1j.server.datatables.NpcTable;
    import l1j.server.datatables.TrapTable;
    import l1j.server.model.L1Location;
    import l1j.server.model.L1Object;
    import l1j.server.model.L1OrimQuest;
    import l1j.server.model.L1Teleport;
    import l1j.server.model.L1World;
    import l1j.server.model.instance.L1DoorInstance;
    import l1j.server.model.instance.L1EffectInstance;
    import l1j.server.model.instance.L1FieldObjectInstance;
    import l1j.server.model.instance.L1ItemInstance;
    import l1j.server.model.instance.L1MonsterInstance;
    import l1j.server.model.instance.L1NpcInstance;
    import l1j.server.model.instance.L1PcInstance;
    import l1j.server.model.instance.L1TrapInstance;
    import l1j.server.model.inventory.L1Inventory;
    import l1j.server.model.trap.L1Trap;
    import l1j.server.model.trap.L1WorldTraps;
    import l1j.server.packets.server.S_BlackWindow;
    import l1j.server.packets.server.S_DisplayClack;
    import l1j.server.packets.server.S_DoActionGFX;
    import l1j.server.packets.server.S_EffectLocation;
    import l1j.server.packets.server.S_GreenMessage;
    import l1j.server.packets.server.S_NpcPack;
    import l1j.server.packets.server.S_RedMessage;
    import l1j.server.packets.server.S_ShockWave;
    import l1j.server.packets.server.S_SkillSound;
    import l1j.server.packets.server.S_Sound;
    import l1j.server.packets.server.S_YellowMessage;
    import l1j.server.packets.server.ServerBasePacket;
    import l1j.server.random.RandomGenerator;
    import l1j.server.random.RandomGeneratorFactory;
    import l1j.server.templates.L1DoorGfx;
    import l1j.server.types.Point;
    import l1j.server.utils.IdFactory;

    public class L1OrimQuestInstance {
     private short _mapId;  //만들어진 맵
     private int _OrimQuestStatus;//진행상태보자 귀찬게하는 오림이네
     private boolean _isDeleteTransactionNow;//선박 장비 사용하니?너니?
     private boolean _acceptOrder;/
     private int _comeShipCount ;
     private boolean _extraShipCome;
     private boolean _isRankSelected;
     private boolean _isCrakenDead;
     private boolean _isLastBossDead;

     private L1NpcInstance _ship;
     private L1NpcInstance _diffence_rune_1;
     private L1NpcInstance _diffence_rune_2;
     private L1NpcInstance _attack_rune;
     private L1NpcInstance _portal_rune;
     private L1NpcInstance _cannon_1;
     private L1NpcInstance _cannon_2;
     private L1NpcInstance _shipWall;
     private L1NpcInstance _craken_tail_left;
     private L1NpcInstance _craken_tail_right;
     private L1MonsterInstance _mimic_A;
     private L1MonsterInstance _mimic_B;
     private L1MonsterInstance _mimic_C;
     private L1DoorInstance _createDoor;
     private L1TrapInstance _moveTrap;
     private int _startPoint;
     private int _endPoint;

     private int[] _roundDiffenceStatus= new int[12];
     private int[] _roundHitDamage= new int[12];
     private int[] _roundStatus = new int[12];
     private int[] _bonusRoundStatus = new int[12];
     private int _currentRound;
     private int _point;//위치 저장합세
     private int _ship_burning;
     private int _tempNpcNumber;
     private static RandomGenerator _random = RandomGeneratorFactory.newRandom();
     void init(){
      _cannon_1 = spawnOne(new L1Location(32803,32809,_mapId),91450 ,0);
      _cannon_2 = spawnOne(new L1Location(32792,32809,_mapId),91451 ,0);
      _cannon_1.getMap().setPassable(32803, 32809, false);
      _cannon_2.getMap().setPassable(32792, 32809, false);
      _shipWall = spawnOne(new L1Location(32799,32806,_mapId),91449 ,0);
      _shipWall.setStatus(32);
      L1DoorGfx gfx = new L1DoorGfx(2510, 0, 10, -10);

      _createDoor = DoorTable.getInstance().createDoor(0, gfx,
        new L1Location(32798, 32795, _mapId), 0, 0, false);
      spawnOne(new L1Location(32677,32800,_mapId), 91452, 0);//포탈
      spawnOne(new L1Location(32677,32864,_mapId), 91452, 0);//포탈
      spawnOne(new L1Location(32741,32860,_mapId), 91452, 0);//포탈
      spawnOne(new L1Location(32805,32862,_mapId), 91452, 0);///포탈
      setSwitch(new L1Location(32677,32800,_mapId), 74);//포탈
      setSwitch(new L1Location(32677,32864,_mapId), 74);///포탈
      setSwitch(new L1Location(32741,32860,_mapId), 74);///포탈
      setSwitch(new L1Location(32805,32862,_mapId), 74);///포탈
     }

     public static final int _STATUS_ORIMQUEAT_NONE = 0;
     public static final int _STATUS_ORIMQUEAT_READY_1 = 1;
     public static final int _STATUS_ORIMQUEAT_READY_2= 2;
     public static final int _STATUS_ORIMQUEAT_READY_3 = 3;
     public static final int _STATUS_ORIMQUEAT_READY_4 = 4;
     public static final int _STATUS_ORIMQUEAT_READY_5 = 30;
     public static final int _STATUS_ORIMQUEAT_READY_6 = 31;
     public static final int _STATUS_ORIMQUEAT_READY_7 = 32;
     public static final int _STATUS_ORIMQUEAT_READY_8 = 33;
     public static final int _STATUS_ORIMQUEAT_READY_8_1 = 50;
     public static final int _STATUS_ORIMQUEAT_READY_8_2 = 51;
     public static final int _STATUS_ORIMQUEAT_READY_8_3 = 52;
     public static final int _STATUS_ORIMQUEAT_READY_9 = 34;
     public static final int _STATUS_ORIMQUEAT_READY_10 = 35;
     public static final int _STATUS_ORIMQUEAT_READY_11 = 36;
     public static final int _STATUS_ORIMQUEAT_READY_11_1 = 37;
     public static final int _STATUS_ORIMQUEAT_READY_11_2 = 38;

     public static final int _STATUS_ORIMQUEAT_START = 5;
     public static final int _STATUS_ORIMQUEAT_START_2 = 6;
     public static final int _STATUS_ORIMQUEAT_START_2_1 = 7;
     public static final int _STATUS_ORIMQUEAT_START_2_2 = 8;
     public static final int _STATUS_ORIMQUEAT_START_2_3 = 9;
     public static final int _STATUS_ORIMQUEAT_START_2_4 = 10;
     public static final int _STATUS_ORIMQUEAT_START_3 = 11;
     public static final int _STATUS_ORIMQUEAT_START_3_1 = 12;
     public static final int _STATUS_ORIMQUEAT_START_3_2 = 13;
     public static final int _STATUS_ORIMQUEAT_START_3_3 = 14;
     public static final int _STATUS_ORIMQUEAT_END_1 = 15;
     public static final int _STATUS_ORIMQUEAT_END_2 = 16;
     public static final int _STATUS_ORIMQUEAT_END_3 = 17;
     public static final int _STATUS_ORIMQUEAT_END_4 = 18;
     public static final int _STATUS_ORIMQUEAT_END_5 = 19;
     public static final int _STATUS_ORIMQUEAT_END_6 = 21;
     public static final int _STATUS_ORIMQUEAT_END = 20;

     public static final int _STATUS_MOVE_SHIP_1 = 99;
     public static final int _STATUS_MOVE_SHIP_2 = 98;
     public static final int _STATUS_MOVE_SEA_MONSTER = 100;
     public static final int _STATUS_ORIMQUEST_MONITOR = 1000;
     public static final int _STATUS_SPAWN_MONSTERS = 10001;
     public static final int _STATUS_CREATE_RUNES = 10002;
     public static final int _STATUS_ENEMY_CANON = 10003;
     public static final int _STATUS_FIRE_CANON_1 = 10004;
     public static final int _STATUS_FIRE_CANON_2 = 10005;

     static final int STATUS_ORIMQUEAT_LIMIT = 25;
     static final int STATUS_ORIMQUEAT_LIMIT2 = 26;
     static final int STATUS_ORIMQUEAT_LIMIT3 = 27;

     public boolean _IS_SPAWN_SHIP_TYPEA ;
     public boolean _IS_SPAWN_SHIP_TYPEB ;
     public boolean _IS_SPAWN_SHIP_TYPEC ;

     public static final int STATUS_NONE = 0;
     public static final int STATUS_READY_SPAWN = 1;
     public static final int STATUS_SPAWN = 2;

     private int _action;//액션값 뭐냐

     private int[] _pointMessages = {10638,10639,10640,10641,10642,
       10643,10644,10645,10646,10647,10648,10649,10666,10667,10668,10669,10670,10671,10672,
       10673,10674,10675,10676,10677,10678,10679,10680,10681,10682,10683,10684,10685,10686};

     private int[] _monstersA = { 91278, //몬스터이름 쓰는게 귀찬아 시간날때 하귀
             91273, 
             91459, 
             91457, 
             91456, 
             91458, 
             91460, 
             91464, 
             91461, 
             91280, 
             91462, 
             91463, 
             91495, 
             91292, 
             91465, 
             91466, 
             91467, 
             91468, 
             91469, 
             91470 
            };
     private int[] _monstersB = { 45374, //몬스터이름 쓰는게 귀찬아 시간날때 하귀
             45825, 
             45827, 
             45874, 
            };
     private int[] _monstersC = { 46057, //몬스터이름 쓰는게 귀찬아 시간날때 하귀
             46056, 
             46059, 
             46058, 
             45502 
            };

     public L1OrimQuestInstance(short mapId) {
      setMapId(mapId);
      init();//처음으로 초기화
     }

     /**
      * 시작해보자
      */
     public void start() {
      if(_STATUS_ORIMQUEAT_NONE  == _OrimQuestStatus){
       OrimQuestTimer timer_start = new OrimQuestTimer(
         _STATUS_ORIMQUEAT_NONE, 0);
       timer_start.begin();
      }
     }

     /**
      * 스레뒤
      */
     class OrimQuestTimer extends TimerTask {
      int _time;//시작
      int _order;//처리구간
      OrimQuestTimer(int order,int time){
       _time= time;
       _order= order;
      }

      public void begin() {
       final Timer timer = new Timer();
       timer.schedule(this, _time);
      }

      @Override
      public void run() {
       if(!_isDeleteTransactionNow){//
        switch (_order) {
         /**********시작하자고 **************/
         case _STATUS_ORIMQUEAT_NONE:
          setOrimQuestStatus(_STATUS_ORIMQUEAT_READY_1);//상태확인
          OrimQuestTimer timer_1 = new OrimQuestTimer(
             _STATUS_ORIMQUEAT_READY_1, 12000);
          timer_1.begin();
          //모니터용
          OrimQuestTimer monitor = new OrimQuestTimer(
             _STATUS_ORIMQUEST_MONITOR,30000);
          monitor.begin();
         break;
         case _STATUS_ORIMQUEAT_READY_1:
          setOrimQuestStatus(_STATUS_ORIMQUEAT_READY_2);
          sendMessage("$9529", 0);
          OrimQuestTimer timer_2 = new OrimQuestTimer(
            _STATUS_ORIMQUEAT_READY_2, 8000);
          timer_2.begin();
         break;
         case _STATUS_ORIMQUEAT_READY_2:
          _action = 0;
          setOrimQuestStatus(_STATUS_ORIMQUEAT_READY_3);
          sendMessage("$9530", 0);
          OrimQuestTimer timer_3 = new OrimQuestTimer(
            _STATUS_ORIMQUEAT_READY_3, 8000);
          timer_3.begin();
         break;
         case _STATUS_ORIMQUEAT_READY_3:
          int action = _action ;
          _action = 0;

          if(action == 68){
           setOrimQuestStatus(_STATUS_ORIMQUEAT_START);
           OrimQuestTimer timer_start1 = new OrimQuestTimer(
             _STATUS_ORIMQUEAT_START, 8000);
           timer_start1.begin();
          }else{
           
           setOrimQuestStatus(_STATUS_ORIMQUEAT_READY_4);
           sendMessage("$9531", 0);
           OrimQuestTimer timer_4 = new OrimQuestTimer(
             _STATUS_ORIMQUEAT_READY_4, 8000);
           timer_4.begin();
          }
         break;
         case _STATUS_ORIMQUEAT_READY_4:
          setOrimQuestStatus(_STATUS_ORIMQUEAT_READY_5);
          sendMessage("$9532", 0);
          OrimQuestTimer timer_5 = new OrimQuestTimer(
            _STATUS_ORIMQUEAT_READY_5, 8000);
          timer_5.begin();
         break;
         case _STATUS_ORIMQUEAT_READY_5:
          setOrimQuestStatus(_STATUS_ORIMQUEAT_READY_6);
          sendMessage("$9533", 0);
          OrimQuestTimer timer_6 = new OrimQuestTimer(
            _STATUS_ORIMQUEAT_READY_6, 8000);
          timer_6.begin();
         break;
         case _STATUS_ORIMQUEAT_READY_6:
          setOrimQuestStatus(_STATUS_ORIMQUEAT_READY_7);
          sendMessage("$9534", 0);
          _attack_rune = spawnOne(L1Location.randomLocation(new L1Location(32799,32803,_mapId), 1, 6, false), 91454, 5);
          OrimQuestTimer timer_7 = new OrimQuestTimer(
            _STATUS_ORIMQUEAT_READY_7, 8000);
          timer_7.begin();
         break;
         case _STATUS_ORIMQUEAT_READY_7:
          setOrimQuestStatus(_STATUS_ORIMQUEAT_READY_8);
          sendMessage("$9535", 0);
          OrimQuestTimer timer_8 = new OrimQuestTimer(
            _STATUS_ORIMQUEAT_READY_8, 8000);
          timer_8.begin();
         break;
         case _STATUS_ORIMQUEAT_READY_8:
          _action = 0;
          setOrimQuestStatus(_STATUS_ORIMQUEAT_READY_8_1);
          sendMessage("$9536", 0);
          OrimQuestTimer timer_8_1 = new OrimQuestTimer(
            _STATUS_ORIMQUEAT_READY_8_1, 8000);
          timer_8_1.begin();
         break;
         case _STATUS_ORIMQUEAT_READY_8_1:
          if(_attack_rune == null){
           setOrimQuestStatus(_STATUS_ORIMQUEAT_READY_9);
           OrimQuestTimer timer_9 = new OrimQuestTimer(
             _STATUS_ORIMQUEAT_READY_9, 8000);
           timer_9.begin();
          }else{
           setOrimQuestStatus(_STATUS_ORIMQUEAT_READY_8_2);
           sendMessage("$9545", 0);
           OrimQuestTimer timer_8_2 = new OrimQuestTimer(
             _STATUS_ORIMQUEAT_READY_8_2, 8000);
           timer_8_2.begin();
          }

         break;
         case _STATUS_ORIMQUEAT_READY_8_2:
          if(_attack_rune == null){
           setOrimQuestStatus(_STATUS_ORIMQUEAT_READY_9);
           OrimQuestTimer timer_9 = new OrimQuestTimer(
             _STATUS_ORIMQUEAT_READY_9, 8000);
           timer_9.begin();
          }else{
           setOrimQuestStatus(_STATUS_ORIMQUEAT_READY_9);
           sendMessage("$9546", 0);
           OrimQuestTimer timer_9 = new OrimQuestTimer(
             _STATUS_ORIMQUEAT_READY_9, 8000);
           timer_9.begin();
          }

         break;
         case _STATUS_ORIMQUEAT_READY_9:
          setOrimQuestStatus(_STATUS_ORIMQUEAT_READY_10);
          sendMessage("$9537", 0);
          OrimQuestTimer timer_10 = new OrimQuestTimer(
            _STATUS_ORIMQUEAT_READY_10, 8000);
          timer_10.begin();
         break;
         case _STATUS_ORIMQUEAT_READY_10:
          setOrimQuestStatus(_STATUS_ORIMQUEAT_READY_11);
          sendMessage("$9538", 0);
          _diffence_rune_1 = spawnOne(L1Location.randomLocation(new L1Location(32799,32803,_mapId), 1, 6, false), 91453, 5);
          _diffence_rune_2 = spawnOne(L1Location.randomLocation(new L1Location(32799,32803,_mapId), 1, 6, false), 91453, 5);
          OrimQuestTimer timer_11 = new OrimQuestTimer(
            _STATUS_ORIMQUEAT_READY_11, 8000);
          timer_11.begin();
         break;
         case _STATUS_ORIMQUEAT_READY_11:
          _action = 0;
          setOrimQuestStatus(_STATUS_ORIMQUEAT_READY_11_1);
          sendMessage("$9539", 0);
          OrimQuestTimer timer_11_1 = new OrimQuestTimer(
            _STATUS_ORIMQUEAT_READY_11_1, 8000);
          timer_11_1.begin();
         break;

         case _STATUS_ORIMQUEAT_READY_11_1:
          if(_diffence_rune_1 == null && _diffence_rune_2 == null ){
           setOrimQuestStatus(_STATUS_ORIMQUEAT_START);
           OrimQuestTimer timer_start = new OrimQuestTimer(
             _STATUS_ORIMQUEAT_START, 8000);
           timer_start.begin();
          }else{
           setOrimQuestStatus(_STATUS_ORIMQUEAT_READY_11_2);
           sendMessage("$9545", 0);
           OrimQuestTimer timer_11_2 = new OrimQuestTimer(
             _STATUS_ORIMQUEAT_READY_11_2, 8000);
           timer_11_2.begin();
          }

         break;
         case _STATUS_ORIMQUEAT_READY_11_2:
          if(_diffence_rune_1 == null && _diffence_rune_2 == null ){
           setOrimQuestStatus(_STATUS_ORIMQUEAT_START);
           OrimQuestTimer timer_start = new OrimQuestTimer(
             _STATUS_ORIMQUEAT_START, 8000);
           timer_start.begin();
          }else{
           setOrimQuestStatus(_STATUS_ORIMQUEAT_START);
           sendMessage("$9546", 0);
           OrimQuestTimer timer_start = new OrimQuestTimer(
             _STATUS_ORIMQUEAT_START, 8000);
           timer_start.begin();
          }

         break;
         /********** 끝   **************/

         case _STATUS_ORIMQUEAT_START:
          clearAllRune();
         try {
          sendMessage("$9540", 0);
          for(int round=0;round<12;round++){
           _currentRound = round;//
           Thread.sleep(3000);
           if(round==0){
            sendMessage("$9603", 0);
            sendPackets(new S_DisplayClack());
            sendPackets(new S_Sound(82));
            OrimQuestTimer spawn = new OrimQuestTimer(
              _STATUS_SPAWN_MONSTERS, 0);
            spawn.begin();
            Thread.sleep(35000);
            int monsterCount = checkAliveMonster();
            if(monsterCount >= 5 && monsterCount <= 7){

             _startPoint = 0;
             _endPoint = 5;
            }else if(monsterCount >= 3 && monsterCount <= 4){

             _startPoint = 2;
             _endPoint = 7;
            }else if(monsterCount == 2){
             _startPoint = 10;
             _endPoint = 19;
            }else if(monsterCount == 1){
             _startPoint = 8;
             _endPoint = 12;
            }else if(monsterCount == 0){
             _startPoint = 5;
             _endPoint = 9;
            }

           }

           Thread.sleep(5000);
           sendMessage("$9548", 0);
           int i = _random.nextInt(4);
           _bonusRoundStatus[round]=i;
           Thread.sleep(5000);
           if(i==0){
            L1NpcInstance temp = spawnOne(new L1Location(32803,32788,_mapId),91445,4);
            temp.broadcastPacket(new S_DoActionGFX(temp.getId(), 0));
            sendMessage("$", 0);
            deleteNpc(temp);
           }else{
            L1NpcInstance temp = null;
            if(i==1){
             int rd = _random.nextInt(4)+3;
             _tempNpcNumber = 91483;
             for(int z = 0;z<rd;z++){
              OrimQuestTimer timer = new OrimQuestTimer(
                _STATUS_MOVE_SEA_MONSTER, 0);
              timer.begin();
             }
             sendMessage("$9542", 0);
            }else if(i==2){
             int rd = _random.nextInt(4)+3;
             _tempNpcNumber = 91482;
             for(int z = 0;z<rd;z++){
              OrimQuestTimer timer = new OrimQuestTimer(
                _STATUS_MOVE_SEA_MONSTER, 0);
              timer.begin();
             }
             sendMessage("$9543", 0);
            }else if(i==3){
             temp = spawnOne(new L1Location(32800,32794,_mapId),91494,4);
             temp.broadcastPacket(new S_DoActionGFX(temp.getId(), 0));
             deleteNpc(temp);
             sendMessage("$9544", 0);
            }
           }
           Thread.sleep(10000);
           
           if(i!=0){
            if(checkSeaMonsterAttack(i)){
             if(i==3){
              if(_createDoor != null){
               _createDoor.open();
              }
              Thread.sleep(10000);
              sendMessage("$10720", 1);
              long startTime = System.currentTimeMillis();
              while(!_isCrakenDead && !_isDeleteTransactionNow){
               Thread.sleep(3000);
              }
              if(System.currentTimeMillis()-startTime <= 63000){
               
               spawnOneMob(new L1Location(32798,32807,_mapId), 91440);
              }
              if(_createDoor != null){
               _createDoor.close();
              }
              Thread.sleep(10000);
             }
            }
           }
           sendMessage("$"+_pointMessages[_point/100],1);

           Thread.sleep(10000);
           if(round != 11){
            if(round > 0 && (round+1)%4 == 0){
             sendMessage("$9554", 0);
            }else{
             
             sendMessage("$9550",0);
            }
            
            _acceptOrder = true;
            createRune();
           }else{
            sendMessage("$9556",0);
           }

           Thread.sleep(20000);
           
           if(round != 11){
            sendMessage("$9551",0);
           }
          

           OrimQuestTimer move_ship = new OrimQuestTimer(
             _STATUS_MOVE_SHIP_1, 0);
           move_ship.begin();

           Thread.sleep(20000);
         
           sendMessage("$"+(9609+round),1);
           Thread.sleep(3000);
           sendPackets(new S_DisplayClack());
           sendPackets(new S_Sound(82));
           Thread.sleep(3000);
          
           if(!(round == 11)){
            for(int subRound = 0;subRound<4;subRound++){
             if(subRound == 3){
              if(_mimic_A == null && _mimic_B == null &&_mimic_C == null ){
               sendMessage("$9608",2);/
               sendPackets(new S_BlackWindow());
               int[][] templocation = {{32741,32800},
                 {32732,32798},
                 {32733,32807}
                 };
               int rndval = _random.nextInt(3);
               _mimic_A = spawnOneMob(new L1Location(templocation[0][0],templocation[0][1],_mapId),91455);
               _mimic_B = spawnOneMob(new L1Location(templocation[1][0],templocation[1][1],_mapId),91455);
               _mimic_C = spawnOneMob(new L1Location(templocation[2][0],templocation[2][1],_mapId),91455);
               _mimic_A.getInventory().storeItem(50061, 1);
               _mimic_B.getInventory().storeItem(50061, 1);
               _mimic_C.getInventory().storeItem(50061, 1);

               if(rndval==0){
                _mimic_A.setCurseMimic(true);
               }else if(rndval==1){
                _mimic_B.setCurseMimic(true);
               }else if(rndval==2){
                _mimic_C.setCurseMimic(true);
               }
               
               ArrayList<L1PcInstance> pclist = L1World.getInstance().getVisiblePlayer(_shipWall, 15);
               Collections.shuffle(pclist);
               for(L1PcInstance pc : pclist){
                Thread.sleep(3000);
                L1Teleport.teleport(pc, 32735,32802,_mapId, 1, false);
                break;
               }
               sendMessage("$9606",1);
              }
              OrimQuestTimer moveShip = new OrimQuestTimer(_STATUS_MOVE_SHIP_2, 0);
              moveShip.begin();
             }else{
              if(subRound==1){
               int countMonster = checkAliveMonster();
               if(countMonster >= 5){
                _roundStatus[round]=-1;
               }else if(countMonster >= 2){//
                _roundStatus[round]=0;
               }else if(countMonster >= 0){
                _roundStatus[round]=1;
               }
              }
              spawnMonsters();
               if(subRound==0){
                if((_currentRound == 3 || _currentRound == 7) && _portal_rune == null){
                int npcId = 0;
                if(_point <= 300){
                 npcId = 91480;
                }else if(_point <= 600){
                 npcId = 91476;
                }else if(_point > 600){
                 npcId = 91478;
                }
                spawnOneMob(L1Location.randomLocation
                  (new L1Location(32799,32803,_mapId),
                    1, 6, false), npcId);
                }
               }
              if(_roundStatus[round] == 1){
               sendMessage("$9560",2);
              }else{
               sendMessage("$"+(9563+subRound),1);
              }
             }
             Thread.sleep(30000);
             
            }
            while(checkAliveMonster() >= 4){
             _ship_burning++;
             sendPackets(new S_ShockWave());
             L1NpcInstance fire = spawnOne(L1Location.randomLocation(new L1Location(32799,32803,_mapId), 1, 6, false), 91487, 5);
             fire.broadcastPacket(new S_SkillSound(fire.getId(),762));
             if(_ship_burning >= 10){
              sendMessage("$9562",1);
              Thread.sleep(35000);
              outPushPlayer();
              return;
             }else if(_ship_burning == 9){
              sendMessage("$9587",1);
             }else{
              sendMessage("$9561",1);
             }

             Thread.sleep(35000);
            }
           }else{
            spawnMonsters();
            spawnOneMob(L1Location.randomLocation(new L1Location(32799,32803,_mapId), 1, 6, false),91471 );
            long time = System.currentTimeMillis();
            int opt = 0;
            Thread.sleep(3000);
            while(!_isLastBossDead && !_isDeleteTransactionNow){
             opt += 3000;
             if(opt >= 30000){
              opt = 0;
              
              _ship_burning++;
              sendPackets(new S_ShockWave());
              L1NpcInstance fire = spawnOne(L1Location.randomLocation(new L1Location(32799,32803,_mapId), 1, 6, false), 91487, 5);
              fire.broadcastPacket(new S_SkillSound(fire.getId(),762));
              if(_ship_burning >= 10){
               sendMessage("$9562",1);
               Thread.sleep(35000);
               outPushPlayer();
               return;
              }else if(_ship_burning == 9){
               sendMessage("$9587",1);
              }else{
               sendMessage("$9561",1);
              }
             }
             Thread.sleep(3000);
            }
            OrimQuestTimer end_1 = new OrimQuestTimer(
            _STATUS_ORIMQUEAT_END_1, 0);
            end_1.begin();
           }
          }
         } catch (InterruptedException e) {
          
          e.printStackTrace();
         }
         break;
         
     

         //********** 끝   **************//
         /********** 다시시작**************/
         case _STATUS_ORIMQUEAT_END_1:
          setOrimQuestStatus(_STATUS_ORIMQUEAT_END_2);
          sendMessage("$9579", 0);
          spawnOne(new L1Location(1,1,_mapId),91455,0);
          OrimQuestTimer end_2 = new OrimQuestTimer(
             _STATUS_ORIMQUEAT_END_2, 12000);
          end_2.begin();
         break;
         case _STATUS_ORIMQUEAT_END_2:
          setOrimQuestStatus(_STATUS_ORIMQUEAT_END_3);
          sendMessage("$9580", 0);。
          OrimQuestTimer end_3 = new OrimQuestTimer(
             _STATUS_ORIMQUEAT_END_3, 12000);
          end_3.begin();
         break;
         case _STATUS_ORIMQUEAT_END_3:
          setOrimQuestStatus(_STATUS_ORIMQUEAT_END_4);
          sendMessage("$9581", 0);
          OrimQuestTimer end_4 = new OrimQuestTimer(
             _STATUS_ORIMQUEAT_END_4, 12000);
          end_4.begin();
         break;
         case _STATUS_ORIMQUEAT_END_4:
          setOrimQuestStatus(_STATUS_ORIMQUEAT_END_5);
          sendMessage("$9582", 0);
          OrimQuestTimer end_5 = new OrimQuestTimer(
             _STATUS_ORIMQUEAT_END_5, 12000);
          end_5.begin();
         break;
         case _STATUS_ORIMQUEAT_END_5:
          setOrimQuestStatus(_STATUS_ORIMQUEAT_END_6);
          sendMessage("$9583", 0);
          OrimQuestTimer end_6 = new OrimQuestTimer(
             _STATUS_ORIMQUEAT_END_6, 12000);
          end_6.begin();
         break;
         case _STATUS_ORIMQUEAT_END_6:
          setOrimQuestStatus(_STATUS_ORIMQUEAT_END);
          sendMessage("$9584", 0);
          OrimQuestTimer end = new OrimQuestTimer(
             _STATUS_ORIMQUEAT_END, 12000);
          end.begin();
         break;
         case _STATUS_ORIMQUEAT_END:
          outPushPlayer();
         break;
         /********** 끝 **************/
         case _STATUS_MOVE_SHIP_1:
         try {
          int totalShipDamage = 0;
          int shipId = 0;
          L1Location loc = new L1Location(32794+_random.nextInt(8),32831,_mapId);

          int typeA = 0;
          int typeB = 0;
          int typeC = 0;

          for(int i=0;i < 12;i++){
           if(i < 4){
            typeA+= _roundHitDamage[i];
           }else if(i >= 4 && 7 >= i){
            typeB+= _roundHitDamage[i];
           }else if(i >= 8 && 10 >= i){
            typeC+= _roundHitDamage[i];
           }
           totalShipDamage += _roundHitDamage[i];
          }

          if((_currentRound == 2 || _currentRound == 3)&& !_IS_SPAWN_SHIP_TYPEA
            && typeA >= 9){
           _IS_SPAWN_SHIP_TYPEA = true;
           _ship = spawnOne(loc,91441,0);
          }else if((_currentRound == 6 || _currentRound == 7)&& !_IS_SPAWN_SHIP_TYPEB
            && typeB >= 9){
           _IS_SPAWN_SHIP_TYPEB = true;
           _ship = spawnOne(loc,91441,0);
          }else if((_currentRound == 10)&& !_IS_SPAWN_SHIP_TYPEC
            && typeC >= 9){
           _IS_SPAWN_SHIP_TYPEC = true;
           _ship = spawnOne(loc,91442,0);
          }else{
           int shipDamage = 0;
           if(_currentRound >= 0 && _currentRound <= 3){
            shipDamage = typeA;
           }else if(_currentRound >= 4 && _currentRound <= 7){
            shipDamage = typeB;
           }else if(_currentRound >= 8 && _currentRound <= 11){
            shipDamage = typeC;
           }
           if(shipDamage>=9){
            shipId = 91448;
           }else if(shipDamage>=6){
            shipId = 91447;
           }else{
            shipId = 91446;
           }
           _ship = spawnOne(loc,shipId,0);
          }
          if(_ship!=null){
           while (_ship.moveDirection(loc.getX(),loc.getY()-17) != -1) {
            if (_ship.getLocation().getLineDistance(
              new Point(loc.getX(),loc.getY()-17)) != 0) {
             _ship.setDirectionMove(_ship.moveDirection(
               loc.getX(),loc.getY()-17));
             Thread.sleep(_ship.getMoveSpeed());
            }else{
             break;
            }
           }
           sendShipDamage();
           sendPackets(new S_ShockWave());
           _acceptOrder = false;
           clearAllRune();
           if(_ship.getNpcId()==91441){
            sendMessage("$9553",0);
           }else if(_ship.getNpcId()==91442){
            sendMessage("$9552",0);
           }else if(_currentRound == 11){

           }else{
            sendMessage("$9555",0);
           }

           Thread.sleep(2000);
           if(_ship.getNpcId()==91441 || _ship.getNpcId()==91442){
            sendMessage("$9559",1); 
            if(_portal_rune == null){
             _portal_rune = spawnOne(new L1Location(32799,32809,_mapId),91452,0);
            }
            if(_moveTrap == null){
             if(_ship.getNpcId()==91442){
              _moveTrap = setSwitch(new L1Location(32799,32809,_mapId), 73);
             }else{
              _moveTrap = setSwitch(new L1Location(32799,32809,_mapId), 72);
              for(L1Object obj:L1World.getInstance().getVisiblePoint( new L1Location(32741,32860,_mapId), 15)){
               if(obj instanceof L1ItemInstance){
                L1Inventory groundInventory = L1World
                  .getInstance().getInventory(obj.getX(),
                    obj.getY(), obj.getMapId());
                groundInventory.deleteItem((L1ItemInstance) obj);
                L1World.getInstance().removeVisibleObject(obj);
                L1World.getInstance().removeObject(obj);
               }else if(obj instanceof L1MonsterInstance){
                obj.getMap().setPassable(obj.getX(), obj.getY(), true);
                ((L1MonsterInstance) obj).deleteMe();
               }
              }

             }
            }
           }else if(_currentRound==3){
            int npcId = 0;
            if(_point <= 300){
             npcId = 91480;
            }else if(_point <= 600){
             npcId = 91476;
            }else if(_point > 600){
             npcId = 91478;
            }
            if(typeA >= 12){
             spawnOneMob(new L1Location(32671,32802,_mapId), npcId);
             if(_portal_rune == null){
              _portal_rune = spawnOne(new L1Location(32799,32809,_mapId),91452,0);
             }
             if(_moveTrap == null){
              _moveTrap = setSwitch(new L1Location(32799,32809,_mapId), 70);
             }
            }
           }else if(_currentRound==7){
            int npcId = 0;
            if(_point <= 300){
             npcId = 91480;
            }else if(_point <= 600){
             npcId = 91476;
            }else if(_point > 600){
             npcId = 91478;
            }
            if(typeB >= 12){
             spawnOneMob(new L1Location(32671,32866,_mapId), npcId);
             if(_portal_rune == null){
              _portal_rune = spawnOne(new L1Location(32799,32809,_mapId),91452,0);
             }
             if(_moveTrap == null){
              _moveTrap = setSwitch(new L1Location(32799,32809,_mapId), 71);
             }
            }
           }
     

           while (_ship.moveDirection(loc.getX(),loc.getY()-13) != -1) {
            if (_ship.getLocation().getLineDistance(
              new Point(loc.getX(),loc.getY()-13)) != 0) {
             _ship.setDirectionMove(_ship.moveDirection(
               loc.getX(),loc.getY()-13));
             Thread.sleep(_ship.getMoveSpeed());
            } else {
             break;
            }
           }
          }
         } catch (InterruptedException e) {
          
          e.printStackTrace();
         }
         break;
         case _STATUS_MOVE_SHIP_2:
          if(_ship != null){
           try {
            if(_portal_rune != null){
             _portal_rune.deleteMe();
             _portal_rune = null;
            }
            if(_moveTrap != null){
             L1WorldTraps.getInstance().removeTrap(_moveTrap);
             _moveTrap = null;
            }
            while (_ship.moveDirection(_ship.getX(),_ship.getY()+13) != -1) {
             if (_ship.getLocation().getLineDistance(
               new Point(_ship.getX(),_ship.getY()+13)) != 0) {
              _ship.setDirectionMove(_ship.moveDirection(
                _ship.getX(),_ship.getY()+13));
              Thread.sleep(_ship.getMoveSpeed());
             } else {
              break;
             }
            }
           } catch (InterruptedException e1) {
            
            e1.printStackTrace();
           }
           deleteNpc(_ship);
           _ship = null;
          }
         break;
         case _STATUS_MOVE_SEA_MONSTER:
         try {
          L1NpcInstance npc =  spawnOne(L1Location.randomLocation(new L1Location(32799,32803,_mapId), 1, 6, false),_tempNpcNumber,_random.nextInt(8));
          Thread.sleep(1000);
          L1Location temploc = new L1Location(npc.getX(),npc.getY(),npc.getMapId());
          temploc.forward(npc.getHeading());
          for(int i = 0;i<40;i++){
           while (npc.moveDirection(temploc.getX(),temploc.getY()) != -1) {
            if (npc.getLocation().getLineDistance(
              new Point(temploc.getX(),temploc.getY())) != 0) {
             npc.setDirectionMove(npc.moveDirection(
               temploc.getX(),temploc.getY()));
             Thread.sleep(npc.getMoveSpeed());
            } else {
             break;
            }
           }
           temploc.forward(npc.getHeading());
          }
          deleteNpc(npc);
         } catch (InterruptedException e) {
         
          e.printStackTrace();
         }
         break;
         case _STATUS_ORIMQUEST_MONITOR :
          boolean flag = false;
          for (L1PcInstance pc  :  L1World.getInstance().getAllPlayers()) {
           if (getMapId() == pc.getMapId()) {
            flag = true;
            break;
           }
          }
          if(flag){
           OrimQuestTimer monitorRepeat = new OrimQuestTimer(
             _STATUS_ORIMQUEST_MONITOR,600000);
           monitorRepeat.begin();
          }else{
           _isDeleteTransactionNow = true;
           reset();
           L1OrimQuest.getInstance().resetActiveMaps(_mapId);
          }
         break;
         case _STATUS_SPAWN_MONSTERS :
          if(_extraShipCome){
           if(_comeShipCount==0){
            for(int i=0;i<7;i++){
             spawnOneMob(L1Location.randomLocation
               (new L1Location(32799,32803,_mapId), 1, 6, false),_monstersC[_random.nextInt(_monstersC.length)]);
            }
           }else if(_comeShipCount==1){
            for(int i=0;i<7;i++){
             spawnOneMob(L1Location.randomLocation
               (new L1Location(32799,32803,_mapId), 1, 6, false),_monstersC[_random.nextInt(_monstersC.length)]);
            }
           }else if(_comeShipCount==2){
            for(int i=0;i<7;i++){
             spawnOneMob(L1Location.randomLocation
               (new L1Location(32799,32803,_mapId), 1, 6, false),_monstersB[_random.nextInt(_monstersB.length)]);
            }
           }
           _comeShipCount++;
          }else{
           if(_currentRound == 0){
            if(!_isRankSelected){
             for(int i=0;i<7;i++){
              spawnOneMob(L1Location.randomLocation
                (new L1Location(32799,32803,_mapId), 1, 6, false),_monstersA[_random.nextInt(5)]);
             }
            }else{

            }
           }
          }
         break;
         case _STATUS_CREATE_RUNES :
          createRune();
         break;
         case _STATUS_ENEMY_CANON :
          int[][] table = {{32780,32818,35},{32793,32788,16}};
          int random = _random.nextInt(2);
          S_EffectLocation se = new S_EffectLocation(table[random][0]+_random.nextInt(table[random][2]), table[random][1], 8233);
          sendPackets(se);
         break;
         case _STATUS_FIRE_CANON_1 :
          if( _cannon_1 != null ){
           _cannon_1.broadcastPacket(new S_DoActionGFX(_cannon_1.getId(), 2));
          }
         break;
         case _STATUS_FIRE_CANON_2 :
          if( _cannon_2 != null ){
           _cannon_2.broadcastPacket(new S_DoActionGFX(_cannon_2.getId(), 2));
          }
         break;
        }//isDeleteTrancaction End
       }//swicth End
       cancel();
      }
     }

     

     private void sendMessage(String s, int cases) {
      if(cases==0){
       for (L1PcInstance pc  :  L1World.getInstance().getAllPlayers()) {
        if (pc.getMapId() == _mapId) {
         pc.sendPackets(new S_GreenMessage(s));
        }
       }
      }else if(cases==1){
       for (L1PcInstance pc  :  L1World.getInstance().getAllPlayers()) {
        if (pc.getMapId() == _mapId) {
         pc.sendPackets(new S_YellowMessage(s));
        }
       }
      }else if(cases==2){
       for (L1PcInstance pc  :  L1World.getInstance().getAllPlayers()) {
        if (pc.getMapId() == _mapId) {
         pc.sendPackets(new S_RedMessage(s));
        }
       }
      }

     }

     

     private void sendPackets(ServerBasePacket serverbasepacket) {
      for (L1PcInstance pc  :  L1World.getInstance().getAllPlayers()) {
       if (pc.getMapId() == _mapId) {
        pc.sendPackets(serverbasepacket);
       }
      }
     }

     public short getMapId() {
      return _mapId;
     }

     public void setMapId(short _mapId) {
      this._mapId = _mapId;
     }

     public void setOrimQuestStatus(int step) {
      _OrimQuestStatus = step;
     }

     

     public void setAction(L1PcInstance pc,int actionCode) {
      if(pc!=null){
       if(pc.isInParty()){
        if(pc.getParty().isLeader(pc) && pc.getMapId()==_mapId){
         if(_OrimQuestStatus == _STATUS_ORIMQUEAT_READY_3){
          _action = actionCode;
         }else if(_OrimQuestStatus > _STATUS_ORIMQUEAT_READY_3){
          if(pc.getX() == 32799 && pc.getY() == 32808){
           if(actionCode==66){
            fireGun();
           }else if(actionCode==69){
            diffenceShip();
           }
          }
         }
        }
       }else if(pc.isGm()){
        if(pc.getMapId()==_mapId){
         if(_OrimQuestStatus == _STATUS_ORIMQUEAT_READY_3){
          _action = actionCode;
         }else if(_OrimQuestStatus > _STATUS_ORIMQUEAT_READY_3){
          if(pc.getX() == 32799 && pc.getY() == 32808){
           if(actionCode==66){
            fireGun();
           }else if(actionCode==69){
            diffenceShip();
           }
          }
         }
        }
       }
      }
     }


     private boolean checkRune(){
      return _diffence_rune_2 == null && _diffence_rune_1 == null && _attack_rune == null;
     }


     public void diffenceShip() {
      if(_diffence_rune_1!=null && _diffence_rune_2!=null){
       _diffence_rune_1.deleteMe();
       _diffence_rune_2.deleteMe();
       _diffence_rune_1=null;
       _diffence_rune_2=null;
       for (L1PcInstance pc  :  L1World.getInstance().getAllPlayers()) {
        if (pc.getMapId() == _mapId) {
         pc.broadcastPacket(new S_SkillSound(pc.getId(), 2030));
         pc.sendPackets(new S_SkillSound(pc.getId(), 2030));
        }
       }
       if(_OrimQuestStatus >= _STATUS_ORIMQUEAT_START){
        if(_random.nextInt(4) > 0){
         _roundDiffenceStatus[_currentRound]++;
        }else{
         enemyCanon();
        }
       }
       if(checkRune()){
        OrimQuestTimer createRuneTimer = new OrimQuestTimer(
          _STATUS_CREATE_RUNES, 3000);
        createRuneTimer.begin();
       }
      }
     }


     public void fireGun() {
      if(_attack_rune!=null){
       _attack_rune.deleteMe();
       _attack_rune=null;

       for (L1PcInstance pc  :  L1World.getInstance().getAllPlayers()) {
        if (pc.getMapId() == _mapId) {
         pc.broadcastPacket(new S_SkillSound(pc.getId(), 2029));
         pc.sendPackets(new S_SkillSound(pc.getId(), 2029));
        }
       }

       if(!(_OrimQuestStatus >= _STATUS_ORIMQUEAT_START)){
        sendMessage("HIT!", 1);
       }else{
        if(_random.nextInt(4) > 0){
         if( _roundHitDamage[_currentRound]==0){
          _roundHitDamage[_currentRound]++;
          sendMessage("HIT!", 1);
         }else if(_roundHitDamage[_currentRound]==1){
          _roundHitDamage[_currentRound]++;
          sendMessage("HIT!", 0);
         }else if(_roundHitDamage[_currentRound]==2){
          _roundHitDamage[_currentRound]++;
          sendMessage("HIT!", 2);
         }else{
          sendMessage("HIT!", 2);
         }
        }else{
         enemyCanon();
        }
       }

       fireCanon();

       if(checkRune()){
        OrimQuestTimer createRuneTimer = new OrimQuestTimer(
          _STATUS_CREATE_RUNES, 3000);
        createRuneTimer.begin();
       }
      }

     }

     private L1NpcInstance spawnOne(L1Location loc, int npcid, int heading) {
      L1NpcInstance mob = new L1NpcInstance(NpcTable.getInstance()
        .getTemplate(npcid));
      if (mob == null) {
       return mob;
      }

      mob.setId(IdFactory.getInstance().nextId());
      mob.setHeading(heading);
      mob.setX(loc.getX());
      mob.setHomeX(loc.getX());
      mob.setY(loc.getY());
      mob.setHomeY(loc.getY());
      mob.setMap((short) loc.getMapId());
      if(mob.getNpcId() == 91487){
       mob.setTempCharGfx(8511+_random.nextInt(5));
      }

      L1World.getInstance().storeObject(mob);
      L1World.getInstance().addVisibleObject(mob);

      S_NpcPack s_npcPack = new S_NpcPack(mob);
      for (L1PcInstance pc  :  L1World.getInstance().getRecognizePlayer(
        mob)) {
       pc.addKnownObject(mob);
       mob.addKnownObject(pc);
       pc.sendPackets(s_npcPack);
      }

      mob.onNpcAI();
      mob.updateLight();
      mob.startChat(L1NpcInstance.CHAT_TIMING_APPEARANCE);
      return mob;
     }


     private L1MonsterInstance spawnOneMob(L1Location loc, int npcid) {
      L1MonsterInstance mob = new L1MonsterInstance(NpcTable
        .getInstance().getTemplate(npcid));
      if (mob == null) {
       return mob;
      }

      mob.setId(IdFactory.getInstance().nextId());
      mob.setHeading(5);
      mob.setX(loc.getX());
      mob.setHomeX(loc.getX());
      mob.setY(loc.getY());
      mob.setHomeY(loc.getY());
      mob.setMap((short) loc.getMapId());
      mob.setStoreDroped(false);
      mob.setUbSealCount(0);

      L1World.getInstance().storeObject(mob);
      L1World.getInstance().addVisibleObject(mob);

      S_NpcPack s_npcPack = new S_NpcPack(mob);
      for (L1PcInstance pc  :  L1World.getInstance().getRecognizePlayer(
        mob)) {
       pc.addKnownObject(mob);
       mob.addKnownObject(pc);
       pc.sendPackets(s_npcPack);
      }

      mob.onNpcAI();
      mob.updateLight();
      mob.startChat(L1NpcInstance.CHAT_TIMING_APPEARANCE);
      return mob;
     }

     private void clearAllRune(){

      clearAttackRune();
      clearDiffenceRune();
     }
     private void clearAttackRune(){

      if(_attack_rune != null){
       _attack_rune.deleteMe();
       _attack_rune = null;
      }
     }
     private void clearDiffenceRune(){

      if(_diffence_rune_1 != null){
       _diffence_rune_1.deleteMe();
       _diffence_rune_1 = null;
      }
      if(_diffence_rune_2 != null){
       _diffence_rune_2.deleteMe();
       _diffence_rune_2 = null;
      }
     }
     private void createRune(){
      if(_acceptOrder){
       if(_attack_rune==null){
        _attack_rune = spawnOne(L1Location.randomLocation(new L1Location(32799,32803,_mapId), 1, 6, false), 91454, 5);
       }
       if(_diffence_rune_1==null){
        _diffence_rune_1 = spawnOne(L1Location.randomLocation(new L1Location(32799,32803,_mapId), 1, 6, false), 91453, 5);
       }
       if(_diffence_rune_2==null){
        _diffence_rune_2 = spawnOne(L1Location.randomLocation(new L1Location(32799,32803,_mapId), 1, 6, false), 91453, 5);
       }
      }
     }

     private void deleteNpc(L1NpcInstance npc){
      npc.getMap().setPassable(npc.getX(), npc.getY(), true);
      npc.deleteMe();
     }

     public void mimicDie(L1MonsterInstance npc) {
      if(npc.isCurseMimic()){
       for(L1PcInstance pc:L1World.getInstance().getVisiblePlayer(npc, 15)){
        L1Teleport.teleport(pc, 32792,32802,_mapId, 2, true);
       }
       if(_mimic_A != null){
        if(!_mimic_A.isDead()){
         _mimic_A.deleteMe();
        }
        _mimic_A = null;
       }
       if(_mimic_B != null){
        if(!_mimic_B.isDead()){
         _mimic_B.deleteMe();
        }
        _mimic_B = null;
       }
       if(_mimic_C != null){
        if(!_mimic_C.isDead()){
         _mimic_C.deleteMe();
        }
        _mimic_C = null;
       }
      }
     }
     private boolean checkSeaMonsterAttack(int type){
      boolean flag = false;
      int count = 0;
      for(int i =0;i<12;i++){
       if(_bonusRoundStatus[i]==type){
        count++;
       }
      }
      if(count==3){
       flag = true;
      }
      if(flag){
       if(type == 1){
        for(int i=0;i<3;i++){
         spawnOneMob(L1Location.randomLocation
           (new L1Location(32799,32803,_mapId), 1, 6, false),91483);
        }
        sendMessage("$9549",1);
       }else if(type == 2){
        for(int i=0;i<3;i++){
         spawnOneMob(L1Location.randomLocation
           (new L1Location(32799,32803,_mapId), 1, 6, false),91482);
        }
        sendMessage("$9549",1);
       }else if(type == 3){
        spawnOneMob(new L1Location(32800,32794,_mapId),91481);
        spawnOneMob(new L1Location(32793,32795,_mapId),91491);
        spawnOneMob(new L1Location(32804,32796,_mapId),91492);
        sendMessage("$9558",1);
       }
      }
      return flag;
     }

     private static L1TrapInstance setSwitch(L1Location loc, int id) {
      final int trapId = id;
      final L1Trap trapTemp = TrapTable.getInstance().getTemplate(trapId);
      final Point rndPt = new Point();
      rndPt.setX(0);
      rndPt.setY(0);
      final int span = 0;
      final L1TrapInstance trap = new L1TrapInstance(IdFactory.getInstance()
        .nextId(), trapTemp, loc, rndPt, span);
      L1World.getInstance().addVisibleObject(trap);
      L1WorldTraps.getInstance().addTrap(trap);
      return trap;
     }
     private int checkAliveMonster(){
      int count = 0;
      for(Object obj : L1World.getInstance().getVisiblePoint(new L1Location(32799,32803,_mapId), 15)){
       if(obj instanceof L1MonsterInstance){
        if(!((L1MonsterInstance) obj).isDead()){
         count++;
        }
       }
      }
      return count;
     }
     private void spawnMonsters(){
      int startPoint = _startPoint;
      int endPoint = _endPoint;
      for(int i = 0;i<_currentRound;i++){
       if(_roundStatus[i]==1){
        if(endPoint+1 >= _monstersA.length){
         continue;
        }
        startPoint++;
        endPoint++;
       }else if(_roundStatus[i]==-1){
        if(startPoint-1 < 0){
         continue;
        }
        startPoint--;
        endPoint--;
       }
      }
      for(int i = 0;i<7;i++){
       spawnOneMob(L1Location.randomLocation
         (new L1Location(32799,32803,_mapId),
           1, 6, false),_monstersA[startPoint+_random.nextInt(endPoint-startPoint)]);
      }
     }
     private void outPushPlayer(){
      for (Object obj  :  L1World.getInstance().getVisibleObjects(_mapId).values()) {
       if(obj instanceof L1PcInstance){
        L1PcInstance pc = (L1PcInstance) obj;
        final int rndx = _random.nextInt(4);
        final int rndy = _random.nextInt(4);
        final int locx = 32587 + rndx;
        final int locy = 32941 + rndy;
        final short mapid = 0;
        L1Teleport.teleport(pc, locx, locy, mapid, 5, false);
       }else{
        if(obj instanceof L1NpcInstance ){
         deleteNpc((L1NpcInstance) obj);;
        }
       }
      }
     }

     private void sendShipDamage(){

      if(_roundDiffenceStatus[_currentRound] < 2){
       if(_shipWall.getStatus()==35){
        _shipWall.setStatus(36);
       }else{
        _shipWall.setStatus(_shipWall.getStatus()+1);
       }
       _shipWall.broadcastPacket(new S_DoActionGFX(_shipWall.getId(),_shipWall.getStatus()));
       if(_shipWall.getStatus() > 35){
        sendMessage("$9562",1);
        sendPackets(new S_ShockWave());
        try {
         Thread.sleep(35000);
        } catch (InterruptedException e) {

         e.printStackTrace();
        }
        outPushPlayer();
       }
      }
     }
     private void enemyCanon(){
      int i = _random.nextInt(4);
      for(int z = 0;z<i;z++){
       OrimQuestTimer timer = new OrimQuestTimer(
         _STATUS_ENEMY_CANON, 2000 + 2000 * z);
       timer.begin();
      }
     }

     private void fireCanon(){
      int i = _random.nextInt(2)+2;
      int n = _random.nextInt(2);
      for(int z = 0;z<i;z++){
       if((n+z)%2==1){
        OrimQuestTimer timer = new OrimQuestTimer(
          _STATUS_FIRE_CANON_1, 2000 * z);
        timer.begin();
       }else{
        OrimQuestTimer timer = new OrimQuestTimer(
          _STATUS_FIRE_CANON_2, 2000 * z);
        timer.begin();
       }
      }
     }

     private void reset() {
      try {
       for (L1Object obj  :  L1World.getInstance().getVisibleObjects(_mapId).values()) {
        if (obj.getMapId() == getMapId()) {
         if (obj instanceof L1FieldObjectInstance) {
          L1World.getInstance().removeVisibleObject(obj);
          L1World.getInstance().removeObject(obj);
         } else if (obj instanceof L1EffectInstance) {
          L1World.getInstance().removeVisibleObject(obj);
          L1World.getInstance().removeObject(obj);
         } else if (obj instanceof L1ItemInstance) {
          final L1Inventory groundInventory = L1World
            .getInstance().getInventory(obj.getX(),
              obj.getY(), obj.getMapId());
          groundInventory.deleteItem((L1ItemInstance) obj);
          L1World.getInstance().removeVisibleObject(obj);
          L1World.getInstance().removeObject(obj);
         } else if (obj instanceof L1DoorInstance) {
          DoorTable.getInstance().deleteDoorByLocation(obj.getLocation());
         } else if (obj instanceof L1NpcInstance) {
          ((L1NpcInstance) obj).deleteMe();
         } else if (obj instanceof L1TrapInstance){
          L1WorldTraps.getInstance().removeTrap((L1TrapInstance) obj);
         }
        }
       }
      } catch (final Exception e) {

       e.printStackTrace();
      }
     }


     public void crakenDead() {
      this._isCrakenDead = true;
      if(_craken_tail_left != null){
       _craken_tail_left.broadcastPacket
        (new S_DoActionGFX(_craken_tail_left.getId(),ActionCodes.ACTION_Die));
       _craken_tail_left.deleteMe();
      }

      if(_craken_tail_right != null){
       _craken_tail_right.broadcastPacket
       (new S_DoActionGFX(_craken_tail_right.getId(),ActionCodes.ACTION_Die));
       _craken_tail_right.deleteMe();
      }
     }
     public void crakenTailDead_Left() {
      _craken_tail_left = null;
     }
     public void crakenTailDead_Right() {
      _craken_tail_right = null;
     }

    }

    [출처] 오림시스템[해양전] (비공개 카페)

    이 게시물을..
    N
    0
    0
    • 리마스터팩 요정 소울 엠피 수정jstory
    • 0
      준희미니

    준희미니 님의 최근 글

    로한구축성공 283 1 2021 06.14 에오스 구축성공 356 2 2021 04.01 [에바] 나비켓 테이블 관련 설명 747 1 2016 07.29 에바소스인데 오픈대기 켜고 끄는 소스에요~ 70 2016 07.29 퍼플채팅 색(진보라채팅) 59 2016 07.29

    준희미니 님의 최근 댓글

    rt 2021 05.25 ㄳ 2021 05.11 ㄳ 2021 05.11 rt 2021 05.09 rt 2021 04.25
    글쓴이의 서명작성글 감추기 
    댓글 쓰기 에디터 사용하기 닫기
    • view_headline 목록
    • 14px
    • 리마스터팩 요정 소울 엠피 수정
    • 목록
      view_headline
    × CLOSE
    기본 (1,058) 제목 날짜 수정 조회 댓글 추천 비추
    분류 정렬 검색
    • 소스자료는 직접 올려주세요
      2017.06.06 - 16:14 591
    1058
    아머브레이크 데스티니 시전시 성공 확률 조정하는 소스가 있나요?
    안정환 2024.04.23 - 10:01 102
    1057
    List.spr(변신,몬스터 수정소스)개조방법
    유튜브고도리 2024.04.19 - 05:02 243
    1056
    NPC 외침 멘트 깔끔정리(by.유튜브고도리)
    유튜브고도리 2024.04.11 - 05:57 125
    1055
    디아블로 참 만들기
    유튜브고도리 2024.04.09 - 05:55 114
    1054
    리니지m 처럼 피통 늘리기,오류가 날때
    유튜브고도리 2024.04.09 - 05:18 91
    1053
    욕하면 채금 먹게 하기
    유튜브고도리 2024.04.09 - 04:59 71
    1052
    레벨에 따른 호칭 부여..?
    밤톨이11 2024.04.08 - 04:24 72
    1051
    초보자 보호 시스템
    밤톨이11 2024.04.08 - 04:21 57
    1050
    마법무기 데미지 증가
    밤톨이11 2024.04.08 - 04:19 70
    1049
    레벨 제한 맵
    밤톨이11 2024.04.08 - 04:14 65
    1048
    마법스크롤
    밤톨이11 2024.04.08 - 04:06 32
    1047
    리니지m 아지트 소유중에도 공성선포하기
    유튜브고도리 2024.04.07 - 21:37 41
    1046
    리니지m 마법인형이 마법을 쓰네?
    유튜브고도리 2024.04.07 - 21:36 61
    1045
    드래곤 슬레이어 각반(장비추가소스)
    유튜브고도리 2024.04.07 - 19:08 51
    1044
    린엠 게렝 변신 카드 만들기
    유튜브고도리 2024.04.06 - 06:06 100
    1043
    버프 물약 개별 소스 오래전 소스
    밤톨이11 2024.04.05 - 18:43 57
    1042
    일시 스텟 상승 물약
    밤톨이11 2024.04.05 - 18:42 26
    1041
    성 전환 물약
    밤톨이11 2024.04.05 - 18:37 30
    1040
    MP 물약 소스
    밤톨이11 2024.04.05 - 18:35 41
    1039
    리니지 옛날버젼..이라는데...구동가능여부 확인 부탁드립니다.
    도난차량 2024.03.24 - 04:56 354
    1038
    랭커
    foqwer 2024.03.14 - 10:43 141
    1037
    인첸별
    foqwer 2024.03.14 - 10:42 106
    1036
    몬스터 앞에 레벨 넣기
    프렌치좋아 2024.03.04 - 01:40 370
    1035
    3.63 글루딘 Single 용
    블루블랙3 2024.02.28 - 23:08 411
    1034
    Sprite file doesn`t exist 오류
    하앙비 2023.12.23 - 02:19 229
    1033
    전쟁세율 고정값 15%
    하남궁 2023.11.29 - 17:02 198
    1032
    인형합성사
    Rebecca 2023.10.09 - 22:54 337
    1031
    2.0 레벨업시 HP량 올리기
    Rebecca 2023.10.09 - 22:49 434
    1030
    전사버전 펫 만렙 변경
    Rebecca 2023.10.09 - 22:44 162
    1029
    맵 순간이동 가능 불가능지역 설정하기
    Rebecca 2023.10.09 - 22:39 237
    1028
    트레져박스 업로드입니다.
    린컴충성 2023.10.07 - 04:46 182
    1027
    리마스터 접속기 소스자료
    홍자놀기 2023.09.08 - 05:41 2284
    1026
    대미지 발동시 범위 질문드립니다
    나잇따나읻따 2023.05.21 - 22:26 292
    1025
    리니지 리마스터 몹 스폰수 어디서 줄일 수 있나요?
    001001 2023.04.25 - 16:06 727
    1024
    전사팩 로봇가능
    노력하자 2023.03.16 - 19:14 1113
    1023
    2.7 자동 물약 소스
    퍽퍽띠 2022.11.18 - 00:40 1215
    1022
    2.0 자동칼질소스 (클래스 파일에서 빼왔습니다)
    drumlinek 2022.11.06 - 05:20 930
    1021
    npc가 인겜에서 채팅으로 말하기
    하늘마음 2022.10.06 - 10:04 320
    1020
    유저 아이피보는 소스
    캐빈N.01 2020.12.15 - 21:34 639
    1019
    인공지능
    캐빈N.01 2020.12.15 - 21:27 1125
    1018
    아데나가 19억이 되면 자동으로 1억으로 금괴로 바꾸기
    강우리 2020.12.12 - 01:48 995
    1017
    린올기반 휘장 각반 견갑 장비인식 안되는거 수정함
    신화서버 2020.11.17 - 01:48 295
    1016
    방어구 인챈트별 피 증가 소스
    LGTwins 2020.09.12 - 05:52 688
    1015
    장신구 옵션 변경
    LGTwins 2020.08.31 - 07:00 751
    1014
    자동물약
    legena 2020.07.05 - 02:30 2089
    1013
    리마스터팩 스냅퍼 개방 레벨설정 본섭화 수정(몽양님 요청)
    jstory 2020.06.13 - 07:22 764
    1012
    리마스터팩 룬마력제거 검사 적용안대는 부분 수정
    jstory 2020.06.10 - 04:05 286
    1011
    리마스터팩 쓸모없는 아이템 활용
    jstory 2020.06.10 - 04:01 731
    1010
    리마스터팩 요정 소울 엠피 수정
    jstory 2020.06.10 - 03:54 459
    1009
    리마스터팩 자동공지시간에 버프주기
    jstory 2020.06.10 - 03:15 404
    • 1 2 3 4 5 6 7 8 9 10 .. 22
    • / 22 GO
  • GAMEZONE
 GAMEZONE all rights reserved.
by OrangeDay