Explanation/Purpose: To add the Item on Item, and Item on Object packets to emulous
Difficulty: 2/10, using this will require basic java knowledge.
Classes Added/Modified: ItemOnObject.java, ItemOnItem.java, packetHandler.java, useItem.java
Tested On: Emulous...
Bugs/Problems: None =D as far as i know.
Step 1:
Go to server.players.packets, create a new java file named "ItemonItem.java"
open it up and add this inside:
Code:
package server.players.packets;
import server.util.*;
import server.players.*;
/**
* ItemOnItem
* @author Ritz/rolfcopter
**/
public class ItemOnItem implements PacketType {
public void processPacket(Client c, int packetType, int packetSize) {
int usedWithSlot = c.getInStream().readUnsignedWord();
int itemUsedSlot = c.getInStream().readUnsignedWordA();
int useWith = c.playerItems[usedWithSlot] - 1;
int itemUsed = c.playerItems[itemUsedSlot] - 1;
UseItem.ItemonItem(c, itemUsed, useWith);
}
}
Step 2:
also in server.players.packets create another new class called "ItemOnObject.java"
put this inside:
Code:
package server.players.packets;
import server.util.*;
import server.players.*;
/**
* ItemOnObject
* @author Ritz/rolfcopter
**/
public class ItemOnObject implements PacketType {
public void processPacket(Client c, int packetType, int packetSize) {
int atObjectID = c.getInStream().readSignedWordBigEndian();
int useItemID = c.getInStream().readUnsignedWord();
UseItem.ItemonObject(c, atObjectID, useItemID);
}
}
Step 3:
still in server.players.packets create a third class called "UseItem.java"
put this inside:
Code:
package server.players.packets;
import server.players.Client;
import server.util.Misc;
/*
* UseItem
* @author Richscape4.3
*/
public class UseItem {
static void ItemonObject(Client c, int Object, int Item) {
if (Object == 1) {
if (Item == 2) {
c.sendMessage("EXAMPLE");
}
}
else {
c.sendMessage("Nothing Interesting Happens.");
}
}
static void ItemonItem(Client c, int Item, int Item2) {
if ((Item == 2 && Item2 == 3)) {
Misc.println("EXAMPLE 2");
} else {
c.sendMessage("Nothing Interesting Happens.");
}
}
}
Step 4:
Close those files as you don't need them anymore.
Open up PacketHandler.java.
Find:
Code:
packetId.put(98, w);
and underneath that add this:
Code:
packetId.put(53, new ItemOnItem());
packetId.put(192, new ItemOnObject());
Done!
I included 2 examples in the useItem class, that should be enough to get you started, its possible to use switch statements if you find that easier, but its a smaller code to do it like it is there 
Enjoy?
Credits: Me, Richscape 4.3 author, as i used the "UseItem" class from there