# TEAMCAPTAIN MrDizzy # ccsdt name = yakattack show_paged_inventory = false cloud_status = true tile_realtime_anim = true tile_show_player_species = false tile_web_mouse_control = false drop_disables_autopickup = true explore_wall_bias = 0 explore_item_greed #travel_avoid_terrain = deep water tile_viewport_scale = 1.0 tile_map_scale = 1.0 rest_wait_both = true rest_wait_ancestor = true default_show_all_skills = true use_animations -= player easy_confirm = all auto_hide_spells = false tile_skip_title = true name_bypasses_menu = true allow_self_target = no view_delay = 100 travel_delay = -1 explore_delay = -1 rest_delay = -1 msg_condense_repeats = true show_more = false easy_door = true show_game_time = false interrupt_rest -= interrupt_run interrupt_rest += hp_loss, monster_attack, monster, mimic, teleport, stat, hit_monster, sense_monster # sort_menus = true : equipped, identified, basename, qualname, charged autofight_stop = 60 autofight_wait = 1 autofight_caught = true autofight_throw_nomove = false newgame_after_quit = true default_manual_training = true # inventory assign_item_slot = backward # exploration show_travel_trail = true runrest_ignore_poison = 5:10 runrest_ignore_monster += ^butterfly:1 always_show_gems = false # EnergeticOcto ae := autopickup_exceptions ae ^= scrolls? of amnesia ae += >scrolls? of noise ae ^= potions? of flight ae ^= ring of protection from cold ae += >ring of protection from fire ae += >ring of willpower ae += >ring of positive energy ae += >ring of fire ae += >ring of flight ae += >ring of ice ae += >ring of magical power ae += >ring of strength ae += >ring of intelligence ae += >ring of dexterity ae += >ring of wizardry ae += >ring of poison resistance ae += >ring of resist corrosion ae += >ring of see invisible ae += >amulet of faith ae += >amulet of reflection ae += >amulet of the acrobat ae += >amulet of regeneration ae += >amulet of magic regeneration ae += >amulet of guardian spirit ae += >scrolls? of amnesia ae += >scrolls? of noise ae += >artefact ## Ability and spell slots ## ss := spell_slot is := item_slot as := ability_slot as ^= (evoke invisibility):z as ^= (Breathe Fire):z # sort_menus = inv : true : identified, >qty sort_menus = inv:true:identified,slot # sort_menus = true : identified # inventory_sort = identified # sort_menus = identified, other # sort_menus = true : identified is ^= scrolls? of acquirement:q is ^= scrolls? of identify:r is ^= scrolls? of teleportation:t is ^= scrolls? of blinking:s #is ^= scrolls? of amnesia:A #is ^= scrolls? of brand weapon:B #is ^= scrolls? of butterflies:C #is ^= scrolls? of enchant armour:D #is ^= scrolls? of enchant weapon:E #is ^= scrolls? of fear:F #is ^= scrolls? of fog:G #is ^= scrolls? of immolation:H #is ^= scrolls? of noise:I #is ^= scrolls? of poison:J #is ^= scrolls? of revelation:K #is ^= scrolls? of silence:L #is ^= scrolls? of summoning:M #is ^= scrolls? of torment:N #is ^= scrolls? of vulnerability:O # og is += wand of digging:v is += scroll.*identify:r as += renounce religion:P as += dig:x as += shaft self:O as += renounce religion:P ss += .*:POIUYLKHJMNB # other ss ^= irradiate:Q ss ^= (Blink):X ss ^= lesser beckoning:a # alchemist ss ^= sting:q ss ^= mercury vapours:w ss ^= mephitic cloud:S ss ^= olgreb.*radiance:a ss ^= sticky flame:W # ee ss ^= sandblast:q ss ^= stone arrow:w ss ^= brom.*boulder:W ss ^= petrify:d # ae ss ^= shock:q ss ^= static discharge:W ss ^= swiftness:Y ss ^= airstrike:w # ie ss ^= freeze:q ss ^= frozen ramparts:a ss ^= ozocubu.*armour:s ss ^= summon ice beast:d # fe ss ^= foxfire:q ss ^= scorch:w ss ^= inner flame:s ss ^= volatile blastmotes:D ss ^= flame wave:d # nec ss ^= soul splinter:q ss ^= grave claw:W ss ^= vampiric draining:q ss ^= animate dead:A # sum ss ^= summon small mammal:Q ss ^= call imp:W ss ^= call canine familiar:d ss ^= summon lightning spire:a # conj ss ^= magic dart:q ss ^= searing ray:w ss ^= fulminant prism:D ss ^= iskenderun.*blast:v # reaver ss ^= kiss of death:Q ss ^= momentum strike:W ss ^= hailstorm:d # ench ss ^= ensorcelled hibernation:w ss ^= confusing touch:s ss ^= tukima.*dance:Q ss ^= dazzling flash:d # hex ss ^= jinxbite:q ss ^= cause fear:D ###### # GODS ###### # chei as ^= step from time:L ####### # OTHER ####### # quiverisms # fire_order = launcher, throwing fire_order = launcher, inscribed autoinscribe += stone:+f autoinscribe += .*dart.*:+f autoinscribe += .*boomerang.*:+f mc := menu_colour mc ^= lightblue:.*scrolls label.* mc ^= brown:.*scroll label.* mc ^= lightgreen:scrolls? of acquirement mc ^= lightmagenta:scrolls? of blinking mc ^= magenta:scrolls? of teleportation # Set Alias menu := menu_colour # Clear defaults menu = # Variables (Worst to Best) $evil := red $negative := brown $danger := lightred $warning := yellow $boring := darkgrey $decent := white $good := lightblue $positive := green $verypositive := lightgreen $awesome := lightmagenta # Unusual Variables $mp := lightcyan $equipped := cyan $mutation := magenta ################## # Basic Settings # ################## # General Categories menu += $boring:(melded) menu += $boring:.*useless_item.* menu += $evil:.*evil_item.* menu += $danger:[^n]cursed menu += inventory:$danger:[^n]cursed menu += inventory:$equipped:.*equipped.* menu += $decent:.*artefact.* # Unidentified Items menu += $warning:^unidentified .*(jewellery|potion|scroll|wand).* menu += $good:^unidentified .*armour.*(embroidered|dyed|glowing|shiny|runed) menu += $good:^unidentified .*weapon.*(glowing|runed) ################# # Various Items # ################# # Amulets menu += $boring:amulet of inaccuracy menu += $good:amulet of (guardian spirit|stasis|warding) menu += $positive:amulet of (faith|rage|resist corrosion) menu += $verypositive:amulet of (clarity|regeneration|resist mutation|the gourmand) # Decks (keep warning as default in case of new decks) menu += $evil:deck of punishments menu += $warning:deck of (changes|destruction) menu += $decent:deck of cards menu += $good:deck of war menu += $positive:deck of (defence|summoning) menu += $verypositive:deck of escape menu += $awesome:deck of wonders menu += $warning:deck of # Evokables menu += blue:inert menu += $warning:disc of storms menu += $warning:tome of Destruction menu += $decent:box of beasts menu += $decent:lantern of shadows menu += $decent:stone of tremors menu += $good:fans? of gales menu += $good:lamps? of fire menu += $good:phials? of floods menu += $good:sack of spiders menu += $positive:phantom mirror menu += $mp:crystal ball of energy # Potions menu += $danger:potions? of berserk menu += $decent:potions? of (flight|lignification|restore) menu += $good:potions? of (agility|brilliance|invisibility|might|resistance) menu += $positive:potions? of curing menu += $verypositive:potions? of (haste|heal wounds) menu += $awesome:potions? of (beneficial|cancellation|cure mutation|experience|gain) menu += $mp:potions? of magic menu += $mutation:potions? of mutation # Rings menu += $negative:ring of \-.*(dexterity|evasion|intelligence|protection|slaying|strength) menu += $negative:ring of loudness menu += $warning:ring of (fire|ice) menu += $decent:ring of flight menu += $good:ring of (.*evasion|invisibility|magical power|.*protection|stealth|sustain abilities|wizardry) menu += $positive:ring of (poison resistance|protection from cold|protection from fire|protection from magic|see invisible) menu += $verypositive:ring of (regeneration|.*slaying) menu += $awesome:ring of teleport # Rods menu += $verypositive:rod # Scrolls menu += $danger:scrolls? of torment menu += $boring:scrolls? of (noise|random) menu += $decent:scrolls? of (amnesia|holy word|identify|remove curse) menu += $good:scrolls? of (fear|fog|immolation|silence|summoning|vulnerability) menu += $positive:scrolls? of (brand|enchant|magic mapping|recharging) menu += $verypositive:scrolls? of acquirement menu += $awesome:scrolls? of (blinking|teleportation) # Staves menu += $mp:staff of (energy|Wucad Mu) menu += $positive:[^r]staff of # Wands menu += $boring:wand of (flame|frost|magic darts|random effects) menu += $decent:wand of (confusion|enslavement|paralysis|polymorph|slowing) menu += $good:wand of (cold|digging|disintegration|draining) menu += $good:wand of (fire|fireball|invisibility|lightning) menu += $positive:wand of hasting menu += $verypositive:wand of heal wounds menu += $awesome:wand of teleportation # Other menu += $negative:shield of the gong menu += $good:throwing net menu += $awesome:.*misc.*rune( of Zot)? menu += $awesome:.*orb.*Zot menu += $awesome:manual stop := runrest_stop_message ignore := runrest_ignore_message more := force_more_message : if you.god() == "Xom" then stop += god: :else ignore += god: :end # Bad things stop += You fall through a shaft stop += An alarm trap emits a blaring wail stop += (blundered into a|invokes the power of) Zot stop += A huge blade swings out and slices into you! stop += flesh start stop += (starving|feel devoid of blood) stop += wrath finds you stop += lose consciousness stop += watched by something stop += appears from out of your range of vision # Expiring effects stop += You feel yourself slow down stop += less insulated stop += You are starting to lose your buoyancy stop += You lose control over your flight stop += Your hearing returns stop += back to life stop += uncertain stop += time is quickly running out stop += life is in your own hands stop += is no longer charmed stop += You start to feel a little slower stop += You are no longer stop += You.*engulfed.*chaos.* stop += breathes chaos # ignore += pray: # ignore += talk: # ignore += talk_visual: # ignore += friend_spell: # ignore += friend_enchant: # ignore += friend_action: # ignore += sound: ignore += Really*spellspark servitor* ignore += *might hit your spellspark* msc := message_colour explore_stop = stairs,shops,altars,portals,branches,runed_doors # explore_stop += greedy_pickup_smart,greedy_visited_item_stack more += seems less pained. stop += seems less pained. more += no longer petrified. stop += no longer petrified. more += Your eldritch tentacle suddenly becomes enraged! stop += Your eldritch tentacle suddenly becomes enraged! more += Your transformation is almost over stop += Your transformation is almost over more += The roar of the dragon horde subsides. stop += The roar of the dragon horde subsides. more += You are slowing down. more += You fail to use your ability #more += You miscast more += The catoblepas breathes a plume of calcifying dust at you. #more += hydra.*(comes? into view|opens the) more += moth of wrath.*(comes? into view|opens the) more += guardian serpent.*(comes? into view|opens the) more += revenant.*(comes? into view|opens the) more += 27-headed.*(comes? into view|opens the) more += Agnes.*(comes? into view|opens the) more += Aizul.*(comes? into view|opens the) more += Antaeus.*(comes? into view|opens the) more += Arachne.*(comes? into view|opens the) more += Asmodeus.*(comes? into view|opens the) more += Asterion.*(comes? into view|opens the) more += Azrael.*(comes? into view|opens the) more += Blork the orc.*(comes? into view|opens the) more += Bai Suzhen.*(comes? into view|opens the) more += Boris.*(comes? into view|opens the) more += Cerebov.*(comes? into view|opens the) more += Crazy Yiuf.*(comes? into view|opens the) more += Dispater.*(comes? into view|opens the) more += Dissolution.*(comes? into view|opens the) more += Donald.*(comes? into view|opens the) more += Dowan.*(comes? into view|opens the) more += Duvessa.*(comes? into view|opens the) more += Edmund.*(comes? into view|opens the) more += Ereshkigal.*(comes? into view|opens the) more += Erica.*(comes? into view|opens the) more += Erolcha.*(comes? into view|opens the) more += Eustachio.*(comes? into view|opens the) more += Fannar.*(comes? into view|opens the) more += Frances.*(comes? into view|opens the) more += Frederick.*(comes? into view|opens the) more += Gastronok.*(comes? into view|opens the) more += Geryon.*(comes? into view|opens the) more += Gloorx Vloq.*(comes? into view|opens the) more += Grinder.*(comes? into view|opens the) more += Grum.*(comes? into view|opens the) more += Harold.*(comes? into view|opens the) more += Ignacio.*(comes? into view|opens the) more += Ijyb.*(comes? into view|opens the) more += Ilsuiw.*(comes? into view|opens the) more += Jessica.*(comes? into view|opens the) more += Jorgrun.*(comes? into view|opens the) more += Jory.*(comes? into view|opens the) more += Joseph.*(comes? into view|opens the) more += Josephine.*(comes? into view|opens the) more += Jozef.*(comes? into view|opens the) more += Jeremiah.*(comes? into view|opens the) more += Khufu.*(comes? into view|opens the) more += Kirke.*(comes? into view|opens the) more += Lom Lobon.*(comes? into view|opens the) more += Louise.*(comes? into view|opens the) more += Mara.*(comes? into view|opens the) more += Margery.*(comes? into view|opens the) more += Maggie.*(comes? into view|opens the) more += Maurice.*(comes? into view|opens the) more += Menkaure.*(comes? into view|opens the) more += Mennas.*(comes? into view|opens the) more += Mnoleg.*(comes? into view|opens the) more += Murray.*(comes? into view|opens the) more += Natasha.*(comes? into view|opens the) more += Nergalle.*(comes? into view|opens the) more += Nessos.*(comes? into view|opens the) more += Nikola.*(comes? into view|opens the) more += Pikel.*(comes? into view|opens the) more += Polyphemus.*(comes? into view|opens the) more += Prince Ribbit.*(comes? into view|opens the) more += Psyche.*(comes? into view|opens the) more += Pargi.*(comes? into view|opens the) more += Roxanne.*(comes? into view|opens the) more += Rupert.*(comes? into view|opens the) more += Saint Roka.*(comes? into view|opens the) more += Sigmund.*(comes? into view|opens the) more += Snorg.*(comes? into view|opens the) more += Sojobo.*(comes? into view|opens the) more += Sonja.*(comes? into view|opens the) more += Terence.*(comes? into view|opens the) more += The Lernaean hydra.*(comes? into view|opens the) more += The royal jelly.*(comes? into view|opens the) more += The Serpent of Hell.*(comes? into view|opens the) more += Tiamat.*(comes? into view|opens the) more += Urug.*(comes? into view|opens the) more += Vashnia.*(comes? into view|opens the) more += Xtahua.*(comes? into view|opens the) more += Parghit.*(comes? into view|opens the) more += Josephina.*(comes? into view|opens the) more += Amaemon.*(comes? into view|opens the) more += Lodul.*(comes? into view|opens the) more += Vv.*(comes? into view|opens the) more += Zenata.*(comes? into view|opens the) more += Norris.*(comes? into view|opens the) interrupt_memorise += sense_monster interrupt_memorise += monster runrest_ignore_message ^= Your toxic aura wanes. bindkey = [\{32}] CMD_NO_CMD_DEFAULT bindkey = [z] CMD_NO_CMD_DEFAULT bindkey = [1] CMD_NO_CMD_DEFAULT bindkey = [2] CMD_NO_CMD_DEFAULT bindkey = [3] CMD_NO_CMD_DEFAULT bindkey = [5] CMD_NO_CMD_DEFAULT bindkey = [e] CMD_NO_CMD_DEFAULT bindkey = [E] CMD_NO_CMD_DEFAULT bindkey = [o] CMD_NO_CMD_DEFAULT bindkey = [\{5}] CMD_NO_CMD_DEFAULT bindkey = [f] CMD_NO_CMD_DEFAULT bindkey = [\{9}] CMD_NO_CMD_DEFAULT bindkey = [\{-233}] CMD_NO_CMD_DEFAULT bindkey = [;] CMD_NO_CMD_DEFAULT bindkey = [:] CMD_NO_CMD_DEFAULT bindkey = []] CMD_NO_CMD_DEFAULT bindkey = [F] CMD_NO_CMD_DEFAULT bindkey = ['] CMD_NO_CMD_DEFAULT bindkey = ["] CMD_NO_CMD_DEFAULT bindkey = [z] CMD_NO_CMD_DEFAULT bindkey = [Z] CMD_NO_CMD_DEFAULT bindkey = [[] CMD_NO_CMD_DEFAULT bindkey = [\{15}] CMD_NO_CMD_DEFAULT bindkey = [\{17}] CMD_NO_CMD_DEFAULT bindkey = [r] CMD_NO_CMD_DEFAULT bindkey = [R] CMD_NO_CMD_DEFAULT bindkey = [o] CMD_NO_CMD_DEFAULT bindkey = [\{23}] CMD_NO_CMD_DEFAULT bindkey = [`] CMD_NO_CMD_DEFAULT bindkey = [t] CMD_NO_CMD_DEFAULT bindkey = [\{20}] CMD_NO_CMD_DEFAULT bindkey = [0] CMD_NO_CMD_DEFAULT bindkey = [+] CMD_NO_CMD_DEFAULT bindkey = [-] CMD_NO_CMD_DEFAULT bindkey = [e] CMD_NO_CMD_DEFAULT bindkey = [w] CMD_NO_CMD_DEFAULT bindkey = [q] CMD_NO_CMD_DEFAULT bindkey = [x] CMD_NO_CMD_DEFAULT bindkey = [q] CMD_NO_CMD_DEFAULT bindkey = [w] CMD_NO_CMD_DEFAULT bindkey = [a] CMD_NO_CMD_DEFAULT bindkey = [s] CMD_NO_CMD_DEFAULT bindkey = [d] CMD_NO_CMD_DEFAULT bindkey = [\{4}] CMD_NO_CMD_DEFAULT bindkey = [x] CMD_NO_CMD_DEFAULT bindkey = [c] CMD_NO_CMD_DEFAULT bindkey = [v] CMD_NO_CMD_DEFAULT bindkey = [b] CMD_NO_CMD_DEFAULT bindkey = [H] CMD_MOVE_LEFT bindkey = [H] CMD_TARGET_DIR_LEFT bindkey = [H] CMD_MAP_JUMP_LEFT bindkey = [h] CMD_MAP_MOVE_LEFT bindkey = [h] CMD_TARGET_LEFT bindkey = [h] CMD_SAFE_MOVE_LEFT bindkey = [J] CMD_MOVE_DOWN bindkey = [J] CMD_TARGET_DIR_DOWN bindkey = [J] CMD_MAP_JUMP_DOWN bindkey = [j] CMD_MAP_MOVE_DOWN bindkey = [j] CMD_TARGET_DOWN bindkey = [j] CMD_SAFE_MOVE_DOWN bindkey = [K] CMD_MOVE_UP bindkey = [K] CMD_TARGET_DIR_UP bindkey = [K] CMD_MAP_JUMP_UP bindkey = [k] CMD_MAP_MOVE_UP bindkey = [k] CMD_TARGET_UP bindkey = [k] CMD_SAFE_MOVE_UP bindkey = [L] CMD_MOVE_RIGHT bindkey = [L] CMD_TARGET_DIR_RIGHT bindkey = [L] CMD_MAP_JUMP_RIGHT bindkey = [l] CMD_MAP_MOVE_RIGHT bindkey = [l] CMD_TARGET_RIGHT bindkey = [l] CMD_SAFE_MOVE_RIGHT bindkey = [U] CMD_MOVE_UP_LEFT bindkey = [U] CMD_TARGET_DIR_UP_LEFT bindkey = [U] CMD_MAP_JUMP_UP_LEFT bindkey = [u] CMD_MAP_MOVE_UP_LEFT bindkey = [u] CMD_TARGET_UP_LEFT bindkey = [u] CMD_SAFE_MOVE_UP_LEFT bindkey = [I] CMD_MOVE_UP_RIGHT bindkey = [I] CMD_TARGET_DIR_UP_RIGHT bindkey = [I] CMD_MAP_JUMP_UP_RIGHT bindkey = [i] CMD_MAP_MOVE_UP_RIGHT bindkey = [i] CMD_TARGET_UP_RIGHT bindkey = [i] CMD_SAFE_MOVE_UP_RIGHT bindkey = [N] CMD_MOVE_DOWN_LEFT bindkey = [N] CMD_TARGET_DIR_DOWN_LEFT bindkey = [N] CMD_MAP_JUMP_DOWN_LEFT bindkey = [n] CMD_MAP_MOVE_DOWN_LEFT bindkey = [n] CMD_TARGET_DOWN_LEFT bindkey = [n] CMD_SAFE_MOVE_DOWN_LEFT bindkey = [M] CMD_MOVE_DOWN_RIGHT bindkey = [M] CMD_TARGET_DIR_DOWN_RIGHT bindkey = [M] CMD_MAP_JUMP_DOWN_RIGHT bindkey = [m] CMD_MAP_MOVE_DOWN_RIGHT bindkey = [m] CMD_TARGET_DOWN_RIGHT bindkey = [m] CMD_SAFE_MOVE_DOWN_RIGHT macros += M h ===move_left macros += M j ===move_down macros += M k ===move_up macros += M l ===move_right macros += M u ===move_up_left macros += M i ===move_up_right macros += M n ===move_down_left macros += M m ===move_down_right macros += M \{32} ===leader macros += M z ===cast macros += M 1 ===wield_1 macros += M 2 ===wield_2 macros += M 3 ===wield_3 macros += M 5 ===custom_rest macros += M e ===attack_triple macros += M E ===attack_tripleH macros += M o ===custom_explore macros += M \{5} ===find_cool macros += M f ===just_fire macros += M \{9} ===order_attack macros += M \{-233} ===order_attack_targeted bindkey = [;] CMD_DISPLAY_INVENTORY bindkey = [:] CMD_DISPLAY_SKILLS bindkey = []] CMD_DISPLAY_SPELLS bindkey = [F] CMD_FIRE bindkey = ['] CMD_LOOK_AROUND bindkey = ["] CMD_DISPLAY_MAP bindkey = [z] CMD_FORCE_CAST_SPELL bindkey = [Z] CMD_USE_ABILITY bindkey = [[] CMD_MEMORISE_SPELL bindkey = [\{15}] CMD_QUIT bindkey = [\{17}] CMD_QUIVER_ITEM bindkey = [r] CMD_AUTOFIGHT bindkey = [R] CMD_AUTOFIGHT_NOMOVE bindkey = [o] CMD_EXPLORE bindkey = [\{23}] CMD_WIELD_WEAPON bindkey = [`] CMD_PRIMARY_ATTACK bindkey = [t] CMD_CYCLE_QUIVER_FORWARD bindkey = [\{20}] CMD_CYCLE_QUIVER_BACKWARD bindkey = [0] CMD_SHOUT bindkey = [+] CMD_QUIVER_ITEM bindkey = [-] CMD_DROP bindkey = [e] CMD_TARGET_CYCLE_FORWARD bindkey = [w] CMD_TARGET_CYCLE_BACK bindkey = [q] CMD_TARGET_DESCRIBE bindkey = [x] CMD_TARGET_EXCLUDE macros += M q ===hotkey_q macros += M Q ===hotkey_Q macros += M \{17} ===hotkey_control_q macros += M w ===hotkey_w macros += M W ===hotkey_W macros += M \{23} ===hotkey_control_w macros += M a ===hotkey_a macros += M A ===hotkey_A macros += M \{1} ===hotkey_control_a macros += M s ===hotkey_s macros += M S ===hotkey_S macros += M \{19} ===hotkey_control_s macros += M d ===hotkey_d macros += M D ===hotkey_D macros += M \{4} ===hotkey_control_d macros += M x ===hotkey_x macros += M X ===hotkey_X macros += M \{24} ===hotkey_control_x macros += M c ===hotkey_c macros += M C ===hotkey_C macros += M \{3} ===hotkey_control_c macros += M v ===hotkey_v macros += M V ===hotkey_V macros += M \{22} ===hotkey_control_v macros += M b ===hotkey_b macros += M B ===hotkey_B macros += M \{2} ===hotkey_control_b { always_force = {"hailstorm", "fulminant prism"} never_force = {"fulminant prism"} ammos = {"arrow", "bolt", "bullet"} resting = 0 restmax = 100 attacking = 0 attack_key = "r" exploring = 0 stationary = false target_status = "NOTHING" fresh_target_found = false wield_primary = "x" wield_primary_base = "x" smartmoves_left = 0 smartmove_tracker = 0 explore_rest_toggle = false status_effects_keep_resting = {"on berserk cooldown", "slowed", "berserking", "contaminated", "silenced", "berserking (expiring)", "short of breath", "confused", "exhausted", "on fire", "weak-willed", "marked", "weakened", "immobile", "on recite cooldown", "unable to drink", "unable to hop", "attractive", "slow", "corroded", "tree-form", "tree-form (expiring)", "on dragon call cooldown"} function printy(x) x = tostring(x) crawl.mpr(x) end function printable(x) for i, y in pairs(x) do crawl.mpr(i) crawl.mpr(y) end end ignore_names = {"plant", "fungus", "bush"} function custom_ch_target_monster(x, y) M = monster.get_monster_at(x, y) if not M then return nil end fresh_target_found = true name = M:name() has_status = M:status(target_status) is_summoned = M:status("summoned") att = M:attitude() if att > 1 then return false end if has_status then return false end if is_summoned then return false end for n in ignore_names do if string.find(name, n) then return false end end return nil end ch_target_monster = custom_ch_target_monster -- ch_target_monster_expl = custom_ch_target_monster function cmnd(x) x = "CMD_" .. x crawl.do_commands({x}) end leader_key_pressers = { -- r = "tr.", r = "tr."} leader_keys = { x = "LOOK_AROUND", w = "WIELD_WEAPON", W = "WEAR_ARMOUR", p = "WEAR_JEWELLERY", v = "QUAFF", c = "READ", f = "EVOKE", A = "TOGGLE_AUTOPICKUP", S = "SAVE_GAME_NOW", t = "SHOUT", q = "QUIVER_ITEM", C = "CLOSE_DOOR", b = "DISPLAY_MUTATIONS", B = "MACRO_MENU", d = "DROP", D = "DROP_LAST", X = "DISPLAY_MAP"} leader_keys["1"] = "WEAR_ARMOUR" leader_keys["2"] = "WEAR_JEWELLERY" function yell() crawl.sendkeys("t", "t") end function drop_permanently() crawl.sendkeys("-", "\\") end function process_smartmove() cmnd("MAP_MOVE_DOWN") sm_count = sm_count - 1 if sm_count == 0 then smartmoving = 0 cmnd("MAP_GOTO_TARGET") end end function smartmove2(coords) for i, c in ipairs(coords) do x = c[1] y = c[2] travel.set_waypoint(9, x, y) crawl.sendkeys("G", "9") crawl.process_command() if you.turn_is_over() then break end end end function smartmove(moves) smartmoves_left = 5 smartmove_moves = moves smartmove_tracker = 0 end function execute_smartmove() order = {1, 2, 3} if smartmove_tracker > 0 then order = {1, 3, 2} end for _, i in ipairs(order) do -- for i, m in ipairs(smartmove_moves) do m = smartmove_moves[i] crawl.do_commands({m}) worked = you.turn_is_over() if worked then if i == 2 then smartmove_tracker = smartmove_tracker + 1 end if i == 3 then smartmove_tracker = smartmove_tracker - 1 end break end end smartmoves_left = smartmoves_left - 1 end function smartmove_test() things = {"CMD_MOVE_UP_RIGHT", "CMD_MOVE_RIGHT", "CMD_MOVE_UP"} smartmove(things) end function leader() a = crawl.getch() a = string.char(a) if a == "j" then smartmove_test() end if a == "o" then explore_now() end if a == "O" then explore_rest_toggle = not explore_rest_toggle printy("explore_rest_toggle is now " .. tostring(explore_rest_toggle)) end if a == "." then short_rest() end if a == "d" then drop_permanently() end if a == "T" then yell() end if a == "s" then stationary = not stationary end if a == "U" then if wield_primary == "-" then wield_primary = wield_primary_base else wield_primary = "-" end end if a == "l" then smartmove({"CMD_SAFE_MOVE_RIGHT", "CMD_SAFE_MOVE_UP_RIGHT", "CMD_SAFE_MOVE_DOWN_RIGHT"}) end if a == "m" then smartmove({"CMD_SAFE_MOVE_DOWN_RIGHT", "CMD_SAFE_MOVE_RIGHT", "CMD_SAFE_MOVE_DOWN"}) end if a == "j" then smartmove({"CMD_SAFE_MOVE_DOWN", "CMD_SAFE_MOVE_DOWN_RIGHT", "CMD_SAFE_MOVE_DOWN_LEFT"}) end if a == "n" then smartmove({"CMD_SAFE_MOVE_DOWN_LEFT", "CMD_SAFE_MOVE_DOWN", "CMD_SAFE_MOVE_LEFT"}) end if a == "h" then smartmove({"CMD_SAFE_MOVE_LEFT", "CMD_SAFE_MOVE_DOWN_LEFT", "CMD_SAFE_MOVE_UP_LEFT"}) end if a == "u" then smartmove({"CMD_SAFE_MOVE_UP_LEFT", "CMD_SAFE_MOVE_LEFT", "CMD_SAFE_MOVE_UP"}) end if a == "k" then smartmove({"CMD_SAFE_MOVE_UP", "CMD_SAFE_MOVE_UP_LEFT", "CMD_SAFE_MOVE_UP_RIGHT"}) end if a == "i" then smartmove({"CMD_SAFE_MOVE_UP_RIGHT", "CMD_SAFE_MOVE_UP", "CMD_SAFE_MOVE_RIGHT"}) end for k, c in pairs(leader_keys) do if a == k then cmnd(c) end end for k, c in pairs(leader_key_pressers) do if a == k then crawl.sendkeys(c) end end end function my_contains(list, x) for _, v in pairs(list) do if v == x then return true end end return false end function my_contains_key(t, k) for x, _ in pairs(t) do if k == x then return true end end return false end function my_contains_val(list, x) for _, v in pairs(list) do if v == x then return true end end return false end function hp_percent() a, b = you.hp() return 100 * a / b end function mp_percent() a, b = you.mp() return 100 * a / b end function cast() crawl.sendkeys("z", "*") crawl.process_command() end function quiver() crawl.sendkeys("+") end function my_c_message (text, channel) if text:find("into view") then attacking = 0 end if text:find("hits you") then resting = 0 end end c_message = my_c_message function c_answer_prompt_base(prompt) if prompt:find("standing in a cloud of freezing") then return true end if prompt:find("frozen ramparts") then return true end if prompt:find("your divine stamina") then return true end if prompt:find("Your icy armour") then return true end if prompt:find("into that cloud of freezing") then return true end if prompt:find("refrigerate near your spectral") then return true end if prompt:find("Really.*spellspark.*") then return true end if prompt:find(".*might.*spellspark.*") then return true end if prompt:find("Really.*zombie.*") then return true end if prompt:find("Really.*spectral.*") then return true end if prompt:find("Really.*skeletal.*") then return true end if prompt:find("Really.*simulac.*") then return true end end c_answer_prompt = c_answer_prompt_base function test_rest() if resting > restmax or not you.feel_safe() then -- crawl.mpr("Not safe") resting = 0 return end race = string.lower(you.race()) if (hp_percent() < 100 and not string.find(race, "deep dwarf")) or mp_percent() < 100 then return end for i, s in ipairs(status_effects_keep_resting) do q = you.status(s) -- crawl.mpr(s) -- crawl.mpr(tostring(q)) if q then return end end if resting > 0 then crawl.mpr("rested for " .. tostring(resting)) end resting = 0 end function nil_func(x, y) return nil end rcount = 0 function ready() -- rcount = rcount + 1 -- printy(rcount) if you.turns() == 0 then initialise_skilling() end target_status = "NOTHING" c_answer_prompt = c_answer_prompt_base test_rest() if resting > 0 then resting = resting + 1 crawl.sendkeys(".") end if exploring == 1 and resting == 0 then crawl.mpr("exploring") crawl.sendkeys("o") exploring = 0 end if attacking > 0 then attacking = attacking - 1 crawl.sendkeys(attack_key) end if not you.feel_safe() then smartmoves_left = 0 end if smartmoves_left > 0 then execute_smartmove() end end function custom_attack(key, t) attacking = 3 attack_key = key end function short_rest() stationary = false crawl.mpr("short rest") -- crawl.mpr(tostring(you.status())) resting = 1 restmax = 10 end function explore_now() if explore_rest_toggle then crawl.setopt("explore_auto_rest = true") else crawl.setopt("explore_auto_rest = false") end exploring = 1 end function custom_rest() stationary = false crawl.mpr("resting!") -- crawl.mpr(tostring(you.status())) resting = 1 restmax = 100 end function custom_explore() if explore_rest_toggle then crawl.setopt("explore_auto_rest = false") else crawl.setopt("explore_auto_rest = true") end exploring = 1 end function attack_triple() custom_attack("r", 3) end function attack_tripleH() custom_attack("R", 3) end function custom_move(key, dir) is_upper = string.match(key, "%u") command_base = "CMD_SAFE_MOVE_" if is_upper then command_base = "CMD_MOVE_" end if stationary and not is_upper then command_base = "CMD_ATTACK_" end c = command_base .. dir -- crawl.sendkeys(d) crawl.do_commands({c}) end function control(c) return string.char(string.byte(c) - string.byte('a') + 1) end function find_cool() findy = "@&&<<<>||ego||artefact||dragon scale||crystal plate>>\r" comm = control("f")..findy crawl.sendkeys(comm) end function wield_1() printy(wield_primary) crawl.sendkeys(control("w")..wield_primary) end function wield_2() crawl.sendkeys(control("w").."y") end function wield_3() crawl.sendkeys(control("w").."z") end function just_fire() crawl.sendkeys("F\r") end function order_attack() crawl.sendkeys("0a.") end function order_attack_targeted() crawl.sendkeys("0a") end -- c_persist = {} -- if c_persist["testvar"] then -- printy("testvar defined already") -- else -- crawl.mpr("HELLO") -- c_persist["testvar"] = 5 -- end -- printy(c_persist["testvar"]) add_autopickup_func(function(it, name) if it.is_useless then return end if it.class(true) == "armour" then local good_slots = {cloak="Cloak", helmet="Helmet", gloves="Gloves", boots="Boots"} st, _ = it.subtype() if good_slots[st] ~= nil and items.equipped_at(good_slots[st]) == nil then return true end end end) function c_answer_prompt_spellconfirm(prompt) -- if prompt::find("likely to hit you") then -- return false -- end if prompt:find("likely to hit you") then return false end if prompt:find("refrigerate near your") then return true end if prompt:find("eally fire at your ally") then return true end if prompt:find("eally fire in your ally") then return true end return c_answer_prompt_base(prompt) end function c_answer_prompt_noconfirm(prompt) -- if prompt::find("likely to hit you") then -- return false -- end if prompt:find("likely to hit you") then return true end if prompt:find("refrigerate near your spectral") then return true end return c_answer_prompt_base(prompt) end -- function hotkey_old(k) -- c_answer_prompt = c_answer_prompt_spellconfirm -- is_upper = string.match(k, "%u") -- letter_lists = {you.spell_letters(), you.ability_letters()} -- tables = {you.spell_table(), you.ability_table()} -- cast_keys = {"z", "Z"} -- for i, L in ipairs(letter_lists) do -- cast_key = cast_keys[i] -- T = tables[i] -- spell_contains = my_contains(L, k) -- spell_contains_upper = my_contains(L, string.upper(k)) -- spell_contains_lower = my_contains(L, string.lower(k)) -- if spell_contains or (is_upper and spell_contains_lower) then -- spell_key = k -- if not spell_contains and spell_contains_lower then -- spell_key = string.lower(k) -- end -- spell_name = T[spell_key] -- spell_name = string.lower(spell_name) -- printy(spell_name) -- printy(spell_name) -- printy(my_contains(never_force, spell_name)) -- look_for_fresh_target = false -- if spell_name == "inner flame" then -- target_status = "inner flame" -- look_for_fresh_target = true -- fresh_target_found = false -- ch_target_monster = custom_ch_target_monster -- end -- -- crawl.mpr(tostring(my_contains(always_cast, spell_name))) -- force = ((not is_upper and not spell_contains_upper) or my_contains(always_force, spell_name)) and not my_contains(never_force, spell_name) -- crawl.sendkeys(cast_key, spell_key) -- if look_for_fresh_target and not fresh_target_found then -- crawl.sendkeys("=") -- end -- if force then -- crawl.sendkeys(".") -- end -- return -- end -- end -- index = items.letter_to_index(k) -- item = items.inslot(index) -- if item then -- iname = item:name() -- if item.is_throwable then -- crawl.sendkeys("+", "*", k) -- return -- end -- for i, a in ipairs(ammos) do -- if string.find(iname, a) then -- crawl.sendkeys("+", "*", k) -- return -- end -- end -- end -- end function hotkey(k, force) c_answer_prompt = c_answer_prompt_noconfirm if force then c_answer_prompt = c_answer_prompt_spellconfirm end local ability_table = {} if ability_info then for i, ability in ipairs(you.ability_info()) do ability_table[ability[3]] = ability[1] end end local cast_keys = { "z", "Z" } local power_lists = { you.spell_table(), ability_table } for i, L in ipairs(power_lists) do if L[k] then local spell_name = string.lower(L[k]) look_for_fresh_target = false if spell_name == "inner flame" then target_status = "inner flame" look_for_fresh_target = true fresh_target_found = false end crawl.sendkeys(cast_keys[i], k) if nil then a = 1 end if my_contains(always_force, spell_name) then force = true end if my_contains(never_force, spell_name) then force = false end if look_for_fresh_target and not fresh_target_found then crawl.sendkeys("=") end if force then crawl.sendkeys("\r") end return end end end skills_to_disable = { "fighting", "throwing", "armour", "dodging", "stealth", "shields", "spellcasting", "conjurations", "hexes", "summonings", "necromancy", "translocations", "alchemy", "fire magic", "ice magic", "air magic", "earth magic", "invocations", "evocations", "shapeshifting"} weapon_skills = { "maces & flails", "axes", "polearms", "staves", "unarmed combat", "short blades", "long blades", "ranged weapons"} skilling_data = [[ fighter gladiator monk hunter brigand berserker cinder acolyte noweapon fire magic chaos knight artificer evocations shapeshifter noweapon shapeshifting wanderer delver warper hexslinger enchanter noweapon hexes reaver noweapon conjurations 3 necromancy 3 spellcasting 2 hedge wizard conjurations 2 summonings 3 necromancy 3 spellcasting 2 conjurer conjurations spellcasting 2 summoner summonings spellcasting 2 necromancer necromancy spellcasting 2 fire elementalist fire magic conjurations 2 spellcasting 2 ice elementalist ice magic air elementalist conjurations 2 air magic earth elementalist earth magic alchemist alchemy ]] function mysplit(inputstr, sep) local t = {} if sep == nil then sep = "%s" end for str in string.gmatch(inputstr, "(.-"..sep..")") do table.insert(t, str) end return t end function apply_class(lines) for i, line in ipairs(lines) do line = mystrip(line) printy(line) if i == 1 then elseif line == "noweapon" then crawl.mpr("Not skilling weapon") disable_weapon_skilling() elseif mystrip(line) == "" then else local target = 0 for numb in string.gmatch(line, "%d+") do printy(numb) target = numb end local skillname = mystrip(string.gsub(line, "%d", "")) printy(skillname) you.set_training_target(skillname, target) you.train_skill(skillname, 1) end end end function mystrip(s) s = string.gsub(s, "[ \n]*$", "") s = string.gsub(s, "^[ \n]*", "") return s end function reduce_string(s) s = string.lower(s) s = string.gsub(s, " ", "") s = string.gsub(s, "\n", "") return s end function parse_skilling_data() a = mysplit(skilling_data.."\n \n", "\n \n") for i, chunk in ipairs(a) do local lines = mysplit(chunk, '\n') local name = lines[1] name = reduce_string(lines[1]) classname = reduce_string(you.class()) -- printy(string.lower(you.class())) -- printy(lines[1] == string.lower(you.class())) -- printy(lines[1]:len()) -- printy(string.lower(you.class()):len()) -- for x in string.gmatch(lines[1], '(.)') do -- printy(x) -- printy(string:byte(x)) -- end if name == classname then printy("Found class "..lines[1]) -- printy(lines[1]) apply_class(lines) end -- printy(lines) -- printy(chunk) -- if class == string.lower(you.class()) then end -- printy(a) -- for i, chunk in pairs(a) do -- printy(a) -- end end function disable_weapon_skilling() for i, skill in ipairs(weapon_skills) do you.train_skill(skill, 0) end end function initialise_skilling() crawl.mpr("Initialising skilling") for i, skill in ipairs(skills_to_disable) do you.train_skill(skill, 0) end parse_skilling_data() -- for class, info in pairs(class_specs) do -- if class == string.lower(you.class()) then -- for i, v in ipairs(info) do -- if v == "noweapon" then -- crawl.mpr("Not skilling weapon") -- disable_weapon_skilling() -- else -- crawl.mpr(v) -- you.train_skill(v, 1) -- end -- end -- end -- end end function move_left() custom_move("h", "LEFT") end function move_down() custom_move("j", "DOWN") end function move_up() custom_move("k", "UP") end function move_right() custom_move("l", "RIGHT") end function move_up_left() custom_move("u", "UP_LEFT") end function move_up_right() custom_move("i", "UP_RIGHT") end function move_down_left() custom_move("n", "DOWN_LEFT") end function move_down_right() custom_move("m", "DOWN_RIGHT") end function hotkey_q() hotkey("q", true) end function hotkey_control_q() hotkey("Q", false) end function hotkey_Q() hotkey("q", false) end function hotkey_w() hotkey("w", true) end function hotkey_control_w() hotkey("W", false) end function hotkey_W() hotkey("w", false) end function hotkey_a() hotkey("a", true) end function hotkey_control_a() hotkey("A", false) end function hotkey_A() hotkey("a", false) end function hotkey_s() hotkey("s", true) end function hotkey_control_s() hotkey("S", false) end function hotkey_S() hotkey("s", false) end function hotkey_d() hotkey("d", true) end function hotkey_control_d() hotkey("D", false) end function hotkey_D() hotkey("d", false) end function hotkey_x() hotkey("x", true) end function hotkey_control_x() hotkey("X", false) end function hotkey_X() hotkey("x", false) end function hotkey_c() hotkey("c", true) end function hotkey_control_c() hotkey("C", false) end function hotkey_C() hotkey("c", false) end function hotkey_v() hotkey("v", true) end function hotkey_control_v() hotkey("V", false) end function hotkey_V() hotkey("v", false) end function hotkey_b() hotkey("b", true) end function hotkey_control_b() hotkey("B", false) end function hotkey_B() hotkey("b", false) end }