사이트 로그인
2016.06.03 08:40
러브연구소 쾌남님에게 퍼온 소스 입니다.
예전 개경이 갑자기 생각나서 올려 봅니다.
점팩 소스인듯 하네요.
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 |
좋은 자료 감사합니다.
혹시 죄송하지만 예전 자료들 자주 올려주시는데
엔피시호칭 개목걸이 없애는 소스두 있으시면 부탁드려도 될까여.