##### 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 # 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 ##### 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 # 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 ##### Ancient versions ############################################## # If you're used to the interface of ancient versions of Crawl, you may # get back parts of it by uncommenting the following options: # include = 034_command_keys.txt # And to revert monster glyph and colouring changes: # include = 034_monster_glyphs.txt # include = 052_monster_glyphs.txt # include = 060_monster_glyphs.txt # include = 071_monster_glyphs.txt # include = 080_monster_glyphs.txt # include = 0.9_monster_glyphs.txt # include = 0.12_monster_glyphs.txt # include = 0.13_monster_glyphs.txt # include = 0.14_monster_glyphs.txt ###### Damage calc ############################################## #include += HDamage.rc { function ready() AnnounceDamage() end } { local previous_hp = 0 local previous_mp = 0 local previous_form = "" local was_berserk_last_turn = false function AnnounceDamage() local current_hp, max_hp = you.hp() local current_mp, max_mp = you.mp() --Things that increase hp/mp temporarily really mess with this local current_form = you.transform() local you_are_berserk = you.berserk() local max_hp_increased = false local max_hp_decreased = false if (current_form ~= previous_form) then if (previous_form:find("dragon") or previous_form:find("statue") or previous_form:find("tree") or previous_form:find("ice")) then max_hp_decreased = true elseif (current_form:find("dragon") or current_form:find("statue") or current_form:find("tree") or current_form:find("ice")) then max_hp_increased = true end end if (was_berserk_last_turn and not you_are_berserk) then max_hp_decreased = true elseif (you_are_berserk and not was_berserk_last_turn) then max_hp_increased = true end --crawl.mpr(string.format("previous_form is: %s", previous_form)) --crawl.mpr(string.format("current_form is: %s", current_form)) --crawl.mpr(string.format("max_hp_increased is: %s", max_hp_increased and "True" or "False")) --crawl.mpr(string.format("max_hp_decreased is: %s", max_hp_decreased and "True" or "False")) --crawl.mpr(string:format("you_are_berserk is: %s", you_are_berserk and "True" or "False")) --crawl.mpr(string:format("was_berserk_last_turn is: %s", was_berserk_last_turn and "True" or "False")) --Skips message on initializing game if previous_hp > 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("You now have " .. current_hp .. "/" .. max_hp .. " hp.") else crawl.mpr("You now have " .. current_hp .. "/" .. max_hp .. " hp.") end else --On losing health if (current_hp < previous_hp) then if current_hp <= (max_hp * 0.30) then crawl.mpr("You take " .. hp_difference .. " damage, and have " .. current_hp .. "/" .. max_hp .. " hp.") elseif current_hp <= (max_hp * 0.50) then crawl.mpr("You take " .. hp_difference .. " damage, and have " .. current_hp .. "/" .. max_hp .. " hp.") elseif current_hp <= (max_hp * 0.70) then crawl.mpr("You take " .. hp_difference .. " damage, and have " .. current_hp .. "/" .. max_hp .. " hp.") elseif current_hp <= (max_hp * 0.90) then crawl.mpr("You take " .. hp_difference .. " damage, and have " .. current_hp .. "/" .. max_hp .. " hp.") else crawl.mpr("You take " .. hp_difference .. " damage, and have " .. current_hp .. "/" .. max_hp .. " hp.") end if hp_difference > (max_hp * 0.20) then crawl.mpr("MASSIVE DAMAGE!!") end end --On gaining more than 1 health 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 regained " .. health_inturn .. " hp, and now have " .. current_hp .. "/" .. max_hp .. " hp.") elseif current_hp <= (max_hp * 0.50) then crawl.mpr("You regained " .. health_inturn .. " hp, and now have " .. current_hp .. "/" .. max_hp .. " hp.") elseif current_hp <= (max_hp * 0.70) then crawl.mpr("You regained " .. health_inturn .. " hp, and now have " .. current_hp .. "/" .. max_hp .. " hp.") elseif current_hp <= (max_hp * 0.90) then crawl.mpr("You regained " .. health_inturn .. " hp, and now have " .. current_hp .. "/" .. max_hp .. " hp.") else crawl.mpr("You regained " .. health_inturn .. " hp, and now have " .. current_hp .. "/" .. max_hp .. " hp.") end end if (current_hp == max_hp) then crawl.mpr("Health restored: " .. current_hp .. "") end end --On gaining more than 1 magic 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 regained " .. mp_inturn .. " mp, and now have " .. current_mp .. "/" .. max_mp .. " mp.") elseif current_mp < (max_mp * 0.50) then crawl.mpr("You regained " .. mp_inturn .. " mp, and now have " .. current_mp .. "/" .. max_mp .. " mp.") else crawl.mpr("You regained " .. mp_inturn .. " mp, and now have " .. current_mp .. "/" .. max_mp .. " mp.") end end if (current_mp == max_mp) then crawl.mpr("MP restored: " .. current_mp .. "") end end --On losing magic if current_mp < previous_mp then if current_mp <= (max_mp / 5) then crawl.mpr("You now have " .. current_mp .. "/" ..max_mp .." mp.") elseif current_mp <= (max_mp / 2) then crawl.mpr("You now have " .. current_mp .. "/" ..max_mp .." mp.") else crawl.mpr("You now 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 } 게임 시작부터 경험치 분배를 매뉴얼로 설정 #이 게임은 경험치 분배를 오토로 할 이유가 전혀 없음. 까먹고 오토로 올려서 망캐가 되지 않도록 해줌 default_manual_training = true #게임 시작 시 자동으로 스킬창(m) 켜줌 #까먹고 기본 설정대로 올려서 망캐가 되지 않도록 해줌 { local need_skills_opened = true function ready() if you.turns() == 0 and need_skills_opened then need_skills_opened = false crawl.sendkeys("m") end end } #유니크 몬스터가 출현했을 때 more를 강제로 띄워줌 #탭질 신나게하다가 유니크 몹이 등장했을 때 게임을 멈춰서 제대로 집중해서 전투할 수 있게 해줌 #패치로 유니크몹이 추가되면 맞춰서 수정해줘야함 force_more_message += .*(Agnes|Aizul|Antaeus|Arachne|Asmodeus|Azrael|Bai suzhen|Blork the orc|Boris|Cerebov|Crazy Yiuf|Dispater|Dissolution|Donald|Dowan|Duvessa|Edmund|the Enchantress|Ereshkigal|Erica|Erolcha|Eustachio|Fannar|Frances|Frederick|Gastronok|Geryon|Gloorx Vloq|Grinder|Grum|Harold|Ignacio|Ijyb|Ilsuiw|Jessica|Jorgrun|Jory|Joseph|Josephine|Khufu|Kirke|the Lernaean hydra|Lom Lobon|Louise|Maggie|Mara|Margery|Maurice|Menkaure|Mennas|Mnoleg|Murray|Nergalle|Natasha|Nessos|Nikola|Pan|Pikel|Polyphemus|Prince Ribbit|Psyche|Purgy|Robin|Roxanne|the royal jelly|Rupert|Saint Roka|the Serpent of Hell|Sigmund|Snorg|Sojobo|Sonja|Terence|Tiamat|Urug|Vashnia|Xtahua).*comes? into view #위험한 몬스터 출현 시 more를 강제로 띄워줌 #패치로 위험한 몬스터가 추가되면 맞춰서 수정해줘야함 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|zealout|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 += .*orbs? of fire.* comes? into view force_more_message += .*pandemonium* comes? into view #왜곡무기 장비한 몬스터, 춤추는 왜곡무기 출현 시 more를 띄워주고 화면이 번쩍이는 효과를 줌 #왜곡무기는 피격 시 어비스로 추방될 수 있기 때문에 가장 주의해야되는 공격 중 하나임 #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_show_threat_levels = tough nasty autoinscribe += potion.*berserk rage:!q autoinscribe += potion.*might:!q autoinscribe += potion.*curing:!q autoinscribe += potion.*brilliance:!q autoinscribe += potion.*ambrosia:!q autoinscribe += potion.*cancellation:!q autoinscribe += potion.*magic:!q autoinscribe += potion.*invisibility:!q autoinscribe += potion.*resistance:!q autoinscribe += potion.*haste:!q autoinscribe += potion.*flight:!q autoinscribe += potion.*heal wounds:!q autoinscribe += scroll.*mapping:!r autoinscribe += scroll.*silence:!r autoinscribe += scroll.*fog:!r autoinscribe += scroll.*fear:!r autoinscribe += scroll.*teleportation:!r autoinscribe += scroll.*summoning:!r autoinscribe += scroll.*holy word:!r autoinscribe += throwing net:!f autoinscribe += atropa:!f autoinscribe += curare-:!f autoinscribe += datura:!f { function ready() AnnounceDamage() end } { local previous_hp = 0 local previous_mp = 0 local previous_form = "" local was_berserk_last_turn = false function AnnounceDamage() local current_hp, max_hp = you.hp() local current_mp, max_mp = you.mp() --Things that increase hp/mp temporarily really mess with this local current_form = you.transform() local you_are_berserk = you.berserk() local max_hp_increased = false local max_hp_decreased = false if (current_form ~= previous_form) then if (previous_form:find("dragon") or previous_form:find("statue") or previous_form:find("tree") or previous_form:find("ice")) then max_hp_decreased = true elseif (current_form:find("dragon") or current_form:find("statue") or current_form:find("tree") or current_form:find("ice")) then max_hp_increased = true end end if (was_berserk_last_turn and not you_are_berserk) then max_hp_decreased = true elseif (you_are_berserk and not was_berserk_last_turn) then max_hp_increased = true end --crawl.mpr(string.format("previous_form is: %s", previous_form)) --crawl.mpr(string.format("current_form is: %s", current_form)) --crawl.mpr(string.format("max_hp_increased is: %s", max_hp_increased and "True" or "False")) --crawl.mpr(string.format("max_hp_decreased is: %s", max_hp_decreased and "True" or "False")) --crawl.mpr(string:format("you_are_berserk is: %s", you_are_berserk and "True" or "False")) --crawl.mpr(string:format("was_berserk_last_turn is: %s", was_berserk_last_turn and "True" or "False")) --Skips message on initializing game if previous_hp > 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("You now have " .. current_hp .. "/" .. max_hp .. " hp.") else crawl.mpr("You now have " .. current_hp .. "/" .. max_hp .. " hp.") end else --On losing health if (current_hp < previous_hp) then if current_hp <= (max_hp * 0.30) then crawl.mpr("You take " .. hp_difference .. " damage, and have " .. current_hp .. "/" .. max_hp .. " hp.") elseif current_hp <= (max_hp * 0.50) then crawl.mpr("You take " .. hp_difference .. " damage, and have " .. current_hp .. "/" .. max_hp .. " hp.") elseif current_hp <= (max_hp * 0.70) then crawl.mpr("You take " .. hp_difference .. " damage, and have " .. current_hp .. "/" .. max_hp .. " hp.") elseif current_hp <= (max_hp * 0.90) then crawl.mpr("You take " .. hp_difference .. " damage, and have " .. current_hp .. "/" .. max_hp .. " hp.") else crawl.mpr("You take " .. hp_difference .. " damage, and have " .. current_hp .. "/" .. max_hp .. " hp.") end if hp_difference > (max_hp * 0.20) then crawl.mpr("MASSIVE DAMAGE!!") end end --On gaining more than 1 health 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 regained " .. health_inturn .. " hp, and now have " .. current_hp .. "/" .. max_hp .. " hp.") elseif current_hp <= (max_hp * 0.50) then crawl.mpr("You regained " .. health_inturn .. " hp, and now have " .. current_hp .. "/" .. max_hp .. " hp.") elseif current_hp <= (max_hp * 0.70) then crawl.mpr("You regained " .. health_inturn .. " hp, and now have " .. current_hp .. "/" .. max_hp .. " hp.") elseif current_hp <= (max_hp * 0.90) then crawl.mpr("You regained " .. health_inturn .. " hp, and now have " .. current_hp .. "/" .. max_hp .. " hp.") else crawl.mpr("You regained " .. health_inturn .. " hp, and now have " .. current_hp .. "/" .. max_hp .. " hp.") end end if (current_hp == max_hp) then crawl.mpr("Health restored: " .. current_hp .. "") end end --On gaining more than 1 magic 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 regained " .. mp_inturn .. " mp, and now have " .. current_mp .. "/" .. max_mp .. " mp.") elseif current_mp < (max_mp * 0.50) then crawl.mpr("You regained " .. mp_inturn .. " mp, and now have " .. current_mp .. "/" .. max_mp .. " mp.") else crawl.mpr("You regained " .. mp_inturn .. " mp, and now have " .. current_mp .. "/" .. max_mp .. " mp.") end end if (current_mp == max_mp) then crawl.mpr("MP restored: " .. current_mp .. "") end end --On losing magic if current_mp < previous_mp then if current_mp <= (max_mp / 5) then crawl.mpr("You now have " .. current_mp .. "/" ..max_mp .." mp.") elseif current_mp <= (max_mp / 2) then crawl.mpr("You now have " .. current_mp .. "/" ..max_mp .." mp.") else crawl.mpr("You now 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 } { local need_skills_opened = true function ready() if you.turns() == 0 and need_skills_opened then need_skills_opened = false crawl.sendkeys("m") end end } #유니크 몬스터가 출현했을 때 more를 강제로 띄워줌 #탭질 신나게하다가 유니크 몹이 등장했을 때 게임을 멈춰서 제대로 집중해서 전투할 수 있게 해줌 #패치로 유니크몹이 추가되면 맞춰서 수정해줘야함 force_more_message += .*(Agnes|Aizul|Antaeus|Arachne|Asmodeus|Azrael|Bai suzhen|Blork the orc|Boris|Cerebov|Crazy Yiuf|Dispater|Dissolution|Donald|Dowan|Duvessa|Edmund|the Enchantress|Ereshkigal|Erica|Erolcha|Eustachio|Fannar|Frances|Frederick|Gastronok|Geryon|Gloorx Vloq|Grinder|Grum|Harold|Ignacio|Ijyb|Ilsuiw|Jessica|Jorgrun|Jory|Joseph|Josephine|Khufu|Kirke|the Lernaean hydra|Lom Lobon|Louise|Maggie|Mara|Margery|Maurice|Menkaure|Mennas|Mnoleg|Murray|Nergalle|Natasha|Nessos|Nikola|Pan|Pikel|Polyphemus|Prince Ribbit|Psyche|Purgy|Robin|Roxanne|the royal jelly|Rupert|Saint Roka|the Serpent of Hell|Sigmund|Snorg|Sojobo|Sonja|Terence|Tiamat|Urug|Vashnia|Xtahua).*comes? into view #위험한 몬스터 출현 시 more를 강제로 띄워줌 #패치로 위험한 몬스터가 추가되면 맞춰서 수정해줘야함 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|zealout|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 += .*orbs? of fire.* comes? into view force_more_message += .*pandemonium* comes? into view #왜곡무기 장비한 몬스터, 춤추는 왜곡무기 출현 시 more를 띄워주고 화면이 번쩍이는 효과를 줌 #왜곡무기는 피격 시 어비스로 추방될 수 있기 때문에 가장 주의해야되는 공격 중 하나임 #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 default_manual_training = true { local need_skills_opened = true function ready() if you.turns() == 0 and need_skills_opened then need_skills_opened = false crawl.sendkeys("m") end end } force_more_message += .*(Agnes|Aizul|Antaeus|Arachne|Asmodeus|Azrael|Bai suzhen|Blork the orc|Boris|Cerebov|Crazy Yiuf|Dispater|Dissolution|Donald|Dowan|Duvessa|Edmund|the Enchantress|Ereshkigal|Erica|Erolcha|Eustachio|Fannar|Frances|Frederick|Gastronok|Geryon|Gloorx Vloq|Grinder|Grum|Harold|Ignacio|Ijyb|Ilsuiw|Jessica|Jorgrun|Jory|Joseph|Josephine|Khufu|Kirke|the Lernaean hydra|Lom Lobon|Louise|Maggie|Mara|Margery|Maurice|Menkaure|Mennas|Mnoleg|Murray|Nergalle|Natasha|Nessos|Nikola|Pan|Pikel|Polyphemus|Prince Ribbit|Psyche|Purgy|Robin|Roxanne|the royal jelly|Rupert|Saint Roka|the Serpent of Hell|Sigmund|Snorg|Sojobo|Sonja|Terence|Tiamat|Urug|Vashnia|Xtahua).*comes? into view 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|zealout|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 += .*orbs? of fire.* comes? into view force_more_message += .*pandemonium* comes? into view 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 { function hp_percent() a,b=you.hp() return 90*a/b end } { function mp_percent() a,b=you.mp() return 90*a/b end } { local early = true function hpWarning_Early() if you.hp() < 21 and hp_percent() < 30 and you.xl() < 9 and early then crawl.yesno("Low HP: Be careful! (Y or N to confirm.)", false, false, true, true) crawl.mpr("확인") early = false end if you.hp() > 20 and hp_percent() > 29 and you.xl() < 9 then early = true end end } { local mid = true function hpWarning_Mid() if you.hp() < 35 and you.xl() < 20 and you.xl() > 8 and mid then crawl.yesno("Low HP: Be careful! (Y or N to confirm.)", false, false, true, true) crawl.mpr("확인") mid = false end if you.hp() > 34 and you.xl() < 20 and you.xl() > 8 then mid = true end end } { local late = true function hpWarning_Late() if you.hp() < 60 and you.xl() == 27 and not you.status("death's door") and not you.status("death's door (expiring)") and late then crawl.yesno("Low HP Warning! (Y/N)", false, false, true, true) crawl.mpr("확인") late = false end if you.hp() > 59 and you.xl() == 27 then late = true end end } { local previous_hp = 0 local previous_mp = 0 local previous_form = "" local was_berserk_last_turn = false function AnnounceDamage() local current_hp, max_hp = you.hp() local current_mp, max_mp = you.mp() --Things that increase hp/mp temporarily really mess with this local current_form = you.transform() local you_are_berserk = you.berserk() local max_hp_increased = false local max_hp_decreased = false if (current_form ~= previous_form) then if (previous_form:find("dragon") or previous_form:find("statue") or previous_form:find("tree") or previous_form:find("ice")) then max_hp_decreased = true elseif (current_form:find("dragon") or current_form:find("statue") or current_form:find("tree") or current_form:find("ice")) then max_hp_increased = true end end if (was_berserk_last_turn and not you_are_berserk) then max_hp_decreased = true elseif (you_are_berserk and not was_berserk_last_turn) then max_hp_increased = true end --crawl.mpr(string.format("previous_form is: %s", previous_form)) --crawl.mpr(string.format("current_form is: %s", current_form)) --crawl.mpr(string.format("max_hp_increased is: %s", max_hp_increased and "True" or "False")) --crawl.mpr(string.format("max_hp_decreased is: %s", max_hp_decreased and "True" or "False")) --crawl.mpr(string:format("you_are_berserk is: %s", you_are_berserk and "True" or "False")) --crawl.mpr(string:format("was_berserk_last_turn is: %s", was_berserk_last_turn and "True" or "False")) --Skips message on initializing game if previous_hp > 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("You now have " .. current_hp .. "/" .. max_hp .. " hp.") else crawl.mpr("You now have " .. current_hp .. "/" .. max_hp .. " hp.") end else --On losing health if (current_hp < previous_hp) then if current_hp <= (max_hp * 0.30) then crawl.mpr("@ " .. hp_difference .. " 의 대미지, 남은 HP = " .. current_hp .. "/" .. max_hp .. " hp.") elseif current_hp <= (max_hp * 0.50) then crawl.mpr("@2 " .. hp_difference .. " 의 대미지, 남은 HP2 = " .. current_hp .. "/" .. max_hp .. " hp.") elseif current_hp <= (max_hp * 0.70) then crawl.mpr("@3 " .. hp_difference .. " 의 대미지, 남은 HP3 = " .. current_hp .. "/" .. max_hp .. " hp.") elseif current_hp <= (max_hp * 0.90) then crawl.mpr("@4 " .. hp_difference .. " 의 대미지, 남은 HP4 = " .. current_hp .. "/" .. max_hp .. " hp.") else crawl.mpr("@5 " .. hp_difference .. " 의 대미지, 남은 HP5 = " .. current_hp .. "/" .. max_hp .. " hp.") 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 } { 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") then mut = false crawl.yesno("위험한 변이@@") end end if not mut and not string.find(crawl.messages(8), "@@") then mut = true end end } #특정 레벨일 때 more 기능 등이 작동하도록 만드는 rc #아래는 8레벨 미만일 때 작동 #원래는 위의 force_more 에 적혀있었는데 대조하기 편하라고 여기 놓아뒀음 : if you.xl() < 8 then more += (ogre|orc priest|orc warrior).*into view more += (hornet|centaur|drake|cyclops).*into view more += wield.*(venom|chaos|elec|drain) flash += wield.*(venom|chaos|elec|drain) more += you! more += you with.*! : end #다만 위의 force_more과 flash는 게임이 켜졌을 때만 체크 된다 #말인 즉 게임 중 8렙이 되어도 게임을 껐다 키지 않으면 계속 more을 띄움 #그래서 아래 function 기능으로 게임 내내 체크를 하게 만들어야 함 #잘 보면 more +=가 more -=로 바뀌어있는데 more을 띄우지 않게 만듬 { local early = true function XLCheckOptions_Early() if you.xl() >= 8 and early then crawl.setopt("more -= (ogre|orc priest|orc warrior).*into view") crawl.setopt("more -= (hornet|centaur|drake|cyclops).*into view") crawl.setopt("more -= wield.*(venom|chaos|elec|drain)") crawl.setopt("flash -= wield.*(venom|chaos|elec|drain)") crawl.setopt("more -= you!") crawl.setopt("more -= you with.*!") crawl.setopt("more ^= you!!") crawl.setopt("more ^= you with.*!!") early = false end end } #아래는 15레벨 미만일 때 : if you.xl() < 15 then more += (meliai|beetle|hydra|dragon).*into view more += (ettin|stone|frost giant|fire giant).*into view more += carrying a wand of (acid|dis|ice|para|slave|poly) flash += carrying a wand of (acid|dis|ice|para|slave|poly) more += zaps a wand more += is.*quivering.*(curare|atropa|datura) flash += is.*quivering.*(curare|atropa|datura) : end { local mid = true function XLCheckOptions_Mid() if you.xl() >= 15 and mid then crawl.setopt("more -= (meliai|beetle|hydra|dragon).*into view") crawl.setopt("more -= (ettin|stone|frost giant|fire giant).*into view") crawl.setopt("more -= carrying a wand of (acid|dis|ice|para|slave|poly)") crawl.setopt("flash -= carrying a wand of (acid|dis|ice|para|slave|poly)") crawl.setopt("more -= zaps a wand") crawl.setopt("more -= is.*quivering.*(curare|atropa|datura)") crawl.setopt("flash -= is.*quivering.*(curare|atropa|datura)") mid = false end end } : if you.xl() < 27 then more += (high priest|annihilator|sorcerer|scorcher).*into view more += (titan|juggernaut|shrike|moth).*into view more += (warden|acid blob|executioner).*into view #아래는 슬라임 4~5단계가 될 때 나오는 메세지 more += form an (enormous|titanic) #투명 몹 발견 시 more += Deactivating autopickup #텔레포트 시 more += Your surroundings suddenly seem different : end { local late = true function XLCheckOptions_Late() if you.xl() == 27 and late then crawl.setopt("more -= (high priest|annihilator|sorcerer|scorcher).*into view") crawl.setopt("more -= (titan|juggernaut|shrike|moth).*into view") crawl.setopt("more -= (warden|acid blob|executioner).*into view") crawl.setopt("more -= form an (enormous|titanic)") crawl.setopt("more -= Deactivating autopickup") crawl.setopt("more -= Your surroundings suddenly seem different") late = false end end } #runrest_stop_message += 특정 메세지 #ㄴ자동 탐사나 휴식 중 특정 메세지가 뜨면 탐사나 휴식을 멈춤 #runrest_ignore_message += 특정 메세지 #ㄴ특정 메세지로 인해 탐사나 휴식이 멈추는 것을 막음 #runrest... 는 입력하기엔 너무 기니까 아래 기능으로 짧게 줄일 수 있음 stop := runrest_stop_message ignore := runrest_ignore_message #투명이 풀릴 시 멈춤 stop += You flicker back into view #브레스 회복으로 인해 휴식, 탐험이 멈추는 것을 막음 ignore += your breath back #중독 관련 멈추는 것을 막음 ignore += You feel.*sick ignore += You are no longer corroded. ######################## ##### 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 #왜곡 무기 경고 more += hits you.*distortion more += Its appearance distorts for a moment more += you fell strangely unstable flash += wielding.*distortion flash += distortion.*into view more += wielding.*distortion more += distortion.*into view #신성 무기 경고 :if you.race() == "Vampire" or you.race() == "Mummy" or you.race() == "Ghoul" or you.race() == "Demonspawn" then more += (revenant|black sun).*into view more += wielding.*holy wrath more += holy wrath.*into view flash += wielding.*holy wrath flash += holy wrath.*into view :end #판데 고정 룬 구역 진입 more += The mighty Pandemonium lord.*resides here #입구 찾음 more += Found.*(Temple|Pandemonium|Abyss|bazaar) #include += HDamage.rc { function ready() AnnounceDamage() end } { local previous_hp = 0 local previous_mp = 0 local previous_form = "" local was_berserk_last_turn = false function AnnounceDamage() local current_hp, max_hp = you.hp() local current_mp, max_mp = you.mp() --Things that increase hp/mp temporarily really mess with this local current_form = you.transform() local you_are_berserk = you.berserk() local max_hp_increased = false local max_hp_decreased = false if (current_form ~= previous_form) then if (previous_form:find("dragon") or previous_form:find("statue") or previous_form:find("tree") or previous_form:find("ice")) then max_hp_decreased = true elseif (current_form:find("dragon") or current_form:find("statue") or current_form:find("tree") or current_form:find("ice")) then max_hp_increased = true end end if (was_berserk_last_turn and not you_are_berserk) then max_hp_decreased = true elseif (you_are_berserk and not was_berserk_last_turn) then max_hp_increased = true end --crawl.mpr(string.format("previous_form is: %s", previous_form)) --crawl.mpr(string.format("current_form is: %s", current_form)) --crawl.mpr(string.format("max_hp_increased is: %s", max_hp_increased and "True" or "False")) --crawl.mpr(string.format("max_hp_decreased is: %s", max_hp_decreased and "True" or "False")) --crawl.mpr(string:format("you_are_berserk is: %s", you_are_berserk and "True" or "False")) --crawl.mpr(string:format("was_berserk_last_turn is: %s", was_berserk_last_turn and "True" or "False")) --Skips message on initializing game if previous_hp > 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("You now have " .. current_hp .. "/" .. max_hp .. " hp.") else crawl.mpr("You now have " .. current_hp .. "/" .. max_hp .. " hp.") end else --On losing health if (current_hp < previous_hp) then if current_hp <= (max_hp * 0.30) then crawl.mpr("You take " .. hp_difference .. " damage, and have " .. current_hp .. "/" .. max_hp .. " hp.") elseif current_hp <= (max_hp * 0.50) then crawl.mpr("You take " .. hp_difference .. " damage, and have " .. current_hp .. "/" .. max_hp .. " hp.") elseif current_hp <= (max_hp * 0.70) then crawl.mpr("You take " .. hp_difference .. " damage, and have " .. current_hp .. "/" .. max_hp .. " hp.") elseif current_hp <= (max_hp * 0.90) then crawl.mpr("You take " .. hp_difference .. " damage, and have " .. current_hp .. "/" .. max_hp .. " hp.") else crawl.mpr("You take " .. hp_difference .. " damage, and have " .. current_hp .. "/" .. max_hp .. " hp.") end if hp_difference > (max_hp * 0.20) then crawl.mpr("MASSIVE DAMAGE!!") end end --On gaining more than 1 health 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 regained " .. health_inturn .. " hp, and now have " .. current_hp .. "/" .. max_hp .. " hp.") elseif current_hp <= (max_hp * 0.50) then crawl.mpr("You regained " .. health_inturn .. " hp, and now have " .. current_hp .. "/" .. max_hp .. " hp.") elseif current_hp <= (max_hp * 0.70) then crawl.mpr("You regained " .. health_inturn .. " hp, and now have " .. current_hp .. "/" .. max_hp .. " hp.") elseif current_hp <= (max_hp * 0.90) then crawl.mpr("You regained " .. health_inturn .. " hp, and now have " .. current_hp .. "/" .. max_hp .. " hp.") else crawl.mpr("You regained " .. health_inturn .. " hp, and now have " .. current_hp .. "/" .. max_hp .. " hp.") end end if (current_hp == max_hp) then crawl.mpr("Health restored: " .. current_hp .. "") end end --On gaining more than 1 magic 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 regained " .. mp_inturn .. " mp, and now have " .. current_mp .. "/" .. max_mp .. " mp.") elseif current_mp < (max_mp * 0.50) then crawl.mpr("You regained " .. mp_inturn .. " mp, and now have " .. current_mp .. "/" .. max_mp .. " mp.") else crawl.mpr("You regained " .. mp_inturn .. " mp, and now have " .. current_mp .. "/" .. max_mp .. " mp.") end end if (current_mp == max_mp) then crawl.mpr("MP restored: " .. current_mp .. "") end end --On losing magic if current_mp < previous_mp then if current_mp <= (max_mp / 5) then crawl.mpr("You now have " .. current_mp .. "/" ..max_mp .." mp.") elseif current_mp <= (max_mp / 2) then crawl.mpr("You now have " .. current_mp .. "/" ..max_mp .." mp.") else crawl.mpr("You now 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 } include = no_vi_command_keys.txt #변이 flash_screen_message += your transformation is almost over force_more_message += your transformation is almost over #골통 force_more_message += snapping sound force_more_message += snapping soun flash_screen_message += weakening flash_screen_message += your transformation is almost over force_more_message += your transformation is almost over 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) message_colour ^= lightgreen:it creaks loudly force_more_message += training target force_more_message += you feel like a meek peon again show_more = false #sound sound_on = true sound_pack += https://osp.nemelex.cards/build/latest.zip:["init.txt"] one_SDL_sound_channel = true sound_fade_time = 0.5 sound_volume = 0.2 ## 아군 냉장고 무시 { function c_answer_prompt(prompt) if prompt:find("Really fire") and prompt:find("your spellforged") then return true elseif prompt:find("Really refrigerate") and prompt:find("your spellforged") then return true elseif prompt:find("Really") and prompt:find("fire vortices") then return true elseif prompt:find("Really hurl") and prompt:find("your spellforged") then return true elseif prompt:find("Really") and prompt:find("fire vortex") then return true elseif prompt:find("Really attack your") and prompt:find("rat") then return true elseif prompt:find("Plasma Beam") and prompt:find("your spellforged") then return true end end } #colors tile_upstairs_col = green tile_branchstairs_col = red tile_door_col = #c27149 tile_wall_col = #544747 tile_explore_horizon_col = #919191 tile_floor_col = #0f0d0d tile_item_col = #25231f tile_feature_col = #d4be21 tile_plant_col = #3e5a2f tile_water_col = #0b5d79 tile_deep_water_col = #1212b3 tile_trap_col = #d40027 tile_transporter_col = #ff5656 tile_transporter_landing_col = #59ff89 tile_lava_col = #5f0a0000 ## Player's status ## more := force_more_message more += Careful! more += .*LOW HITPOINT WARNING more += Ouch! That really hurt! more += You stumble into a teleport trap! ## Holy weapon force more when undead or ds :if you.race() == "Vampire" or you.race() == "Mummy" or you.race() == "Ghoul" or you.race() == "Demonspawn" then more += (revenant|black sun).*into view more += wielding.*holy wrath more += holy wrath.*into view flash += wielding.*holy wrath flash += holy wrath.*into view :end #-----------------------------------------------------------------------------------------------------------# #----------------------------------------------- Force More ------------------------------------------------# #-----------------------------------------------------------------------------------------------------------# ## Dangerous messages ## flash_screen_message += You are slowing down flash_screen_message += your limbs are stiffening flash_screen_message += The floating eye seems to glare at you flash_screen_message += The floating eye's stare focuses on you flash_screen_message += The floating eye's view fixates on you flash_screen_message += A sentinel's mark forms upon you flash_screen_message += distant snort flash_screen_message += unleashes a terrible howl flash_screen_message += engulfs you in water flash_screen_message += The ushabti shakes and rattles deafeningly! flash_screen_message += You hear strange and distant voices. flash_screen_message += finished your manual flash_screen_message += The spriggan druid calls out to the beasts of the wild! flash_screen_message += Found a gateway to a bazaar. flash_screen_message += You are engulfed in seething chaos. ## Player's status ## force_more_message += .*(Agnes|Aizul|Amaemon|Antaeus|Arachne|Asmodeus|Azrael|Bai suzhen|Blork the orc|Boris|Cerebov|Crazy Yiuf|Dispater|Dissolution|Donald|Dowan|Duvessa|Edmund|the Enchantress|Ereshkigal|Erica|Erolcha|Eustachio|Fannar|Frances|Frederick|Gastronok|Geryon|Gloorx Vloq|Grinder|Grum|Grunn|Harold|Ignacio|Ijyb|Ilsuiw|Jessica|Jorgrun|Jory|Joseph|Josephina|Josephine|Khufu|Kirke|the Lernaean hydra|Lodul|Lom Lobon|Louise|Maggie|Mara|Margery|Maurice|Menkaure|Mlioglotl|Mennas|Mnoleg|Murray|Nergalle|Natasha|Nessos|Nikola|Pan|Parghit|Pikel|Polyphemus|Prince Ribbit|Psyche|Purgy|Robin|Roxanne|the royal jelly|Rupert|Saint Roka|the Serpent of Hell|Sigmund|Snorg|Sojobo|Sonja|Terence|Tiamat|Urug|Vashnia|Vv|Xtahua|Zenata).*comes? into view ######## Miscellaneous ######################## #tile_player_tile = mons: dart slug #you.transform() == "statue" then~ #you.mutation("slowness") then~ #you.hunger_name() == "starving" then~ ##! means you did 7-17 damage. 2!!: 18-35. 3!!!: 36-71. 4!!!!: 72-143. 5!!!!!: 144-287. 6!!!!!!: 288+; and so on. Yikes! ##<6: 288-575, 7: 576-1151, 8: 1152-2303, 9: 2304-4607> ######## Function Section ######################## { function ready() Petrifying_Check() OpenSkills() hpWarning_Early() hpWarning_Mid() hpWarning_Late() hp_percent() mp_percent() AnnounceDamage() Vehumetoffer() Ruoffer() DDoorCounter() end } { function hp_percent() a,b=you.hp() return 100*a/b end } { function mp_percent() a,b=you.mp() return 100*a/b end } { function Petrifying_Check() if you.petrifying() then crawl.yesno("You are now petrifying so your action will be checked. (Y or N to confirm.)", false, false, true, true) crawl.mpr("Consider to using tele/blink, Yara, cancellation or other emergency measures......", 5) end end } { local need_skills_opened = true function OpenSkills() if you.turns() == 0 and need_skills_opened then need_skills_opened = false crawl.sendkeys("m") crawl.mpr("Pride is your worst enemy! Be on prudent way!", 3) end end } { local early = true function hpWarning_Early() if you.hp() < 21 and hp_percent() < 30 and you.xl() < 9 and early then crawl.yesno("Low HP: Be careful! (Y or N to confirm.)", false, false, true, true) crawl.mpr("The dice are ABSOLUTELY not on your side......", 5) early = false end if you.hp() > 20 and hp_percent() > 29 and you.xl() < 9 then early = true end end } { local mid = true function hpWarning_Mid() if you.hp() < 35 and you.xl() < 20 and you.xl() > 8 and mid then crawl.yesno("Low HP: Be careful! (Y or N to confirm.)", false, false, true, true) crawl.mpr("Consider to using tele/blink, potion or other emergency measures......", 5) mid = false end if you.hp() > 34 and you.xl() < 20 and you.xl() > 8 then mid = true end end } { local late = true function hpWarning_Late() if you.hp() < 60 and you.xl() == 27 and not you.status("death's door") and not you.status("death's door (expiring)") and late then crawl.yesno("Low HP: Be careful! (Y or N to confirm.)", false, false, true, true) crawl.mpr("Keep playing discreetly even on late-game......", 5) late = false end if you.hp() > 59 and you.xl() == 27 then late = true end end } { local previous_hp = 0 local previous_mp = 0 local previous_form = "" local was_berserk_last_turn = false function AnnounceDamage() local current_hp, max_hp = you.hp() local current_mp, max_mp = you.mp() --Things that increase hp/mp temporarily really mess with this local current_form = you.transform() local you_are_berserk = you.berserk() local max_hp_increased = false local max_hp_decreased = false if (current_form ~= previous_form) then if (previous_form:find("dragon") or previous_form:find("statue") or previous_form:find("tree") or previous_form:find("ice")) then max_hp_decreased = true elseif (current_form:find("dragon") or current_form:find("statue") or current_form:find("tree") or current_form:find("ice")) then max_hp_increased = true end end if (was_berserk_last_turn and not you_are_berserk) then max_hp_decreased = true elseif (you_are_berserk and not was_berserk_last_turn) then max_hp_increased = true end --crawl.mpr(string.format("previous_form is: %s", previous_form)) --crawl.mpr(string.format("current_form is: %s", current_form)) --crawl.mpr(string.format("max_hp_increased is: %s", max_hp_increased and "True" or "False")) --crawl.mpr(string.format("max_hp_decreased is: %s", max_hp_decreased and "True" or "False")) --crawl.mpr(string:format("you_are_berserk is: %s", you_are_berserk and "True" or "False")) --crawl.mpr(string:format("was_berserk_last_turn is: %s", was_berserk_last_turn and "True" or "False")) --Skips message on initializing game if previous_hp > 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("You now have " .. current_hp .. "/" .. max_hp .. " hp.") else crawl.mpr("You now have " .. current_hp .. "/" .. max_hp .. " hp.") end else --On losing health if (current_hp < previous_hp) then if current_hp <= (max_hp * 0.30) then crawl.mpr("You take " .. hp_difference .. " damage, and have " .. current_hp .. "/" .. max_hp .. " hp.") elseif current_hp <= (max_hp * 0.50) then crawl.mpr("You take " .. hp_difference .. " damage, and have " .. current_hp .. "/" .. max_hp .. " hp.") elseif current_hp <= (max_hp * 0.70) then crawl.mpr("You take " .. hp_difference .. " damage, and have " .. current_hp .. "/" .. max_hp .. " hp.") elseif current_hp <= (max_hp * 0.90) then crawl.mpr("You take " .. hp_difference .. " damage, and have " .. current_hp .. "/" .. max_hp .. " hp.") else crawl.mpr("You take " .. hp_difference .. " damage, and have " .. current_hp .. "/" .. max_hp .. " hp.") 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 } { 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 } ######## Non-ready() Function Section ######################## { function custom_rest() if hp_percent() == 100 and mp_percent() == 100 then if crawl.yesnoquit("Really wait turns while hp and mp are full?", true, 'n') == 1 then crawl.process_keys("5") end else crawl.process_keys("5") end end } { function c_answer_prompt(prompt) if prompt:find("vortices") or prompt:find("vortex") or prompt:find("friend") then return true end if prompt:find("That beam") and you.res_fire() == 0 and not you.status("death's door") then if crawl.yesno("REALLY cast on yourself without fire resistance?",false,'n') then return end end if prompt == "Really attack while wielding the +9 staff of Wucad Mu {channel, !a!d}?" then return false end end } { function c_answer_prompt(prompt) if prompt:find("vortices") or prompt:find("vortex") or prompt:find("friend") then return true end if prompt:find("That beam") and you.res_fire() == 0 and not you.status("death's oor") then return false 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 } #데미지 18이상의 공격은 more을 띄움 more :=force_more_message #타일 모양, 몬스터 색깔 tile_show_threat_levels = nasty #tile_player_tile = tile:MONS_GHOST #귀요미 tile_player_tile = tile:mons_grunn tile_show_player_species = true tile_show_threat_levels = tough nasty force_more_message += into view force_more_message += is weakening runrest_stop_message += is weakening force_more_message += is your transformation is almost over runrest_stop_message += your transformation is almost over reduce_animations = false #젬 more_gem_info = true always_show_gems = true