close_btn
로그인, 회원가입후 더 많은 혜택을 누리세요 로그인 회원가입 닫기

개경소스

2016.06.03 08:40

연구사원 조회 수:344

러브연구소 쾌남님에게 퍼온 소스 입니다.

예전 개경이 갑자기 생각나서 올려 봅니다.

점팩 소스인듯 하네요.

 

package psjump.server.event;

import psjump.server.*;
import psjump.server.model.*;
import psjump.server.IdFactory;
import psjump.server.model.ServerPacket.*;
import psjump.server.templates.L1Npc;
import psjump.server.model.WorldMapPoint;
import psjump.server.templates.*;
import psjump.server.Opcodes;
import psjump.server.model.L1Object;
import psjump.server.GameServer;

import java.awt.TextArea;
import java.io.PrintStream;
import java.lang.reflect.Constructor;
import java.util.*;

public class DogRace extends Thread{
 private static DogRace _instance;
 public static DogRace getInstance(){
  if (_instance == null)
   _instance = new DogRace();
  return _instance;
 }
 public static void del(){
  _instance = null;
 }
 // 레이스견
 private L1NpcInstance Dog[] ;
 // 문짝
 private L1DoorsInstance Door[] ;
 //-- 레이스견 시작위치
 private int Start_X[] = {33522, 33520, 33518, 33516, 33514};
    private int Start_Y[] = {32861, 32863, 32865, 32867, 32869};
 //-- 레이스견 gfx아이디
 private int GFX[][] =  {{1353, 1461, 1462, 1463, 1464},
                      {1355, 1465, 1466, 1467, 1468},
                      {1357, 1469, 1470, 1471, 1472},
                      {1359, 1473, 1474, 1475, 1476}};
 //-- 레이스견 이름들
 private String[] Name_List = {"럼프스", "카이", "쿠마토", "브카", "두렉", "제프리", "얼루", "그룩", "부카", "퀘니버",
                            "그로돈", "투투", "쿤도라", "아돌프", "두리바", "오버풋", "배크두", "버루얼", "구몰리",
                            "베헤", "핀핀", "나쎄", "토누토", "코피니", "티소", "주코", "페콜라", "시토", "제피",
                            "툴록", "렘바", "쥬코", "미코아",  "베라티", "차셈", "소보", "코붐",
                                  "CORN", "Hwen", "제라티", "나이트", "Novice", "프로즌"};
 private int DoorID;
    public static int TIME[] = new int[5];
 public int 랭킹;
 public static String 일등 = null;
    public String 일등2;
    public HashMap _etc;
 private L1Item _allTemplates[];
    private int highestId;
 private int _npcId;
 public DogRace(){
        super("DogRace");
        Dog = new L1NpcInstance[5];
        Door = new L1DoorsInstance[5];
        DoorID = 5;
        랭킹 = 0;
        일등2 = null;
        highestId = 0;
        start();
    }
/* 끝나는 좌표
1. 33526, 32839
2. 33526, 32841
3. 33526, 33843
4. 33526, 33845
5. 33526, 33847

x - 33475 ~ 33538
y - 32833 ~ 32884
*/
  public void run(){
        try{
            랭킹 = 0;
            일등 = null;
            일등2 = null;
            System.out.println("[psjump] EVENT : 개경기 로드...");
           상점초기화();
           SleepTime();
           loadDog();
           상점물품로드();
           del();
           시작알림();
      StartGame();
        }
        catch(Exception e) { }
    }

 private void StartGame(){
  Dog_1 d1 = new Dog_1();
  Dog_2 d2 = new Dog_2();
  Dog_3 d3 = new Dog_3();
  Dog_4 d4 = new Dog_4();
  Dog_5 d5 = new Dog_5();
  d1.start();
  d2.start();
  d3.start();
  d4.start();
  d5.start();
 }

