• SEARCH

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

      • 찰떡01
      • 2018.09.10 - 12:39 299

    /*
     * This program is free software; you can redistribute it and/or modify
     * it under the terms of the GNU General Public License as published by
     * the Free Software Foundation; either version 2, or (at your option)
     * any later version.
     *
     * This program is distributed in the hope that it will be useful,
     * but WITHOUT ANY WARRANTY; without even the implied warranty of
     * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     * GNU General Public License for more details.
     *
     * You should have received a copy of the GNU General Public License
     * along with this program; if not, write to the Free Software
     * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
     * 02111-1307, USA.
     *
     * http://www.gnu.org/copyleft/gpl.html
     */

    package l1j.server.server.model.item.function;

    import java.util.Random;

    import l1j.server.Config;
    import l1j.server.server.clientpackets.ClientBasePacket;
    import l1j.server.server.model.L1Character;
    import l1j.server.server.model.Instance.L1ItemInstance;
    import l1j.server.server.model.Instance.L1PcInstance;
    import l1j.server.server.model.item.L1ItemId;
    import l1j.server.server.serverpackets.S_ServerMessage;
    import l1j.server.server.serverpackets.S_SystemMessage;
    import l1j.server.server.templates.L1Armor;
    import l1j.server.server.templates.L1Item;

    @SuppressWarnings("serial")
    public class EnchantArmor extends Enchant{
     
     private static Random _random = new Random(System.nanoTime());
     
     public EnchantArmor(L1Item item){
      super(item);
     }

     @Override
     public void clickItem(L1Character cha, ClientBasePacket packet){
      if(cha instanceof L1PcInstance){
       L1PcInstance pc = (L1PcInstance)cha;
       L1ItemInstance useItem = pc.getInventory().getItem(this.getId());
       int itemId = this.getItemId();
       L1ItemInstance l1iteminstance1 = pc.getInventory().getItem(packet.readD());
       if (pc.getLastEnchantItemid() == l1iteminstance1.getId()){
        pc.setLastEnchantItemid(l1iteminstance1.getId(), l1iteminstance1);
        return;
       }
       if (l1iteminstance1 == null || l1iteminstance1.getItem().getType2() != 2) {     
        pc.sendPackets(new S_ServerMessage(79)); // \f1 아무것도 일어나지 않았습니다.
        return;
       }
       if(l1iteminstance1.getBless() >= 128){  //봉인템
        pc.sendPackets(new S_ServerMessage(79)); // \f1 아무것도 일어나지 않았습니다.
        return;
       }
       int safe_enchant = ((L1Armor) l1iteminstance1.getItem()).get_safeenchant();

       if (safe_enchant < 0) { // 강화 불가
        pc.sendPackets(new S_ServerMessage(79)); // \f1 아무것도 일어나지 않았습니다.
        return;
       }

       int armorId = l1iteminstance1.getItem().getItemId();
       int armortype = l1iteminstance1.getItem().getType();
       /**환상의 갑옷 마법 주문서**/    
       if (armorId >= 423000 && armorId <= 423008) {
        if (itemId == L1ItemId.SCROLL_OF_ENCHANT_FANTASY_ARMOR) {      
        } else {
         pc.sendPackets(new S_ServerMessage(79));
         return;
        }
       }
       if (itemId == L1ItemId.SCROLL_OF_ENCHANT_FANTASY_ARMOR) {    
        if (armorId >= 423000 && armorId <= 423008) {
        } else {
         pc.sendPackets(new S_ServerMessage(79));
         return;
        }
       }
       /**환상의 갑옷 마법 주문서**/

       /**창천의 갑옷 마법 주문서**/
       if (armorId >= 422000 && armorId <= 422020) {
        if (itemId == L1ItemId.CHANGCHUN_ENCHANT_ARMOR_SCROLL) {      
        } else {
         pc.sendPackets(new S_ServerMessage(79));
         return;
        }
       }
       if (armorId >= 422000 && armorId <= 422020) {
        if (armorId >= 22041 && armorId <= 22061 ) {
        } else {
         pc.sendPackets(new S_ServerMessage(79));
         return;
        }
       }
       /**창천의 갑옷 마법 주문서**/

       /**장신구 강화 주문서 */
       if (itemId == L1ItemId.ACCESSORY_ENCHANT_SCROLL){
        if (armortype >= 8 && armortype <= 12){      
        } else { 
         pc.sendPackets(new S_ServerMessage(79));
         return;
        }
       }
       if (armortype >= 8 && armortype <= 12){
        if (itemId == L1ItemId.ACCESSORY_ENCHANT_SCROLL){
        } else {
         pc.sendPackets(new S_ServerMessage(79));
         return;
        }
       }
       /**장신구 강화 주문서 */

       int enchant_level = l1iteminstance1.getEnchantLevel();
       if (enchant_level >= Config.MAX_ARMOR) {
        pc.sendPackets(new S_SystemMessage("\\fW모든 방어구는 현재 +"+Config.MAX_ARMOR+"이상은 인챈할 수 없습니다."));  
        return;
       }
       
       if (Config.GAME_SERVER_TYPE == 1 && enchant_level >= safe_enchant+3){
        pc.sendPackets(new S_SystemMessage("테스트서버에서는 안전인챈+3 이상은 인챈하실수 없습니다."));
        return;
       }

           /*고대의서*/
          if (itemId == 5000022) { //고대의 서
         if (l1iteminstance1 != null
           && l1iteminstance1.getItem().getType2() == 1
           || l1iteminstance1.getItem().getType2() == 2) {

          //1은 무기고 2는 방어구 입니다. 무기 고대의서 방어구 고대의 서 따로 만드실 분은 여기서 알아서 응용해서 하시면 됩니다..
          int item_id = l1iteminstance1.getItem().getItemId();
          int item_type = l1iteminstance1.getItem().getType2();
          int item_na = l1iteminstance1.getItemId();

          if (enchant_level >= 15)  { //강화불가 수치 알아서...
           pc.sendPackets(new S_SystemMessage("인첸트 제한으로 더이상 인첸트 할수 없습니다"));
           return;
          }
          Random random = new Random();
          int k3 = random.nextInt(100);
          if (k3 <= 15) { //-1 될 확율 15%
           SuccessEnchant(pc , l1iteminstance1, -1); 

           pc.sendPackets(new S_SystemMessage("아이템의 인첸수치가  -1 내려갔습니다."));
           pc.getInventory().removeItem(useItem, 1);
          }
          if (k3 >= 16 && k3 <= 36) { //+1 될확율 5%
           SuccessEnchant(pc, l1iteminstance1, RandomELevel(l1iteminstance1, itemId));
           pc.sendPackets(new S_SystemMessage("아이템의 인첸수치가  +1 올라갔습니다."));
           pc.getInventory().removeItem(useItem, 1);
          }
          if (k3 >= 37 && k3 <= 97) { //확률은 알아서
           pc.sendPackets(new S_ServerMessage(79)); //아무일도 일어나지 않았습니다.
           pc.getInventory().removeItem(useItem, 1);
          }
          if (k3 >= 98 && k3 <= 100) { //확률은 알아서
           pc.getInventory().removeItem( l1iteminstance1, 1);
           pc.getInventory().storeItem( item_na, 1);
           pc.sendPackets(new S_SystemMessage("인첸트 초기화~~!."));
           pc.getInventory().removeItem(useItem, 1);
          }
        
          
         }else {
          pc.sendPackets(new S_ServerMessage(79)); // \f1 아무것도 일어나지 않았습니다.
         }
        }else{/////
     
       
       if (itemId == L1ItemId.C_SCROLL_OF_ENCHANT_ARMOR) { // c-zel
        pc.getInventory().removeItem(useItem, 1);
        int rnd = _random.nextInt(100) + 1;
        if (safe_enchant == 0 && rnd <= 30){
         FailureEnchant(pc, l1iteminstance1);
         return;
        }
        if (enchant_level < -6) {
         // -6이상은 할 수 없다. 
         FailureEnchant(pc, l1iteminstance1);
        } else {
         SuccessEnchant(pc, l1iteminstance1, -1);
        }
       } else if (enchant_level < safe_enchant) {
        pc.getInventory().removeItem(useItem, 1);    
        SuccessEnchant(pc, l1iteminstance1, RandomELevel(l1iteminstance1, itemId));    
       } else {
        pc.getInventory().removeItem(useItem, 1);
        int rnd = _random.nextInt(100) + 1;
        int enchant_chance_armor;
        int enchant_level_tmp;
        if (safe_enchant == 0) { // 뼈, 브락크미스릴용 보정
         enchant_level_tmp = 2;
        } else {
         enchant_level_tmp = 1;
        }
        if (armortype >= 8 && armortype <= 12){
         if (enchant_level >= 9) {
          enchant_chance_armor = (70 + enchant_level_tmp * Config.ENCHANT_CHANCE_ARMOR) / (enchant_level_tmp * (enchant_level-1));
         } else if (enchant_level >= 8) {
          enchant_chance_armor = (80 + enchant_level_tmp * Config.ENCHANT_CHANCE_ARMOR) / (enchant_level_tmp * 5);
         } else {
          enchant_chance_armor = (90 + enchant_level_tmp * Config.ENCHANT_CHANCE_ARMOR) / enchant_level_tmp;
         }
        }else{
         if (l1iteminstance1.getMr() > 0){
          enchant_chance_armor = 80/((enchant_level-safe_enchant+1)*2)/(enchant_level/7!=0?1*2:1)/(enchant_level_tmp)+Config.ENCHANT_CHANCE_ARMOR;
         }else{
          enchant_chance_armor = 90/((enchant_level-safe_enchant+1)*2)/(enchant_level/7!=0?1*2:1)/(enchant_level_tmp)+Config.ENCHANT_CHANCE_ARMOR;
         }
        }
        if (rnd < enchant_chance_armor) {
         int randomEnchantLevel = RandomELevel(l1iteminstance1, itemId);
         SuccessEnchant(pc, l1iteminstance1, randomEnchantLevel);
        } else if (enchant_level >= 9 && rnd < (enchant_chance_armor * 2)) {
         String item_name_id = l1iteminstance1.getName();
         String pm = "";
         String msg = "";
         if (enchant_level > 0) {
          pm = "+";
         }
         msg = (new StringBuilder()).append(pm + enchant_level).append(" ").append(item_name_id).toString();
         // \f1%0이%2과 강렬하게%1 빛났습니다만, 다행히 무사하게 살았습니다.
         pc.sendPackets(new S_ServerMessage(160, msg, "$252", "$248"));
        } else {
         FailureEnchant(pc, l1iteminstance1);
        }
       }
      }
     }
    }

    }

     

    출처 : 린프리

    이 게시물을..
    N
    0
    0
    • 리마스터팩 요정 소울 엠피 수정jstory
    • 15
      찰떡01

    찰떡01 님의 최근 글

    지혜의물약 리뉴얼 소스 216 2018 11.22 드래곤포탈관련소스 142 2018 11.22 프리서버 오픈소스 리니지 목표랩되면 선물주기 소스 361 1 2018 11.22 .버프(개인) 검,활 구분해서 추가하는 소스 264 1 2018 11.22 몹피바 보이게 하는 소스 536 4 2018 11.22

    찰떡01 님의 최근 댓글

    ㄳ 2023 06.17 ㄱㅅ 2020 12.19 클라 공유 부탁드립니다. 2020 12.19 ㄱㅅ 2020 11.26 ㄱㅅ 2020 11.05
    글쓴이의 서명작성글 감추기 
    댓글 쓰기 에디터 사용하기 닫기
    • 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 123
    1055
    디아블로 참 만들기
    유튜브고도리 2024.04.09 - 05:55 113
    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 40
    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 352
    1038
    랭커
    foqwer 2024.03.14 - 10:43 141
    1037
    인첸별
    foqwer 2024.03.14 - 10:42 106
    1036
    몬스터 앞에 레벨 넣기
    프렌치좋아 2024.03.04 - 01:40 368
    1035
    3.63 글루딘 Single 용
    블루블랙3 2024.02.28 - 23:08 410
    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 2283
    1026
    대미지 발동시 범위 질문드립니다
    나잇따나읻따 2023.05.21 - 22:26 292
    1025
    리니지 리마스터 몹 스폰수 어디서 줄일 수 있나요?
    001001 2023.04.25 - 16:06 727
    1024
    전사팩 로봇가능
    노력하자 2023.03.16 - 19:14 1111
    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 2088
    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