You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

280 lines
9.1 KiB

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE muclient>
<muclient>
<plugin
name="Auto_Quaff"
author="Abelinc/Lunk"
id="91db3f0b6bb87464ca75f5c7"
language="Lua"
purpose="Quaffs potions if in battle and health/mana/moves falls below preset limit"
date_written="2010-02-26"
requires="4.98"
version="2.1"
save_state="y"
>
<description trim="y">
<![CDATA[
Install this plugin to automatically quaff a potion when your health falls
below a preset limit.
qff ---> Displays the current values of variables
qff bag * ---> Sets the container to get potions from to *
qff hp pot * ---> Sets hp potion to *
qff mn pot * ---> Sets mn potion to *
qff mv pot * ---> Sets mv potion to *
qff hp per * ---> Sets the HP percent you must fall below to quaff to *
qff mn per * ---> Sets the MN percent you must fall below to quaff to *
qff mv per * ---> Sets what MV percent you must fall below to quaff to *
qff on/off ---> Turns the actions of the plugin on or off
]]>
</description>
</plugin>
<!-- configure quaffing limits -->
<aliases>
<alias
name="autoquaff"
script="qff_settings"
match="^qff ?(hp per|mn per|mv per|hp pot|mn pot|mv pot|bag|on|off|help|debug)?( [a-z0-9]+)?"
enabled="y"
regexp="y"
ignore_case="y"
sequence="100"
>
</alias>
</aliases>
<script>
<![CDATA[
require "checkplugin"
require "serialize"
require "commas"
require "gmcphelper"
function OnPluginBroadcast (msg, id, name, text)
-- Look for GMCP handler.
if (id == '3e7dedbe37e44942dd46d264') then
if (text == "char.vitals") then
res, gmcparg = CallPlugin("3e7dedbe37e44942dd46d264","gmcpval","char")
luastmt = "gmcpdata = " .. gmcparg
assert (loadstring (luastmt or "")) ()
do_autoquaff ()
end
end
end
function do_autoquaff ()
if (os.time () - autoquaff_lastfired) > 3 then -- if we've fired within 3 seconds, don't bother with other checks, do nothing
if qff_enable == "yes" then -- if not enabled, don't do anything
if (gmcpval("status.state")) == "8" then -- if fighting
if tonumber ((tonumber(gmcpval("vitals.hp"))/tonumber(gmcpval("maxstats.maxhp"))*100)) < tonumber (qff_hp_per) then -- if HP in trouble
Send ("g " .. qff_hp_pot .. " " .. qff_bag)
Send ("quaff " .. qff_hp_pot)
autoquaff_lastfired = os.time ()
else
if qff_debug == "on" then
ColourNote ("yellow", "", "We've got plenty of health. No need to fire. Health is at " .. tonumber(gmcpval("vitals.hp")))
end
end -- end HP check
end -- end if fighting
end -- end if enabled check
end -- end 3 second time check
if (os.time () - autoquaff_lastfired) > 3 then -- if we've fired within 3 seconds, don't bother with other checks, do nothing
if qff_enable == "yes" then -- if not enabled, don't do anything
if (gmcpval("status.state")) == "8" then -- if fighting
if tonumber ((tonumber(gmcpval("vitals.mana"))/tonumber(gmcpval("maxstats.maxmana"))*100)) < tonumber (qff_mn_per) then -- if MN in trouble
Send ("g " .. qff_mn_pot .. " " .. qff_bag)
Send ("quaff " .. qff_mn_pot)
autoquaff_lastfired = os.time ()
else
if qff_debug == "on" then
ColourNote ("yellow", "", "We've got plenty of mana. No need to fire. Mana is at " .. tonumber(gmcpval("vitals.mana")))
end
end -- end MN check
end -- end if fighting
end -- end if enabled check
end -- end 3 second time check
if (os.time () - autoquaff_lastfired) > 3 then -- if we've fired within 3 seconds, don't bother with other checks, do nothing
if qff_enable == "yes" then -- if not enabled, don't do anything
if (gmcpval("status.state")) == "8" then -- if fighting
if tonumber ((tonumber(gmcpval("vitals.moves"))/tonumber(gmcpval("maxstats.maxmoves"))*100)) < tonumber (qff_mv_per) then -- if MV in trouble
Send ("g " .. qff_mv_pot .. " " .. qff_bag)
Send ("quaff " .. qff_mv_pot)
autoquaff_lastfired = os.time ()
else
if autoquaff_debug == "on" then
ColourNote ("yellow", "", "We've got plenty of moves. No need to fire. Moves is at " .. tonumber(gmcpval("vitals.moves")))
end
end -- end MV check
end -- end if fighting
end -- end if enabled check
end -- end 3 second time check
end -- do_autoquaff
function qff_settings (name, line, wildcards)
if wildcards [1] == "" then
qff_tellme ()
elseif wildcards [1] == "on" then
qff_enable = "yes"
ColourNote ("yellow", "", "Autoquaff plugin enabled.")
elseif wildcards [1] == "off" then
qff_enable = "no"
ColourNote ("yellow", "", "Autoquaff plugin disabled.")
elseif wildcards [1] == "help" then
qff_help ()
else
if wildcards [2] == false then
ColourNote ("yellow", "", "You need to provide a value.")
end
if wildcards [1] == "debug" then
if ((wildcards [2] == " on") or (wildcards [2] == " off")) then
qff_debug = wildcards [2]
ColourNote ("yellow", "", "Turning debug" .. qff_debug)
else ColourNote ("yellow", "", "Correct values are 'on' or 'off'.")
end
elseif wildcards [1] == "hp pot" then
qff_hp_pot = wildcards [2]
ColourNote ("yellow", "", "Set autoquaff hp potion to : " .. qff_hp_pot)
elseif wildcards [1] == "mn pot" then
qff_mn_pot = wildcards [2]
ColourNote ("yellow", "", "Set autoquaff mn potion to : " .. qff_mn_pot)
elseif wildcards [1] == "mv pot" then
qff_mv_pot = wildcards [2]
ColourNote ("yellow", "", "Set autoquaff mv potion to : " .. qff_mv_pot)
elseif wildcards [1] == "bag" then
qff_bag = wildcards [2]
ColourNote ("yellow", "", "Set autoquaff bag to " .. qff_bag)
elseif tonumber (wildcards [2]) > 99 then
ColourNote ("yellow", "", "Try a smaller value.")
elseif wildcards [1] == "hp per" then
qff_hp_per = tonumber (wildcards [2])
ColourNote ("yellow", "", "Set autoquaff hp percent to : " .. qff_hp_per)
elseif wildcards [1] == "mn per" then
qff_mn_per = tonumber (wildcards [2])
ColourNote ("yellow", "", "Set autoquaff mn percent to : " .. qff_mn_per)
elseif wildcards [1] == "mv per" then
qff_mv_per = tonumber (wildcards [2])
ColourNote ("yellow", "", "Set autoquaff mv percent to : " .. qff_mv_per)
end
end
end -- autoquaff_settings
function qff_tellme (name, line, wildcards)
ColourNote ("yellow", "", "bag : " .. qff_bag)
ColourNote ("yellow", "", "hp percent : " .. qff_hp_per)
ColourNote ("yellow", "", "mn percent : " .. qff_mn_per)
ColourNote ("yellow", "", "mv percent : " .. qff_mv_per)
ColourNote ("yellow", "", "hp potion : " .. qff_hp_pot)
ColourNote ("yellow", "", "mn potion : " .. qff_mn_pot)
ColourNote ("yellow", "", "mv potion : " .. qff_mv_pot)
end
function qff_help (name, line, wildcards)
ColourNote ("teal", "", world.GetPluginInfo (world.GetPluginID (), 3))
return true -- done
end -- autoquaff_help
function OnPluginInstall ()
if GetVariable ("enabled") == "false" then
ColourNote ("yellow", "", "Warning: Plugin " .. GetPluginName ().. " is currently disabled.")
check (EnablePlugin(GetPluginID (), false))
return
end -- they didn't enable us last time
OnPluginEnable () -- do initialization stuff
end -- OnPluginInstall
function OnPluginEnable ()
qff_hp_per = GetVariable ("qff_hp_per")
if qff_hp_per == nil then
SetVariable ("qff_hp_per", tonumber(30))
end
qff_hp_per = GetVariable ("qff_hp_per")
qff_mn_per = GetVariable ("qff_mn_per")
if qff_mn_per == nil then
SetVariable ("qff_mn_per", tonumber(30))
end
qff_mn_per = GetVariable ("qff_mn_per")
qff_mv_per = GetVariable ("qff_mv_per")
if qff_mv_per == nil then
SetVariable ("qff_mv_per", tonumber(30))
end
qff_mv_per = GetVariable ("qff_mv_per")
qff_hp_pot = GetVariable ("qff_hp_pot")
if qff_hp_pot == nil then
SetVariable ("qff_hp_pot", "heal")
end
qff_hp_pot = GetVariable ("qff_hp_pot")
qff_mn_pot = GetVariable ("qff_mn_pot")
if qff_mn_pot == nil then
SetVariable ("qff_mn_pot", "lotus")
end
qff_mn_pot = GetVariable ("qff_mn_pot")
qff_mv_pot = GetVariable ("qff_mv_pot")
if qff_mv_pot == nil then
SetVariable ("qff_mv_pot", "refresh")
end
qff_mv_pot = GetVariable ("qff_mv_pot")
qff_bag = GetVariable ("qff_bag")
if qff_bag == nil then
SetVariable ("qff_bag", "bag")
end
qff_bag = GetVariable ("qff_bag")
if GetVariable ("qff_debug") == nil then
SetVariable ("qff_debug", "off")
end
qff_debug = GetVariable ("qff_debug")
if GetVariable ("qff_enable") == nil then
SetVariable ("qff_enable", "yes")
end
qff_enable = GetVariable ("qff_enable")
autoquaff_lastfired = os.time ()
Send_GMCP_Packet("request char")
end -- OnPluginEnable
function OnPluginSaveState ()
SetVariable ("enabled", tostring (GetPluginInfo (GetPluginID (), 17)))
SetVariable ("qff_hp_per", qff_hp_per)
SetVariable ("qff_mn_per", qff_mn_per)
SetVariable ("qff_mv_per", qff_mv_per)
SetVariable ("qff_hp_pot", qff_hp_pot)
SetVariable ("qff_mn_pot", qff_mn_pot)
SetVariable ("qff_mv_pot", qff_mv_pot)
SetVariable ("qff_bag", qff_bag)
SetVariable ("qff_debug", qff_debug)
SetVariable ("qff_enable", qff_enable)
end -- OnPluginSaveState
]]>
</script>
</muclient>