영자들끼리 대화
설명을 드리자면 월드내에 운영자 권한이 있다면 .영자채팅 하시고 채팅을 하시면 운영자 권한있는 모든영자한테 채팅화면이 보여집니다
화면상에는 글이 올라오지만 일반유저는 보이지 않구요...... 자세한건 적용 해보시는게 더 빠르실듯합니다 ㅎㅎ
1 // 검색
2 // 추가
3 // 자바파일
L1PcInstance.java
// 영자채팅
public boolean gmchat;
private short _accessLevel;
c_chat.java
if (chatText.startsWith("$")) {
String text = chatText.substring(1);
chatWorld(pc, text, 12);
if (!pc.isGm()) {
pc.checkChatInterval();
}
return;
}
// 영자채팅 - .영자채팅 한 후 일반 채팅창에 샬라샬라 쓰면 모든 영자한테 보여짐..
if(L1World.getInstance().isGM(pc)){
if(pc.gmchat){
S_ChatPacket chat = new S_ChatPacket(pc, chatText, Opcodes.S_OPCODE_NORMALCHAT, 14);
L1PcInstance[] gms = L1World.getInstance().getGMList();
for(int i = 0; i < gms.length; i++) gms[i].sendPackets(chat);
return;
}
}
L1World.java
// 영자채팅
gmList = new ArrayList<L1PcInstance>();
_allPlayers = new ConcurrentHashMap<String, L1PcInstance>(); // 모든 플레이어
private final ConcurrentHashMap _allClans;
// 영자채팅
private final ArrayList gmList;
private L1World() {
// 영자채팅
gmList = new ArrayList();
.
.
.
// 영자채팅
public void addGM(L1PcInstance ch){ // 등록
synchronized(gmList){
if(!gmList.contains(ch)) gmList.add(ch);
}
}
public void removeGM(L1PcInstance ch){ // 삭제
synchronized(gmList){
if(gmList.contains(ch)) gmList.remove(ch);
}
}
public L1PcInstance[] getGMList(){
return gmList.toArray(new L1PcInstance[gmList.size()]);
}
public boolean isGM(L1PcInstance ch){ // 영자인지 체크 통합 함수
if(ch == null) return false;
if(ch.getAccessLevel() == Config.GM_CODE || c.getAccessLevel() == Config.VICEGM_CODE) return true;
return false;
}
//
public static L1World getInstance() { 검색후 위에 추가
GMCommands.java
}else if (cmd.equalsIgnoreCase("영자채팅")) {
if (L1World.getInstance().isGM(gm)){
gm.gmchat = !gm.gmchat;
gm.sendPackets(new S_SystemMessage("영자채팅 활성화 : " + gm.gmchat));
}
}
C_SelectCharacter.java
bapo(pc);
//영자채팅
if(L1World.getInstance().isGM(pc)) L1World.getInstance().addGM(pc);

김닉넴 님의 최근 댓글
클라는 있나요? 2023 04.29 클라 있나요? 2023 03.23 감사합니다 2016 06.06 ㄳ합니다 2016 06.05 ㄳ합니다 2016 06.05