Originally Posted by
No1killme
The red part is the part for inventory, nothing is wrong there.. So post your MoveItems class, resetTempItems (in ItemAssistant class) method and resetItems (in ItemAssistant class) Method.
Code:
package server.game.entity.player.packet;
import server.game.entity.player.Client;
import server.game.entity.player.PacketType;
public class MoveItems implements PacketType {
@Override
public void processPacket(Client c, int packetType, int packetSize) {
int interfaceId = c.getInStream().readSignedWordBigEndianA();
boolean insertMode = c.getInStream().readSignedByteC() == 1;
int from = c.getInStream().readSignedWordBigEndianA();
int to = c.getInStream().readSignedWordBigEndian();
if(!c.isBanking)
return;
if(c.inTrade) {
c.getTrading().declineTrade();
}
if(c.inGamble) {
c.getGamble().decline();
}
if(c.tradeStatus == 1) {
c.getTrading().declineTrade();
}
if(c.duelStatus == 1) {
c.getDueling().declineDuel();
}
c.getItems().moveItems(from, to, interfaceId, insertMode);
}
}
Code:
public void resetTempItems(){
synchronized(c) {
int itemCount = 0;
for (int i = 0; i < c.playerItems.length; i++) {
if (c.playerItems[i] > -1) {
itemCount=i;
}
}
c.getOutStream().createFrameVarSizeWord(53);
c.getOutStream().writeWord(5064);
c.getOutStream().writeWord(itemCount+1);
for (int i = 0; i < itemCount+1; i++) {
if (c.playerItemsN[i] > 254) {
c.getOutStream().writeByte(255);
c.getOutStream().writeDWord_v2(c.playerItemsN[i]);
} else {
c.getOutStream().writeByte(c.playerItemsN[i]);
}
if (c.playerItems[i] > Config.ITEM_LIMIT || c.playerItems[i] < 0) {
c.playerItems[i] = Config.ITEM_LIMIT;
}
c.getOutStream().writeWordBigEndianA(c.playerItems[i]);
}
c.getOutStream().endFrameVarSizeWord();
c.flushOutStream();
}
}
Code:
public void resetItems(int WriteFrame) {
synchronized (c) {
if (c.getOutStream() != null && c != null) {
c.getOutStream().createFrameVarSizeWord(53);
c.getOutStream().writeWord(WriteFrame);
c.getOutStream().writeWord(c.playerItems.length);
for (int i = 0; i < c.playerItems.length; i++) {
if (c.playerItemsN[i] > 254) {
c.getOutStream().writeByte(255);
c.getOutStream().writeDWord_v2(c.playerItemsN[i]);
} else {
c.getOutStream().writeByte(c.playerItemsN[i]);
}
c.getOutStream().writeWordBigEndianA(c.playerItems[i]);
}
c.getOutStream().endFrameVarSizeWord();
c.flushOutStream();
}
}
}