# from MalcolmRose action_panel_show = false #tile_cell_pixels = 48 #auto_butcher = hungry auto_butcher = very full #travel_avoid_terrain = shallow water autoinscribe += throwing net:!f autoinscribe += scroll:!r autoinscribe += potion:!q warn_hatches = true runrest_stop_message += flickers and vanishes! runrest_stop_message += You fall through a shaft runrest_stop_message += An alarm trap emits a blaring wail runrest_stop_message += (blundered into a|invokes the power of) Zot runrest_stop_message += A huge blade swings out and slices into you! runrest_stop_message += sense of stasis runrest_stop_message += flesh start runrest_stop_message += (starving|devoid of blood) runrest_stop_message += wrath finds you runrest_stop_message += lose consciousness runrest_stop_message += watched by something flash_screen_message += You feel less protected from missiles flash_screen_message += You are slowing down flash_screen_message += You feel strangely unstable flash_screen_message += A Brimstone Fiend comes into view flash_screen_message += Something drains your vigour flash_screen_message += You feel yourself slow down flash_screen_message += Something hits you flash_screen_message += floating eye force_more_message += floating eye flash_screen_message += changes into a floating force_more_message += changes into a floating flash_screen_message += flickers and vanishes! force_more_message += flickers and vanishes! force_more_message += air elemental flash_screen_message += air elemental force_more_message += jellyfish flash_screen_message += jellyfish force_more_message += jorogumo flash_screen_message += jorogumo force_more_message += Something hits you force_more_message += You feel less protected from missiles force_more_message += You shrug off the repeated paralysis force_more_message += carrying a wand flash_screen_message += carrying a wand force_more_message += It is a wand of paralysis force_more_message += distortion force_more_message += chaos force_more_message += electrocution force_more_message += LOW HITPOINT WARNING force_more_message += Your transformation is almost over. runrest_stop_message += Your transformation is almost over. force_more_message += You revert to your normal fleshy form. force_more_message += You are lethally poisoned! force_more_message += The blast of calcifying dust hits you! force_more_message += You are engulfed in calcifying dust. force_more_message += Your surroundings flicker force_more_message += sense of stasis force_more_message += Your amulet of stasis force_more_message += You cannot teleport right now force_more_message += The writing blurs in front of your eyes force_more_message += You are (blasted|electrocuted)! force_more_message += You are.*(confused|poisoned) force_more_message += flesh start force_more_message += (starving|devoid of blood) force_more_message += You fall through a shaft force_more_message += A huge blade swings out and slices into you! force_more_message += (blundered into a|invokes the power of) Zot force_more_message += Ouch! That really hurt! force_more_message += dispelling energy hits you force_more_message += You convulse #autofight_throw = true hp_warning=65 autofight_stop=60 autofight_stop=90 force_more_message += wrath finds you force_more_message += A Brimstone Fiend comes into view force_more_message += Something drains your vigour force_more_message += lose consciousness force_more_message += You are too injured to fight blindly force_more_message += calcifying dust hits force_more_message += watched by something force_more_message += A sentinel's mark forms upon you force_more_message += Space warps horribly around you force_more_message += hits you.*distortion force_more_message += Space bends around you force_more_message += You are feeling hungry. force_more_message += You are feeling very hungry. force_more_message += flay force_more_message += You are slowing down. force_more_message += _You are slowing down. force_more_message += You are slowing down force_more_message += zaps a wand force_more_message += You feel yourself slow down always_show_zot = true view_delay = 300 # mine food_snacking_frequency = 0 fountain_line_frequency = 0 rest_wait_both = true rest_wait_ancestor = true rest_wait_percent = 100 explore_auto_rest = true travel_one_unsafe_move = true default_manual_training = true tile_realtime_anim = true tile_show_player_species = true tile_skip_title = true # confirm_action = Blink, Silence, Borgnjor's Revivification, Death's Door # force_spell_targeter += Permafrost Eruption force_spell_targeter = all autopickup = $?!+"/♦|0} easy_unequip = false equip_unequip = false cloud_status = true always_show_gems = true more_gem_info = true macros += K2 \{-1019} v macros += K2 \{-1005} $ macros += K2 \{-1000} \{13} macros += M \{-1016} ===HDAtravel macros += M \{-1009} U macros += M \{-1008} K macros += M \{-1007} Y macros += M \{-1006} L macros += M \{-1005} ===HDArest macros += M \{-1004} H macros += M \{-1003} N macros += M \{-1002} J macros += M \{-1001} B bindkey = [/] CMD_AUTOFIGHT bindkey = [\{-239}] CMD_AUTOFIGHT_NOMOVE macros += M \{-254} K macros += M \{-253} J macros += M \{-252} H macros += M \{-251} L macros += M \{-243} k macros += M \{-242} j macros += M \{-241} h macros += M \{-240} l macros += M \{-238} y macros += M \{-237} b macros += M \{-236} . macros += M \{-235} u macros += M \{-234} n macros += M ' ' macros += M + ===HDAtravel macros += M , zr macros += M . Zc macros += M 1 B macros += M 2 J macros += M 3 N macros += M 4 H macros += M 5 ===HDArest macros += M 6 L macros += M 7 Y macros += M 8 K macros += M 9 U macros += M : zZ macros += M ; zz macros += M A zA macros += M E zE macros += M L A macros += M O zO macros += M U zU macros += M a Za macros += M b q macros += M e ze macros += M h \{32} macros += M j zj macros += M k zk macros += M l a macros += M n \{32} macros += M o Zo macros += M p zp macros += M q zq macros += M u zu macros += M y zy < function stringify_table(tab, indent_level) if not indent_level then indent_level = 0 end local spaces = "" for i = 1, 2 * indent_level + 1 do spaces = spaces .. " " end local res = spaces .. "{\n" for key, val in pairs(tab) do res = res .. spaces .. " [" .. stringify(key) .. "] =" if type(val) ~= "table" then res = res .. " " .. stringify(val) .. ",\n" elseif next(val) == nil then -- table is empty res = res .. " { },\n" else res = res .. "\n" .. stringify_table(val, indent_level + 1) .. ",\n" end end res = res .. spaces .. "}" return res end function stringify(x) local t = type(x) if t == "nil" then return "nil" elseif t == "number" or t == "function" then return tostring(x) elseif t == "string" then return x elseif t == "boolean" then return x and "true" or "false" else return stringify_table(x) end end -- called at the start of each turn whenever input is empty function is_hep_ally_dead_or_damaged() if you.god() ~= "Hepliaklqana" then return false end local r = you.los() for y = -r, r do for x = -r, r do local m = monster.get_monster_at(x, y) if m and m:attitude() == 4 then local n = m:name() if n:find(" the hexer") or n:find(" the knight") or n:find(" the battlemage") or n:find(" the battle-mage") then return m:damage_level() ~= 0 end end end end return true end function rest() if you.feel_safe() then local mp, max_mp = you.mp() local hp, max_hp = you.hp() local hp_regen_time = 6 * (max_hp - hp) / (120 + max_hp) local mp_regen_time = 2 * (max_mp - mp) / (14 + max_mp) if mp < max_mp and mp_regen_time > hp_regen_time and not you.poisoned() and spells.letter("Sublimation of Blood") and (not (string.find(you.god(), "Shining") or string.find(you.god(), "Elyvilon") or string.find(you.god(), "Zin") or string.find(you.transform(), "lich") or string.find(you.transform(), "death"))) and spells.fail("Sublimation of Blood") < 10 then if mp >= spells.mana_cost("Sublimation of Blood") then crawl.sendkeys('z' .. spells.letter("Sublimation of Blood")) else crawl.sendkeys('.') end return true elseif mp < max_mp or hp < max_hp or you.slowed() or you.confused() or you.exhausted() or you.poisoned() or you.contaminated() ~= 0 or is_hep_ally_dead_or_damaged() or you.corrosion() ~= 0 or you.breath_timeout() or you.status("weakened") or you.status("marked") then crawl.sendkeys('5') return true else return false end end return false end function rest_verbose() if rest() then return true elseif not you.feel_safe() then crawl.sendkeys('o') end return false end multiturn_action = nil function ready() if multiturn_action then local time = you.time() if time == multiturn_time then crawl.mpr("Stopping because action is doing nothing") multiturn_action = nil else multiturn_time = time multiturn_action_steps = multiturn_action_steps + 1 if multiturn_action_steps > 16 then crawl.mpr("Stopping after more than 16 steps in current action") multiturn_action = nil else if not multiturn_action() then multiturn_action = nil end end end end end function multiturn(fn) if fn() then multiturn_action = fn multiturn_action_steps = 0 multiturn_time = you.time() end end function HDArest() multiturn(rest_verbose) end function explore() if rest() then return true end crawl.sendkeys('o') return true end function HDAtravel() multiturn(explore) end add_autopickup_func(function(it, name) if it.is_useless then return false end if it.artefact then return true end local it_ego = it:ego() if it_ego ~= nil then return true end local equip_type = it.equip_type if equip_type ~= nil then local eq = items.equipped_at(equip_type) if eq == nil then return true end end return nil end) >