##### Crawl Init file ############################################### # For descriptions of all options, as well as some more in-depth information # on setting them, consult the file # options_guide.txt # in your /docs directory. If you can't find it, the file is also available # online at: # https://github.com/crawl/crawl/blob/master/crawl-ref/docs/options_guide.txt # # Crawl uses the first file of the following list as its option file: # * init.txt in the -rcdir directory (if specified) # * .crawlrc in the -rcdir directory (if specified) # * init.txt (in the Crawl directory) # * ~/.crawl/init.txt (Unix only) # * ~/.crawlrc (Unix only) # * ~/init.txt (Unix only) # * settings/init.txt (in the Crawl directory) ##### Some basic explanation of option syntax ####################### # Lines beginning with '#' are comments. The basic syntax is: # # field = value or field.subfield = value # # Only one specification is allowed per line. # # The terms are typically case-insensitive except in the fairly obvious # cases (the character's name and specifying files or directories when # on a system that has case-sensitive filenames). # # White space is stripped from the beginning and end of the line, as # well as immediately before and after the '='. If the option allows # multiple comma/semicolon-separated terms (such as # autopickup_exceptions), all whitespace around the separator is also # trimmed. All other whitespace is left intact. # # There are three broad types of Crawl options: true/false values (booleans), # arbitrary values, and lists of values. The first two types use only the # simple =, with later options - which includes your options that are different # from the defaults - overriding earlier ones. List options allow using +=, ^=, # -=, and = to append, prepend, remove, and reset, respectively. Usually you will # want to use += to add to a list option. Lastly, there is := which you can use # to create an alias, like so: # ae := autopickup_exceptions # From there on, 'ae' will be treated as if it you typed autopickup_exceptions, # so you can save time typing it. # ##### Other files ################################################### # You can include other files from your options file using the 'include' # option. Crawl will treat it as if you copied the whole text of that file # into your options file in that spot. You can uncomment some of the following # lines by removing the beginning '#' to include some of the other files in # this folder. # Some useful, more advanced options, implemented in LUA. # include = advanced_optioneering.txt # Alternative vi bindings for Dvorak users. # include = dvorak_command_keys.txt # Alternative vi bindings for Colemak users. # include = colemak_command_keys.txt # Alternative vi bindings for Neo users. # include = neo_command_keys.txt # Override the vi movement keys with a non-command. # include = no_vi_command_keys.txt # Turn the shift-vi keys into safe move, instead of run. # include = safe_move_shift.txt # CRAWL.NEMELEX.CARDS # Last Updated at Aug 31, 2024 --------## Sound Pack ##-------- -- /SoundSupport clear sound_on = true # CNC server's SoundPack sound_pack += https://osp.nemelex.cards/build/latest.zip:["init.txt"] one_SDL_sound_channel = true sound_fade_time = 0.5 sound_volume = 0.05 --------## Generic Settings ##-------- view_delay = 200 default_manual_training = true cloud_status = true show_more = false always_show_zot = true hp_warning = 30 #font to Consolas tile_font_crt_family = Consolas tile_font_stat_family = Consolas tile_font_msg_family = Consolas tile_font_lbl_family = Consolas #font size tile_font_stat_size = 12 tile_font_msg_size = 15 #tile_font_tip_size = 10 #tile_font_lbl_size = 10 --------## Explore Settings ##-------- explore_stop -= greedy_visited_item_stack rest_wait_both = true rest_wait_percent = 80 explore_auto_rest=true #runset ignore runset_ignore_message += your breath back runset_ignore_message += You feel.*sick runset_ignore_message += You are no longer corroded #runrest_ignore -- need to test runrest_ignore_message += Your fire (vortexlvortices).*something runrest_ignore_message += something .* fire (vortexlvortices) --------## Alert Messages ##-------- -- monsters alert ### Snake Pit ### force_more_message += guardian serpent .*into view force_more_message += salamander tyrant .*into view ### Shoal ### force_more_message += merfolk aquamancer .*into view ### Vaults ### force_more_message += peacekeeper .*into view ### Zot Realm ### force_more_message += draconian scorcher .*into view force_more_message += draconian shifter .*into view force_more_message += moth of wrath .*into view ### Slime Pit ### force_more_message += shining eye .*into view -- danger brands alert #distortion alert force_more_message += is wielding.*distortion.* flash_screen_message += is wielding.*distortion.* #holy alert for undeads : if you.race() == "Vampire" or you.race() == "Mummy" or you.race() == "Ghoul" or you.race() == "Demonspawn" then unusual_monster_items += holy : end -- message color #message color for noises message_colour ^= lightgreen:.*(shouts|hear a shout|hisses angrily|hear an angry hiss|shouts in stereo|hear two shouts|barks|hear a bark|howls|hear a howl|roars deafeningly|hear a deafening roar|roars|hear a roar|growls angrily|hear an angry growl|deep croak|croaks|hear a croak|buzzes angrily|hear an angry buzzing noise|screeches|hear a screech|bellows|hear a bellow|gurgles horribly|hear a horrible gurgling sound|squeals angrily|hear an angry squeal|bleats|hear a bleat|trumpets|hear a trumpeting|skitter|hear a skittering sound|skitter faintly|hear a faint skittering sound|chilling moan|hideous shriek) message_colour ^= lightgreen:it creaks loudly #message color exceptions #message_colour ^= mute: There is message_colour ^= white: no longer poisoned message_colour ^= white: You shake off the liquid fire message_colour ^= white: your life force feels restored message_colour ^= white: your .* skill increases to message_colour ^= white: (wounded|damaged|destroyed|dead) message_colour ^= white: returning message_colour ^= white: breath back message_colour ^= cyan: is nearby message_colour ^= cyan: monsters nearby message_colour ^= green: You add the spell #message additions force_more_message += grants you force_more_message += pick up a manual force_more_message += You have finished your manual force_more_message += You feel a bit more experienced force_more_message += You feel your power leaking away force_more_message += found a staircase to the ecumenical temple force_more_message += blink again force_more_message += yourself slow down -- force_more_message += Training target .* for .* reached force_more_message += They guard the force_more_message += It guards the demonic rune of Zot #message exceptions force_more_message -= You have reached level force_more_message -= You sense force_more_message -= You shake off the liquid fire #vehumet flash flash_screen_message += Vehumet offers* --------## Item Settings ##-------- -- autopickup autopickup_exceptions += 0 then local hp_difference = previous_hp - current_hp -- announcing damage if hp_difference > max_hp * value and not was_berserk and not was_form then crawl.mpr("*** YOU TAKE " .. hp_difference .. " DAMAGE!! HP:[" .. current_hp .. "/" .. max_hp .. "] *** ") crawl.more() end -- warning hp if current_hp < max_hp * value and not warning_hp then crawl.mpr("Are you sure you won't die?") crawl.more() crawl.mpr("Your life is more valuable than your enemy's death...") warning_hp = true elseif current_hp > max_hp * value and warning_hp then warning_hp = false end end previous_hp = current_hp previous_form = current_form was_berserk_last_turn = you_are_berserk end } -- AnnounceMP() : alarm when you have low MP { local previous_mp = 0 local previous_max_mp = 0 function AnnounceMP() local current_mp, max_mp = you.mp() if previous_mp > 0 and previous_max_mp == max_mp then local mp_difference = previous_mp - current_mp if current_mp < (max_mp * 0.5) and mp_difference > 0 then crawl.mpr("*** LOW MP WARNING MP:[" .. current_mp .. "/" .. max_mp .. "] *** ") if current_mp < (max_mp * 0.1) then crawl.more() end end end previous_mp = current_mp previous_max_mp = max_mp end } -- EndFloorNotation() : show more after exploring a floor { function is_explored() if string.find(crawl.messages(1),"Done exploring") then return true elseif string.find(crawl.messages(1),"Partly explored,*") then return true elseif string.find(crawl.messages(1),"Could not explore") then return true end return false end function v4() if you.branch() == "Vaults" and you.depth() == 4 then return true end return false end function EndFloorNotation() if is_explored() then if v4() then crawl.mpr("Check Inventory & Find Items... \n *** WARNING! : Next Floor is Vault:5 *** ") else crawl.mpr("Check Inventory & Find Items... ") end crawl.more() end end } -- force_threat_mores() : alerts for high hd monsters (red) coming into view #https://gist.github.com/Implojin/ec5c4e341d92e0ce34a87f5c060a19ea { local ATT_NEUTRAL = 1 local visible_mons_table = {} -- To reduce warning spam from bands we compare m:name(), -- so you'll only get a single warning per group of Death Yaks or whatever. function update_visible_mons_table(m) for _,visible_mons in ipairs(visible_mons_table) do if m:name() == visible_mons:name() then return false end end table.insert(visible_mons_table, m) if m:threat() >= 3 then crawl.formatted_mpr("Extremely Dangerous Monster: " .. m:name() .. "") crawl.more() end end -- To give our threat warnings some hysteresis, -- we warn once when adding a new mthrt:nasty to the table, -- and we wipe the threat table whenever LOS is empty. function force_threat_mores() local LOS = you.los() local m = nil local current_threat = 0 for i = -LOS,LOS do for j = -LOS,LOS do m = monster.get_monster_at(i,j) if m and you.see_cell_no_trans(i,j) and m:attitude() < ATT_NEUTRAL then current_threat = current_threat + m:threat() update_visible_mons_table(m) end end end if current_threat == 0 then visible_mons_table = {} end end } -- Show prompt when you use irradiate while you are in white contam { function check_contam() if you.contaminated() > 1 then crawl.setopt("confirm_action += Irradiate") else crawl.setopt("confirm_action -= Irradiate") end end } -- check bad mutations : blurry vison. random tele. *rage { local mut = true function mutate() if mut then if string.find(crawl.messages(5), "you.*uncertain") or string.find(crawl.messages(5), "pissed off") or string.find(crawl.messages(5), "vision blurs") then mut = false crawl.yesno("Check your mutations!") end end if not mut and not string.find(crawl.messages(8), "Check your mutations!") then mut = true end end } -- show prompt and counter when your DDoor is almost expired { local door = true function DDoorWarning() if you.status("in death's door (expiring)") and door then crawl.yesno("DDoor is almost expired! (Y or N to confirm.)", false, false, true, false) crawl.mpr("It will be ended in 5-10 turns...... ") door = false end if not you.status("in death's door (expiring)") then door = true end end } { local counter = you.turns() function DDoorCounter() if you.status("in death's door (expiring)") then crawl.mpr("Count "..you.turns() - counter.."......") end if not you.status("in death's door (expiring)") then counter = you.turns()+1 end end } --------## Annotations ##-------- { function Annotations() annotate_v5() annotate_skillm() annotate_xl() end } -- Vaults warning : Depth5 & rElec #https://tavern.dcss.io/t/whats-in-your-rc-file/160/15 { local annotated = false function annotate_v5() if string.find(crawl.messages(3),"This branch contains the silver rune of Zot") and not annotated_v5 then crawl.sendkeys("!v5" .. string.char(13) .. "!vaults warning" .. string.char(13)) if you.res_shock() < 1 then crawl.mpr("Warning : You don't have rElec!!") crawl.more() end annotated = true end end } -- sending 'm' when you start game { local need_skills_opened = true function annotate_skillm() if you.turns() == 0 and need_skills_opened then crawl.sendkeys("m") need_skills_opened = false end end } -- set options by xl --- veryearly_setopt : if you.xl() < 7 then force_more_message += (orc priest|orc warrior|hornet|centaur|drake|cyclops).*into view : end --- early_setopt : if you.xl() < 12 then force_more_message += wield.*(venom|elec|chaos|heavy|vamparic) flash_screen_message += wield.*(venom|elec|chaos|heavy|vamparic) unusual_monster_items += venom unusual_monster_items += electrocution unusual_monster_items += heavy force_more_messsage += carrying a wand of (acid|quicksilver|ice|para|charm|poly|warp|root) : end -- turn off the setting when you are not in the xl range { local veryearly_setopt = true local early_setopt = true local annotate_setup = false function annotate_xl() --initial setup if not annotate_setup then crawl.mpr("Enter : /SoundSupport clear") annotate_setup = true end --xl annotation if you.xl() >= 7 and veryearly_setopt then crawl.setopt("force_more_message -= (orc priest|orc warrior|hornet|centaur|drake|cyclops).*into view") veryearly_setopt = false end if you.xl() >= 12 and early_setopt then crawl.setopt("force_more_message -= wield.*(venom|elec|chaos|heavy|vamparic)") crawl.setopt("flash_screen_message -= wield.*(venom|elec|chaos|heavy|vamparic)") crawl.setopt("unusual_monster_items -= venom") crawl.setopt("unusual_monster_items -= electrocution") crawl.setopt("unusual_monster_items -= heavy") crawl.setopt("force_more_messsage -= carrying a wand of (acid|quicksilver|ice|para|charm|poly|warp|root)") crawl.mpr("Settings for Early Games Disabled...") early_setopt = false end end } -- settings for late games -- settings for ziggurat --------## References & Spares ##-------- -- https://crawl.develz.org/wiki/doku.php?id=dcss:help:maps:lua:modules:crawl:input -- https://doc.dcss.io/index.html --crawl.mpr(string.format("max_hp_decreased is: %s", max_hp_decreased and "True" or "False"))