- Joined
- Dec 12, 2010
- Messages
- 2,074
7 symbols limit kinda too low for full kda which is 2+1+2+1+2
WMem(frame+0x68,0xFF0000FF)
WMem(GetFrameTextAddress("ResourceBarGoldText",0)+0x68,0xFF0000FF)
00/00/00 == 8 symbols damn it!.... or 000000 but it doesn't look good i think.7 symbols limit kinda too low for full kda which is 2+1+2+1+2
there are also various fields, including offset to draw on. basically you're able to move any frame anywhere, whatever you like.
speaking of changing HUD, minimap is also fully customizable with tons (100+) fields to play with
![]()
![]()
![]()
![]()
![]()
GetFrameTextAddress("MinimapFrame or something??? T_T",0)
basically you're able to move any frame anywhere, whatever you like.
Sorry but, is possible change colors by separate? like 000000ez
WMem(GetFrameTextAddress("ResourceBarGoldText",0)+0x68,0xFF0000FF)
changes take effect on the next redraw (change value of the resource anyhow)
pDrawTextAtResourcePanel=GameDLL+0x60CA10
I see that you using variables with different addresses for each thing, but the question is: where do you get the initial values, how can be search them directly with my cheat engine?WriteNullTerminatedString
and others CallThisCallWith2Args
... At what point should be used each?its hard to explain, ill try later with another articleWell I want to make my own resources but I try to understand about this and I can not, sorry...
You can provide more information about how to use. Some kind of short tutorial or something?, anything is appreciated.
Well for now that's it. And again thanks for your attention Draco!
pDrawTextAtResourcePanel=GameDLL+0x60CA10
I see that you using variables with different addresses for each thing, but the question is: where do you get the initial values, how can be search them directly with my cheat engine?
- Functions that change texts: some times
WriteNullTerminatedString
and othersCallThisCallWith2Args
... At what point should be used each?- About DotAAllstarsHelper688c.dll: Can be used publicly or is for private use only?
possilble, but there were some issues I cant remember (been long ago), so we never used it. you may force to display normal panel, but its worthless due to buggy behaviorHey Draco! Is there a way to bypass the cancel menu when you toggle a spell or an order (while choosing a target). If possible, I want to cast smart order or an instant spell while on that state.
Okay thanks ^^its hard to explain, ill try later with another article
call WriteMemory(GetFrameTextAddress("ResourceBarUpkeepText",0)+0x4C,SetRealIntoMemory(-.555))
Is correct?Yes:then, you can use these to write all over the screen?
JASS:globals //26 set pDrawTextAtResourcePanel=GameDLL+0x60CA10 //27 set pDrawTextAtResourcePanel=GameDLL+0x0C1020 endglobals function DrawTextAtResourcePanel takes integer panelAddress, string s returns nothing local integer a=GetStringAddress(s) if a>0 and panelAddress>0 then call CallThisCallWith2Args(pDrawTextAtResourcePanel,panelAddress,a) endif endfunction //where panelAddress can be anything, but you gonna use local integer panelAddress=GetFrameTextAddress("ResourceBarGoldText",0) set panelAddress=GetFrameTextAddress("ResourceBarLumberText",0) set panelAddress=GetFrameTextAddress("ResourceBarUpkeepText",0) set panelAddress=GetFrameTextAddress("ResourceBarSupplyText",0)
Yes you canCould I use these memory hacks to replace the Console UI textures on the screen?
except command panel
Take your time manoffsets seems to be related to default position and measured idk, maybe %%
actually it doesnt really chage frame's position but have something to do with other stuff. for now I can't say what exactly but I just broke my wc3, making it think like my window is about half of the screen, and it didnt allow me to move mouse off. I changed different fields to achieve that, although changing mentioned offsets didn't help at all and gold's frame stood still all along. So it have to be reversed, and Im out of time
This. Cinematic Mode also causes problems with Modified Resource Strings, setting their color to black.Maybe we could look for what happens when you go to Cinematic Mode and come back from it, since it changes the Console UI Hud on and off.
Hi Draco ^^. How are you going with this?I was wrong, smh
![]()
offsets seems to be related to default position and measured idk, maybe %%
actually it doesnt really chage frame's position but have something to do with other stuff. for now I can't say what exactly but I just broke my wc3, making it think like my window is about half of the screen, and it didnt allow me to move mouse off. I changed different fields to achieve that, although changing mentioned offsets didn't help at all and gold's frame stood still all along. So it have to be reversed, and Im out of time
I will try wait hahanohow, no time for researches. just released new version last day.
this feature seems to be harder, as it defined at loading, means tests takes 4x more time to catch things
function SetHPCustomHPBarUnit takes integer PlayerID, integer UnitID, integer Color, real ScaleX, real ScaleY returns nothing
function SetHPBarColorForPlayer takes integer PlayerID, integer HeroColor, integer UnitColor, integer TowerColor returns nothing
function SetMPBarXScaleForPlayer takes integer PlayerID, real HeroXscale, real UnitXscale, real TowerXscale returns nothing
function SetMPBarYScaleForPlayer takes integer PlayerID, real HeroYscale, real UnitYscale, real TowerYscale returns nothing
function SetMPBarYOffsetForPlayer takes integer PlayerID, real HeroYscale, real UnitYscale, real TowerYscale returns nothing
function SetHPBarXScaleForPlayer takes integer PlayerID, real HeroXscale, real UnitXscale, real TowerXscale returns nothing
function SetHPBarYScaleForPlayer takes integer PlayerID, real HeroYscale, real UnitYscale, real TowerYscale returns nothing
globals
integer pDisableFeatures=0
constant integer LIB_Feature_AttackSpeed=0x1
constant integer LIB_Feature_MoveSpeed=0x2
constant integer LIB_Feature_ItemText=0x4
constant integer LIB_Feature_UnitHP_MP=0x8
constant integer LIB_Feature_CUSTOM_FPS_INFO=0x10
constant integer LIB_Feature_COOLDOWNFIX=0x20
constant integer LIB_Feature_MANABAR=0x40
constant integer LIB_Feature_HPBAR=0x80
constant integer LIB_Feature_FileHelper=0x100
constant integer LIB_Feature_Widescreen=0x200
constant integer LIB_Feature_MutePlayer=0x400
constant integer LIB_Feature_AllySkillViewer=0x800
constant integer LIB_Feature_ClickHelper=0x1000
endglobals
function ToggleLibFeatures takes integer flags returns nothing
if pDisableFeatures == 0 then
set pDisableFeatures = GetModuleProcAddress(EXTRADLLNAME, "DisableFeatures")
endif
if pDisableFeatures != 0 then
call CallStdcallWith1Args(pDisableFeatures,flags)
endif
endfunction
void ShowFrameWithPos( int FrameAddr, float left, float bottom, BOOL unk = TRUE )
void ShowFrameItemWithPos( int FrameAddr, float left, float bottom, BOOL unk = TRUE )
void ShowFrameWithPosAligned( int FrameAddr, float left, float bottom, int align, BOOL unk = TRUE )void ShowFrameWithPosAlternativeAligned( int FrameAddr, float left, float bottom, int alignFirst, int alignTwo, BOOL unk = TRUE )
void ShowFrameWithPosAlternative( int FrameAddr, float left, float bottom )
How to put it in operation?Works example : Glyph button.
function CallBackTestX takes nothing returns nothing
call BJDebugMsg("HELLO WORLD")
endfunction
function SetGlyphButtonEnabledF takes boolean enabled returns nothing
if pSetGlyphButtonEnabled == 0 then
set pSetGlyphButtonEnabled = GetModuleProcAddress(EXTRADLLNAME, "SetGlyphButtonEnabled")
endif
if pSetGlyphButtonEnabled != 0 then
call CallStdcallWith1Args(pSetGlyphButtonEnabled,B2I(enabled))
endif
endfunction
function CreateGlyphButtonF takes string cbFuncName, boolean enabled returns nothing
if pCreateGlyphButton == 0 then
set pCreateGlyphButton = GetModuleProcAddress(EXTRADLLNAME, "CreateGlyphButton")
endif
if pCreateGlyphButton != 0 then
call CallStdcallWith2Args(pCreateGlyphButton,GetStringAddress(cbFuncName),B2I(enabled))
endif
endfunction
function ShowGlyphWindowWrap takes nothing returns nothing
if GlyphButtonCreated == false then
set GlyphButtonCreated = true
call CreateGlyphButtonF("CallBackTestX",true)
else
if GlyphButtonEnabled then
set GlyphButtonEnabled = false
else
set GlyphButtonEnabled = true
endif
call SetGlyphButtonEnabledF(GlyphButtonEnabled)
endif
endfunction
Hi Draco! Apparently does not work for me: /file: glyphbutton.fdf
functions// -- INCLUDE FILES ---------------------------------------------------------
IncludeFile "UI\FrameDef\Glue\StandardTemplates.fdf",
// -- LOCAL TEMPLATES -------------------------------------------------------
// -- FRAMES ----------------------------------------------------------------
Frame "FRAME" "GlyphButton" {
Height 0.02,
Width 0.02,
Frame "GLUEBUTTON" "GlyphItemButton" {
SetAllPoints,
ControlDisabledBackdrop "GlyphItemButtonIconDisabled",
Frame "BACKDROP" "GlyphItemButtonIconDisabled" {
BackdropBlendAll,
BackdropBackground "ReplaceableTextures\CommandButtonsDisabled\DISBTNGlyph.blp",
SetAllPoints,
Height 0.02,
Width 0.02,
}
ControlBackdrop "GlyphItemButtonIcon",
Frame "BACKDROP" "GlyphItemButtonIcon" {
BackdropBlendAll,
BackdropBackground "ReplaceableTextures\CommandButtons\BTNGlyph.blp",
SetAllPoints,
Height 0.02,
Width 0.02,
}
}
}
JASS:function CallBackTestX takes nothing returns nothing call BJDebugMsg("HELLO WORLD") endfunction function SetGlyphButtonEnabledF takes boolean enabled returns nothing if pSetGlyphButtonEnabled == 0 then set pSetGlyphButtonEnabled = GetModuleProcAddress(EXTRADLLNAME, "SetGlyphButtonEnabled") endif if pSetGlyphButtonEnabled != 0 then call CallStdcallWith1Args(pSetGlyphButtonEnabled,B2I(enabled)) endif endfunction function CreateGlyphButtonF takes string cbFuncName, boolean enabled returns nothing if pCreateGlyphButton == 0 then set pCreateGlyphButton = GetModuleProcAddress(EXTRADLLNAME, "CreateGlyphButton") endif if pCreateGlyphButton != 0 then call CallStdcallWith2Args(pCreateGlyphButton,GetStringAddress(cbFuncName),B2I(enabled)) endif endfunction function ShowGlyphWindowWrap takes nothing returns nothing if GlyphButtonCreated == false then set GlyphButtonCreated = true call CreateGlyphButtonF("CallBackTestX",true) else if GlyphButtonEnabled then set GlyphButtonEnabled = false else set GlyphButtonEnabled = true endif call SetGlyphButtonEnabledF(GlyphButtonEnabled) endif endfunction
Hi Draco! Apparently does not work for me: /file: glyphbutton.fdf
functions// -- INCLUDE FILES ---------------------------------------------------------
IncludeFile "UI\FrameDef\Glue\StandardTemplates.fdf",
// -- LOCAL TEMPLATES -------------------------------------------------------
// -- FRAMES ----------------------------------------------------------------
Frame "FRAME" "GlyphButton" {
Height 0.02,
Width 0.02,
Frame "GLUEBUTTON" "GlyphItemButton" {
SetAllPoints,
ControlDisabledBackdrop "GlyphItemButtonIconDisabled",
Frame "BACKDROP" "GlyphItemButtonIconDisabled" {
BackdropBlendAll,
BackdropBackground "ReplaceableTextures\CommandButtonsDisabled\DISBTNGlyph.blp",
SetAllPoints,
Height 0.02,
Width 0.02,
}
ControlBackdrop "GlyphItemButtonIcon",
Frame "BACKDROP" "GlyphItemButtonIcon" {
BackdropBlendAll,
BackdropBackground "ReplaceableTextures\CommandButtons\BTNGlyph.blp",
SetAllPoints,
Height 0.02,
Width 0.02,
}
}
}
JASS:function CallBackTestX takes nothing returns nothing call BJDebugMsg("HELLO WORLD") endfunction function SetGlyphButtonEnabledF takes boolean enabled returns nothing if pSetGlyphButtonEnabled == 0 then set pSetGlyphButtonEnabled = GetModuleProcAddress(EXTRADLLNAME, "SetGlyphButtonEnabled") endif if pSetGlyphButtonEnabled != 0 then call CallStdcallWith1Args(pSetGlyphButtonEnabled,B2I(enabled)) endif endfunction function CreateGlyphButtonF takes string cbFuncName, boolean enabled returns nothing if pCreateGlyphButton == 0 then set pCreateGlyphButton = GetModuleProcAddress(EXTRADLLNAME, "CreateGlyphButton") endif if pCreateGlyphButton != 0 then call CallStdcallWith2Args(pCreateGlyphButton,GetStringAddress(cbFuncName),B2I(enabled)) endif endfunction function ShowGlyphWindowWrap takes nothing returns nothing if GlyphButtonCreated == false then set GlyphButtonCreated = true call CreateGlyphButtonF("CallBackTestX",true) else if GlyphButtonEnabled then set GlyphButtonEnabled = false else set GlyphButtonEnabled = true endif call SetGlyphButtonEnabledF(GlyphButtonEnabled) endif endfunction