메이플스토리 분류

프리메이플스토리::전쳇말 수정하기

컨텐츠 정보

본문

안녕하세요??

많은 사람들이 알지만 모르는(?) ~를 이용한 전챗말을 수정하고 추가해 보는 강의를 써보도록 하겠습니다~!

 

우선 소스 경로먼저 알려드리겠습니다

handler.channel - ChatHandler 여기에 들어가셔서  } else if (text.charAt(0) == '~') { 이것을 검색해 주시면 그곳이 수정,추가 하는곳입니다!(이하 사진)

캡처.JPG

 

 

제 소스 코드를 공유하면서 알려드리겠습니다.

    public static void GeneralChat(String text, byte unk, MapleClient c, MapleCharacter chr) {

        if (!CommandProcessor.getInstance().processCommand(c, text)) {
            if (!chr.isGM() && text.length() >= 80) {
                return;
            }
            if (ChannelServer.getInstance(c.getChannel()).얼리기()) {
                c.getPlayer().dropMessage(1, "운영자 님께서 채팅창을 얼렸습니다. GM 에게 문의해주세요.");
                return;
            } else if (text.charAt(0) == '~') {
                StringBuilder sb = new StringBuilder();
                sb.append("<").append(c.getChannel() == 0 ? "1" : c.getChannel() == 1 ? "20세 이상" : c.getChannel()).append(" 채널> ");
                sb.append(chr.getName());
                sb.append(" : ");
                sb.append(text);
                if  (c.getPlayer().getRC() >= 20000001 && c.getPlayer().haveItem(1142588, 1, true, true)) { // if 일반 클래스 일시에.  1142588
                    WorldBroadcasting.broadcastMessage(MainPacketCreator.getGMText(10, "<총운영자> " + c.getPlayer().getName() + " : " + text.replaceAll("~", "")));
                    LoggerHandler.writeChatLog("[전체]", chr, text);
                } else if (c.getPlayer().getRC() >= 10000001) { // if 일반 클래스 일시에.
                    WorldBroadcasting.broadcastMessage(MainPacketCreator.getGMText(10, "<운영자> " + c.getPlayer().getName() + " : " + text.replaceAll("~", "")));
                    LoggerHandler.writeChatLog("[전체]", chr, text);
                } else if (c.getPlayer().haveItem(1142136, 1, true, true) && c.getPlayer().getRC() >= 1) {
                    WorldBroadcasting.broadcastMessage(MainPacketCreator.getGMText(17, "<SVIP> " + c.getPlayer().getName() + " : " + text.replaceAll("~", "")));
                    LoggerHandler.writeChatLog("[전체]", chr, text);
                } else if (c.getPlayer().haveItem(1142135, 1, true, true) && c.getPlayer().getRC() >= 1) {
                    WorldBroadcasting.broadcastMessage(MainPacketCreator.getGMText(21, "<VVIP> " + c.getPlayer().getName() + " : " + text.replaceAll("~", "")));
                    LoggerHandler.writeChatLog("[전체]", chr, text);
                } else if (c.getPlayer().haveItem(1142134, 1, true, true) && c.getPlayer().getRC() >= 1) {
                    WorldBroadcasting.broadcastMessage(MainPacketCreator.getGMText(15, "<VIP> " + c.getPlayer().getName() + " : " + text.replaceAll("~", "")));
                    LoggerHandler.writeChatLog("[전체]", chr, text);
                } else if(c.getPlayer().getRC() >= 1 && c.getPlayer().getRC() <= 10000000) {
                    WorldBroadcasting.broadcastMessage(MainPacketCreator.getGMText(25, "<후원 유저> " + c.getPlayer().getName() + " : " + text.replaceAll("~", "")));
                    LoggerHandler.writeChatLog("[전체]", chr, text);
                } else if (c.getPlayer().haveItem(1142268, 1, true, true)) {
                    WorldBroadcasting.broadcastMessage(MainPacketCreator.getGMText(12, "<홍보 유저> " + c.getPlayer().getName() + " : " + text.replaceAll("~", "")));
                    LoggerHandler.writeChatLog("[전체]", chr, text);
                } else {
                    WorldBroadcasting.broadcastMessage(MainPacketCreator.getGMText(5, "<SARACEN 유저> " + c.getPlayer().getName() + " : " + text.replaceAll("~", "")));
                    LoggerHandler.writeChatLog("[전체]", chr, text);
                }
            } else {
                chr.getMap().broadcastMessage(MainPacketCreator.getChatText(chr.getId(), text, c.getPlayer().isGM(), unk), c.getPlayer().getPosition());
                LoggerHandler.writeChatLog("[일반]", chr, text);
            }
        }
    }

 

이렇게 보통 되어있으실텐데

                } else {
                    WorldBroadcasting.broadcastMessage(MainPacketCreator.getGMText(5, "<SARACEN 유저> " + c.getPlayer().getName() + " : " + text.replaceAll("~", "")));
                    LoggerHandler.writeChatLog("[전체]", chr, text);

요기 부분이 일반 유저들이  말하면 사용 되는곳입니다. (5, "<SARACEN 유저> " + c.getPlayer().getName() + " : " + text.replaceAll("~", ""))); 이곳에서 5는 배경색을 의미합니다. 팩마다 다르지만 보통 1~11사이에서 선택해주시면 괜찮으실껍니다.

                } else if (c.getPlayer().haveItem(1142268, 1, true, true)) {
                    WorldBroadcasting.broadcastMessage(MainPacketCreator.getGMText(12, "<홍보 유저> " + c.getPlayer().getName() + " : " + text.replaceAll("~", "")));
                    LoggerHandler.writeChatLog("[전체]", chr, text);

이제 이런부분이 아이템 소유,후원포인트 소유에 따라 특정 유저분들에게만 뜨게 하는 것입니다.c.getPlayer().haveItem(1142268, 1, true, true) 이부분에서 1142268이 아이템 코드이고 뒤에 1이 갯수입니다.

 

마지막으로 추가하는 방법은

                } else if(c.getPlayer().getRC() >= 1 && c.getPlayer().getRC() <= 10000000) { // if()여기 괄호 사이에 c.getPlayer().haveItem(아이템 코드, 갯수, true, true) 나 c.getPlayer().getRC() >= 후원포인트량(>= ,, <= 이걸 바꿔쓰시면 최소 최대로 변경됩니다.
                    WorldBroadcasting.broadcastMessage(MainPacketCreator.getGMText(25, "<후원 유저> " + c.getPlayer().getName() + " : " + text.replaceAll("~", ""))); // getGMText()괄호에 숫자, "표시될 이름" 이후 생략
                    LoggerHandler.writeChatLog("[전체]", chr, text); // 여기 부분은 안건들이시면 ok

 

이해 못하시거나 혼자서 못하시는 분들은

saracenonline@nate.com 으로 연락 주시면 원격이나 1:1대화를 통해서 더욱 더 자세히 알려드리겠습니다.

 

긴글 읽어주셔서 감사합니다

관련자료

댓글 0
등록된 댓글이 없습니다.
전체 869 / 1 페이지
번호
제목
이름
MMOZONE (0명)

대도서관

🏆 포인트 랭킹 TOP 10
순위 닉네임 포인트
1 no_profile 코오롱쪽지보내기 자기소개 아이디로 검색 전체게시물 188,462
2 no_profile 타키야겐지쪽지보내기 자기소개 아이디로 검색 전체게시물 169,805
3 no_profile 보거스쪽지보내기 자기소개 아이디로 검색 전체게시물 164,191
4 no_profile 개굴개굴쪽지보내기 자기소개 아이디로 검색 전체게시물 141,745
5 서번트쪽지보내기 자기소개 아이디로 검색 전체게시물 133,955
6 no_profile 불멸의행복쪽지보내기 자기소개 아이디로 검색 전체게시물 132,124
7 no_profile Omega쪽지보내기 자기소개 아이디로 검색 전체게시물 130,429
8 no_profile Ragna쪽지보내기 자기소개 아이디로 검색 전체게시물 129,691
9 no_profile 베가쪽지보내기 자기소개 아이디로 검색 전체게시물 112,546
10 no_profile 냥집사쪽지보내기 자기소개 아이디로 검색 전체게시물 108,096
알림 0