# CRAWL.NEMELEX.CARDS ##### 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 Nov 05, 2024 --------## CNC Server Settings (DWEM) ##-------- --https://gall.dcinside.com/board/view/?id=rlike&no=465334 -- /SoundSupport clear sound_on = true sound_volume = 0.1 sound_pack += https://osp.nemelex.cards/build/latest.zip:["xobeh.txt", "init.txt"] one_SDL_sound_channel = true sound_fade_time = 0.5 --템자랑하기 : 우클릭 lab_use_click_to_send_chat = true --채팅삭제방지 disable_clear_chat = true --------## Generic Settings ##-------- view_delay = 200 show_more = false tile_show_threat_levels = trivial, easy, tough, nasty, unusual cloud_status = true always_show_zot = true always_show_gems = true more_gem_info = true hp_warning = 30 default_manual_training = true #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 = 19 tile_font_msg_size = 15 #tile_font_tip_size = 10 #tile_font_lbl_size = 10 --------## Explore Settings ##-------- explore_stop -= greedy_visited_item_stack travel_avoid_terrain = deep water 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 --------## Alert Messages ##-------- -- monsters alert force_more_message += .*into view -- danger brands alert #venom alert unusual_monster_items += venom force_more_message += is wielding.*venom.* force_more_message += .* of venom comes into view #antimagic alert unusual_monster_items += antimagic force_more_message += is wielding.*antimagic.* force_more_message += .* of antimagic comes into view #distortion alert force_more_message += is wielding.*distortion.* flash_screen_message += is wielding.*distortion.* force_more_message += .* of distortion comes into view flash_screen_message += .* of distortion comes into view #holy alerts for undeads : if you.race() == "Vampire" or you.race() == "Mummy" or you.race() == "Ghoul" or you.race() == "Demonspawn" then unusual_monster_items += holy force_more_message += is wielding.*holy.* flash_screen_message += is wielding.*holy.* force_more_message += .* of holy.* comes into view flash_screen_message += .* of holy.* comes into view : end -- demonspawn alert force_more_message += your demonic ancestry asserts itself force_more_message += You feel monstrous as your demonic heritage exerts itself. message_colour ^= lightcyan:You feel monstrous as your demonic heritage exerts itself. -- miscast & failure alert force_more_message += You fail to use your ability. flash_screen_message += You fail to use your ability. message_colour ^= lightred: You fail to use your ability. force_more_message += you miscast .* flash_screen_message += you miscast .* message_colour ^= lightred: you miscast .* -- invisible expiring force_more_message += you flicker for a moment force_more_message += you flicker back into view --monsters resisting from hex (not using) --force_more_message += struggles to resist --force_more_message += resists with .* effort #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 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 force_more_message += (A|The) demonic rune of Zot (can|may) be found here. force_more_message += You feel less contaminated with magical energies. force_more_message += A sentinel's mark forms upon you force_more_message += your magic feels tainted force_more_message += you hear a chittering from your sack of spiders. -- force_more_message += You feel a bit more experienced ---# portal alerts #--- more := force_more_message more += ticking.*clock more += dying ticks more += distant snort more += coins.*counted more += tolling.*bell more += roar of battle more += creaking.*portcullis more += portcullis is probably more += wave of frost more += crackling.*melting more += hiss.*sand more += sound.*rushing water more += rusting.*drain more += drain falling apart more += heat about you more += falling.*rocks more += rumble.*avalanche of rocks more += crackle.*arcane power more += crackle.*magical portal more += distant wind more += whistling.*wind more += rapidly growing quiet more += beating.*drum more += the drumbeats cease more += interdimensional caravan more += You hear the slow rusting #message exceptions force_more_message -= You have reached level force_more_message -= You sense force_more_message -= You shake off the liquid fire -- gods alert #vehumet flash flash_screen_message += Vehumet offers* #Uskayaw Paralysis force_more_message += Uskayaw prepares the audience for your solo! --showing prompt force_spell_targeter += Silence confirm_action += Silence --------## Message Colors ##-------- #message color for noises channel.talk = lightgreen channel.sound = lightgreen message_colour ^= yellow: you hear #noise exceptions message_colour ^= white: You hear the crackle of electricity. message_colour ^= white: You hear a distant slurping noies. message_colour ^= yellow:You scream message_colour ^= yellow:for attention #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: You have reached level message_colour ^= white: returning message_colour ^= white: breath back channel.monster_damage = lightcyan message_colour ^= lightcyan : You feel a bit more experienced message_colour ^= white : (heavily wounded|moderately wounded|severely wounded|almost dead) message_colour ^= white : Your .* is destroyed! --message_colour ^= lightcyan: You feel a bit more experienced channel.hell_effect = magenta channel.god = brown channel.duration = blue message_colour ^= blue : The ice encasing you melts away. -- Cyan for interface message_colour ^= cyan: is nearby! message_colour ^= cyan: monsters nearby! --message_colour ^= cyan: You can't carry that many items. --message_colour ^= cyan: No target in view message_colour ^= cyan: (Done exploring|Partly explored|Could not explore) force_more_message += (Done exploring|Partly explored|Could not explore) --Red for dangers -- Confused message_colour ^= red:You are too confused! force_more_message += You are too confused! -- Sap -- -Cast force_more_message += You don't know any spells. message_colour ^= red:You are unable to access your magic! force_more_message += You are unable to access your magic! --Green message_colour ^= green: You add the spell message_colour ^= green: Training target .* for .* reached message_colour ^= green: as sick as possible! --------## Item Settings ##-------- -- autopickup autopickup_exceptions += max_hp then max_hp_decreased = true end if you.xl() < 7 then value = 0.3 else value = 0.15 end if previous_hp > 0 then local hp_difference = previous_hp - current_hp -- announcing damage if max_hp_decreased and not was_berserk and not was_form then crawl.mpr("*** Max HP Drained! Check your HP") elseif 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 end previous_hp = current_hp previous_max_hp = max_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 EndFloorNotation() if is_explored() then --EarlyGames Alert if you.branch() == "D" and you.depth() < 7 then crawl.mpr(" Check your strategies... ") --Vault5 Alert elseif you.branch() == "Vaults" and you.depth() == 4 then crawl.mpr("*** WARNING! : Next Floor is Vault:5 *** ") end 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 = {} function using_Silence(m) for _,spell in ipairs(m:spells()) do if spell =='Silence' then return true end end return false end -- 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:is_unique() then crawl.formatted_mpr("Unique Monster: " .. m:name() .. "") crawl.more() elseif m:threat() >= 3 then crawl.formatted_mpr("Extremely Dangerous Monster: " .. m:name() .. "") crawl.more() end if using_Silence(m) then crawl.formatted_mpr("Silence Using Monster: " .. m:name() .. " at (" .. m:x_pos() .. "," .. -m:y_pos() .. ")") 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 check_los_threat() 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 check_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") or string.find(crawl.messages(5), "ability to read scrolls") or string.find(crawl.messages(5), "You feel vulnerable to cold.") or string.find(crawl.messages(5), "You feel vulnerable to heat.")then crawl.yesno("Check your mutations!") crawl.mpr("Check your mutations!") mut = false end end if not mut and not string.find(crawl.messages(8), "Check your mutations!") then mut = true end end } -- set options by resistant : rPois { local current_rPois = 0 local was_rPois = -1 function setopt_rPois() current_rPois = you.res_poison() if was_rPois == -1 or was_rPois ~= current_rPois then if you.res_poison() < 1 then crawl.setopt("unusual_monster_items += venom") crawl.setopt("force_more_message += is wielding.*venom.*") crawl.setopt("force_more_message += .* of venom comes into view") else crawl.setopt("unusual_monster_items -= venom") crawl.setopt("force_more_message -= is wielding.*venom.*") crawl.setopt("force_more_message -= .* of venom comes into view") end end was_rPois = current_rPois 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() < 13 then force_more_message += wield.*(venom|elec|chaos|heavy|vamparic) unusual_monster_items += venom unusual_monster_items += electrocution unusual_monster_items += heavy force_more_message += carrying a wand of message_colour += yellow : carrying a wand of : end -- turn off the setting when you are not in the xl range { local veryearly_setopt = true local early_setopt = true local annotate_init = false function setopt_xl() --initial setup if not annotate_init then crawl.more() annotate_init = 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() >= 13 and early_setopt then crawl.setopt("force_more_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_message -= carrying a wand of ") crawl.setopt("message_colour -= yellow : carrying a wand of ") crawl.mpr("Settings for Early Games Disabled...") early_setopt = false end end } --------## Annotations ##-------- { function Annotations() annotate_v5() annotate_m() DDoorWarning() DDoorCounter() --VehumetCounter() 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(8),"This branch contains the silver rune of Zot") and not annotated 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_m() if you.turns() == 0 and need_skills_opened then crawl.sendkeys("m") need_skills_opened = false --you.set_training_target("fighting", 1) --you.train_skill("fighting",1) 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 } { local annotated = false function VehumetCounter() if you.god() == 'Vehumet' then if string.find(crawl.messages(8),"Vehumet offers") and not annotated then -- crawl.mpr("Vehumet Counter : " .. count .. "") end if annotated and not string.find(crawl.messages(10),"Vehumet offers") then annotated = false end end end } --------# Options for VpEn #-------- { if you.race() == "Vampire" and you.class() == "Enchanter" then VpEn = true end if VpEn then if you.turns() == 0 then you.set_training_target("spellcasting", 3) you.set_training_target("hexes", 5) you.set_training_target("fighting", 7) you.set_training_target("short blades", 10) you.set_training_target("dodging", 9) you.set_training_target("shields", 3) you.set_training_target("stealth", 9) you.set_training_target("invocations", 1) you.set_training_target("evocations", 2) you.train_skill("fighting", 2) you.train_skill("short blades", 2) you.train_skill("dodging", 1) you.train_skill("stealth", 1) you.train_skill("spellcasting", 1) you.train_skill("hexes", 1) crawl.mpr("Dont be idleness......") end end }