Quote:
Originally Posted by nolissa
I wonder if someone can do a program to calculate the xp per hour in c++ (reading with offset), and possibly given source code (for learn). I started programming and it helps me a lot. Thank you all.
ps : or a program for view readmemory in game.dll
|
i have a funktion in AutoIt ... Although not c + + but in the end is everything assembler ^^
you need 2 vars ... the start event is a Monster kill
1 var is you new exp ( 12300 ) per mob
2 time between mob kills i use a Timestamp
this is the func
Code:
Func calcTime($nep)
$ntime = _TimeGetStamp() - $timeDiff
$tmpMep = PlayerMaxEP()
$tmpCep = playerCurrectEP()
$timeToLevelUp =(($tmpMep - $tmpCep) / $nep ) * $ntime
$newTime = Round(($timeToLevelUp/60)/60,2)
if($lastTime <> 0) Then
if($newTime > $lastTime) Then
$difftime = $newTime - $lastTime
$avgTime = $difftime + $lastTime
Elseif($lastTime > $newTime) Then
$difftime = $lastTime - $newTime
$avgTime = $difftime + $newTime
EndIf
$lastTime = $newTime
Else
$lastTime = $newTime
$avgTime = $newTime;
EndIf
GUICtrlSetData($TimeCount, timeToHuman($avgTime))
EndFunc
its calculate all 2 mob kills the time to lvl up

its not perfect but is god
the memory Read Func!
Code:
Func OpenAionMemory()
$pid = ProcessExists("AION.bin")
If $pid == -1 Then
Return
EndIf
$openmem = _MemoryOpen($pid)
If @error Then
Return
EndIf
$AionRun = True
EndFunc
Func MemReadDLL($offset)
$StaticOffset = Dec($offset)
Global $pid
Global $CUROffset[1]
$CUROffset[0] = 0
$baseADDR = _MemoryModuleGetBaseAddress($pid, "Game.dll")
$finalADDR = "0x" & Hex($baseADDR + $StaticOffset)
$MemTest = _MemoryRead($finaladdr,$openmem)
Return $MemTest
EndFunc
Func MemReadDLLFloat($offset)
$StaticOffset = Dec($offset)
Global $pid
Global $CUROffset[1]
$CUROffset[0] = 0
$baseADDR = _MemoryModuleGetBaseAddress($pid, "Game.dll")
$finalADDR = "0x" & Hex($baseADDR + $StaticOffset)
$MemTest = _MemoryRead($finaladdr,$openmem,"float")
Return $MemTest
EndFunc
the offset funcs
Code:
Func playerCurrectEP()
return MemReadDLL("8EEEA8")
EndFunc
Func PlayerMaxEP()
return MemReadDLL("8EEE98")
EndFunc
Func playerCurrectMana()
return MemReadDLL("8EEEC0")
EndFunc
Func PlayerMaxMana()
return MemReadDLL("8EEEBC")
EndFunc
Func playerCurrectHp()
return MemReadDLL("8EEEB8")
EndFunc
Func playerCurrectHpPercent()
$val = MemReadDLL("8EEEB8")
$Pval = ($val * 100) / PlayerMaxHp()
return Round($Pval)
EndFunc
Func PlayerMaxHp()
return MemReadDLL("8EEEB4")
EndFunc
Func PlayerXPos()
return MemReadDLLFloat("8E6944")
EndFunc
Func PlayerYPos()
return MemReadDLLFloat("8E6940")
EndFunc
Func PlayerZPos()
return MemReadDLLFloat("8E6948")
EndFunc
; Angel of the Player 360� / 2 :)
Func GetPlayerPos()
Return MemReadDLLFloat("8E40C0")
EndFunc