Moderator: MacroQuest Developers
Wassup wrote:Some changes you could make to genbot.mac:
Example:Can be changed to:Code: Select all
/newif ${Me.Combat}==1 { /newif ${Bool[${Target}]}==1 { /newif ${String[${Target.CleanName}].Equal[${Me.Name}]}==0 { /newif @AutoEngage==1 /varset Combatstatus 1 } } }- ${Me.Combat} returns a Boolean, so no need to use ==1Code: Select all
/newif (${Me.Combat} && ${Target.ID} { /newif ${Target.CleanName.NotEqual[${Me.Name}]} { /newif @AutoEngage==1 /varset Combatstatus 1 } }
- ${Target.ID} is numeric, so if ${Target.ID} is anything other than 0, it is TRUE
- ${Target.CleanName} returns a string, so you don't need to convert it to a string since it already is a string.



Code: Select all
[color=red]|[/color]|**
[botspell]
version=10.02
**|

Code: Select all
/if (${String[${Target.CleanName}].NotEqual[@ParamString]) /target "@ParamString"
Code: Select all
/if (${String[${Target.CleanName}].NotEqual[@ParamString]}) /target "@ParamString"
Code: Select all
Sub Event_Chat
[b] /declare ParamCount local
/declare ParamString local[/b]
/if (${String[@Param0].NotEqual[GROUP]} && ${String[@Param0].NotEqual[@ListenChan]} && ${String[@Param0].NotEqual[TELL]}) /return
/if (${String[@Param0].Equal[GROUP]} && @ListenGroup==0) /return
/if (${String[@Param0].Equal[@ListenChan]} && @ListenChat==0) /return
/for tempvar 0 to @MasterCount
/if (${String[@MName(@tempvar)].Equal[@Param1]}) /goto :SetupTime
/next tempvar
/if (${String[@Param0].Equal[GROUP]}) /return
/if (${String[@Param0].Equal[@ListenChan]}) /return
/if (@Relaytells==1 && ${String[@Param0].Equal[TELL]}) /call ChatOut 1 @MasterName "@Param1 told me: @Param2"
/return
:SetupTime
/varset MasterName @Param1
[b]
| Commands must be preceded by bot's name!
/if (${String["@Param2"].Arg[1].NotEqual["${Me.CleanName}"]}) /return
| Remove BotName from Param2 string.
/varset ParamCount 2
/varset ParamString ""
:Do-RemoveBotNameLoop
/if (${String[${String["@Param2"].Arg[@ParamCount]}].NotEqualCS["NULL"]}) {
/varcat ParamString " ${String["@Param2"].Arg[@ParamCount]}"
/varadd ParamCount 1
/goto :Do-RemoveBotNameLoop
}
/varset Param2 "@ParamString"
[/b]
/if (${String[@Param0].Equal[GROUP]}) {
/for tempvar 0 to @IgnGroupNum
/if (${String[@Param2].Arg[1].Equal[@IgnGroup(@tempvar)]}) /return
/next tempvar
}
/if (${String[@Param0].Equal[@ListenChan]}) {
/for tempvar 0 to @IgnGroupNum
/if (${String[@Param2].Arg[1].Equal[@IgnGroup(@tempvar)]}) /return
/next tempvar
}
/if (${Defined[ArrayCore]}) {
/for tempvar 0 to @ArrayCore
/if (${String[@Param2].Arg[1].Equal[@Commands(botcore-array,@tempvar)]}) {
/call Do-@Commands(botcore-array,@tempvar) @Param2
/return
}
/next tempvar
}
/if (${Defined[ArraySpell]}) {
/for tempvar 0 to @ArraySpell
/if (${String[@Param2].Arg[1].Equal[@Commands(botspell-array,@tempvar)]}) {
/call Do-@Commands(botspell-array,@tempvar) @Param2
/return
}
/next tempvar
}
/if (${Defined[ArrayComb]}) {
/for tempvar 0 to @ArrayComb
/if (${String[@Param2].Arg[1].Equal[@Commands(botcombat-array,@tempvar)]}) {
/call Do-@Commands(botcombat-array,@tempvar) @Param2
/return
}
/next tempvar
}
/if (${Defined[ArrayHeal]}) {
/for tempvar 0 to @ArrayHeal
/if (${String[@Param2].Arg[1].Equal[@Commands(bothealer-array,@tempvar)]}) {
/call Do-@Commands(bothealer-array,@tempvar) @Param2
/return
}
/next tempvar
}
/if (${Defined[ArrayPers]}) {
/for tempvar 0 to @ArrayPers
/if (${String[@Param2].Arg[1].Equal[@Commands(personal-array,@tempvar)]}) {
/call Do-@Commands(personal-array,@tempvar) @Param2
/return
}
/next tempvar
}
/return
