################################################################################ # DCSS Configuration File (Refactored) # Dungeon Crawl Stone Soup 설정 파일 - 체계적으로 재구성됨 ################################################################################ # # 파일 구조: # 0. Lua Code & Core Functions # 1. Game Start & Character # 2. Display & Visual Interface # 3. Messaging & Alerts # 4. Autopickup & Item Management # 5. Item Colors & Menus # 6. Combat & Monster Interaction # 7. Travel & Exploration # 8. Ability & Spell Slots # 9. Item Safety & Inscriptions # 10. Convenience & QOL # 11. Server & Sound Settings # 12. Macros & Keybindings # 13. Race-Specific Configurations # ################################################################################ ################################################################################ # 0. LUA CODE & CORE FUNCTIONS # Lua 스크립트 및 핵심 함수들 ################################################################################ #------------------------------------------------------------------------------- # 0.1 Utility Functions # 유틸리티 함수 #------------------------------------------------------------------------------- { function version() return tonumber(string.sub(crawl.version("major"), 3, 4)) end } #------------------------------------------------------------------------------- # 0.2 Equipment Auto-pickup Function # 장비 자동줍기 함수 (아티팩트 및 업그레이드 스마트 판단) #------------------------------------------------------------------------------- { add_autopickup_func(function(it, name) if it.is_useless then return false end if it.artefact then if name:find("%*Rage") then if you.god() == "Trog" or (you.god() == "Ashenzari" and you.piety_rank() >= 3) or you.get_base_mutation_level("Clarity") == 1 or items.equipped_at("Amulet") and items.equipped_at("Amulet").name():find("Clar") or items.equipped_at("Body Armour") and items.equipped_at("Body Armour").name():find("Clar") then return true end return false end if name:find("Harm") or name:find("%*Noise") or name:find("%*Corrode") then return false end if name:find("%*Slow") then if you.race() == "Formicid" then return true end return false end if name:find("slick") then return false end if name:find("Mesm") then return false end if name:find("Charlatan") then return false end if name:find("mace of Variability") then if you.god() ~= "Xom" then return false end end return true end local class = it.class(true) local sub_type = it.subtype() if (class == "armour") then local armour_slots = { boots="Boots", cloak="Cloak", gloves="Gloves", helmet="Helmet", shield="Shield" } local equipped_item = items.equipped_at(armour_slots[sub_type]) if (sub_type == "boots") then if equipped_item then local plus = items.equipped_at("Boots").plus local nobrand = items.equipped_at("Boots").branded == false if nobrand then if plus < 2 and name:find("[" .. (plus + 1) .. "-2].*boots") then return true end if plus < 4 and name:find("[" .. (plus + 1) .. "-4].*barding") then return true end end return it.branded or it.ego else return true end end if (sub_type == "cloak") then if name:find("scarf.*harm") then return false elseif equipped_item then local plus = items.equipped_at("Cloak").plus local nobrand = items.equipped_at("Cloak").branded == false if plus < 2 and nobrand and name:find("[" .. (plus + 1) .. "-2].*cloak") then return true end return it.branded or it.ego else return true end end if (sub_type == "gloves") then if equipped_item then local plus = items.equipped_at("Gloves").plus local nobrand = items.equipped_at("Gloves").branded == false if plus < 2 and nobrand and name:find("[" .. (plus + 1) .. "-2].*gloves") then return true end return it.branded or it.ego elseif you.has_claws() ~= 0 then return it.branded or it.ego else return true end end if (sub_type == "helmet") then if equipped_item then local plus = items.equipped_at("Helmet").plus local a_hat = items.equipped_at("Helmet").ac local nobrand = items.equipped_at("Helmet").branded == false if plus < 2 and nobrand then if a_hat == 0 and plus < 2 and name:find("[" .. (plus + 1) .. "-2].*hat") then return true end if a_hat == 0 and name:find("[0-2].*helmet") then return true end if a_hat == 1 and plus < 2 and name:find("[" .. (plus + 1) .. "-2].*helmet") then return true end end return it.branded or it.ego else return true end end if (sub_type == "shield") then if equipped_item then local light = items.equipped_at("Shield").name():find("orb.*light") local buck = items.equipped_at("Shield").name():find("buck") local kite = items.equipped_at("Shield").name():find("kite") local plus = items.equipped_at("Shield").plus local ac = items.equipped_at("Shield").ac local nobrand = (items.equipped_at("Shield").branded) == false if nobrand then if ac == 3 and plus < 3 and name:find("[" .. (plus + 1) .. "-3].*buck") then return true end if ac == 8 and plus < 5 and name:find("[" .. (plus + 1) .. "-5].*kite") then return true end if ac == 13 and plus < 8 and name:find("[" .. (plus + 1) .. "-8].*tower") then return true end end if light and name:find("buck") then return true end if buck and name:find("buck") then return it.branded or it.ego end if buck and name:find("kite") then return true end if kite and name:find("kite") then return it.branded or it.ego end if name:find("tower") then return true end if name:find("orb") then return false end return it.branded or it.ego elseif name:find("buck") then return true else return false end end end if (class == "weapon") then local equipped_weapon = items.equipped_at("Weapon") if equipped_weapon then if equipped_weapon.weap_skill == "Short Blades" then if equipped_weapon.name():find("dagger") then if you.class():find("Wizard") and name:find("staff.*conj") then return true elseif you.class() == "Summoner" and name:find("staff.*summoning") then return true elseif you.class() == "Necromancer" and name:find("staff.*death") then return true elseif you.class() == "Fire Elementalist" and name:find("staff.*fire") then return true elseif you.class() == "Ice Elementalist" and name:find("staff.*cold") then return true elseif you.class() == "Air Elementalist" and name:find("staff.*air") then return true elseif you.class() == "Earth Elementalist" and name:find("staff.*earth") then return true elseif you.class() == "Venom Mage" and name:find("staff.*poison") then return true elseif you.class() == "Alchemist" and name:find("staff.*alchemy") then return true end end else return false end elseif you.class():find("Wizard") and name:find("staff.*conj") then return true elseif you.class() == "Summoner" and name:find("staff.*summoning") then return true elseif you.class() == "Necromancer" and name:find("staff.*death") then return true elseif you.class() == "Fire Elementalist" and name:find("staff.*fire") then return true elseif you.class() == "Ice Elementalist" and name:find("staff.*cold") then return true elseif you.class() == "Air Elementalist" and name:find("staff.*air") then return true elseif you.class() == "Earth Elementalist" and name:find("staff.*earth") then return true elseif you.class() == "Venom Mage" and name:find("staff.*poison") then return true elseif you.class() == "Alchemist" and name:find("staff.*alchemy") then return true elseif you.base_skill("Unarmed Combat") == 0 and name:find("[0-9].*dagger") then return true else return false end end end) } #------------------------------------------------------------------------------- # 0.3 Spell Fail Rate Monitor # 주문 실패율 모니터링 (주문이 안정화되면 알림) #------------------------------------------------------------------------------- { safe = 10 spellTable = {} function checkSpellFailRate() for index, spellName in pairs(you.spells()) do fail = spells.fail(spellName) if rawget(spellTable, spellName) == nil then spellTable[spellName] = 0 end if rawget(spellTable, spellName) == 0 and fail < safe then crawl.mpr(string.format("%s spell is stabilized!", spellName)) spellTable[spellName] = 1 end end end } #------------------------------------------------------------------------------- # 0.4 Prompt Handling # 프롬프트 자동 응답 처리 #------------------------------------------------------------------------------- { function c_answer_prompt(prompt) if prompt == "Die?" or prompt == "Annotate level on other end of current stairs?" or prompt == "Are you sure you want to leave the Dungeon? This will make you lose the game!" then return false end if version() < 25 and prompt:find("Memorise Iskenderun's Mystic Blast") then return false end if version() < 27 and prompt:find("Memorise Chain Lightning") then return false end if version() < 32 and prompt:find("Memorise Teleport Other") then return false end if prompt:find("vortices") or prompt:find("vortex") or prompt:find("battlesphere") then return true end if prompt:find("Really.*into that cloud of flame?") and you.res_fire() == 3 then return true end if prompt:find("Really.*into that cloud of freezing vapour?") and you.res_cold() == 3 then return true end end } #------------------------------------------------------------------------------- # 0.5 GDR Calculator # GDR(Guaranteed Damage Reduction) 계산기 매크로 #------------------------------------------------------------------------------- { function with_gdr() local armour_class = you.ac() local gdr = math.floor(16 * math.sqrt(math.sqrt(math.max(0, armour_class)))) crawl.formatted_mpr(string.format("GDR: %d%%", gdr)) crawl.sendkeys('@') end crawl.setopt("macros += M \\@ ===with_gdr") } #------------------------------------------------------------------------------- # 0.6 Main Ready Function # 메인 ready 함수 (매 턴마다 실행) #------------------------------------------------------------------------------- { function ready() checkSpellFailRate() skill() end } ################################################################################ # 1. GAME START & CHARACTER # 게임 시작 및 캐릭터 설정 ################################################################################ #------------------------------------------------------------------------------- # 1.1 Skill Menu Initialization # 게임 시작 시 스킬 메뉴 자동 열기 (수동 훈련 설정) #------------------------------------------------------------------------------- { local need_skills_opened = true function skill() if you.turns() == 0 and need_skills_opened then need_skills_opened = false skill_focus = true default_manual_training = true crawl.sendkeys("m") end end } ################################################################################ # 2. DISPLAY & VISUAL INTERFACE # 그래픽 및 사용자 인터페이스 ################################################################################ #------------------------------------------------------------------------------- # 2.1 Viewport & Animation # 뷰포트 및 애니메이션 #------------------------------------------------------------------------------- tile_cell_pixels = 48 tile_filter_scaling = false tile_show_player_species = false view_delay = 200 #------------------------------------------------------------------------------- # 2.2 Minimap Colors (EN0N's Color Scheme) # 미니맵 색상 설정 #------------------------------------------------------------------------------- tile_upstairs_col = green tile_downstairs_col = red tile_branchstairs_col = #ffa500 tile_door_col = #c27149 tile_wall_col = #5a524c tile_explore_horizon_col = #aaaaaa tile_floor_col = #1e1b1a tile_item_col = #1e1b1a tile_feature_col = #d4be21 tile_plant_col = #4b6d39 tile_water_col = #0b5d79 tile_deep_water_col = #1212b3 tile_trap_col = #f447ff tile_transporter_col = #ff5656 tile_transporter_landing_col = #59ff89 tile_lava_col = #5f0a00 #------------------------------------------------------------------------------- # 2.3 Status Bars & Indicators # 상태바 및 지시자 #------------------------------------------------------------------------------- # HP/MP Bars tile_show_minihealthbar = true tile_show_minimagicbar = true # Threat Level Display tile_show_threat_levels = tough nasty unusual # HP/MP/Stat Colors hp_colour = 100:green, 99:lightgrey, 75:yellow, 50:lightred, 25:red mp_colour = 100:green, 99:lightgrey, 75:yellow, 50:lightred, 25:red stat_colour = 3:red, 7:lightred #------------------------------------------------------------------------------- # 2.4 Font Configuration # 폰트 설정 #------------------------------------------------------------------------------- tile_font_crt_family = Consolas tile_font_stat_family = Consolas tile_font_msg_family = Consolas tile_font_tip_family = Consolas tile_font_lbl_family = Consolas ################################################################################ # 3. MESSAGING & ALERTS # 메시지 시스템 및 알림 ################################################################################ #------------------------------------------------------------------------------- # 3.1 Channel & Display Settings # 채널 설정 및 기본 표시 #------------------------------------------------------------------------------- show_more = false messages_at_top = true msg_condense_repeats = true show_newturn_mark = true channel.monster_damage = plain channel.god = plain channel.monster_spell = plain channel.monster_enchant = plain channel.friend_spell = darkgrey channel.friend_enchant = darkgrey channel.monster_warning = yellow channel.timed_portal = lightgreen #------------------------------------------------------------------------------- # 3.2 Critical Alerts (force_more_message) # 중요 상황 강제 알림 #------------------------------------------------------------------------------- # === Game State Warnings === force_more_message += You have finished your manual force_more_message += Your transformation is almost over. force_more_message += LOW HITPOINT WARNING force_more_message += skill increases to level force_more_message += Training target.*for.*reached! # === Dangerous Events === force_more_message += Ouch! That really hurt! force_more_message += You convulse force_more_message += You feel yourself slow down force_more_message += You are slowing down force_more_message += You are confused force_more_message += you cannot.* because force_more_message += (the weather|forecast) # === HP/Status Alerts === force_more_message += you!! force_more_message += you with.*!! # === Traps & Teleportation === force_more_message += (blundered into a|invokes the power of) Zot force_more_message += You fall through a shaft force_more_message += You enter a teleport trap force_more_message += You are suddenly yanked force_more_message += You found a shaft # === Death's Door === confirm_action += Death's Door force_more_message += time is quickly running out # === Pandemonium & Abyss === force_more_message += The mighty Pandemonium lord .* resides here force_more_message += Found a gateway leading out of the Abyss force_more_message += Found a gateway leading deeper into the Abyss force_more_message += Found .* abyssal rune of Zot force_more_message += Found a gate leading to another region of Pandemonium force_more_message += interdimensional caravan # === Divine & Portals === force_more_message += A sentinel's mark forms upon you force_more_message += god:(sends|finds|silent|anger) force_more_message += watched by something force_more_message += flickers and vanishes! # === Environmental Hazards === force_more_message += hell_effect: force_more_message += You are engulfed in seething chaos force_more_message += filled with .* inner flame force_more_message += grabs you force_more_message += starts rolling force_more_message += vile air hits you force_more_message += engulfs you in water force_more_message += breathes miasma force_more_message += You feel your flesh start force_more_message += venomous gases force_more_message += pie hits you # === Special Events === force_more_message += You have reached level force_more_message -= You finish merging with the rock force_more_message += distant snort force_more_message += You hear the loud beating of a very distant drum force_more_message += Careful! force_more_message += You are starting to lose your buoyancy force_more_message += You miscast Flight force_more_message += looks more exp force_more_message += Found * staircase leading down force_more_message += fire storm spell force_more_message += Your guardian golem overheats force_more_message += offers itself force_more_message += volcano erupts force_more_message += Uskayaw prepares the audience for your solo force_more_message += Something reaches out for you force_more_message += You become entangled in the net force_more_message += wield.* blowgun force_more_message += goes berserk force_more_message += vanishes in a puff force_more_message += weaves a glowing orb force_more_message += The ironbrand convoker begins to recite a word of recall force_more_message += Something unseen opens the door force_more_message += You feel less protected from missiles force_more_message += Your unholy channel is weakening force_more_message += Deactivating autopickup # === Portals Ambient Sounds === force_more_message += ticking.*clock force_more_message += dying ticks force_more_message += coins.*counted force_more_message += tolling.*bell force_more_message += roar of battle force_more_message += creaking.*portcullis force_more_message += portcullis is probably force_more_message += wave of frost force_more_message += crackling.*melting force_more_message += hiss.*sand force_more_message += sound.*rushing water force_more_message += rusting.*drain force_more_message += drain falling apart force_more_message += heat about you force_more_message += falling.*rocks force_more_message += rumble.*avalanche of rocks force_more_message += crackle.*arcane power force_more_message += crackle.*magical portal force_more_message += distant wind force_more_message += whistling.*wind force_more_message += rapidly growing quiet # === Unique Monsters (Proper Names) === force_more_message += (?!An|As|You|There)(?-i:[A-Z]{1}[a-z]+).*(come.*into.*view|open.*door|break.*door) # === Race-Specific Warnings === : if you.race() ~= "Gargoyle" and you.race() ~= "Ghoul" and you.race() ~= "Mummy" and you.race() ~= "Djinni" then force_more_message += dream sheep.* comes? into view :end : if you.race() ~= "Gargoyle" then force_more_message += plume of calc :end #------------------------------------------------------------------------------- # 3.3 Monster Alert System (monster_alert) # 위험 몬스터 시야 내 지속 알림 # monster_alert는 몬스터가 시야에 있는 동안 매 턴 --more-- 프롬프트 표시 #------------------------------------------------------------------------------- # === Eyes (Dangerous Gaze Attacks) === monster_alert += giant eye monster_alert += floating eye monster_alert += shining eye monster_alert += eye of draining # === Insects & Molluscs === monster_alert += moth of wrath monster_alert += ghost moth monster_alert += torpor snail # === Draconians === monster_alert += guardian serpent monster_alert += draconian shifter monster_alert += draconian convoker # === Undead Threats === monster_alert += flayed ghost monster_alert += royal mummy monster_alert += mummy priest monster_alert += ancient lich # === Demons === monster_alert += fiend monster_alert += tzitzimitl monster_alert += tormentor monster_alert += hellion monster_alert += hell sentinel monster_alert += neqoxec monster_alert += cacodemon # === Curse Monsters === monster_alert += curse toe monster_alert += curse skull # === Deep Elf Casters === monster_alert += deep elf sorcerer monster_alert += deep elf high priest monster_alert += scorcher # === High-Threat Monsters === monster_alert += orb of fire monster_alert += executioner monster_alert += juggernaut monster_alert += shrike monster_alert += wretched star monster_alert += lurking horror monster_alert += doom hound # === Special Monsters === monster_alert += radroach monster_alert += entropy weaver monster_alert += meliai monster_alert += salamander tyrant monster_alert += ironbound frostheart # === Walking Tomes === monster_alert += walking crystal tome monster_alert += walking divine tome monster_alert += walking earthen tome monster_alert += walking frostbound tome # === Hydras (requires regex, use force_more_message) === force_more_message += 27-headed.* comes? into view #------------------------------------------------------------------------------- # 3.4 Distortion Weapons (force_more_message + flash_screen_message) # 왜곡 무기는 장비 속성이므로 force_more_message 사용 #------------------------------------------------------------------------------- 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 #------------------------------------------------------------------------------- # 3.5 Flash Screen Messages # 화면 번쩍임 효과 #------------------------------------------------------------------------------- flash_screen_message += time is quickly running out flash_screen_message += LOW HITPOINT WARNING flash_screen_message += sentinel's mark flash_screen_message += You fall through a shaft flash_screen_message += You are slowing down flash_screen_message += Ashenzari invites you to partake flash_screen_message += Ru believes you are ready to make a new sacrifice flash_screen_message += Vehumet offers you knowledge #------------------------------------------------------------------------------- # 3.6 Message Colors (message_colour) # 메시지 색상 설정 #------------------------------------------------------------------------------- msc := message_colour # === Danger (Red) === msc ^= red: you shout at msc ^= red: carrying a wand msc ^= red: distortion.* comes? into view msc ^= red: floating eye.* comes? into view msc ^= red: You are slowing down msc ^= red: you cannot.* because msc ^= red: (the weather|forecast) msc ^= red: you will pay # === High-Risk Monsters (Magenta) === msc ^= magenta: cacodemon.* comes? into view msc ^= magenta: neqoxec.* comes? into view msc ^= magenta: wretched star.* comes? into view msc ^= magenta: shining eye.* comes? into view # === Race-Specific (Mummy) === : if you.race() == "Mummy" then msc ^= red: golden eye : end # === Kills (Brown) === msc ^= brown: you kill msc ^= brown: you destroy msc ^= brown: dies msc ^= brown: you blow up msc ^= brown: is destroyed # === Progress (Green) === msc ^= green: more experienced msc ^= green: pick up a manual msc ^= green: you have finished your manual msc ^= green: Training target # === Other Colors === msc ^= darkgrey: you are exhausted msc ^= yellow: is nearby msc ^= yellow: there are.* nearby msc ^= darkgrey: You now have msc ^= mute: begine reading # === Special Danger Messages === message_colour ^= red:danger:torment message_colour ^= yellow:teleport trap message_colour ^= lightmagenta:You fall through a shaft message_colour ^= lightred:LOW HITPOINT WARNING message_colour ^= yellow:sentinel's mark #------------------------------------------------------------------------------- # 3.7 Runrest Stop/Ignore Messages # 자동행동 중단/무시 메시지 #------------------------------------------------------------------------------- stop := runrest_stop_message ignore := runrest_ignore_message # === Stop Conditions === stop += (blundered into a|invokes the power of) Zot stop += (devoid of blood|starving) stop += A huge blade swings out and slices into you[^r] stop += An alarm trap emits a blaring wail stop += flesh start stop += found a zot trap stop += hear a soft click stop += lose consciousness stop += sense of stasis stop += Wait a moment stop += wrath finds you stop += You fall through a shaft stop += You are marked stop += teleport trap stop += You feel yourself slow down # === Ignore Messages === ignore += You regained.*mp ignore += A.*toadstool withers and dies ignore += disappears in a puff of smoke ignore += engulfed in a cloud of smoke ignore += engulfed in white fluffiness ignore += grinding sound ignore += in your inventory.*rotted away ignore += safely over a trap ignore += standing in the rain ignore += toadstools? grow ignore += You feel.*sick ignore += You walk carefully through the ignore += the wereblood boils in your veins ignore += Your primal bloodlust is almost over ignore += A nearby plant withers and dies ignore += Your fire (vortex|vortices).*something ignore += something .* fire (vortex|vortices) ignore += Your unholy channel expires ignore += blood rots? away ignore += Your icy armour ignore += Your skin is crawling a little less ignore += infusion is running out ignore += shroud mutebegins to fray ignore += butterfly ignore += Jiyva appreciates your sacrifice ignore += Jiyva gurgles merrily ignore += Jiyva says ignore += You hear.*splatter ignore += You feel better ignore += You feel your power returning ignore += Your protection from.*is fading ignore += You feel less protected from # === Specific Stop Messages === runrest_stop_message += Your unholy channel is weakening runrest_stop_message += You found a shaft ################################################################################ # 4. AUTOPICKUP & ITEM MANAGEMENT # 자동줍기 및 아이템 관리 ################################################################################ #------------------------------------------------------------------------------- # 4.1 Core Autopickup Settings # 기본 자동줍기 설정 #------------------------------------------------------------------------------- autopickup = $?!:"/|} ae := autopickup_exceptions drop_mode += multi pickup_mode += multi default_friendly_pickup += all ae += useless_item, dangerous_item, evil_item ae += scrolls? of (amn|noise) # === Rings === ae += >ring of (protection from (mag|fire|cold)|mag|ste|ice|fire|pos|wil|wiz) ae += >ring of (dex|int|str) # === Evocables === ae += <(lamp of fire|phial of floods|lightning rod|figurine|condenser vane) ae += scroll.*(torment|vulnerability|imolation) ae ^= >potion.*berserk ae ^= >potion.*lignification # === Useful Equipment === ae += >staff of (fire|cold|air|earth|conj|alchem|death) ae += >amulet of (faith|regen|reflect|the acrobat|guardian|magic) #------------------------------------------------------------------------------- # 4.3 Race-Specific Rules # 종족별 규칙 #------------------------------------------------------------------------------- : if you.race() ~= "Octopode" then ae += >ring of protection from (magic|fire|cold) ae += >ring of (fire|ice|pois|positive|resist corr|see) ae += >ring of (mag|flight|wiz|int|str|dex|slay|prot|eva) : end : if you.race() == "Ogre" or you.race() == "Troll" then ae += qty,charged,slot show_paged_inventory = true #------------------------------------------------------------------------------- # 5.2 Potion Colors # 포션 색상 #------------------------------------------------------------------------------- menu_colour += green:potions? of (enlightenment|resistance|heal wounds) menu_colour += cyan:potions? of (haste|brilliance|might|invisibility) menu_colour += lightgreen:ambrosia menu_colour += yellow:potions? of experience menu_colour += magenta:potions? of (berserk|cancellation|lignification|attraction) menu_colour += red:potions? of mutation #------------------------------------------------------------------------------- # 5.3 Scroll Colors # 스크롤 색상 #------------------------------------------------------------------------------- menu_colour += cyan:scrolls? of (brand weapon|enchant weapon|enchant armour|revelation) menu_colour += cyan:scrolls? of (blinking|teleportation|magic mapping|fog) menu_colour += yellow:scrolls? of (acquirement|summoning|fear) menu_colour += red:scrolls? of (immolation|vulnerability|torment) #------------------------------------------------------------------------------- # 5.4 Wand Colors # 지팡이 색상 #------------------------------------------------------------------------------- menu_colour += cyan:wand of ligh menu_colour += cyan:wand of acid menu_colour += cyan:wand of quic menu_colour += green:wand of digg menu_colour += green:wand of iceb menu_colour += green:wand of mind menu_colour += green:wand of root menu_colour += green:wand of warp ################################################################################ # 6. COMBAT & MONSTER INTERACTION # 전투 및 몬스터 상호작용 ################################################################################ #------------------------------------------------------------------------------- # 6.1 Autofight Settings # 자동전투 설정 #------------------------------------------------------------------------------- autofight_throw = false autofight_stop = 65 hp_warning = 40 mp_warning = 20 #------------------------------------------------------------------------------- # 6.2 Monster Highlighting # 몬스터 강조 표시 #------------------------------------------------------------------------------- unusual_highlight = hi:magenta monster_unusual_items += curare,atropa,throwing_net,dispersal monster_unusual_items += artefact, ego_weapon, wand monster_unusual_items += heavy,vamp,disto,chaos,spect #------------------------------------------------------------------------------- # 6.3 Spell & Ability Targeting # 주문 및 능력 타게팅 #------------------------------------------------------------------------------- force_spell_targeter = ignition, starburst, frozen ramparts, chain lightning, fulminant prism, shatter, glaciate, ozocubu's refrigeration fail_severity_to_quiver = 3 fail_severity_to_confirm = 3 ################################################################################ # 7. TRAVEL & EXPLORATION # 이동 및 탐험 ################################################################################ #------------------------------------------------------------------------------- # 7.1 Travel Speed & Animation # 이동 속도 및 애니메이션 #------------------------------------------------------------------------------- travel_delay = -1 explore_delay = -1 rest_delay = -1 show_travel_trail = true travel_one_unsafe_move = true #------------------------------------------------------------------------------- # 7.2 Exploration Behavior # 탐험 행동 #------------------------------------------------------------------------------- always_show_exclusions = true easy_floor_use = true always_show_gems = true more_gem_info = true travel_avoid_terrain = deep water explore_auto_rest = true auto_exclude = true explore_stop -= greedy_visited_item_stack explore_stop += artefacts, glowing_items, runes explore_stop += greedy_visited_item_stack,stairs explore_stop += altars,portals,branches,runed_doors explore_stop += items,shops,altars,portals explore_stop += greedy_pickup_smart #------------------------------------------------------------------------------- # 7.3 Rest Settings # 휴식 설정 #------------------------------------------------------------------------------- rest_wait_both = true rest_wait_percent = 100 rest_wait_ancestor = true ################################################################################ # 8. ABILITY & SPELL SLOTS # 어빌리티 및 주문 슬롯 ################################################################################ #------------------------------------------------------------------------------- # 8.1 Ability Slot Assignment # 어빌리티 슬롯 배치 #------------------------------------------------------------------------------- as := ability_slot as ^= End Transfo: t as ^= Evoke Invis: i as ^= Turn Visibl: j as ^= Evoke Fligh: l as ^= Fly: l as ^= Stop Flying: m as ^= Spit: q as ^= Breath: q as ^= Rolling: r as ^= Blink: d #------------------------------------------------------------------------------- # 8.2 Spell Slot Assignment # 주문 슬롯 배치 (학파별, 레벨순) #------------------------------------------------------------------------------- ss := spell_slot ss ^= .*:zxas # === Translocations (by level) === ss ^= Apportation: g # L1 Tloc ss ^= Blink: d # L2 Tloc ss ^= Passwall: c # L2 Tmut/Earth (trunk) ss ^= Lesser Beck: b # L3 Hex/Tloc ss ^= Passage of: G # L4 Tloc ss ^= Manifold: m # L7 Tloc # === Hexes (by level) === ss ^= Confusing: x # L1 Hex ss ^= Jinxbite: j # L2 Hex ss ^= Dazzling Fla: q # L3 Hex/Fire ss ^= Tukima's Da: t # L3 Hex ss ^= Dimensional Bullseye: D # L4 Hex/Tloc ss ^= Enfeeble : E # L5 Hex ss ^= Yara's Vio : Y # L5 Hex # === Necromancy (by level) === ss ^= Sublimation: Z # L2 Nec ss ^= Fugue of th: y # L3 Nec ss ^= Vampiric Dr: v # L3 Nec ss ^= Animate Dea: a # L4 Nec ss ^= Dispel Unde: u # L5 Nec ss ^= Borgnjor's : w # L5 Nec/Earth # === Earth (by level) === ss ^= Sandblast : z # L1 Earth/Conj ss ^= Stone Arrow: n # L3 Earth/Conj ss ^= Petrify: p # L4 Earth/Alch ss ^= Lee's Rapid: l # L5 Earth ss ^= Lehudib's Cr: T # L8 Earth/Conj ss ^= Shatter: S # L9 Earth # === Ice (by level) === ss ^= Ozocubu: O # L2 Ice/Charms ss ^= Frozen Ramp: r # L3 Ice ss ^= Freezing Cl: f # L6 Ice/Air/Conj ss ^= Ozocubu's Refrigeration: Y # L6 Ice ss ^= Glaciate: K # L9 Ice/Conj ss ^= Polar Vortex: v # L9 Ice/Air # === Air (by level) === ss ^= Swiftness: h # L2 Air/Charms ss ^= Forge Light: L # L4 Air/Forgecraft ss ^= Airstrike: A # L4 Air ss ^= Chain Light: N # L8 Air/Conj ss ^= Maxwell's C: X # L8 Air # === Alchemy/Poison (by level) === ss ^= Mercury Vapours: U # L2 Alch ss ^= Mephitic Cl: m # L3 Alch/Air/Conj ss ^= Olgreb's To: o # L4 Alch ss ^= Ignite Pois: i # L4 Fire/Alch ss ^= Irradiate: q # L5 Conj/Alch # === Fire (by level) === ss ^= Conjure Fl: C # L3 Fire ss ^= Sticky Fla: S # L4 Fire ss ^= Fireball: e # L5 Fire/Conj ss ^= Ignition: i # L8 Fire/Conj ss ^= Fire Storm: s # L9 Fire/Conj # === Conjurations (utility, trunk) === ss ^= Searing Ray: R # L2 Conj ss ^= Iskenderun's Mystic Blast: M # L4 Conj ss ^= Fulminant Prism: P # L4 Conj/Hex ss ^= Starburst: B # L6 Fire/Conj ################################################################################ # 9. ITEM SAFETY & INSCRIPTIONS # 아이템 안전장치 및 자동 각인 ################################################################################ #------------------------------------------------------------------------------- # 9.1 Autoinscribe Rules # 자동 각인 규칙 #------------------------------------------------------------------------------- # === Scrolls (prevent reading) === autoinscribe += scroll.*teleportation:!r autoinscribe += scroll.*blinking:!r autoinscribe += scroll.*magic mapping:!r autoinscribe += scroll.*vulnerability:!r autoinscribe += scroll.*immolation:!r autoinscribe += scroll.*torment:!r # === Potions (prevent quaffing) === autoinscribe += potion.*mutation:!q autoinscribe += potion.*heal wounds:!q autoinscribe += potion.*cancel:!q autoinscribe += potion.*berserk:!q autoinscribe += potion.*lignification:!q # === Throwing (prevent firing) === autoinscribe += curare:!f autoinscribe += throwing net:!f ################################################################################ # 10. CONVENIENCE & QOL # 편의 기능 및 사용성 개선 ################################################################################ #------------------------------------------------------------------------------- # 10.1 Interface Enhancements # 인터페이스 편의 기능 #------------------------------------------------------------------------------- equip_unequip = true show_game_time = true cloud_status = true bad_item_prompt = true easy_door = true enable_recast_spell = true warn_hatches = true ################################################################################ # 11. SERVER & SOUND SETTINGS # 서버 및 사운드 설정 ################################################################################ #------------------------------------------------------------------------------- # 11.1 Online Play Settings # 온라인 플레이 설정 #------------------------------------------------------------------------------- sound_on = true sound_volume = 0.5 sound_pack += https://osp.nemelex.cards/build/latest.zip:["init.txt"] sound_pack += https://sound-packs.nemelex.cards/Autofire/BindTheEarth/BindTheEarth.zip one_SDL_sound_channel = true sound_fade_time = 0.5 redirect_chat = true show_gold_status = true disable_clear_chat = true lab_use_click_to_send_chat = true translation_language = ko record_wtrec = true ################################################################################ # 12. MACROS & KEYBINDINGS # 매크로 및 키 바인딩 ################################################################################ #------------------------------------------------------------------------------- # 12.1 Navigation Macros # 내비게이션 매크로 #------------------------------------------------------------------------------- macros += M 8 X< macros += M 9 X> macros += M . > macros += M , < #------------------------------------------------------------------------------- # 12.2 Combat Macros # 전투 매크로 (Enchanter용) #------------------------------------------------------------------------------- macros += M 1 zz macros += M 2 zx #------------------------------------------------------------------------------- # 12.3 Utility Macros # 유틸리티 매크로 #------------------------------------------------------------------------------- macros += M z Z # GDR Calculator: @ (defined in Lua section 0.5) ################################################################################ # 13. RACE-SPECIFIC CONFIGURATIONS # 종족별 특수 설정 ################################################################################ #------------------------------------------------------------------------------- # 13.1 Optional Race Settings (주석 처리됨) # 필요시 주석 해제하여 사용 #------------------------------------------------------------------------------- # === For BaIE (Barachi Ice Elementalist) === #ae +=