Jump to content

DllCall won't work after an If statement

Recommended Posts


I'm having some problems with my script now if any of you know how to use PostMessage in a dll you'll probably understand my problem.

What I'm trying to do is send a certain key when the value of one pointer is smaller than the value of another so here is the script:

#include <NomadMemory.au3>
Func Terminate ()
    Exit 0      

Global $WMKEYDOWN = 0x100
Global $WMKEYUP = 0x101
Global $key = 0x33;the value of the key to send for info http://api.farmanager.com/en/winapi/virtualkeycodes.html
Global $key1 = 0x67; Heal key
Global $nottouse = InputBox("Handle","Input the Handle of your application that you don't want to be used (in this format 0x00000000)")
Global $hwnd = WinList("Battles for Glory")
Global $pids = ProcessList("l2.exe")
Global $baseaddr = "0x10969D60"
Global $offset [10]
$offset [0] = 0
$offset [1] = Dec ("114")
$offset [2] = Dec ("0")
$offset [3] = Dec ("C")
$offset [4] = Dec ("0")
$offset [5] = Dec ("4C")
$offset [6] = Dec ("684")
$offset [7] = Dec ("3C4")
$offset [8] = Dec ("5FC")
$offset [9] = Dec ("524")
Global $offset1 [10]
$offset1 [0] = 0
$offset1 [1] = Dec ("114")
$offset1 [2] = Dec ("0")
$offset1 [3] = Dec ("C")
$offset1 [4] = Dec ("0")
$offset1 [5] = Dec ("4C")
$offset1 [6] = Dec ("684")
$offset1 [7] = Dec ("3C4")
$offset1 [8] = Dec ("5FC")
$offset1 [9] = Dec ("51C")

    While 1
        For $i=1 To $hwnd [0][0]
                $prohwnd = _MemoryOpen($pids [$i][1])
                $hp = _MemoryPointerRead ($baseaddr,$prohwnd,$offset)
                $hpmax = _MemoryPointerRead ($baseaddr,$prohwnd,$offset1)
            If $hp [1] < $hpmax [1] Then
                MsgBox(0,"",""&$hp [1]&","&$hpmax [1]&"")
                DllCall("BypassedPostmessage.dll","int","myPostMessageA","hwnd",$hwnd [$i][1],"long",$WMKEYDOWN,"long",$key1,"long",0)

As you can see I have this line in my script:

MsgBox(0,"",""&$hp [1]&","&$hpmax [1]&"")

I use it just to see if my pointers work and they do work fine (I see the message only when the value of $hpmax [1] is bigger than $hp [1]) now the problem is that the DllCall doesn't send the key at all.

If anyone sees my problem please show it to me.

Thanks in advance.

Link to comment
Share on other sites

Okay well in this case, straight from the Battles For Glory website:

It is forbidden to use program that emulates the presence of a player in the game or disrupt the normal functioning of the server software. By such means the program, change the client or his substitute, and facilitate or alter the gameplay not game methods. Such as:-show information about other characters do not set the game developers, for example HP goal.-Automate gameplay. Automating-entrance into the game after the restart.-Using, programming methods, mistakes and shortcomings games as a player with skidyvanie Target, temporary disconnect, etc. Exception - Subscribers package "Professional", the characters are in the nuc-zone and are used for crafting and trade.


Link to comment
Share on other sites

Thanks for nothing!

Found my error and fixed it myself.

If anyone is interested as to where I was wrong it was the synchronization problem of the PID and the handles take a look at the script carefully and you'll see it.

Anyway again thanks for nothing :mellow:

Is it possible that you are that dumb?




Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Recently Browsing   0 members

    • No registered users viewing this page.
  • Create New...