For targeting, once you have the mob, try
Clicking is harder. I should probably add a function to simplify this. I think this is the second time I've had to cut and paste this code.
Code: Select all
-- Freeze mouse function
local function nopmouse()
-- x axis
local addressX1 = addresses.functionMousePatchAddr
local addressX2 = addresses.functionMousePatchAddr + addresses.mousePatchX2_offset
local addressX3 = addresses.functionMousePatchAddr + addresses.mousePatchX3_offset
memoryWriteString(getProc(), addressX1, string.rep(string.char(0x90),#addresses.functionMouseX1Bytes)); -- left of window
memoryWriteString(getProc(), addressX2, string.rep(string.char(0x90),#addresses.functionMouseX2Bytes)); -- right of window
memoryWriteString(getProc(), addressX3, string.rep(string.char(0x90),#addresses.functionMouseX3Bytes)); -- over window
-- y axis
local addressY1 = addresses.functionMousePatchAddr + addresses.mousePatchY1_offset
local addressY2 = addresses.functionMousePatchAddr + addresses.mousePatchY2_offset
local addressY3 = addresses.functionMousePatchAddr + addresses.mousePatchY3_offset
memoryWriteString(getProc(), addressY1, string.rep(string.char(0x90),#addresses.functionMouseY1Bytes)); -- above window
memoryWriteString(getProc(), addressY2, string.rep(string.char(0x90),#addresses.functionMouseY2Bytes)); -- below window
memoryWriteString(getProc(), addressY3, string.rep(string.char(0x90),#addresses.functionMouseY3Bytes)); -- over window
end
-- Unfreeze mouse function
local function unnopmouse()
-- x axis
local addressX1 = addresses.functionMousePatchAddr
local addressX2 = addresses.functionMousePatchAddr + addresses.mousePatchX2_offset
local addressX3 = addresses.functionMousePatchAddr + addresses.mousePatchX3_offset
memoryWriteString(getProc(), addressX1, string.char(unpack(addresses.functionMouseX1Bytes)));
memoryWriteString(getProc(), addressX2, string.char(unpack(addresses.functionMouseX2Bytes)));
memoryWriteString(getProc(), addressX3, string.char(unpack(addresses.functionMouseX3Bytes)));
-- y axis
local addressY1 = addresses.functionMousePatchAddr + addresses.mousePatchY1_offset
local addressY2 = addresses.functionMousePatchAddr + addresses.mousePatchY2_offset
local addressY3 = addresses.functionMousePatchAddr + addresses.mousePatchY3_offset
memoryWriteString(getProc(), addressY1, string.char(unpack(addresses.functionMouseY1Bytes)));
memoryWriteString(getProc(), addressY2, string.char(unpack(addresses.functionMouseY2Bytes)));
memoryWriteString(getProc(), addressY3, string.char(unpack(addresses.functionMouseY3Bytes)));
end
local ww = memoryReadIntPtr(getProc(),addresses.staticbase_char,addresses.windowSizeX_offset)
local wh = memoryReadIntPtr(getProc(),addresses.staticbase_char,addresses.windowSizeY_offset)
local clickX = math.ceil(ww/2)
local clickY = math.ceil(wh/2)
yrest(50)
nopmouse()
yrest(50)
memoryWriteIntPtr(getProc(),addresses.staticbase_char,addresses.mouseX_offset,clickX)
memoryWriteIntPtr(getProc(),addresses.staticbase_char,addresses.mouseY_offset,clickY)
yrest(50)
RoMScript("SpellTargetUnit()")
yrest(50)
-- unfreeze TargetPtr
unnopmouse()