# CRAWL.NEMELEX.CARDS # Last Updated at Jan 15, 2025 --------## 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 fail_severity_to_confirm = 0 cloud_status = true equip_bar = true use_animations -= player 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 --[=[]=] ### Snake Pit ### message_colour ^= lightred: guardian serpent .*into view message_colour ^= lightred: salamander tyrant .*into view ### Shoal ### message_colour ^= lightred: merfolk aquamancer .*into view ### Swamp ### message_colour ^= lightred: A thorn hunter .*into view ### Vaults ### message_colour ^= lightred: peacekeeper .*into view ### Zot Realm ### message_colour ^= lightred: draconian scorcher .*into view message_colour ^= lightred: draconian shifter .*into view message_colour ^= lightred: draconian stormcaller .*into view message_colour ^= lightred: moth of wrath .*into view ### Slime Pit ### message_colour ^= lightred: shining eye .*into view ### Abyss ### message_colour ^= lightred: wretched star .*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 flash_screen_message += (revenant|black sun).*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 += snap -- 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 ^= white: (says|mumbles) message_colour ^= yellow:You (scream|yowl) 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 ^= mute:is lightly (damaged|wounded) message_colour ^= mute:is moderately (damaged|wounded) message_colour ^= mute:is heavily (damaged|wounded) message_colour ^= mute:is severely (damaged|wounded) message_colour ^= mute:is almost (dead|destroyed) message_colour ^= white : Your .* (destroyed|explodes) message_colour ^= white : The ball lightning explodes 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! force_more_message += Extra Life! --------## 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() < 9 then if (you.depth())%3 == 0 then crawl.mpr("Check your inventory...") elseif (you.depth())%3 == 1 then crawl.mpr("Check your invo&evos...") else crawl.mpr("Watch out for the enemy over LOS...") end --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 } -- settings for late games -- settings for ziggurat -- auto keymapping wielding weapon --------## 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")) -- https://github.com/Implojin/ff-rc/blob/master/ff.rc --[=[ { 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) end end } ]=]