转跳到内容

请问,关于RPGVX中的Ctrl快进


推荐贴

 

 

话说这个 发在绅士游戏或工作组区比较多人回吧?

把游戏拆开 一般vx用的是CACAO氏的メッセージスキップ

http://cacaosoft.web.fc2.com/

#******************************************************************************

#

# * メッセージスキップ

#

# --------------------------------------------------------------------------

# バージョン : 1.0.0

# 対 応 : RPGツクールVX : RGSS2

# 制 作 者 : CACAO

# 配 布 元 : http://cacaosoft.web.fc2.com/

# --------------------------------------------------------------------------

# == 概  要 ==

#

# : 特定のボタンを押している間メッセージを早送りします。

#

#

#******************************************************************************

 

 

#==============================================================================

# ◆ 設定項目

#==============================================================================

class Window_Message

 

# スキップ禁止スイッチの番号

SKIP_SW_NUM = 0

 

# スキップするボタン (Ctrlキー)

SKIP_BUTTON = Input::CTRL

 

# スキップに掛ける時間

SKIP_WAIT = 3

 

end

 

 

#/////////////////////////////////////////////////////////////////////////////#

# #

# 下記のスクリプトを変更する必要はありません。 #

# #

#/////////////////////////////////////////////////////////////////////////////#

 

 

class Window_Message

#--------------------------------------------------------------------------

# ○ 早送りフラグの更新

#--------------------------------------------------------------------------

alias _cao_skip_update_show_fast update_show_fast

def update_show_fast

if !$game_switches[sKIP_SW_NUM] && Input.press?(SKIP_BUTTON)

@show_fast = true

@wait_count = SKIP_WAIT if @wait_count > SKIP_WAIT

else

_cao_skip_update_show_fast

end

end

#--------------------------------------------------------------------------

# ○ 文章送りの入力処理

#--------------------------------------------------------------------------

alias _cao_skip_input_pause input_pause

def input_pause

if Input.press?(SKIP_BUTTON)

self.pause = false

if @text != nil and not @text.empty?

new_page if @line_count >= MAX_LINE

else

terminate_message

end

else

_cao_skip_input_pause

end

end

end

=============================================分隔线

个人是放在素材後main前 vxa是另一个不能通用

不难 很简单

脚本编辑器>拉到最後找个空白位>右边贴上内容>左下命名>储存 完工

不过若是作者有用其他脚本先定义过会失效

此时要找出来改 太麻烦一般就算了

需要vxa个人再发上来 不过其实可以自己拆有skip功能的游戏 把脚本腾移过去即可

 

链接到点评

星潟氏的vxa版本skip 就一起发了

#==============================================================================

# ■ RGSS3 メッセージスキップ機能 Ver1.01 by 星潟

#------------------------------------------------------------------------------

# メッセージウィンドウに表示された文章を一気に読み飛ばします。

# テストモード限定化機能と、特定のスイッチがONの時だけ

# メッセージスキップを有効にする機能も併せて持っています。

#------------------------------------------------------------------------------

# Ver1.01 入力待ち無視(\^)が無効になる不具合を修正しました。

#==============================================================================

module M_SKIP

 

#メッセージスキップの効果をテストモードに限定するか?

#trueでテストモード限定、falseで常時

 

T_LIMT = false

 

#メッセージスキップ有効化スイッチIDの設定。

#0にするとスイッチによる判定は消滅。

#1以上にすると、そのスイッチがONの時のみメッセージスキップ有効。

 

SWITID = 0

 

#メッセージスキップに使用するキーの設定。

#文字送りキーとしても機能します。

#nilにするとメッセージスキップ機能全てを無効化。

 

KEY = :CTRL

 

end

class Window_Message < Window_Base

#--------------------------------------------------------------------------

# ● フレーム更新

#--------------------------------------------------------------------------

alias update_mb update

def update

if skip_execute

@pause_skip = true

@show_fast = true

end

update_mb

end

#--------------------------------------------------------------------------

# ● スキップ判定

#--------------------------------------------------------------------------

def skip_execute

if M_SKIP::T_LIMT

unless $TEST or $BTEST

return false

end

end

if M_SKIP::SWITID != 0

return false unless $game_switches[M_SKIP::SWITID]

end

return false unless Input.press?(M_SKIP::KEY)

return true

end

#--------------------------------------------------------------------------

# ● 入力処理

#--------------------------------------------------------------------------

def process_input

if $game_message.choice?

input_choice

elsif $game_message.num_input?

input_number

elsif $game_message.item_choice?

input_item

else

input_pause unless @pause_skip or skip_execute

end

end

#--------------------------------------------------------------------------

# ● 入力待ち処理

#--------------------------------------------------------------------------

def input_pause

self.pause = true

wait(10)

if M_SKIP::KEY == nil

Fiber.yield until Input.trigger?(:B) || Input.trigger?(:C)

else

if M_SKIP::T_LIMT == true

if $TEST or $BTEST

Fiber.yield until Input.trigger?(:B) || Input.trigger?(:C) || Input.press?(M_SKIP::KEY)

else

Fiber.yield until Input.trigger?(:B) || Input.trigger?(:C)

end

else

Fiber.yield until Input.trigger?(:B) || Input.trigger?(:C) || Input.press?(M_SKIP::KEY)

end

end

Input.update

self.pause = false

end

end

 

链接到点评
游客
此主题已关闭。
×
×
  • 新建...

重要消息

为使您更好地使用该站点,请仔细阅读以下内容: 使用条款