Deprecated: The behavior of unparenthesized expressions containing both '.' and '+'/'-' will change in PHP 8: '+'/'-' will take a higher precedence in /home/iano/public_html/tpforums-vb5/forum/includes/class_core.php on line 5842

PHP Warning: Use of undefined constant MYSQL_NUM - assumed 'MYSQL_NUM' (this will throw an Error in a future version of PHP) in ..../includes/init.php on line 165

PHP Warning: Use of undefined constant MYSQL_ASSOC - assumed 'MYSQL_ASSOC' (this will throw an Error in a future version of PHP) in ..../includes/init.php on line 165

PHP Warning: Use of undefined constant MYSQL_BOTH - assumed 'MYSQL_BOTH' (this will throw an Error in a future version of PHP) in ..../includes/init.php on line 165

PHP Warning: "continue" targeting switch is equivalent to "break". Did you mean to use "continue 2"? in ..../includes/functions_navigation.php on line 588

PHP Warning: "continue" targeting switch is equivalent to "break". Did you mean to use "continue 2"? in ..../includes/functions_navigation.php on line 612

PHP Warning: Use of undefined constant misc - assumed 'misc' (this will throw an Error in a future version of PHP) in ..../global.php(29) : eval()'d code(6) : eval()'d code on line 1

PHP Warning: Use of undefined constant index - assumed 'index' (this will throw an Error in a future version of PHP) in ..../global.php(29) : eval()'d code(6) : eval()'d code on line 1

PHP Warning: Use of undefined constant misc - assumed 'misc' (this will throw an Error in a future version of PHP) in ..../includes/class_bootstrap.php(1422) : eval()'d code(4) : eval()'d code on line 1

PHP Warning: Use of undefined constant index - assumed 'index' (this will throw an Error in a future version of PHP) in ..../includes/class_bootstrap.php(1422) : eval()'d code(4) : eval()'d code on line 1

PHP Warning: Use of undefined constant onlinestatusphrase - assumed 'onlinestatusphrase' (this will throw an Error in a future version of PHP) in ..../includes/class_core.php(4684) : eval()'d code on line 6

PHP Warning: Use of undefined constant onlinestatusphrase - assumed 'onlinestatusphrase' (this will throw an Error in a future version of PHP) in ..../includes/class_core.php(4684) : eval()'d code on line 6

PHP Warning: Use of undefined constant onlinestatusphrase - assumed 'onlinestatusphrase' (this will throw an Error in a future version of PHP) in ..../includes/class_core.php(4684) : eval()'d code on line 6

PHP Warning: Use of undefined constant onlinestatusphrase - assumed 'onlinestatusphrase' (this will throw an Error in a future version of PHP) in ..../includes/class_core.php(4684) : eval()'d code on line 6

PHP Warning: Use of undefined constant onlinestatusphrase - assumed 'onlinestatusphrase' (this will throw an Error in a future version of PHP) in ..../includes/class_core.php(4684) : eval()'d code on line 85

PHP Warning: Use of undefined constant onlinestatusphrase - assumed 'onlinestatusphrase' (this will throw an Error in a future version of PHP) in ..../includes/class_core.php(4684) : eval()'d code on line 6

PHP Warning: Use of undefined constant onlinestatusphrase - assumed 'onlinestatusphrase' (this will throw an Error in a future version of PHP) in ..../includes/class_core.php(4684) : eval()'d code on line 6

PHP Warning: Use of undefined constant onlinestatusphrase - assumed 'onlinestatusphrase' (this will throw an Error in a future version of PHP) in ..../includes/class_core.php(4684) : eval()'d code on line 6

PHP Warning: Use of undefined constant onlinestatusphrase - assumed 'onlinestatusphrase' (this will throw an Error in a future version of PHP) in ..../includes/class_core.php(4684) : eval()'d code on line 6

PHP Warning: Use of undefined constant onlinestatusphrase - assumed 'onlinestatusphrase' (this will throw an Error in a future version of PHP) in ..../includes/class_core.php(4684) : eval()'d code on line 6
Attack
Results 1 to 9 of 9

Thread: Attack

  1. #1

    Question Attack

    hey folks, what are the methods to attack a creature? i'm puzzling over this

  2. #2
    Senior Member
    Join Date
    Dec 2011
    Posts
    249
    3 ways on the top of my mind.

    Mouse simulation, either by clicking directly on the gamescreen or on the battlelist.

    Calling internal functions for attacking.

    Sending an attack packet.

  3. #3
    Senior Member
    Join Date
    Dec 2011
    Posts
    249
    Made a quick test for method #2

    Code:
    DWORD id = 0; //Id of the creature you want to attack
    *(DWORD*)(0x8195AC) = id;        //0x8195AC is the red square address
    __asm{
    MOV ECX, id
    MOV EAX, 0x416A30
    CALL EAX
    }
    This will work when you are injected. If you're not you can use codecaves
    Last edited by ottizy; 09-08-2014 at 12:55 PM.

  4. #4
    Senior Member Lolrapa's Avatar
    Join Date
    Mar 2014
    Posts
    125
    Quote Originally Posted by ottizy View Post
    Made a quick test for method #2

    Code:
    DWORD id = 0; //Id of the creature you want to attack
    *(DWORD*)(0x8195AC) = id;        //0x8195AC is the red square address
    __asm{
    MOV ECX, DWORD PTR DS:[0x8195AC]
    MOV EAX, 0x416A30
    CALL EAX
    }
    This will work when you are injected. If you're not you can use codecaves
    Nice, I'll try it.

  5. #5
    I thought about making a click in the battle, but I need the position of the creature in the b list

    I think by calling internal function could be a little less difficult than that

    Could you explain a little this function? thank bro

  6. #6
    Senior Member
    Join Date
    Dec 2011
    Posts
    249
    Quote Originally Posted by knightnohander View Post
    I thought about making a click in the battle, but I need the position of the creature in the b list

    I think by calling internal function could be a little less difficult than that

    Could you explain a little this function? thank bro
    I'm not gonna write a guide how to inject a DLL or anything since there's already alot of examples of that on this forum, same goes for codecaves

  7. #7
    internal function does not need to inject dll, right?

  8. #8
    Quote Originally Posted by Lolrapa View Post
    Nice, I'll try it.

    you do that??

  9. #9
    Senior Member
    Join Date
    Jan 2008
    Location
    Cambridge, England
    Posts
    725
    Quote Originally Posted by knightnohander View Post
    internal function does not need to inject dll, right?
    To call one of Tibias functions you do need to either inject a DLL or write a code cave and modify some assembly. Injecting a DLL would be simpler IMO, since you can at least debug it slightly, whereas with assembly you don't get quite as much information.

    Personally, if you're not injected I'd advise:

    1. Sending a packet by writing to Tibias memory
    2. Right clicking the battle list

    And my input on "how to":

    1. No idea, not done it before.
    2. Find the GUI structure in Tibia, by resizing the battle list object and searching for changed value, it's a level 3 or 4 pointer IIRC, so you'll need to get a list of 10-20 values and find level 3-4 pointers to them, then work out which come back when you restart Tibia or whatever. Now you can simply analyse the battle list structure to work out if the list of heroes is actually in any order relative to what it is in the display (I believe it is), then you just use basic math to calculate the position of the creature within the battle list, and using information about how far you have scrolled (from the battle list pointer you found earlier) you should be able to pinpoint exactly where the creatures are in the battle list. Further to that, you will likely find this way very easy as if you track the creatures in the battle list, you can easily access their last known location when they died, giving you hints for your looter to work from.

    GL

Posting Permissions

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