 public void 레이스표(int id, int j){
        L1Item item = ItemTable.getInstance().getTemplate(id, 0);
        int a = Dog[j].getNpcTemplate().getmovespeed();
        switch(j){
        default:
            break;

        case 0: // '\0'
            L1NpcInstance _tmp = Dog[0];
            switch(L1NpcInstance.getRnd().nextInt(10)){
            case 0: // '\0'
                L1NpcInstance _tmp1 = Dog[0];
                item.set_배율(L1NpcInstance.getRnd().nextInt(10) + 0);
                break;

            case 1: // '\001'
                L1NpcInstance _tmp2 = Dog[0];
                item.set_배율(L1NpcInstance.getRnd().nextInt(10) + 1);
                break;

            case 2: // '\002'
                L1NpcInstance _tmp3 = Dog[0];
                item.set_배율(L1NpcInstance.getRnd().nextInt(10) + 10);
                break;

            case 3: // '\003'
                L1NpcInstance _tmp4 = Dog[0];
                item.set_배율(L1NpcInstance.getRnd().nextInt(20) + 10);
                break;

            case 4: // '\004'
                L1NpcInstance _tmp5 = Dog[0];
                item.set_배율(L1NpcInstance.getRnd().nextInt(100) + 1);
                break;

            default:
                L1NpcInstance _tmp6 = Dog[0];
                item.set_배율(L1NpcInstance.getRnd().nextInt(20) + 0 + Dog[0].getRnd().nextInt(10));
                break;
            }
            item.set_nameid((new StringBuilder()).append("레이스표 #").append(Dog[0].get_nameid()).append(" #").append(item.get_배율()).append("배").toString());
            item.set_price(500);
            item.set_개이름(Dog[0].get_name());
            break;

        case 1: // '\001'
            L1NpcInstance _tmp7 = Dog[1];
            switch(L1NpcInstance.getRnd().nextInt(10)){
            case 0: // '\0'
                L1NpcInstance _tmp8 = Dog[1];
                item.set_배율(L1NpcInstance.getRnd().nextInt(10) + 0);
                break;

            case 1: // '\001'
                L1NpcInstance _tmp9 = Dog[1];
                item.set_배율(L1NpcInstance.getRnd().nextInt(10) + 1);
                break;

            case 2: // '\002'
                L1NpcInstance _tmp10 = Dog[1];
                item.set_배율(L1NpcInstance.getRnd().nextInt(10) + 10);
                break;

            case 3: // '\003'
                L1NpcInstance _tmp11 = Dog[1];
                item.set_배율(L1NpcInstance.getRnd().nextInt(20) + 10);
                break;

            case 4: // '\004'
                L1NpcInstance _tmp12 = Dog[1];
                item.set_배율(L1NpcInstance.getRnd().nextInt(100) + 1);
                break;

            default:
                L1NpcInstance _tmp13 = Dog[1];
                item.set_배율(L1NpcInstance.getRnd().nextInt(20) + 0 + Dog[1].getRnd().nextInt(10));
                break;
            }
            item.set_nameid((new StringBuilder()).append("레이스표 #").append(Dog[1].get_nameid()).append(" #").append(item.get_배율()).append("배").toString());
            item.set_price(500);
            item.set_개이름(Dog[1].get_name());
            break;

        case 2: // '\002'
            L1NpcInstance _tmp14 = Dog[2];
            switch(L1NpcInstance.getRnd().nextInt(10)){
            case 0: // '\0'
                L1NpcInstance _tmp15 = Dog[2];
                item.set_배율(L1NpcInstance.getRnd().nextInt(10) + 0);
                break;

            case 1: // '\001'
                L1NpcInstance _tmp16 = Dog[2];
                item.set_배율(L1NpcInstance.getRnd().nextInt(10) + 1);
                break;

            case 2: // '\002'
                L1NpcInstance _tmp17 = Dog[2];
                item.set_배율(L1NpcInstance.getRnd().nextInt(10) + 10);
                break;

            case 3: // '\003'
                L1NpcInstance _tmp18 = Dog[2];
                item.set_배율(L1NpcInstance.getRnd().nextInt(20) + 10);
                break;

            case 4: // '\004'
                L1NpcInstance _tmp19 = Dog[2];
                item.set_배율(L1NpcInstance.getRnd().nextInt(100) + 1);
                break;

            default:
                L1NpcInstance _tmp20 = Dog[2];
                item.set_배율(L1NpcInstance.getRnd().nextInt(20) + 0 + Dog[2].getRnd().nextInt(10));
                break;
            }
            item.set_nameid((new StringBuilder()).append("레이스표 #").append(Dog[2].get_nameid()).append(" #").append(item.get_배율()).append("배").toString());
            item.set_price(500);
            item.set_개이름(Dog[2].get_name());
            break;

        case 3: // '\003'
            L1NpcInstance _tmp21 = Dog[3];
            switch(L1NpcInstance.getRnd().nextInt(10)){
            case 0: // '\0'
                L1NpcInstance _tmp22 = Dog[3];
                item.set_배율(L1NpcInstance.getRnd().nextInt(10) + 0);
                break;

            case 1: // '\001'
                L1NpcInstance _tmp23 = Dog[3];
                item.set_배율(L1NpcInstance.getRnd().nextInt(10) + 1);
                break;

            case 2: // '\002'
                L1NpcInstance _tmp24 = Dog[3];
                item.set_배율(L1NpcInstance.getRnd().nextInt(10) + 10);
                break;

            case 3: // '\003'
                L1NpcInstance _tmp25 = Dog[3];
                item.set_배율(L1NpcInstance.getRnd().nextInt(20) + 10);
                break;

            case 4: // '\004'
                L1NpcInstance _tmp26 = Dog[3];
                item.set_배율(L1NpcInstance.getRnd().nextInt(100) + 1);
                break;

            default:
                L1NpcInstance _tmp27 = Dog[3];
                item.set_배율(L1NpcInstance.getRnd().nextInt(20) + 0 + Dog[3].getRnd().nextInt(10));
                break;
            }
            item.set_nameid((new StringBuilder()).append("레이스표 #").append(Dog[3].get_nameid()).append(" #").append(item.get_배율()).append("배").toString());
            item.set_price(500);
            item.set_개이름(Dog[3].get_name());
            break;

        case 4: // '\004'
            L1NpcInstance _tmp28 = Dog[4];
            switch(L1NpcInstance.getRnd().nextInt(10)){
            case 0: // '\0'
                L1NpcInstance _tmp29 = Dog[4];
                item.set_배율(L1NpcInstance.getRnd().nextInt(10) + 0);
                break;

            case 1: // '\001'
                L1NpcInstance _tmp30 = Dog[4];
                item.set_배율(L1NpcInstance.getRnd().nextInt(10) + 1);
                break;

            case 2: // '\002'
                L1NpcInstance _tmp31 = Dog[4];
                item.set_배율(L1NpcInstance.getRnd().nextInt(10) + 10);
                break;

            case 3: // '\003'
                L1NpcInstance _tmp32 = Dog[4];
                item.set_배율(L1NpcInstance.getRnd().nextInt(20) + 10);
                break;

            case 4: // '\004'
                L1NpcInstance _tmp33 = Dog[4];
                item.set_배율(L1NpcInstance.getRnd().nextInt(100) + 1);
                break;

            default:
                L1NpcInstance _tmp34 = Dog[4];
                item.set_배율(L1NpcInstance.getRnd().nextInt(20) + 0 + Dog[4].getRnd().nextInt(10));
                break;
            }
            item.set_nameid((new StringBuilder()).append("레이스표 #").append(Dog[4].get_nameid()).append(" #").append(item.get_배율()).append("배").toString());
            item.set_price(500);
            item.set_개이름(Dog[4].get_name());
            break;
        }
    }

    public void 레이스표가격변동(int id){
        L1Item item = ItemTable.getInstance().getTemplate(id, 0);
        if(일등 == item.get_개이름())
            item.set_price(500 * item.get_배율());
        else
            item.set_price(0);
    }

    public void 상점물품로드(){
        상점갱신(628, 0);
        상점갱신(629, 1);
        상점갱신(630, 2);
        상점갱신(631, 3);
        상점갱신(632, 4);
    }
/*
    public void 상점갱신(int a, int b){ // 이부분에서 개경 npc 불러들이는부분 게렝 수정부분
     //추가부분
  //L1NpcInstance = NpcTable.getInstance().getTemplate(id);
  //L1NpcInstance = new L1NpcInstance(L1NpcInstance);
  //여기까지
  L1Object TempObj = L1World.getInstance().findObject(WorldMapPoint.getInstance().get_map(33516, 32857, 4));
  L1NpcInstance npc = (L1NpcInstance)TempObj;
  L1ShopInstance Shopnpc = (L1ShopInstance)npc;
        ShopBuyList shop = new ShopBuyList();
        레이스표(a, b);
  shop.set_npcid(61011);
        shop.set_itemid(a);
        shop.set_itemtype(0);
        Shopnpc.get_sn().addShop(shop);
    }
*/
    public void 상점갱신(int a, int b){ // 이부분에서 개경 npc 불러들이는부분 게렝 수정부분

  L1Object TempObj = L1World.getInstance().findObject(WorldMapPoint.getInstance().get_map(33516, 32857, 4));
  L1NpcInstance npc = (L1NpcInstance)TempObj;
  L1ShopInstance Shopnpc = (L1ShopInstance)npc;
        ShopBuyList shop = new ShopBuyList();
        레이스표(a, b);
  shop.set_npcid(61011);
        shop.set_itemid(a);
        shop.set_itemtype(0);
        Shopnpc.get_sn().addShop(shop);
    }

    public void 상점초기화(){
  L1Object TempObj = L1World.getInstance().findObject(WorldMapPoint.getInstance().get_map(33516, 32857, 4));
        L1NpcInstance npc = (L1NpcInstance)TempObj;
  L1ShopInstance Shopnpc = (L1ShopInstance)npc;
  Shopnpc.get_sn().delShop();
      }

 
    public void 순위매기기(int i){
        L1Object TempObj = L1World.getInstance().findObject(WorldMapPoint.getInstance().get_map(33516, 32857, 4));
     L1NpcInstance npc = (L1NpcInstance)TempObj;
     switch(i){
        default:
            break;

        case 0: // '\0'
            랭킹 = 랭킹 + 1;
            npc.bph().NpcChatPacket(npc, (new StringBuilder()).append(랭킹).append("위 - ").append(Dog[0].get_nameid()).toString(), Opcodes.S_OPCODE_NORMALCHAT, 0x00);
            if(랭킹 == 1){
                일등 = Dog[0].get_name();
                일등2 = Dog[0].get_nameid();
                레이스표가격변동(628);
                레이스표가격변동(629);
                레이스표가격변동(630);
                레이스표가격변동(631);
                레이스표가격변동(632);
            }
            break;

        case 1: // '\001'
            랭킹 = 랭킹 + 1;
            npc.bph().NpcChatPacket(npc, (new StringBuilder()).append(랭킹).append("위 - ").append(Dog[1].get_nameid()).toString(), Opcodes.S_OPCODE_NORMALCHAT, 0x00);
            if(랭킹 == 1){
                일등 = Dog[1].get_name();
                일등2 = Dog[1].get_nameid();
                레이스표가격변동(628);
                레이스표가격변동(629);
                레이스표가격변동(630);
                레이스표가격변동(631);
                레이스표가격변동(632);
            }
            break;

        case 2: // '\002'
            랭킹 = 랭킹 + 1;
            npc.bph().NpcChatPacket(npc, (new StringBuilder()).append(랭킹).append("위 - ").append(Dog[2].get_nameid()).toString(), Opcodes.S_OPCODE_NORMALCHAT, 0x00);
            if(랭킹 == 1){
                일등 = Dog[2].get_name();
                일등2 = Dog[2].get_nameid();
                레이스표가격변동(628);
                레이스표가격변동(629);
                레이스표가격변동(630);
                레이스표가격변동(631);
                레이스표가격변동(632);
            }
            break;

        case 3: // '\003'
            랭킹 = 랭킹 + 1;
            npc.bph().NpcChatPacket(npc, (new StringBuilder()).append(랭킹).append("위 - ").append(Dog[3].get_nameid()).toString(), Opcodes.S_OPCODE_NORMALCHAT, 0x00);
            if(랭킹 == 1){
                일등 = Dog[3].get_name();
                일등2 = Dog[3].get_nameid();
                레이스표가격변동(628);
                레이스표가격변동(629);
                레이스표가격변동(630);
                레이스표가격변동(631);
                레이스표가격변동(632);
            }
            break;

        case 4: // '\004'
            랭킹 = 랭킹 + 1;
            npc.bph().NpcChatPacket(npc, (new StringBuilder()).append(랭킹).append("위 - ").append(Dog[4].get_nameid()).toString(), Opcodes.S_OPCODE_NORMALCHAT, 0x00);
            if(랭킹 == 1){
                일등 = Dog[4].get_name();
                일등2 = Dog[4].get_nameid();
                레이스표가격변동(628);
                레이스표가격변동(629);
                레이스표가격변동(630);
                레이스표가격변동(631);
                레이스표가격변동(632);
            }
            break;
        }
    }

     public void 인벤갱신(){
        인벤표삭제("레이스표 1-1");
        인벤표삭제("레이스표 1-2");
        인벤표삭제("레이스표 1-3");
        인벤표삭제("레이스표 1-4");
        인벤표삭제("레이스표 1-5");
    }

    public void 인벤표삭제(String j){
        L1PcInstance players[] = L1World.getInstance().getAllPlayers();
        L1ItemInstance temp = null;
        for(int i = 0; i < players.length; i++){
            temp = players[i].get_cil().아이템찾기(j);
            if(temp != null){
                players[i].sendPackets(players[i].get_netConnection().bph().get_Item().S_ItemDelete(temp), true);
                players[i].get_cil().removeItems(temp);
            }
        }

    }
 
 private void 시작알림() throws Exception{
     L1Object TempObj = L1World.getInstance().findObject(WorldMapPoint.getInstance().get_map(33516, 32857, 4));
     L1NpcInstance npc = (L1NpcInstance)TempObj;
     npc.bph().NpcChatPacket(npc, "레이스표 판매를 시작하였습니다.", Opcodes.S_OPCODE_NORMALCHAT, 0x00);
        System.out.println("레이스표 판매를 시작하였습니다.");
        sleep(2000L);
        npc.bph().NpcChatPacket(npc, "5분 후 개경이 시작됩니다.", Opcodes.S_OPCODE_NORMALCHAT, 0x00);
        System.out.println("5분 후 개경이 시작됩니다.");
        방송("5분 후 귀여운 강아지들의 질주가 시작됩니다.");
        sleep(60000L);
        npc.bph().NpcChatPacket(npc, "4분 후 개경이 시작됩니다.", Opcodes.S_OPCODE_NORMALCHAT, 0x00);
        System.out.println("4분 후 개경이 시작됩니다.");
        방송("4분 후 귀여운 강아지들의 질주가 시작됩니다.");
        sleep(60000L);
        npc.bph().NpcChatPacket(npc, "3분 후 개경이 시작됩니다.", Opcodes.S_OPCODE_NORMALCHAT, 0x00);
        System.out.println("3분 후 개경이 시작됩니다.");
        방송("3분 후 귀여운 강아지들의 질주가 시작됩니다.");
        sleep(60000L);
        npc.bph().NpcChatPacket(npc, "2분 후 개경이 시작됩니다.", Opcodes.S_OPCODE_NORMALCHAT, 0x00);
        System.out.println("2분 후 개경이 시작됩니다.");
        방송("2분 후 귀여운 강아지들의 질주가 시작됩니다.");
        sleep(60000L);
        npc.bph().NpcChatPacket(npc, "1분 후 개경이 시작됩니다.", Opcodes.S_OPCODE_NORMALCHAT, 0x00);
        System.out.println("1분 후 개경이 시작됩니다.");
        방송("잠시 후 귀여운 강아지들의 질주를 시작합니다v");
        방송("개 경기장으로 구경오세요v");
        sleep(48000L);
   //     상점초기화();
        npc.bph().NpcChatPacket(npc, "레이스표 판매가 마감되었습니다.", Opcodes.S_OPCODE_NORMALCHAT, 0x00);
        sleep(2000L);
        npc.bph().NpcChatPacket(npc, "10초 후 개경이 시작됩니다.", Opcodes.S_OPCODE_NORMALCHAT, 0x00);
        sleep(5000L);
        npc.bph().NpcChatPacket(npc, "5초 후 개경이 시작됩니다.", Opcodes.S_OPCODE_NORMALCHAT, 0x00);
        sleep(1000L);
        npc.bph().NpcChatPacket(npc, "4초 후 개경이 시작됩니다.", Opcodes.S_OPCODE_NORMALCHAT, 0x00);
        sleep(1000L);
        npc.bph().NpcChatPacket(npc, "3초 후 개경이 시작됩니다.", Opcodes.S_OPCODE_NORMALCHAT, 0x00);
        sleep(1000L);
        npc.bph().NpcChatPacket(npc, "2초 후 개경이 시작됩니다.", Opcodes.S_OPCODE_NORMALCHAT, 0x00);
        sleep(1000L);
        npc.bph().NpcChatPacket(npc, "1초 후 개경이 시작됩니다.", Opcodes.S_OPCODE_NORMALCHAT, 0x00);
        sleep(1000L);
        npc.bph().NpcChatPacket(npc, "출발!", Opcodes.S_OPCODE_NORMALCHAT, 0x00);
        System.out.println("[psjump] 개경기: 출발!");
        StartGame();

 }
 
    public void 방송 (String text){
        L1PcInstance players[] = L1World.getInstance().getAllPlayers();
        for(int i = 0; i < players.length; i++)
          players[i].sendPackets(players[i].get_netConnection().bph().get_cp().S_ChatPacket(players[i], text, 73, 2), true);
 
    }

    private void 종료알림() throws Exception{
        L1Object TempObj = L1World.getInstance().findObject(WorldMapPoint.getInstance().get_map(33516, 32857, 4));
     L1NpcInstance npc = (L1NpcInstance)TempObj;
        npc.bph().NpcChatPacket(npc, "경기가 종료되었습니다.", Opcodes.S_OPCODE_NORMALCHAT, 0x00);
        방송((new StringBuilder()).append("귀여운 강아지들의 질주가 끝났습니다v (1등 - ").append(일등2).append(")").toString());
        System.out.println("경기가 종료되었습니다.");
        sleep(1000L);
        npc.bph().NpcChatPacket(npc, "5분 내에 당첨금을 받아가세요..", Opcodes.S_OPCODE_NORMALCHAT, 0x00);
        sleep(1000L);
        npc.bph().NpcChatPacket(npc, "10분 후에 경기를 다시 시작합니다...", Opcodes.S_OPCODE_NORMALCHAT, 0x00);
        sleep(1000L);
        npc.bph().NpcChatPacket(npc, "레이스 표는 경기 시작 5분전부터 판매합니다.", Opcodes.S_OPCODE_NORMALCHAT, 0x00);
        sleep(57000L);
        System.out.println("[psjump] 1분 경과 // 개경 다시시작 전까지 2분 남음");
        sleep(0x2bf20L);
        System.out.println("[psjump] 3분 경과 // 개경 다시시작 전까지 1분 남음");
        npc.bph().NpcChatPacket(npc, "당첨금 지급시간이 1분 남았습니다. 1분후 인벤토리에 남아있던 레이스표들이 삭제됩니다.", Opcodes.S_OPCODE_NORMALCHAT, 0x00);
        방송("당첨금 지급시간이 1분 남았습니다.");
        방송("1분후 인벤토리에 남아있던 레이스표들이 삭제됩니다.");
        sleep(45000L);
        npc.bph().NpcChatPacket(npc, "당첨금 지급시간이 10초 남았습니다. 10초후 인벤토리에 남아있던 레이스표들이 삭제됩니다.", Opcodes.S_OPCODE_NORMALCHAT, 0x00);
        sleep(12000L);
        npc.bph().NpcChatPacket(npc, "당첨금 지급시간이 끝났습니다.", Opcodes.S_OPCODE_NORMALCHAT, 0x00);
        인벤갱신();
        del();
    }

 class Dog_1 extends Thread{
        public void run(){
            int nx = 0;
            int ny = 0;
            int id = 0;
            try{
                int count = 46;
                do{
                    nx = 0;
                    ny = 0;
                    id = WorldMapPoint.getInstance().get_map(Dog[0].get_x() - 1, Dog[0].get_y(), Dog[0].get_map());
                    count--;
                    nx = -1;
                    Dog[0].set_heading(6);
                    WorldMapPoint.getInstance().set_map(Dog[0].get_x(), Dog[0].get_y(), Dog[0].get_map(), Dog[0].get_wmp());
                    Dog[0].set_x(Dog[0].get_x() + nx);
                    Dog[0].set_y(Dog[0].get_y() + ny);
                    WorldMapPoint.getInstance().set_map(Dog[0].get_x(), Dog[0].get_y(), Dog[0].get_map(), Dog[0].get_objectId());
                    AllUpdata(Dog[0]);
                    sleep(Dog[0].getNpcTemplate().getmovespeed());
                } while(count != 0);
                count = 3;
                do{
                    nx = 0;
                    ny = 0;
                    id = WorldMapPoint.getInstance().get_map(Dog[0].get_x() - 1, Dog[0].get_y() - 1, Dog[0].get_map());
                    count--;
                    nx = -1;
                    ny = -1;
                    Dog[0].set_heading(7);
                    WorldMapPoint.getInstance().set_map(Dog[0].get_x(), Dog[0].get_y(), Dog[0].get_map(), Dog[0].get_wmp());
                    Dog[0].set_x(Dog[0].get_x() + nx);
                    Dog[0].set_y(Dog[0].get_y() + ny);
                    WorldMapPoint.getInstance().set_map(Dog[0].get_x(), Dog[0].get_y(), Dog[0].get_map(), Dog[0].get_objectId());
                    AllUpdata(Dog[0]);
                    sleep(Dog[0].getNpcTemplate().getmovespeed());
                } while(count != 0);
                count = 5;
                do{
                    nx = 0;
                    ny = 0;
                    id = WorldMapPoint.getInstance().get_map(Dog[0].get_x(), Dog[0].get_y() - 1, Dog[0].get_map());
                    count--;
                    ny = -1;
                    Dog[0].set_heading(0);
                    WorldMapPoint.getInstance().set_map(Dog[0].get_x(), Dog[0].get_y(), Dog[0].get_map(), Dog[0].get_wmp());
                    Dog[0].set_x(Dog[0].get_x() + nx);
                    Dog[0].set_y(Dog[0].get_y() + ny);
                    WorldMapPoint.getInstance().set_map(Dog[0].get_x(), Dog[0].get_y(), Dog[0].get_map(), Dog[0].get_objectId());
                    AllUpdata(Dog[0]);
                    sleep(Dog[0].getNpcTemplate().getmovespeed());
                } while(count != 0);
                count = 6;
                do{
                    nx = 0;
                    ny = 0;
                    id = WorldMapPoint.getInstance().get_map(Dog[0].get_x() + 1, Dog[0].get_y() - 1, Dog[0].get_map());
                    count--;
                    nx = 1;
                    ny = -1;
                    Dog[0].set_heading(1);
                    WorldMapPoint.getInstance().set_map(Dog[0].get_x(), Dog[0].get_y(), Dog[0].get_map(), Dog[0].get_wmp());
                    Dog[0].set_x(Dog[0].get_x() + nx);
                    Dog[0].set_y(Dog[0].get_y() + ny);
                    WorldMapPoint.getInstance().set_map(Dog[0].get_x(), Dog[0].get_y(), Dog[0].get_map(), Dog[0].get_objectId());
                    AllUpdata(Dog[0]);
                    sleep(Dog[0].getNpcTemplate().getmovespeed());
                } while(count != 0);
                do{
                    nx = 0;
                    ny = 0;
                    id = WorldMapPoint.getInstance().get_map(Dog[0].get_x() + 1, Dog[0].get_y(), Dog[0].get_map());
                    if(Dog[0].get_x() == 33527)
                        break;
                    nx = 1;
                    Dog[0].set_heading(2);
                    WorldMapPoint.getInstance().set_map(Dog[0].get_x(), Dog[0].get_y(), Dog[0].get_map(), Dog[0].get_wmp());
                    Dog[0].set_x(Dog[0].get_x() + nx);
                    Dog[0].set_y(Dog[0].get_y() + ny);
                    WorldMapPoint.getInstance().set_map(Dog[0].get_x(), Dog[0].get_y(), Dog[0].get_map(), Dog[0].get_objectId());
                    AllUpdata(Dog[0]);
                    sleep(Dog[0].getNpcTemplate().getmovespeed());
                } while(true);
                순위매기기(0);
                경기끝();
            }
            catch(Exception e) { }
        }

        final DogRace this$0;

        Dog_1()
        {
            this$0 = DogRace.this;
      //      super();
        }
    }

 class Dog_2 extends Thread{

        public void run(){
            int nx = 0;
            int ny = 0;
            int id = 0;
            try{
                int count = 46;
                do{
                    nx = 0;
                    ny = 0;
                    id = WorldMapPoint.getInstance().get_map(Dog[1].get_x() - 1, Dog[1].get_y(), Dog[1].get_map());
                    count--;
                    nx = -1;
                    Dog[1].set_heading(6);
                    WorldMapPoint.getInstance().set_map(Dog[1].get_x(), Dog[1].get_y(), Dog[1].get_map(), Dog[1].get_wmp());
                    Dog[1].set_x(Dog[1].get_x() + nx);
                    Dog[1].set_y(Dog[1].get_y() + ny);
                    WorldMapPoint.getInstance().set_map(Dog[1].get_x(), Dog[1].get_y(), Dog[1].get_map(), Dog[1].get_objectId());
                    AllUpdata(Dog[1]);
                    sleep(Dog[1].getNpcTemplate().getmovespeed());
                } while(count != 0);
                count = 3;
                do{
                    nx = 0;
                    ny = 0;
                    id = WorldMapPoint.getInstance().get_map(Dog[1].get_x() - 1, Dog[1].get_y() - 1, Dog[1].get_map());
                    count--;
                    nx = -1;
                    ny = -1;
                    Dog[1].set_heading(7);
                    WorldMapPoint.getInstance().set_map(Dog[1].get_x(), Dog[1].get_y(), Dog[1].get_map(), Dog[1].get_wmp());
                    Dog[1].set_x(Dog[1].get_x() + nx);
                    Dog[1].set_y(Dog[1].get_y() + ny);
                    WorldMapPoint.getInstance().set_map(Dog[1].get_x(), Dog[1].get_y(), Dog[1].get_map(), Dog[1].get_objectId());
                    AllUpdata(Dog[1]);
                    sleep(Dog[1].getNpcTemplate().getmovespeed());
                } while(count != 0);
                count = 5;
                do{
                    nx = 0;
                    ny = 0;
                    id = WorldMapPoint.getInstance().get_map(Dog[1].get_x(), Dog[1].get_y() - 1, Dog[1].get_map());
                    count--;
                    ny = -1;
                    Dog[1].set_heading(0);
                    WorldMapPoint.getInstance().set_map(Dog[1].get_x(), Dog[1].get_y(), Dog[1].get_map(), Dog[1].get_wmp());
                    Dog[1].set_x(Dog[1].get_x() + nx);
                    Dog[1].set_y(Dog[1].get_y() + ny);
                    WorldMapPoint.getInstance().set_map(Dog[1].get_x(), Dog[1].get_y(), Dog[1].get_map(), Dog[1].get_objectId());
                    AllUpdata(Dog[1]);
                    sleep(Dog[1].getNpcTemplate().getmovespeed());
                } while(count != 0);
                count = 10;
                do{
                    nx = 0;
                    ny = 0;
                    id = WorldMapPoint.getInstance().get_map(Dog[1].get_x() + 1, Dog[1].get_y() - 1, Dog[1].get_map());
                    count--;
                    nx = 1;
                    ny = -1;
                    Dog[1].set_heading(1);
                    WorldMapPoint.getInstance().set_map(Dog[1].get_x(), Dog[1].get_y(), Dog[1].get_map(), Dog[1].get_wmp());
                    Dog[1].set_x(Dog[1].get_x() + nx);
                    Dog[1].set_y(Dog[1].get_y() + ny);
                    WorldMapPoint.getInstance().set_map(Dog[1].get_x(), Dog[1].get_y(), Dog[1].get_map(), Dog[1].get_objectId());
                    AllUpdata(Dog[1]);
                    sleep(Dog[1].getNpcTemplate().getmovespeed());
                } while(count != 0);
                do{
                    nx = 0;
                    ny = 0;
                    id = WorldMapPoint.getInstance().get_map(Dog[1].get_x() + 1, Dog[1].get_y(), Dog[1].get_map());
                    if(Dog[1].get_x() == 33527)
                        break;
                    nx = 1;
                    Dog[1].set_heading(2);
                    WorldMapPoint.getInstance().set_map(Dog[1].get_x(), Dog[1].get_y(), Dog[1].get_map(), Dog[1].get_wmp());
                    Dog[1].set_x(Dog[1].get_x() + nx);
                    Dog[1].set_y(Dog[1].get_y() + ny);
                    WorldMapPoint.getInstance().set_map(Dog[1].get_x(), Dog[1].get_y(), Dog[1].get_map(), Dog[1].get_objectId());
                    AllUpdata(Dog[1]);
                    sleep(Dog[1].getNpcTemplate().getmovespeed());
                } while(true);
                순위매기기(1);
                경기끝();
            }
            catch(Exception e) { }
        }

        final DogRace this$0;

        Dog_2()
        {
            this$0 = DogRace.this;
       //     super();
        }
    }

 class Dog_3 extends Thread{

        public void run(){
            int nx = 0;
            int ny = 0;
            int id = 0;
            try{
                int count = 44;
                do{
                    nx = 0;
                    ny = 0;
                    id = WorldMapPoint.getInstance().get_map(Dog[2].get_x() - 1, Dog[2].get_y(), Dog[2].get_map());
                    count--;
                    nx = -1;
                    Dog[2].set_heading(6);
                    WorldMapPoint.getInstance().set_map(Dog[2].get_x(), Dog[2].get_y(), Dog[2].get_map(), Dog[2].get_wmp());
                    Dog[2].set_x(Dog[2].get_x() + nx);
                    Dog[2].set_y(Dog[2].get_y() + ny);
                    WorldMapPoint.getInstance().set_map(Dog[2].get_x(), Dog[2].get_y(), Dog[2].get_map(), Dog[2].get_objectId());
                    AllUpdata(Dog[2]);
                    sleep(Dog[2].getNpcTemplate().getmovespeed());
                } while(count != 0);
                count = 3;
                do{
                    nx = 0;
                    ny = 0;
                    id = WorldMapPoint.getInstance().get_map(Dog[2].get_x() - 1, Dog[2].get_y() - 1, Dog[2].get_map());
                    count--;
                    nx = -1;
                    ny = -1;
                    Dog[2].set_heading(7);
                    WorldMapPoint.getInstance().set_map(Dog[2].get_x(), Dog[2].get_y(), Dog[2].get_map(), Dog[2].get_wmp());
                    Dog[2].set_x(Dog[2].get_x() + nx);
                    Dog[2].set_y(Dog[2].get_y() + ny);
                    WorldMapPoint.getInstance().set_map(Dog[2].get_x(), Dog[2].get_y(), Dog[2].get_map(), Dog[2].get_objectId());
                    AllUpdata(Dog[2]);
                    sleep(Dog[2].getNpcTemplate().getmovespeed());
                } while(count != 0);
                count = 5;
                do{
                    nx = 0;
                    ny = 0;
                    id = WorldMapPoint.getInstance().get_map(Dog[2].get_x(), Dog[2].get_y() - 1, Dog[2].get_map());
                    count--;
                    ny = -1;
                    Dog[2].set_heading(0);
                    WorldMapPoint.getInstance().set_map(Dog[2].get_x(), Dog[2].get_y(), Dog[2].get_map(), Dog[2].get_wmp());
                    Dog[2].set_x(Dog[2].get_x() + nx);
                    Dog[2].set_y(Dog[2].get_y() + ny);
                    WorldMapPoint.getInstance().set_map(Dog[2].get_x(), Dog[2].get_y(), Dog[2].get_map(), Dog[2].get_objectId());
                    AllUpdata(Dog[2]);
                    sleep(Dog[2].getNpcTemplate().getmovespeed());
                } while(count != 0);
                count = 14;
                do{
                    nx = 0;
                    ny = 0;
                    id = WorldMapPoint.getInstance().get_map(Dog[2].get_x() + 1, Dog[2].get_y() - 1, Dog[2].get_map());
                    count--;
                    nx = 1;
                    ny = -1;
                    Dog[2].set_heading(1);
                    WorldMapPoint.getInstance().set_map(Dog[2].get_x(), Dog[2].get_y(), Dog[2].get_map(), Dog[2].get_wmp());
                    Dog[2].set_x(Dog[2].get_x() + nx);
                    Dog[2].set_y(Dog[2].get_y() + ny);
                    WorldMapPoint.getInstance().set_map(Dog[2].get_x(), Dog[2].get_y(), Dog[2].get_map(), Dog[2].get_objectId());
                    AllUpdata(Dog[2]);
                    sleep(Dog[2].getNpcTemplate().getmovespeed());
                } while(count != 0);
                do{
                    nx = 0;
                    ny = 0;
                    id = WorldMapPoint.getInstance().get_map(Dog[2].get_x() + 1, Dog[2].get_y(), Dog[2].get_map());
                    if(Dog[2].get_x() == 33527)
                        break;
                    nx = 1;
                    Dog[2].set_heading(2);
                    WorldMapPoint.getInstance().set_map(Dog[2].get_x(), Dog[2].get_y(), Dog[2].get_map(), Dog[2].get_wmp());
                    Dog[2].set_x(Dog[2].get_x() + nx);
                    Dog[2].set_y(Dog[2].get_y() + ny);
                    WorldMapPoint.getInstance().set_map(Dog[2].get_x(), Dog[2].get_y(), Dog[2].get_map(), Dog[2].get_objectId());
                    AllUpdata(Dog[2]);
                    sleep(Dog[2].getNpcTemplate().getmovespeed());
                } while(true);
                순위매기기(2);
                경기끝();
            }
            catch(Exception e) { }
        }

