Map Safety Level ACE
Map Safety Level ACEby Kyonides Arkanthes
Introduction
I have come up with a very simple scriptlet that will allow the game developers to show a simple map name window plus a brand new label telling the player how safe that map actually is. This window will be shown on the menu screen only.
Script
Ruby:
# * Map Safety Level ACE * #
# Scripter : Kyonides Arkanthes
# 2022-12-30
# This scriptlet lets you set some texts as Safety Level Labels, and then you
# can leave a map note to set its initial safety level.
# <map safety 1>
# Valid Levels: 0 up to your safety maximum level.
# * Get or Set Current Map's Safety Level * #
# $game_map.safety_level
# $game_map.safety_level = NewLevel
# * Define a given Map's Safety Level Color * #
# - Alpha is optional. Valid Values: 0 through 255
# SAFETY_LEVELS =
module MapData
SAFETY_REGEX = /map safety (\d+)/i
SAFETY_LABELS = [] # Just leave it alone.
SAFETY_COLORS = [] # Just leave it alone.
SAFETY_LABELS = "A Nightmare"
SAFETY_LABELS = "Dangerous"
SAFETY_LABELS = "Unsafe"
SAFETY_LABELS = "Normal Place"
SAFETY_LABELS = "Great Place"
SAFETY_LABELS = "The Utopia"
SAFETY_COLORS =
SAFETY_COLORS =
SAFETY_COLORS =
SAFETY_COLORS =
SAFETY_COLORS =
SAFETY_COLORS =
end
class Game_Map
alias :kyon_map_safety_lvl_gm_map_init :initialize
alias :kyon_map_safety_lvl_gm_map_setup :setup
def initialize
kyon_map_safety_lvl_gm_map_init
@safety_levels ||= {}
end
def setup(map_id)
kyon_map_safety_lvl_gm_map_setup(map_id)
reset_safety_level unless @safety_levels[@map_id]
end
def reset_safety_level
@map.note
@safety_levels[@map_id] = $1.to_i
end
def safety_level
@safety_levels[@map_id]
end
def safety_level=(new_level)
@safety_levels[@map_id] = new_level
end
def safety_level_text
MapData::SAFETY_LABELS[@safety_levels[@map_id]]
end
attr_reader :safety_levels
end
class MapNameSafeWindow < Window_Base
def initialize(wx, wy, w)
super(wx, wy, w, 72)
self.contents = Bitmap.new(w - 32, 48)
map = $game_map
contents.draw_text(0, 0, 128, 24, map.display_name, 1)
safety_color = MapData::SAFETY_COLORS
contents.font.color.set(*safety_color)
contents.draw_text(0, 24, 128, 24, map.safety_level_text, 1)
end
end
class Scene_Menu
alias :kyon_map_safety_lvl_scn_menu_start :start
def start
kyon_map_safety_lvl_scn_menu_start
create_map_safety_window
end
def create_map_safety_window
@map_name_safe = MapNameSafeWindow.new(0, Graphics.height - 120, 160)
end
end
Terms & Conditions
Free for use in commercial and non commercial games unless you have pissed me off.
Please include my nickname in your game credits.
I seriously hope this will not be the only script of mine that you will include in your games.
本贴来自国际rpgmaker官方论坛作者:kyonides处,因国际论坛即将永久关站,为了存档多年珍贵资料,署名转载到本论坛存档,由于官方帖子为英文原帖,需要中文翻译请点击论坛顶部切换语言为中文就可以将帖子翻译成中文浏览,方便大家随时查看,原文地址:https://forums.rpgmakerweb.com/threads/map-safety-level-ace.153608/
页:
[1]