채팅0

    프메 65 복사 같이할분

    조회수 986

    어떠한 값으로 하는지는 잘 모르겠지만, 교환이나 상점판매등의 경우 removeById, removeBySlot 메서드를 사용한다.

    해당 메서드에서 item값이 null일경우 완전히 해당 메서드를 스킵함으로써, 복사가 가능하다. 즉 클라이언트 단에서 서버단에 아이템 위치를 보낼때 null값으로 조작해 보내는 경우가 맞는것같다.

    public static boolean removeFromSlot(final MapleClient c, final MapleInventoryType type, final short slot, short quantity, final boolean fromDrop, final boolean consume, boolean packet) {
            if (c.getPlayer() == null || c.getPlayer().getInventory(type) == null) {
                return false;
            }
            final Item item = c.getPlayer().getInventory(type).getItem(slot);
            if (item != null) {
                final boolean allowZero = consume && GameConstants.isRechargable(item.getItemId());
                c.getPlayer().getInventory(type).removeItem(slot, quantity, allowZero);

                if (item.getQuantity() == 0 && !allowZero) {
                    if (packet) {
                        c.getSession().write(MaplePacketCreator.clearInventoryItem(type, item.getPosition(), fromDrop));
                    }
                } else {
                    if (packet) {
                        c.getSession().write(MaplePacketCreator.updateInventorySlot(type, (Item) item, fromDrop));
                    }
                }
                return true;
            } else {
                c.sclose();
            }
            return false;
        }

    해당 메서드에 빨간색 글씨를 추가해주면 해결될것이다.. (아마도 -_-;;)

    댓글5

    회원프로필

    c.close ㄷ 막는걸 올리면 어카노

    2024.04.23 16:38
    회원프로필

    아 게이야 1ㄷ1걸어바

    2024.04.23 16:44
    회원프로필

    65패킷메소복사
    [enable]
    alloc(on,4)
    registersymbol(on)
    alloc(packetarr,200)
    registersymbol(packetarr)
    packetarr:
    db 6F 00 D2 B2 93 03 01 00 FF 00 00 00 FF FF 00 00 FF FF FF 7F AB 76 00 D2 B2 93 03 01 00 FF 00 00 00 FF FF 00 00 FF FF FF 7F
    //패킷 valuea : 00 67 64 db 01 0a 00 00 00
    //21억 drop meso
    //Light Packet
    alloc(packet,200)
    alloc(azby,200)
    alloc(packet_delay,4)
    registersymbol(packet_delay)
    alloc(timer,4)
    label(nopacket)
    packet_delay:
    dd #1000
    timer:
    dd #0
    label(return)
    offsetrect:
    jmp azby
    return:
    azby:
    //original code
    mov edi,edi
    push ebp
    mov ebp,esp
    pushad
    mov ecx,[pCharacter]
    mov ecx,[ecx]
    cmp ecx,0
    je nopacket
    cmp [on],0
    je nopacket
    call callTime
    mov ebx,[timer]
    sub eax,ebx
    cmp eax,[packet_delay]
    jl nopacket
    call callTime
    mov [timer],eax
    mov eax,#200
    mov [packet+4],packetarr
    mov [packet+8],eax
    push packet
    call bypassedSend
    popad
    jmp return
    nopacket:
    popad
    jmp return
    [disable]
    offsetrect:
    mov edi,edi
    push ebp
    mov ebp,esp

    2024.04.23 17:38
    회원프로필

    형 1ㄷ1좀

    2024.04.23 18:30
    회원프로필

    org2 내가 건빵 50개줘ㅜㅅ다 고맙다

    2024.04.23 20:52

      게시글 리스트
      제목작성자작성일조회
      공지10-2017032
      5836013:5399
      5835910:55131
      5835809:43175
      5835709:33131
      5835603:01208
      5835501:16242
      5835411-22381
      5835311-22353
      5835211-22361
      5835111-22390
      5835011-22407
      5834911-22579
      5834811-22539
      5834711-22677
      5834611-22543
      5834511-21614
      5834411-21715
      5834311-21785
      5834211-21686