2.7 벛꽃팩 원격 펫 소환
작업할 파일 경로
2.7벚꽃팩\src\l1j\server\server\GMCommands.java
파일 맨 위쪽 import 문들이 모여 있는 곳에 아래 내용을 추가합니다.
import l1j.server.server.model.Instance.L1PetInstance;
import l1j.server.server.serverpackets.S_PetList;
명령어 등록 - 아래 주석과 주석 사이에 펫맡기기와 펫찾기 관련 코드를 넣어줍니다.
// 일반 플레이어에 개방하는 커맨드는 여기에 쓴다
if (gm.getAccessLevel() < 100) {
gm.sendPackets(new S_ServerMessage(74, "커맨드 " + cmd)); // \f1%0은 사용할 수 없습니다.
return;
}
else if (cmd.equalsIgnoreCase("펫맡기기")) {
depositPet(gm);
return;
} else if (cmd.equalsIgnoreCase("펫찾기")) {
withdrawPet(gm);
return;
}
// 모니터에 개방하는 커멘드는 여기에 쓴다
실제 기능 메서드 추가
파일 맨 아래쪽, 마지막 닫는 중괄호( } ) 바로 직전에 아래 코드를 붙여넣습니다.
private void depositPet(L1PcInstance pc) {
Object[] petList = pc.getPetList().values().toArray();
if (petList.length > 0) {
for (Object petObject : petList) {
if (petObject instanceof L1PetInstance) {
L1PetInstance pet = (L1PetInstance) petObject;
pet.collect();
pc.getPetList().remove(pet.getId());
pet.deleteMe();
}
}
pc.sendPackets(new S_SystemMessage("소환된 모든 펫을 안전하게 맡겼습니다."));
} else {
pc.sendPackets(new S_SystemMessage("현재 소환된 펫이 없습니다."));
}
}
private void withdrawPet(L1PcInstance pc) {
// NPC 없이 본인의 ID를 전달하여 어디서든 펫 목록창을 호출합니다.
pc.sendPackets(new l1j.server.server.serverpackets.S_PetList(pc.getId(), pc));
}
파일 유니코드 EUC-KR(또는 ANSI, CP949)로 설정하여 저장해주세요.
저의 경우 apache-ant-1.10.15 를 서버팩의 하위폴더가 되게끔 넣고,
cmd창을 열고 apache-ant-1.10.15\bin\ant 명령어로 컴파일 했습니다.

뷸바다 님의 최근 댓글