Thread: Use Item On Obect [DODIAN/DEVOLUTION] [TUT]

Results 1 to 6 of 6
  1. #1 Use Item On Object [DODIAN/DEVOLUTION] [TUT] 
    sL3Ak
    Guest
    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;
    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 2: To make an item be used on an object hit enter after the "break"

    Step 3: Then add in
    Code:
    else if(ItemID == #### && UsedOnObjectID == ####) 
    deleteItem(####,getItemSlot(####), 1);
    addItem(####, 1);
    This is when you use an item on an object it will delete an item from your inventory & add a new item.

    Lets say you wanted to use Crystal Key (989) on Crystal Chest (ID 172) (x=2914 y=3451) you'd use.

    Code:
    else if(ItemID == 989 && UsedOnObjectID == 172)
    deleteItem(989,getItemSlot(989), 1);
    addItem(1615, 1);
    Now you'd add that code underneath the following in Case 192
    Code:
    			if (!playerHasItem(ItemID))
    				break;
    So when you use Crystal Key on the Crystal Chest.
    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. ]
     

  2. #2  
    sik pure
    Guest
    leeched! nah joke, good tut
     

  3. #3  
    DeltaScape is Pro!!

    Join Date
    Feb 2008
    Age
    26
    Posts
    743
    Thanks given
    4
    Thanks received
    5
    Rep Power
    77
    You leeched this from Sl3Ak. Lol jk jk i saw a ut like this erlier then i thought you did, but its teh same dude so... good job =P
    [Only registered and activated users can see links. ]
     

  4. #4  
    Registered Member
    ViperSniper's Avatar
    Join Date
    Apr 2007
    Age
    27
    Posts
    2,417
    Thanks given
    367
    Thanks received
    82
    Rep Power
    976
    Code:
    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 . . .
    Error help please

    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;
    :indeed:
     

  5. #5  
    Registered Member Tzar's Avatar
    Join Date
    Aug 2007
    Posts
    1,046
    Thanks given
    54
    Thanks received
    12
    Discord
    View profile
    Rep Power
    260
    What, if i used an item, on an object, and the object turned into another object?
    Could that work?

    Example:
    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);
    Maybe the code is a little bit wrong.

    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. ?



    [Only registered and activated users can see links. ]



     

  6. #6  
    sL3Ak
    Guest
    Quote Originally Posted by ViperSniper View Post
    Code:
    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 . . .
    Error help please

    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;
    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


    Code:
    		else if(ItemID == 989 && UsedOnObjectID == 172)
    		deleteItem(989,getItemSlot(989), 1);
    		addItem(1615, 1);
    Quote Originally Posted by Twinz Ftw View Post
    What, if i used an item, on an object, and the object turned into another object?
    Could that work?

    Example:
    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);
    Maybe the code is a little bit wrong.

    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. ?
    hmmm. I'll try and find out a way to do this. =S Hopefully not too hard.
     


Thread Information
Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)


User Tag List

Posting Permissions
  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •