rpgvx脚本
A. RPG VX测试时脚本不停出现问题,怎么办
#========================================================================
# ■ Scene_Title
#------------------------------------------------------------------------------
# 处理标题画面的类。
#========================================================================
class Scene_Title < Scene_Base
#--------------------------------------------------------------------------
# ● 主处理
#--------------------------------------------------------------------------
def main
if $BTEST # 战斗测试的情况下
battle_test # 开始战斗测试处理
else # 普通游戏的情况下
super # 原来的主处理
end
end
#--------------------------------------------------------------------------
# ● 开始处理
#--------------------------------------------------------------------------
def start
super
load_database # 载入数据库
create_game_objects # 生成游戏对象
check_continue # 判断继续是否有效
create_title_graphic # 生成标题画面图像
create_command_window # 生成指令窗口
play_title_music # 播放标题画面音乐
end
#--------------------------------------------------------------------------
# ● 执行渐变
#--------------------------------------------------------------------------
def perform_transition
Graphics.transition(20)
end
#--------------------------------------------------------------------------
# ● 开始后处理
#--------------------------------------------------------------------------
def post_start
super
open_command_window
end
#--------------------------------------------------------------------------
# ● 结束前处理
#--------------------------------------------------------------------------
def pre_terminate
super
close_command_window
end
#--------------------------------------------------------------------------
# ● 结束处理
#--------------------------------------------------------------------------
def terminate
super
dispose_command_window
snapshot_for_background
dispose_title_graphic
end
#--------------------------------------------------------------------------
# ● 更新画面
#--------------------------------------------------------------------------
def update
super
@command_window.update
if Input.trigger?(Input::C)
case @command_window.index
when 0 #New game
command_new_game
when 1 # Continue
command_continue
when 2 # Shutdown
command_shutdown
end
end
end
#--------------------------------------------------------------------------
# ● 载入数据库
#--------------------------------------------------------------------------
def load_database
$data_actors = load_data("Data/Actors.rvdata")
$data_classes = load_data("Data/Classes.rvdata")
$data_skills = load_data("Data/Skills.rvdata")
$data_items = load_data("Data/Items.rvdata")
$data_weapons = load_data("Data/Weapons.rvdata")
$data_armors = load_data("Data/Armors.rvdata")
$data_enemies = load_data("Data/Enemies.rvdata")
$data_troops = load_data("Data/Troops.rvdata")
$data_states = load_data("Data/States.rvdata")
$data_animations = load_data("Data/Animations.rvdata")
$data_common_events = load_data("Data/CommonEvents.rvdata")
$data_system = load_data("Data/System.rvdata")
$data_areas = load_data("Data/Areas.rvdata")
end
#--------------------------------------------------------------------------
# ● 载入战斗测试数据库
#--------------------------------------------------------------------------
def load_bt_database
$data_actors = load_data("Data/BT_Actors.rvdata")
$data_classes = load_data("Data/BT_Classes.rvdata")
$data_skills = load_data("Data/BT_Skills.rvdata")
$data_items = load_data("Data/BT_Items.rvdata")
$data_weapons = load_data("Data/BT_Weapons.rvdata")
$data_armors = load_data("Data/BT_Armors.rvdata")
$data_enemies = load_data("Data/BT_Enemies.rvdata")
$data_troops = load_data("Data/BT_Troops.rvdata")
$data_states = load_data("Data/BT_States.rvdata")
$data_animations = load_data("Data/BT_Animations.rvdata")
$data_common_events = load_data("Data/BT_CommonEvents.rvdata")
$data_system = load_data("Data/BT_System.rvdata")
end
#--------------------------------------------------------------------------
# ● 生成各种游戏对象
#--------------------------------------------------------------------------
def create_game_objects
$game_temp = Game_Temp.new
$game_message = Game_Message.new
$game_system = Game_System.new
$game_switches = Game_Switches.new
$game_variables = Game_Variables.new
$game_self_switches = Game_SelfSwitches.new
$game_actors = Game_Actors.new
$game_party = Game_Party.new
$game_troop = Game_Troop.new
$game_map = Game_Map.new
$game_player = Game_Player.new #125行的内容,不知你有没改过这里
end
#--------------------------------------------------------------------------
# ● 判断继续的有效性
#--------------------------------------------------------------------------
def check_continue
@continue_enabled = (Dir.glob('Save*.rvdata').size > 0)
end
#--------------------------------------------------------------------------
# ● 生成标题图形
#--------------------------------------------------------------------------
def create_title_graphic
@sprite = Sprite.new
@sprite.bitmap = Cache.system("Title")
end
#--------------------------------------------------------------------------
# ● 释放标题图形
#--------------------------------------------------------------------------
def dispose_title_graphic
@sprite.bitmap.dispose
@sprite.dispose
end
#--------------------------------------------------------------------------
# ● 生成命令窗口
#--------------------------------------------------------------------------
def create_command_window
s1 = Vocab::new_game
s2 = Vocab::continue
s3 = Vocab::shutdown
@command_window = Window_Command.new(172, [s1, s2, s3])
@command_window.x = (544 - @command_window.width) / 2
@command_window.y = 288
if @continue_enabled # 如果“继续”有效
@command_window.index = 1 # 将光标移至“继续游戏”
else # 否则则将“继续游戏”半透明化
@command_window.draw_item(1, false)
end
@command_window.openness = 0
@command_window.open
end
#--------------------------------------------------------------------------
# ● 释放命令窗口
#--------------------------------------------------------------------------
def dispose_command_window
@command_window.dispose
end
#--------------------------------------------------------------------------
# ● 开启命令窗口
#--------------------------------------------------------------------------
def open_command_window
@command_window.open
begin
@command_window.update
Graphics.update
end until @command_window.openness == 255
end
#--------------------------------------------------------------------------
# ● 关闭命令窗口
#--------------------------------------------------------------------------
def close_command_window
@command_window.close
begin
@command_window.update
Graphics.update
end until @command_window.openness == 0
end
#--------------------------------------------------------------------------
# ● 播放标题音乐
#--------------------------------------------------------------------------
def play_title_music
$data_system.title_bgm.play
RPG::BGS.stop
RPG::ME.stop
end
#--------------------------------------------------------------------------
# ● 检查主角初期位置是否存在
#--------------------------------------------------------------------------
def confirm_player_location
if $data_system.start_map_id == 0
print "主角初始位置未设定。"
exit
end
end
#--------------------------------------------------------------------------
# ● 命令:新游戏
#--------------------------------------------------------------------------
def command_new_game
confirm_player_location
Sound.play_decision
$game_party.setup_starting_members # 起始队伍
$game_map.setup($data_system.start_map_id) # 起始位置
$game_player.moveto($data_system.start_x, $data_system.start_y)
$game_player.refresh
$scene = Scene_Map.new
RPG::BGM.fade(1500)
close_command_window
Graphics.fadeout(60)
Graphics.wait(40)
Graphics.frame_count = 0
RPG::BGM.stop
$game_map.autoplay
end
#--------------------------------------------------------------------------
# ● 命令:继续游戏
#--------------------------------------------------------------------------
def command_continue
if @continue_enabled
Sound.play_decision
$scene = Scene_File.new(false, true, false)
else
Sound.play_buzzer
end
end
#--------------------------------------------------------------------------
# ● 命令:离开游戏
#--------------------------------------------------------------------------
def command_shutdown
Sound.play_decision
RPG::BGM.fade(800)
RPG::BGS.fade(800)
RPG::ME.fade(800)
$scene = nil
end
#--------------------------------------------------------------------------
# ● 战斗测试
#--------------------------------------------------------------------------
def battle_test
load_bt_database # 载入战斗测试数据库
create_game_objects # 生成个各种游戏对象
Graphics.frame_count = 0 # 初始化游戏时间
$game_party.setup_battle_test_members
$game_troop.setup($data_system.test_troop_id)
$game_troop.can_escape = true
$game_system.battle_bgm.play
snapshot_for_background
$scene = Scene_Battle.new
end
end
以上是原本的,替换整个Scene_Title。
这种问题新建一个工程复制粘贴即可。
B. RPG Maker VX和RPG Maker XP脚本最大的区别在哪里
RMVX和RMXP在脚本(RGSS)上的区别
Enterbrain官方把RMVX使用的脚本称为RGSS2,原来的RMXP脚本则称为RGSS1。
那么RGSS2和RGSS1相比主要有哪些不同呢?请看官方帮助文件的说法:
1,画面分辨率从 640×480 变成 544×416,刷新率从每秒 40 帧变成了每秒 60 帧,原来XP的‘平滑模式’被废止。
2,新增全屏模式,改成双缓存技术描绘画面。满足推荐配置的情况下,滚动等处理会非常的顺畅。
3,画面长时间不更新会备份脚本,强制终了程序的设定被废除了。即使画面长时间不更新,也能正常处理Windows消息,大多数场合可以用 Alt+F4 关闭RMVX。
4,增加了 Graphics.fadeout、 Graphics.fadein 方法来简单的实现画面的淡入淡出效果。
5,增加了 Graphics.snap_to_bitmap 方法把当前游戏画面转化成位图保存。(用于存盘画面)
6,地图元 (Tilemap) 类为了配合 RPGVX 的标准做了大幅度的变更。
7,位图 (Bitmap) 可以产生模糊、放射性模糊的效果。
8,精灵 (Sprite) 支持波形描画(光栅滚动)的效果。
9,游戏目录下增加了一个Fonts文件夹,里面用来放置游戏中使用的字体文件。可以解决对方系统由于没有安装相应的字体而无法运行游戏的问题。
10,字体 (Font) 显示支持阴影描绘的功能。一些初期值的设定被变更了。
11,视口 (Viewport) 的关联可以在设定后再次进行变更,视口关联的精灵等可以被自动解放。
12,改善了 ME 播放后、恢复播放 BGM 的时机 (Audio.me_play) 。
除了上述以外,还有增加了不少细小的变化。
VX帮助文件中对 RGSS2 新追加,变更的机能都打上了 (RGSS2) 这样的标记。
如果以上文字你看上去还比较爽的话,那么接下来的话可能XP的脚本制作者就要受到一定打击了。
以下文字来自RGSS2脚本素材添加的官方建议
●对脚本素材的用户
*使用网络上发布的脚本素材时候,请在本处增加一个新的页面并粘贴。
(在左边脚本列表框按鼠标右键选择‘插入’)
*其他,请遵从脚本制作者的特别指示(如果有的话)。
*原则上,RMXP的脚本和RMVX的脚本没有互换性!
请先确定是针对RMVX开发的脚本素材后再使用。
●对脚本素材的制作者
开发针对不定用户使用的脚本时,请尽量不要使用再定义,重命名(alias)等方法。建议新开发的脚本只需要添加在本位置就能正常运行。
C. 使用RPG maker vx时出现脚本错误
打开脚本编辑器,将Game_Player内内容全部删除,将以下脚本复制进去保存再试试
#==============================================================================
# ■ Game_Player
#------------------------------------------------------------------------------
# 处理主角的类。事件启动的判定、以及地图的滚动等功能。
# 本类的实例请参考 $game_player。
#==============================================================================
class Game_Player < Game_Character
#--------------------------------------------------------------------------
# ● 恒量
#--------------------------------------------------------------------------
CENTER_X = (320 - 16) * 4 # 画面中央的 X 坐标 * 4
CENTER_Y = (240 - 16) * 4 # 画面中央的 Y 坐标 * 4
#--------------------------------------------------------------------------
# ● 可以通行判定
# x : X 坐标
# y : Y 坐标
# d : 方向 (0,2,4,6,8) ※ 0 = 全方向不能通行的情况判定 (跳跃用)
#--------------------------------------------------------------------------
def passable?(x, y, d)
# 求得新的坐标
new_x = x + (d == 6 ? 1 : d == 4 ? -1 : 0)
new_y = y + (d == 2 ? 1 : d == 8 ? -1 : 0)
# 坐标在地图外的情况下
unless $game_map.valid?(new_x, new_y)
# 不能通行
return false
end
# 调试模式为 ON 并且 按下 CTRL 键的情况下
if $DEBUG and Input.press?(Input::CTRL)
# 可以通行
return true
end
super
end
#--------------------------------------------------------------------------
# ● 像通到画面中央一样的设置地图的显示位置
#--------------------------------------------------------------------------
def center(x, y)
max_x = ($game_map.width - 20) * 128
max_y = ($game_map.height - 15) * 128
$game_map.display_x = [0, [x * 128 - CENTER_X, max_x].min].max
$game_map.display_y = [0, [y * 128 - CENTER_Y, max_y].min].max
end
#--------------------------------------------------------------------------
# ● 向指定的位置移动
# x : X 座标
# y : Y 座标
#--------------------------------------------------------------------------
def moveto(x, y)
super
# 自连接
center(x, y)
# 生成遇敌计数
make_encounter_count
end
#--------------------------------------------------------------------------
# ● 增加步数
#--------------------------------------------------------------------------
def increase_steps
super
# 不是强制移动路线的场合
unless @move_route_forcing
# 增加步数
$game_party.increase_steps
# 步数是偶数的情况下
if $game_party.steps % 2 == 0
# 检查连续伤害
$game_party.check_map_slip_damage
end
end
end
#--------------------------------------------------------------------------
# ● 获取遇敌计数
#--------------------------------------------------------------------------
def encounter_count
return @encounter_count
end
#--------------------------------------------------------------------------
# ● 生成遇敌计数
#--------------------------------------------------------------------------
def make_encounter_count
# 两种颜色震动的图像
if $game_map.map_id != 0
n = $game_map.encounter_step
@encounter_count = rand(n) + rand(n) + 1
end
end
#--------------------------------------------------------------------------
# ● 刷新
#--------------------------------------------------------------------------
def refresh
# 同伴人数为 0 的情况下
if $game_party.actors.size == 0
# 清除角色的文件名及对像
@character_name = ""
@character_hue = 0
# 分支结束
return
end
# 获取带头的角色
actor = $game_party.actors[0]
# 设置角色的文件名及对像
@character_name = actor.character_name
@character_hue = actor.character_hue
# 初始化不透明度和合成方式子
@opacity = 255
@blend_type = 0
end
#--------------------------------------------------------------------------
# ● 同位置的事件启动判定
#--------------------------------------------------------------------------
def check_event_trigger_here(triggers)
result = false
# 事件执行中的情况下
if $game_system.map_interpreter.running?
return result
end
# 全部事件的循环
for event in $game_map.events.values
# 事件坐标与目标一致的情况下
if event.x == @x and event.y == @y and triggers.include?(event.trigger)
# 跳跃中以外的情况下、启动判定是同位置的事件
if not event.jumping? and event.over_trigger?
event.start
result = true
end
end
end
return result
end
#--------------------------------------------------------------------------
# ● 正面事件的启动判定
#--------------------------------------------------------------------------
def check_event_trigger_there(triggers)
result = false
# 事件执行中的情况下
if $game_system.map_interpreter.running?
return result
end
# 计算正面坐标
new_x = @x + (@direction == 6 ? 1 : @direction == 4 ? -1 : 0)
new_y = @y + (@direction == 2 ? 1 : @direction == 8 ? -1 : 0)
# 全部事件的循环
for event in $game_map.events.values
# 事件坐标与目标一致的情况下
if event.x == new_x and event.y == new_y and
triggers.include?(event.trigger)
# 跳跃中以外的情况下、启动判定是正面的事件
if not event.jumping? and not event.over_trigger?
event.start
result = true
end
end
end
# 找不到符合条件的事件的情况下
if result == false
# 正面的元件是计数器的情况下
if $game_map.counter?(new_x, new_y)
# 计算 1 元件里侧的坐标
new_x += (@direction == 6 ? 1 : @direction == 4 ? -1 : 0)
new_y += (@direction == 2 ? 1 : @direction == 8 ? -1 : 0)
# 全事件的循环
for event in $game_map.events.values
# 事件坐标与目标一致的情况下
if event.x == new_x and event.y == new_y and
triggers.include?(event.trigger)
# 跳跃中以外的情况下、启动判定是正面的事件
if not event.jumping? and not event.over_trigger?
event.start
result = true
end
end
end
end
end
return result
end
#--------------------------------------------------------------------------
# ● 接触事件启动判定
#--------------------------------------------------------------------------
def check_event_trigger_touch(x, y)
result = false
# 事件执行中的情况下
if $game_system.map_interpreter.running?
return result
end
# 全事件的循环
for event in $game_map.events.values
# 事件坐标与目标一致的情况下
if event.x == x and event.y == y and [1,2].include?(event.trigger)
# 跳跃中以外的情况下、启动判定是正面的事件
if not event.jumping? and not event.over_trigger?
event.start
result = true
end
end
end
return result
end
#--------------------------------------------------------------------------
# ● 画面更新
#--------------------------------------------------------------------------
def update
# 本地变量记录移动信息
last_moving = moving?
# 移动中、事件执行中、强制移动路线中、
# 信息窗口一个也不显示的时候
unless moving? or $game_system.map_interpreter.running? or
@move_route_forcing or $game_temp.message_window_showing
# 如果方向键被按下、主角就朝那个方向移动
case Input.dir4
when 2
move_down
when 4
move_left
when 6
move_right
when 8
move_up
end
end
# 本地变量记忆坐标
last_real_x = @real_x
last_real_y = @real_y
super
# 角色向下移动、画面上的位置在中央下方的情况下
if @real_y > last_real_y and @real_y - $game_map.display_y > CENTER_Y
# 画面向下卷动
$game_map.scroll_down(@real_y - last_real_y)
end
# 角色向左移动、画面上的位置在中央左方的情况下
if @real_x < last_real_x and @real_x - $game_map.display_x < CENTER_X
# 画面向左卷动
$game_map.scroll_left(last_real_x - @real_x)
end
# 角色向右移动、画面上的位置在中央右方的情况下
if @real_x > last_real_x and @real_x - $game_map.display_x > CENTER_X
# 画面向右卷动
$game_map.scroll_right(@real_x - last_real_x)
end
# 角色向上移动、画面上的位置在中央上方的情况下
if @real_y < last_real_y and @real_y - $game_map.display_y < CENTER_Y
# 画面向上卷动
$game_map.scroll_up(last_real_y - @real_y)
end
# 不在移动中的情况下
unless moving?
# 上次主角移动中的情况
if last_moving
# 与同位置的事件接触就判定为事件启动
result = check_event_trigger_here([1,2])
# 没有可以启动的事件的情况下
if result == false
# 调试模式为 ON 并且按下 CTRL 键的情况下除外
unless $DEBUG and Input.press?(Input::CTRL)
# 遇敌计数下降
if @encounter_count > 0
@encounter_count -= 1
end
end
end
end
# 按下 C 键的情况下
if Input.trigger?(Input::C)
# 判定为同位置以及正面的事件启动
check_event_trigger_here([0])
check_event_trigger_there([0,1,2])
end
end
end
end
D. 请问RPG VX软件中如何修改脚本,如何让角色升级后自动恢复气血和魔法值
【升级补血】
不少游戏都有升级的时候把HP,SP补慢的功能。在RMXP中怎么制作呢?我先说制作方法,再简单讲一下原理和碰到其他新脚本之后的更改方法。1、默认情况下的升级加HP,SP方法:Scene_Battle 2 的173行开始,有如下3段内容: if actor.level > last_level
@status_window.level_up(i)
end这里就是升级的内容,只要在if那个下面一行添加
actor.hp = actor.maxhp; actor.sp = actor.maxsp就可以补满血。如果需要增加50%的最大生命和最大SP,则写
actor.hp += actor.maxhp*0.5; actor.sp += actor.maxsp*0.52、雅土的升级提示脚本:首先你得确定是本站提供的脚本,否则行数会略有偏差,用ctrl+f搜索即可。在279行内容如下: if actor.level > last_level在行此下面一行添加:actor.hp = actor.maxhp; actor.sp = actor.maxsp
如果需要增加50%的最大生命和最大SP,则写actor.hp += actor.maxhp*0.5; actor.sp += @actor.maxsp*0.53、RTAB首先你得确定是本站提供的脚本,否则行数会略有偏差,用ctrl+f搜索即可。在773行内容如下: if actor.level > last_level在行此下面一行添加:actor.hp = actor.maxhp; actor.sp = actor.maxsp
如果需要增加50%的最大生命和最大SP,则写actor.hp +=actor.maxhp*0.5; actor.sp += actor.maxsp*0.5【原理】其实所有的升级补血都是在升级出现提示表现之后帮忙把HP和SP补满。所以只需要在脚本中按ctrl+shift+f搜索
if actor.level > last_level
就可以了。不过有的脚本写得不是非常规范,可能会写成if actor.level >last_level这样(和最标准的格式比缺一个空格),这样搜索就搜不到了。这是可以全局搜索.level,然后自己挑出来。这个.level是默认定义的,一般的脚本不会随便更改这个。actor.hp = actor.maxhp,就是把现在的hp赋值为最大hp (maxhp),SP也相同。如果使用增加一些hp或sp,就使用 += 的方法增加现有值。【战斗结束后补血补气】了解上面的原理,比如我现在想模拟仙剑的效果每次战斗结束恢复50%受伤的生命和精神,这样不会完全补满,又不至于受伤过重难度太大。方法其实很简单了:在Window_BattleResult中(这个是用来表示战斗结束时、显示获得的 EXP 及金钱的窗口),在initialize或者refresh函数定义中,添加如下内容(比如添加在28行下面):for actor in $game_party.actors
actor.hp += 0.5*(actor.maxhp-actor.hp)
actor.sp += 0.5*(actor.maxsp-actor.sp)
end你应该可以看明白这个简短的脚本是怎么运行的。另外,比较好的方法:在Game_Actor里的 #--------------------------------------------------------------------------
# ● 更改 EXP
# exp : 新的 EXP
#--------------------------------------------------------------------------
def exp=(exp)
@exp = [[exp, 9999999].min, 0].max
# 升级
while @exp >= @exp_list[@level+1] and @exp_list[@level+1] > 0
@level += 1
@hp = maxhp
@sp = maxsp
# 学会特技
for j in $data_classes[@class_id].learnings
if j.level == @level
learn_skill(j.skill_id)
end
end
end
# 降级
while @exp < @exp_list[@level]
@level -= 1
end
# 修正当前的 HP 与 SP 超过最大值
@hp = [@hp, self.maxhp].min
@sp = [@sp, self.maxsp].min
end
E. 急问!!rpg maker vx的脚本如何使用
你复制脚本插入到Min前就行了,另外帮助F1可以帮你更详细的认识脚本请仔细看不要觉得麻烦就当看小说一样,多看视屏多练多熟悉英语脚本语法,相信一些简单的脚本就差不多会~望采
F. RPG制作大师VX脚本问题
把脚本编辑器拉到最底下 然后有一个 (插入于此) 右键点击 选插入 把脚本粘贴进去就行了
希望能解决您的问题。
G. RPG maker vx脚本应该放在哪里脚本编辑器里太多了,我不知道应该把脚本放在哪里!
一般性都放在【外来RGSS插件脚本这里】
如果有特殊要求的话脚本作者会说的
点击右键选择【插|||入】就会多出一行空间
================
有问题可以追问我,满意的话请采纳我吧。。
H. RPG Maker vx 这些脚本怎么用
for i in 1..30
$game_self_switches[[99,i,"A"]] =false
end
$game_map.need_refresh = true
这些脚本应该都是当作事件脚本用的吧
在事件里的脚本项输入就行了
I. 求rpg制作大师vx的各种实用脚本!急!
#==============================================================================
# ■ 地图名显示脚本
# by Yuee
#------------------------------------------------------------------------------
# 在Main的上方插入一个页,将本脚本复制到那页中即可
#==============================================================================
#==============================================================================
# ■ Window_MapName
#------------------------------------------------------------------------------
# 显示地图名字的窗口。
#==============================================================================
class Window_MapName < Window_Base
#--------------------------------------------------------------------------
# ● 类常量定义
#--------------------------------------------------------------------------
# 暂时屏蔽用的开关
SWITCH = 35
# 窗口位置设定
NAME_X = 380 # 矩形左上顶点X坐标
NAME_Y = 20 # 矩形左上顶点Y坐标
NAME_W = 220 # 矩形宽
NAME_H = 60 # 矩形高
# 显示时间设置
SHOW_TIME_0 = 10 # 地图名出现前等待的帧数
SHOW_TIME_1 = 10 # 地图名从不可见变成可见的帧数
SHOW_TIME_2 = 34 # 地图名完全可见的帧数
SHOW_TIME_3 = 16 # 地图名从可见变成不可见的帧数
# 完全可见时的透明度设置
OPACITY_1 = 244 # 边框
OPACITY_2 = 144 # 背景
OPACITY_3 = 255 # 文字
# 地图名字的颜色
TEXT_COLOR = Color.new(255, 255, 255, 255)
#--------------------------------------------------------------------------
# ● 初始化状态
#--------------------------------------------------------------------------
def initialize
super(NAME_X , NAME_Y, NAME_W, NAME_H)
# 初始化窗口透明度
self.opacity = 0
self.back_opacity = 0
self.contents_opacity = 0
self.contents = Bitmap.new(width - 32, height - 32)
# 剩余帧数初始化
@show_time = 0
end
#--------------------------------------------------------------------------
# ● 输出文字
#--------------------------------------------------------------------------
def setname
unless $game_switches[SWITCH]==true
# 获取地图ID
newid = $game_map.map_id
time = SHOW_TIME_1 + SHOW_TIME_2 + SHOW_TIME_3
# 如果现在的地图的ID不是刚才显示的地图ID则开始显示
if newid != @id
@id = newid
@show_time = SHOW_TIME_0 + SHOW_TIME_1 + SHOW_TIME_2 + SHOW_TIME_3
# 剩余帧数为0是时,全部窗口透明
elsif @show_time < 1
self.opacity = 0
self.back_opacity = 0
self.contents_opacity = 0
return
end
self.contents.clear
self.contents.font.color = TEXT_COLOR
# 描绘地图名
self.contents.draw_text(4, 0 , width - 40, 32, $data_mapinfos[@id].name, 1)
# 根本帧数设定窗口透明度
if @show_time > (SHOW_TIME_2 + SHOW_TIME_3)
self.opacity = @show_time < time ? (((OPACITY_1 / SHOW_TIME_1) * (time - @show_time)).to_i) : 0
self.back_opacity = @show_time < time ? (((OPACITY_2 / SHOW_TIME_1 )* (time - @show_time)).to_i) : 0
self.contents_opacity = @show_time < time ? (((OPACITY_3 / SHOW_TIME_1) * (time - @show_time)).to_i) : 0
else
self.opacity = @show_time < (SHOW_TIME_3 / 16 * 14) ? ((OPACITY_1 / SHOW_TIME_3) * @show_time).to_i : OPACITY_1
self.back_opacity = @show_time < (SHOW_TIME_3 / 16 * 9) ? ((OPACITY_2 / SHOW_TIME_3) * @show_time).to_i : OPACITY_2
self.contents_opacity = @show_time < SHOW_TIME_3 ? ((OPACITY_3 / SHOW_TIME_3)* @show_time).to_i : OPACITY_3
end
@show_time -= 1
end
end
end
#==============================================================================
# ■ Scene_Map
#------------------------------------------------------------------------------
# 处理地图画面的类。(追加定义)
#==============================================================================
class Scene_Map
alias smn_main main
def main
@mapname = Window_MapName.new
smn_main
@mapname.dispose
end
alias smn_update update
def update
@mapname.setname
smn_update
end
end
#==============================================================================
# ■ Scene_Title
#------------------------------------------------------------------------------
# 处理标题画面的类。(追加定义)
#==============================================================================
class Scene_Title
alias smn_main main
def main
# 读取地图信息文件
$data_mapinfos = load_data("Data/MapInfos.rxdata")
smn_main
end
end
#==============================================================================
# 本脚本来自www.66RPG.com,使用和转载请保留此信息
#==============================================================================
# ▼▲▼ XRXS25. ダッシュ机能 ver.2 ▼▲▼
# by 桜雅 在土 (基本、再改订)
# Tetra-Z (改订原案)
#==============================================================================
# □ カスタマイズポイント
#==============================================================================
mole XRXS_Dash
#
# 按下加速键之后的速度増加量
#
PLUSPEED = 1
#
# 行走加速的按键
#
BUTTON = Input::C
end
#==============================================================================
# ■ Game_Player
#==============================================================================
class Game_Player < Game_Character
#--------------------------------------------------------------------------
# ● フレーム更新
#--------------------------------------------------------------------------
alias xrxs25_update update
def update
# 例外补正
if @move_speed_arcadia == nil
@move_speed_arcadia = @move_speed
end
# 移动中、イベント実行中、移动ルート强制中、
# メッセージウィンドウ表示中、
# ダッシュボタン挿下中、のいずれでもない场合
unless moving? or $game_system.map_interpreter.running? or
@move_route_forcing or $game_temp.message_window_showing
# 速度の変更
if Input.press?(XRXS_Dash::BUTTON)
@move_speed = @move_speed_arcadia + XRXS_Dash::PLUSPEED
else
@move_speed = @move_speed_arcadia
end
end
# 呼び戻す
xrxs25_update
end
#--------------------------------------------------------------------------
# ○ 移动タイプ : カスタム [オーバーライド]
#--------------------------------------------------------------------------
def move_type_custom
# 例外补正
if @move_speed_arcadia == nil
@move_speed_arcadia = @move_speed
end
# 标准速度に戻す
@move_speed = @move_speed_arcadia
# 呼び戻す
super
# 速度の保存
@move_speed_arcadia = @move_speed
end
end
#==============================================================================
# 本脚本来自www.66RPG.com,使用和转载请保留此信息
#==============================================================================
第一个是出现地图名脚本,第二个是空格加速脚本,直接复制就行