        final DogRace this$0;

        Dog_3()
        {
            this$0 = DogRace.this;
       //     super();
        }
    }

 class Dog_4 extends Thread{

        public void run(){
            int nx = 0;
            int ny = 0;
            int id = 0;
            try{
                int count = 46;
                do{
                    nx = 0;
                    ny = 0;
                    id = WorldMapPoint.getInstance().get_map(Dog[3].get_x() - 1, Dog[3].get_y(), Dog[3].get_map());
                    count--;
                    nx = -1;
                    Dog[3].set_heading(6);
                    WorldMapPoint.getInstance().set_map(Dog[3].get_x(), Dog[3].get_y(), Dog[3].get_map(), Dog[3].get_wmp());
                    Dog[3].set_x(Dog[3].get_x() + nx);
                    Dog[3].set_y(Dog[3].get_y() + ny);
                    WorldMapPoint.getInstance().set_map(Dog[3].get_x(), Dog[3].get_y(), Dog[3].get_map(), Dog[3].get_objectId());
                    AllUpdata(Dog[3]);
                    sleep(Dog[3].getNpcTemplate().getmovespeed());
                } while(count != 0);
                count = 3;
                do{
                    nx = 0;
                    ny = 0;
                    id = WorldMapPoint.getInstance().get_map(Dog[3].get_x() - 1, Dog[3].get_y() - 1, Dog[3].get_map());
                    count--;
                    nx = -1;
                    ny = -1;
                    Dog[3].set_heading(7);
                    WorldMapPoint.getInstance().set_map(Dog[3].get_x(), Dog[3].get_y(), Dog[3].get_map(), Dog[3].get_wmp());
                    Dog[3].set_x(Dog[3].get_x() + nx);
                    Dog[3].set_y(Dog[3].get_y() + ny);
                    WorldMapPoint.getInstance().set_map(Dog[3].get_x(), Dog[3].get_y(), Dog[3].get_map(), Dog[3].get_objectId());
                    AllUpdata(Dog[3]);
                    sleep(Dog[3].getNpcTemplate().getmovespeed());
                } while(count != 0);
                count = 5;
                do{
                    nx = 0;
                    ny = 0;
                    id = WorldMapPoint.getInstance().get_map(Dog[3].get_x(), Dog[3].get_y() - 1, Dog[3].get_map());
                    count--;
                    ny = -1;
                    Dog[3].set_heading(0);
                    WorldMapPoint.getInstance().set_map(Dog[3].get_x(), Dog[3].get_y(), Dog[3].get_map(), Dog[3].get_wmp());
                    Dog[3].set_x(Dog[3].get_x() + nx);
                    Dog[3].set_y(Dog[3].get_y() + ny);
                    WorldMapPoint.getInstance().set_map(Dog[3].get_x(), Dog[3].get_y(), Dog[3].get_map(), Dog[3].get_objectId());
                    AllUpdata(Dog[3]);
                    sleep(Dog[3].getNpcTemplate().getmovespeed());
                } while(count != 0);
                count = 18;
                do{
                    nx = 0;
                    ny = 0;
                    id = WorldMapPoint.getInstance().get_map(Dog[3].get_x() + 1, Dog[3].get_y() - 1, Dog[3].get_map());
                    count--;
                    nx = 1;
                    ny = -1;
                    Dog[3].set_heading(1);
                    WorldMapPoint.getInstance().set_map(Dog[3].get_x(), Dog[3].get_y(), Dog[3].get_map(), Dog[3].get_wmp());
                    Dog[3].set_x(Dog[3].get_x() + nx);
                    Dog[3].set_y(Dog[3].get_y() + ny);
                    WorldMapPoint.getInstance().set_map(Dog[3].get_x(), Dog[3].get_y(), Dog[3].get_map(), Dog[3].get_objectId());
                    AllUpdata(Dog[3]);
                    sleep(Dog[3].getNpcTemplate().getmovespeed());
                } while(count != 0);
                do{
                    nx = 0;
                    ny = 0;
                    id = WorldMapPoint.getInstance().get_map(Dog[3].get_x() + 1, Dog[3].get_y(), Dog[3].get_map());
                    if(Dog[3].get_x() == 33527)
                        break;
                    nx = 1;
                    Dog[3].set_heading(2);
                    WorldMapPoint.getInstance().set_map(Dog[3].get_x(), Dog[3].get_y(), Dog[3].get_map(), Dog[3].get_wmp());
                    Dog[3].set_x(Dog[3].get_x() + nx);
                    Dog[3].set_y(Dog[3].get_y() + ny);
                    WorldMapPoint.getInstance().set_map(Dog[3].get_x(), Dog[3].get_y(), Dog[3].get_map(), Dog[3].get_objectId());
                    AllUpdata(Dog[3]);
                    sleep(Dog[3].getNpcTemplate().getmovespeed());
                } while(true);
                순위매기기(3);
                경기끝();
            }
            catch(Exception e) { }
        }

        final DogRace this$0;

        Dog_4()
        {
            this$0 = DogRace.this;
       //     super();
        }
    }

 class Dog_5 extends Thread{

