# CRAWL.NEMELEX.CARDS #방어구 자동줍기 #body: x #aux: 비어있음-모두/착용-브랜드,아티팩트 #shield: 비어있음-x/착용-브랜드,아티팩트 #브랜드 없는 enchanted aux, shield가 노말로 취급되는 문제 있음 { add_autopickup_func(function(it, name) local class = it.class(true) local armour_slots = {cloak="Cloak", helmet="Helmet", gloves="Gloves", boots="Boots", body="Armour", shield="Shield"} if (class == "armour") then if it.is_useless then return false end sub_type = it.subtype() equipped_item = items.equipped_at(armour_slots[sub_type]) if (sub_type == "cloak") or (sub_type == "helmet") or (sub_type == "gloves") or (sub_type == "boots") then if not equipped_item then return true else return it.artefact or it.branded or it.ego end end if (sub_type == "body") then return false end if (sub_type == "shield") then if equipped_item then return it.artefact or it.branded or it.ego end end end end) } { if you.class() == "Conjurer" then if you.turns() == 0 then you.set_training_target("Stealth", 6) you.set_training_target("Translocations", 9) you.set_training_target("Alchemy", 9) you.set_training_target ("Shields", 5) you.set_training_target ("Armour", 7) you.set_training_target("Evocations", 9) you.set_training_target("Invocations", 9) you.train_skill("Spellcasting", 1) you.train_skill("Conjurations", 1) you.train_skill("Translocations", 1) you.train_skill("Alchemy", 1) you.train_skill("Dodging", 0) you.train_skill("Stealth", 1) end end } { if you.class() == "Enchanter" then if you.turns() == 0 then you.set_training_target("Fighting", 4) you.set_training_target("Dodging", 8) you.set_training_target("Hexes", 21) you.set_training_target ("Ice Magic", 6) you.train_skill("Spellcasting", 1) you.train_skill("Hexes", 1) you.train_skill("Ice Magic", 1) you.train_skill("Short Blades", 1) you.train_skill("Dodging", 1) you.train_skill("Stealth", 1) end end } { if you.class() == "Hunter" then if you.turns() == 0 then you.set_training_target("Fighting", 4) you.set_training_target("Stealth", 6) you.set_training_target ("Armour", 7) you.set_training_target ("Dodging",6) you.set_training_target("Ranged Weapons", 20) end end } { if you.class() == "Ice Elementalist" then if you.turns() == 0 then you.set_training_target("Stealth", 6) you.set_training_target("Summonings", 9) you.set_training_target ("Shields", 5) you.set_training_target ("Armour", 7) you.set_training_target("Evocations", 9) you.train_skill("Spellcasting", 1) you.train_skill("Conjurations", 1) you.train_skill("Summonings", 1) you.train_skill("Dodging", 0) you.train_skill("Stealth", 1) end end } # 언데드 홀리무기 경고 : if you.race() == "Poltergeist" or you.race() == "Mummy" or you.race() == "Revenant" or you.race() == "Demonspawn" then unusual_monster_items += holy : end #디스펠언데드 피격, 신성공격 피격 force_more_message += You convulse #카오스무기 장비한 몬스터, 춤추는 카오스무기 출현 force_more_message += It is wielding.*of chaos force_more_message += She is wielding.*of chaos force_more_message += He is wielding.*of chaos force_more_message += wielding.* chaos.*(come.*into view|open.*door) flash_screen_message += It is wielding.*of chaos flash_screen_message += She is wielding.*of chaos flash_screen_message += He is wielding.*of chaos flash_screen_message += wielding.* chaos.*(come.*into view|open.*door) flash_screen_message += chaos.*(come.*into view|open.*door) #신성공격에 취약한 종족일 때 신성무기 장비한 몬스터, 춤추는 신성무기 출현 : if you.race() == "Poltergeist" or you.race() == "Mummy" or you.race() == "Revenant" or you.race() == "Demonspawn" then force_more_message += It is wielding.*of holy wrath force_more_message += She is wielding.*of holy wrath force_more_message += He is wielding.*of holy wrath force_more_message += wielding.* holy wrath.*(come.*into view|open.*door) force_more_message += holy wrath.*(come.*into view|open.*door) flash_screen_message += It is wielding.*of holy wrath flash_screen_message += She is wielding.*of holy wrath flash_screen_message += He is wielding.*of holy wrath flash_screen_message += wielding.* holy wrath.*(come.*into view|open.*door) flash_screen_message += holy wrath.*(come.*into view|open.*door) : end #킬러클라운 파이 피격 force_more_message += pie hits you #포스랜스 피격 force_more_message += You are knocked back #윈드 블라스트 피격 force_more_message += You are blown backwards # engulf 상태에서 주문 시전 시도 force_more_message += You cannot cast spells while unable to breathe! # 침묵 상태에서 주문 시전 시도 force_more_message += You cannot cast spells when silenced! # Don't keep reading when there are monsters nearby! interrupt_memorise += sense_monster interrupt_memorise += monster #메세지가 너무 많이 떴을 때 강제로 more 띄우지 않게 함 show_more = false default_manual_training = true # 위험한 몬스터 알림 monster_alert += glass eye, shining eye, great orb of eyes, eye of draining monster_alert += moth of wrath, ghost moth, torpor snail monster_alert += radroach, entropy weaver, meliai, raven monster_alert += guardian serpent, draconian shifter monster_alert += royal mummy, mummy priest, ice fiend, brimstone fiend, tzitzimitl monster_alert += flayed ghost, Tormentor, curse toe, curse skull, alderking monster_alert += hellion, hell sentinel, deep elf sorcerer monster_alert += deep elf high priest, draconian scorcher monster_alert += ancient lich, dread lich, undying armoury, juggernaut monster_alert += executioner, shard shrike, caustic shrike, chonchon, wyrmhole monster_alert += wretched star, lurking horror, screaming refraction monster_alert += neqoxec, cacodemon, oblivion hound, nekomata, zykzyl monster_alert += salamander tyrant, ironbound frostheart, ironbound beastmaster, ironbound convoker monster_alert += walking crystal tome, walking divine tome, walking earthen tome, walking frostbound tome monster_alert += orb of fire, orb of winter, orb of entropy #왜곡무기 장비한 몬스터, 춤추는 왜곡무기 출현 시 more를 띄워주고 화면이 번쩍이는 효과를 줌 force_more_message += It is wielding.*of distortion force_more_message += She is wielding.*of distortion force_more_message += He is wielding.*of distortion force_more_message += wielding.* distortion.* comes? into view flash_screen_message += It is wielding.*of distortion flash_screen_message += She is wielding.*of distortion flash_screen_message += He is wielding.*of distortion flash_screen_message += wielding.* distortion.* comes? into view flash_screen_message += distortion.* comes? into view #폰트 tile_font_crt_family = D2Coding tile_font_stat_family = D2Coding tile_font_msg_family = D2Coding tile_font_lbl_family = D2Coding msg_webtiles_height = 11 #아이템 더미로 이동 explore_stop -= greedy_visited_item_stack #그물, 다투라 던지기 전 확인 autoinscribe += throwing net:!f autoinscribe += datura:!f autopickup_exceptions ^= >useless_item #골드, 스크롤, 포션, 책, 장신구, 완드, 스태프, 잡동사니를 자동으로 주움 autopickup = $?!:"/|}%GV #그물, 다트 자동으로 주움 autopickup_exceptions += = 25 then -- 1/4 이상 데미지 return "lightmagenta" -- 매우 심각 elseif damage_percent >= 15 then -- 1/6.67 데미지 return "lightred" -- 매우 위험 elseif damage_percent >= 10 then -- 1/10 데미지 return "red" -- 위험 elseif damage_percent >= 5 then -- 1/20 데미지 return "yellow" -- 주의 elseif damage > 1 or damage_percent > 2 then -- 2% 초과 또는 2 이상의 모든 데미지 return "white" else return "lightgray" -- 1 데미지나 2% 이하만 회색으로 end end function HpMp_Check() local current_hp, max_hp = you.hp() local current_mp, max_mp = you.mp() -- 메시지 표시는 턴이 변경되었을 때만 if you.turns() ~= last_turn then -- HP 변화 체크 local hp_change = current_hp - last_hp if hp_change ~= 0 then local msg if hp_change < 0 then local damage = -hp_change local color = get_damage_color(damage, max_hp) msg = string.format("You took <%s>%d damage!", color, damage, color) else msg = string.format("You recovered %d HP!", hp_change) end crawl.formatted_mpr(msg) end -- MP 변화 체크 local mp_change = current_mp - last_mp if mp_change > 0 then local msg = string.format("You recovered %d MP!", mp_change) crawl.formatted_mpr(msg) end end -- 현재 상태 저장 last_hp = current_hp last_mp = current_mp last_turn = you.turns() end } # DDoor 관련 펑션 { 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 speed = true function Slowed_Check() if speed and string.find(crawl.messages(8), "yourself slow down") and you.status("in death's door (expiring)") then crawl.yesno("Warning: You are slowed while DDoor running out! (Y or N to confirm.)", false, false, true, true) speed = false end if not speed and not you.status("in death's door (expiring)") then speed = true end end } { local scro = true if not scro and not you.status("in death's door (expiring)") then scro = true end } { local manu = true function Manual_Check() if manu and string.gmatch(crawl.messages(30), "toss it away")() then crawl.yesno("Your manual has been consumed. (Y or N to confirm.)", false, false, true, true) crawl.mpr("Re-allocate skill distribution!") manu = false end if not manu and not string.gmatch(crawl.messages(30), "toss it away")() then manu = true end end } { local veh = true function Vehumetoffer() if string.find(crawl.messages(4), "Vehumet offers") and veh then crawl.yesno("Vehumet offers a spell for you! (Y or N to confirm.)", false, false, true, true) veh = false end if string.find(crawl.messages(4), "Vehumet accepts") then veh = true end end } { local ru = true function Ruoffer() if string.find(crawl.messages(4), "Ru believes") and ru then crawl.yesno("Ru offers sacrifice for you! (Y or N to confirm.)", false, false, true, true) ru = false end if string.find(crawl.messages(6), "Ru asks you to") or string.find(crawl.messages(6), "Ru will take longer") then ru = true end end } # 탭질 멈추는 체력 비율 hp_warning = 50 force_more_message += LOW HITPOINT WARNING # 매뉴얼 끝났을 때 force_more_message += You have finished your manual #몬스터가 소리지르는 메세지, 문 여닫았는데 소리날 때 메세지 색 변경 #특정 소음 메세지 색 변경 channel.sound = lightgreen #데몬스폰 몬스터러스 메세지 색 변경 message_colour ^= lightcyan:You feel monstrous as your demonic heritage exerts itself. force_more_message += You feel monstrous # 깊은 물은 자동 탐색 안함 # 일부 특수 지형에서 자동 탐색할 때 불편할 수도 있음 travel_avoid_terrain = deep water # 아래 주문, 능력 사용 전에 경고창 띄움 confirm_action += ^Blink$, Evoke Blink, Silence, Swiftness, Maxwell's Capacitive Coupling, Death's Door, Animate Dead, Borgnjor's Revivification, Rending Blade # 디스펠 공격 피격 force_more_message += Your magical effects are unravelling # 데도 끝나갈 때 flash_screen_message += time is quickly running out force_more_message += time is quickly running out # 구름 상태 표시 cloud_status = true ### Hotkey Assignment ### spell_slot += Blink:+h spell_slot += Passage of Golubria:+g spell_slot += Death's Door:+i spell_slot += Yara's Violent Unravelling:+y spell_slot += Ozocubu's Refrigeration:+r spell_slot += Apportation:+p # 탐색시 벽 쪽으로 향하는 정도 explore_wall_bias = 0 # 디스펠 언데드, 신성 공격 피격 force_more_message += You convulse # 왜곡무기 피격 force_more_message += Space warps .* around you force_more_message += hits you.*distortion force_more_message += Its appearance distorts for a moment force_more_message += you fell strangely unstable # 카오스무기 피격 force_more_message += hits you.*chaos # 석화 구름 피격 force_more_message += calcifying dust hits you # 혼란 걸림 force_more_message += You are confused # 감속, 헤이스트 종료 force_more_message += You feel yourself slow down # 컨터치, MCC, 태엽벌 시전 실패 시 # more 띄우고 화면 깜빡임 force_more_message += You miscast Confusing touch flash_screen_message += You miscast Confusing touch force_more_message += You miscast Maxwell flash_screen_message += You miscast Maxwell force_more_message += You miscast Launch Clockwork flash_screen_message += You miscast Launch Clockwork force_more_message += The jinxing sprites lose interest flash_screen_message += The jinxing sprites lose interest # 맹그로브가 레이븐 소환 force_more_message += ravens fly out from beneath # 베커닝 게일 피격 force_more_message += beckoning whirlwind drags you forward #미니서브던전 알림 force_more_message += timed_portal:.* runrest_stop_message += timed_portal:.* #둠,컨탬 UI 항상 표시 always_show_doom_contam = true #이레디 컨탬 경고 warn_contam_cost = true rest_delay=-1 travel_delay =-1 show_travel_trail=true ##상태창에 보유한 골드 띄움 show_gold_status = true # 방을 이동해도 채팅을 지우지 않음 disable_clear_chat = false # 매 게임 wtrec 녹화 # /wtrec delete all 로 주기적으로 삭제 # record_wtrec = true ## 사운드 ## sound_on = true sound_volume = 0.15 # CNC Open Sound Pack sound_pack += https://osp.nemelex.cards/build/latest.zip:["init.txt"] one_SDL_sound_channel = true sound_fade_time = 0.5 # BindTheEarth Sound Pack sound_pack += https://sound-packs.nemelex.cards/Autofire/BindTheEarth/BindTheEarth.zip sound_pack += https://sound-packs.nemelex.cards/DCSS-UST/v1.0.1.zip bgm_volume = 0.25 # 젬카운트 설정 # always_show_gems = true # more_gem_info = true ## 악마 티어 타일로 표시 ## tile_show_demon_tier = true ## 위험도를 노란색, 빨간색만 표시 ## tile_show_threat_levels = tough,nasty,unusual_highlight ## 젬클락 표시 ## always_show_gems = true ## 마우스 이동 막기 ## tile_web_mouse_control = false ## 조트클락 표시 ## always_show_zot = true # Rebind move to safe moving. and shift-move to original move #bindkey = [h] CMD_SAFE_MOVE_LEFT #bindkey = [j] CMD_SAFE_MOVE_DOWN #bindkey = [k] CMD_SAFE_MOVE_UP #bindkey = [l] CMD_SAFE_MOVE_RIGHT #bindkey = [y] CMD_SAFE_MOVE_UP_LEFT #bindkey = [u] CMD_SAFE_MOVE_UP_RIGHT #bindkey = [b] CMD_SAFE_MOVE_DOWN_LEFT #bindkey = [n] CMD_SAFE_MOVE_DOWN_RIGHT #bindkey = [H] CMD_MOVE_LEFT #bindkey = [J] CMD_MOVE_DOWN #bindkey = [K] CMD_MOVE_UP #bindkey = [L] CMD_MOVE_RIGHT #bindkey = [Y] CMD_MOVE_UP_LEFT #bindkey = [U] CMD_MOVE_UP_RIGHT #bindkey = [B] CMD_MOVE_DOWN_LEFT #bindkey = [N] CMD_MOVE_DOWN_RIGHT # macros macros += M 1 za macros += M 2 zb macros += M 3 zc macros += M 4 zd