Code: Select all
/for e 1 to ${Me.Bank[${i}].Container}
/if (${Me.Bank[${i}].Item[${e}].ID} && ${Me.Bank[${i}].Item[${e}].Type.Equal[${strFindType}]}) {
/call strArrayArg "${itemNameList}" "${Me.Bank[${i}].Item[${e}]}" "|"
/varset itemNameList ${Macro.Return}
}
/next e
Sub strArrayArg(string strArrayArg, string strAdd, strSeparator)
/if (!${strArrayArg.Length}) {
/varset strArrayArg ${strAdd}
} else {
/varset strArrayArg ${strArrayArg}${strSeparator}${strAdd}
}
/return ${strArrayArg}
Code: Select all
/declare itemArray[33] string local
Code: Select all
Sub ListDelbyArg(string sList,int sArg,string sDiv)
/if (!${Defined[sDiv]}) /declare sDiv string local |
/varset ${sList} ${sDiv}${${sList}}${sDiv}${sDiv}
/declare sright int local
/declare sleft int local
/declare splaceholder string local ${${sList}}
/varset splaceholder ${splaceholder.Arg[${sArg},${sDiv}]}
/varcalc sleft ${${sList}.Find[${sDiv}${splaceholder}${sDiv}]}
/varset splaceholder ${splaceholder}${sDiv}
/varcalc sright ${sleft}+${splaceholder.Length}
/varset ${sList} ${${sList}.Left[${sleft}]}${${sList}.Right[-${sright}]}
/varset ${sList} ${${sList}.Left[-2].Right[-1]}
/if (${DebugList.Find[core]}) /echo List ${${sList}} deleted arg ${sArg}
/return
Code: Select all
Sub ListReplacebyArg(string sList,string sElement,string sArg,string sDiv)
/if (!${Defined[sDiv]}) /declare sDiv string local |
/varset ${sList} ${sDiv}${${sList}}${sDiv}${sDiv}
/declare sright int local
/declare sleft int local
/declare splaceholder string local ${${sList}}
/varset splaceholder ${splaceholder.Arg[${sArg},${sDiv}]}
/varcalc sleft ${${sList}.Find[${sDiv}${splaceholder}${sDiv}]}
/varset splaceholder ${splaceholder}${sDiv}
/varcalc sright ${sleft}+${splaceholder.Length}
/varset ${sList} ${${sList}.Left[${sleft}]}${sElement}${sDiv}${${sList}.Right[-${sright}]}
/varset ${sList} ${${sList}.Left[-2].Right[-1]}
/if (${DebugList.Find[core]}) /echo List ${${sList}} sElement ${sElement} repladed arg ${sArg}
/return
Code: Select all
Sub StringReplaceAll(string sList,string oldElement,string newElement)
/declare i int local
/declare sright int local
/declare sleft int local
/for i 1 to ${${sList}.Length}
/if (${${sList}.Find[${oldElement}]}) {
/varset ${sList} |${${sList}}||
/varcalc sleft ${${sList}.Find[${oldElement}]}-1
/varcalc sright ${sleft}+${oldElement.Length}
/varset ${sList} ${${sList}.Left[${sleft}]}${newElement}${${sList}.Right[-${sright}]}
/varset ${sList} ${${sList}.Left[-2].Right[-1]}
} else {
/if (${DebugList.Find[core]}) /echo List ${${sList}} oldElement ${oldElement} replaced newElement ${newElement}
/return
}
/next i
/echo Error in StringReplaceAll
/return
Code: Select all
Sub ListDelbyName(string sList,string sName,string sDiv)
/if (!${Defined[sDiv]}) /declare sDiv string local |
/varset ${sList} ${sDiv}${${sList}}${sDiv}${sDiv}
/declare sright int local
/declare sleft int local
/declare splaceholder string local ${sDiv}${${sList}}${sDiv}
/varcalc sleft ${splaceholder.Find[${sDiv}${sName}${sDiv}]}-1
/varset splaceholder ${sName}${sDiv}
/varcalc sright ${sleft}+${splaceholder.Length}
/varset ${sList} ${${sList}.Left[${sleft}]}${${sList}.Right[-${sright}]}
/varset ${sList} ${${sList}.Left[-2].Right[-1]}
/if (${DebugList.Find[core]}) /echo List ${${sList}} Deleted: ${sName}
/return ${sList}
Code: Select all
Sub ListAppendElement(string sList,string sElement,string sDiv)
/if (!${Defined[sDiv]}) /declare sDiv string local |
| Create List if not found and not array
/if (!${sList.Find[Array]}) {
/if (!${Defined[${sList}]}) /declare ${sList} string local
}
/if (${${sList}.Length}) {
/varset ${sList} ${${sList}}${sDiv}${sElement}
} else {
/varset ${sList} ${sElement}
}
/if (${DebugList.Find[core]}) /echo List ${${sList}} Added after: ${sElement}
/return ${sList}
Code: Select all
Sub ListPrependElement(string sList,string sElement,string sDiv)
/if (!${Defined[sDiv]}) /declare sDiv string local |
/if (${${sList}.Length}) {
/varset ${sList} ${sElement}${sDiv}${${sList}}
} else {
/varset ${sList} ${sElement}
}
/if (${DebugList.Find[core]}) /echo List ${${sList}} Added before: ${sElement}
/return ${sList}
Code: Select all
Sub ListFindStringArg(string sList,string sString,string sDiv)
/if (!${Defined[sDiv]}) /declare sDiv string local |
/declare sReturn int local
/varcalc sReturn ${${sList}.Left[${${sList}.Find[${sString}]}].Count[${sDiv}]}+1
/if (${DebugList.Find[core]}) /echo List ${${sList}} Arg: ${sReturn}
/return ${sReturn}
moguay wrote:Below a useful function to manage String arrayCode: Select all
Sub ListDelbyArg(string sList,int sArg,string sDiv)
/if (!${Defined[sDiv]}) /declare sDiv string local |
/varset ${sList} ${sDiv}${${sList}}${sDiv}${sDiv}
/declare sright int local
/declare sleft int local
/declare splaceholder string local ${${sList}}
/varset splaceholder ${splaceholder.Arg[${sArg},${sDiv}]}
/varcalc sleft ${${sList}.Find[${sDiv}${splaceholder}${sDiv}]}
/varset splaceholder ${splaceholder}${sDiv}
/varcalc sright ${sleft}+${splaceholder.Length}
/varset ${sList} ${${sList}.Left[${sleft}]}${${sList}.Right[-${sright}]}
/varset ${sList} ${${sList}.Left[-2].Right[-1]}
/if (${DebugList.Find[core]}) /echo List ${${sList}} deleted arg ${sArg}
/returnCode: Select all
Sub ListReplacebyArg(string sList,string sElement,string sArg,string sDiv)
/if (!${Defined[sDiv]}) /declare sDiv string local |
/varset ${sList} ${sDiv}${${sList}}${sDiv}${sDiv}
/declare sright int local
/declare sleft int local
/declare splaceholder string local ${${sList}}
/varset splaceholder ${splaceholder.Arg[${sArg},${sDiv}]}
/varcalc sleft ${${sList}.Find[${sDiv}${splaceholder}${sDiv}]}
/varset splaceholder ${splaceholder}${sDiv}
/varcalc sright ${sleft}+${splaceholder.Length}
/varset ${sList} ${${sList}.Left[${sleft}]}${sElement}${sDiv}${${sList}.Right[-${sright}]}
/varset ${sList} ${${sList}.Left[-2].Right[-1]}
/if (${DebugList.Find[core]}) /echo List ${${sList}} sElement ${sElement} repladed arg ${sArg}
/returnCode: Select all
Sub StringReplaceAll(string sList,string oldElement,string newElement)
/declare i int local
/declare sright int local
/declare sleft int local
/for i 1 to ${${sList}.Length}
/if (${${sList}.Find[${oldElement}]}) {
/varset ${sList} |${${sList}}||
/varcalc sleft ${${sList}.Find[${oldElement}]}-1
/varcalc sright ${sleft}+${oldElement.Length}
/varset ${sList} ${${sList}.Left[${sleft}]}${newElement}${${sList}.Right[-${sright}]}
/varset ${sList} ${${sList}.Left[-2].Right[-1]}
} else {
/if (${DebugList.Find[core]}) /echo List ${${sList}} oldElement ${oldElement} replaced newElement ${newElement}
/return
}
/next i
/echo Error in StringReplaceAll
/returnCode: Select all
Sub ListDelbyName(string sList,string sName,string sDiv)
/if (!${Defined[sDiv]}) /declare sDiv string local |
/varset ${sList} ${sDiv}${${sList}}${sDiv}${sDiv}
/declare sright int local
/declare sleft int local
/declare splaceholder string local ${sDiv}${${sList}}${sDiv}
/varcalc sleft ${splaceholder.Find[${sDiv}${sName}${sDiv}]}-1
/varset splaceholder ${sName}${sDiv}
/varcalc sright ${sleft}+${splaceholder.Length}
/varset ${sList} ${${sList}.Left[${sleft}]}${${sList}.Right[-${sright}]}
/varset ${sList} ${${sList}.Left[-2].Right[-1]}
/if (${DebugList.Find[core]}) /echo List ${${sList}} Deleted: ${sName}
/return ${sList}Code: Select all
Sub ListAppendElement(string sList,string sElement,string sDiv)
/if (!${Defined[sDiv]}) /declare sDiv string local |
| Create List if not found and not array
/if (!${sList.Find[Array]}) {
/if (!${Defined[${sList}]}) /declare ${sList} string local
}
/if (${${sList}.Length}) {
/varset ${sList} ${${sList}}${sDiv}${sElement}
} else {
/varset ${sList} ${sElement}
}
/if (${DebugList.Find[core]}) /echo List ${${sList}} Added after: ${sElement}
/return ${sList}Code: Select all
Sub ListPrependElement(string sList,string sElement,string sDiv)
/if (!${Defined[sDiv]}) /declare sDiv string local |
/if (${${sList}.Length}) {
/varset ${sList} ${sElement}${sDiv}${${sList}}
} else {
/varset ${sList} ${sElement}
}
/if (${DebugList.Find[core]}) /echo List ${${sList}} Added before: ${sElement}
/return ${sList}Code: Select all
Sub ListFindStringArg(string sList,string sString,string sDiv)
/if (!${Defined[sDiv]}) /declare sDiv string local |
/declare sReturn int local
/varcalc sReturn ${${sList}.Left[${${sList}.Find[${sString}]}].Count[${sDiv}]}+1
/if (${DebugList.Find[core]}) /echo List ${${sList}} Arg: ${sReturn}
/return ${sReturn}
Code: Select all
/varset lower70 int local 70
/varset lower70toon string local
/varset lower50 int local 50
/varset lower70toon string local
/for x 0 to ${Group.Members}
if ${Group.Member[x].PctHPs} > 50 && ${Group.Member[x].PctHPs} < ${lower90}) {
/varset lower70 ${Group.Member[x].PctHPs}
/varset lower70toon ${Group.Member[x]}
}
if ${Group.Member[x].PctHPs} < ${lower50}) {
/varset lower50 ${Group.Member[x].PctHPs}
/varset lower50toon ${Group.Member[x]}
}
/next x
/if (${Spawn[pc ${lower50toon}].ID}) { casting 50hp... }
/if ({Spawn[pc ${lower70toon}].ID}) { casting 70hp... }
Return to “Third party software”
Users browsing this forum: No registered users and 1 guest