[PI] Improvements - Cleaning/Converting Process to Events.
Cleaning some sh!t from process...
Using [Only registered and activated users can see links. Click Here To Register...]
#1#
Open client.java and from process() remove:
Code:
if(walkingToItem) {
if(getX() == pItemX && getY() == pItemY || goodDistance(getX(), getY(), pItemX, pItemY,1)) {
walkingToItem = false;
Server.itemHandler.removeGroundItem(this, pItemId, pItemX, pItemY, true);
}
}
Open PickupItem.java and under walkingToItem = true; add:
Code:
CycleEventHandler.getSingleton().addEvent(c, new CycleEvent() {
@Override
public void execute(CycleEventContainer container) {
if(!c.walkingToItem)
container.stop();
if(c.getX() == c.pItemX && c.getY() == c.pItemY) {
Server.itemHandler.removeGroundItem(c, c.pItemId, c.pItemX, c.pItemY, true);
container.stop();
}
}
@Override
public void stop() {
c.walkingToItem = false;
}
}, 1);
Open Walking.java and under public void processPacket(Client c, int packetType, int packetSize) { add:
Code:
c.walkingToItem = false;
#2#
Open client.java and from process() remove:
Code:
if(clickObjectType > 0 && goodDistance(objectX + objectXOffset, objectY + objectYOffset, getX(), getY(), objectDistance)) {
if(clickObjectType == 1) {
getActions().firstClickObject(objectId, objectX, objectY);
}
if(clickObjectType == 2) {
getActions().secondClickObject(objectId, objectX, objectY);
}
if(clickObjectType == 3) {
getActions().thirdClickObject(objectId, objectX, objectY);
}
}
Open ClickObject.java and under c.clickObjectType = 1; add:
Code:
CycleEventHandler.getSingleton().addEvent(c, new CycleEvent() {
@Override
public void execute(CycleEventContainer container) {
if(c.clickObjectType == 1 && c.goodDistance(c.objectX + c.objectXOffset, c.objectY + c.objectYOffset, c.getX(), c.getY(), c.objectDistance)) {
c.getActions().firstClickObject(c.objectId, c.objectX, c.objectY);
container.stop();
}
if(c.clickObjectType > 1 || c.clickObjectType == 0)
container.stop();
}
@Override
public void stop() {
c.clickObjectType = 0;
}
}, 1);
Under c.clickObjectType = 2; add:
Code:
CycleEventHandler.getSingleton().addEvent(c, new CycleEvent() {
@Override
public void execute(CycleEventContainer container) {
if(c.clickObjectType == 2 && c.goodDistance(c.objectX + c.objectXOffset, c.objectY + c.objectYOffset, c.getX(), c.getY(), c.objectDistance)) {
c.getActions().secondClickObject(c.objectId, c.objectX, c.objectY);
container.stop();
}
if(c.clickObjectType < 2 || c.clickObjectType > 2)
container.stop();
}
@Override
public void stop() {
c.clickObjectType = 0;
}
}, 1);
Under c.clickObjectType = 3; add:
Code:
CycleEventHandler.getSingleton().addEvent(c, new CycleEvent() {
@Override
public void execute(CycleEventContainer container) {
if(c.clickObjectType == 3 && c.goodDistance(c.objectX + c.objectXOffset, c.objectY + c.objectYOffset, c.getX(), c.getY(), c.objectDistance)) {
c.getActions().thirdClickObject(c.objectId, c.objectX, c.objectY);
container.stop();
}
if(c.clickObjectType < 3)
container.stop();
}
@Override
public void stop() {
c.clickObjectType = 0;
}
}, 1);
#3#
Open client.java and from process() remove:
Code:
if((clickNpcType > 0) && NPCHandler.npcs[npcClickIndex] != null) {
if(goodDistance(getX(), getY(), NPCHandler.npcs[npcClickIndex].getX(), NPCHandler.npcs[npcClickIndex].getY(), 1)) {
if(clickNpcType == 1) {
turnPlayerTo(NPCHandler.npcs[npcClickIndex].getX(), NPCHandler.npcs[npcClickIndex].getY());
NPCHandler.npcs[npcClickIndex].facePlayer(playerId);
getActions().firstClickNpc(npcType);
}
if(clickNpcType == 2) {
turnPlayerTo(NPCHandler.npcs[npcClickIndex].getX(), NPCHandler.npcs[npcClickIndex].getY());
NPCHandler.npcs[npcClickIndex].facePlayer(playerId);
getActions().secondClickNpc(npcType);
}
if(clickNpcType == 3) {
turnPlayerTo(NPCHandler.npcs[npcClickIndex].getX(), NPCHandler.npcs[npcClickIndex].getY());
NPCHandler.npcs[npcClickIndex].facePlayer(playerId);
getActions().thirdClickNpc(npcType);
}
}
}
Open ClickNPC.java and under clickNpcType = 1; add:
Code:
CycleEventHandler.getSingleton().addEvent(c, new CycleEvent() {
@Override
public void execute(CycleEventContainer container) {
if((c.clickNpcType == 1) && NPCHandler.npcs[c.npcClickIndex] != null) {
if(c.goodDistance(c.getX(), c.getY(), NPCHandler.npcs[c.npcClickIndex].getX(), NPCHandler.npcs[c.npcClickIndex].getY(), 1)) {
c.turnPlayerTo(NPCHandler.npcs[c.npcClickIndex].getX(), NPCHandler.npcs[c.npcClickIndex].getY());
NPCHandler.npcs[c.npcClickIndex].facePlayer(c.playerId);
c.getActions().firstClickNpc(c.npcType);
container.stop();
}
}
if(c.clickNpcType == 0 || c.clickNpcType > 1)
container.stop();
}
@Override
public void stop() {
c.clickNpcType = 0;
}
}, 1);
Under clickNpcType = 2; add:
Code:
CycleEventHandler.getSingleton().addEvent(c, new CycleEvent() {
@Override
public void execute(CycleEventContainer container) {
if((c.clickNpcType == 2) && NPCHandler.npcs[c.npcClickIndex] != null) {
if(c.goodDistance(c.getX(), c.getY(), NPCHandler.npcs[c.npcClickIndex].getX(), NPCHandler.npcs[c.npcClickIndex].getY(), 1)) {
c.turnPlayerTo(NPCHandler.npcs[c.npcClickIndex].getX(), NPCHandler.npcs[c.npcClickIndex].getY());
NPCHandler.npcs[c.npcClickIndex].facePlayer(c.playerId);
c.getActions().secondClickNpc(c.npcType);
container.stop();
}
}
if(c.clickNpcType < 2 || c.clickNpcType > 2)
container.stop();
}
@Override
public void stop() {
c.clickNpcType = 0;
}
}, 1);
Under clickNpcType = 3; add:
Code:
CycleEventHandler.getSingleton().addEvent(c, new CycleEvent() {
@Override
public void execute(CycleEventContainer container) {
if((c.clickNpcType == 3) && NPCHandler.npcs[c.npcClickIndex] != null) {
if(c.goodDistance(c.getX(), c.getY(), NPCHandler.npcs[c.npcClickIndex].getX(), NPCHandler.npcs[c.npcClickIndex].getY(), 1)) {
c.turnPlayerTo(NPCHandler.npcs[c.npcClickIndex].getX(), NPCHandler.npcs[c.npcClickIndex].getY());
NPCHandler.npcs[c.npcClickIndex].facePlayer(c.playerId);
c.getActions().thirdClickNpc(c.npcType);
container.stop();
}
}
if(c.clickNpcType < 3)
container.stop();
}
@Override
public void stop() {
c.clickNpcType = 0;
}
}, 1);
Open Walking.java and under public void processPacket(Client c, int packetType, int packetSize) { add:
Code:
c.clickNpcType = 0;
c.clickObjectType = 0;
#4#
Open client.java and from process() remove:
Code:
if(System.currentTimeMillis() - teleGrabDelay > 1550 && usingMagic) {
usingMagic = false;
if(Server.itemHandler.itemExists(teleGrabItem, teleGrabX, teleGrabY)) {
Server.itemHandler.removeGroundItem(this, teleGrabItem, teleGrabX, teleGrabY, true);
}
}
Open MagicOnFloorItems.java and add:
Code:
/*
* Telegrab spell
*/
if ((((c.getItems().freeSlots() >= 1) || c.getItems().playerHasItem(itemId, 1)) && Item.itemStackable[itemId]) || ((c.getItems().freeSlots() > 0) && !Item.itemStackable[itemId])) {
if(c.goodDistance(c.getX(), c.getY(), itemX, itemY, 12)) {
c.walkingToItem = true;
int offY = (c.getX() - itemX) * -1;
int offX = (c.getY() - itemY) * -1;
c.teleGrabX = itemX;
c.teleGrabY = itemY;
c.teleGrabItem = itemId;
c.turnPlayerTo(itemX, itemY);
c.teleGrabDelay = System.currentTimeMillis();
c.startAnimation(c.MAGIC_SPELLS[51][2]);
c.gfx100(c.MAGIC_SPELLS[51][3]);
c.getPA().createPlayersStillGfx(144, itemX, itemY, 0, 72);
c.getPA().createPlayersProjectile(c.getX(), c.getY(), offX, offY, 50, 70, c.MAGIC_SPELLS[51][4], 50, 10, 0, 50);
c.getPA().addSkillXP(c.MAGIC_SPELLS[51][7], 6);
c.getPA().refreshSkill(6);
c.stopMovement();
CycleEventHandler.getSingleton().addEvent(c, new CycleEvent() {
@Override
public void execute(CycleEventContainer container) {
if(!c.walkingToItem)
container.stop();
if(System.currentTimeMillis() - c.teleGrabDelay > 1550 && c.usingMagic) {
if(Server.itemHandler.itemExists(c.teleGrabItem, c.teleGrabX, c.teleGrabY) && c.goodDistance(c.getX(), c.getY(), itemX, itemY, 12)) {
Server.itemHandler.removeGroundItem(c, c.teleGrabItem, c.teleGrabX, c.teleGrabY, true);
c.usingMagic = false;
container.stop();
}
}
}
@Override
public void stop() {
c.walkingToItem = false;
}
}, 1);
}
} else {
c.sendMessage("You don't have enough space in your inventory.");
c.stopMovement();
}
#5#
Open client.java and from process() remove:
Code:
if (getItems().updateInventory)
getItems().updateInventory();
Open ItemAssistant.java and under every updateInventory = true; add:
#6#
Open client.java and from process() remove:
Code:
if(System.currentTimeMillis() - duelDelay > 800 && duelCount > 0) {
if(duelCount != 1) {
forcedChat(""+(--duelCount));
duelDelay = System.currentTimeMillis();
} else {
damageTaken = new int[Config.MAX_PLAYERS];
forcedChat("FIGHT!");
duelCount = 0;
}
}
Open ClickingButtons.java and under c.duelCount = 4; add:
Code:
CycleEventHandler.getSingleton().addEvent(c, new CycleEvent() {
@Override
public void execute(CycleEventContainer container) {
if(System.currentTimeMillis() - c.duelDelay > 800 && c.duelCount > 0) {
if(c.duelCount != 1) {
c.forcedChat(""+(--c.duelCount));
c.duelDelay = System.currentTimeMillis();
} else {
c.damageTaken = new int[Config.MAX_PLAYERS];
c.forcedChat("FIGHT!");
c.duelCount = 0;
}
}
if (c.duelCount == 0) {
container.stop();
}
}
@Override
public void stop() {
}
}, 1);
#7#
Open client.java and from process() remove:
Code:
if(inTrade && tradeResetNeeded){
Client o = (Client) PlayerHandler.players[tradeWith];
if(o != null){
if(o.tradeResetNeeded){
getTradeAndDuel().resetTrade();
o.getTradeAndDuel().resetTrade();
}
}
}
Open TradeAndDuel.java and under c.tradeResetNeeded = true; add:
Code:
CycleEventHandler.getSingleton().addEvent(this, new CycleEvent() {
public void execute(CycleEventContainer container) {
if(c.inTrade && c.tradeResetNeeded){
Client o = (Client) PlayerHandler.players[c.tradeWith];
if(o != null){
if(o.tradeResetNeeded){
c.getTradeAndDuel().resetTrade();
o.getTradeAndDuel().resetTrade();
container.stop();
} else {
container.stop();
}
} else {
container.stop();
}
} else {
container.stop();
}
}
@Override
public void stop() {
c.tradeResetNeeded = false;
}
}, 1);
A hint:
Code:
import server.event.CycleEvent;
import server.event.CycleEventContainer;
import server.event.CycleEventHandler;