Start.mac script sample

Third party software discussion goes here.
User avatar
moguay
Posts: 170

Start.mac script sample

Post#1 » Wed Aug 31, 2016 8:51 pm

My recommendations for performing a startup scripts, i share a small sample script, sure, need to be adapted for everyone.

From experience. there are many advantages to this startup and configuration script type, I leave it to you to understand the subtlety.

Code: Select all

Sub Main
|** Start Session waiting **|
    /if (!(${Select[${MacroQuest.GameState},INGAME]} && ${Zone.ID} && !${Select[${Me.CleanName},NULL]})) {
        /delay 300s (${Select[${MacroQuest.GameState},INGAME]} && ${Zone.ID} && !${Select[${Me.CleanName},NULL]})
        /delay 1s
    }

|** Clear Previous MQ2 Error messages **|
    /clearerrors

|** Auto start Plugins **|
    /echo Loading PLUGINS...

    /if (!${Plugin[MQ2Cast].Name.Equal[MQ2Cast]})                               /squelch /plugin MQ2Cast
    /if (!${Plugin[MQ2EQBC].Name.Equal[MQ2EQBC]})                               /squelch /plugin MQ2EQBC
    /if (!${Plugin[MQ2ChatWnd].Name.Equal[MQ2ChatWnd]})                         /squelch /plugin mq2chatwnd

    /if (!${Plugin[mq2custombinds].Name.Equal[mq2custombinds]})                 /squelch /plugin mq2custombinds
    /if (!${Plugin[mq2emusearch].Name.Equal[mq2emusearch]})                     /squelch /plugin mq2emusearch
    /if (!${Plugin[mq2labels].Name.Equal[mq2labels]})                           /squelch /plugin mq2labels
    /if (!${Plugin[mq2map].Name.Equal[mq2map]})                                 /squelch /plugin mq2map

    /if (!${Plugin[MQ2NetBots].Name.Equal[MQ2NetBots]})                         /squelch /plugin MQ2NetBots
    /if (!${Plugin[MQ2NetHeal].Name.Equal[MQ2NetHeal]})                         /squelch /plugin MQ2NetHeal
    /if (${Plugin[MQ2FPS].Name.Equal[MQ2FPS]})                                  /squelch /plugin MQ2FPS unload
    /if (${Plugin[MQ2Clip].Name.Equal[MQ2Clip]})                                /squelch /plugin MQ2Clip unload
    /if (!${Plugin[MQ2MoveUtils].Name.Equal[MQ2MoveUtils]})                     /squelch /plugin MQ2MoveUtils
    /if (!${Plugin[MQ2Buffblock].Name.Equal[MQ2Buffblock]})                     /squelch /plugin MQ2Buffblock
    /if (!${Plugin[MQ2Exchange].Name.Equal[MQ2Exchange]})                       /squelch /plugin MQ2Exchange
    /if (!${Plugin[MQ2Twist].Name.Equal[MQ2Twist]})                             /squelch /plugin MQ2Twist
    /if (!${Plugin[MQ2EmuAutoMacro].Name.Equal[MQ2EmuAutoMacro]})               /squelch /plugin MQ2EmuAutoMacro
    /if (!${Plugin[MQ2AutoGroup].Name.Equal[MQ2AutoGroup]})                     /squelch /plugin MQ2AutoGroup
    /if (!${Plugin[MQ2AutoLogin].Name.Equal[MQ2AutoLogin]})                     /squelch /plugin MQ2AutoLogin
    /if (!${Plugin[MQ2EmuMouseAPI].Name.Equal[MQ2EmuMouseAPI]})                 /squelch /plugin MQ2EmuMouseAPI
    /if (!${Plugin[MQ2EmuArt].Name.Equal[MQ2EmuArt]})                           /squelch /plugin MQ2EmuArt
    /if (!${Plugin[MQ2ItemDisplay].Name.Equal[MQ2ItemDisplay]})                 /squelch /plugin MQ2ItemDisplay

    | HUD on tank/offtank class
    /if (${Me.Class.Name.Equal[Warrior]} || ${Me.Class.Name.Equal[Shadow Knight]} || ${Me.CleanName.Lower.Find[${Ini[./Setup.ini,CONFIG,MAINTANK].Lower}]}) {
        /if (!${Plugin[MQ2HUD].Name.Equal[MQ2HUD]})                             /squelch /plugin MQ2HUD noauto
    } else {
        /if (${Plugin[MQ2HUD].Name.Equal[MQ2HUD]})                              /squelch /plugin MQ2HUD unload
    }

    /if (${Plugin[MQ2Vmqnet].Name.Equal[MQ2Vmqnet]})                            /squelch /plugin MQ2Vmqnet unload
    /if (${Plugin[MQ2EmuNetAdvPath].Name.Equal[MQ2EmuNetAdvPath]})              /squelch /plugin MQ2EmuNetAdvPath unload
    /if (${Plugin[MQ2EmuMap].Name.Equal[MQ2EmuMap]})                            /squelch /plugin MQ2EmuMap unload
    /if (${Plugin[MQ2EmuCharacters].Name.Equal[MQ2EmuCharacters]})              /squelch /plugin MQ2EmuCharacters unload
    /if (${Plugin[MQ2DPSAdv].Name.Equal[MQ2DPSAdv]})                            /squelch /plugin MQ2DPSAdv unload
    /if (${Plugin[MQ2Melee].Name.Equal[MQ2Melee]})                              /squelch /plugin MQ2Melee unload
    /if (${Plugin[MQ2Tracking].Name.Equal[MQ2Tracking]})                        /squelch /plugin MQ2Tracking unload

