• SEARCH

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

      • 준희미니
      • 2016.06.29 - 14:19 198

    안녕하세요.

     

    데불 커스텀 Ver.

     

    소스코드에요.

     

     

    WeaponSkill.java

    1.     public static void getNewDKSword(L1PcInstance pc, L1Character cha){
    2.         try{
    3.             int chance = RandomUtil.nextInt(100);
    4.             int call = pc.getWeapon().getEnchantLevel();
    5.            
    6.             // 발동 이펙트 번호
    7.             int effectId = 7065;
    8.            
    9.             if(call >= chance){ // 확률은 인챈%
    10.  
    11.                 // 체크 타이머를 시작
    12.                 new NewDeathKnightSwordEffect(pc, cha).begin();
    13.                
    14.                 // 1번 터지면 데이터 입력
    15.                 int count = 0;
    16.                 if(ndkseMap.containsKey(cha.getId())){
    17.                     count = ndkseMap.get(cha.getId());
    18.                 }
    19.                 ndkseMap.put(cha.getId(), count+1);
    20.                
    21.                 // 터진다면 이펙트를 줘서 알 수 있게 한다.
    22.                 pc.sendPackets(new S_SkillSound(cha.getId(), effectId));
    23.                 Broadcaster.broadcastPacket(pc, new S_SkillSound(cha.getId(), effectId));
    24.             }
    25.         }catch(Exception e){
    26.             // TODO Auto-generated catch block
    27.             e.printStackTrace();
    28.         }
    29.     }
    30.    
    31.     static ConcurrentHashMap<Integer, Integer> ndkseMap = new ConcurrentHashMap<Integer, Integer>();
    32.     static class NewDeathKnightSwordEffect implements Runnable{
    33.         private ScheduledFuture<?> _future;
    34.         L1PcInstance pc;
    35.         L1Character cha;
    36.         int pcId;
    37.         int chaId;
    38.        
    39.         int checkTimeSecMillis = 10000; // 해당 시간 만큼 체크한다.
    40.         int checkCount = 5; // 이 숫자 이상 발동을 해야 된다.
    41.        
    42.         public NewDeathKnightSwordEffect(L1PcInstance pc, L1Character cha){
    43.             this.pc = pc;
    44.             this.cha = cha;
    45.             this.pcId = pc.getId();
    46.             this.chaId = cha.getId();
    47.         }
    48.        
    49.         public void run(){
    50.             // 누군가 나가거나, 죽으면 종료
    51.             if(pc == null || cha == null){
    52.                 kill();
    53.                 return;
    54.             }
    55.             if(pc.isDead() || pc.getCurrentHp() <= 0){
    56.                 kill();
    57.                 return;
    58.             }
    59.             if(cha.isDead() || cha.getCurrentHp() <= 0){
    60.                 kill();
    61.                 return;
    62.             }
    63.            
    64.             // 발동된 횟수를 가져오기
    65.             int count = 0;
    66.             if(ndkseMap.containsKey(chaId)){
    67.                 count = ndkseMap.get(chaId);
    68.             }
    69.            
    70.             // 일정 횟수 발동을 하지 않았다면 제외
    71.             if(count < checkCount){
    72.                 kill();
    73.                 return;
    74.             }
    75.            
    76.             // 효과 발동
    77.             new NewDeathKnightSwordDamage(pc, cha).begin();
    78.            
    79.             // 종료되면 리스트에서 제거
    80.             ndkseMap.remove(chaId);
    81.         }
    82.        
    83.         public void begin(){
    84.             // 이미 걸려있다면 return
    85.             if(ndkseMap.containsKey(chaId)){
    86.                 return;
    87.             }
    88.             _future = GeneralThreadPool.getInstance().schedule(this, checkTimeSecMillis);
    89.         }
    90.        
    91.         public void kill(){
    92.             if(_future != null){
    93.                 _future.cancel(false);
    94.             }
    95.            
    96.             // 종료되면 리스트에서 제거
    97.             ndkseMap.remove(chaId);
    98.         }
    99.     }
    100.    
    101.     static class NewDeathKnightSwordDamage implements Runnable{
    102.         private ScheduledFuture<?> _future;
    103.         L1PcInstance pc;
    104.         L1Character cha;
    105.        
    106.         int delayTimeSecMillis = 300; // 해당 딜레이로 친다.(적어도 500은 되야 화려화려)
    107.         int remain = 10; // 해당 횟수만큼 친다.
    108.        
    109.         int effectId = 245; // 해당 이펙트로 나간다.
    110.         int actionCode = 31; // 해당 액션을 사용
    111.        
    112.         String transName = "데스나이트"; // 해당 이름으로 생성
    113.         int gfxId = 9206; // 해당 gfx로 생성
    114.        
    115.         int damage = 100; // 해당 데미지를 준다.(회당 데미지)
    116.        
    117.         // comment
    118.         // 총 데미지 량은 damage * remain 이므로, 알아서 조정을 하시기 바래요!
    119.        
    120.         public NewDeathKnightSwordDamage(L1PcInstance pc, L1Character cha){
    121.             this.pc = pc;
    122.             this.cha = cha;
    123.         }
    124.        
    125.         public void run(){
    126.             try{
    127.                 // 누군가 나가거나, 죽거나, 횟수가 다 되면 종료
    128.                 if(pc == null || cha == null){
    129.                     kill();
    130.                     return;
    131.                 }
    132.                 if(pc.isDead() || pc.getCurrentHp() <= 0){
    133.                     kill();
    134.                     return;
    135.                 }
    136.                 if(cha.isDead() || cha.getCurrentHp() <= 0){
    137.                     kill();
    138.                     return;
    139.                 }
    140.                 if(remain-- <= 0){
    141.                     kill();
    142.                     return;
    143.                 }
    144.                
    145.                 // 좌표는 케릭 주위 1칸 내로
    146.                 int x = cha.getX() + RandomUtil.nextInt(2) - RandomUtil.nextInt(2);
    147.                 int y = cha.getY() + RandomUtil.nextInt(2) - RandomUtil.nextInt(2);
    148.                 int mapId = cha.getMapId();
    149.                
    150.                 // 몹 소환(허수아비를 만들어서 gfx와 이름을 변경..테이블에 또 만들기는 귀ㅊ...이 아니라 효율을 위해서요)
    151.                 L1NpcInstance npc = NpcTable.getInstance().newNpcInstance(45003);
    152.                 npc.setId(ObjectIdFactory.getInstance().nextId());
    153.                 npc.setLocation(x, y, mapId);
    154.                 npc.getGfxId().setGfxId(gfxId);
    155.                 npc.getGfxId().setTempCharGfx(gfxId);
    156.                 npc.setNameId(transName);
    157.                 npc.setHomeX(npc.getX());
    158.                 npc.setHomeY(npc.getY());
    159.                 npc.getMoveState().setHeading(CharPosUtil.targetDirection(npc, cha.getX(), cha.getY()));
    160.                 npc.setActionStatus(actionCode);
    161.                
    162.                 // 오브젝트 등록을 하고(store는 필요 없다. 보이기만 하면 그만..)
    163.                 L1World.getInstance().addVisibleObject(npc);
    164.                
    165.                 // 오브젝트 생성
    166.                 pc.sendPackets(new S_NPCPack(npc));
    167.                 Broadcaster.broadcastPacket(pc, new S_NPCPack(npc));
    168.                
    169.                 // 액션값 전송
    170.                 pc.sendPackets(new S_DoActionGFX(npc.getId(), actionCode));
    171.                 Broadcaster.broadcastPacket(pc, new S_DoActionGFX(npc.getId(), actionCode));
    172.                
    173.                 // 이펙트 전송
    174.                 pc.sendPackets(new S_SkillSound(npc.getId(), effectId));
    175.                 Broadcaster.broadcastPacket(pc, new S_SkillSound(npc.getId(), effectId));
    176.                
    177.                 // 오브젝트 등록 해제
    178.                 L1World.getInstance().removeVisibleObject(npc);
    179.                
    180.                 // 오브젝트 삭제
    181.                 pc.sendPackets(new S_RemoveObject(npc));
    182.                 Broadcaster.broadcastPacket(pc, new S_RemoveObject(npc));
    183.  
    184.                 // 데미지 주기
    185.                 if(cha instanceof L1PcInstance){
    186.                     ((L1PcInstance) cha).receiveDamage(pc, damage, false);
    187.                 }else if(cha instanceof L1MonsterInstance){
    188.                     ((L1MonsterInstance) cha).receiveDamage(pc, damage);
    189.                 }
    190.             }catch(ClassNotFoundException | IllegalAccessException | InstantiationException | InvocationTargetException | IllegalArgumentException e){
    191.                 // TODO Auto-generated catch block
    192.                 e.printStackTrace();
    193.             }
    194.         }
    195.        
    196.         public void begin(){
    197.             _future = GeneralThreadPool.getInstance().scheduleAtFixedRate(this, 0, delayTimeSecMillis);
    198.         }
    199.        
    200.         public void kill(){
    201.             if(_future != null){
    202.                 _future.cancel(false);
    203.             }
    204.         }
    205.     }

     

    L1Attack.java

     

    calcPcPcdamage

    calcPcNpcDamage

     

    위 두개 메소드 에서

     

    if(wepon.getItemId() == 데불번호)

    L1WeaponSkill.getNewDKSword(_pc, _target);

     

    메소드를 마법검 형식으로 넣어주세요!

     

     

    comment

    1. 저게 전부에요!

    2. 삭제를 원하신다면 삭제요청은 댓글로 올려주세요.

     

     

    mod

    1.리스트에서 제거가 제대로 되지 않는 문제 수정

     
     

    [출처] [수정1] 데스나이트 불검 커스텀 버전 (비공개 카페)

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

    준희미니 님의 최근 글

    [에바] 나비켓 테이블 관련 설명 761 1 2016 07.29 에바소스인데 오픈대기 켜고 끄는 소스에요~ 80 2016 07.29 퍼플채팅 색(진보라채팅) 68 2016 07.29 선택상자 2탄입니다!! 접속유지증표를 활용한 아템선택 160 2016 07.29 새로운 아이템 인첸트 시에 마법방어 올라가도록 설정하는 112 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) 제목 날짜 수정 조회 댓글 추천 비추
    분류 정렬 검색
    • 링크 업로드 관련 공지
      6
      2026.03.25 - 21:56 840 6
    • 인증메일 공지
      2
      2026.03.15 - 16:42 934 2
    • 파일링크 및 인증메일 발송 관련 문의 안내
      5
      2026.03.14 - 22:03 1153 5
    • 포인트 게시판 안내
      2026.02.28 - 19:14 1794
    • 게임존 사이트 변경 사항 안내
      9
      2026.02.26 - 01:07 3325 9
    • 소스자료는 직접 올려주세요
      2017.06.06 - 16:14 609
    1058
    아머브레이크 데스티니 시전시 성공 확률 조정하는 소스가 있나요?
    안정환 2024.04.23 - 10:01 135
    1057
    List.spr(변신,몬스터 수정소스)개조방법
    유튜브고도리 2024.04.19 - 05:02 353
    1056
    NPC 외침 멘트 깔끔정리(by.유튜브고도리)
    유튜브고도리 2024.04.11 - 05:57 157
    1055
    디아블로 참 만들기
    유튜브고도리 2024.04.09 - 05:55 150
    1054
    리니지m 처럼 피통 늘리기,오류가 날때
    유튜브고도리 2024.04.09 - 05:18 110
    1053
    욕하면 채금 먹게 하기
    유튜브고도리 2024.04.09 - 04:59 97
    1052
    레벨에 따른 호칭 부여..?
    밤톨이11 2024.04.08 - 04:24 89
    1051
    초보자 보호 시스템
    밤톨이11 2024.04.08 - 04:21 77
    1050
    마법무기 데미지 증가
    밤톨이11 2024.04.08 - 04:19 97
    1049
    레벨 제한 맵
    밤톨이11 2024.04.08 - 04:14 84
    1048
    마법스크롤
    밤톨이11 2024.04.08 - 04:06 41
    1047
    리니지m 아지트 소유중에도 공성선포하기
    유튜브고도리 2024.04.07 - 21:37 63
    1046
    리니지m 마법인형이 마법을 쓰네?
    유튜브고도리 2024.04.07 - 21:36 92
    1045
    드래곤 슬레이어 각반(장비추가소스)
    유튜브고도리 2024.04.07 - 19:08 78
    1044
    린엠 게렝 변신 카드 만들기
    유튜브고도리 2024.04.06 - 06:06 125
    1043
    버프 물약 개별 소스 오래전 소스
    밤톨이11 2024.04.05 - 18:43 76
    1042
    일시 스텟 상승 물약
    밤톨이11 2024.04.05 - 18:42 35
    1041
    성 전환 물약
    밤톨이11 2024.04.05 - 18:37 41
    1040
    MP 물약 소스
    밤톨이11 2024.04.05 - 18:35 57
    1039
    리니지 옛날버젼..이라는데...구동가능여부 확인 부탁드립니다.
    도난차량 2024.03.24 - 04:56 414
    1038
    랭커
    foqwer 2024.03.14 - 10:43 156
    1037
    인첸별
    foqwer 2024.03.14 - 10:42 132
    1036
    몬스터 앞에 레벨 넣기
    프렌치좋아 2024.03.04 - 01:40 403
    1035
    3.63 글루딘 Single 용
    블루블랙3 2024.02.28 - 23:08 439
    1034
    Sprite file doesn`t exist 오류
    하앙비 2023.12.23 - 02:19 254
    1033
    전쟁세율 고정값 15%
    하남궁 2023.11.29 - 17:02 218
    1032
    인형합성사
    Rebecca 2023.10.09 - 22:54 359
    1031
    2.0 레벨업시 HP량 올리기
    Rebecca 2023.10.09 - 22:49 453
    1030
    전사버전 펫 만렙 변경
    Rebecca 2023.10.09 - 22:44 170
    1029
    맵 순간이동 가능 불가능지역 설정하기
    Rebecca 2023.10.09 - 22:39 252
    1028
    트레져박스 업로드입니다.
    린컴충성 2023.10.07 - 04:46 195
    1027
    리마스터 접속기 소스자료
    홍자놀기 2023.09.08 - 05:41 2365
    1026
    대미지 발동시 범위 질문드립니다
    나잇따나읻따 2023.05.21 - 22:26 313
    1025
    리니지 리마스터 몹 스폰수 어디서 줄일 수 있나요?
    001001 2023.04.25 - 16:06 756
    1024
    전사팩 로봇가능
    노력하자 2023.03.16 - 19:14 1132
    1023
    2.7 자동 물약 소스
    퍽퍽띠 2022.11.18 - 00:40 1251
    1022
    2.0 자동칼질소스 (클래스 파일에서 빼왔습니다)
    drumlinek 2022.11.06 - 05:20 960
    1021
    npc가 인겜에서 채팅으로 말하기
    하늘마음 2022.10.06 - 10:04 339
    1020
    유저 아이피보는 소스
    캐빈N.01 2020.12.15 - 21:34 655
    1019
    인공지능
    캐빈N.01 2020.12.15 - 21:27 1145
    1018
    아데나가 19억이 되면 자동으로 1억으로 금괴로 바꾸기
    강우리 2020.12.12 - 01:48 1014
    1017
    린올기반 휘장 각반 견갑 장비인식 안되는거 수정함
    신화서버 2020.11.17 - 01:48 305
    1016
    방어구 인챈트별 피 증가 소스
    LGTwins 2020.09.12 - 05:52 699
    1015
    장신구 옵션 변경
    LGTwins 2020.08.31 - 07:00 766
    1014
    자동물약
    legena 2020.07.05 - 02:30 2136
    1013
    리마스터팩 스냅퍼 개방 레벨설정 본섭화 수정(몽양님 요청)
    jstory 2020.06.13 - 07:22 777
    1012
    리마스터팩 룬마력제거 검사 적용안대는 부분 수정
    jstory 2020.06.10 - 04:05 296
    1011
    리마스터팩 쓸모없는 아이템 활용
    jstory 2020.06.10 - 04:01 746
    1010
    리마스터팩 요정 소울 엠피 수정
    jstory 2020.06.10 - 03:54 470
    1009
    리마스터팩 자동공지시간에 버프주기
    jstory 2020.06.10 - 03:15 412
    • 1 2 3 4 5 6 7 8 9 10 .. 22
    • / 22 GO
  • GAMEZONE
 GAMEZONE all rights reserved.
by OrangeDay