# 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 translation_language = ko tile_show_threat_levels = tough nasty show_more = # tile_use_small_layout = true # tile_map_pixels = 32 # tile_cell_pixels = 64 # tile_font_crt_size = 23 # tile_font_stat_size = 23 # tile_font_msg_size = 23 # tile_font_tip_size = 23 # tile_font_lbl_size = 23 show_more = false force_more_message += ((giant|floating|shining) eye|eye of draining).*into view force_more_message += (moth of wrath|ghost moth|torpor snail).*into view force_more_message += (guardian serpent|draconian shifter|convoker).*into view force_more_message += (flayed ghost|royal mummy|mummy priest|fiend|tzitzimitl).*into view force_more_message += (tormentor|curse toe|curse skull).*into view force_more_message += (hellion|hell sentinel|deep elf sorcerer).*into view force_more_message += (deep elf high priest|scorcher).*into view force_more_message += (ancient lich|orb of fire|executioner|juggernaut|shrike).*into view force_more_message += (wretched star|lurking horror).*into view force_more_message += (neqoxec|cacodemon|doom hound).*into view force_more_message += 27-headed.* comes? into view force_more_message += nekomata.*into view force_more_message += (radroach|entropy weaver|meliai).*into view force_more_message += (salamander tyrant|ironbound frostheart).*into view force_more_message += (walking crystal tome|walking divine tome|walking earthen tome|walking frostbound tome).*into view orce_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 runrest_ignore_monster += butterfly:1 rest_wait_both = true include = no_vi_command_keys.txt 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 tile_font_crt_family = Consolas tile_font_stat_family = Consolas tile_font_msg_family = Consolas tile_font_lbl_family = Consolas view_delay = 200 tile_show_player_species = true #$ lab_disable_chat_clear = true travel_delay = -1 explore_delay = -1 rest_delay = -1 autopickup_exceptions += 0 then local hp_difference = previous_hp - current_hp local mp_difference = previous_mp - current_mp if max_hp_increased or max_hp_decreased then if max_hp_increased then crawl.mpr('Now you have [' .. current_hp .. '/' .. max_hp .. '] HP') else crawl.mpr('Now you have [' .. current_hp .. '/' .. max_hp .. '] HP') end else --체력 잃을때 if (current_hp < previous_hp) then if current_hp <= (max_hp * 0.30) then crawl.mpr('You take ' .. hp_difference .. ' HP, and have [' .. current_hp .. '/' .. max_hp .. '] HP') elseif current_hp <= (max_hp * 0.50) then crawl.mpr('You take ' .. hp_difference .. ' HP, and have [' .. current_hp .. '/' .. max_hp .. '] HP') elseif current_hp <= (max_hp * 0.70) then crawl.mpr('You take ' .. hp_difference .. ' HP, and have [' .. current_hp .. '/' .. max_hp .. '] HP') elseif current_hp <= (max_hp * 0.90) then crawl.mpr('You take ' .. hp_difference .. ' HP, and have [' .. current_hp .. '/' .. max_hp .. '] HP') else crawl.mpr('You take ' .. hp_difference .. ' HP, and have [' .. current_hp .. '/' .. max_hp .. '] HP') end if hp_difference > (max_hp * 0.20) then crawl.mpr('!!!!! HP Warning !!!!!') end end --체력 얻을때 if (current_hp > previous_hp) then --Removes the negative sign local health_inturn = (0 - hp_difference) if (health_inturn > 1) and not (current_hp == max_hp) then if current_hp <= (max_hp * 0.30) then crawl.mpr('You gain ' .. health_inturn .. ' hp, and have [' .. current_hp .. '/' .. max_hp .. '] hp.') elseif current_hp <= (max_hp * 0.50) then crawl.mpr('You gain ' .. health_inturn .. ' HP, and have [' .. current_hp .. '/' .. max_hp .. '] hp.') elseif current_hp <= (max_hp * 0.70) then crawl.mpr('You gain ' .. health_inturn .. ' HP, and have [' .. current_hp .. '/' .. max_hp .. '] HP') elseif current_hp <= (max_hp * 0.90) then crawl.mpr('You gain ' .. health_inturn .. ' HP, and have [' .. current_hp .. '/' .. max_hp ..'] HP') else crawl.mpr('You gain ' .. health_inturn .. ' HP, and have [' .. current_hp .. '/' .. max_hp .. '] HP') end end if (current_hp == max_hp) then crawl.mpr(' HP Full. (' .. current_hp .. ')') end end --마력 얻을때 if (current_mp > previous_mp) then --Removes the negative sign local mp_inturn = (0 - mp_difference) if (mp_inturn > 1) and not (current_mp == max_mp) then if current_mp < (max_mp * 0.25) then crawl.mpr('You gain ' .. mp_inturn .. ' MP, and have [' .. current_mp .. '/' .. max_mp .. '] MP') elseif current_mp < (max_mp * 0.50) then crawl.mpr('You gain ' .. mp_inturn .. ' MP, and have [' .. current_mp .. '/' .. max_mp .. '] MP') else crawl.mpr('You gain ' .. mp_inturn .. ' MP, and have [' .. current_mp .. '/' .. max_mp .. '] MP') end end if (current_mp == max_mp) then crawl.mpr('MP Full (' .. current_mp .. ')') end end --마력 잃을때 if current_mp < previous_mp then if current_mp <= (max_mp * 0.25) then crawl.mpr('You lose ' .. mp_difference .. 'MP, and have [' .. current_mp .. '/' ..max_mp ..'] MP') elseif current_mp <= (max_mp * 0.50) then crawl.mpr('You lose ' .. mp_difference .. 'MP, and have [' .. current_mp .. '/' ..max_mp ..'] MP') else crawl.mpr('You lose ' .. mp_difference .. 'MP, and have [' .. current_mp .. '/' ..max_mp ..'] MP') end end end end --Set previous hp/mp and form at end of turn previous_hp = current_hp previous_mp = current_mp previous_form = current_form was_berserk_last_turn = you_are_berserk end function ready() -- Enable AnnounceDamage. announce_damage_ko() if you.turns() == 0 and need_skills_opened then need_skills_opened = false crawl.sendkeys("m") end end } ## 우클릭시 채팅창에 아이템 공유 ## lab_use_click_to_send_chat = true ## @ 누르면 GDR 출력 ## { 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") } ## 사운드 ## sound_on = true sound_volume = 1 # CNC Open Sound Pack sound_pack += https://osp.nemelex.cards/build/latest.zip:["init.txt"] # BindTheEarth Sound Pack sound_pack += https://sound-packs.nemelex.cards/Autofire/BindTheEarth/BindTheEarth.zip ## display damage, healing, exhausted (sepcially serpent's lash) ## { ------- hp, mp, exhaust local last_hp = you.hp() local last_mp = you.mp() local last_turn = you.turns() function get_damage_color(damage, max_hp) local damage_percent = (damage / max_hp) * 100 if damage_percent >= 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 ------- ready function ready() 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 } # Recommended settings sound_on = true sound_pack += https://osp.nemelex.cards/build/latest.zip:["init.txt"] one_SDL_sound_channel = true sound_fade_time = 0.5 ## 젬클락 표시 ## always_show_gems = true ## 조트클락 표시 ## always_show_zot = true ## 악마 티어 타일로 표시 ## tile_show_demon_tier = true ## 자동공격이 멈추는 체력 비율 ## autofight_stop = 70 #------------------------------------------------------------------------------- # 1.5 Initialize skill menu on game start # 게임 시작 시 스킬 메뉴 자동 열기 (수동 훈련 설정) #------------------------------------------------------------------------------- { 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 } #------------------------------------------------------------------------------- # 3.4 Menu and Color Settings # 메뉴 및 색상 설정 #------------------------------------------------------------------------------- sort_menus = true:equipped,identified,basename,usefulness,art,ego,glowing,qualname,curse,>qty,charged,slot show_paged_inventory=true # 미니맵 색상 설정 (EN0N's Mini-Map 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 # 체력/마나바 표시 tile_show_minihealthbar = true tile_show_minimagicbar = true record_wtrec = true #------------------------------------------------------------------------------- # 8.2 Item Usage Safety # 아이템 사용 안전장치 #------------------------------------------------------------------------------- autoinscribe += scroll.*teleportation:!r autoinscribe += scroll.*blinking:!r autoinscribe += scroll.*magic mapping:!r autoinscribe += scroll.*vulnerability:!r autoinscribe += scroll.*immolation:!r autoinscribe += potion.*mutation:!q autoinscribe += potion.*heal wounds:!q autoinscribe += potion.*cancel:!q autoinscribe += potion.*berserk:!q autoinscribe += potion.*lignification:!q autoinscribe += scroll.*torment:!r autoinscribe += curare:!f autoinscribe += throwing net:!f #------------------------------------------------------------------------------- # 9.1 Interface Convenience # 인터페이스 편의성 #------------------------------------------------------------------------------- equip_unequip = true show_game_time = true cloud_status = true bad_item_prompt = true easy_door = true enable_recast_spell = true msg_condense_repeats = true messages_at_top = true warn_hatches = true fail_severity_to_confirm = 3 show_newturn_mark = true redirect_chat = true disable_clear_chat = true #아이템 슬롯지정 item_slot += scroll.*identify:+r item_slot += potion.*curing:+q ######################## ##### Force_more ##### ######################## #위험한 상황에 more을 띄우거나 화면을 반짝이는 기능 #메세지 창에 올라오는 메시지를 기반으로 more을 띄움 # .*은 중간 단어를 무시하는 기능 more := force_more_message flash := flash_screen_message #위험한 몬스터와 조우 ##레벨 별로 위험한 몬스터를 띄우는 것은 아래 function 쪽에 있으니 거기서 조절 more += (hellion|hell sentinel|fiend|tzitzimitl).*into view more += (lich|doom hound|floating eye).*into view #토먼트 more += (tormentor|curse skull|curse Toe|mummy priest|greater mummy).*into view #돌연변이 more += (neqoxec|cacodemon|shining eye).*into view #네임드 more += (27-headed|gold.*simulacrum).*into view more += (Agnes|Aizul|Antaeus|Arachne|Asmodeus|Asterion|Azrael|Bai suzhen|Blork|Boris|Crazy Yiuf|Dissolution|Dispater|Donald|Dowan|Duvessa|Edmund|Enchantress|Ereshkigal|Erica|Erolcha|Eustachio|Fannar|Frances|Frederick|Gastronok|Geryon|Grinder|Grum|Harold|Ignacio|Ijyb|Ilsuiw|Jessica|Jorgrun|Jory|Joseph|Josephine|Khufu|Kirke|Lernaean|Louise|Maggie|Mara|Margery|Maurice|Menkaure|Mennas|Murray|Nergalle|Natasha|Nessos|Nikola|Pikel|Polyphemus|Ribbit|Psyche|Purgy|Robin|Roxanne|Royal jelly|Rupert|Roka|Serpent of Hell|Sigmund|Snorg|Sojobo|Sonja|Terence|Tiamat|Urug|Vashnia|Xtahua|pandemonium).*into view #위험한 몬스터로 변이 more += change.*(floating|shining|moth) #데미지 18이상의 공격은 more을 띄움 more += you!! more += you with.*!! #신성무기 피격 more += you convulse! #킬러클라운 파이 more += pie hits you #토먼트 당함 more += Your body is wracked with pain #오브 거미가 마법 시전 more += weaves a glowing #수호자 뱀의 나가 던지기 #more += naga.*blink #광폭화 more += goes berserk! #슬로우 more += You feel.*slow down #플로팅 아이가 쳐다 봄 (다음 턴에 높은 확률로 마비) more += The floating eye.*(glare|focuse|fixate) flash += The floating eye.*(glare|focuse|fixate) #투명 상태의 유령 나방에게 마나 빨림 flash += watched by something #변이 마법 만료 직전 more += Your transformation is almost over #투명 풀림 more += You flicker back #위험한 변이 more += You.*(uncertain|pissed off|vision blurs) #위험한 브레스 #아포꽃게more += chaos 어쩌구 #가고일 제외 카토블레파스의 석화 브레스 :if you.race() ~= "Gargoyle" then more += The catoblepas breathes :end #부패면역 제외 우샤브티의 부패 구름 :if not (you.race() == "Gargoyle" or you.race() == "Vine Stalker" or you.race() == "Ghoul" or you.race() == "Mummy") then more += The vile air.*you more += the foul vapour.*you :end #위험한 함정 more += A sentinel's mark forms upon you more += You are suddenly yanked towards more += You become entangled in the net more += enter.*dispersal trap more += hear a loud "Zot flash += (blundered into a|invokes the power of) Zot ##상태창에 보유한 골드 띄움 #$ lab_gold_status = true