|** Auto start OTHER/CUSTOM or PERSONAL Plugins **|

|** Start Plugin by ini macro **|
    /if (${Ini[./Setup.ini,CONFIG,AUTOFPS].Equal[ON]}) {
        /if (!${Plugin[MQ2FPS].Name.Equal[MQ2FPS]})                              /squelch /plugin MQ2FPS
    }
    /if (${Ini[./Setup.ini,CONFIG,AUTOCLIP].NotEqual[NULL]} && ${Ini[./Setup.ini,CONFIG,AUTOCLIP].NotEqual[OFF]}) {
        /if (!${Plugin[MQ2Clip].Name.Equal[MQ2Clip]})                            /squelch /plugin MQ2Clip
        /delay 5s (${Plugin[MQ2Clip].Name.Equal[MQ2Clip]})
        /if (${Plugin[MQ2Clip].Name.Equal[MQ2Clip]})                            /goodfps ${Ini[./Setup.ini,CONFIG,AUTOCLIP]}
    }

|** Declaration of custom mouse and key bind **|
    | Mouse Key BIND for Stop/Attack/Sqr/Follow
    /bind HOT3_1 SHIFT+CTRL+1
    /bind HOT4_6 SHIFT+CTRL+6
    /bind HOT4_7 SHIFT+CTRL+7
    /bind HOT4_8 SHIFT+CTRL+8
    /bind HOT4_9 SHIFT+CTRL+9

    | View Key BIND
    /bind USE U
    /bind ~CENTERVIEW HOME
    /bind First_Person_Camera N
    /bind Chase_Camera O
    /bind Open_Inv_Bags SHIFT+CTRL+I
    /bind Close_Inv_Bags SHIFT+CTRL+O
    /bind Cmd_Clipboard_Paste SHIFT+CTRL+V

    | Clear eqkey
    /bind TOGGLETARGET clear
    /bind CYCLEREPLY clear
    /bind CYCLEREPLY_BACK clear

    | Target Key BIND
    /bind ~TargetNPC `
    /bind ~CycleNpcTargets SHIFT+`
    /bind CycleNpcTargets TAB
    /bind TOGGLETWOTARGETS SHIFT+TAB

|** Load NETBOT & NETHEAL **|
    /squelch /netbot on grab=on send=on
    /squelch /netheal on send=on grab=on

|** Load MQ2FPS Settings **|
    /if (${Plugin[MQ2FPS].Name.Equal[MQ2FPS]}) {
        /squelch /maxfps fg 25
        /squelch /maxfps bg 15
        /squelch /render fg 1
        /squelch /render bg 1
    }

|** Common Effect,Chat, toons default set **|
    | Disable effect
    /showspelleffects off
    | /showname off
    /showgrass off

    | Disable inspect
    /toggleinspect off

    | Load MQ2ChatWnd Font Size
    /squelch /mqfont 1
    /squelch /chatfontsize 1

    | Setup default channel
    | /squelch /channel guildsay

    | Load MQ2ChatWnd silent
    /squelch /bccmd set silentoutmsg on
    /squelch /bccmd set silentcmd on
    /squelch /bccmd set silentinccmd on

    | Load Eqbcs reconnect time
    /squelch /bccmd set reconnectsecs 1

    | Load Boxing Optimisations
    /squelch /Showspelleffect off
    /squelch /showname off
    /squelch /showgrass off
    /squelch /showspelleffects off

    | Load MQ2AutoGroup
    /squelch /autogroup on

    | Load Target Group Buff [off]
    /squelch /tgb off

    | Load Assist [off]
    /squelch /assist off

    | Configure default moveto distance
    /squelch /moveto dist 10

    | Sound Realism 0 - 20 (5% by increment) - Prevent the sound saturation with many boxing session
    /notify OptionsWindow OGP_SoundRealismSlider newvalue 5
    | Music Volume 0 - 20
    /notify OptionsWindow OGP_MusicVolumeSlider newvalue 0
    | Sound Volume 0 - 20
    /notify OptionsWindow OGP_SoundVolumeSlider newvalue 5


