• SEARCH

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

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

    안녕하세요.

     

    데불 커스텀 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
      준희미니

    준희미니 님의 최근 글

    로한구축성공 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 243
    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 71
    1049
    레벨 제한 맵
    밤톨이11 2024.04.08 - 04:14 67
    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 31
    1040
    MP 물약 소스
    밤톨이11 2024.04.05 - 18:35 41
    1039
    리니지 옛날버젼..이라는데...구동가능여부 확인 부탁드립니다.
    도난차량 2024.03.24 - 04:56 354
    1038
    랭커
    foqwer 2024.03.14 - 10:43 142
    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 412
    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 338
    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 238
    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 931
    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 1126
    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 287
    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