어떠한 값으로 하는지는 잘 모르겠지만, 교환이나 상점판매등의 경우 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;
}
해당 메서드에 빨간색 글씨를 추가해주면 해결될것이다.. (아마도 -_-;;)
제목 | 작성자 | 작성일 | 조회 | |
---|---|---|---|---|
공지 | 게시판 이용 안내+128 | 10-20 | 17032 | |
58360 | 13:53 | 99 | ||
58359 | 10:55 | 131 | ||
58358 | 09:43 | 175 | ||
58357 | 09:33 | 131 | ||
58356 | 03:01 | 208 | ||
58355 | 01:16 | 242 | ||
58354 | 11-22 | 381 | ||
58353 | 11-22 | 353 | ||
58352 | 아르테일 매크로+1 | 11-22 | 361 | |
58351 | 11-22 | 390 | ||
58350 | 11-22 | 407 | ||
58349 | 11-22 | 579 | ||
58348 | 11-22 | 539 | ||
58347 | 11-22 | 677 | ||
58346 | 11-22 | 543 | ||
58345 | 11-21 | 614 | ||
58344 | 11-21 | 715 | ||
58343 | 메랜 ㅁㅋㄹ 판매+10 | 11-21 | 785 | |
58342 | 11-21 | 686 |
댓글5
c.close ㄷ 막는걸 올리면 어카노
아 게이야 1ㄷ1걸어바
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
형 1ㄷ1좀
org2 내가 건빵 50개줘ㅜㅅ다 고맙다