        public void run(){
            int nx = 0;
            int ny = 0;
            int id = 0;
            try{
                int count = 46;
                do{
                    nx = 0;
                    ny = 0;
                    id = WorldMapPoint.getInstance().get_map(Dog[4].get_x() - 1, Dog[4].get_y(), Dog[4].get_map());
                    count--;
                    nx = -1;
                    Dog[4].set_heading(6);
                    WorldMapPoint.getInstance().set_map(Dog[4].get_x(), Dog[4].get_y(), Dog[4].get_map(), Dog[4].get_wmp());
                    Dog[4].set_x(Dog[4].get_x() + nx);
                    Dog[4].set_y(Dog[4].get_y() + ny);
                    WorldMapPoint.getInstance().set_map(Dog[4].get_x(), Dog[4].get_y(), Dog[4].get_map(), Dog[4].get_objectId());
                    AllUpdata(Dog[4]);
                    sleep(Dog[4].getNpcTemplate().getmovespeed());
                } while(count != 0);
                count = 3;
                do{
                    nx = 0;
                    ny = 0;
                    id = WorldMapPoint.getInstance().get_map(Dog[4].get_x() - 1, Dog[4].get_y() - 1, Dog[4].get_map());
                    count--;
                    nx = -1;
                    ny = -1;
                    Dog[4].set_heading(7);
                    WorldMapPoint.getInstance().set_map(Dog[4].get_x(), Dog[4].get_y(), Dog[4].get_map(), Dog[4].get_wmp());
                    Dog[4].set_x(Dog[4].get_x() + nx);
                    Dog[4].set_y(Dog[4].get_y() + ny);
                    WorldMapPoint.getInstance().set_map(Dog[4].get_x(), Dog[4].get_y(), Dog[4].get_map(), Dog[4].get_objectId());
                    AllUpdata(Dog[4]);
                    sleep(Dog[4].getNpcTemplate().getmovespeed());
                } while(count != 0);
                count = 5;
                do{
                    nx = 0;
                    ny = 0;
                    id = WorldMapPoint.getInstance().get_map(Dog[4].get_x(), Dog[4].get_y() - 1, Dog[4].get_map());
                    count--;
                    ny = -1;
                    Dog[4].set_heading(0);
                    WorldMapPoint.getInstance().set_map(Dog[4].get_x(), Dog[4].get_y(), Dog[4].get_map(), Dog[4].get_wmp());
                    Dog[4].set_x(Dog[4].get_x() + nx);
                    Dog[4].set_y(Dog[4].get_y() + ny);
                    WorldMapPoint.getInstance().set_map(Dog[4].get_x(), Dog[4].get_y(), Dog[4].get_map(), Dog[4].get_objectId());
                    AllUpdata(Dog[4]);
                    sleep(Dog[4].getNpcTemplate().getmovespeed());
                } while(count != 0);
                count = 22;
                do{
                    nx = 0;
                    ny = 0;
                    id = WorldMapPoint.getInstance().get_map(Dog[4].get_x() + 1, Dog[4].get_y() - 1, Dog[4].get_map());
                    count--;
                    nx = 1;
                    ny = -1;
                    Dog[4].set_heading(1);
                    WorldMapPoint.getInstance().set_map(Dog[4].get_x(), Dog[4].get_y(), Dog[4].get_map(), Dog[4].get_wmp());
                    Dog[4].set_x(Dog[4].get_x() + nx);
                    Dog[4].set_y(Dog[4].get_y() + ny);
                    WorldMapPoint.getInstance().set_map(Dog[4].get_x(), Dog[4].get_y(), Dog[4].get_map(), Dog[4].get_objectId());
                    AllUpdata(Dog[4]);
                    sleep(Dog[4].getNpcTemplate().getmovespeed());
                } while(count != 0);
                do{
                    nx = 0;
                    ny = 0;
                    id = WorldMapPoint.getInstance().get_map(Dog[4].get_x() + 1, Dog[4].get_y(), Dog[4].get_map());
                    if(Dog[4].get_x() == 33527)
                        break;
                    nx = 1;
                    Dog[4].set_heading(2);
                    WorldMapPoint.getInstance().set_map(Dog[4].get_x(), Dog[4].get_y(), Dog[4].get_map(), Dog[4].get_wmp());
                    Dog[4].set_x(Dog[4].get_x() + nx);
                    Dog[4].set_y(Dog[4].get_y() + ny);
                    WorldMapPoint.getInstance().set_map(Dog[4].get_x(), Dog[4].get_y(), Dog[4].get_map(), Dog[4].get_objectId());
                    AllUpdata(Dog[4]);
                    sleep(Dog[4].getNpcTemplate().getmovespeed());
                } while(true);
               순위매기기(4);
                경기끝();
            }
            catch(Exception e) { }
        }

        final DogRace this$0;

        Dog_5()
        {
            this$0 = DogRace.this;
       //     super();
        }
    }


 public void 경기끝()
        throws Exception{
        if(Dog[0].get_x() == 33527 && Dog[1].get_x() == 33527 && Dog[2].get_x() == 33527 && Dog[3].get_x() == 33527 && Dog[4].get_x() == 33527)
        {
            종료알림();
             del();
            sleep(2000L);
            L1PcInstance player[] = L1World.getInstance().getAllPlayers();
            for(int i = 0; i < player.length; i++){
                player[i].removeKnownObject(Dog[0]);
                player[i].removeKnownObject(Dog[1]);
                player[i].removeKnownObject(Dog[2]);
                player[i].removeKnownObject(Dog[3]);
                player[i].removeKnownObject(Dog[4]);
                player[i].sendPackets(player[i].get_netConnection().bph().get_DeleteObject().S_DeleteNewObject(Dog[0]), true);
                player[i].sendPackets(player[i].get_netConnection().bph().get_DeleteObject().S_DeleteNewObject(Dog[1]), true);
                player[i].sendPackets(player[i].get_netConnection().bph().get_DeleteObject().S_DeleteNewObject(Dog[2]), true);
                player[i].sendPackets(player[i].get_netConnection().bph().get_DeleteObject().S_DeleteNewObject(Dog[3]), true);
                player[i].sendPackets(player[i].get_netConnection().bph().get_DeleteObject().S_DeleteNewObject(Dog[4]), true);
                L1World.getInstance().removeVisibleObject(Dog[0]);
                L1World.getInstance().removeVisibleObject(Dog[1]);
                L1World.getInstance().removeVisibleObject(Dog[2]);
                L1World.getInstance().removeVisibleObject(Dog[3]);
                L1World.getInstance().removeVisibleObject(Dog[4]);
            }

            System.out.println("[psjump] 개 오브젝트 삭제");
            if(_instance == null)
                _instance = new DogRace();
        }
    }

 private boolean distance(L1Object a, L1Object b){
        int radius = 10;
        int x = a.get_x();
        int y = a.get_y();
        int map = a.get_map();
        int MobX = b.get_x();
        int MobY = b.get_y();
        int MobMap = b.get_map();
        int xmax = x + radius;
        int xmin = x - radius;
        int ymax = y + radius;
        int ymin = y - radius;
        if(MobY > ymax)
            return true;
        if(MobY < ymin)
            return true;
        if(MobX > xmax)
            return true;
        if(MobX < xmin)
            return true;
        return MobMap != map;
    }

 private void AllUpdata(L1NpcInstance Dog){
  //-- 오브젝트 리스트에서 갱신하기
  for(int i = 0; i < Dog.getKnownPlayers().size(); i++){
   L1PcInstance user = (L1PcInstance) Dog.getKnownPlayers().get(i);
   if(user != null){
    if (distance(Dog, user)){ // 10범위 밖에 있다면
     Dog.removeKnownObject(user);
     user.sendPackets(Dog.bph().get_DeleteObject().S_DeleteNewObject(Dog), true);

//     user.sendPackets(S_DeleteNewObject(Dog), true);
     user.removeKnownObject(Dog);
    }
   }else{
    Dog.removeKnownObject(user);
   }
  }
  //-- 월드맵포인트에서 몬스터의 10범위를 검색, 오브젝트찾기
  int gab = 0;
  for(int i=0 ; i<20 ; i++){
   for(int j=0 ; j<20 ; j++){
    int[] id = WorldMapPoint.getInstance().object((Dog.get_x()-10)+j,(Dog.get_y()-10)+i,Dog.get_map());
    for(int k=1 ; k<4 ; ++k){
     if((id[k] != Dog.get_objectId())&&(id[k] > 0)){
      L1Object temp = L1World.getInstance().findObject(id[k]);
      if(Dog.knownsObject(temp)){ // 찾은 오브젝트가 나의 리스트안에 있다면..
       if(temp instanceof L1PcInstance){
        L1PcInstance player = (L1PcInstance) temp;
        if(!player.knownsObject(Dog)){ // 찾은녀석안에 내가 없다면
         player.addKnownObject(Dog);
         player.sendPackets(Dog.bph().get_NewObjectPack().S_OwnCharPack(player, Dog), true);

        }
        player.sendPackets(Dog.bph().get_MoveCharPacket().S_MoveCharPacket(Dog), true);
       }
      }else{ // 없다면..
       if(temp instanceof L1PcInstance){ // 찾은게 플레이어라면
        L1PcInstance player = (L1PcInstance) temp;
        player.sendPackets(Dog.bph().get_NewObjectPack().S_OwnCharPack(player, Dog), true);
        if(!player.knownsObject(Dog)){
         player.addKnownObject(Dog);
        }
        if(!Dog.knownsObject(player)){
         Dog.addKnownObject(player);
        }
       }
      }
     }
    }
   }
  }
 }


