• SEARCH

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

      • 박인성
      • 2017.02.01 - 10:40 73

    handler.channel.AuctionHandler.java 파일을 생성해주세요

     


     내용을 아래와같이 변경해주세요

     

     

    package handler.channel;
    import client.MapleClient;
    import client.items.IItem;
    import client.items.Item;
    import client.items.MapleInventoryType;
    import launch.world.WorldCommunity;
    import server.items.AuctionItemPackage;
    import server.items.InventoryManipulator;
    import packet.transfer.write.WritingPacket;
    import packet.transfer.read.ReadingMaple;
    import packet.creators.AuctionPacket;


    public class AuctionHandler {
         public static final void Handle(final ReadingMaple slea, final MapleClient c) {
           byte op = slea.readByte();
            switch (op) {
                case 0: { //오픈
                    c.getSession().write(AuctionPacket.AuctionOn());
                    c.getSession().write(AuctionPacket.showItemList(WorldCommunity.Auction.getItems(), false));
                    break;
                }
                case 1: {
                    final boolean isbargain = slea.readInt() > 0;
                    final int itemid = slea.readInt();
                    final int quantity = slea.readInt();
                    final long bid = slea.readLong();
                    final long meso = slea.readLong();
                    final int time = slea.readInt();
                    final byte inv = slea.readByte();
                    final short slot = slea.readShort();
                    IItem item = c.getPlayer().getInventory(MapleInventoryType.getByType(inv)).getItem(slot);
                    Item copyItem;
                    if (item == null || item.getItemId() != itemid || item.getQuantity() < quantity || c.getPlayer().getMeso() < 2000) {
                        c.getPlayer().dropMessage(1, "오류가 발생했습니다.");
                        return;
                    }
                    copyItem = (Item) item.copy();
                    copyItem.setQuantity((short) quantity);
                    AuctionItemPackage aitem = new AuctionItemPackage(c.getPlayer().getId(), c.getPlayer().getName(), copyItem, bid, meso, System.currentTimeMillis() + (time * 60 * 60 * 1000), isbargain, 0, 0, System.currentTimeMillis(), 0);
                    WorldCommunity.Auction.addItem(aitem);
                    c.getSession().write(AuctionPacket.AuctionMessage((byte) 1, (byte) 0));
                    c.getSession().write(AuctionPacket.AuctionSell(aitem));
                    InventoryManipulator.removeFromSlot(c, MapleInventoryType.getByType(inv), slot, (short) quantity, false);
                    c.getSession().write(AuctionPacket.showItemList(WorldCommunity.Auction.getItems(), false));
                    break;
                }
                case 2: { //아이템 등록 취소
                    c.getSession().write(AuctionPacket.AuctionMessage((byte) 2, (byte) 0));
                    break;
                }
                case 3: {
                    final int id = slea.readInt();
                    final long meso = slea.readLong();
                    AuctionItemPackage item = WorldCommunity.Auction.findByIid(id);
                    if (item == null || c.getPlayer().getMeso() < meso) {
                        c.getPlayer().dropMessage(1, "오류가 발생했습니다.");
                        return;
                    }
                    item.setBuyer(c.getPlayer().getId());
                    item.setBuyTime(System.currentTimeMillis());
                    item.setType(2);
                    c.getSession().write(AuctionPacket.showCompleteItemList(WorldCommunity.Auction.getCompleteItems(c.getPlayer().getId()), c.getPlayer().getName(), c.getPlayer().getId()));
                    c.getSession().write(AuctionPacket.AuctionMessage((byte) 3, (byte) 0));
                    c.getSession().write(AuctionPacket.AuctionBuy(item, meso, 2));
                    break;
                }
                case 4: {
                    final int id = slea.readInt();
                    final int type = slea.readInt();
                    //1 = 입찰금 반환, 2 = 물품 수령, 3 = 대금 수령, 4 = 물품 반환 (미판매) , 5 = 입찰금 반환 (차액 발생) , 6 = 수령 완료(상회입찰), 7 = 수령 완료(낙찰), 8 = 수령 완료 (판매 완료), 9 = 수령 완료 (미판매), 10 = 수령 완료 (차액 발생)
                    final long meso = slea.readLong();
                    AuctionItemPackage item = WorldCommunity.Auction.findByIid(id);
                    if (item == null || c.getPlayer().getMeso() < meso) {
                        c.getPlayer().dropMessage(1, "오류가 발생했습니다.");
                        return;
                    }
                    item.setBuyer(c.getPlayer().getId());
                    item.setBuyTime(System.currentTimeMillis());
                    item.setType(type == 2 ? 8 : 0);
                    c.getSession().write(AuctionPacket.showCompleteItemList(WorldCommunity.Auction.getCompleteItems(c.getPlayer().getId()), c.getPlayer().getName(), c.getPlayer().getId()));
                    c.getSession().write(AuctionPacket.AuctionMessage((byte) 5, (byte) 0));
                    c.getSession().write(AuctionPacket.AuctionBuy(item, meso, 2));
                     break;
                }
                case 5: {
                    final int id = slea.readInt();
                    final long meso = slea.readLong();
                    AuctionItemPackage item = WorldCommunity.Auction.findByIid(id);
                    if (item == null || c.getPlayer().getMeso() < meso) {
                        c.getPlayer().dropMessage(1, "오류가 발생했습니다.");
                        return;
                    }
                    item.setBuyer(999999);
                    item.setBuyTime(System.currentTimeMillis());
                    item.setType(0);
                    WorldCommunity.Auction.addAuction(c.getPlayer().getId(), meso, id, (byte) 0);
                    c.getSession().write(AuctionPacket.showCompleteItemList(WorldCommunity.Auction.getCompleteItems(c.getPlayer().getId()), c.getPlayer().getName(), c.getPlayer().getId()));
                    c.getSession().write(AuctionPacket.AuctionMessage((byte) 4, (byte) 0));
                    c.getSession().write(AuctionPacket.AuctionBuy(item, meso, 1));
                    break;
                }
                case 6: {
                   final int id = slea.readInt();
                    final int status = slea.readInt();
                    //0 = 입찰,  1 = 입찰금 반환, 2 = 물품 수령, 3 = 대금 수령, 4 = 물품 반환 (미판매) , 5 = 입찰금 반환 (차액 발생) , 6 = 수령 완료(상회입찰), 7 = 수령 완료(낙찰), 8 = 수령 완료 (판매 완료), 9 = 수령 완료 (미판매), 10 = 수령 완료 (차액 발생)
                     final long meso = slea.readLong();
                    AuctionItemPackage item = WorldCommunity.Auction.findByIid(id);
                    if (item == null) {
                        c.getPlayer().dropMessage(1, "오류가 발생했습니다.");
                        return;
                    }
                    if (status == 1) {
                        c.getPlayer().gainMeso(WorldCommunity.Auction.getBidById(c.getPlayer().getId(), id), true);
                    } else if (status == 3) {
                        c.getPlayer().gainMeso(item.getBid(), true);
                    } else if (status == 2 || status == 4) {
                        InventoryManipulator.addbyItem(c, item.getItem());
                    }
                     boolean isOnwer = c.getPlayer().getId() == item.getOwnerId();
                    if (status != 1) {
                        item.setType(status == 2 ? (item.getType(isOnwer, true) == 18 ? 27 : 17) : status == 3 ? (item.getType(isOnwer, true) == 17 ? 28 : 18) : status == 4 ? 9 : 0);
                    }
                    c.getSession().write(AuctionPacket.showCompleteItemList(WorldCommunity.Auction.getCompleteItems(c.getPlayer().getId()), c.getPlayer().getName(), c.getPlayer().getId()));
                    c.getSession().write(AuctionPacket.AuctionMessage((byte) 6, (byte) 0));
                    c.getSession().write(AuctionPacket.AuctionBuy(item, meso, status == 1 ? 7 : 8));
                    break;
                }
                case 7: { //검색
                    c.getSession().write(AuctionPacket.showItemList(WorldCommunity.Auction.getItems(), true));
                    break;
                }
                case 8: { //경매장 업데이트
                    c.getSession().write(AuctionPacket.AuctionOn());
                    break;
                }
                case 9: {
                    c.getSession().write(AuctionPacket.showCompleteItemList(WorldCommunity.Auction.getCompleteItems(c.getPlayer().getId()), c.getPlayer().getName(), c.getPlayer().getId()));
                    break;
                }
                case 10: { //대량구매
                    break;
                }
                case 11: { //흥정
                    final int id = slea.readInt();
                    final long meso = slea.readLong();
                    final String bargaining = slea.readMapleAsciiString();
                    AuctionItemPackage item = WorldCommunity.Auction.findByIid(id);
                    if (item == null || c.getPlayer().getMeso() < meso) {
                        c.getPlayer().dropMessage(1, "오류가 발생했습니다.");
                        return;
                    }
                    c.getSession().write(AuctionPacket.AuctionBargaining(item, meso, bargaining));
                    break;
                }
                default: {
                    System.out.println("Unhandled 경매 action by " + c.getPlayer().getName() + " : " + op + ", " + slea.toString());
                    break;
                }
            }
        }
    }

     

     

     launch - world - WorldCommunity.java 을 열어주세요

     


    아래 소스내용을 추가해주세요
        public static class Auction {
             static List<AuctionItemPackage> items = new ArrayList<>();
            static Map<Integer, List<AuctionInfo>> auctions = new HashMap<>();
             public static void addAuction(final int cid, final long bid, final int iid, final byte status) {
                if (auctions.get(iid) == null) {
                    auctions.put(iid, new ArrayList<AuctionInfo>());
                } boolean isBest = true, isExist = false;
                for (AuctionInfo ai : auctions.get(iid)) {
                    if (ai.getCharacterId() == cid) {
                        isExist = true;
                        auctions.get(iid).set(auctions.get(iid).indexOf(ai), new AuctionInfo(bid, cid, status));
                    }                if (bid < ai.getBid()) {
                        isBest = false;
                    }
                }
                if (!isExist) {
                    auctions.get(iid).add(new AuctionInfo(bid, cid, status));
                }
                if (isBest) {
                    findByIid(iid).setBid(bid);
                }
            }
             public static long getBidById(final int cid, final int iid) {
                long bid = 0;
                for (AuctionInfo ai : auctions.get(iid)) {
                    if (ai.getCharacterId() == cid && ai.getBid() >= bid) {
                        bid = ai.getBid();
                    }
                }
                return bid;
            }
             public static List<AuctionItemPackage> getItems() {
                List<AuctionItemPackage> items_ = new ArrayList<>();
                for (AuctionItemPackage aitem : items) {
                    System.out.println("아이템" + aitem.getItem().getInventoryId());
                    if (aitem.getBuyer() == 999999 || aitem.getBuyer() == 0) {
                        items_.add(aitem);
                    }
                }
                return items_;
            }
             public static List<AuctionItemPackage> getCompleteItems(final int charid) {
                List<AuctionItemPackage> items_ = new ArrayList<>();
                for (AuctionItemPackage aitem : items) {
                    if (aitem.getOwnerId() == charid || aitem.getBuyer() == charid || getBidById(charid, (int) aitem.getItem().getInventoryId()) > 0) {
                        items_.add(aitem);
                    }
                }
                return items_;
            }
             public static final void addItem(final AuctionItemPackage aitem) {
                aitem.getItem().setInventoryId(items.size() + 1);
                items.add(aitem);
            }
             public static final AuctionItemPackage findByIid(final int id) {
                for (AuctionItemPackage item : items) {
                    if (item.getItem().getInventoryId() == id) {
                        return item;
                    }
                }
                return null;
            }
            }
        }
     
     
     server - items - AuctionItemPackage.java 파일을생성해주세요

     생성후 내용을 아래와 같이 바꿔주세요

    package server.items;
    import client.items.Item;

    public class AuctionItemPackage {
            private long expiredTime, buyTime, startTime;
            private long bid = 0, mesos = 0;
            private Item item;
            private boolean bargain;
            private int ownerid, buyer, type;
            private String ownername;
                    public AuctionItemPackage(final int ownerid, final String ownername, final Item item, final long bid, final long mesos, final long expiredTime, final boolean bargain, final int buyer, final long buyTime, final long startTime, final int type) {
                this.ownerid = ownerid;
                this.ownername = ownername;
                this.item = item;
                this.bid = bid;
                this.mesos = mesos;
                this.expiredTime = expiredTime;
                this.bargain = bargain;
                this.buyer = buyer;
                this.buyTime = buyTime;
                this.startTime = startTime;
                this.type = type;
            }
                    public int getOwnerId() {
                return ownerid;
            }
                    public String getOwnerName() {
                return ownername;
            }
                    public void setExpiredTime(long expiredTime) {
                this.expiredTime = expiredTime;
            }
             public long getExpiredTime() {
                return expiredTime;
            }
                    public void setBuyTime(long buyTime) {
                this.buyTime = buyTime;
            }
             public long getBuyTime() {
                return buyTime;
            }
                    public void setStartTime(long startTime) {
                this.startTime = startTime;
            }
             public long getStartTime() {
                return startTime;
            }
                    public long getBid() {
                return bid;
            }
             public void setBid(long set) {
                bid = set;
            }
             public long getMesos() {
                return mesos;
            }
             public void setMesos(long set) {
                mesos = set;
            }
                    public Item getItem() {
                return item;
            }
                    public boolean isBargain() {
                return bargain;
            }
                    public int getBuyer() {
                return buyer;
            }
                    public void setBuyer(int buyer) {
                this.buyer = buyer;
            }
                    public int getType(boolean isOwner, boolean isReal) {
                if (isReal)                return type;
                            if (type == 17)                 return isOwner ? 3 : 7;
                            if (type == 27)                 return isOwner ? 8 : 7;
                            if (type == 18)                 return isOwner ? 8 : 2;
                            if (type == 28)                 return isOwner ? 8 : 7;
                            if (type == 2)                  return isOwner ? 3 : 2;
                            if (type == 0)                  return isOwner ? 4 : 0;
                            return type;
            }
                    public void setType(int type) {
                this.type = type;
            }
    }
     

     

     server - items - AuctionInfo.java 을 생성해주세요 아래와 같이 내용을 변경해주세요

     


    package server.items;

    public class AuctionInfo {
            private int  cid;
            private long bid;
            private byte status;
             public AuctionInfo(final long bid, final int cid, final byte status) {
                this.bid = bid;
                this.cid = cid;
                this.status = status;
            }
             public void setBid(final long bid) {
                this.bid = bid;
            }
             public long getBid() {
                return bid;
            }
             public int getCharacterId() {
                return cid;
            }
             public void setStatus(final byte status) {
                this.status = status;
            }
             public byte getStatus() {
                return status;
            }
        }
     

     

     packet - creators - AuctionPacket.java 을 생성해주세요 내용을 하기와 같이 바꿔주세요

     


    package packet.creators;
    import client.items.Item;
    import java.util.List;
    import launch.world.WorldCommunity;
    import packet.opcode.SendPacketOpcode;
    import packet.transfer.write.Packet;
    import packet.transfer.write.WritingMaple;
    import server.items.AuctionItemPackage;
    import tools.HexTool;

    public class AuctionPacket {
         public static Packet AuctionMessage(byte message, byte sub) {
                    WritingMaple mplew = new WritingMaple();
                        /*                    1 : 등록                     0 : 성공 1 : 가격 설정 오류 2 : 아이템 만료 3 : 등록 보증금 부족 4 : 판매 가능 슬롯 부족 5 : 시작 입찰가 > 즉시 구매가                    2 : 취소                    3 : 즉시 구매                    0 : 성공 3 : 자신이 등록한건 X 4: 메소 부족 5 : 슬롯 부족                    4 : 입찰                     0 : 성공  1 : 최고가 실패 2 : 누군가 이미 상회 입찰 3 : 즉시 구매 가격으로 입찰 4 : 자신템의 입찰 불가 5 : 이미 최고 6 : 메소 부족 7 : 미수령 입찰금 8 ; 입찰 금액이 너무 적음(현재 입찰금의 5%이상) 9 : 슬롯 부족                    5 : 구매                     0 : 성공  5 : 돈 부족                    6 : 반환                    0 : 성공 3 : 인벤 부족                    */
                        mplew.writeShort(SendPacketOpcode.AUCTION.getValue());
                       mplew.write(message);
                        mplew.write(sub);
                        return mplew.getPacket();
            }
             public static Packet AuctionOn() {
                WritingMaple mplew = new WritingMaple();
                 mplew.writeShort(SendPacketOpcode.AUCTION.getValue());
                mplew.writeInt(0);
                return mplew.getPacket();
            }
             public static Packet showItemList(List<AuctionItemPackage> items, final boolean isSearch) {
                WritingMaple mplew = new WritingMaple();
                 mplew.writeShort(SendPacketOpcode.AUCTION.getValue());
                mplew.write(7);
                mplew.write(isSearch ? 0 : 1); //0 : 찾기, 1 : 열엇을때
                mplew.writeInt(items.size()); //갯수
                for (AuctionItemPackage aitem : items) {
                    Item item = aitem.getItem();
                    mplew.writeInt(item.getItemId());
                    mplew.writeInt(item.getQuantity()); //갯수
                    addAuctionItemInfo(mplew, aitem);
                }
                if (isSearch) {
                    for (AuctionItemPackage aitem : items) {
                        mplew.writeLong(aitem.getItem().getItemId());//아이템 코드
                    }
                }
                return mplew.getPacket();
            }
             public static Packet showCompleteItemList(List<AuctionItemPackage> items, final String buyername, final int ownerId) {
                WritingMaple mplew = new WritingMaple();
                 mplew.writeShort(SendPacketOpcode.AUCTION.getValue());
                mplew.write(9);
                mplew.writeInt(items.size()); //갯수
                for (AuctionItemPackage aitem : items) {
                    boolean Refund = false;
                    Item item = aitem.getItem();
                    int status = aitem.getType(ownerId == aitem.getOwnerId(), false);
                     mplew.writeInt((int) item.getInventoryId());
                    mplew.write(HexTool.getByteArrayFromHexString("05 0A 2C 05"));
                    mplew.writeInt(aitem.getBuyer());
                    mplew.writeInt(item.getItemId());
                    mplew.writeInt(status); // 1 = 상회입찰 2 = 낙찰 3 = 판매 완료
                    mplew.writeLong(status == 0 ? WorldCommunity.Auction.getBidById(ownerId, (int) item.getInventoryId()) : aitem.getBid()); //자신 입찰가
                    mplew.writeLong(PacketProvider.getTime(aitem.getBuyTime() + (12 * 60 * 60 * 1000)));
                    mplew.writeLong(aitem.getMesos());
                    mplew.writeInt(Refund ? 0 : aitem.getItem().getItemId() / 1000000 == 1 ? 1 : 2); // 1: 장비 , 2 : 소비
                    mplew.writeInt(7);
                     mplew.write(Refund ? 0 : 1);
                    if (!Refund) {
                        addCompleteAuctionItemInfo(mplew, aitem, ownerId, buyername);
                        /*                     mplew.writeInt((int) item.getInventoryId());
                         mplew.write(HexTool.getByteArrayFromHexString("05 0A 2C 05"));
                         mplew.writeInt(aitem.getBuyer());
                         mplew.writeInt(item.getItemId());
                         mplew.writeInt(5);
                          mplew.writeLong(aitem.getMesos());
                         mplew.writeLong(PacketHelper.getTime(aitem.getBuyTime()));
                         mplew.writeLong(0);
                         mplew.writeInt(0); // 1: 장비 , 2 : 소비
                         mplew.writeInt(4);
                         mplew.write(0);*/
                    }
                }
                System.out.println(mplew);
                return mplew.getPacket();
            }
             public static Packet AuctionSell(AuctionItemPackage aitem) {
                WritingMaple mplew = new WritingMaple();
                 mplew.writeShort(SendPacketOpcode.AUCTION.getValue());
                mplew.write(8);
                mplew.writeInt(1); //갯수
                 addAuctionItemInfo(mplew, aitem);
                 return mplew.getPacket();
            }
             public static Packet AuctionBuy(AuctionItemPackage aitem, final long price, final int status) {
                WritingMaple mplew = new WritingMaple();
                 mplew.writeShort(SendPacketOpcode.AUCTION_BUY.getValue());
                /*             Type             0 = 흥정             1 = 상회 입찰             2 = 낙찰             3 = 판매 완료             4 = 판매되지 않았습니다.             7 = 반환             8 = 수령             */
                mplew.write(1); //아마 뭐 구분자일듯 시발 빡쳐
                mplew.writeInt((int) aitem.getItem().getInventoryId());
                mplew.write(HexTool.getByteArrayFromHexString("05 0A 2C 05"));
                mplew.writeInt(aitem.getBuyer());
                mplew.writeInt(aitem.getItem().getItemId());
                mplew.writeInt(status);
                mplew.writeLong(price);
                mplew.writeLong(PacketProvider.getTime(aitem.getBuyTime() + (12 * 60 * 60 * 1000)));
                mplew.writeLong(0);
                mplew.writeInt(status == 2 ? 1 : status == 8 ? 11 : status == 7 ? 2 : 0);
                mplew.writeInt(7);
                System.out.println(mplew);
                return mplew.getPacket();
            }
             public static Packet AuctionBargaining(AuctionItemPackage aitem, long bargainmeso, final String bargainstring) {
                WritingMaple mplew = new WritingMaple();
                 mplew.writeShort(SendPacketOpcode.AUCTION_BUY.getValue());
                mplew.write(0);
                mplew.writeInt(aitem.isBargain() ? 1 : 0);
                mplew.write(HexTool.getByteArrayFromHexString("76 20 C1 00"));
                mplew.write(HexTool.getByteArrayFromHexString("9E 95 7B 05"));
                mplew.write(HexTool.getByteArrayFromHexString("11 88 6D 01"));
                mplew.write(HexTool.getByteArrayFromHexString("FC 11 06 7D"));
                mplew.writeInt(0);
                mplew.writeMapleAsciiString(aitem.getOwnerName());
                mplew.writeLong(bargainmeso);
                mplew.writeMapleAsciiString(bargainstring);
                mplew.writeLong(0);
                mplew.writeInt(-1);
                mplew.write0(5);
                System.out.println(mplew);
                return mplew.getPacket();
            }
             public static Packet addAuctionItemInfo(WritingMaple mplew, AuctionItemPackage aitem) {
                Item item = aitem.getItem();
                 mplew.writeInt((int) item.getInventoryId());
                mplew.writeInt((int) item.getInventoryId());
                mplew.writeInt(aitem.isBargain() ? 1 : 0);
                mplew.write(HexTool.getByteArrayFromHexString("05 95 B5 00"));
                mplew.writeInt(aitem.getOwnerId());
                mplew.writeInt(0);
                mplew.writeInt(aitem.getItem().getItemId() / 1000000 == 1 ? 1 : 2); // 1: 장비 , 2 : 소비
                mplew.writeInt(7);
                mplew.writeAsciiString(aitem.getOwnerName(), 13);
                mplew.writeLong(aitem.getBid());
                mplew.writeLong(-1);
                mplew.writeLong(aitem.getMesos());
                mplew.writeLong(PacketProvider.getTime(aitem.getExpiredTime()));
                mplew.write(HexTool.getByteArrayFromHexString("00 00 00 00 00 FF FF"));
                mplew.writeLong(item.getInventoryId());
                mplew.write(HexTool.getByteArrayFromHexString("60 D5 FF FF FF FF"));
                mplew.writeLong(item.getInventoryId());
                mplew.writeLong(PacketProvider.getTime(aitem.getStartTime()));
                mplew.write(HexTool.getByteArrayFromHexString("D0 07 00 00 00 00 00 00 00 00 00 00"));
                 PacketProvider.addItemInfo(mplew, item, true, true, null);
                 return mplew.getPacket();
            }
             public static Packet addCompleteAuctionItemInfo(WritingMaple mplew, AuctionItemPackage aitem, final int ownerId, final String buyername) {
                Item item = aitem.getItem();
                int status = aitem.getType(ownerId == aitem.getOwnerId(), false);
                 mplew.writeInt((int) item.getInventoryId());
                mplew.writeInt((int) item.getInventoryId());
                mplew.writeInt(aitem.isBargain() ? 1 : 0);
                mplew.write(HexTool.getByteArrayFromHexString("05 95 B5 00"));
                mplew.writeInt(aitem.getOwnerId());
                mplew.writeInt(status == 0 ? 1 : 3); //입찰은 1? 원래는 3
                mplew.writeInt(1);
                mplew.writeInt(7);
                mplew.writeAsciiString(aitem.getOwnerName(), 13);
                mplew.writeLong(aitem.getBid()); //현재 입찰가
                mplew.writeLong(aitem.getBid());
                mplew.writeLong(aitem.getMesos());
                mplew.writeLong(PacketProvider.getTime(aitem.getExpiredTime()));
                mplew.write(HexTool.getByteArrayFromHexString("05 0A 2C 05"));
                mplew.writeAsciiString(buyername, 13);
                mplew.write(HexTool.getByteArrayFromHexString("FF FF FF FF"));
                mplew.writeLong(item.getInventoryId());
                mplew.writeLong(PacketProvider.getTime(aitem.getStartTime()));
                mplew.write(HexTool.getByteArrayFromHexString("D0 07 00 00 00 00 00 00 00 00 00 00"));
                PacketProvider.addItemInfo(mplew, item, true, true, null);
                 return mplew.getPacket();
            }
        }
     

     

     client - items - Item 파일을 열어주세요 아래내용을 추가해주세요

     


    private long inventoryitemid;


    public final long getInventoryId() {
            return inventoryitemid;
        }
         public void setInventoryId(long ui) {
            this.inventoryitemid = ui;
        }

     

     


     
     

     

     src - handler - MapleServerHandler.java 을 열어주세요 추가해주세요

               case AUCTION:
                    AuctionHandler.Handle(rh, c);
                    break; cs

     
     

     

     packet - opcode - SendPacketOpcode.java 을 열어주세요 아래의 내용을 추가해주세요

     


         AUCTION,
        AUCTION_BUY,
     

     

     packet - opcode - RecvPacketOpcode.java 을열어주세요 아래의 내용을 추가해주세요

     AUCTION, cs

     

     

     

     Opcode.ini 을 열어주세요

     


    [send]

    AUCTION=86

    AUCTOIN_BUY=87

     


    [recv]

    AUCTION=123
     

     

     경매장 오픈은 엔피시에 cm.openUI(0xA1); 해주시면됩니다

     

    Attached file
    219경매장.txt 27.1KB 7
    이 게시물을..
    N
    0
    0
    • 1.2.65 아트 소스오빠는요
    • 3
      박인성

    박인성 님의 최근 글

    작성 글이 없습니다.

    박인성 님의 최근 댓글

    작성 댓글이 없습니다.
    글쓴이의 서명작성글 감추기 
    댓글 쓰기 에디터 사용하기 닫기
    • view_headline 목록
    • 14px
    • 1.2.65 아트 소스
    • 목록
      view_headline
    × CLOSE
    기본 (942) 제목 날짜 수정 조회 댓글 추천 비추
    분류 정렬 검색
    • 소스자료는 직접 올려주세요
      2017.06.06 - 16:13 928
    942
    v391 pack
    더기덕이 2025.10.04 - 00:33 206
    941
    127 써니 소스
    전창덕 2025.09.23 - 14:30 43
    940
    1.2.65 서버 ct및 우외 엔진
    마눙 2025.09.08 - 14:47 120
    939
    1.2.362 서버 src 입니
    GV솔그린 2024.03.21 - 20:54 313
    938
    1.2.316 초원팩 jdbc ssl 에러 수정 src
    GV솔그린 2024.03.21 - 19:31 115
    937
    1.2.329 로컬리디 언팩해서 만든 리디렉터
    GV솔그린 2024.03.21 - 19:24 92
    936
    1.2.329 로컬리디
    GV솔그린 2024.03.21 - 19:20 70
    935
    373 멀티로컬
    dreamin공유 2024.02.22 - 05:29 356
    934
    331팩 소스
    스마 2024.02.12 - 20:53 123
    933
    1.2.373 새벽소스
    스마 2024.02.12 - 20:47 243
    932
    373 솟
    garegdas 2024.02.06 - 09:24 121
    931
    스트레딧.
    하리86 2024.01.13 - 03:34 151
    930
    1.2.65 아르카나팩 스킬 변경 src
    김김김스 2023.12.26 - 04:49 948
    929
    316초원팩 src파일입니다
    동동쓰 2023.11.15 - 21:29 295
    928
    gms v111 접속rn
    하리86 2023.10.23 - 18:28 230
    927
    65버전 아르카나 , 죽둥젠 늘린거입니다
    gkxo9570 2023.09.22 - 12:38 542
    926
    65버전에서도 쓴 스크립트 강의모음
    gkxo9570 2023.09.22 - 07:42 460
    925
    1.2.65 화이트스타 src
    kingye 2023.07.04 - 10:56 1146
    924
    1.2.65 아르카나 src
    kingye 2023.07.04 - 07:28 535
    923
    ngs 우회
    우2우2 2023.06.08 - 04:55 277
    922
    몬스터 코드
    VanBan 2022.12.10 - 23:38 552
    921
    직업 코드
    VanBan 2022.12.10 - 23:30 306
    920
    362 자석펫 지급 NPC 스크립트
    나르나르 2022.11.10 - 08:55 854
    919
    0.83 src
    qweqwedq1 2022.07.13 - 15:30 144
    918
    리플렉스95 src
    qweqwedq1 2022.07.13 - 15:08 327
    917
    1.2.65 바콘팩
    dullggae 2021.07.30 - 18:04 730
    916
    316src입니다
    BJK 2021.02.10 - 05:37 218
    915
    331 소스
    라비앙로즈 2021.02.07 - 08:43 441
    914
    슈퍼엔진
    돼지우리 2021.01.14 - 02:20 445
    913
    kms 1.2.1104 ct입니다
    돼지우리 2021.01.12 - 12:07 448
    912
    어빌리티인포테이블.sql
    하리86 2020.12.16 - 00:23 180
    911
    잠재능력 관련 오류 수정 및 본섭화 옵션
    하리86 2020.12.16 - 00:16 358
    910
    sql 수정
    재희0414 2020.11.24 - 03:23 274
    909
    65 천외천 소스
    lIllIlllIllll 2020.10.16 - 06:05 412
    908
    로컬 소스
    피아쨩 2020.09.22 - 13:01 520
    907
    331 노엘팩 소스
    풍선씨 2020.09.09 - 03:33 1228
    906
    1.2.65 화이트스타 소스
    JYH93 2020.08.15 - 00:44 2344
    905
    1.2.65 순클 idb
    nhsnhsn 2020.07.24 - 00:19 875
    904
    331 GM명령어
    흐밍 2020.07.09 - 14:14 1837
    903
    레벨별 메소지급 소스
    능이 2020.07.05 - 21:44 690
    902
    1.2.284 그랜드 접속문제 해결파일
    wls 2020.06.28 - 07:30 240
    901
    대만 메이플스토리 113 아이템코드
    해우김123 2020.06.19 - 07:47 304
    900
    Java SE Development Kit 6 Update 10 - jdk-6u10
    수박씨 2020.05.12 - 21:52 203
    899
    Java SE Development Kit 6 Update 6 - jdk-6u6
    수박씨 2020.05.12 - 21:51 124
    898
    316 추옵 쿼리에서 수정하기
    DanielJSKim 2020.03.08 - 05:03 1440
    897
    316 추가옵션 구현 소스
    DanielJSKim 2020.03.08 - 05:00 1181
    896
    알면 유용한 위젯
    오빠는요 2020.02.25 - 21:06 754
    895
    1.2.65dk
    오빠는요 2020.02.25 - 21:04 481
    894
    1.2.65 아트 소스
    오빠는요 2020.02.25 - 21:02 459
    893
    316 이너 어빌리티 미개방 캐릭터에 강제로 부여하기
    DanielJSKim 2020.02.23 - 02:44 499
    • 1 2 3 4 5 6 7 8 9 10 .. 19
    • / 19 GO
  • GAMEZONE
 GAMEZONE all rights reserved.
by OrangeDay