## 언어 설정 ##
language = ko
## 체력, 마력 색깔 설정 ##
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
## 체력, 마력 추가 경고 ##
menu := menu_colour
# Clear defaults
menu =
# Variables (Worst to Best)
$evil := red
$negative := brown
$danger := lightred
$warning := yellow
$boring := darkgrey
$decent := white
$good := lightblue
$positive := green
$verypositive := lightgreen
$awesome := lightmagenta
# Unusual Variables
$mp := lightcyan
$equipped := cyan
$mutation := magenta
# Damage Calc
{
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 .. "의 피해를 받았습니다. 현재 남은 체력은 " .. current_hp .. "/" .. max_hp .. " 입니다.")
elseif current_hp <= (max_hp * 0.50) then
crawl.mpr("" .. hp_difference .. "의 피해를 받았습니다. 현재 남은 체력은 " .. current_hp .. "/" .. max_hp .. " 입니다.")
elseif current_hp <= (max_hp * 0.70) then
crawl.mpr("" .. hp_difference .. "의 피해를 받았습니다. 현재 남은 체력은 " .. current_hp .. "/" .. max_hp .. " 입니다.")
elseif current_hp <= (max_hp * 0.90) then
crawl.mpr("" .. hp_difference .. "의 피해를 받았습니다. 현재 남은 체력은 " .. current_hp .. "/" .. max_hp .. " 입니다.")
else
crawl.mpr("" .. hp_difference .. "의 피해를 받았습니다. and have " .. current_hp .. "/" .. max_hp .. " hp.")
end
if hp_difference > (max_hp * 0.20) then
crawl.mpr("악! 이건 너무 좆같다!")
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("" .. health_inturn .. "의 체력을 얻었습니다. 현재 체력은 " .. current_hp .. "/" .. max_hp .. " 입니다.")
elseif current_hp <= (max_hp * 0.50) then
crawl.mpr("" .. health_inturn .. "의 체력을 얻었습니다. 현재 체력은 " .. current_hp .. "/" .. max_hp .. " 입니다.")
elseif current_hp <= (max_hp * 0.70) then
crawl.mpr("" .. health_inturn .. "의 체력을 얻었습니다. 현재 체력은 " .. current_hp .. "/" .. max_hp .. " 입니다.")
elseif current_hp <= (max_hp * 0.90) then
crawl.mpr("" .. health_inturn .. "의 체력을 얻었습니다. 현재 체력은 " .. current_hp .. "/" .. max_hp .. " 입니다.")
else
crawl.mpr("" .. health_inturn .. "의 체력을 얻었습니다. 현재 체력은 " .. current_hp .. "/" .. max_hp .. " 입니다.")
end
end
if (current_hp == max_hp) then
crawl.mpr("체력이 전부 회복되었습니다. (" .. 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("" .. mp_inturn .. "의 마력를 얻었습니다. 현재 마력은 " .. current_mp .. "/" .. max_mp .. " 입니다.")
elseif current_mp < (max_mp * 0.50) then
crawl.mpr("" .. mp_inturn .. "의 마력을 얻었습니다. 현재 마력은 " .. current_mp .. "/" .. max_mp .. " 입니다.")
else
crawl.mpr("" .. mp_inturn .. "의 마력을 얻었습니다. 현재 마력은 " .. current_mp .. "/" .. max_mp .. " 입니다.")
end
end
if (current_mp == max_mp) then
crawl.mpr("마력이 전부 회복되었습니다. (" .. current_mp .. ")")
end
end
--On losing magic
if current_mp < previous_mp then
if current_mp <= (max_mp / 5) then
crawl.mpr("현재 남은 마력은 " .. current_mp .. "/" ..max_mp .." 입니다.")
elseif current_mp <= (max_mp / 2) then
crawl.mpr("현재 남은 마력은 " .. current_mp .. "/" ..max_mp .." 입니다.")
else
crawl.mpr("현재 남은 마력은 " .. current_mp .. "/" ..max_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 OpenSkills()
if you.turns() == 0 and need_skills_opened then
need_skills_opened = false
crawl.sendkeys("m")
end
end
}
## Logs chat messages into the notes ##
note_chat_messages = true
## 게임 시작시 실행하는 함수 목록 ##
{
function ready()
AnnounceDamage()
--SpoilerAlert()
OpenSkills()
end
}
## 확장 자동 줍기 ##
# Used
# $ = gold
# ? = scroll
# ! = potion
# : = book
# " = jewellery
# / = wand
# % = food
# } = miscellaneous
# \ = rods
# | = staves
: if (you.god():find("Trog")) then
autopickup += $?!:"/%}\
: else
autopickup += $?!:"/%}\|
: end
# Unused
# ) = weapon
# ( = missiles
# [ = armour
# X = corpses
# Allows easily dropping multiple items
drop_mode += multi
# Always show the full list of items when you pick up a stack
pickup_mode += multi
# Allows followers to pick up ANYTHING (take care not to lose artefacts)
default_friendly_pickup += all
# Set Alias for Autopickup Exceptions
ae := autopickup_exceptions
ae += useless_item, dangerous_item, evil_item
# Don't pick up potion(s) of [coagulated] blood if you are not a vampire
: if you.race() ~= "Vampire" then
ae += potions? of.*blood
: end
# Autopickup artefacts
ae += 2) or armourname:find("dragon") or armourname:find("troll") then
return it.artefact
else
return it.artefact or it.branded or it.ego
end
end
return true
end
if (sub_type == "shield") then
if equipped_item then
return it.artefact or it.branded or it.ego
end
end
end
if (class == "weapon") then
if it.is_useless then return false end
if (you.xl() < 12) or (you.god():find("Nemelex")
or (you.god():find("Yred"))
or (you.god():find("Beogh"))) then
if it.branded and not (it.name() == "club") then
return false
end
end
local weapon = items.equipped_at("Weapon")
if weapon then
if (weapon.branded or weapon.artefact) then return false
else
local weapon_name = weapon.name()
local sb = you.skill("Short Blades")
local lb = you.skill("Long Blades")
local axe = you.skill("Axes")
local mf = you.skill("Maces & Flails")
local pole = you.skill("Polearms")
local staff = you.skill("Staves")
if sb > 6 then
if name:find("quick blade") then return true end
end
if lb > 8 then
if name:find("demon blade") then return true end
if name:find("bastard sword") then return true end
if name:find("double sword") then return true end
end
if lb > 14 then
if name:find("claymore") then return true end
if name:find("triple sword") then return true end
end
if axe > 8 and mf <= 8 then
if name:find("battleaxe") then return true end
if name:find("broad axe") then return true end
if name:find("war axe") then return true end
if name:find("executioner") then return true end
end
if axe > 18 then
if name:find("executioner") then return true end
end
if mf > 8 and staff <= 8 and axe <= 8 then
if name:find("eveningstar") then return true end
if name:find("demon whip") then return true end
if name:find("sacred scourge") then return true end
if name:find("dire flail") then return true end
end
if mf > 14 and staff <= 14 and axe <= 14 then
if name:find("great mace") then return true end
end
if pole > 8 and staff <= 8 then
if name:find("trident") then return true end
if name:find("demon trident") then return true end
if name:find("trishula") then return true end
end
if pole > 14 and staff <= 14 then
if name:find("glaive") then return true end
if name:find("bardiche") then return true end
end
if staff > 8 then
if name:find("lajatang") then return true end
end
end
elseif (you.skill("Unarmed Combat") < 3) then
return true
end
end
end)
}
## 스킬 수련 기본 설정값 메뉴얼 ##
default_manual_training = true
## 스스로 타겟팅할 때 물어보기 ##
allow_self_target = prompt
## 화면 재생 속도 설정 ##
# rest_delay = 25
# travel_delay = 2
# explore_dalay = 2
# view_delay = 300
## 체력, 마력 경고 ##
hp_warning = 75
mp_warning = 75
## 자동 전투 멈추기 ##
autofight_stop = 75
## 체력, 마력 모두 채워질 때까지 휴식 ##
# rest_wait_both = true
rest_wait_percent = 100
## 강제 d 설정 ##
force_more_message += LOW HITPOINT WARNING
force_more_message += You have reached level
force_more_message += No target in view
## 메시지 하이라이팅 ##
note_messages += You fall through a shaft
## 이동시 마법 오염 메시지 무시 ##
runrest_stop_message += Your magical contamination has completely faded away
runrest_stop_message += 당신의 마법 오염이 모두 사라졌다
## 도축시 선택 알림 없음
#confirm_butcher = never
## 고기 자동 섭취 ##
# easy_eat_chunks = true
# auto_eat_chunks = true
# auto_drop_chunks = yes
# easy_eat_contaminated = true
## 탭질시 적이 멀리있으면 던지기 무기로 공격 ##
# autofight_throw = true
## 캐릭터 타일 변경 ##
# tile_player_tile = mons:[몬스터 이름]