 private void SleepTime(){
        for(int i = 0; i < 5; i++){
            L1NpcInstance _tmp = Dog[i];
            TIME[i] = L1NpcInstance.getRnd().nextInt(260) + 140;
        }

    }

 private void DoorStatus(boolean ck){
        for(int m = 0; m < 5; m++){
            if(ck)
                Door[m].set_heading(28);
            else
                Door[m].set_heading(29);
            for(int i = 0; i < 20; i++){
                for(int j = 0; j < 20; j++){
                    int id = WorldMapPoint.getInstance().get_map((Door[m].get_x() - 10) + j, (Door[m].get_y() - 10) + i, Door[m].get_map());
                    for(int k = 1; k < 4; k++){
                        if(id == Door[m].get_objectId() || id <= 0)
                            continue;
                        L1Object temp = L1World.getInstance().findObject(id);
                        if(temp != null && (temp instanceof L1PcInstance)){
                            L1PcInstance cha = (L1PcInstance)temp;
                            cha.sendPackets(cha.get_netConnection().bph().get_CharAction().S_DoAction(Door[m].get_objectId(), Door[m].get_heading()), true);
                        }
                    }

                }

            }

        }

    }

 
 private void loadDog(){
  L1Npc npc;
  for(int m=0 ; m<5 ; ++m){
   try{
    npc = new L1Npc();
    npc.setmovespeed(TIME[m]);
    Object[] parameters = {npc};
    Dog[m] = (L1NpcInstance) Class.forName("psjump.server.model.L1NpcInstance").getConstructors()[0].newInstance(parameters);
    Dog[m].set_gfxid(GFX[ Dog[m].getRnd().nextInt(4) ][ Dog[m].getRnd().nextInt(5) ]);
    Dog[m].set_nameid(Name_List[ Dog[m].getRnd().nextInt(Name_List.length) ]);
    Dog[m].set_x(Start_X[m]);
    Dog[m].set_y(Start_Y[m]);
    Dog[m].set_map(4);
    Dog[m].set_heading(5);
    while(true){
     Dog[m].set_objectId(IdFactory.getInstance().getNextId());
     if(L1World.getInstance().storeObject(Dog[m])){
      try{
       WorldMapPoint.getInstance().AddObject(Start_X[m],Start_Y[m],4,Dog[m].get_objectId());
      }catch (Exception e1){}
      break;
     }
    }
    for(int i=0 ; i<20 ; i++){
     for(int j=0 ; j<20 ; j++){
      int[] id = WorldMapPoint.getInstance().object((Dog[m].get_x()-10)+j,(Dog[m].get_y()-10)+i,Dog[m].get_map());
      for(int k=1 ; k<4 ; ++k){
       if((id[k] != Dog[m].get_objectId())&&(id[k] > 0)){
        L1Object temp = L1World.getInstance().findObject(id[k]);
        if(temp != null){
         if(!Dog[m].knownsObject(temp)){
          if(temp instanceof L1PcInstance){
           L1PcInstance player = (L1PcInstance) temp;
           Dog[m].addKnownObject(player);
           player.sendPackets(Dog[m].bph().get_NewObjectPack().S_OwnCharPack(player, Dog[m]), true);

           if(!player.knownsObject(Dog[m])){
            player.addKnownObject(Dog[m]);
           }
          }
         }
        }
       }
      }
     }
    }
   }catch (Exception e){}
  }
 }
}

출처=커뮤니티

[출처] 개경소스.java (비공개 카페)

번호 제목 글쓴이 날짜 조회 수
공지 소스자료는 직접 올려주세요 게임존 2017.06.06 550
209 [요정]속성 마법에 의한 추가 데미지 연구사원 2016.06.07 94
208 특정지역 몬스터 아덴드랍율 높히기.txt [1] 연구사원 2016.06.07 131
207 NPC 호칭 달아주기 소스 연구사원 2016.06.07 74
206 환생 npc LTE 2016.06.06 136
205 gm용 아이템 생성 npc [1] LTE 2016.06.06 212
204 워프 npc LTE 2016.06.06 58
203 성형 npc LTE 2016.06.06 67
202 수동 스킬마스터 LTE 2016.06.06 323
201 홍보코인 상점npc LTE 2016.06.06 131
200 자동전직 npc LTE 2016.06.06 108
» 개경소스 [1] 연구사원 2016.06.03 344
198 공성전 군주지급템에 관한 소스 연구사원 2016.06.02 87
197 마방 및 마법데미지 본x화 [1] 연구사원 2016.06.02 595
196 정확한 마방값을 불러오자 김닉넴 2016.05.20 196
195 버그사용자에게 몬스터가 말하기 | 김닉넴 2016.05.20 163
194 윈성 용병대장에게서 폭풍의칼날단 받는소스 입니다 김닉넴 2016.05.20 89
193 빈주문서추가 김닉넴 2016.05.20 52
192 마방이랑 옵션 완벽 적용 [1] 김닉넴 2016.05.20 218
191 공성시간 자동 돌리기 김닉넴 2016.05.20 84
190 재질에 의한 타격치.. 김닉넴 2016.05.20 58
189 헤이스트 아이템 헤이스트효과구현 김닉넴 2016.05.20 35
188 언데드계열 힐주기 김닉넴 2016.05.20 28
187 덱방을 알아보자.. 김닉넴 2016.05.20 49
186 마법사_에볼 김닉넴 2016.05.20 70
185 마법서복권 김닉넴 2016.05.20 65
184 마법투구 헤이스트추가 김닉넴 2016.05.20 37
183 마수군왕의 징표함 적용 김닉넴 2016.05.20 31
182 만라우풀일때 아이템 안떨구기 김닉넴 2016.05.20 118
181 말하는 두루마리 무게버그수정.txt 김닉넴 2016.05.20 50
180 몬스터 벽인식 김닉넴 2016.05.20 148
179 몹 HP게이지 만들기 [3] 김닉넴 2016.05.20 185
178 GM명령어 아크변신 김닉넴 2016.05.20 138
177 간단 낚시 버그 김닉넴 2016.05.20 173
176 UI5 Key [출처] UI5 Key 김닉넴 2016.05.20 31
175 UI5 서버버전패킷 & 언노운 김닉넴 2016.05.20 51
174 UI5 옵코드 김닉넴 2016.05.20 245
173 린드비오르 레이드 맵 / 확인불명 신규맵 김닉넴 2016.05.20 49
172 4.20일자 key 언노운 서버버전 옵코드 김닉넴 2016.05.20 150
171 신규 spr 김닉넴 2016.05.20 194
170 두번째 인던맵 입니다 김닉넴 2016.05.20 77
169 인던 녹색 메세지 패킷 김닉넴 2016.05.20 29
168 이블 트릭.. 이블 리버스.. 소스(?) 일까나..ㅎㅎ 김닉넴 2016.05.20 104
167 A* 알고리즘 (몬스터 길찾기) 김닉넴 2016.05.20 286
166 [에바/일팩] * 귓속말 글자수 늘리는 방법 김닉넴 2016.05.20 23
165 [에바/일팩] * 3.63혈맹창 리뉴얼 김닉넴 2016.05.20 59
164 [점팩] * 드레이크인형 김닉넴 2016.05.20 55
163 [에바/일팩] * 바운스헌터 및 신규변신 김닉넴 2016.05.20 83
162 [에바/일팩] 스턴 확률조정법 김닉넴 2016.05.20 146
161 [150811] Opcodes 김닉넴 2016.05.20 402
160 PK 승리시 깃털 뺏기 김닉넴 2016.05.20 59