じ☆ve冰风 发表于 2026-8-2 10:20:18

Smarter Text Persistence (Show Text Combining With Choices)

Smarter Text Persistence

Introduction
A simple script (fix) to make "show text" still combine windows with choice selections when separated by conditional branches, comments or jump to label events.


Features
The event "show text" will combine with choice selection, number selection or item selection regardless of any of the following being executed inbetween:

- Conditional branches (can be nested)

- Jump to labels

- Comments

But not:

- Labels


Screenshots

Spoiler









How to Use

Installation: Simply insert this script in the Script Editor under Materials (above Main Process).

If you don't want the text to persist, just put a blank label underneath it.

If you want to put a label between text and choices and have the text persist, put a jump to label above it as shown in the 4th screenshot.



Bugs

If text is the last event, game crashes (derp).

Script

Spoiler                Code:       
#==============================================================================
# Smarter Text Persistence
# By: Muramasa & Venima
# Version 1.01
#------------------------------------------------------------------------------
# A simple script to make "show text" still combine with choice selection
# when separated by conditional branches, comments or jump to label events.
#------------------------------------------------------------------------------
# Installation: Simply insert this script in the Script Editor near the bottom
# under Materials (above Main Process).
#------------------------------------------------------------------------------
# Special usage:
# If you don't want the text to persist, just put a blank label under it.
# If you want to put a label between text and choices and have the text
# persist, put a jump to label just above the label.
#==============================================================================
class Game_Interpreter
#--------------------------------------------------------------------------
# * Show Text
#--------------------------------------------------------------------------
def command_101
    wait_for_message
    $game_message.face_name = @params
    $game_message.face_index = @params
    $game_message.background = @params
    $game_message.position = @params
    while next_event_code == 401       # Text data
      @index += 1
      $game_message.add(@list[@index].parameters)
    end
    while check_text_persist(next_event_code); end #Smarter Text Persistence
    case next_event_code
    when 102# Show Choices
      @index += 1
      setup_choices(@list[@index].parameters)
    when 103# Input Number
      @index += 1
      setup_num_input(@list[@index].parameters)
    when 104# Select Item
      @index += 1
      setup_item_choice(@list[@index].parameters)
    end
    wait_for_message
end

def check_text_persist(code)
    case code
    when 111 # Conditional Branch
      @index += 1
      execute_command
      if (next_event_code==411) # Else
      @index += 1
      execute_command
      end
      @indent += 1
      return true
    when 0 # Close indent
      if @index == @list.length - 2 #bugfix #1
      return false
      end
      @index += 1
      @indent -= 1
      return true
    when 108, 119, 411, 412 # Comment, Jump to Label, Else, Conditional Branch End
      @index += 1
      execute_command
      return true
    end
    return false
end
end






FAQ

Q: What is this script compatible with?
A: Mostly anything, if another script modifies command_101, try adding in the line "while check_text_persist(next_event_code); end" above the "case next_event_code" in the other script.

Credit and Thanks
Muramasa & Venima

Feel free to use this script as you wish.


本贴来自国际rpgmaker官方论坛作者:Venima处,因国际论坛即将永久关站,为了存档多年珍贵资料,署名转载到本论坛存档,由于官方帖子为英文原帖,需要中文翻译请点击论坛顶部切换语言为中文就可以将帖子翻译成中文浏览,方便大家随时查看,原文地址:https://forums.rpgmakerweb.com/threads/smarter-text-persistence-show-text-combining-with-choices.18970/
页: [1]
查看完整版本: Smarter Text Persistence (Show Text Combining With Choices)