|** Declaration of GOBAL var and timer (required for a hot restart macros) **|

    /if (!${Defined[MaxDPStimer1]})                                             /declare MaxDPStimer1 timer global                              0
    /if (!${Defined[MaxDPStimer2]})                                             /declare MaxDPStimer2 timer global                              0
    /if (!${Defined[MaxDPStimer3]})                                             /declare MaxDPStimer3 timer global                              0
    /if (!${Defined[MaxDPStimer4]})                                             /declare MaxDPStimer4 timer global                              0
    /if (!${Defined[MaxDPStimer5]})                                             /declare MaxDPStimer5 timer global

    /if (!${Defined[Recast10Timer]})                                            /declare Recast10Timer timer global                             0
    /if (!${Defined[Recast11Timer]})                                            /declare Recast11Timer timer global                             0
    /if (!${Defined[Recast17Timer]})                                            /declare Recast17Timer timer global
   
    | ETC...
   
|** Aliases declaration **|

    /if (!${Ini[..\MacroQuest.ini,Aliases,/start].Replace[$,].Equal[/noparse /bcaa //if (!${Macro.RunTime}) /macro main.mac]}) {
        /alias /start                       /noparse /bcaa //if (!${Macro.RunTime) /macro main.mac
        /call Runwait
    }
    /if (!${Ini[..\MacroQuest.ini,Aliases,/restart].Replace[$,].Equal[/noparse /bcaa //macro main.mac]}) {
        /alias /restart                    /noparse /bcaa //macro main.mac
        /call Runwait
    }
    /if (!${Ini[..\MacroQuest.ini,Aliases,/endall].Replace[$,].Equal[/bcaa //endmacro]}) {
        /alias /endall                      /bcaa //endmacro
        /call Runwait
    }
    /if (!${Ini[..\MacroQuest.ini,Aliases,/end].Replace[$,].Equal[/endmacro]}) {
        /alias /end                         /endmacro
        /call Runwait
    }
   
    | ETC...

    | Standard Stick
    | Bug fix with in Natimbi (Equal changed for Find function), update for Tanking/Offtanking mode exclusion
    /noparse /alias /stickme     /multiline @ /echo Command [ /stickme ]@ /noparse /bca //multiline ; /if (!${Defined[StickZone]}) /declare StickZone string global;/if (!${Defined[StickTar]}) /declare StickTar int global;/if (!${Defined[TankTarget]}) /declare TankTarget string global 0@ /bca //varset StickZone ${Zone.Name}@ /bca //varset StickTar ${Me.ID}@ /noparse /bca //if (${TankTarget.Equal[0]} && ${Zone.Name.Find[${StickZone}]} && ${Spawn[${StickTar}].ID} && ${Spawn[${StickTar}].Distance}<300 && ${LineOfSight[${Me.Y},${Me.X},${Me.Z}:${Spawn[${StickTar}].Y},${Spawn[${StickTar}].X},${Spawn[${StickTar}].Z}]}) /multiline ; /echo Sticking to [ ${Spawn[${StickTar}].CleanName} ];/squelch /face ID ${StickTar} fast;/stick ID ${StickTar} 10 moveback behindonce@/noparse /bca //timed 10 /if (${Stick.Status.Equal[OFF]}) /bc NOT Sticking to [ ${Spawn[${StickTar}].CleanName} - ${Spawn[${StickTar}].Distance} - ${Spawn[${StickTar}].LineOfSight} - ${Zone.Name} ]
    /call Runwait
       
    | ETC...

|** Show MQ2 Error on Start sequence **|
    /if (${MacroQuest.Error.NotEqual[NULL]}) {
        /bcaa //docommand /${echo} ${Cr}Last MQ2 error${Cx}: ${MacroQuest.Error} - [ PC:${Ct}${Me.CleanName}${Cx} ]
        /endmac
    }
   
|** Auto start the MAIN macro
    /echo Main macro starting...
    /squelch /docommand /macro main.mac

/return

Sub Runwait
    |** ini file waiting for Windows 10 multiple write in sampe ini BUG **|
    /if (!${Defined[Running]}) /declare Running int outer  ${MacroQuest.Running}
    /delay 1s (${Running}<${MacroQuest.Running})
    /varset Running ${MacroQuest.Running}
/return

Return to “Third party software”

Who is online

Users browsing this forum: No registered users and 1 guest