• SEARCH

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

      • 찰떡01
      • 2018.08.14 - 21:50 399

    프리서버 오픈소스 리니지 UI6기억창, 기억/저장/확장/희미한/신비한 구슬

     

    C_Report.자바

     public static final int BOOKMARK_SAVE = 0x22;
     public static final int BOOKMARK_COLOR = 0x27;
     public static final int BOOKMARK_LOADING_SAVE = 0x28;

     

       case BOOKMARK_COLOR:// 27
        int size = readD();
        int id;
        String name;
        for (int i = 0; i < size; i++) {
         id = readD();
         name = readS();
         Connection con = null;
         PreparedStatement pstm = null;
         try {
          con = L1DatabaseFactory.getInstance().getConnection();
          pstm = con.prepareStatement("UPDATE character_teleport SET name='" + "\\" + name + "' WHERE id='" + id + "'");
          pstm.execute();
         } catch (SQLException e) {
         } finally {
          SQLUtil.close(pstm, con);
         }
        }
        break;
       case BOOKMARK_SAVE:// 22
        readC();// 2 더미? 정렬?
        int num;
        pc.normalbookmark_list.clear();
        pc.speedbookmark_list.clear();
        int size2 = pc.getBookMarkSize();
        for (int i = 0; i < size2; i++) {
         num = readC();
         pc.normalbookmark_list.add(num);
        }
        for (int i = 0; i < 127 - size2; i++) {
         num = readC();
         if (num != 0xff)
          pc.speedbookmark_list.add(num);
         else
          break;
        }
        break;
       case BOOKMARK_LOADING_SAVE:
        if (pc.getBookMarkSize() == 0) {
         pc.sendPackets(new S_ServerMessage(2963));// 기억 저장 구슬: 저장 불가(기억 장소 목록이 없음)
        } else {
         int citemid = readD();
         L1ItemInstance SaveMarble = pc.getInventory().getItem(citemid);
         pc.getInventory().removeItem(SaveMarble);
         createNewItem(pc, pc.getId());
         pc.sendPackets(new S_ServerMessage(2920));// 기억 저장 구슬: 기억 장소 목록 저장 완료
        }

     

     private void createNewItem(L1PcInstance pc, int i) {
      L1ItemInstance item = ItemTable.getInstance().createItem(7475);
      item.setCount(1);
      item.set_durability(i);
      item.setIdentified(true);
      if (item != null && pc != null) {
       if (pc.getInventory().checkAddItem(item, 1) == L1Inventory.OK) {
        pc.getInventory().storeItem(item);
        pc.getInventory().updateItem(item, L1PcInventory.COL_DURABILITY);
       } else {

        world.getInventory(pc.getX(), pc.getY(), pc.getMapId()).storeItem(item);
       }
       pc.sendPackets(new S_ServerMessage(403, item.getLogName()));
      }
     }

     

    실렉트케릭터.자바

    items(pc);//검색 후 추가
       pc.sendPackets(new S_BookmarkLoad(pc));

    기존 북마크 관련은 삭제합니다.

     

    에스_북마크로드.자바

    요건 통으로 올렸으니 추가하세요

    package l1j.server.server.serverpackets;

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

    import l1j.server.L1DatabaseFactory;
    import l1j.server.server.Opcodes;
    import l1j.server.server.model.Instance.L1PcInstance;
    import l1j.server.server.templates.L1BookMark;
    import l1j.server.server.utils.SQLUtil;

    public class S_BookmarkLoad extends ServerBasePacket {
     private static final String S_BookmarkLoad = "[S] S_BookmarkLoad";
     private byte[] _byte = null;
     
     public S_BookmarkLoad(L1PcInstance pc) {
      buildPacket(pc);
     }
     
     private void  buildPacket(L1PcInstance pc) {
      writeC(Opcodes.S_OPCODE_BOOKMARK_LOAD);
      writeC(0x2a);
      writeH(0x80);// 최대기억가능갯수 128
      writeC(0x02);// 0: 정렬? 1: 정렬?
      Connection con = null;
      PreparedStatement pstm = null;
      PreparedStatement pstm2 = null;
      PreparedStatement pstm3 = null;
      ResultSet rs = null;
      ResultSet rs2 = null;
      ResultSet rs3 = null;
      L1BookMark bookmark = null;
      try {
       con = L1DatabaseFactory.getInstance().getConnection();
       pstm = con.prepareStatement("SELECT * FROM character_teleport WHERE char_id='" + pc.getId() + "' ORDER BY num ASC");
       rs = pstm.executeQuery();
       while (rs.next()) {
        bookmark = new L1BookMark();
        bookmark.setId(rs.getInt("id"));
        bookmark.setCharId(rs.getInt("char_id"));
        bookmark.setName(rs.getString("name"));
        bookmark.setLocX(rs.getInt("locx"));
        bookmark.setLocY(rs.getInt("locy"));
        bookmark.setMapId(rs.getShort("mapid"));
        bookmark.setRandomX(rs.getShort("randomX"));
        bookmark.setRandomY(rs.getShort("randomY"));
        bookmark.setSpeed(rs.getInt("speed"));
        bookmark.setNumber(rs.getInt("num"));
        pc.addBookMark(bookmark);
       }
       pstm2 = con.prepareStatement("SELECT num FROM character_teleport WHERE speed > -1 ORDER BY speed ASC");
       rs2 = pstm2.executeQuery();
       while (rs2.next()) {
        pc.speedbookmark_list.add(rs2.getInt("num"));
       }
       int size = pc.getBookMarkSize();
       int speedsize = pc.speedbookmark_list.size();
       int los = 127 - speedsize - size;
       for (int i = 0; i < size; i++)
        writeC(i);
       for (int i = 0; i < speedsize; i++)
        writeC(pc.speedbookmark_list.get(i));
       for (int i = 0; i < los; i++)
        writeC(0xff);
       writeH(pc.getMark_count());// 현재기억가능갯수
       writeH(size);// 현재기억갯수
       pstm3 = con.prepareStatement("SELECT id, name, locx, locy, mapid FROM character_teleport WHERE char_id='" + pc.getId()
         + "' ORDER BY num ASC");
       rs3 = pstm3.executeQuery();
       while (rs3.next()) {
        writeD(rs3.getInt("id"));
        writeS(rs3.getString("name"));
        writeH(rs3.getShort("mapid"));
        writeH(rs3.getInt("locx"));
        writeH(rs3.getInt("locy"));
       }
      } catch (SQLException e) {
      } finally {
       bookmark = null;
       SQLUtil.close(rs, pstm, con);
       SQLUtil.close(rs2, pstm2); // 요런거 에러는 rs2, pstm2 따로 따로 해주세요..
       SQLUtil.close(rs3, pstm3);//SQLUtil.close(rs2); SQLUtil.close(pstm2); 이런식으로



     @Override
     public byte[] getContent() {
      if (_byte == null) {
       _byte = getBytes();
      }
      return _byte;
     }

     public String getType() {
      return S_BookmarkLoad;
     }
    }

     

    리니지클라이언트.자바

    리니지퀵게임맨 메서드 안 맨 아래추가

    if (pc.getBookMarkSize() > 0) {
        int numcount = 0;
        Connection con = null;
        PreparedStatement pstm = null;
        PreparedStatement pstm2 = null;
        PreparedStatement pstm3 = null;
        ResultSet rs = null;
        try {
         con = L1DatabaseFactory.getInstance().getConnection();
         pstm = con.prepareStatement("SELECT id FROM character_teleport WHERE char_id='" + pc.getId() + "' ORDER BY num ASC");
         rs = pstm.executeQuery();
         pstm2 = con.prepareStatement("UPDATE character_teleport SET speed=-1, num=? WHERE id=?");
         while (rs.next()) {
          pstm2.setInt(1, pc.normalbookmark_list.get(numcount));
          pstm2.setInt(2, rs.getInt("id"));
          pstm2.execute();
          numcount++;
         }
         if (pc.speedbookmark_list.size() > 0) {
          for (int i = 0; i < pc.speedbookmark_list.size(); i++) {
           pstm3 = con.prepareStatement("UPDATE character_teleport SET speed='" + i + "' WHERE char_id='" + pc.getId()
             + "' AND num='" + pc.speedbookmark_list.get(i) + "'");
           pstm3.execute();
          }
         }
        } catch (SQLException e) {
        } finally {
         SQLUtil.close(rs, pstm, con);
         SQLUtil.close(pstm2);
         SQLUtil.close(pstm3);
        }
       }

     

     

    피씨인스턴스.자바

    public FastTable<Integer> speedbookmark_list = new FastTable<Integer>();
     public FastTable<Integer> normalbookmark_list = new FastTable<Integer>();

    private int _markcount;

     public void setMark_count(int i) {
      _markcount = i;
     }

     public int getMark_count() {
      return _markcount;
     }

     private int _markcount;

     public void setMark_count(int i) {
      _markcount = i;
     }

     public int getMark_count() {
      return _markcount;
     }

     

    아이템유즈.자바

    case 7475:// 기억의 구슬
          LoadBookmark(pc, useItem.get_durability());
          pc.getInventory().removeItem(useItem, 1);
          break;
         case 7476:// 희미한 기억의 구슬
          LoadBookmark(pc, 0);
          pc.getInventory().removeItem(useItem, 1);
          break;
         case 7477:// 신비한 기억의 구슬
          LoadBookmark(pc, 1);
          pc.getInventory().removeItem(useItem, 1);
          break;
         case 7474:// 기억 확장 구슬
          if (pc.getMark_count() < 100) {
           int booksize = pc.getMark_count() + 10;
           pc.setMark_count(booksize);
           pc.sendPackets(new S_PacketBox(S_PacketBox.BOOKMARK_SIZE_PLUS_10, booksize));
           pc.getInventory().removeItem(useItem, 1);
           pc.save();
          } else {
           pc.sendPackets(new S_ServerMessage(2930));
          }
          break;

    private void LoadBookmark(L1PcInstance pc, int i) {
      Connection con = null;
      PreparedStatement pstm = null;
      PreparedStatement pstm2 = null;
      ResultSet rs = null;
      int x;
      int y;
      short mapid;
      String name;
      int count = 0;
      int markcount = pc.getMark_count();
      try {
       con = L1DatabaseFactory.getInstance().getConnection();
       pstm = con.prepareStatement("SELECT name, locx, locy, mapid FROM character_teleport WHERE char_id='" + i + "' ORDER BY num ASC");
       rs = pstm.executeQuery();
       while (rs.next()) {
        count++;
        name = rs.getString("name");
        mapid = rs.getShort("mapid");
        x = rs.getInt("locx");
        y = rs.getInt("locy");
        L1BookMark bookmark = new L1BookMark();
        bookmark.setId(ObjectIdFactory.getInstance().nextId());
        bookmark.setCharId(pc.getId());
        bookmark.setName(name);
        bookmark.setLocX(x);
        bookmark.setLocY(y);
        bookmark.setMapId(mapid);
        pstm = con.prepareStatement("INSERT INTO character_teleport SET id=?, char_id=?, name=?, locx=?, locy=?, mapid=?");
        pstm.setInt(1, bookmark.getId());
        pstm.setInt(2, bookmark.getCharId());
        pstm.setString(3, bookmark.getName());
        pstm.setInt(4, bookmark.getLocX());
        pstm.setInt(5, bookmark.getLocY());
        pstm.setInt(6, bookmark.getMapId());
        pstm.execute();
        pc.addBookMark(bookmark);
        pc.sendPackets(new S_Bookmarks(name, mapid, x, y, bookmark.getId()));
        if (count == markcount)
         break;
       }
      } catch (SQLException e) {
      } finally {
       SQLUtil.close(rs, pstm, con);
       SQLUtil.close(pstm2);
      }
     }

     

    에스패킷박스.자바

    public static final int BOOKMARK_SIZE_PLUS_10 = 141;// 기억 확장

    public S_PacketBox(int subCode, int value) {//검색 후 그 줄 아무곳에 추가

      case BOOKMARK_SIZE_PLUS_10:
       writeC(value);
       break;

     

    씨유즈스킬.자바

    case TELEPORT:
         case MASS_TELEPORT://검색 후 두줄 주석후 추가
          //readH();
          // targetId = readD();
          targetId = readH();
          targetX = readH();
          targetY = readH();
          break;

     

     

    스킬유즈.자바

     private short _bookmark_mapid = 0;
     private int _bookmark_x = 0;
     private int _bookmark_y = 0;

    checkUseSkill 안에

    if (_skillId == TELEPORT || _skillId == MASS_TELEPORT) {//검색 후 수정 
       _bookmark_mapid = (short) target_id;
       _bookmark_x = x;
       _bookmark_y = y;
      }

     

    case TELEPORT:
         case MASS_TELEPORT: {//검색 후 비교 or 통으로 교체
          L1PcInstance pc = (L1PcInstance) cha;
          RandomGenerator random = RandomGeneratorFactory.getSharedRandom();
          if (_bookmark_x != 0) {
           if (pc.getMap().isEscapable() || pc.isGm()) {
            L1Map map = L1WorldMap.getInstance().getMap(_bookmark_mapid);
            if (_skillId == MASS_TELEPORT) {
             for (L1PcInstance member : world.getVisiblePlayer(pc, 3)) {
              if (pc.getClanid() != 0 && member.getClanid() == pc.getClanid() && member.getId() != pc.getId()
                && !member.isPrivateShop()) {
               int newX2 = _bookmark_x + random.nextInt(3) + 1;
               int newY2 = _bookmark_x + random.nextInt(3) + 1;
               if (map.isInMap(newX2, newY2) && map.isPassable(newX2, newY2)) {
                L1Teleport.teleport(member, newX2, newY2, _bookmark_mapid, member.getMoveState().getHeading(), true);
               } else {
                L1Teleport.teleport(member, _bookmark_x, _bookmark_y, _bookmark_mapid, member.getMoveState()
                  .getHeading(), true);
               }
              }
             }
            }
            if (pc.getInventory().checkItem(20288)) {
             L1Teleport.teleport(pc, _bookmark_x, _bookmark_y, _bookmark_mapid, pc.getMoveState().getHeading(), true);
            } else {
             int newX2 = _bookmark_x + random.nextInt(15);
             int newY2 = _bookmark_y + random.nextInt(15);
             if (map.isInMap(newX2, newY2) && map.isPassable(newX2, newY2)) {
              L1Teleport.teleport(pc, newX2, newY2, _bookmark_mapid, pc.getMoveState().getHeading(), true);
             } else {
              L1Teleport.teleport(pc, _bookmark_x, _bookmark_y, _bookmark_mapid, pc.getMoveState().getHeading(), true);
             }
            }
           } else {
            pc.sendPackets(new S_Paralysis(S_Paralysis.TYPE_TELEPORT_UNLOCK, false));
            pc.sendPackets(new S_ServerMessage(79));
           }
          } else {
           if (pc.getMap().isTeleportable() || pc.isGm()) {
            L1Location newLocation = pc.getLocation().randomLocation(200, true);
            int newX = newLocation.getX();
            int newY = newLocation.getY();
            short mapId = (short) newLocation.getMapId();
            L1Map map = L1WorldMap.getInstance().getMap(mapId);
            if (_skillId == MASS_TELEPORT) {
             for (L1PcInstance member : world.getVisiblePlayer(pc, 3)) {
              if (pc.getClanid() != 0 && member.getClanid() == pc.getClanid() && member.getId() != pc.getId()
                && !member.isPrivateShop()) {
               int newX2 = newX + random.nextInt(3) + 1;
               int newY2 = newY + random.nextInt(3) + 1;
               if (map.isInMap(newX2, newY2) && map.isPassable(newX2, newY2)) {
                L1Teleport.teleport(member, newX2, newY2, mapId, member.getMoveState().getHeading(), true);
               } else {
                L1Teleport.teleport(member, newX, newY, mapId, member.getMoveState().getHeading(), true);
               }
              }
             }
            }
            L1Teleport.teleport(pc, newX, newY, mapId, pc.getMoveState().getHeading(), true);
           } else {
            pc.sendPackets(new S_Paralysis(S_Paralysis.TYPE_TELEPORT_UNLOCK, false));
            pc.sendPackets(new S_ServerMessage(276));
           }
          }
         }

     

    텔레포트스크롤.자바

    case 40086:
       case 40099:
       case 40100:
       case 140100://검색 후 비교 or 통으로 교체
        short bookmark_mapid = (short) packet.readH();
        int bookmark_x = packet.readH();
        int bookmark_y = packet.readH();
        if (bookmark_x != 0) {
         if (pc.getMap().isEscapable() || pc.isGm()) {
          if (itemId == 40086) {
           for (L1PcInstance member : world.getVisiblePlayer(pc)) {
            if (pc.getLocation().getTileLineDistance(member.getLocation()) <= 3 && member.getClanid() == pc.getClanid()
              && pc.getClanid() != 0 && member.getId() != pc.getId() && !member.isPrivateShop()) {
             L1Teleport.teleport(member, bookmark_x, bookmark_y, bookmark_mapid, member.getMoveState().getHeading(), true);
            }
           }
          }
          L1Teleport.teleport(pc, bookmark_x, bookmark_y, bookmark_mapid, 5, true);
          pc.getInventory().removeItem(useItem, 1);
         } else {
          pc.sendPackets(new S_Paralysis(S_Paralysis.TYPE_TELEPORT_UNLOCK, false));
          pc.sendPackets(new S_ServerMessage(79));
         }
        } else {
         if (pc.getMap().isTeleportable() || pc.isGm()) {
          L1Location newLocation = pc.getLocation().randomLocation(200, true);
          int newX = newLocation.getX();
          int newY = newLocation.getY();
          short mapId = (short) newLocation.getMapId();
          if (itemId == 40086) {
           for (L1PcInstance member : world.getVisiblePlayer(pc)) {
            if (pc.getLocation().getTileLineDistance(member.getLocation()) <= 3 && member.getClanid() == pc.getClanid()
              && pc.getClanid() != 0 && member.getId() != pc.getId() && !member.isPrivateShop()) {
             L1Teleport.teleport(member, newX, newY, mapId, member.getMoveState().getHeading(), true);
            }
           }
          }
          L1Teleport.teleport(pc, newX, newY, mapId, 5, true);
          pc.getInventory().removeItem(useItem, 1);
         } else {
          pc.sendPackets(new S_Paralysis(S_Paralysis.TYPE_TELEPORT_UNLOCK, false));
          pc.sendPackets(new S_ServerMessage(276));
         }
        }
        break;

     

    씨딜리트북마크.자바

    public C_DeleteBookmark(byte[] decrypt, LineageClient client) {{//검색 후 비교 or 통으로 교체
      super(decrypt);
      try {
       L1PcInstance pc = client.getActiveChar();
       if (pc == null)
        return;
       String bookmarkname = readS();
       if (!bookmarkname.isEmpty())
        L1BookMark.deleteBookmark(pc, bookmarkname);
      } catch (Exception e) {
      } finally {
       finish();
      }
     }

     

    엘원북마크.자바

    public static void deleteBookmark(L1PcInstance player, String s) {//검색 후 비교 or 통으로 교체
      L1BookMark book = player.getBookMark(s);
      if (book != null) {
       Connection con = null;
       PreparedStatement pstm = null;
       try {
        con = L1DatabaseFactory.getInstance().getConnection();
        pstm = con.prepareStatement("DELETE FROM character_teleport WHERE name=? AND char_id=?");
        pstm.setString(1, book.getName());
        pstm.setInt(2, player.getId());
        pstm.execute();
        player.removeBookMark(book);
       } catch (SQLException e) {
        _log.log(Level.SEVERE, "북마크의 삭제로 에러가 발생했습니다.", e);
       } finally {
        SQLUtil.close(pstm, con);
       }
      }
     }

     

     public static void addBookmark(L1PcInstance pc, String s) {//검색 후 비교 or 통으로 교체
      if (!pc.getMap().isMarkable() && !pc.isGm()) {
       pc.sendPackets(new S_ServerMessage(214));
       return;
      }
      if (pc.getBookMarkSize() >= pc.getMark_count()) {
       if (pc.getMark_count() == 100) {
        pc.sendPackets(new S_ServerMessage(2930));// 기억: 기억창은 최대 100개까지 확장 가능
        return;
       } else {
        pc.sendPackets(new S_ServerMessage(676));// 기억: 기억창 포화 상태(/파워북 기억확장구슬)
        return;
       }
      }
      if (pc.getBookMark(s) == null) {
       L1BookMark bookmark = new L1BookMark();
       bookmark.setId(ObjectIdFactory.getInstance().nextId());
       bookmark.setCharId(pc.getId());
       bookmark.setName(s);
       bookmark.setLocX(pc.getX());
       bookmark.setLocY(pc.getY());
       bookmark.setMapId(pc.getMapId());
       Connection con = null;
       PreparedStatement pstm = null;
       try {
        con = L1DatabaseFactory.getInstance().getConnection();
        pstm = con.prepareStatement("INSERT INTO character_teleport SET id=?, char_id=?, name=?, locx=?, locy=?, mapid=?");
        pstm.setInt(1, bookmark.getId());
        pstm.setInt(2, bookmark.getCharId());
        pstm.setString(3, bookmark.getName());
        pstm.setInt(4, bookmark.getLocX());
        pstm.setInt(5, bookmark.getLocY());
        pstm.setInt(6, bookmark.getMapId());
        pstm.execute();
       } catch (SQLException e) {
        _log.log(Level.SEVERE, "북마크의 추가로 에러가 발생했습니다.", e);
       } finally {
        SQLUtil.close(pstm, con);
       }
       pc.addBookMark(bookmark);
       pc.sendPackets(new S_Bookmarks(s, bookmark.getMapId(), bookmark.getLocX(), bookmark.getLocY(), bookmark.getId()));
      } else {
       pc.sendPackets(new S_ServerMessage(1655));// 같은 기억명으로 저장할 수 없습니다.
      }
     }

     private int _speed;
     private int _number;

     public int getSpeed() {
      return _speed;
     }

     public void setSpeed(int i) {
      _speed = i;
     }

     public int getNumber() {
      return _number;
     }

     public void setNumber(int i) {
      _number = i;
     }

     

    에스_북마크.자바

    public S_Bookmarks(String name, int map, int x, int y, int bookid) {//검색 후 비교 or 통으로 교체
      buildPacket(name, map, x, y, bookid);
     }

     private void buildPacket(String name, int map, int x, int y, int bookid) {//검색 후 비교 or 통으로 교체
      writeC(Opcodes.S_OPCODE_BOOKMARKS);
      writeS(name);
      writeH(map);
      writeH(x);
      writeH(y);
      writeD(bookid);
     }

     

    아이템인스턴스.자바

    public byte[] getStatusBytes() {에

    os.writeC(getItem().getMaterial());
       os.writeD(getWeight());// 요 두줄 검색 후 아래에... 이모양이라 설계를 하나 해야는데 ㅋㅋ

     if (itemId == 7475 && get_durability() > 0) {//잡템이 손상될일 없으니 작업했더니 일이커짐..;;
        Connection con = null;
        PreparedStatement pstm = null;
        ResultSet rs = null;
        String maker = null;
        try {
         con = L1DatabaseFactory.getInstance().getConnection();
         pstm = con.prepareStatement("SELECT char_name FROM characters WHERE objid='" + get_durability() + "'");
         rs = pstm.executeQuery();
         while (rs.next())
          maker = rs.getString("char_name");
        } catch (SQLException e) {
        } finally {
         SQLUtil.close(rs, pstm, con);
        }
        os.writeC(39);
        os.writeS("제작자:" + maker);//패킷을 몰라서.. 누가 좀 긁어다 줘요..
       }

     

    마이에스큐엘케릭터스토리지.자바

    pc.set_Birthday(rs.getInt("Birth"));//검색 후 추가
       pc.setMark_count(rs.getInt("Mark_count"));

    ,Birth=?,Mark_count=? 생일 검색 후 추가

    몇개 있을겁니다.. 다 추가해주세요..

     

    씨_크리에이트뉴케릭터.자바

      pc.calAinHasad(0);//검색 후 추가
      pc.setMark_count(60);

     

    옵코드.자바

    public static final int S_OPCODE_BOOKMARK_LOAD = 48;

     

    트레져박스.xml

      <!-- 기억의 구슬 상자 -->
      <TreasureBox Type="SPECIFIC" ItemId="7478">
      <Item ItemId="7473" Count="1"/>
      <Item ItemId="7477" Count="1"/>
      </TreasureBox>

     

    아이템매이킹.xml

     <!-- 구슬판매상인 쥬비드 -->
     <Action Name="request memory crystal" NpcId="80079">
      <MakeItem>
       <Item Amount="1" ItemId="7474"/>
       <Material Amount="100" ItemId="40490"/>
       <Material Amount="1" ItemId="7479"/>
      </MakeItem>
     </Action>

     

    엔피시.디비

    80079 구슬 판매상^쥬비드 $13349  L1Merchant 6171

    기존 케플리샤를 쥬비드로 수정

    기존 케플리샤 관련 소스는 삭제하시는게..
     

    엔피시액션.디비

    80079 jubead jubead
     

    케릭터.디비

    Mark_count(마크카운트) 추가

     

    샵.디비

    80079 7476 0 345000 0 -1
    80079 7478 1 575000 0 -1
     

    잡템.디비

    7473 케플리샤의 기억 저장 구슬 $13336 other normal glass 0 5194 10485 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 1
    7474 기억 확장 구슬 $13337 other normal glass 0 5193 10484 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 1
    7475 기억의 구슬 $13339 other normal glass 0 5195 10486 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 1
    7476 희미한 기억의 구슬 $13340 other normal glass 0 5196 10487 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 1
    7477 신비한 기억의 구슬 $13341 other normal glass 0 5197 10488 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 1
    7478 기억의 구슬 상자 $13437 treasure_box normal gold 0 2267 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 1
    7479 기억의 파편 $13429 other normal glass 0 2476 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 1
     

    케릭터텔레포트.디비

    280371012 0 \fS[마을] \fT말하는 섬 32580 32931 0 0 0 -1 0
    280890440 0 \fS[마을] \fT글루디오 32611 32790 4 0 0 -1 1
    280890441 0 \fS[마을] \fT기란 33433 32810 4 0 0 -1 2
    280890442 0 \fS[마을] \fT아덴 33966 323253 4 0 0 -1 3
    280890443 0 \fS[마을] \fT켄트 33050 32780 4 0 0 -1 4
    280890444 0 \fS[마을] \fT하이네 33607 33239 4 0 0 -1 5
    280890445 0 \fS[마을] \fT오렌 34061 32276 4 0 0 -1 6
    280890446 0 \fS[마을] \fT은기사 33080 33392 4 0 0 -1 7
    280890447 0 \fS[마을] \fT화전민 32743 32447 4 0 0 -1 8
    280890448 0 \fS[마을] \fT우드벡 32630 33180 4 0 0 -1 9
    280890449 0 \fS[마을] \fT웰던 33705 32504 4 0 0 -1 10
    280890450 0 \fS[마을] \fT침묵의 동굴 32855 32900 304 0 0 -1 11
    280890451 0 \fS[마을] \fT포도밭 32872 32802 4 0 0 -1 12
    280890452 0 \fS[마을] \fT실베리아 32800 32856 1000 0 0 -1 13
    280890453 0 \fS[마을] \fT베히모스 32800 32868 1001 0 0 -1 14
    280890454 0 \fY[명당] 라우풀신전 33136 32241 4 0 0 -1 15
    280890455 0 \fY[명당] 카오틱신전 32881 32652 4 0 0 -1 16
    280890456 0 \fY[명당] 마법수련실 32767 32803 77 0 0 -1 17
    280890457 0 \fR[던전] \fS상아탑 32764 32842 77 0 0 -1 18
    280890458 0 \fR[던전] \fS글루디오 32811 32726 7 0 0 -1 19
    280890459 0 \fR[던전] \fS수련1층 32807 32811 25 0 0 -1 20
    280890460 0 \fR[던전] \fS수련2층 32804 32813 26 0 0 -1 21
    280890461 0 \fR[던전] \fS수련3층 32808 32810 27 0 0 -1 22
    280890462 0 \fR[던전] \fS침공로 32761 32822 307 0 0 -1 23
    280890463 0 \fR[던전] \fS개미굴 32784 32750 43 0 0 -1 24
    280890464 0 \fR[던전] \fS용의 계곡 던전 1층 32740 32777 30 0 0 -1 25
    280890465 0 \fR[던전] \fS용의 계곡 던전 2층 32760 32781 31 0 0 -1 26
    280890466 0 \fR[던전] \fS용의 계곡 던전 3층 32709 32818 32 0 0 -1 27
    280890467 0 \fR[던전] \fS용의 계곡 던전 4층 32669 32869 33 0 0 -1 28
    280890468 0 \fR[던전] \fS지하수로 32678 32790 301 0 0 -1 29
    280890469 0 \fR[던전] \fS에바왕국 32807 32984 253 0 0 -1 30
    280890470 0 \fR[던전] \fS기란 던전 32810 32731 53 0 0 -1 31
    280890471 0 \fR[던전] \fS얼음 수정 동굴 32850 32837 278 0 0 -1 32
    280890472 0 \fR[던전] \fS말하는 섬 던전 32668 32804 1 0 0 -1 33
    280890473 0 \fR[던전] \fS요정 숲 던전 32804 32724 19 0 0 -1 34
    280890474 0 \fY[필드] \fW용의 계곡 용뼈 33392 32333 4 0 0 -1 35
    280890475 0 \fY[필드] \fW용의 계곡 아래 뼈 33265 32392 4 0 0 -1 36
    280890476 0 \fY[필드] \fW황혼의 산맥 34278 33245 4 0 0 -1 37
    280890477 0 \fY[필드] \fW잊혀진 섬 선착장 32936 33049 70 0 0 -1 38
    280890478 0 \fY[필드] \fW해적섬 32424 33069 440 0 0 -1 39
    280890479 0 \fY[필드] \fW그림자 신전 32676 32960 521 0 0 -1 40
    280890480 0 \fY[필드] \fW욕망의 동굴 32757 32794 600 0 0 -1 41
    280890481 0 \fY[필드] \fW몽환의 섬 32633 32817 303 0 0 -1 42
    280890482 0 \fY[필드] \fW오아시스 32858 33252 4 0 0 -1 43
    281288723 1 \fV[신비] \fW얼음 호수 중앙 34001 32332 4 0 0 -1 0
    281288724 1 \fV[신비] \fW얼음 호수 외각 33978 32326 4 0 0 -1 1
    281288725 1 \fV[신비] \fW얼음 절벽 34162 32188 4 0 0 -1 2
    281288726 1 \fV[신비] \fW아덴 작은 배 34207 33224 4 0 0 -1 3
    281288727 1 \fV[신비] \fW하이네 경계탑 33625 33509 4 0 0 -1 4
    281288728 1 \fV[신비] \fW용의 계곡 절벽 33414 32412 4 0 0 -1 5
    281288729 1 \fV[신비] \fW숨겨진 거북이 섬 33505 33202 4 0 0 -1 6
    281288730 1 \fV[신비] \fW정신과 시간의 섬 33505 33202 4 0 0 -1 7

    희미한,신비한 구슬 좌표는  임의로 넣은겁니다..

     

    출처 : 린프리

    이 게시물을..
    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 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