• SEARCH

    통합검색
  • GAMEZONE
    • 커뮤니티
      • 공지사항
      • 유저게시판
        • 등업게시판
        • 출석체크
        • 정회원 무료자료실
      • 스크린샷
      • 인증자료실
    • 리니지
      • 게임공략 & 팁
      • 홍보게시판
      • 유틸자료실
      • 소스자료실
      • 자유게시판
      • 노하우 게시판
    • 메이플스토리
      • 게임공략 & 팁
      • 홍보게시판
      • 유틸자료실
      • 소스자료실
      • 자유게시판
      • 노하우 게시판
    • 바람의나라
      • 자유게시판
      • 홍보게시판
      • 자료게시판
        • 유틸자료실
        • 소스자료실
        • 클라이언트
        • 팩 자료실
      • 연구게시판
        • 개발내역
        • 질문과답변
        • 기타
      • 강의게시판
        • DR
        • CR
        • 구버전
        • 클라이언트 개조
        • 노하우 게시판
        • 게임공략 & 팁
    • 다크에덴
      • 게임공략 & 팁
      • 홍보게시판
      • 유틸자료실
      • 소스자료실
      • 자유게시판
      • 노하우 게시판
    • 믹스마스터
      • 게임공략 & 팁
      • 홍보게시판
      • 유틸자료실
      • 소스자료실
      • 자유게시판
      • 노하우 게시판
    • 라그나로크
      • 게임공략 & 팁
      • 홍보게시판
      • 유틸자료실
      • 소스자료실
      • 자유게시판
      • 노하우 게시판
    • 기타게임
      • 게임공략 & 팁
      • 홍보게시판
      • 유틸자료실
      • 소스자료실
      • 자유게시판
      • 노하우 게시판
    • 게임강의
    • 비베&포토샵
      • 자유게시판
      • 자료실
        • 일반자료실
        • 포인트 자료실
      • 노하우게시판
      • 포토샵게시판
    • 모바일
      • 게임공략
      • 포인트 자료실
      • 유틸자료실
      • 자유게시판
  • 메이플스토리 소스자료실
    • 메이플스토리 소스자료실 ()
    • [02] 메서드를 추가해봤으니 심화하여 컨텐츠를 만들어보자! [출처] [02] 메서드를 추가해봤으니 심화하여 컨텐츠를 만들어보자! (@USFM - 메이플스토리 공식 카페) |작성자 enoch_rvn

      • 원나소년
      • 2016.06.06 - 11:43 229

    안녕하세여! 에녹이에여!

    이번 강좌는 뭐.. 전에 배웠던것들을 다시 복습하는겸, 실제 컨텐츠를 만들어보자는 의미에서 끄적여봅니다.

     

    일단은 처음에는, 제가 만들어뒀던 컨텐츠를 소개하는겸, 어떤 원리로 돌아가는지 설명해드리려고합니다.

     

    1.png?type=w740

     

    바로 얼마전, 제가 동영상으로 남긴 바이러스 '아포칼립스' 컨텐츠인데요!

    오블리비언이라는 아이템을 사용하여, 상대방의 이름을 적으면

    같은맵이며, 상대방이 아포칼립스에 감염이되어있을경우, 상대방을 죽이며 경험치를 얻는 아이템이에요!

     

    위의 스크린샷을 보시면 아시겠지만, 1강에서 본것과 똑같은 원리입니다!

     

    2.png?type=w740

     

    너무 똑같은가요? ㅋ.ㅋ

     

    3.png?type=w740

     

    자 여기서 뭔가 다른것들이 보이기 시작합니다.

    public void killInfecter(String name) {
            if (isMyChannelConnected(name)) {
                if (getPlayerStorage().getCharacterByName(name).getClient().getPlayer().apoState() == 1) {
                    getPlayerStorage().getCharacterByName(name).getClient().getPlayer().getMap().broadcastMessage(MainPacketCreator.startMapEffect("누군가 당신을 저주합니다. '오블리비언' 의 힘으로, 당신의 몸과 마음은 점차 망각되며, 죽음에 이르게 됩니다.", 5120124, true));
                    getPlayerStorage().getCharacterByName(name).getClient().getPlayer().addHP(-getPlayerStorage().getCharacterByName(name).getClient().getPlayer().getStat().getCurrentMaxHp());
                    getPlayerStorage().getCharacterByName(name).getClient().getPlayer().gainRC(1000);
                    getPlayerStorage().getCharacterByName(name).getClient().getPlayer().dropMessage(5, "[시스템] 오블리비언의 저주에대한 위로금으로 후`원포인트 1,000P 획득하셨습니다.");
                }
            }

    }

     

    잘 천천히, 3번만 훑어보세요!

    정말로 정말로 간단합니다. 한줄씩 천천히 설명해드릴게요!

     

    public void killInfecter(String name) {

     

    이 부분은 전에 배웠던 public int xxx () { 와는 조금 다른 차이가 있습니다.

    전에는 무조건 return 으로, 값을 전달해주어야 작동했지만, 이번엔 그렇지 않습니다.

    void 형식을 선언했으며, 돌려주는 값도 없습니다. 그저 이 메서드가 호출되면, 반환되는것이 아닌

    내부에서 모든걸 처리하는 메서드입니다. 즉 int 와 void 를 비교하자면,

     

     

    ////// int 소`스 //////

    public int test() {

       return c.getPlayer().getStat().getLevel();

    }

    ////// int 스크`립트 //////

    cm.sendOk("내 레벨은? : " + cm.test());

    cm.dispose();

    ////// 결과 ///////

    ┌────────  ┐

    │  내 레벨은? : 101  │

    └────────  ┘

    ////// void 소`스 //////

    public void test() {

       int myLevel = c.getPlayer().getStat().getLevel();

    }

    ////// void 스크`립트 //////

    cm.test();

    ////// 결과 //////

    서버에서 캐릭터를 담당하는 변수에 레벨이 담겨있는 상태가된다.

     

    대충 이해가 가셨습니까..?

    void 는 작업처리를 담당하며, ex) 레`벨업, ap지급, 메`소지급, 아`이템지급 등

    int 는 값 반환처리를 담당합니다. ex) 현재 레`벨, 현재 스`텟, 갖고있는 포`인트, 갖고있는 메`소 등

     

    딱 이렇다고 할 순 없는데, 그냥 이정도로 이해하고계셔도 충분합니다!

     

    그러면 3번째 사진의 소`스코드를 설명해드릴게요.

     

    if (getPlayerStorage().getCharacterByName(name).getClient().getPlayer().apoState() == 1) {

           ㄴ 받은 인자값(캐릭터이름) 의 apoState 가 1이면. // 여기서 apoState 는 제가 만든 int 형 메서드입니다. 아포칼립스

               감염 상태를 나타내주는 메서드에요.

     

    getPlayerStorage().getCharacterByName(name).getClient().getPlayer().getMap().broadcastMessage(MainPacketCreator.startMapEffect("누군가 당신을 저주합니다. '오블리비언' 의 힘으로, 당신의 몸과 마음은 점차 망각되며, 죽음에 이르게 됩니다.", 5120124, true));

           ㄴ 이제 대충 getCharacterByName(name) 까지는 이해가 됬으리라 믿고, 설명해드리겠습니다. getPlayer()

               안에 getMap() 이란놈 안에 broadcastMessage 라는 메서드가 있는데, 이 메서드는 그 뭐시더냐

               맵 이펙트(캐시템 뿌리기같은) 것을 적용시켜주는 메서드이며, 저 5120124 코드는 엘리트 몬스터를 죽였을때

               뿌려지는 이펙트입니다.

     

    getPlayerStorage().getCharacterByName(name).getClient().getPlayer().addHP(-getPlayerStorage().getCharacterByName(name).getClient().getPlayer().getStat().getCurrentMaxHp());

           ㄴ 이 부분은 굉장히 여러분들이 많이 당황하셨을거에요. 매우 소`스코드가 길거든요. 저였어도 좆같았을거에요.

               하지만 이 소`스코드는 그저, 상대방의 MAXHP 의 값을 가져와 그만큼 데미지를 입히는 소`스에요.

               addHP() 메서드가 바로 그 역할을 담당해주는데, add 인데 왜 데미지를 입히느냐! 하시는분들은 인자값을 잘

               보시면, - 가 들어간걸 볼 수 있습니다. // 최대 hp를 구하는것은, getPlayer() 아래, getStat() 아래 getCurrentMaxHp()

               라는 메서드입니다.

     

    getPlayerStorage().getCharacterByName(name).getClient().getPlayer().gainRC(1000);
                    getPlayerStorage().getCharacterByName(name).getClient().getPlayer().dropMessage(5, "[시스템] 오블리비언의 저주에대한 위로금으로 후`원포인트 1,000P 획득하셨습니다.");

           ㄴ 이제 대충 다 알거아닙니까. dropMessage(5, ""); 부분은 메`이`플 채팅창에서 출력되는 메세지며, 5는 빨강(?) 글씨를

               뜻합니다. // 파랑색, 노랑색 있는것으로 압니다. 

     

    4.png?type=w740

     

    이제 스`크`립`트 부분입니다.

    이 부분은 정말 아무런 설명도 넣지않을겁니다. 정말 궁금하신분들은 댓글달아주시겠죠 (ㅋ,ㅋ)

    그리고 왠만하면 01 강좌를 이해하신분들은 대충은 이해하셨을겁니다.

     

    5.png?type=w740

     

    이거슨 간지나는 오블리비언 아`이템!!

     

    6.png?type=w740

     

    제가 지금 개`발하고있는 세계관은 창세 이전, 신의 오른팔인 루시엘이 타락하며 루시퍼로 전략할때의 세계관을 갖고있습니다.

     

    7.png?type=w740

     

    으앙!! 저주받는당!!

     

    8.png?type=w740

     

    휴.. 다행이 감염이 감지되지않아 살아있는모습

     

    9.png?type=w740

     

    운`영`자니까 임의로 감염된다음!

    이름을 적어보니!

     

    10.png?type=w740

     

    잘 작동되는 모습입니다. (잘보면 죽어있어요 진짜야.)

     

     

    다음 강좌에서는 채`널에있는 모든 인원에게 아`이`템을 돌리는(?) 핫타임 아이템이라던지, 그런걸 한번 개`발해보면서

    배워가보도록 하겠습니다!

    [출처] [02] 메서드를 추가해봤으니 심화하여 컨텐츠를 만들어보자! (@USFM - 메이플스토리 공식 카페) |작성자 enoch_rvn

    Attached file
    1.png 115.9KB 32.png 116.2KB 23.png 149.3KB 74.png 83.0KB 55.png 534.7KB 86.png 511.6KB 57.png 510.6KB 78.png 506.3KB 79.png 533.3KB 310.png 518.5KB 4
    이 게시물을..
    N
    0
    0
    • 1.2.65 아트 소스오빠는요
    • 8
      원나소년

    원나소년 님의 최근 글

    메이플스토리 캐릭터카드! 80 5 2016 06.07 메이플 링크스킬 정리 및 추천도!! [출처] 메이플 링크스킬 정리 및 추천도!!|작성자 세이 66 1 2016 06.07 [05] - 데이터베이스 연동 개발 심화 마지막 [출처] [05] - 데이터베이스 연동 개발 심화 마지막|작성자 enoch_rvn 99 2016 06.06 [04] - 데이터베이스 연동, 캐릭터 생성을 특별한 이벤트로만 가능하게 해보자 2편 [출처] [04] - 데이터베이스 연동, 캐릭터 생성을 특별한 이벤트로만 가능하게 해보자 2편|작성자 enoch_rvn 139 2016 06.06 [03] - 데이터베이스 연동, 캐릭터 생성을 특별한 이벤트로만 가능하게 해보자! [출처] [03] - 데이터베이스 연동, 캐릭터 생성을 특별한 이벤트로만 가능하게 해보자!|작성자 enoch_rvn 148 2016 06.06

    원나소년 님의 최근 댓글

    초보 개발자도 가능합니까? 아직   개발의 ㄱ자도 모르긴하는데.. 2016 06.07 구축하기 쉬운가용? 2016 06.02 흑 ㅜㅜ 팩을 구하고싶은데 ㅠㅠ 구글링하면 나오려나요?... 2016 06.02 라피스 해보고싶네요 정말 어떻게못하나요... 2016 05.31 하핳... 그런게임들은 프리서버 못하는건가요? 2016 05.31
    글쓴이의 서명작성글 감추기 
    댓글 쓰기 에디터 사용하기 닫기
    • view_headline 목록
    • 14px
    • 1.2.65 아트 소스
    • 목록
      view_headline
    × CLOSE
    기본 (942) 제목 날짜 수정 조회 댓글 추천 비추
    분류 정렬 검색
    • 소스자료는 직접 올려주세요
      2017.06.06 - 16:13 927
    942
    v391 pack
    더기덕이 2025.10.04 - 00:33 205
    941
    127 써니 소스
    전창덕 2025.09.23 - 14:30 43
    940
    1.2.65 서버 ct및 우외 엔진
    마눙 2025.09.08 - 14:47 120
    939
    1.2.362 서버 src 입니
    GV솔그린 2024.03.21 - 20:54 313
    938
    1.2.316 초원팩 jdbc ssl 에러 수정 src
    GV솔그린 2024.03.21 - 19:31 115
    937
    1.2.329 로컬리디 언팩해서 만든 리디렉터
    GV솔그린 2024.03.21 - 19:24 92
    936
    1.2.329 로컬리디
    GV솔그린 2024.03.21 - 19:20 70
    935
    373 멀티로컬
    dreamin공유 2024.02.22 - 05:29 356
    934
    331팩 소스
    스마 2024.02.12 - 20:53 123
    933
    1.2.373 새벽소스
    스마 2024.02.12 - 20:47 243
    932
    373 솟
    garegdas 2024.02.06 - 09:24 121
    931
    스트레딧.
    하리86 2024.01.13 - 03:34 151
    930
    1.2.65 아르카나팩 스킬 변경 src
    김김김스 2023.12.26 - 04:49 948
    929
    316초원팩 src파일입니다
    동동쓰 2023.11.15 - 21:29 294
    928
    gms v111 접속rn
    하리86 2023.10.23 - 18:28 230
    927
    65버전 아르카나 , 죽둥젠 늘린거입니다
    gkxo9570 2023.09.22 - 12:38 542
    926
    65버전에서도 쓴 스크립트 강의모음
    gkxo9570 2023.09.22 - 07:42 460
    925
    1.2.65 화이트스타 src
    kingye 2023.07.04 - 10:56 1146
    924
    1.2.65 아르카나 src
    kingye 2023.07.04 - 07:28 535
    923
    ngs 우회
    우2우2 2023.06.08 - 04:55 277
    922
    몬스터 코드
    VanBan 2022.12.10 - 23:38 552
    921
    직업 코드
    VanBan 2022.12.10 - 23:30 306
    920
    362 자석펫 지급 NPC 스크립트
    나르나르 2022.11.10 - 08:55 854
    919
    0.83 src
    qweqwedq1 2022.07.13 - 15:30 144
    918
    리플렉스95 src
    qweqwedq1 2022.07.13 - 15:08 327
    917
    1.2.65 바콘팩
    dullggae 2021.07.30 - 18:04 730
    916
    316src입니다
    BJK 2021.02.10 - 05:37 218
    915
    331 소스
    라비앙로즈 2021.02.07 - 08:43 441
    914
    슈퍼엔진
    돼지우리 2021.01.14 - 02:20 445
    913
    kms 1.2.1104 ct입니다
    돼지우리 2021.01.12 - 12:07 448
    912
    어빌리티인포테이블.sql
    하리86 2020.12.16 - 00:23 180
    911
    잠재능력 관련 오류 수정 및 본섭화 옵션
    하리86 2020.12.16 - 00:16 358
    910
    sql 수정
    재희0414 2020.11.24 - 03:23 274
    909
    65 천외천 소스
    lIllIlllIllll 2020.10.16 - 06:05 412
    908
    로컬 소스
    피아쨩 2020.09.22 - 13:01 520
    907
    331 노엘팩 소스
    풍선씨 2020.09.09 - 03:33 1228
    906
    1.2.65 화이트스타 소스
    JYH93 2020.08.15 - 00:44 2344
    905
    1.2.65 순클 idb
    nhsnhsn 2020.07.24 - 00:19 875
    904
    331 GM명령어
    흐밍 2020.07.09 - 14:14 1837
    903
    레벨별 메소지급 소스
    능이 2020.07.05 - 21:44 690
    902
    1.2.284 그랜드 접속문제 해결파일
    wls 2020.06.28 - 07:30 240
    901
    대만 메이플스토리 113 아이템코드
    해우김123 2020.06.19 - 07:47 304
    900
    Java SE Development Kit 6 Update 10 - jdk-6u10
    수박씨 2020.05.12 - 21:52 203
    899
    Java SE Development Kit 6 Update 6 - jdk-6u6
    수박씨 2020.05.12 - 21:51 124
    898
    316 추옵 쿼리에서 수정하기
    DanielJSKim 2020.03.08 - 05:03 1440
    897
    316 추가옵션 구현 소스
    DanielJSKim 2020.03.08 - 05:00 1181
    896
    알면 유용한 위젯
    오빠는요 2020.02.25 - 21:06 754
    895
    1.2.65dk
    오빠는요 2020.02.25 - 21:04 481
    894
    1.2.65 아트 소스
    오빠는요 2020.02.25 - 21:02 459
    893
    316 이너 어빌리티 미개방 캐릭터에 강제로 부여하기
    DanielJSKim 2020.02.23 - 02:44 499
    • 1 2 3 4 5 6 7 8 9 10 .. 19
    • / 19 GO
  • GAMEZONE
 GAMEZONE all rights reserved.
by OrangeDay