## 언어 설정 ## 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:[몬스터 이름]