# CRAWL.NEMELEX.CARDS # Last Updated at Sep 19, 2024 --------## CNC Server Settings (DWEM) ##-------- -- /SoundSupport clear sound_on = true sound_volume = 0.1 -- 죠베 사운드팩 -- sound_pack += https://osp.nemelex.cards/build/latest.zip:["xobeh.txt", "init.txt"] -- 일반 사운드팩 sound_pack += https://osp.nemelex.cards/build/latest.zip:["init.txt"] one_SDL_sound_channel = true sound_fade_time = 0.5 sound_debug = true --템자랑하기 : 우클릭 lab_use_click_to_send_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 confirm_action += Silence --------## 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 #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 #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 alert 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 -- miscast alert force_more_message += You fail to use your ability. force_more_message += you miscast .* message_colour ^= lightred: you miscast .* force_more_message += struggles to resist force_more_message += resists with .* effort --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. -- 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|quivers) message_colour ^= lightgreen:it creaks loudly 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: (wounded|damaged|destroy|dead|kill|kills) message_colour ^= white: returning message_colour ^= white: breath back message_colour ^= brown: You .*(wounded|damaged|destroy|dead|kill|kills).*! message_colour ^= brown: .*simulacrum vaporises.*! message_colour ^= cyan: is nearby! message_colour ^= cyan: monsters nearby! message_colour ^= green: You add the spell message_colour ^= green: Training target .* for .* reached #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 += You feel less contaminated with magical energies. force_more_message += A sentinel's mark forms upon you force_more_message += you hear a chittering from your sack of spiders. #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* #Uskayaw Paralysis force_more_message += Uskayaw prepares the audience for your solo! --------## 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 end if current_hp < max_hp * value * 2 and not warning_strategies then crawl.mpr("Any strategies? : evos, invos, throwings, spells... ") crawl.more() warning_strategies = true end if current_hp > max_hp * value * 2 then warning_hp = false warning_strategies = 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 EndFloorNotation() if is_explored() then if you.branch() == "D" and you.depth() < 5 then crawl.mpr("Check Inventory & Find Items... \n Any items to identify? ") elseif you.branch() == "Vaults" and you.depth() == 4 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 force_exp() crawl.setopt("force_more_message += You feel a bit more experienced") end } { 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") 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 } -- 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 } -- 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.mpr("Enter : /SoundSupport clear") crawl.mpr("***Check your Stratgies : evos, invos, throwings, spells...***") 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() 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 } -- 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"))