• SEARCH

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

      • Rebecca
      • 2023.11.24 - 23:39 2023.10.09 - 22:54 337 1

     

    magicdollcompose.java

     
     
    package lineage.world.object.npc;
     
    import java.util.ArrayList;
    import java.util.List;
     
    import all_night.Lineage_Balance;
    import lineage.bean.database.Item;
    import lineage.database.ItemDatabase;
    import lineage.database.ServerDatabase;
    import lineage.network.packet.BasePacketPooling;
    import lineage.network.packet.ClientBasePacket;
    import lineage.network.packet.server.S_Html;
    import lineage.network.packet.server.S_ObjectChatting;
    import lineage.share.Lineage;
    import lineage.util.Util;
    import lineage.world.World;
    import lineage.world.controller.ChattingController;
    import lineage.world.object.object;
    import lineage.world.object.instance.ItemInstance;
    import lineage.world.object.instance.PcInstance;
    import lineage.world.object.item.MagicDoll;
     
    public class MagicdollCompose extends object {
     
    @Override
    public void toTalk(PcInstance pc, ClientBasePacket cbp) {
    pc.toSender(S_Html.clone(BasePacketPooling.getPool(S_Html.class), this, "Magicdoll"));
    }
     
    @Override
    public void toTalk(PcInstance pc, String action, String type, ClientBasePacket cbp) {
    if (!pc.isWorldDelete() && !pc.isDead() && !pc.isLock() && pc.getInventory() != null) {
    // 인형 합성시 필요한 재료 갯수
    int count = action.equalsIgnoreCase("coding5") ? 3 : 4;
    int specialCount = 1;
    String itemName = null;
    List<MagicDoll> list = new ArrayList<MagicDoll>();
    List<MagicDoll> magicDollList = new ArrayList<MagicDoll>();
    List<MagicDoll> magicDollSpecialList = new ArrayList<MagicDoll>();
     
    for (ItemInstance item : pc.getInventory().getList()) {
    if (item instanceof MagicDoll && !item.isEquipped())
    list.add((MagicDoll) item);
    }
     
    if (action.equalsIgnoreCase("coding1")) {
    int level = 0;
     
    for (MagicDoll magicdoll : list) {
    for (int i = 0; i < Lineage.magicDoll[level].length; i++) {
    if (magicdoll.getItem().getName().equalsIgnoreCase(Lineage.magicDoll[level][i]))
    magicDollList.add(magicdoll);
    }
    }
     
    if (magicDollList.size() >= count) {
    double probability = Math.random();
     
    if (probability < Lineage_Balance.magicDoll_class_1_perfect_probability) {
    itemName = Lineage.magicDoll[level + 2][Util.random(0,
    Lineage.magicDoll[level + 2].length - 1)];
    ChattingController.toChatting(pc, "1단계 마법인형 합성 대성공!", Lineage.CHATTING_MODE_MESSAGE);
    } else if (probability < Lineage_Balance.magicDoll_class_1_probability) {
    itemName = Lineage.magicDoll[level + 1][Util.random(0,
    Lineage.magicDoll[level + 1].length - 1)];
    ChattingController.toChatting(pc, "1단계 마법인형 합성 성공!", Lineage.CHATTING_MODE_MESSAGE);
    } else {
    itemName = Lineage.magicDoll[level][Util.random(0, Lineage.magicDoll[level].length - 1)];
    }
    } else {
    ChattingController.toChatting(pc, String.format("1단계 인형 %d개 부족합니다.", count - magicDollList.size()),
    Lineage.CHATTING_MODE_MESSAGE);
    return;
    }
    } else if (action.equalsIgnoreCase("coding2")) {
    int level = 1;
     
    for (MagicDoll magicdoll : list) {
    for (int i = 0; i < Lineage.magicDoll[level].length; i++) {
    if (magicdoll.getItem().getName().equalsIgnoreCase(Lineage.magicDoll[level][i]))
    magicDollList.add(magicdoll);
    }
    }
     
    if (magicDollList.size() >= count) {
    double probability = Math.random();
     
    if (probability < Lineage_Balance.magicDoll_class_2_perfect_probability) {
    itemName = Lineage.magicDoll[level + 2][Util.random(0,
    Lineage.magicDoll[level + 2].length - 1)];
    ChattingController.toChatting(pc, "2단계 마법인형 합성 대성공!", Lineage.CHATTING_MODE_MESSAGE);
    } else if (probability < Lineage_Balance.magicDoll_class_2_probability) {
    itemName = Lineage.magicDoll[level + 1][Util.random(0,
    Lineage.magicDoll[level + 1].length - 1)];
    ChattingController.toChatting(pc, "2단계 마법인형 합성 성공!", Lineage.CHATTING_MODE_MESSAGE);
    } else {
    itemName = Lineage.magicDoll[level][Util.random(0, Lineage.magicDoll[level].length - 1)];
    }
    } else {
    ChattingController.toChatting(pc, String.format("2단계 인형 %d개 부족합니다.", count - magicDollList.size()),
    Lineage.CHATTING_MODE_MESSAGE);
    return;
    }
    } else if (action.equalsIgnoreCase("coding3")) {
    int level = 2;
     
    for (MagicDoll magicdoll : list) {
    for (int i = 0; i < Lineage.magicDoll[level].length; i++) {
    if (magicdoll.getItem().getName().equalsIgnoreCase(Lineage.magicDoll[level][i]))
    magicDollList.add(magicdoll);
    }
    }
     
    if (magicDollList.size() >= count) {
    double probability = Math.random();
     
    if (probability < Lineage_Balance.magicDoll_class_3_perfect_probability) {
    itemName = Lineage.magicDoll[level + 2][Util.random(0,
    Lineage.magicDoll[level + 2].length - 1)];
    ChattingController.toChatting(pc, "3단계 마법인형 합성 대성공!", Lineage.CHATTING_MODE_MESSAGE);
    } else if (probability < Lineage_Balance.magicDoll_class_3_probability) {
    itemName = Lineage.magicDoll[level + 1][Util.random(0,
    Lineage.magicDoll[level + 1].length - 1)];
    ChattingController.toChatting(pc, "3단계 마법인형 합성 성공!", Lineage.CHATTING_MODE_MESSAGE);
    } else {
    itemName = Lineage.magicDoll[level][Util.random(0, Lineage.magicDoll[level].length - 1)];
    }
    } else {
    ChattingController.toChatting(pc, String.format("3단계 인형 %d개 부족합니다.", count - magicDollList.size()),
    Lineage.CHATTING_MODE_MESSAGE);
    return;
    }
    } else if (action.equalsIgnoreCase("coding4")) {
    int level = 3;
     
    for (MagicDoll magicdoll : list) {
    for (int i = 0; i < Lineage.magicDoll[level].length; i++) {
    if (magicdoll.getItem().getName().equalsIgnoreCase(Lineage.magicDoll[level][i]))
    magicDollList.add(magicdoll);
    }
    }
     
    if (magicDollList.size() >= count) {
    double probability = Math.random();
     
    if (probability < Lineage_Balance.magicDoll_class_4_probability) {
    itemName = Lineage.magicDoll[level + 1][Util.random(0,
    Lineage.magicDoll[level + 1].length - 1)];
    ChattingController.toChatting(pc, "4단계 마법인형 합성 성공!", Lineage.CHATTING_MODE_MESSAGE);
    } else {
    itemName = Lineage.magicDoll[level][Util.random(0, Lineage.magicDoll[level].length - 1)];
    }
    } else {
    ChattingController.toChatting(pc, String.format("4단계 인형 %d개 부족합니다.", count - magicDollList.size()),
    Lineage.CHATTING_MODE_MESSAGE);
    return;
    }
    } else if (action.equalsIgnoreCase("coding5")) {
    int level = 3;
     
    for (MagicDoll magicdoll : list) {
    for (int i = 0; i < Lineage.magicDoll[level].length; i++) {
    if (magicdoll.getItem().getName().equalsIgnoreCase(Lineage.magicDoll[level][i]))
    magicDollList.add(magicdoll);
    }
    }
     
    for (MagicDoll specialMagicdoll : list) {
    for (int i = 0; i < Lineage.magicDoll[level + 1].length; i++) {
    if (specialMagicdoll.getItem().getName().equalsIgnoreCase(Lineage.magicDoll[level + 1][i]))
    magicDollSpecialList.add(specialMagicdoll);
    }
    }
     
    for (MagicDoll specialMagicdoll : list) {
    for (int i = 0; i < Lineage.magicDoll[level + 2].length; i++) {
    if (specialMagicdoll.getItem().getName().equalsIgnoreCase(Lineage.magicDoll[level + 2][i]))
    magicDollSpecialList.add(specialMagicdoll);
    }
    }
     
    if (magicDollList.size() >= count && magicDollSpecialList.size() >= specialCount) {
    // 성공확률 100%
    itemName = Lineage.magicDoll[level + 2][Util.random(0, Lineage.magicDoll[level + 2].length - 1)];
    } else {
    if (magicDollList.size() < count && magicDollSpecialList.size() >= specialCount)
    ChattingController.toChatting(pc,
    String.format("4단계 인형 %d개 부족합니다.", count - magicDollList.size()),
    Lineage.CHATTING_MODE_MESSAGE);
    else if (magicDollList.size() >= count && magicDollSpecialList.size() < specialCount)
    ChattingController.toChatting(pc,
    String.format("5단계 인형이 %d개 부족합니다.", specialCount - magicDollSpecialList.size()),
    Lineage.CHATTING_MODE_MESSAGE);
    else
    ChattingController.toChatting(pc,
    String.format("5단계 인형 %d개, 4단계 인형 %d개 부족합니다.",
    specialCount - magicDollSpecialList.size(), count - magicDollList.size()),
    Lineage.CHATTING_MODE_MESSAGE);
    return;
    }
    }
     
    if (itemName != null) {
    Item item = ItemDatabase.find(itemName);
     
    if (item != null) {
    ItemInstance temp = ItemDatabase.newInstance(item);
    temp.setObjectId(ServerDatabase.nextItemObjId());
    temp.setBless(1);
    temp.setEnLevel(0);
    temp.setDefinite(true);
    pc.getInventory().append(temp, true);
     
    if (action.equalsIgnoreCase("coding5")) {
    for (int i = 0; i < count; i++)
    pc.getInventory().count(magicDollList.get(i), magicDollList.get(i).getCount() - 1, true);
     
    for (int i = 0; i < specialCount; i++)
    pc.getInventory().count(magicDollSpecialList.get(i),
    magicDollSpecialList.get(i).getCount() - 1, true);
     
    } else {
    for (int i = 0; i < count; i++)
    pc.getInventory().count(magicDollList.get(i), magicDollList.get(i).getCount() - 1, true);
    }
     
    // 월드에 메세지 출력
    if (Lineage.world_message_magicdoll) {
    for (int i = 0; i < Lineage.magicDoll[4].length; i++) {
    if (itemName.equalsIgnoreCase(Lineage.magicDoll[4][i])) {
    World.toSender(S_ObjectChatting.clone(BasePacketPooling.getPool(S_ObjectChatting.class),
    null, Lineage.CHATTING_MODE_MESSAGE,
    String.format("어느 아덴 용사가 %s를 획득하였습니다.", itemName)));
    break;
    }
    }
     
    for (int i = 0; i < Lineage.magicDoll[5].length; i++) {
    if (itemName.equalsIgnoreCase(Lineage.magicDoll[5][i])) {
    World.toSender(S_ObjectChatting.clone(BasePacketPooling.getPool(S_ObjectChatting.class),
    null, Lineage.CHATTING_MODE_MESSAGE,
    String.format("어느 아덴 용사가 %s를 획득하였습니다.", itemName)));
    break;
    }
    }
    }
     
    ChattingController.toChatting(pc, String.format("%s 획득: 마법인형 합성", temp.toStringDB()),
    Lineage.CHATTING_MODE_MESSAGE);
    }
    }
    }
    }
    }

    이 게시물을..
    N
    0
    0
    • 전쟁세율 고정값 15%하남궁
    • 2.0 레벨업시 HP량 올리기Rebecca
    • 6
      Rebecca

    Rebecca 님의 최근 글

    파일 변환프로그램~ 18 2023 10.12 휴지통 복구~ 27 2023 10.12 이상형 월드컵~ 24 2023 10.12 특수문자쉽게 찾아요~ 25 2023 10.12 로또게임 23 2023 10.12

    Rebecca 님의 최근 댓글

    ㄳ 2024 04.12 ㄳㄳ 2024 04.12 ㄳㄳ 2024 04.12 ㄳㄳ 2024 02.20 ㄳㄳ 2024 01.03
    글쓴이의 서명작성글 감추기 

    댓글1

    • 0
      하남궁
      2023.11.24 - 23:39 #13797746

      어디넣고 어떻게 해야하는지 설명좀 해줬으면 너무 좋았을 텐데..ㅎㅎ

    댓글 쓰기 에디터 사용하기 닫기
    • view_headline 목록
    • 14px
    • 전쟁세율 고정값 15%
    • 2.0 레벨업시 HP량 올리기
    • 목록
      view_headline
    1
    × 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 369
    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
    인형합성사
    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