로테이션 엔피씨 생성 소스
여러가지 응용 할수있습니다
▼▼▼ config.java ▼▼▼
public static boolean 주사냥여부;
주사냥여부 = Boolean.parseBoolean(altSettings.getProperty("DevilSp", "True"));
} else if (pName.equalsIgnoreCase("DevilSp")) {
주사냥여부 = Boolean.valueOf(pValue);
▼▼▼ gameserver.java ▼▼▼
import l1j.server.server.DevilController;
GeneralThreadPool.getInstance().execute(DevilController.getInstance());
▼▼▼ DevilController .java ▼▼▼
package l1j.server.server;
import java.util.Calendar;
import java.util.Random;
import l1j.server.Config;
import l1j.server.GameSystem.BossTimer;
import l1j.server.server.model.L1Teleport;
import l1j.server.server.model.L1World;
import l1j.server.server.model.Instance.L1PcInstance;
import l1j.server.server.serverpackets.S_PacketBox;
import l1j.server.server.utils.L1SpawnUtil;
public class DevilController extends Thread {
private static DevilController _instance;
private static Random _random = new Random(System.nanoTime());
private boolean _DevilStart;
public boolean getDevilStart() {
return _DevilStart;
}
public void setDevilStart(boolean Devil) {
_DevilStart = Devil;
}
public boolean isGmOpen = false;
public static DevilController getInstance() {
if(_instance == null) {
_instance = new DevilController();
}
return _instance;
}
@Override
public void run() {
while (true) {
try {
if(isOpen2() && Config.주사냥여부){
Spawn2();
Thread.sleep(120000);
}
} catch(Exception e){
e.printStackTrace();
} finally {
try{
Thread.sleep(1000);
} catch(Exception e){
}
}
}
}
private void Spawn2(){
try{
int rnd = 0;
rnd = _random.nextInt(5)+1;
if(rnd == 1){
L1World.getInstance().broadcastServerMessage("\\aD[주사냥터변경]: 사냥터가 변경됩니다 ");
L1World.getInstance().broadcastPacketToAll(new S_PacketBox(S_PacketBox.GREEN_MESSAGE, "\\fO[주사냥터변경]: 사냥터가 변경됩니다"), true);
Thread.sleep(120000L);
L1SpawnUtil.spawn2(33430, 32820, (short) 4, 4208002, 0, 3600*1000, 0);//기감
} else if(rnd == 2){
L1World.getInstance().broadcastServerMessage("\\aD[주사냥터변경]: 사냥터가 변경됩니다 ");
L1World.getInstance().broadcastPacketToAll(new S_PacketBox(S_PacketBox.GREEN_MESSAGE, "\\fO[주사냥터변경]: 사냥터가 변경됩니다"), true);
Thread.sleep(120000L);
L1SpawnUtil.spawn2(33430, 32820, (short) 4, 8300, 0, 3600*1000, 0);//기감
} else if(rnd == 3){
L1World.getInstance().broadcastServerMessage("\\aD[주사냥터변경]: 사냥터가 변경됩니다");
L1World.getInstance().broadcastPacketToAll(new S_PacketBox(S_PacketBox.GREEN_MESSAGE, "\\fO[주사냥터변경]: 사냥터가 변경됩니다"), true);
Thread.sleep(120000L);
L1SpawnUtil.spawn2(33430, 32820, (short) 4, 8400, 0, 3600*1000, 0);//기감
} else if(rnd == 4){
L1World.getInstance().broadcastServerMessage("\\aD[주사냥터변경]: 사냥터가 변경됩니다");
L1World.getInstance().broadcastPacketToAll(new S_PacketBox(S_PacketBox.GREEN_MESSAGE, "\\fO[주사냥터변경]: 사냥터가 변경됩니다"), true);
Thread.sleep(120000L);
L1SpawnUtil.spawn2(33430, 32820, (short) 4, 8500, 0, 3600*1000, 0);//기감
} else if(rnd == 5){
L1World.getInstance().broadcastServerMessage("\\aD[주사냥터변경]: 사냥터가 변경됩니다");
L1World.getInstance().broadcastPacketToAll(new S_PacketBox(S_PacketBox.GREEN_MESSAGE, "\\fO[주사냥터변경]: 사냥터가 변경됩니다"), true);
L1SpawnUtil.spawn2(33430, 32820, (short) 4, 8600, 0, 3600*1000, 0);//기감
}
} catch(Exception e2){
e2.printStackTrace();
}
}
private boolean isOpen2() {
Calendar calender = Calendar.getInstance();
int hour, minute;
hour = calender.get(Calendar.HOUR_OF_DAY);
minute = calender.get(Calendar.MINUTE);
if (hour == 1 && minute == 00
||hour == 1 && minute ==30
||hour == 2 && minute ==00
||hour == 2 && minute ==30
||hour == 3 && minute ==00
||hour == 3 && minute ==30
||hour == 4 && minute ==00
||hour == 4 && minute ==30
||hour == 5 && minute ==00
||hour == 5 && minute ==30
||hour == 6 && minute ==00
||hour == 6 && minute ==30
||hour == 7 && minute ==00
||hour == 7 && minute ==30
||hour == 8 && minute ==00
||hour == 8 && minute ==30
||hour == 9 && minute ==00
||hour == 9 && minute ==30
||hour == 10 && minute ==00
||hour == 10 && minute ==30
||hour == 11 && minute ==00
||hour == 11 && minute ==30
||hour == 12 && minute ==00
||hour == 12 && minute ==30
||hour == 13 && minute ==00
||hour == 13 && minute ==30
||hour == 14 && minute ==00
||hour == 14 && minute ==30
||hour == 15 && minute ==00
||hour == 15 && minute ==30
||hour == 16 && minute ==00
||hour == 16 && minute ==30
||hour == 17 && minute ==00
||hour == 17 && minute ==30
||hour == 18 && minute ==00
||hour == 18 && minute ==30
||hour == 19 && minute ==00
||hour == 19 && minute ==30
||hour == 20 && minute ==00
||hour == 20 && minute ==30
||hour == 21 && minute ==00
||hour == 21 && minute ==30
||hour == 22 && minute ==00
||hour == 22 && minute ==30
||hour == 23 && minute ==00
||hour == 23 && minute ==30
||hour == 00 && minute ==00
||hour == 00 && minute ==30) {
return true;
}
return false;
}
/** 종료 **/
public void End() {
setDevilStart(false);
}
}

하날따라 님의 최근 댓글
감사요 2024 04.03 되긴할까요 이게 ㅎㅎ?? 2020 08.21 해결하셨는지요 ? 2020 08.17 받을만 해여 이거 ?? 2020 08.17 빌드 성공은 하는데 블로그 인식을 못합니다 .. 블로그 주소라는곳에 그대로 게시글 링크 변경후 빌드 햇는데.. 놓친게 있을가여 ? 2020 08.17