- LunriMembre
- Nombre de messages : 675
Age : 33
Distinction : aucune
Date d'inscription : 31/07/2011
[Résolu]Légère modification script : transparence héros durant animation
Sam 28 Juil 2012 - 16:56
Bonjour,
J'utilise ce script de téléportation :
Lors de la téléportation j'ai choisi d'afficher une animation. Je voudrais savoir si c'est possible que durant cette animation le Héros devienne transparent et retrouve son opacité quand l'animation est finie.
Voilà merci d'avance.
J'utilise ce script de téléportation :
- Code:
#==============================================================================
# XaiL System - Teleport
# Author: Nicke
# Created: 10/01/2012
# Edited: 03/04/2012
# Version: 1.0a
#==============================================================================
# Instructions
# -----------------------------------------------------------------------------
# To install this script, open up your script editor and copy/paste this script
# to an open slot below ▼ Materials but above ▼ Main. Remember to save.
#
# To call this scene in a menu or on the map simply use the following code:
# SceneManager.call(Scene_Teleport)
#
# To add/del a teleport, do this in a script call:
# tp(id, type, enabled = true)
# Examples:
# tp(2, :add) # This will add id 2.
# tp(2, :del) # This will delete id 2.
#
# To check if id is added or enabled/disabled do the following, preferably in a
# conditional branch:
# tp_added?(id)
# tp_enable?(id)
# Examples:
# tp_added?(2) # Is id 2 added?
# tp_enabled?(1) # Is id 1 enabled?
# !tp_enabled?(3) # Same method used but returns true if it is disabled.
#
# To enable/disabling a id do like this:
# tp_enable(1, true) # Enable id 1.
# tp_enable(2, false) # Disable id 2.
#
# If you want to add/delete all the id's in the list use this method:
# Note: This method uses the normal way of adding a tp. I created this method
# to save some space in the event page when adding a large amount of id's.
# tp_all(:add) # Add all id's.
# tp_all(:del) # Remove all id's.
#
# Read the settings carefully when setting up new teleport location as well as
# how to change certain settings. Make sure you change the settings as you
# want them and hopefully you will be pleased. Enjoy!
#
# *** Only for RPG Maker VX Ace. ***
#==============================================================================
($imported ||= {})["XAIL-XS-TELEPORT-SCENE"] = true
module XAIL
module TELEPORT
#--------------------------------------------------------------------------#
# * Settings
#--------------------------------------------------------------------------#
# TP_FONT = [ name, size, color, bold, italic, shadow ]
TP_CMD_FONT = [["Verdana"], 16, Color.new(255,255,255), true, false, false]
TP_INFO_FONT = [["Verdana"], 14, Color.new(155,205,205), true, false, true]
# The windowskin to use for the windows. Set to nil to disable.
# SKIN = string
SKIN = nil
# Use this template when adding a long string to the map details.
# Use \n to get to a new line.
# TP_INFO_ID = long string
TP_INFO_1 = "This is a very long string so that you can see how it may\nwork when using a super long string. :-)"
TP_INFO_2 = "This is just a text explaining the map info."
TP_INFO_3 = "Since this map is disabled i.e no teleporting allowed the\ncommand is disabled as well as the text."
# How many lines the info window should display.
# If you do have long strings in the info I suggest changing this.
# TP_INFO_LINES = number
TP_INFO_LINES = 3
# Sets the padding of the text in the info window.
TP_INFO_PADDING = 10 # Default: 12.
# TELEPORT_LIST:
# ID = ['Title', :symbol, map_id, x & y, map_image(nil), map_info(nil),
# enabled, icon_index]
TP_LIST = [] # Don't remove!
TP_LIST[0] = ['Weird Lake', :weird_map, 1, [15,11], "map_test", TP_INFO_1, true, 321]
TP_LIST[1] = ['World Map', :world_map, 2, [12,3],"map_test2", TP_INFO_2, true, nil]
TP_LIST[2] = ['Disabled Map', :disabled, 2, [1,1],"map_test2", TP_INFO_3, false, 327]
# Empty icon index. Which icon should be in use if TP_LIST icon_index is nil.
# EMPTY_ICON_INDEX = icon_index
EMPTY_ICON_INDEX = 0
# Display texts. Should be easy enough to understand what they are for.
TEXT_NO_TELEPORTS = "You haven't found a location to teleport to."
OK_NAME = "Teleport" # Dialog box ok.
OK_CANCEL = "Cancel" # Dialog box cancel.
# Transition, nil to use default.
# TRANSITION [ SPEED, TRANSITION, OPACITY ]
# TRANSITION = [40, "Graphics/Transitions/1", 50]
TRANSITION = nil
# Background image (System folder)
# Note: You might want to decrease the opacity as well as arrange
# the windows so that you can properly see the background.
# Set to nil to use default.
BACK = nil
# Should a animation be used when teleporting to a new map.
# Set it to nil to disable it.
ANIM_ID = 81
# Fade out time when teleporting to a new map.
# 1000 (1 second)
# ANIM_SCENE_FADE/ANIM_AUDIO_FADE = number
ANIM_SCENE_FADE = 500 # Fade out time for scene.
ANIM_AUDIO_FADE = 500 # Fade out time for audio.
end
end
# *** Don't edit below unless you know what you are doing. ***
#==============================================================================#
# ** Game_System
#------------------------------------------------------------------------------
# Method for checking the teleport list.
#==============================================================================#
class Game_System
attr_accessor :tp_list
alias xail_teleport_sys_initialize initialize
def initialize(*args, &block)
xail_teleport_sys_initialize(*args, &block)
@tp_list = []
end
end
#==============================================================================#
# ** Game_Interpreter
#------------------------------------------------------------------------------
# Method for adding and deleting a teleport.
#==============================================================================#
class Game_Interpreter
def tp(id, type)
# // Method to add a item to the list.
case type
when :add # // Add teleport id.
unless $game_system.tp_list.include?(XAIL::TELEPORT::TP_LIST[id])
$game_system.tp_list.push(XAIL::TELEPORT::TP_LIST[id])
end unless XAIL::TELEPORT::TP_LIST[id].nil?
when :del # // Remove teleport id.
unless XAIL::TELEPORT::TP_LIST[id].nil?
$game_system.tp_list.delete(XAIL::MENU::TP_LIST[id])
end
end
end
def tp_enabled?(id)
# // Method to check if id is enabled.
# (Must be added in the list or else it returns nil).
return if $game_system.tp_list[id].nil?
return $game_system.tp_list[id][6]
end
def tp_added?(id)
# // Method to check if id is added.
return $game_system.tp_list[id]
end
def tp_enable(id, enabled)
# // Method to enable id.
$game_system.tp_list[id][6] = enabled
end
def tp_all(type = :add)
# // Method to add/delete all teleport id's.
id = 0
while id < XAIL::TELEPORT::TP_LIST.size
case type
when :add
tp(id, :add)
else
tp(id, :del)
end
id += 1
end
end
end
#==============================================================================#
# ** Window_TeleportCommand
#------------------------------------------------------------------------------
# New Window :: Window_TeleportCommand - A window for creating the commands.
#==============================================================================#
class Window_TeleportCommand < Window_Command
def window_width
# // Method to return the width.
return 160
end
def window_height
# // Method to return the height.
return Graphics.height
end
def menu_color(color, enabled = true)
# // Method to set the color and alpha if not enabled.
contents.font.color.set(color)
contents.font.color.alpha = 100 unless enabled
end
def draw_item(index)
# // Method to draw the command item.
contents.font.name = XAIL::TELEPORT::TP_CMD_FONT[0]
contents.font.size = XAIL::TELEPORT::TP_CMD_FONT[1]
menu_color(XAIL::TELEPORT::TP_CMD_FONT[2], menu_enabled?(index))
contents.font.bold = XAIL::TELEPORT::TP_CMD_FONT[3]
contents.font.italic = XAIL::TELEPORT::TP_CMD_FONT[4]
contents.font.shadow = XAIL::TELEPORT::TP_CMD_FONT[5]
draw_text(item_rect_for_icons(index), command_name(index), alignment)
draw_icons
reset_font_settings
end
def draw_icons
# // Method to draw the icons.
# If there is no icon as in nil return a empty
# icon index
y = 0
for i in @tp_list
icon = i[7]
icon = XAIL::TELEPORT::EMPTY_ICON_INDEX if i[7].nil?
draw_icon(icon, 0, y)
y += 24
end
end
def item_rect_for_icons(index)
# // Method to draw the text with icons.
rect = item_rect(index)
rect.x += 24
rect.width -= 8
rect
end
def menu_enabled?(index)
# // Method to check if item is enabled.
return @tp_list[index][6]
end
alias xail_mk_cmd_list_tp make_command_list
def make_command_list(*args, &block)
# // Method to add the commands.
xail_mk_cmd_list_tp(*args, &block)
@tp_list = $game_system.tp_list
for i in @tp_list
add_command(i[0], i[1], i[6])
end
end
end
#==============================================================================#
# ** Window_tpInfo
#==============================================================================#
class Window_OK_Command < Window_Command
def window_width
# // Method to return the width.
return 120
end
def alignment
# // Method to return the alignment.
return 1
end
alias xail_mk_cmd_list_ok make_command_list
def make_command_list(*args, &block)
# // Method to add the commands.
xail_mk_cmd_list_ok(*args, &block)
add_command(XAIL::TELEPORT::OK_NAME, :ok)
add_command(XAIL::TELEPORT::OK_CANCEL, :cancel)
end
end
#==============================================================================#
# ** Window_tpInfo
#==============================================================================#
class Window_tpInfo < Window_Base
def initialize(x, y, width, height)
# // Method to initialize the window.
super(0, 0, width, window_height)
@tp_list = $game_system.tp_list
refresh
end
def set_text(text, enabled)
# // Method to set a new the tp text to the window.
if text != @text
@text = text
menu_color(XAIL::TELEPORT::TP_INFO_FONT[2], enabled)
refresh
end
end
def window_height
# // Method to return the height.
return fitting_height(XAIL::TELEPORT::TP_INFO_LINES)
end
def standard_padding
# // Method to set the padding for text.
return XAIL::TELEPORT::TP_INFO_PADDING
end
def refresh
# // Method to refresh the window.
contents.clear
draw_tp_text
end
def menu_color(color, enabled = true)
# // Method to set the color and alpha if not enabled.
contents.font.color.set(color)
contents.font.color.alpha = 150 unless enabled
end
def draw_tp_ex(x, y, text)
# // Special method to draw a text.
text = convert_escape_characters(text)
pos = {:x => x, :y => y, :new_x => x, :height => calc_line_height(text)}
process_character(text.slice!(0, 1), text, pos) until text.empty?
end
def draw_tp_text
# // Method to draw the tp text to the window.
contents.font.name = XAIL::TELEPORT::TP_INFO_FONT[0]
contents.font.size = XAIL::TELEPORT::TP_INFO_FONT[1]
contents.font.bold = XAIL::TELEPORT::TP_INFO_FONT[3]
contents.font.italic = XAIL::TELEPORT::TP_INFO_FONT[4]
contents.font.shadow = XAIL::TELEPORT::TP_INFO_FONT[5]
draw_tp_ex(0, 0, @text)
reset_font_settings
end
end
#==============================================================================#
# ** Window_tpImage
#==============================================================================#
class Window_tpImage < Window_Base
def initialize(x, y, width, height)
# // Method to initialize the window.
super(0, 0, width, height)
refresh
end
def refresh
# // Method to refresh the window.
contents.clear
end
def draw_tp_map(x, y, source, enabled = true)
# // Method to draw the teleport map.
rect = Rect.new(0, 0, Graphics.width, Graphics.height)
return clear_tp_map(rect) if source.nil?
clear_tp_map(rect)
tp_map = Cache.picture(source)
contents.blt(x, y, tp_map, rect, enabled ? 255 : 150)
end
def clear_tp_map(rect)
contents.clear_rect(rect)
end
end
#==============================================================================#
# ** Scene_TeleportBase
#------------------------------------------------------------------------------
# New Scene :: Scene_TeleportBase - The teleport scene.
#==============================================================================#
class Scene_TeleportBase < Scene_Base
alias xail_tpbase_start start
def start(*args, &block)
# // Method to start the scene
xail_tpbase_start(*args, &block)
@tp_list = $game_system.tp_list
create_background
end
def post_start
# // Method to post_start the scene.
perform_transition unless @tp_list.empty?
end
alias xail_tpbase_terminate terminate
def terminate(*args, &block)
# // Method to terminate the scene.
xail_tpbase_terminate(*args, &block)
end
def create_background
# // Method to create the background.
@background_sprite = Sprite.new
if XAIL::TELEPORT::BACK.nil?
@background_sprite.bitmap = SceneManager.background_bitmap
@background_sprite.color.set(16, 16, 16, 128)
else
@background_sprite.bitmap = Cache.system(XAIL::TELEPORT::BACK)
end
end
alias xail_tpbase_transition perform_transition
def perform_transition(*args, &block)
# // Method to create the transition.´
if XAIL::TELEPORT::TRANSITION.nil?
Graphics.transition(15)
else
Graphics.transition(XAIL::TELEPORT::TRANSITION[0],XAIL::TELEPORT::TRANSITION[1],XAIL::TELEPORT::TRANSITION[2])
end
xail_tpbase_transition(*args, &block)
end
end
#==============================================================================#
# ** Scene_Teleport
#------------------------------------------------------------------------------
# New Scene :: Scene_Teleport - The teleport scene.
#==============================================================================#
class Scene_Teleport < Scene_TeleportBase
alias xail_tpbase_init initialize
def initialize(*args, &block)
# // Method to initialize scene teleport.
xail_tpbase_init(*args, &block)
@tp_list = $game_system.tp_list
end
def start
# // Method to start scene teleport.
super
return command_map if @tp_list.empty?
create_tp_command_window
create_tp_info
create_tp_image
on_index_change(0) # // Draw id 0 when scene is loaded.
end
def create_tp_command_window
# // Method to create command list window.
@command_window = Window_TeleportCommand.new(0, 0)
@command_window.windowskin = Cache.system(XAIL::TELEPORT::SKIN) unless XAIL::TELEPORT::SKIN.nil?
for i in @tp_list
@command_window.set_handler(i[1], method(:command_ok_dialog))
end
@command_window.set_handler(:cancel, method(:return_scene))
end
def create_ok_window
# // Method to create ok command window.
@ok_window = Window_OK_Command.new(0, 0)
@ok_window.windowskin = Cache.system(XAIL::TELEPORT::SKIN) unless XAIL::TELEPORT::SKIN.nil?
@ok_window.x = (Graphics.width - @ok_window.width) / 2
@ok_window.y = (Graphics.height - @ok_window.height) / 2
@ok_window.set_handler(:ok, method(:command_teleport))
@ok_window.set_handler(:cancel, method(:command_cancel_dialog))
end
def create_tp_info
# // Method to create teleport info window.
width = Graphics.width - @command_window.width
height = 80
@tp_info = Window_tpInfo.new(0, 0, width, height)
@tp_info.windowskin = Cache.system(XAIL::TELEPORT::SKIN) unless XAIL::TELEPORT::SKIN.nil?
@tp_info.x = @command_window.width
@tp_info.y = 0
end
def create_tp_image
# // Method to create teleport image window.
width = Graphics.width - @command_window.width
height = Graphics.height - @tp_info.height
@tp_image_window = Window_tpImage.new(0, 0, width, height)
@tp_image_window.windowskin = Cache.system(XAIL::TELEPORT::SKIN) unless XAIL::TELEPORT::SKIN.nil?
@tp_image_window.x = @command_window.width
@tp_image_window.y = @tp_info.height
end
def create_tp_message_window
# // Method to create the message window.
@message_window = Window_Message.new
end
def command_ok_dialog
# // Method to open ok dialog.
create_ok_window
end
def command_cancel_dialog
# // Method to close ok dialog.
@ok_window.close
@command_window.active = true
end
def command_teleport
# // Method to teleport the player.
teleport_player(@command_window.index)
end
def command_map
# // command_map (Don't remove)
create_tp_message_window
$game_message.texts << XAIL::TELEPORT::TEXT_NO_TELEPORTS
SceneManager.call(Scene_Map)
end
def teleport_player(index)
# // Method for teleporting the player to the spawn event. (if exists)
$game_map.setup(@tp_list[index][2])
$game_player.moveto(@tp_list[index][3][0], @tp_list[index][3][1])
fadeout_scene
$game_map.autoplay
$game_map.refresh
$game_player.animation_id = XAIL::TELEPORT::ANIM_ID unless XAIL::TELEPORT::ANIM_ID.nil?
SceneManager.call(Scene_Map)
end
def fadeout_scene
time = XAIL::TELEPORT::ANIM_AUDIO_FADE
# // Method to fade out the scene.
RPG::BGM.fade(time)
RPG::BGS.fade(time)
RPG::ME.fade(time)
Graphics.fadeout(XAIL::TELEPORT::ANIM_SCENE_FADE * Graphics.frame_rate / 1000)
RPG::BGM.stop
RPG::BGS.stop
RPG::ME.stop
end
def draw_tp_image(index)
# // Draw teleport image.
image = @tp_list[index][4]
enabled = @tp_list[index][6]
@tp_image_window.draw_tp_map(0, 0, image, enabled)
end
def draw_tp_info(index)
# // Draw teleport details.
title = @tp_list[index][0]
info = @tp_list[index][5]
enabled = @tp_list[index][6]
text = "#{title}\n#{info}" unless @tp_list[index][5].nil?
@tp_info.set_text(text, enabled)
end
alias xail_upd_tp_index_change update
def update(*args, &block)
# // Method for updating the scene.
old_index = @command_window.index
xail_upd_tp_index_change(*args, &block)
on_index_change(@command_window.index) if old_index != @command_window.index
end
def on_index_change(index)
# // If index changes redraw the image and info.
draw_tp_image(index)
draw_tp_info(index)
end
end # END OF FILE
#=*==========================================================================*=#
# ** END OF FILE
#=*==========================================================================*=#
Lors de la téléportation j'ai choisi d'afficher une animation. Je voudrais savoir si c'est possible que durant cette animation le Héros devienne transparent et retrouve son opacité quand l'animation est finie.
Voilà merci d'avance.
Re: [Résolu]Légère modification script : transparence héros durant animation
Sam 28 Juil 2012 - 17:50
Dans animation, il y a une option pour cacher la cible, donc le héros
- LunriMembre
- Nombre de messages : 675
Age : 33
Distinction : aucune
Date d'inscription : 31/07/2011
Re: [Résolu]Légère modification script : transparence héros durant animation
Sam 28 Juil 2012 - 21:35
Ah oué j'avais jamais fait attention.
Merci
Merci
Re: [Résolu]Légère modification script : transparence héros durant animation
Sam 28 Juil 2012 - 21:42
Y a pas de quoi, puis au pire, t'aurais toujours pu via la commande déplacer un event, rendre le héros invisible (ou activer la transparence du héros si tes sur Ace)
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum