MacroGoblin Release v 2.8.0.4
Date: 06-07-2010
This should now be downloadable in "My Downloads". Uninstall the old version before
installing this one.
Summary
This is a large feature upgrade for the MacroGoblin program. The MacroGoblin
program runs all of the bots available here.
Bot designers will find many new features and functions available.
Bot users
will not need to upgrade to this version to run their favorite bots but you're
encouraged to do so. Future bots may require this version or higher to run
properly.
Installing the New Version
- First Uninstall the old MG version using the Control Panel (Add/Remove
Programs).
- Head to the "My Downloads" part of the website and download the new version
(v2.8.0.4).
- Run the downloaded installation file. It should install .Net Framework 3.5 SP1
if you don't already have it installed.
- Start up the new version and log into the MG servers.
- Now you can either exit the program and run a bot launcher (ie Aion Goblin), or
load up a .mg file bot.
The information in this change log is primarily for bot designers and modifiers. Regular bot users do not need to understand this
technical information.
Change Highlights
- MacroGoblin now runs .Net Framework 3.5
- You can create MacroGoblin plugins in .Net Framework 3.5 and below.
- The MacroGoblin installation program will now automatically detect if you have
the proper .Net framework dependencies. If you do not have them it will
download and install them directly from the setup program.
- You can now optionally provide Input parameters to routines. You can also get an
Output value from routines. This means that routines can optionally act like
functions in traditional programming. See the manual for specifics (Expressions
and Functions -> Routine Input and Output).
- In the Routine Editor, you can now optionally organize Routines in folders.
Routines are now organized by routine folders and routine names (alphabetical).
- Memory monitors can now accept more advanced memory addresses such as pointers,
module addresses, etc. All number inputs must now be in hexadecimal format.
- Memory reading functions and memory monitors now can be setup to read either
Ansi String or Unicode String memory.
- Over 130 New MacroGoblin functions were added. These are usable in MacroGoblin
Routines. See the list below and the manual for more info on these new
functions.
- 3 New Plugin functions are available to use within plugin code.
- Updated MacroGoblin manual and Plugin manual.
New MG Functions
(Usable in Routines)
New Miscellaneous MG Functions
MG Manual -> Function Library -> Miscellaneous Functions
- PluginExists(PluginName) - Returns true if a plugin (PluginName) is loaded and
enabled.
- GetPluginPath(PluginName) - Returns the path of the plugin (PluginName).
- GetMGVersion() - Returns a string representing the current MacroGobln version.
- VersionCompare(Ver1, Ver2) - Compares two version strings. If Ver1 comes before
Ver2 function returns -1. If Ver1 equals Ver2 function returns 0. If Ver1 comes
after Ver2 function returns 1.
New Memory MG Functions
MG Manual -> Function Library -> Memory Reading Functions
- Read_MemoryEx(WindowName,AddressString,DataType) - A smarter memory reading
function that takes a string input and can read both regular Hex static
addresses and Multi-level pointers. It can also read module based addresses and
pointers.
- GetModuleNames(WindowName) - Returns a comma-delimited string of all modules
contained in the process (WindowName).
- GetModuleBaseAddress(WindowName,ModuleName) - Returns the base memory address of
the specified module (ModuleName) in the specified process (WindowName).
New Window MG Functions
MG Manual -> Function Library -> Window Functions
- Win_CursorIsAbove(WindowName) - Returns True if the mouse cursor is above the
specified window.
- Win_IsChosen(WindowName) - Returns true if the window (WindowName) is the
top-most window in the operating sytem.
- Win_AcquireTopWindow(WindowName) - Acquires information about the top-most
window and inputs those values into the specified Window on the Computer/Window
setup. Returns true if successful
- Win_ProcessIsRunning(WindowName) - Returns true if the window process is
actually running locally.
New Label MG Functions
MG Manual -> Function Library -> Label Functions
- Label_LoadImage(LabelName,FilePath) - This function will load an image into a
user-interface label (LabelName) from a file on the computer (FilePath).
New Mouse MG Functions
MG Manual -> Function Library -> Mouse Functions
- Mouse_ScrollUp(Ticks) - Simulates a mouse scroll button scrolling up for the
specified number of ticks.
- Mouse_ScrollDown(ticks) - Simulates a mouse scroll button scrolling down for the
specified number of ticks.
- Mouse_Position() - Returns the mouse cursor coordinates in point-text format.
New Point Structure MG Functions
MG Manual -> Function Library -> Point Functions
- Pt_Make2D(x,y) - Returns a 2D Point Structure using the x and y number inputs. x
and y can be integer or decimal numbers.
- Pt_Make3D(x,y,z) - Returns a 3D Point Structure using x, y and z number inputs.
x, y and z can be integer or decimal numbers.
- Pt_GetX(PS) - Returns the X coordinate number in the Point Structure (PS).
- Pt_GetY(PS) - Returns the Y coordinate number in the Point Structure (PS).
- Pt_GetZ(PS) - Returns the Z coordinate number in the 3D Point Structure (PS).
- Pt_CalcDistance(PS1, PS2) - Calculates the distance between Point1 and Point2.
- Pt_Add(PS1, PS2) - Adds the coordinates in PS1 to the coordinates in PS2.
- Pt_Mult(PS1, PS2) - Multiplies the coordinates in PS1 by the coordinates in PS2.
- Pt_Div(PS1, PS2) - Divides the coordinates in PS1 by the coordinates in PS2.
RGB Color Structure MG Functions
MG Manual -> Function Library -> RGB Structure Functions
- RGB_Make(Red,Green,Blue) - Returns a RGB text Structure using Red, Green and
Blue number inputs.
- RGB_GetR(RGBText) - Returns the Red number in the RGB text structure.
- RGB_GetG(RGBText) - Returns the Green number in the RGB text Structure.
- RGB_GetB(RGBText) - Returns the Blue number in the RGB text structure.
- RGB_Add(RGB1, RGB2) - Adds the color values in RGB1 to the color values in RGB2.
- RGB_Mult(RGB1, RGB2) - Multiplies the color values in RGB1 by the color values
in RGB2.
New Date & Time MG Functions
MG Manual -> Function Library -> Date and Time Functions
- DT_GetCurrent() - Returns a Date-Time structure representing the current date
and time.
- DT_Make(Year,Month,Day,Hour,Minute,Second,Millisecond) - This function takes 7
number inputs and creates a date-time structure from it.
- DT_Subtract(DT1, DT2) - Returns the TimeSpan between two dates (DT1 & DT2)
- DT_Elapsed(DT) - Returns the TimeSpan that's elapsed since Date-Time (DT).
- DT_AddTS(DT, TS) - Adds the TimeSpan (TS) to the specified Date (DT) and returns
the resultant Date-Time.
- DT_AddMS(DT, MS) - Adds milliseconds (MS) to the specified Date-Time (DT) and
returns resultant Date-Time.
- DT_AddSec(DT, Secs) - Adds seconds (Secs) to the specified Date-Time (DT) and
returns resultant Date-Time.
- DT_AddMins(DT, Mins) - Adds minutes (Mins) to the specified Date-Time (DT) and
returns resultant Date-Time.
- DT_AddHours(DT, Hours) - Adds hours (Hours) to the specified Date-Time (DT) and
returns resultant Date-Time.
- DT_GetString(DT, FormatString) - Returns a displayable string representing the
Date-Time (DT). It uses the specified format text, and the computer's region
settings.
- IsPastDT(DT) - Returns True if you are currently past the specified Date-Time
(DT), otherwise false.
- TS_Make(Days,Hours,Minutes,Seconds,Milliseconds) - This function takes 5 number
inputs and creates a TimeSpan structure from it.
- TS_Add(TS1, TS2) - Returns a Time Span that is the sum of the two entered time
spans (TS1 and TS2).
- TS_GetString(TS, FormatNumber) - Returns a displayable string representing the
TimeSpan (TS). The FormatNumber must be 0,1 or 2.
- TS_TotalDays(TS) - Returns the total number of days in the TimeSpan (TS).
- TS_TotalHours(TS) - Returns the total number of hours in the TimeSpan (TS). A
timespan containing just 2 days would return 48 hours.
- TS_TotalMins(TS) - Returns the Total number of minutes in the TimeSpan (TS). A
timespan containing just 2 hours would return 120 mins.
- TS_TotalSecs(TS) - Returns the Total number of seconds in the TimeSpan (TS). A
timespan containing just 2 minutes would return 120 secs.
- TS_TotalMS(TS) - Returns the Total number of milliseconds in the TimeSpan (TS).
A timespan containing just 4 seconds would return 4000 milliseconds.
- GetYear(DT) - Returns the number of the Year in a Date-Time (DT).
- GetMonth(DT) - Returns the number of the Month in a Date-Time (DT).
- GetDay(DT/TS) - Returns the number of the Day in a Date-Time (DT) or Days in a
TimeSpan (TS).
- GetHour(DT/TS) - Returns the number of the Hour in a Date-Time (DT) or Hours in
a TimeSpan (TS).
- GetMin(DT/TS) - Returns the number of the Minute in a Date-Time (DT) or Minutes
in a TimeSpan (TS).
- GetSec(DT/TS) - Returns the number of the Second in a Date-Time (DT) or Seconds
in a TimeSpan (TS).
- GetMS(DT/TS) - Returns the number of the Day in a Date-Time (DT) or TimeSpan
(TS).
- TC_GetCurrent() - Returns the computer's TickCount which is the number of
milliseconds since it was turned on.
- TC_Elapsed(TC) - Returns the difference between a previous TickCount(TC) and the
current TickCount. The result is the number of milliseconds between the times.
- TC_To_TS(TC) - This function converts a TickCount (milliseconds) into a TimeSpan
structure.
- IsPastTC(TC) - Returns True if the the current TickCount is past the entered
TickCount (TC).
New File and Path MG Functions
MG Manual -> Function Library -> File and Path Functions
- File_Delete(FileLocation) - Attempts to delete the specified file. Returns True
if succeeded, otherwise false
- Directory_Exists(Directory) - Returns True if the directory exists, otherwise
false.
- Directory_Create(Path) - Creates a new directory (Path). Returns True if
succeeded, otherwise false.
- Directory_Delete(Path) - Attempts to delete an Empty directory. Returns True if
succeeded, otherwise false
- GetMGDirectory() - Returns the directory that MacroGoblin is installed in.
- GetMGPluginDirectory() - Returns the MacroGoblin plugin directory.
- GetFileExtension(Path) - Returns the file extension part of a path string.
- GetFileName(Path) - Returns the Filename in a path string.
- GetDirectoryName(Path) - Returns the directory in a full path string.
- GetFileNameWithoutExtension(Path) - Returns the Filename without it's extension
in a path string.
- GetPathRoot(Path) - Returns the root of the path string.
- BrowseForDirectory(StartPath) - Prompts the user to select a directory on their
computer and returns the path string selected by the user. If the StartPath
directory exists then the user will start browsing in that directory.
- BrowseForFile(StartPath) - Prompts the user to select a file location on their
computer and returns the file path string selected by the user. If the
StartPath directory exists then the user will start browsing in that directory.
- GetFiles(Path) - Returns a comma-delimited string listing the full paths of all
files in the given path.
- GetSubdirectories(Path) - Returns a comma-delimited string listing the full
paths of all subdirectories in the given path.
New Object Existance MG Functions
MG Manual -> Function Library -> Object Existance Functions
- Exists_CPU(ComputerName) - Returns true if the computer/window setup contains a
computer with the name (ComputerName).
- Exists_Window(ComputerName,WindowName) - Returns true if there is a Window named
(WindowName) on computer (ComputerName) in the computer/window setup.
- Exists_Rtn(ComputerName,RoutineName) - Returns true if there is a Routine named
(RoutineName) on computer (ComputerName).
- Exists_GV(ComputerName,GlobalVariableName) - Returns true if there is a Global
Variable named (GlobalVariableName) on computer (ComputerName).
- Exists_TFM(ComputerName,TFMName) - Returns true if there is a Text File Monitor
named (TFMName) on computer (ComputerName).
- Exists_TFMT(ComputerName,TFMName,TFMTName) - Returns true if there is a Text
File Monitor Trigger named (TFMTName) on TFM (TFMName).
- Exists_PM(ComputerName,PMName) - Returns true if there is a Pixel Monitor named
(PMName) on computer (ComputerName).
- Exists_PMT(ComputerName,PMName,PMTName) - Returns true if there is a Pixel
Monitor Trigger named (PMTName) on PM (PMName).
- Exists_MM(ComputerName,WindowName,MMName) - Returns true if there is a Memory
Monitor named (MMName) on the window (WindowName).
- Exists_MMT(ComputerName,WindowName,MMName,MMTName) - Returns true if there is a
Memory Monitor Trigger named (MMTName) on the MM (MMName).
New Custom Settings MG Functions
MG Manual -> Function Library -> Custom Settings Functions
- CS_Add(CS,SettingName,DataType,Value) - Returns Custom Settings after Adding a
new setting named (SettingName) to text variable (CS).
- CS_Remove(CS,SettingName) - Returns Custom Settings after Removing a setting
named (SettingName) from varaible (CS).
- CS_Get(CS,SettingName,DataType) - Returns the value of a setting named
(SettingName) on variable (CS).
- CS_Set(CS,SettingName,NewValue) - Returns Custom Settings after setting the
value of a setting named (SettingName) on variable (CS).
- CS_SaveToFile(CS,FilePath) - Saves all settings in CSVariable to a file.
- CS_LoadFromFile(FilePath) - Returns the settings found in the specified file.
New Pixel Reading MG Functions
MG Manual -> Function Library -> Pixel Reading Functions
- ReadPixel(X,Y) - This function returns the the Red, Green, and Blue color values
of the designated screen coordinate. X and Y must be integer numbers and must
fit within the bounds of your screen. It returns the RGB values in the text RGB
Structure format.
- ReadWinPixel(WindowName,X,Y) - This function returns the current RGB values of
the pixel at the designated window coordinate in RGB Text Structure format. X
and Y must be integer numbers and must fit within the bounds of your screen.
New Pixel Monitor (PM) MG Functions
MG Manual -> Function Library -> Pixel Monitor Functions
- PM_Get_CurrentColor(PM_Name) - Returns the current RGB color value for a
single-pixel monitor in text format. Only works if the PM is Running.
- PM_Get_Point(PM_Name) - Returns the current X,Y coordinates of the pixel monitor
in a text point structure.
- PM_Get_ReadInterval(PM_Name) - Returns the pixel monitor's read interval.
- PM_Get_WindowName(PM_Name) - Returns the pixel monitor's window name if there is
one.
- PM_Get_IsArea(PM_Name) - Returns True if the PM is an Area Pixel Monitor.
Returns False if the PM is a single-pixel monitor.
- PM_Get_GroupName(PM_Name) - Returns the GroupName of the pixel monitor, if there
is a group.
- PM_Set_Point(PM_Name,PointText) - Sets the pixel monitors X,Y coordinates
according to the point formated text input.
- PM_Set_ReadInterval(PM_Name,ReadInterval) - Sets the ReadInterval for the
specified PM.
- PM_Set_Name(PM_Name,NewName) - Renames the Pixel Monitor.
- PM_Set_WindowName(PM_Name,WindowName) - Sets the name of the window associated
with the Pixel Monitor. If no window is specified then the PM uses screen
coordinates instead of window coordinates.
- PM_Set_IsArea(PM_Name,IsArea) - Sets whether the PM is an Area PM or
single-Pixel PM.
- PM_Set_GroupName(PM_Name,GroupName) - Sets the options groupname of the PM.
New Pixel Monitor Trigger (PMT) MG
Functions
MG Manual -> Function Library -> Pixel Monitor Trigger Functions
Get Various Properties of the PMT:
- PMT_Get_RedCondition_Val1(PM_Name, Trigger_Name)
- PMT_Get_RedCondition_Val2(PM_Name, Trigger_Name)
- PMT_Get_GreenCondition_Val1(PM_Name, Trigger_Name)
- PMT_Get_GreenCondition_Val2(PM_Name, Trigger_Name)
- PMT_Get_BlueCondition_Val1(PM_Name, Trigger_Name)
- PMT_Get_BlueCondition_Val2(PM_Name, Trigger_Name)
Set Various Properties of the PMT:
- PMT_Set_RedCondition_Val1(PM_Name, Trigger_Name, NewValue)
- PMT_Set_RedCondition_Val2(PM_Name, Trigger_Name, NewValue)
- PMT_Set_GreenCondition_Val1(PM_Name, Trigger_Name, NewValue)
- PMT_Set_GreenCondition_Val2(PM_Name, Trigger_Name, NewValue)
- PMT_Set_BlueCondition_Val1(PM_Name, Trigger_Name, NewValue)
- PMT_Set_BlueCondition_Val2(PM_Name, Trigger_Name, NewValue)
New Text File Monitor (TFM) MG
Functions
MG Manual -> Function Library -> Text File Monitor Functions
- TFM_Get_FileLocation(TFMName) - Returns the path of the file that the TFM is set
to read.
- TFM_Get_ReadInterval(TFMName) - Returns the read interval of the TFM.
- TFM_Set_ReadInterval(TFMName,ReadInterval) - Sets the Read Interval of the TFM.
New Memory Monitor (MM) MG
Functions
MG Manual -> Function Library -> Memory Monitor Functions
- MM_Get_AddressText(Window_Name, MM_Name) - Returns the memory address of the
Memory Monitor.
- MM_Get_ReadInterval(Window_Name, MM_Name) - Returns the Read Interval of the
Memory Monitor.
- MM_Get_ValueType(Window_Name, MM_Name) - Returns the Value Type code of the
Memory Monitor.
- MM_Set_AddressText(Window_Name, MM_Name, AddressText) - Sets the memory address
to read in the Memory Monitor. You can enter pointers, etc.
- MM_Set_ReadInterval(Window_Name, MM_Name, ReadInterval) - Sets the read interval
in the Memory Monitor.
- MM_Set_ValueType(Window_Name, MM_Name, ValueType) - Sets the Value type code in
the Memory Montior.
New List Variable MG Functions
MG Manual -> Function Library -> List Variable Functions
- _ToString(SeparationText) - Returns a single string representing all data in the
list variable. The data in the output string is separated by the specified
separation string.
- _FromString(InputString,SeparationText) - Clears out old data from the list
variable and then loads the data from the specified input string. The entries
in the input string should be separated by the specified separation text.
- _ToFile(FileLocation,SeparationText) - Writes the data in a list variable to a
text file. The data entries are separated by the specified separation text.
- _FromFile(FileLocation,SeparationText) - Clears out the old data in the list
variable and then loads the data in a text file into the list variable. The
file's data entries should be separated by the specified separation text.
New MessageBox MG Function
MG Manual -> Function Library -> MessageBox Function
This function lets you use standard Window's MessageBox in your routines.
New Plugin Functions (Usable in
Plugins)
Plugin Manual
- ReadMemory_Ex(WindowName,AddressText) - This is a smarter memory reading
function that takes a string MemoryAddress input and can read both regular
Hexadecimal static addresses and Multi-level pointers. It can also read module
based addresses and pointers.
- GetModuleNames(WindowName) - Returns a string list of all modules contained in
the process (WindowName).
- GetModuleBaseAddress(WindowName,ModuleName) - Returns the base memory address of
the specified module (ModuleName) in the specified process (WindowName).