• SEARCH

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

      • 준희미니
      • 2016.07.29 - 00:49 82

    위치 L1Model

     

    L1Hero.java

     

    package l1j.server.server.model;

    import java.sql.Connection;
    import java.sql.PreparedStatement;
    import java.sql.ResultSet;
    import java.sql.SQLException;

    import l1j.server.L1DatabaseFactory;
    import l1j.server.server.model.Instance.L1PcInstance;
    import l1j.server.server.utils.SQLUtil;

    public class L1Hero {


    private static L1Hero instance;

    public static L1Hero getInstance() {
    if (instance == null) {
    instance = new L1Hero();
    }
    return instance;
    }


    private String knight = "";


    private String wizard = "";

    private String elf = "";

    private String crown = "";

    private String darkelf = "";

    private String dragonknight = "";

    private String illusionwizard = "";

    public String getKnight() {
    return knight;
    }

    public void setKnight(String knight) {
    this.knight = knight;
    }

    public String getWizard() {
    return wizard;
    }

    public void setWizard(String wizard) {
    this.wizard = wizard;
    }

    public String getElf() {
    return elf;
    }

    public void setElf(String elf) {
    this.elf = elf;
    }

    public String getCrown() {
    return crown;
    }

    public void setCrown(String crown) {
    this.crown = crown;
    }

    public String getDarkelf() {
    return darkelf;
    }

    public void setDarkelf(String darkelf) {
    this.darkelf = darkelf;
    }

    public String getDragonknight() {
    return dragonknight;
    }

    public void setDragonknight(String dragonknight) {
    this.dragonknight = dragonknight;
    }

    public String getIllusionwizard() {
    return illusionwizard;
    }

    public void setIllusionwizard(String illusionwizard) {
    this.illusionwizard = illusionwizard;
    }
    public String title = "";

    public boolean HeroCheck(L1PcInstance pc){

    if(pc.isKnight() && pc.getName().equalsIgnoreCase(getKnight())){
    title = "(검성)"; return true;
    }else if(pc.isWizard() && pc.getName().equalsIgnoreCase(getWizard())){
    title = "(현자)"; return true;
    }else if(pc.isDarkelf()&& pc.getName().equalsIgnoreCase(getDarkelf())){
    title = "(무영)"; return true;
    }else if(pc.isDragonknight()&& pc.getName().equalsIgnoreCase(getDragonknight())){
    title = "(용투사)"; return true;
    }else if(pc.isElf()&& pc.getName().equalsIgnoreCase(getElf())){
    title = "(신궁)"; return true;
    }else if(pc.isIllusionist()&& pc.getName().equalsIgnoreCase(getIllusionwizard())){
    title = "(극환)"; return true;
    }else if(pc.isCrown()&& pc.getName().equalsIgnoreCase(getCrown())){
    title = "(황제)"; return true;
    }
    return false;
    }

    public void HeroLoad(){

    Connection con = null;
    PreparedStatement pstm = null;
    ResultSet rs = null;
    try {
    con = L1DatabaseFactory.getInstance().getConnection();
    pstm = con
    .prepareStatement("SELECT * FROM HeroTable");
    rs = pstm.executeQuery();
    while(rs.next()){
    switch(rs.getInt("Class")){
    case 1: setKnight(rs.getString("Name")); break;
    case 2: setWizard(rs.getString("Name")); break;
    case 3: setElf(rs.getString("Name")); break;
    case 4: setCrown(rs.getString("Name")); break;
    case 5: setDarkelf(rs.getString("Name")); break;
    case 6: setDragonknight(rs.getString("Name")); break;
    case 7: setIllusionwizard(rs.getString("Name")); break;
    default:
    System.out.println("테이블에 지정되지않은 클래스번호가있습니다."+rs.getInt("Class"));
    break;
    }
    }
    } catch (SQLException e) {
    e.printStackTrace();
    } finally {
    SQLUtil.close(rs);
    SQLUtil.close(pstm);
    SQLUtil.close(con);
    }
    HeroChange HC = new HeroChange();
    Thread T1 = new Thread(HC);
    T1.start();
    }


    public void HeroJoin(){
    for(L1PcInstance pc : L1World.getInstance().getAllPlayers()){
    if(HeroCheck(pc)){
    pc.setName(title+pc.getName());
    }
    }
    }


    }

     


    class HeroChange implements Runnable{

    @Override
    public void run() {
    // TODO Auto-generated method stub
    try {
    while(true){
    HeroChange();
    Thread.sleep(3600000*12); //12시간 마다
    }
    } catch (InterruptedException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }
    }

    private void HeroChange() {
    L1Hero hero = L1Hero.getInstance();
    Connection con = null;
    PreparedStatement pstm = null;
    ResultSet rs = null;
    try {
    con = L1DatabaseFactory.getInstance().getConnection();
    pstm = con
    .prepareStatement("SELECT * FROM characters where class = ? ordey by exp asc");
    for(int i=1;i<8;i++){
    pstm.clearParameters();
    pstm.setString(1, Integer.toString(i)); //기사클래스번호
    rs = pstm.executeQuery();
    if(rs.next()){
    switch(i){
    case 1: hero.setKnight(rs.getString("Name")); break;
    case 2: hero.setWizard(rs.getString("Name")); break;
    case 3: hero.setElf(rs.getString("Name")); break;
    case 4: hero.setCrown(rs.getString("Name")); break;
    case 5: hero.setDarkelf(rs.getString("Name")); break;
    case 6: hero.setDragonknight(rs.getString("Name")); break;
    case 7: hero.setIllusionwizard(rs.getString("Name")); break;
    default:
    System.out.println("테이블에 지정되지않은 클래스번호가있습니다."+rs.getInt("Class"));
    break;
    }
    }
    }
    HeroSave(); //저장
    } catch (SQLException e) {
    e.printStackTrace();
    } finally {
    SQLUtil.close(rs);
    SQLUtil.close(pstm);
    SQLUtil.close(con);
    }

    }
    private void HeroSave(){
    L1Hero hero = L1Hero.getInstance();
    Connection con = null;
    PreparedStatement pstm = null;
    String name = "";
    try {
    con = L1DatabaseFactory.getInstance().getConnection();
    pstm = con
    .prepareStatement("Update heroTable set Name = ? where Class = ?");
    for(int i=1;i<8;i++){
    switch(i){
    case 1: name = hero.getKnight(); break;
    case 2: name = hero.getWizard(); break;
    case 3: name = hero.getElf(); break;
    case 4: name = hero.getCrown(); break;
    case 5: name = hero.getDarkelf(); break;
    case 6: name = hero.getDragonknight(); break;
    case 7: name = hero.getIllusionwizard(); break;
    }
    pstm.clearParameters();
    pstm.setString(1, Integer.toString(i)); //기사클래스번호
    pstm.setString(2, name); //기사클래스번호
    }
    } catch (SQLException e) {
    e.printStackTrace();
    } finally {
    SQLUtil.close(pstm);
    SQLUtil.close(con);
    }
    }

    }

     

    L1PcInstance.java

     

    /**
    *
    * @param Hero
    */
    private boolean isHero = false;


    public boolean isHero() {
    return isHero;
    }
    public void setHero(boolean isHero) {
    this.isHero = isHero;
    }
    /** **/

     

     

     

    DB부분

     

    heroTable 생성

    필드는

    Class String not null

    Name String not null

     

    이거면 되겠죠? ㅎ

     

    12시간마다 해당각 클래스의 exp를 비교해 제일 높은 각 클래스당

     

    영웅칭호를 이름앞에 붙혀주는 소스입니다.

     

    ㅎ

     

    큐르님께바칩니다

    [출처] 큐르님이 말씀하신 영웅시스템 (비공개 카페)

     

     

    이 게시물을..
    N
    0
    0
    • 리마스터팩 요정 소울 엠피 수정jstory
    • 0
      준희미니

    준희미니 님의 최근 글

    로한구축성공 283 1 2021 06.14 에오스 구축성공 356 2 2021 04.01 [에바] 나비켓 테이블 관련 설명 747 1 2016 07.29 에바소스인데 오픈대기 켜고 끄는 소스에요~ 70 2016 07.29 퍼플채팅 색(진보라채팅) 59 2016 07.29

    준희미니 님의 최근 댓글

    rt 2021 05.25 ㄳ 2021 05.11 ㄳ 2021 05.11 rt 2021 05.09 rt 2021 04.25
    글쓴이의 서명작성글 감추기 
    댓글 쓰기 에디터 사용하기 닫기
    • view_headline 목록
    • 14px
    • 리마스터팩 요정 소울 엠피 수정
    • 목록
      view_headline
    × CLOSE
    기본 (1,058) 제목 날짜 수정 조회 댓글 추천 비추
    분류 정렬 검색
    • 소스자료는 직접 올려주세요
      2017.06.06 - 16:14 591
    1058
    아머브레이크 데스티니 시전시 성공 확률 조정하는 소스가 있나요?
    안정환 2024.04.23 - 10:01 102
    1057
    List.spr(변신,몬스터 수정소스)개조방법
    유튜브고도리 2024.04.19 - 05:02 242
    1056
    NPC 외침 멘트 깔끔정리(by.유튜브고도리)
    유튜브고도리 2024.04.11 - 05:57 125
    1055
    디아블로 참 만들기
    유튜브고도리 2024.04.09 - 05:55 114
    1054
    리니지m 처럼 피통 늘리기,오류가 날때
    유튜브고도리 2024.04.09 - 05:18 91
    1053
    욕하면 채금 먹게 하기
    유튜브고도리 2024.04.09 - 04:59 71
    1052
    레벨에 따른 호칭 부여..?
    밤톨이11 2024.04.08 - 04:24 72
    1051
    초보자 보호 시스템
    밤톨이11 2024.04.08 - 04:21 57
    1050
    마법무기 데미지 증가
    밤톨이11 2024.04.08 - 04:19 70
    1049
    레벨 제한 맵
    밤톨이11 2024.04.08 - 04:14 65
    1048
    마법스크롤
    밤톨이11 2024.04.08 - 04:06 32
    1047
    리니지m 아지트 소유중에도 공성선포하기
    유튜브고도리 2024.04.07 - 21:37 41
    1046
    리니지m 마법인형이 마법을 쓰네?
    유튜브고도리 2024.04.07 - 21:36 61
    1045
    드래곤 슬레이어 각반(장비추가소스)
    유튜브고도리 2024.04.07 - 19:08 51
    1044
    린엠 게렝 변신 카드 만들기
    유튜브고도리 2024.04.06 - 06:06 100
    1043
    버프 물약 개별 소스 오래전 소스
    밤톨이11 2024.04.05 - 18:43 57
    1042
    일시 스텟 상승 물약
    밤톨이11 2024.04.05 - 18:42 26
    1041
    성 전환 물약
    밤톨이11 2024.04.05 - 18:37 30
    1040
    MP 물약 소스
    밤톨이11 2024.04.05 - 18:35 41
    1039
    리니지 옛날버젼..이라는데...구동가능여부 확인 부탁드립니다.
    도난차량 2024.03.24 - 04:56 354
    1038
    랭커
    foqwer 2024.03.14 - 10:43 141
    1037
    인첸별
    foqwer 2024.03.14 - 10:42 106
    1036
    몬스터 앞에 레벨 넣기
    프렌치좋아 2024.03.04 - 01:40 370
    1035
    3.63 글루딘 Single 용
    블루블랙3 2024.02.28 - 23:08 411
    1034
    Sprite file doesn`t exist 오류
    하앙비 2023.12.23 - 02:19 229
    1033
    전쟁세율 고정값 15%
    하남궁 2023.11.29 - 17:02 198
    1032
    인형합성사
    Rebecca 2023.10.09 - 22:54 337
    1031
    2.0 레벨업시 HP량 올리기
    Rebecca 2023.10.09 - 22:49 434
    1030
    전사버전 펫 만렙 변경
    Rebecca 2023.10.09 - 22:44 162
    1029
    맵 순간이동 가능 불가능지역 설정하기
    Rebecca 2023.10.09 - 22:39 237
    1028
    트레져박스 업로드입니다.
    린컴충성 2023.10.07 - 04:46 182
    1027
    리마스터 접속기 소스자료
    홍자놀기 2023.09.08 - 05:41 2284
    1026
    대미지 발동시 범위 질문드립니다
    나잇따나읻따 2023.05.21 - 22:26 292
    1025
    리니지 리마스터 몹 스폰수 어디서 줄일 수 있나요?
    001001 2023.04.25 - 16:06 727
    1024
    전사팩 로봇가능
    노력하자 2023.03.16 - 19:14 1113
    1023
    2.7 자동 물약 소스
    퍽퍽띠 2022.11.18 - 00:40 1215
    1022
    2.0 자동칼질소스 (클래스 파일에서 빼왔습니다)
    drumlinek 2022.11.06 - 05:20 929
    1021
    npc가 인겜에서 채팅으로 말하기
    하늘마음 2022.10.06 - 10:04 320
    1020
    유저 아이피보는 소스
    캐빈N.01 2020.12.15 - 21:34 639
    1019
    인공지능
    캐빈N.01 2020.12.15 - 21:27 1125
    1018
    아데나가 19억이 되면 자동으로 1억으로 금괴로 바꾸기
    강우리 2020.12.12 - 01:48 995
    1017
    린올기반 휘장 각반 견갑 장비인식 안되는거 수정함
    신화서버 2020.11.17 - 01:48 295
    1016
    방어구 인챈트별 피 증가 소스
    LGTwins 2020.09.12 - 05:52 688
    1015
    장신구 옵션 변경
    LGTwins 2020.08.31 - 07:00 751
    1014
    자동물약
    legena 2020.07.05 - 02:30 2089
    1013
    리마스터팩 스냅퍼 개방 레벨설정 본섭화 수정(몽양님 요청)
    jstory 2020.06.13 - 07:22 764
    1012
    리마스터팩 룬마력제거 검사 적용안대는 부분 수정
    jstory 2020.06.10 - 04:05 286
    1011
    리마스터팩 쓸모없는 아이템 활용
    jstory 2020.06.10 - 04:01 731
    1010
    리마스터팩 요정 소울 엠피 수정
    jstory 2020.06.10 - 03:54 459
    1009
    리마스터팩 자동공지시간에 버프주기
    jstory 2020.06.10 - 03:15 404
    • 1 2 3 4 5 6 7 8 9 10 .. 22
    • / 22 GO
  • GAMEZONE
 GAMEZONE all rights reserved.
by OrangeDay