當前位置:首頁 » 編程軟體 » rpgvx腳本

rpgvx腳本

發布時間: 2022-04-25 05:29:23

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,使用和轉載請保留此信息
#==============================================================================

第一個是出現地圖名腳本,第二個是空格加速腳本,直接復制就行

熱點內容
oracle測試sql 發布:2025-07-08 03:16:54 瀏覽:972
php壁紙源碼 發布:2025-07-08 03:04:26 瀏覽:320
android應用層 發布:2025-07-08 02:42:32 瀏覽:301
大唐存儲銷量 發布:2025-07-08 02:41:11 瀏覽:582
腳本怎麼打開 發布:2025-07-08 02:41:06 瀏覽:822
貴州電信iPtv升級伺服器地址 發布:2025-07-08 02:38:48 瀏覽:412
電腦怎麼鏈接本地伺服器 發布:2025-07-08 02:34:22 瀏覽:147
android調試webview 發布:2025-07-08 02:26:28 瀏覽:358
壓縮袋鞋子 發布:2025-07-08 02:21:30 瀏覽:752
為什麼安卓打吃雞感覺有延遲 發布:2025-07-08 02:09:32 瀏覽:168