RoguePoison conversion:
Export:
[CODE title="string export"]cmV0dXJuIHsKIGxvYWQgPSB7CiAgYWx3YXlzID0gZmFsc2UsCiAgY2xhc3MgPSAiIiwKICB6b25lID0gIiIsCiB9LAogY29kZSA9ICJiRzlqWVd3Z2JYRWdQU0J5WlhGMWFYSmxLQ2R0Y1NjcENnb3RMUzFBY21WMGRYSnVJR0p2YjJ4bFlXNGdRRkpsZEhWeWJuTWdkSEoxWlNCcFppQjBhR1VnWVdOMGFXOXVJSE5vYjNWc1pDQm1hWEpsTENCdmRHaGxjbmRwYzJVZ1ptRnNjMlV1Q214dlkyRnNJR1oxYm1OMGFXOXVJRzl1WDJ4dllXUW9LUW9nSUNBZ0xTMGdVR1Z5Wm05eWJTQmhibmtnYVc1cGRHbGhiQ0J6WlhSMWNDQm9aWEpsSUhkb1pXNGdkR2hsSUdWMlpXNTBJR2x6SUd4dllXUmxaQzRLWlc1a0NncHNiMk5oYkNCbWRXNWpkR2x2YmlCamIyNWthWFJwYjI0b0tRb2dJQ0FnTFMwZ1NXMXdiR1Z0Wlc1MElIUm9aU0JqYjI1a2FYUnBiMjRnZEc4Z1pYWmhiSFZoZEdVZ2FHVnlaUzRLSUNBZ0lBb2dJQ0FnYkc5allXd2djMkZtWlZSdlEyRnpkQ0E5SUhSeWRXVUtJQ0FnSUFvZ0lDQWdMUzBnU1NCaGJTQnViM1FnZEhKNWFXNW5JSFJ2SUdocFpHVUtJQ0FnSUhOaFptVlViME5oYzNRZ1BTQnpZV1psVkc5RFlYTjBJR0Z1WkNCdWIzUWdiWEV1VkV4UExrMWxMbE52Ym1jb0owVjJZV1JsY2x3bmN5QlRhSEp2ZFdRZ2IyWWdVM1JsWVd4MGFDY3BMa2xFS0NrZ1lXNWtJRzV2ZENCdGNTNVVURTh1VFdVdVUyOXVaeWduUlhaaFpHVnlYQ2R6SUVsdWRtbHphV0pwYkdsMGVTY3BMa2xFS0NrZ0NpQWdJQ0FLSUNBZ0lDMHRJRWtnWVcwZ2JtOTBJR0ZzYlc5emRDQmtaV0ZrQ2lBZ0lDQnpZV1psVkc5RFlYTjBJRDBnYzJGbVpWUnZRMkZ6ZENCaGJtUWdibTkwSUNodGNTNVVURTh1VFdVdVVHTjBTRkJ6S0NrZ1BDQXlOaWtLSUNBZ0lBb2dJQ0FnTFMwZ1NTQmhiU0J1YjNRZ2JXOTJhVzVuSUc5eUlHTmhjM1JwYm1jZ2MyOXRaWFJvYVc1bkNpQWdJQ0J6WVdabFZHOURZWE4wSUQwZ2MyRm1aVlJ2UTJGemRDQmhibVFnYm05MElHMXhMbFJNVHk1TlpTNU5iM1pwYm1jb0tTQmhibVFnYm05MElHMXhMbFJNVHk1TlpTNURZWE4wYVc1bkxrbEVLQ2tnQ2lBZ0lDQUtJQ0FnSUMwdElFa2dZVzBnYm05MElHcDFjM1FnY21WamIzWmxjbVZrSUdaeWIyMGdjMnhwWjJoMElHTmhjMlVnYjJZZ1pHVmhkR2dzSUdSbFlXUXNJRzl5SUhCc1lYbHBibWNnWkdWaFpBb2dJQ0FnYzJGbVpWUnZRMkZ6ZENBOUlITmhabVZVYjBOaGMzUWdZVzVrSUc1dmRDQnRjUzVVVEU4dVRXVXVRblZtWmxzblVtVjJhWFpoYkNCVGFXTnJibVZ6Y3lkZExrbEVLQ2tnWVc1a0lHNXZkQ0J0Y1M1VVRFOHVUV1V1UkdWaFpDZ3BJR0Z1WkNCdGNTNVVURTh1VFdVdVUzUmhkR1VvS1NCK1BTQW5Sa1ZKUjA0bkNpQWdJQ0FLSUNBZ0lDMHRJRWwwSUdseklHRnpZV1psSUdGeWIzVnVaQ0J0WlM0S0lDQWdJSE5oWm1WVWIwTmhjM1FnUFNCellXWmxWRzlEWVhOMElHRnVaQ0J0Y1M1VVRFOHVVM0JoZDI1RGIzVnVkQ2duYm5CaklISmhaR2wxY3lBMk1DY3BLQ2tnUENBeElHRnVaQ0J0Y1M1VVRFOHVUV1V1V0ZSaGNtZGxkQ2dwSUR3Z01Rb2dJQ0FnQ2lBZ0lDQXRMU0JVY25WbElHTm9aV05yTENCa2J5QkpJRzVsWldRZ2RHaGxJSEJ2YVhOdmJpQmlkV1ptSUdGdVpDQmtieUJKSUdoaGRtVWdjRzlwYzI5dUlHOXVJRzFsTGdvZ0lDQWdjbVYwZFhKdUlITmhabVZVYjBOaGMzUWdZVzVrSUc1dmRDQnRjUzVVVEU4dVRXVXVRblZtWmlnblFtbDBaU0J2WmlCMGFHVWdVMmhwYzNOaGNpQlFiMmx6YjI0Z1dFbEpKeWt1U1VRb0tTQmhibVFnYlhFdVZFeFBMa1pwYm1SSmRHVnRRMjkxYm5Rb0p6MURiMjV6YVdkdVpXUWdRbWwwWlNCdlppQjBhR1VnVTJocGMzTmhjaUJZV0VrbktTZ3BJRDRnTUFvS0NtVnVaQW9LYkc5allXd2dablZ1WTNScGIyNGdZV04wYVc5dUtDa0tJQ0FnSUMwdElFbHRjR3hsYldWdWRDQjBhR1VnWVdOMGFXOXVJSFJ2SUhCbGNtWnZjbTBnYUdWeVpTNEtJQ0FnSUMwdElDOXRkV3gwYVd4cGJtVWdPeUF2Y21WaFkzUWdaR2x6WVdKc1pTQlNiMmRRYjJsemIyNUJjSEJzZVRzZ0wzUnBiV1ZrSURJMUlDOXlaV0ZqZENCbGJtRmliR1VnVW05blVHOXBjMjl1UVhCd2JIazdJQzkxYzJWcGRHVnRJRU52Ym5OcFoyNWxaQ0JDYVhSbElHOW1JSFJvWlNCVGFHbHpjMkZ5SUZoWVNUc0tJQ0FnSUMwdElFa25iU0J1YjNRZ2MzVnlaU0JwWmlCMGFHVWdaR2x6WVdKc1pTQmhibVFnY21WdVlXSnNaU0JwY3lCdVpXVmtaV1FzSUdKMWRDQnBibU5zZFdScGJtY3VDaUFnSUNCdGNTNWpiV1FvSnk5c1pXMGdZMjl1WkNCU2IyZDFaVkJ2YVhOdmJpQXdKeWtLSUNBZ0lHMXhMbU50WkNnbkwyY2dSbWx5YVc1bklHVjJaVzUwSVNjcENpQWdJQ0J0Y1M1amJXUW9KeTkxYzJWcGRHVnRJRU52Ym5OcFoyNWxaQ0JDYVhSbElHOW1JSFJvWlNCVGFHbHpjMkZ5SUZoWVNTY3BDaUFnSUNBS0lDQWdJRzF4TG1SbGJHRjVLREkxS1FvZ0lDQWdiWEV1WTIxa0tDY3ZaeUJHYVhKbFpDQmxkbVZ1ZENFbktRb2dJQ0FnYlhFdVkyMWtLQ2N2YkdWdElHTnZibVFnVW05bmRXVlFiMmx6YjI0Z01TY3BDbVZ1WkFvS2NtVjBkWEp1SUh0dmJteHZZV1E5YjI1ZmJHOWhaQ3dnWTI5dVpHWjFibU05WTI5dVpHbDBhVzl1TENCaFkzUnBiMjVtZFc1alBXRmpkR2x2Ym4wPSIsCiBjYXRlZ29yeSA9ICJHZW5lcmFsIiwKIHR5cGUgPSAiY29uZGl0aW9ucyIsCiBuYW1lID0gIlJvZ3VlUG9pc29uIiwKfQ==[/CODE]
[CODE lang="Lua" title="RoguePoison"]local mq = require('mq')
---@return boolean @Returns true if the action should fire, otherwise false.
local function on_load()
-- Perform any initial setup here when the event is loaded.
end
local function condition()
-- Implement the condition to evaluate here.
local safeToCast = true
-- I am not trying to hide
safeToCast = safeToCast and not mq.TLO.Me.Song('Evader\'s Shroud of Stealth').ID() and not mq.TLO.Me.Song('Evader\'s Invisibility').ID()
-- I am not almost dead
safeToCast = safeToCast and not (mq.TLO.Me.PctHPs() < 26)
-- I am not moving or casting something
safeToCast = safeToCast and not mq.TLO.Me.Moving() and not mq.TLO.Me.Casting.ID()
-- I am not just recovered from slight case of death, dead, or playing dead
safeToCast = safeToCast and not mq.TLO.Me.Buff['Revival Sickness'].ID() and not mq.TLO.Me.Dead() and mq.TLO.Me.State() ~= 'FEIGN'
-- It is asafe around me.
safeToCast = safeToCast and mq.TLO.SpawnCount('npc radius 60')() < 1 and mq.TLO.Me.XTarget() < 1
-- True check, do I need the poison buff and do I have poison on me.
return safeToCast and not mq.TLO.Me.Buff('Bite of the Shissar Poison XII').ID() and mq.TLO.FindItemCount('=Consigned Bite of the Shissar XXI')() > 0
end
local function action()
-- Implement the action to perform here.
-- /multiline ; /react disable RogPoisonApply; /timed 25 /react enable RogPoisonApply; /useitem Consigned Bite of the Shissar XXI;
-- I'm not sure if the disable and renable is needed, but including.
mq.cmd('/lem cond RoguePoison 0')
mq.cmd('/g Firing event!')
mq.cmd('/useitem Consigned Bite of the Shissar XXI')
mq.delay(25)
mq.cmd('/g Fired event!')
mq.cmd('/lem cond RoguePoison 1')
end
return {onload=on_load, condfunc=condition, actionfunc=action}[/CODE]
EDIT: updated export with debug lines now gone.
EDIT2: Removed debug check for count < 100 and updated export.
Export:
[CODE title="string export"]cmV0dXJuIHsKIGxvYWQgPSB7CiAgYWx3YXlzID0gZmFsc2UsCiAgY2xhc3MgPSAiIiwKICB6b25lID0gIiIsCiB9LAogY29kZSA9ICJiRzlqWVd3Z2JYRWdQU0J5WlhGMWFYSmxLQ2R0Y1NjcENnb3RMUzFBY21WMGRYSnVJR0p2YjJ4bFlXNGdRRkpsZEhWeWJuTWdkSEoxWlNCcFppQjBhR1VnWVdOMGFXOXVJSE5vYjNWc1pDQm1hWEpsTENCdmRHaGxjbmRwYzJVZ1ptRnNjMlV1Q214dlkyRnNJR1oxYm1OMGFXOXVJRzl1WDJ4dllXUW9LUW9nSUNBZ0xTMGdVR1Z5Wm05eWJTQmhibmtnYVc1cGRHbGhiQ0J6WlhSMWNDQm9aWEpsSUhkb1pXNGdkR2hsSUdWMlpXNTBJR2x6SUd4dllXUmxaQzRLWlc1a0NncHNiMk5oYkNCbWRXNWpkR2x2YmlCamIyNWthWFJwYjI0b0tRb2dJQ0FnTFMwZ1NXMXdiR1Z0Wlc1MElIUm9aU0JqYjI1a2FYUnBiMjRnZEc4Z1pYWmhiSFZoZEdVZ2FHVnlaUzRLSUNBZ0lBb2dJQ0FnYkc5allXd2djMkZtWlZSdlEyRnpkQ0E5SUhSeWRXVUtJQ0FnSUFvZ0lDQWdMUzBnU1NCaGJTQnViM1FnZEhKNWFXNW5JSFJ2SUdocFpHVUtJQ0FnSUhOaFptVlViME5oYzNRZ1BTQnpZV1psVkc5RFlYTjBJR0Z1WkNCdWIzUWdiWEV1VkV4UExrMWxMbE52Ym1jb0owVjJZV1JsY2x3bmN5QlRhSEp2ZFdRZ2IyWWdVM1JsWVd4MGFDY3BMa2xFS0NrZ1lXNWtJRzV2ZENCdGNTNVVURTh1VFdVdVUyOXVaeWduUlhaaFpHVnlYQ2R6SUVsdWRtbHphV0pwYkdsMGVTY3BMa2xFS0NrZ0NpQWdJQ0FLSUNBZ0lDMHRJRWtnWVcwZ2JtOTBJR0ZzYlc5emRDQmtaV0ZrQ2lBZ0lDQnpZV1psVkc5RFlYTjBJRDBnYzJGbVpWUnZRMkZ6ZENCaGJtUWdibTkwSUNodGNTNVVURTh1VFdVdVVHTjBTRkJ6S0NrZ1BDQXlOaWtLSUNBZ0lBb2dJQ0FnTFMwZ1NTQmhiU0J1YjNRZ2JXOTJhVzVuSUc5eUlHTmhjM1JwYm1jZ2MyOXRaWFJvYVc1bkNpQWdJQ0J6WVdabFZHOURZWE4wSUQwZ2MyRm1aVlJ2UTJGemRDQmhibVFnYm05MElHMXhMbFJNVHk1TlpTNU5iM1pwYm1jb0tTQmhibVFnYm05MElHMXhMbFJNVHk1TlpTNURZWE4wYVc1bkxrbEVLQ2tnQ2lBZ0lDQUtJQ0FnSUMwdElFa2dZVzBnYm05MElHcDFjM1FnY21WamIzWmxjbVZrSUdaeWIyMGdjMnhwWjJoMElHTmhjMlVnYjJZZ1pHVmhkR2dzSUdSbFlXUXNJRzl5SUhCc1lYbHBibWNnWkdWaFpBb2dJQ0FnYzJGbVpWUnZRMkZ6ZENBOUlITmhabVZVYjBOaGMzUWdZVzVrSUc1dmRDQnRjUzVVVEU4dVRXVXVRblZtWmxzblVtVjJhWFpoYkNCVGFXTnJibVZ6Y3lkZExrbEVLQ2tnWVc1a0lHNXZkQ0J0Y1M1VVRFOHVUV1V1UkdWaFpDZ3BJR0Z1WkNCdGNTNVVURTh1VFdVdVUzUmhkR1VvS1NCK1BTQW5Sa1ZKUjA0bkNpQWdJQ0FLSUNBZ0lDMHRJRWwwSUdseklHRnpZV1psSUdGeWIzVnVaQ0J0WlM0S0lDQWdJSE5oWm1WVWIwTmhjM1FnUFNCellXWmxWRzlEWVhOMElHRnVaQ0J0Y1M1VVRFOHVVM0JoZDI1RGIzVnVkQ2duYm5CaklISmhaR2wxY3lBMk1DY3BLQ2tnUENBeElHRnVaQ0J0Y1M1VVRFOHVUV1V1V0ZSaGNtZGxkQ2dwSUR3Z01Rb2dJQ0FnQ2lBZ0lDQXRMU0JVY25WbElHTm9aV05yTENCa2J5QkpJRzVsWldRZ2RHaGxJSEJ2YVhOdmJpQmlkV1ptSUdGdVpDQmtieUJKSUdoaGRtVWdjRzlwYzI5dUlHOXVJRzFsTGdvZ0lDQWdjbVYwZFhKdUlITmhabVZVYjBOaGMzUWdZVzVrSUc1dmRDQnRjUzVVVEU4dVRXVXVRblZtWmlnblFtbDBaU0J2WmlCMGFHVWdVMmhwYzNOaGNpQlFiMmx6YjI0Z1dFbEpKeWt1U1VRb0tTQmhibVFnYlhFdVZFeFBMa1pwYm1SSmRHVnRRMjkxYm5Rb0p6MURiMjV6YVdkdVpXUWdRbWwwWlNCdlppQjBhR1VnVTJocGMzTmhjaUJZV0VrbktTZ3BJRDRnTUFvS0NtVnVaQW9LYkc5allXd2dablZ1WTNScGIyNGdZV04wYVc5dUtDa0tJQ0FnSUMwdElFbHRjR3hsYldWdWRDQjBhR1VnWVdOMGFXOXVJSFJ2SUhCbGNtWnZjbTBnYUdWeVpTNEtJQ0FnSUMwdElDOXRkV3gwYVd4cGJtVWdPeUF2Y21WaFkzUWdaR2x6WVdKc1pTQlNiMmRRYjJsemIyNUJjSEJzZVRzZ0wzUnBiV1ZrSURJMUlDOXlaV0ZqZENCbGJtRmliR1VnVW05blVHOXBjMjl1UVhCd2JIazdJQzkxYzJWcGRHVnRJRU52Ym5OcFoyNWxaQ0JDYVhSbElHOW1JSFJvWlNCVGFHbHpjMkZ5SUZoWVNUc0tJQ0FnSUMwdElFa25iU0J1YjNRZ2MzVnlaU0JwWmlCMGFHVWdaR2x6WVdKc1pTQmhibVFnY21WdVlXSnNaU0JwY3lCdVpXVmtaV1FzSUdKMWRDQnBibU5zZFdScGJtY3VDaUFnSUNCdGNTNWpiV1FvSnk5c1pXMGdZMjl1WkNCU2IyZDFaVkJ2YVhOdmJpQXdKeWtLSUNBZ0lHMXhMbU50WkNnbkwyY2dSbWx5YVc1bklHVjJaVzUwSVNjcENpQWdJQ0J0Y1M1amJXUW9KeTkxYzJWcGRHVnRJRU52Ym5OcFoyNWxaQ0JDYVhSbElHOW1JSFJvWlNCVGFHbHpjMkZ5SUZoWVNTY3BDaUFnSUNBS0lDQWdJRzF4TG1SbGJHRjVLREkxS1FvZ0lDQWdiWEV1WTIxa0tDY3ZaeUJHYVhKbFpDQmxkbVZ1ZENFbktRb2dJQ0FnYlhFdVkyMWtLQ2N2YkdWdElHTnZibVFnVW05bmRXVlFiMmx6YjI0Z01TY3BDbVZ1WkFvS2NtVjBkWEp1SUh0dmJteHZZV1E5YjI1ZmJHOWhaQ3dnWTI5dVpHWjFibU05WTI5dVpHbDBhVzl1TENCaFkzUnBiMjVtZFc1alBXRmpkR2x2Ym4wPSIsCiBjYXRlZ29yeSA9ICJHZW5lcmFsIiwKIHR5cGUgPSAiY29uZGl0aW9ucyIsCiBuYW1lID0gIlJvZ3VlUG9pc29uIiwKfQ==[/CODE]
[CODE lang="Lua" title="RoguePoison"]local mq = require('mq')
---@return boolean @Returns true if the action should fire, otherwise false.
local function on_load()
-- Perform any initial setup here when the event is loaded.
end
local function condition()
-- Implement the condition to evaluate here.
local safeToCast = true
-- I am not trying to hide
safeToCast = safeToCast and not mq.TLO.Me.Song('Evader\'s Shroud of Stealth').ID() and not mq.TLO.Me.Song('Evader\'s Invisibility').ID()
-- I am not almost dead
safeToCast = safeToCast and not (mq.TLO.Me.PctHPs() < 26)
-- I am not moving or casting something
safeToCast = safeToCast and not mq.TLO.Me.Moving() and not mq.TLO.Me.Casting.ID()
-- I am not just recovered from slight case of death, dead, or playing dead
safeToCast = safeToCast and not mq.TLO.Me.Buff['Revival Sickness'].ID() and not mq.TLO.Me.Dead() and mq.TLO.Me.State() ~= 'FEIGN'
-- It is asafe around me.
safeToCast = safeToCast and mq.TLO.SpawnCount('npc radius 60')() < 1 and mq.TLO.Me.XTarget() < 1
-- True check, do I need the poison buff and do I have poison on me.
return safeToCast and not mq.TLO.Me.Buff('Bite of the Shissar Poison XII').ID() and mq.TLO.FindItemCount('=Consigned Bite of the Shissar XXI')() > 0
end
local function action()
-- Implement the action to perform here.
-- /multiline ; /react disable RogPoisonApply; /timed 25 /react enable RogPoisonApply; /useitem Consigned Bite of the Shissar XXI;
-- I'm not sure if the disable and renable is needed, but including.
mq.cmd('/lem cond RoguePoison 0')
mq.cmd('/g Firing event!')
mq.cmd('/useitem Consigned Bite of the Shissar XXI')
mq.delay(25)
mq.cmd('/g Fired event!')
mq.cmd('/lem cond RoguePoison 1')
end
return {onload=on_load, condfunc=condition, actionfunc=action}[/CODE]
EDIT: updated export with debug lines now gone.
EDIT2: Removed debug check for count < 100 and updated export.
Last edited:



