leeched! nah joke, good tut![]()
|
|
Purpose: Use an item on object
Difficulty: 1/10
Assumed Knowledge: Ctrl + F & Basic code editing
Server Base: Dodian/Devolution
Classes Modified: Client.java
Procedure
Step 1: Open your client.java & search for "case 192".
It should have something like;
Step 2: To make an item be used on an object hit enter after the "break"Code:// Use an item on an object junk = inStream.readSignedWordBigEndianA(); int UsedOnObjectID = inStream.readUnsignedWordBigEndian(); int UsedOnY = inStream.readSignedWordBigEndianA(); int ItemSlot = (inStream.readSignedWordBigEndianA() - 128); int UsedOnX = inStream.readUnsignedWordBigEndianA(); int ItemID = inStream.readUnsignedWord(); if (!playerHasItem(ItemID)) break;
Step 3: Then add in
This is when you use an item on an object it will delete an item from your inventory & add a new item.Code:else if(ItemID == #### && UsedOnObjectID == ####) deleteItem(####,getItemSlot(####), 1); addItem(####, 1);
Lets say you wanted to use Crystal Key (989) on Crystal Chest (ID 172) (x=2914 y=3451) you'd use.
Now you'd add that code underneath the following in Case 192Code:else if(ItemID == 989 && UsedOnObjectID == 172) deleteItem(989,getItemSlot(989), 1); addItem(1615, 1);So when you use Crystal Key on the Crystal Chest.Code:if (!playerHasItem(ItemID)) break;
It removes the Crystal Key from your inventory.
Then you receive a Dragonstone.
Step 4: Compile & Run!
Credits: Myself & Devolution Source!
Hope this helps alot of people as it took me a while to work it out. And it's very useful.
Extra Files;
[Only registered and activated users can see links. ]
leeched! nah joke, good tut![]()


Error help pleaseCode:client.java:6821: unreachable statement if (UsedOnObjectID == 3994 || UsedOnObjectID == 11666) { ^ Note: Some input files use or override a deprecated API. Note: Recompile with -Xlint:deprecation for details. 1 error Files Compiled Successfully! Press any key to continue . . .
Item on Object Case:
Code:case 192: // Use an item on an object junk = inStream.readSignedWordBigEndianA(); int UsedOnObjectID = inStream.readUnsignedWordBigEndian(); int UsedOnY = inStream.readSignedWordBigEndianA(); int ItemSlot = (inStream.readSignedWordBigEndianA()-128); int UsedOnX = inStream.readUnsignedWordBigEndianA(); int ItemID = inStream.readUnsignedWord(); if (!playerHasItem(ItemID)) break; else if(ItemID == 989 && UsedOnObjectID == 172) deleteItem(989,getItemSlot(989), 1); addItem(1615, 1); break; if (UsedOnObjectID == 3994 || UsedOnObjectID == 11666) { for (int fi = 0; fi < misc.smelt_frame.length; fi++) sendFrame246(misc.smelt_frame[fi], 150, misc.smelt_bars[fi]); sendFrame164(2400); //smelting = true; //smelt_id = ItemID; } if (UsedOnObjectID == 2781 || UsedOnObjectID == 9374) { // cooking1 if ( /*CheckForSkillUse2(ItemID, ItemSlot) ==*/true) { startAnimation(897); skillX = UsedOnX; skillY = UsedOnY; checkCooking(ItemID); } } if (UsedOnObjectID == 2728) { // cooking if ( /*CheckForSkillUse2(ItemID, ItemSlot) ==*/true) { startAnimation(883); skillX = UsedOnX; skillY = UsedOnY; checkCooking(ItemID); } } else if (UsedOnObjectID == 2783) { // anvil int Type = CheckSmithing(ItemID, ItemSlot); if (Type != -1) { skillX = UsedOnX; skillY = UsedOnY; OpenSmithingFrame(Type); } } else { println_debug("Item: "+ItemID+" - Used On Object: "+UsedOnObjectID+" - X: "+UsedOnX+" - Y: "+UsedOnY); } break;
What, if i used an item, on an object, and the object turned into another object?
Could that work?
Example:
Maybe the code is a little bit wrong.Code:else if(ItemID == 1995 && UsedOnObjectID == 1042) deleteItem(1995,getItemSlot(1995), 1); deleteobject(2342, 2341, 1042, 10, 1); addglobalobject(2342, 2341, 1043, 10, 1); addItem(1996, 1);
Could that code, possibly do, that if you used item 1995 on object 1042. It deleted item 1995, then it deleted object 1042 on spot 2342, 2341 . And then created object 1043 on the same spot, and added item 1996. ?
To answer your question you put a break in that isn't needed.
Code:else if(ItemID == 989 && UsedOnObjectID == 172) deleteItem(989,getItemSlot(989), 1); addItem(1615, 1); break;
Should be
hmmm. I'll try and find out a way to do this. =S Hopefully not too hard.Code:else if(ItemID == 989 && UsedOnObjectID == 172) deleteItem(989,getItemSlot(989), 1); addItem(1615, 1);
| « [REQ] Where do i declare methods and booleans [REQ] | Sigex - SoulScape 6.2 "destroy item" with interface and item on interface » |
| Thread Information |
Users Browsing this ThreadThere are currently 1 users browsing this thread. (0 members and 1 guests) |