• SEARCH

    통합검색
  • GAMEZONE
    • 커뮤니티
      • 공지사항
      • 유저게시판
        • 등업게시판
        • 출석체크
        • 정회원 무료자료실
      • 스크린샷
      • 인증자료실
    • 리니지
      • 게임공략 & 팁
      • 홍보게시판
      • 유틸자료실
      • 소스자료실
      • 자유게시판
      • 노하우 게시판
    • 메이플스토리
      • 게임공략 & 팁
      • 홍보게시판
      • 유틸자료실
      • 소스자료실
      • 자유게시판
      • 노하우 게시판
    • 바람의나라
      • 자유게시판
      • 홍보게시판
      • 자료게시판
        • 유틸자료실
        • 소스자료실
        • 클라이언트
        • 팩 자료실
      • 연구게시판
        • 개발내역
        • 질문과답변
        • 기타
      • 강의게시판
        • DR
        • CR
        • 구버전
        • 클라이언트 개조
        • 노하우 게시판
        • 게임공략 & 팁
    • 다크에덴
      • 게임공략 & 팁
      • 홍보게시판
      • 유틸자료실
      • 소스자료실
      • 자유게시판
      • 노하우 게시판
    • 믹스마스터
      • 게임공략 & 팁
      • 홍보게시판
      • 유틸자료실
      • 소스자료실
      • 자유게시판
      • 노하우 게시판
    • 라그나로크
      • 게임공략 & 팁
      • 홍보게시판
      • 유틸자료실
      • 소스자료실
      • 자유게시판
      • 노하우 게시판
    • 기타게임
      • 게임공략 & 팁
      • 홍보게시판
      • 유틸자료실
      • 소스자료실
      • 자유게시판
      • 노하우 게시판
    • 게임강의
    • 비베&포토샵
      • 자유게시판
      • 자료실
        • 일반자료실
        • 포인트 자료실
      • 노하우게시판
      • 포토샵게시판
    • 모바일
      • 게임공략
      • 포인트 자료실
      • 유틸자료실
      • 자유게시판
  • 메이플스토리 소스자료실
    • 메이플스토리 소스자료실 ()
    • 신고 시스템 추가 솟

      • 박인성
      • 2017.02.01 - 11:12 76

    MapleAccount.java
         public int report(String r, String rip, String v, String re) {
            // -2 : GM 신고
            // -1 : 존재하지 않는 사용자
            // 0 : 자기 자신 신고
            Connection con = MYSQL.getConnection();
            PreparedStatement ps = null;
            ResultSet rs = null;
            String vip = "", vid = null;
            int number = 0;
           
            Timestamp time = new Timestamp(new Date().getTime());
            try {
                con.setTransactionIsolation(Connection.TRANSACTION_READ_UNCOMMITTED);
                con.setAutoCommit(false);
               
                // 자기 신고 체크
                if(v.equals(getPlayer().getName()))
                    return 0;
               
                // GM 체크
                ps = con.prepareStatement("SELECT gm FROM characters where name = ?");
                ps.setString(1, v);
                rs = ps.executeQuery();
                if(rs.next())
                    if(rs.getInt("gm") != 0)
                        return -2;
               
                // 캐릭터 존재 확인 여부 작업
                ps = con.prepareStatement("SELECT accountid, name FROM characters where name = ?");
                ps.setString(1, v);
                rs = ps.executeQuery();
                if(!rs.next())
                    return -1;
                else
                    vid = rs.getString("accountid");
               
                // 상대방의 IP를 가져오는 작업
                ps = con.prepareStatement("SELECT SessionIP FROM accounts where id = ?");
                ps.setString(1, vid);
                rs = ps.executeQuery();
                if(rs.next())
                    vip = rs.getString("SessionIP");
               
                // 신고 내용을 데이터베이스에 기록
                ps = con.prepareStatement("INSERT INTO report (reporter, reporterIP, vitim, vitimIP, reason, reportTime) VALUES (?, ?, ?, ?, ?, ?)");
                ps.setString(1, r);
                ps.setString(2, rip);
                ps.setString(3, v);
                ps.setString(4, vip);
                ps.setString(5, re);
                ps.setTimestamp(6, time);
                ps.executeUpdate();
                // 신고 접수번호 반환
                ps = con.prepareStatement("SELECT id FROM report where reporter = ? order by id desc");
                ps.setString(1, r);
                rs = ps.executeQuery();
                if(rs.next())
                    number = rs.getInt("id");
            } catch(Exception e) {
                e.printStackTrace();
            } finally {
                try {
                if(con != null)
                    con = null;
                else if(ps != null)
                    ps.close();
                else if(rs != null)
                    rs.close();
                } catch(Exception er) {
                    er.printStackTrace();
                }
            }
           
            return number;
        }
     
        public int clearReport(int num) {
            // -1 : 처리 불가
            // 0 : 처리 완료
            // 1 : 없는 접수번호
            Connection con = MYSQL.getConnection();
            PreparedStatement ps = null;
            ResultSet rs = null;
           
            try {
                con.setTransactionIsolation(Connection.TRANSACTION_READ_UNCOMMITTED);
                con.setAutoCommit(false);
               
                // 접수번호 존재 확인
                ps = con.prepareStatement("SELECT id FROM report where id = ?");
                ps.setInt(1, num);
                rs = ps.executeQuery();
               
                if(!rs.next())
                    return 1;
               
                // 신고 처리
                ps = con.prepareStatement("DELETE FROM report where id = ?");
                ps.setInt(1, num);
                ps.executeUpdate();
               
                ps.close();
            } catch(Exception e) {
                return -1;
            }
           
            return 0;
        }
       
        public boolean checkReport(String name) {
            Connection con = MYSQL.getConnection();
           
            PreparedStatement ps = null;
            ResultSet rs = null;
           
            try {
                con.setTransactionIsolation(Connection.TRANSACTION_READ_UNCOMMITTED);
                con.setAutoCommit(false);
               
                // 신고 대상자 체크
                ps = con.prepareStatement("SELECT * FROM report where vitim = ?");
                ps.setString(1, name);
                rs = ps.executeQuery();
               
                if(!rs.next())
                    return true;
                return false;
            } catch(Exception e) {
                e.printStackTrace();
            } finally {
                try {
                if(con != null)
                    con = null;
                else if(ps != null)
                    ps.close();
                else if(rs != null)
                    rs.close();
                } catch(Exception er) {
                    er.printStackTrace();
                }
            }
            return true;
        }
       
        public String getNameById(int i) {
            String s = "";
            Connection con = MYSQL.getConnection();
           
            PreparedStatement ps = null;
            ResultSet rs = null;
           
            try {
                con.setTransactionIsolation(Connection.TRANSACTION_READ_UNCOMMITTED);
                con.setAutoCommit(false);
               
                // Character id -> Name 반환
                ps = con.prepareStatement("SELECT name FROM characters where id = ?");
                ps.setInt(1, i);
                rs = ps.executeQuery();
               
                if(rs.next())
                    s = rs.getString("name");
            } catch(Exception e) {
                e.printStackTrace();
            } finally {
                try {
                if(con != null)
                    con = null;
                else if(ps != null)
                    ps.close();
                else if(rs != null)
                    rs.close();
                } catch(Exception er) {
                    er.printStackTrace();
                }
            }
            return s;
        }
       
        public String showReport(int i) {
            Connection con = MYSQL.getConnection();
           
            PreparedStatement ps = null;
            ResultSet rs = null;
           
            try {
                // 접수번호로 신고 내용 확인
                ps = con.prepareStatement("SELECT * FROM report where id = ?");
                ps.setInt(1, i);
                rs = ps.executeQuery();
               
                if(rs.next()) {
                    StringBuilder sb = new StringBuilder("접수번호 ");
                    sb.append(i).append("번");
                    sb.append("신고자 : ").append(rs.getString("reporter"));
                    sb.append("\r\n");
                    sb.append(" 피해자 : ").append(rs.getString("vitim"));
                    sb.append(" 사유 : ").append(rs.getString("reason"));
                   
                    return sb.toString();
                }
            } catch(Exception e) {
                e.printStackTrace();
            } finally {
                try {
                if(con != null)
                    con = null;
                else if(ps != null)
                    ps.close();
                else if(rs != null)
                    rs.close();
                } catch(Exception er) {
                    er.printStackTrace();
                }
            }
           
            return null;
        }
     
     
    PlayerCommand.java
                                      } else if (splitted[0].equals("@신고")) {
                                        if(splitted.length != 3)
                                            c.getPlayer().dropMessage(5, "신고 유형 : @신고 상대방아이디 신고사유");
                                        else {
                                            int success = c.report(c.getPlayer().getName(), c.getSessionIPAddress().substring(1, c.getSessionIPAddress().length()), splitted[1], splitted[2]);
                                           
                                            if(success == -2)
                                                c.getPlayer().dropMessage(5, "운영자를 신고할 수 없습니다.");
                                            else if(success == -1)
                                                c.getPlayer().dropMessage(5, splitted[1] + "님은 존재하지 않는 사용자입니다.");
                                            else if(success == 0)
                                                c.getPlayer().dropMessage(5, "자기 자신을 신고할 수 없습니다.");
                                            else
                                                c.getPlayer().dropMessage(5, splitted[1] + "님에 대한 신고가 완료되었습니다. 접수번호는 " + success + "번 이며, 접수번호가 찍힌 스크린샷을 카페에 올려주세요.");
                                        }
     
     
    CharCommand.java
          } else if (splitted[0].equals("!신고처리")) {
            if(splitted.length != 2)
                c.getPlayer().dropMessage(5, "신고처리 유형 : !신고처리 접수번호");
            else {
                int success = c.clearReport(Integer.parseInt(splitted[1]));
                if(success == -1)
                    c.getPlayer().dropMessage(5, "접수번호 " + splitted[1] + "번에 대한 처리에 실패하였습니다.");
                else if(success == 0)
                    c.getPlayer().dropMessage(5, "접수번호 " + splitted[1] + "번에 대한 처리가 완료되었습니다.");
                else if (success == 1)
                    c.getPlayer().dropMessage(5, "접수번호 " + splitted[1] + "번은 존재하지 않는 접수번호 입니다.");
            }          
        } else if (splitted[0].equals("!신고확인")) {
            if(splitted.length != 2)
                c.getPlayer().dropMessage(5, "신고확인 유형 : !신고확인 접수번호");
            else {
                c.getPlayer().dropMessage(5, c.showReport(Integer.parseInt(splitted[1])));
            }
        }
     
     
    CharLoginHandler.java
              if (state == 0) {
                if(c.checkReport(c.getNameById(Character_ID))) {
                    if (!c.deleteCharacter(Character_ID))
                        state = 1; //actually something else would be good o.o
                } else {
                    state = 0x38;
                }
            }
            c.getSession().write(LoginPacket.deleteCharResponse(Character_ID, state));
    [출처] 신고 시스템|작성자 코마

    Attached file
    신고 추가.txt 9.8KB 6
    이 게시물을..
    N
    0
    0
    • 1.2.65 아트 소스오빠는요
    • 3
      박인성

    박인성 님의 최근 글

    작성 글이 없습니다.

    박인성 님의 최근 댓글

    작성 댓글이 없습니다.
    글쓴이의 서명작성글 감추기 
    댓글 쓰기 에디터 사용하기 닫기
    • view_headline 목록
    • 14px
    • 1.2.65 아트 소스
    • 목록
      view_headline
    × CLOSE
    기본 (942) 제목 날짜 수정 조회 댓글 추천 비추
    분류 정렬 검색
    • 소스자료는 직접 올려주세요
      2017.06.06 - 16:13 928
    942
    v391 pack
    더기덕이 2025.10.04 - 00:33 207
    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 244
    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 295
    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