Jump to content
Rpg²S Forum

dosassj4

Utenti
  • Posts

    95
  • Joined

  • Last visited

Posts posted by dosassj4

  1. Ciao Holy87, quello l'avevo visto sul sito, c'è solo un problemino script non è proprio così come indicato da loro. Te lo posto per spiegarmi meglio:

     

     

     

    #==============================================================================
    #
    # ▼ Yanfly Engine Ace - Input Combo Skills v1.01
    # -- Last Updated: 2011.12.26
    # -- Level: Hard
    # -- Requires: n/a
    #
    #==============================================================================

    $imported = {} if $imported.nil?
    $imported["YEA-InputComboSkills"] = true

    #==============================================================================
    # ▼ Updates
    # =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
    # 2011.12.26 - Bug Fix: Crash when no action is performed.
    # 2011.12.22 - Started Script and Finished.
    #
    #==============================================================================
    # ▼ Introduction
    # =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
    # This script enables the usage of Input Combo Skills. When an Input Combo
    # Skill is activated by an actor, a list of the potential input attacks appears
    # on the side of the screen. The player then presses the various buttons listed
    # in the window and attacks will occur in a combo fashion. If a particular
    # attack combination is met, a special attack will occur.
    #
    #==============================================================================
    # ▼ 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.
    #
    # -----------------------------------------------------------------------------
    # Skill Notetags - These notetags go in the skill notebox in the database.
    # -----------------------------------------------------------------------------
    #
    #
    #
    #
    #
    # Makes the skill with these notetags to become potentially comboable. Replace
    # x with the ID of the skill you want the button to cause the skill to combo.
    # The combo skill will be usable even if the user has not learned the skill.
    # However, if the user is unable to use the skill due to a lack of resources,
    # then the skill will be greyed out. The skill can be inputted, but if the user
    # lacks the resources, it will not perform and the skill combo will break.
    #
    #
    # Sets the maximum number of inputs the player can use for this skill. If this
    # tag is not present, it will use the default number of maximum inputs that's
    # pre-defined by the module.
    #
    #
    # If the player inputs a sequence that matches the string (any combination of
    # L, R, X, Y, Z), then the special skill x will be performed. If a combination
    # is met, then the combo chain will end prematurely even if there are more
    # inputs left. If the user does not know skill x, then the special combo skill
    # x will not be performed.
    #
    #
    # This makes a skill only usable in a combo and cannot be directly used from a
    # skill menu. This effect does not affect monsters. Combo skills will still be
    # unusable if the user does not meet the skill's other requirements (such as a
    # lack of MP or TP).
    #
    #==============================================================================
    # ▼ Compatibility
    # =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
    # This script is made strictly for RPG Maker VX Ace. It is highly unlikely that
    # it will run with RPG Maker VX without adjusting.
    #
    # While this script doesn't interfere with Active Chain Skills, it will most
    # likely be unable to used in conjunction with Active Chain Skills. I will not
    # provide support for any errors that may occur from this, nor will I be
    # responsible for any damage doing this may cause your game.
    #
    #==============================================================================

    module YEA
    module INPUT_COMBO

    #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
    # - Combo Skill Settings -
    #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
    # These settings adjust the sound effect played when a skill is selected,
    # what the minimum time windows are.
    #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
    # This will be the sound effect played whenever an active combo skill has
    # been selected for comboing.
    INPUT_COMBO_SOUND = RPG::SE.new("Skill2", 80, 100)

    # This will be the sound effect played when an input combo matches and
    # activates a specialized combo.
    ACHIEVED_COMBO_SOUND = RPG::SE.new("Skill3", 90, 100)

    # How many frames minimum for combo allowance. Sometimes the battlelog
    # window will move too fast for the player to be able to combo. This sets
    # a minimum timer for how long the combo window will stay open.
    MINIMUM_TIME = 90

    # This is the bonus number of frames of leeway that the player gets for
    # a larger input sequence. This is because the battlelog window may move
    # too fast for the player to be able to combo. This adds to the minimum
    # timer for how long the combo window will stay open.
    TIME_PER_INPUT = 30

    # This sets the default number of inputs that a combo skill can have at
    # maximum. If you wish to exceed this amount or to have lower than this
    # amount, use a notetag to change the skill's max combo amount.
    DEFAULT_MAX_INPUT = 5

    # This will be the "Window" colour used for a special skill in the display.
    SPECIAL_SKILL_COLOUR = 17

    #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
    # - Combo Skill Text -
    #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
    # This section adjusts the text that appears for the combo skills. Adjust
    # the text to appear as you see fit. Note that the vocab other than the
    # title can use text codes.
    #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
    COMBO_TITLE = "Input Combo Attacks"
    TITLE_SIZE = 20
    L_SKILL_ON = "\eC[17]Q\eC[0]: "
    L_SKILL_OFF = "\eC[7]Q: "
    R_SKILL_ON = "\eC[17]W\eC[0]: "
    R_SKILL_OFF = "\eC[7]W: "
    X_SKILL_ON = "\eC[17]A\eC[0]: "
    X_SKILL_OFF = "\eC[7]A: "
    Y_SKILL_ON = "\eC[17]S\eC[0]: "
    Y_SKILL_OFF = "\eC[7]S: "
    Z_SKILL_ON = "\eC[17]D\eC[0]: "
    Z_SKILL_OFF = "\eC[7]D: "

    end # INPUT_COMBO
    end # YEA

    #==============================================================================
    # ▼ Editting anything past this point may potentially result in causing
    # computer damage, incontinence, explosion of user's head, coma, death, and/or
    # halitosis so edit at your own risk.
    #==============================================================================

    module YEA
    module REGEXP
    module SKILL

    COMBO_MAX = /<(?:COMBO_MAX|combo max):[ ](\d+)>/i
    COMBO_ONLY = /<(?:COMBO_ONLY|combo only)>/i
    COMBO_SKILL = /<(?:COMBO_SKILL|combo skill)[ ]([LRXYZ]):[ ](\d+)>/i
    COMBO_SPECIAL = /<(?:COMBO_SPECIAL|combo special)[ ](.*):[ ](\d+)>/i

    end # SKILL
    end # REGEXP
    end # YEA

    #==============================================================================
    # ■ DataManager
    #==============================================================================

    module DataManager

    #--------------------------------------------------------------------------
    # alias method: load_database
    #--------------------------------------------------------------------------
    class < def self.load_database
    load_database_ics
    load_notetags_ics
    end

    #--------------------------------------------------------------------------
    # new method: load_notetags_ics
    #--------------------------------------------------------------------------
    def self.load_notetags_ics
    for skill in $data_skills
    next if skill.nil?
    skill.load_notetags_ics
    end
    end

    end # DataManager

    #==============================================================================
    # ■ RPG::Skill
    #==============================================================================

    class RPG::Skill < RPG::UsableItem

    #--------------------------------------------------------------------------
    # public instance variables
    #--------------------------------------------------------------------------
    attr_accessor :combo_only
    attr_accessor :combo_skill
    attr_accessor :combo_max
    attr_accessor :combo_special

    #--------------------------------------------------------------------------
    # common cache: load_notetags_ics
    #--------------------------------------------------------------------------
    def load_notetags_ics
    @combo_only = false
    @combo_skill = {}
    @combo_special = {}
    @combo_max = YEA::INPUT_COMBO::DEFAULT_MAX_INPUT
    #---
    self.note.split(/[\r\n]+/).each { |line|
    case line
    #---
    when YEA::REGEXP::SKILL::COMBO_ONLY
    @combo_only = true
    when YEA::REGEXP::SKILL::COMBO_SKILL
    case $1.upcase
    when "L"; @combo_skill[:L] = $2.to_i
    when "R"; @combo_skill[:R] = $2.to_i
    when "X"; @combo_skill[:X] = $2.to_i
    when "Y"; @combo_skill[:Y] = $2.to_i
    when "Z"; @combo_skill[:Z] = $2.to_i
    else; next
    end
    when YEA::REGEXP::SKILL::COMBO_MAX
    @combo_max = $1.to_i
    when YEA::REGEXP::SKILL::COMBO_SPECIAL
    @combo_special[$1.to_s.upcase] = $2.to_i
    #---
    end
    } # self.note.split
    #---
    end

    end # RPG::UsableItem

    #==============================================================================
    # ■ Game_Action
    #==============================================================================

    class Game_Action

    #--------------------------------------------------------------------------
    # new method: set_input_combo_skill
    #--------------------------------------------------------------------------
    def set_input_combo_skill(skill_id)
    set_skill(skill_id)
    @target_index = subject.current_action.target_index
    @input_combo_skill = true
    end

    #--------------------------------------------------------------------------
    # alias method: valid?
    #--------------------------------------------------------------------------
    alias game_action_valid_ics valid?
    def valid?
    subject.enable_input_combo(true) if @input_combo_skill
    result = game_action_valid_ics
    subject.enable_input_combo(false) if @input_combo_skill
    return result
    end

    end # Game_Action

    #==============================================================================
    # ■ Game_BattlerBase
    #==============================================================================

    class Game_BattlerBase

    #--------------------------------------------------------------------------
    # alias method: skill_conditions_met?
    #--------------------------------------------------------------------------
    alias game_battlerbase_skill_conditions_met_ics skill_conditions_met?
    def skill_conditions_met?(skill)
    return false if combo_skill_restriction?(skill)
    return game_battlerbase_skill_conditions_met_ics(skill)
    end

    #--------------------------------------------------------------------------
    # new method: combo_skill_restriction?
    #--------------------------------------------------------------------------
    def combo_skill_restriction?(skill)
    return false unless actor?
    return false unless $game_party.in_battle
    return false unless skill.combo_only
    return !@input_combo_enabled
    end

    #--------------------------------------------------------------------------
    # alias method: hp=
    #--------------------------------------------------------------------------
    alias game_battlerbase_hpequals_ics hp=
    def hp=(value)
    game_battlerbase_hpequals_ics(value)
    return unless SceneManager.scene_is?(Scene_Battle)
    return unless actor?
    return if value == 0
    SceneManager.scene.refresh_input_combo_skill_window(self)
    end

    #--------------------------------------------------------------------------
    # alias method: mp=
    #--------------------------------------------------------------------------
    alias game_battlerbase_mpequals_ics mp=
    def mp=(value)
    game_battlerbase_mpequals_ics(value)
    return unless SceneManager.scene_is?(Scene_Battle)
    return unless actor?
    return if value == 0
    SceneManager.scene.refresh_input_combo_skill_window(self)
    end

    #--------------------------------------------------------------------------
    # alias method: tp=
    #--------------------------------------------------------------------------
    alias game_battlerbase_tpequals_ics tp=
    def tp=(value)
    game_battlerbase_tpequals_ics(value)
    return unless SceneManager.scene_is?(Scene_Battle)
    return unless actor?
    return if value == 0
    SceneManager.scene.refresh_input_combo_skill_window(self)
    end

    end # Game_BattlerBase

    #==============================================================================
    # ■ Game_Battler
    #==============================================================================

    class Game_Battler < Game_BattlerBase

    #--------------------------------------------------------------------------
    # alias method: on_battle_start
    #--------------------------------------------------------------------------
    alias game_battler_on_battle_start_ics on_battle_start
    def on_battle_start
    game_battler_on_battle_start_ics
    @input_combo_enabled = false
    end

    #--------------------------------------------------------------------------
    # alias method: on_battle_end
    #--------------------------------------------------------------------------
    alias game_battler_on_battle_end_ics on_battle_end
    def on_battle_end
    game_battler_on_battle_end_ics
    @input_combo_enabled = false
    end

    #--------------------------------------------------------------------------
    # new method: enable_input_combo
    #--------------------------------------------------------------------------
    def enable_input_combo(active)
    return unless actor?
    @input_combo_enabled = active
    end

    end # Game_Battler

    #==============================================================================
    # ■ Window_ComboSkillList
    #==============================================================================

    class Window_ComboSkillList < Window_Base

    #--------------------------------------------------------------------------
    # initialize
    #--------------------------------------------------------------------------
    def initialize
    dw = [Graphics.width/2, 320].max
    super(-standard_padding, 0, dw, fitting_height(7))
    self.z = 200
    self.opacity = 0
    hide
    end

    #--------------------------------------------------------------------------
    # reveal
    #--------------------------------------------------------------------------
    def reveal(battler, skill)
    @battler = battler
    @skill = skill
    @combo_skills = []
    for key in skill.combo_skill
    next if key[1].nil?
    next if $data_skills[key[1]].nil?
    @combo_skills.push($data_skills[key[1]])
    end
    return if @combo_skills == []
    self.y = Graphics.height - fitting_height(4)
    self.y -= fitting_height(@combo_skills.size + 2)
    show
    activate
    refresh
    end

    #--------------------------------------------------------------------------
    # refresh_check
    #--------------------------------------------------------------------------
    def refresh_check(battler)
    return if @battler != battler
    refresh
    end

    #--------------------------------------------------------------------------
    # refresh
    #--------------------------------------------------------------------------
    def refresh
    contents.clear
    draw_background_colour
    draw_horz_line(0)
    draw_combo_title
    draw_horz_line(@combo_skills.size * line_height)
    draw_combo_skills
    end

    #--------------------------------------------------------------------------
    # draw_background_colour
    #--------------------------------------------------------------------------
    def draw_background_colour
    dh = line_height * (@combo_skills.size + 2)
    rect = Rect.new(0, 0, contents.width, dh)
    back_colour1 = Color.new(0, 0, 0, 192)
    back_colour2 = Color.new(0, 0, 0, 0)
    contents.gradient_fill_rect(rect, back_colour1, back_colour2)
    end

    #--------------------------------------------------------------------------
    # draw_horz_line
    #--------------------------------------------------------------------------
    def draw_horz_line(dy)
    line_y = dy + line_height - 2
    line_colour = normal_color
    line_colour.alpha = 48
    contents.fill_rect(0, line_y, contents.width, 2, line_colour)
    end

    #--------------------------------------------------------------------------
    # draw_combo_title
    #--------------------------------------------------------------------------
    def draw_combo_title
    reset_font_settings
    text = YEA::INPUT_COMBO::COMBO_TITLE
    contents.font.size = YEA::INPUT_COMBO::TITLE_SIZE
    contents.font.bold = true
    contents.font.italic = true
    draw_text(12, 0, contents.width - 12, line_height, text)
    reset_font_settings
    end

    #--------------------------------------------------------------------------
    # draw_combo_skills
    #--------------------------------------------------------------------------
    def draw_combo_skills
    button_array = [:L, :R, :X, :Y, :Z]
    dx = 24
    dy = line_height
    for button in button_array
    next if @skill.combo_skill[button].nil?
    combo_skill = $data_skills[@skill.combo_skill[button]]
    text = text_setting(button, combo_skill)
    text += sprintf("\eI[%d]", combo_skill.icon_index)
    text += combo_skill.name
    draw_text_ex(dx, dy, text)
    dy += line_height
    end
    end

    #--------------------------------------------------------------------------
    # text_setting
    #--------------------------------------------------------------------------
    def text_setting(button, skill)
    text = ""
    case button
    when :L
    if @battler.usable?(skill)
    text = YEA::INPUT_COMBO::L_SKILL_ON
    else
    text = YEA::INPUT_COMBO::L_SKILL_OFF
    end
    when :R
    if @battler.usable?(skill)
    text = YEA::INPUT_COMBO::R_SKILL_ON
    else
    text = YEA::INPUT_COMBO::R_SKILL_OFF
    end
    when :X
    if @battler.usable?(skill)
    text = YEA::INPUT_COMBO::X_SKILL_ON
    else
    text = YEA::INPUT_COMBO::X_SKILL_OFF
    end
    when :Y
    if @battler.usable?(skill)
    text = YEA::INPUT_COMBO::Y_SKILL_ON
    else
    text = YEA::INPUT_COMBO::Y_SKILL_OFF
    end
    when :Z
    if @battler.usable?(skill)
    text = YEA::INPUT_COMBO::Z_SKILL_ON
    else
    text = YEA::INPUT_COMBO::Z_SKILL_OFF
    end
    end
    return text
    end

    end # Window_ComboSkillList

    #==============================================================================
    # ■ Window_ComboInfo
    #==============================================================================

    class Window_ComboInfo < Window_Base

    #--------------------------------------------------------------------------
    # initialize
    #--------------------------------------------------------------------------
    def initialize
    super(0, 0, Graphics.width, fitting_height(1))
    self.y = Graphics.height - fitting_height(4) - fitting_height(1)
    self.opacity = 0
    self.z = 200
    @combos = []
    @special = nil
    hide
    end

    #--------------------------------------------------------------------------
    # reveal
    #--------------------------------------------------------------------------
    def reveal
    @combos = []
    @special = nil
    refresh
    show
    end

    #--------------------------------------------------------------------------
    # refresh
    #--------------------------------------------------------------------------
    def refresh
    contents.clear
    dx = draw_combo_icons
    draw_special(dx)
    end

    #--------------------------------------------------------------------------
    # add_combo
    #--------------------------------------------------------------------------
    def add_combo(icon, special = nil)
    @combos.push(icon)
    @special = special
    refresh
    end

    #--------------------------------------------------------------------------
    # draw_combo_icons
    #--------------------------------------------------------------------------
    def draw_combo_icons
    dx = 0
    for icon in @combos
    draw_icon(icon, dx, 0)
    dx += 24
    end
    return dx
    end

    #--------------------------------------------------------------------------
    # draw_special
    #--------------------------------------------------------------------------
    def draw_special(dx)
    return if @special.nil?
    draw_icon(@special.icon_index, dx + 12, 0)
    colour = text_color(YEA::INPUT_COMBO::SPECIAL_SKILL_COLOUR)
    change_color(colour)
    draw_text(dx + 36, 0, contents.width, line_height, @special.name)
    end

    end # Window_ComboInfo

    #==============================================================================
    # ■ Scene_Battle
    #==============================================================================

    class Scene_Battle < Scene_Base

    #--------------------------------------------------------------------------
    # alias method: create_all_windows
    #--------------------------------------------------------------------------
    alias scene_battle_create_all_windows_ics create_all_windows
    def create_all_windows
    scene_battle_create_all_windows_ics
    create_combo_skill_window
    end

    #--------------------------------------------------------------------------
    # new method: create_combo_skill_window
    #--------------------------------------------------------------------------
    def create_combo_skill_window
    @input_combo_skill_window = Window_ComboSkillList.new
    @input_combo_info_window = Window_ComboInfo.new
    @input_combo_skill_counter = 0
    end

    #--------------------------------------------------------------------------
    # alias method: use_item
    #--------------------------------------------------------------------------
    alias scene_battle_use_item_ics use_item
    def use_item
    @subject.enable_input_combo(true)
    item = @subject.current_action.item
    combo_skill_list_appear(true, item)
    start_input_combo_skill_counter(item)
    scene_battle_use_item_ics
    loop do
    break if break_input_combo?(item)
    update_basic
    update_combo_skill_queue
    end
    combo_skill_list_appear(false, item)
    @subject.enable_input_combo(false)
    end

    #--------------------------------------------------------------------------
    # new method: combo_skill_list_appear
    #--------------------------------------------------------------------------
    def combo_skill_list_appear(visible, skill)
    return if @subject.nil?
    return unless @subject.actor?
    return unless skill.is_a?(RPG::Skill)
    return if visible && @input_combo_skill_window.visible
    if visible
    @break_combo = false
    @current_combo_skill = skill
    @total_combo_skills = 0
    @combo_skill_queue = []
    @combo_skill_string = ""
    @input_combo_skill_window.reveal(@subject, skill)
    @input_combo_info_window.reveal
    else
    @input_combo_skill_window.hide
    @input_combo_info_window.hide
    return if @subject.current_action.nil?
    @subject.current_action.set_skill(@current_combo_skill.id)
    end
    end

    #--------------------------------------------------------------------------
    # new method: refresh_input_combo_skill_window
    #--------------------------------------------------------------------------
    def refresh_input_combo_skill_window(battler)
    return unless @input_combo_skill_window.visible
    @input_combo_skill_window.refresh_check(battler)
    end

    #--------------------------------------------------------------------------
    # new method: start_input_combo_skill_counter
    #--------------------------------------------------------------------------
    def start_input_combo_skill_counter(skill)
    return unless @input_combo_skill_window.visible
    @input_combo_skill_counter = YEA::INPUT_COMBO::MINIMUM_TIME
    bonus_time = skill.combo_max * YEA::INPUT_COMBO::TIME_PER_INPUT
    @input_combo_skill_counter += bonus_time
    end

    #--------------------------------------------------------------------------
    # new method: break_input_combo?
    #--------------------------------------------------------------------------
    def break_input_combo?(item)
    return true if @break_combo
    return true if @current_combo_skill.nil?
    return true if @current_combo_skill.combo_skill == {}
    return false if @combo_skill_queue != []
    return true if @total_combo_skills == @current_combo_skill.combo_max
    return @input_combo_skill_counter <= 0
    end

    #--------------------------------------------------------------------------
    # new method: update_combo_skill_queue
    #--------------------------------------------------------------------------
    def update_combo_skill_queue
    return if @combo_skill_queue == []
    action = @combo_skill_queue.shift
    if !@subject.usable?(action)
    @break_combo = true
    return
    end
    @subject.current_action.set_input_combo_skill(action.id)
    @log_window.clear
    execute_action
    end

    #--------------------------------------------------------------------------
    # alias method: update_basic
    #--------------------------------------------------------------------------
    alias scene_battle_update_basic_ics update_basic
    def update_basic
    scene_battle_update_basic_ics
    update_input_combo_skill_counter
    update_input_combo_skill_select
    end

    #--------------------------------------------------------------------------
    # new method: update_input_combo_skill_counter
    #--------------------------------------------------------------------------
    def update_input_combo_skill_counter
    return if @input_combo_skill_counter == 0
    @input_combo_skill_counter -= 1
    end

    #--------------------------------------------------------------------------
    # new method: update_input_combo_skill_select
    #--------------------------------------------------------------------------
    def update_input_combo_skill_select
    return unless @input_combo_skill_window.visible
    return if @total_combo_skills >= @current_combo_skill.combo_max
    if Input.trigger?(:L)
    check_input_combo_skill(:L)
    elsif Input.trigger?(:R)
    check_input_combo_skill(:R)
    elsif Input.trigger?(:X)
    check_input_combo_skill(:X)
    elsif Input.trigger?(:Y)
    check_input_combo_skill(:Y)
    elsif Input.trigger?(:Z)
    check_input_combo_skill(:Z)
    end
    end

    #--------------------------------------------------------------------------
    # new method: check_input_combo_skill
    #--------------------------------------------------------------------------
    def check_input_combo_skill(button)
    skill_id = @current_combo_skill.combo_skill[button]
    return if skill_id.nil?
    return if $data_skills[skill_id].nil?
    case button
    when :L; @combo_skill_string += "L"
    when :R; @combo_skill_string += "R"
    when :X; @combo_skill_string += "X"
    when :Y; @combo_skill_string += "Y"
    when :Z; @combo_skill_string += "Z"
    end
    if special_input_combo?
    icon = $data_skills[skill_id].icon_index
    @combo_skill_queue.push($data_skills[skill_id])
    skill_id = @current_combo_skill.combo_special[@combo_skill_string]
    combo_skill = $data_skills[skill_id]
    @input_combo_info_window.add_combo(icon, combo_skill)
    YEA::INPUT_COMBO::ACHIEVED_COMBO_SOUND.play
    @total_combo_skills = @current_combo_skill.combo_max
    else
    YEA::INPUT_COMBO::INPUT_COMBO_SOUND.play
    combo_skill = $data_skills[skill_id]
    @input_combo_info_window.add_combo(combo_skill.icon_index)
    @total_combo_skills += 1
    end
    @combo_skill_queue.push(combo_skill)
    return unless @total_combo_skills == @current_combo_skill.combo_max
    @input_combo_skill_counter = 0
    end

    #--------------------------------------------------------------------------
    # new method: special_input_combo?
    #--------------------------------------------------------------------------
    def special_input_combo?
    combo_hash = @current_combo_skill.combo_special
    return false unless combo_hash.include?(@combo_skill_string)
    skill = $data_skills[combo_hash[@combo_skill_string]]
    return @subject.skills.include?(skill)
    end

    end # Scene_Battle

    #==============================================================================
    #
    # ▼ End of File
    #
    #==============================================================================

    ;>

     

     

    Mi indichi di preciso dove mettere il numero? Purtroppo sono una capra come scripter. Il numero corrisponderebbe all'ID del database delle abilità, giusto?

    Dimenticavo, la seguenza combo, dove la inserisco? Grazie

  2. Salve a tutti. Mi sono imbattuto nello script "Input Combo Skill" (bellissimo), il quale sarebbe quello che cercavo per il mio gioco (vorrei realizzare un gioco sull'anime Sword Art Online - per chi non lo conoscesse è da provare). Il problema è che essendo ignorante in ambito script non saprei proprio da dove cominciare.
    Ho provato a copiare lo script sotto MATERIALI, ma manca decisamente qualcosa e non saprei proprio cosa. Posto lo script.Salve a tutti. Mi sono imbattuto nello script "Input Combo Skill" (bellissimo), il quale sarebbe quello che cercavo per il mio gioco (vorrei realizzare un gioco sull'anime Sword Art Online - per chi non lo conoscesse è da provare). Il problema è che essendo ignorante in ambito script non saprei proprio da dove cominciare.
    Ho provato a copiare lo script sotto MATERIALI, ma manca decisamente qualcosa e non saprei proprio cosa. Posto lo script.

     

    Link script: http://yanflychannel.wordpress.com/rmvxa/gameplay-scripts/input-combo-skills/

  3. Si, certo che è possibile!

    Ciao Holy87, ti ringrazio per avermi rassicurato, ma mi sapresti dire come? Ho provato a cercare ma non riesco a trovarlo, mi daresti una dritta? O magari hai un link dal quale posso estrapolare questa informazione? Grazie

     

    P.S.: Complimenti per la foto. È uno dei miei anime preferiti.

  4. Salve a tutti. Volevo sapere se e come era possibile cambiare la barra PV.

    In pratica vorrei utilizzare una barra hp personalizzata, è possibile sostituirla? In più mi chiedevo se era possibile togliere la Barra PM.

    Vorrei sapere se è possibile sia su BS classic che laterale.

     

    Grazie in anticipo

     

     

    P.S. Scusate ho sbagliato. Intendevo PV e PM.

  5. Salve a tutti, per inserire video in rpg maker vx le ho provate tutte e alla fine l'unico script che ha funzionato è questo:

     

     

     

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

    #

    # SOV ~ Videos

    #

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

    # Author: SuperOverlord

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

    # Features:

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

    # o Play video's on the map or in battle using a simple script event command.

    #

    # o Optionally pause or exit video's while they play.

    #

    # o View the video in the game window or in fullscreen.

    #

    # o Setup video skills, which show the video before damage effects.

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

    # Instructions:

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

    # o Place all videos in a folder with the same name as in configuration.

    # This folder is created automatically the first time the game is played if

    # it doesn't already exist.

    #

    # o Playing Videos when on the map.

    #

    # - See script calls below.

    #

    # o Playing videos in battle.

    #

    # - As when on the map the script event command can be used in battle also.

    #

    # - As well as this you can setup skills as video skills which display

    # a video before damaging the enemy.

    #

    # To do this the following tags can be used in the skills notebox:

    # 1) <video_name = "filename">

    # ~ name is the name of the video file. If the filename extension is

    # missing the first file matching that name is used.

    # (Quotes are necessary around the filename)

    #

    # As well as the first tag 2 others are available. These tags will only

    # take effect if placed on a line below the first tag.

    # If these don't exist they are assumed true.

    #

    # 2) <video_exitable = n> ~ Can the video be exited by the exit input?

    # 3) <video_pausable = n> ~ Can the video be paused?

    # ~ n is replaced with either t or f (t : true, f : false)

    #

    # For other Video properties (x,y,width,height,fullscreen) the default

    # settings are used. (See script calls below)

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

    # Script Calls:

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

    # Commands (From the script call command on page three of event commands)

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

    # o To change default values for video properties.

    #

    # 1) Video.default_x = n

    # 2) Video.default_y = n

    # 3) Video.default_width = n

    # 4) Video.default_height = n

    # 5) Video.fullscreen = bool

    #

    # In all 5 commands above:

    # ~ n is an integer value

    # ~ bool is either true or false

    #

    # o To play videos

    #

    # play_video(filename,exitable,pausable)

    # ~ filename : name of video file (Must be in quotes)

    # ~ exitable : Can the video be exited? (When left out = true)

    # ~ pausable : Can the video be paused? (When left out = true)

    #

    # For all other values the default's are used.

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

    # Compatibility:

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

    # o Skill videos will depend on the battle system but sould work.

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

    # Credit:

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

    # o Credit goes to Trebor and Berka whose scripts helped be figure out the

    # mci_send_stringA function.

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

     

    module SOV

    module Video

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

    # Configuration

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

    # Name of folder for videos to be held in.

    DIR_NAME = "Videos"

    # Exit video input

    EXIT_INPUT = Input::B

    # Pause video input

    PAUSE_INPUT = Input::R

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

    # End Configuration

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

    end

    end

     

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

    # Import

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

    $imported = {} if $imported == nil

    $imported['Videos'] = true

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

     

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

    # ** SOV::Video::Commands

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

     

    module SOV::Video::Commands

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

    # * Play a video

    # filename : video's filename (with or without extension)

    # exitable : Can the video be exited

    # pausable : Can the video be paused

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

    def play_video(filename,exitable=true,pausable=true)

    video = Cache.video(filename)

    video.exitable = exitable

    video.pausable = pausable

    if $game_temp.in_battle # In battle

    $scene.play_video(video)

    else # On map

    $game_map.video = video

    end

    end

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

    # Define as module function

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

    module_function :play_video

    end

     

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

    # ** SOV::Video::Regexp

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

     

    module SOV::Video::Regexp

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

    # * Skill

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

    module Skill

    FILENAME = /<video[_ ]?(?:file)?name = "(.+)">/i

    PAUSABLE = /<video[_ ]?paus(?:e|able) = (t|f)>/i

    EXITABLE = /<video[_ ]?exit(?:able)? = (t|f)>/i

    end

    end

     

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

    # ** SOV::Game

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

     

    module SOV::Game

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

    # Constants

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

    INI = 'Game'

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

    # * Get the game windows handle

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

    def self.hwnd

    unless defined?(@@hwnd)

    find_window = Win32API.new('user32','FindWindow','pp','i')

    @@hwnd = find_window.call('RGSS Player',title)

    end

    return @@hwnd

    end

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

    # * Get game title

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

    def self.title

    unless defined?(@@title)

    @@title = read_ini('title')

    end

    return @@title

    end

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

    # * Read ini (Returns nil or match)

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

    def self.read_ini(variable,filename=INI)

    reg = /^#{variable}=(.*)$/

    File.foreach(filename+'.ini') { |line| break($1) if line =~ reg }

    end

    end

     

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

    # ** Cache

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

     

    module Cache

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

    # Class Variables

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

    @@vcache = {}

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

    # Define as class methods

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

    class << self

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

    # Alias List

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

    alias sov_video_clear clear unless $@

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

    # * Get a video object

    # filename : basename of file

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

    def video(filename)

    # Get full filename if extension is missing

    if File.extname(filename) == ''

    files = Dir["#{SOV::Video::DIR_NAME}/#{filename}.*"]

    filename = File.basename(files[0]) # Set as first matching file

    end

    # Create or get the video object.

    if @@vcache.has_key?(filename)

    @@vcache[filename]

    else

    @@vcache[filename] = Video.new(filename)

    end

    end

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

    # * Clear

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

    def clear

    @@vcache.clear

    sov_video_clear

    end

    end

    end

     

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

    # ** RPG::Skill

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

     

    class RPG::Skill < RPG::UsableItem

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

    # * Determine if skill has a video skill

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

    def video

    if @video == nil

    @note.each_line { |line|

    if @video == nil

    @video = Cache.video($1) if line =~ SOV::Video::Regexp::Skill::FILENAME

    else

    @video.pausable = ($1 == 't') if line =~ SOV::Video::Regexp::Skill::PAUSABLE

    @video.exitable = ($1 == 't') if line =~ SOV::Video::Regexp::Skill::EXITABLE

    end

    }

    @video = :invalid if @video == nil

    end

    return @video

    end

    end

     

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

    # ** Video

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

    # Class handling playing videos.

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

     

    class Video

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

    # Constants

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

    TYPE_AVI = 'avivideo'

    TYPE_MPEG = 'mpegvideo'

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

    # Class Variables

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

    @@default_x = 0

    @@default_y = 0

    @@default_width = Graphics.width

    @@default_height = Graphics.height

    @@fullscreen = false

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

    # * Get and Set default_x/y/width/height

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

    for d in %w(x y width height)

    # Define setter method

    module_eval(%Q(def self.default_#{d}=(i); @@default_#{d} = i; end))

    # Define getter method

    module_eval(%Q(def self.default_#{d}; @@default_#{d}; end))

    end

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

    # * Get fullscreen

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

    def self.fullscreen

    @@fullscreen

    end

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

    # * Set fullscreen

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

    def self.fullscreen=(val)

    @@fullscreen = val

    end

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

    # * Win32API

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

    @@mciSendStringA = Win32API.new('winmm','mciSendStringA','pplp','i')

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

    # * Video Command

    # command_string : string following mci_command_string format

    # buffer : string to retrieve return data

    # buffer_size : number of characters in buffer

    # callback_handle : handle of window to callback to. Used if notify is used

    # in the command string. (Not supported by game window)

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

    def self.send_command(cmnd_string,buffer='',buffer_size=0,callback_handle=0)

    # Returns error code. No error if NULL

    err = @@mciSendStringA.call(cmnd_string,buffer,buffer_size,callback_handle)

    if err != 0

    buffer = ' ' * 255

    Win32API.new('winmm','mciGetErrorString','LPL','V').call(err,buffer,255)

    raise(buffer.squeeze(' ').chomp('\000'))

    end

    end

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

    # * Play a video

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

    def self.play(video)

    # Make path and buffer

    path = "#{SOV::Video::DIR_NAME}/#{video.filename}"

    buffer = ' ' * 255

    # Initialize device and dock window with game window as parent.

    type = " type #{video.type}" if video.type != ''

    send_command("open #{path}#{type} alias VIDEO style child parent #{SOV::Game.hwnd}")

    # Display video in client rect at x,y with width and height.

    x = video.x

    y = video.y

    width = video.width

    height = video.height

    send_command("put VIDEO window at #{x} #{y} #{width} #{height}")

    # Begin playing video

    screen = @@fullscreen ? 'fullscreen' : 'window'

    send_command("play VIDEO #{screen}")

    # Start Input and status processing loop

    while buffer !~ /^stopped/

    # Idle processing for a frame

    sleep(1.0/Graphics.frame_rate)

    # Get mode string

    send_command('status VIDEO mode',buffer,255)

    Input.update

    if Input.trigger?(SOV::Video::PAUSE_INPUT) and video.pausable?

    Sound.play_cursor

    if buffer =~ /^paused/ # If already paused

    send_command("resume VIDEO") # Resume video

    else # Otherwise

    send_command("pause VIDEO") # Pause video

    end

    elsif Input.trigger?(SOV::Video::EXIT_INPUT) and video.exitable?

    Sound.play_cancel

    # Terminate loop on exit input

    break

    end

    end

    # Terminate the device

    send_command('close VIDEO')

    end

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

    # Public Instance Variables

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

    attr_accessor :x

    attr_accessor :y

    attr_accessor :width

    attr_accessor :height

    attr_writer :exitable

    attr_writer :pausable

    attr_reader :filename

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

    # * Initialize

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

    def initialize(filename)

    unless FileTest.file?("#{SOV::Video::DIR_NAME}/#{filename}")

    raise(Errno::ENOENT,filename)

    end

    @filename = filename

    @x = @@default_x

    @y = @@default_y

    @width = @@default_width

    @height = @@default_height

    @exitable = true

    @pausable = true

    end

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

    # * Get Type

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

    def type

    if @type == nil

    case File.extname(@filename)

    when '.avi'; @type = TYPE_AVI

    when '.mpeg'||'.mpg'; @type = TYPE_MPEG

    else

    @type = ''

    end

    end

    @type

    end

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

    # * Is the video exitable?

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

    def exitable?

    @exitable

    end

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

    # * Is the video pausable?

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

    def pausable?

    @pausable

    end

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

    # Access

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

    private_class_method :send_command

    end

     

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

    # ** Game_Interpreter

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

     

    class Game_Interpreter

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

    # Import

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

    include(SOV::Video::Commands)

    end

     

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

    # ** Game_Map

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

     

    class Game_Map

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

    # Public Instance Variables

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

    attr_accessor :video

    end

     

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

    # ** Scene_Map

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

     

    class Scene_Map

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

    # Alias List

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

    alias sov_video_update update unless $@

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

    # * Play Video

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

    def play_video(video)

    # Memorize and stop current bgm and bgs

    bgm = RPG::BGM.last

    bgs = RPG::BGS.last

    RPG::BGM.stop

    RPG::BGS.stop

    # Play video

    Video.play(video)

    # Restart bgm and bgs

    bgm.play

    bgs.play

    end

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

    # * Update

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

    def update

    if $game_map.video != nil

    play_video($game_map.video)

    $game_map.video = nil

    Input.update

    else

    sov_video_update

    end

    end

    end

     

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

    # ** Scene_Battle

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

     

    class Scene_Battle

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

    # * Alias list

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

    alias sov_video_execute_action_skill execute_action_skill unless $@

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

    # * Play Video

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

    def play_video(video)

    # Memorize and stop current bgm

    bgm = RPG::BGM.last

    RPG::BGM.stop

    # Play video

    Video.play(video)

    # Restart bgm

    bgm.play

    end

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

    # * Execute Action Skill

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

    def execute_action_skill

    skill = @active_battler.action.skill

    if skill.video.is_a?(Video)

    execute_action_video(skill)

    else

    sov_video_execute_action_skill

    end

    end

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

    # * Execute Action Video

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

    def execute_action_video(skill)

    text = @active_battler.name + skill.message1

    @message_window.add_instant_text(text)

    unless skill.message2.empty?

    wait(10)

    @message_window.add_instant_text(skill.message2)

    end

    wait(20)

    @message_window.clear

    #Fadout to black screen

    br = Graphics.brightness

    120.times { |i| Graphics.brightness = 255 - 255/60 * i; Graphics.update }

    # Play video

    play_video(skill.video)

    #Reset brightness

    Graphics.brightness = br

    targets = @active_battler.action.make_targets

    display_animation(targets, skill.animation_id)

    @active_battler.mp -= @active_battler.calc_mp_cost(skill)

    $game_temp.common_event_id = skill.common_event_id

    for target in targets

    target.skill_effect(@active_battler, skill)

    display_action_effects(target, skill)

    end

    end

    end

     

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

    # Pre-Main Processing

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

     

    unless FileTest.directory?(SOV::Video::DIR_NAME) # If directory doesn't exist.

    Dir.mkdir(SOV::Video::DIR_NAME) # Make the directory

    end

     

     

     

    Adesso vorrei chiedervi: come posso fare affinchè un video in lotta (associato ad una skill naturalmente) possa partire mentre i chara nella lotta ancora si muovono con le loro idle stance(uso lo YEM)?

    Questo perchè il video ci mette tipo un secondo buono per partire... quindi ho un secondo in cui è tutto bloccato e POI parte il video...è piuttosto fastidioso XD

     

     

    Ciao cip se non ho capito male vuoi creare un video che copra l'attacco, giusto? Il video deve essere l'animazione della skill? Se è così, io volevo fare la stessa cosa solo che non il video veniva male, allora ho risolto con un metodo non troppo difficile ma lungo.

    In pratica ho preso il video;

    diviso per frame; (15/s)

    ho rimpicciolito le immagini tutte a 191x191;

    con un programma editor di immagini (ho usato paint net, anche per rimpicciolirle) le ho prese ed incollate su una foto già presente nel programma RPG MAKER (una qualsiasi di quelle relative alle animazioni delle skill) una di seguito all'altra;

    fatto questo ho aggiunto la foto modificata al programma ed ho montato l'animazione con audio preventivamente estratto dal video.

     

    So che il tutto è molto lungo ma posso assicurarti che se fatto con calma esce molto bene.

     

    Ti do un link di un progetto base con una mia animazione http://www.mediafire.com/?h6g3det6lrau3el

     

    Fai partire il gioco e tra le abilità del 1° pg troverai "BANKAI" selezionalo ed io gioco e fatto.

     

    Spero di esserti stato utile Ciriciao

     

    P.S.: Puoi anche farci un attacco o qualsiasi altra cosa.

  6. Herm... non è che hai spiegato molto... ti ho chiesto se è il bs di default e non mi hai dato risposta, nel primo post è spiegato da cani.

    Inoltre, sono abbastanza bravo nella programmazione ad eventi ma con gli script non ci so fare... se sei capace di mettere le mani sugli script allora devi cercarti tutti quelli sul bs, trovare la parte della visualizzazione dei danni. Poi non so che altro fare. D:

     

    Guarda che stavo scherzando...

     

    Cmq il bs è quello di default.

     

    Per la spiegazione mi dispiace non esser stato abbastanza chiaro, ma se non mi ero spiegato bene bastava dirlo che avrei cercato di fare meglio.

     

    Per combo intendo che nel corso di un attacco metto a segno un determinato numero di colpi in base all'animazione, per esempo se uso l'animazione Melee/Special2 associata ad un attacco di spada, vedrai che i colpi portati a segno saranno pari a 1, ma secondo l'animazione dovrebbero essere 3 o 4. Vorrei che il numero di colpi portati a segno fossero gli stessi di quelli presentati dall'animazione, quindi 4 colpi portati a segno = 4 colpi di animazione.

     

    Se non sono riuscito a rendere più chiara la mia richiesta fatemelo sapere.

     

    :-)

  7. Mmmm... è il bs di default, giusto?

     

    Bhe, io non ho una grande esprienza sul modificare il bs normale, però penso che dovrai mettere le mani sugli script riguardanti il bs...

    Io di script ne so poco o nulla, quindi sono completamente inutile! XD

     

    Ti ringrazio cmq per lo sforzo che hai fatto per dirmi questo... :sisi:

     

    Ovviamente scherzo XD

  8. Ciao a tutti.

     

    Volevo sapere, è possibile creare un attacco combo? In pratica ho associato ad un attacco multiplo ad un arciere, con animazione Melee/Special2, mi piacerebbe colpire il nemico per il numero di volte che viene colpito dall'animazione, quindi se l'animazione da 10 colpi, vorrei visualizzare sullo schermo per 10 volte il danno inflitto per ogni colpo quantificandolo anche in numero di combo.

     

    Grazie

  9. Common Event con Parallel Process.

     

    http://img541.imageshack.us/img541/8817/22046440.png

     

     

    Ciao Heisenman, ti ringrazio non ho seguito il tuo suggerimento alla lettera ma grazie a te ci sono riuscito.

    Questo è quello che ho fatto:

    - ho creato quanto detto precendentemente (cioè un evento comune...)

    - dopo aver fatto questo ho creato sulla mappa un evento con all'interno Condizione se A è premuto chiama evento comune "supervelocità" (nel mio caso);

    - dopo questo ho impostato sempre nello stesso evento " obiettivo : processo parallelo".

    Facendo come detto da Heisenman non faceva altro che aumentare la velocità.

    Cmq ringrazio Morshudiego - Heisenman - Hash'ak'Gik - Guardian of Irael per i consigli e la disponibilità

    SEMPRE GENTILISSIMI

  10. Se ci fai caso puoi utilizzare anche le variabili non per forza la destinazione specifica, a quel punto se ti calcoli le coordinate del player e gli aggiungi un valore di quanto lo vuoi far muovere in una certa direzione ottieni un movimento stile tasti direzionali da qualunque punto a qualunque punto.

    ^ ^

     

     

    Ciao Guardian non sono capace di utilizzare variabili o calcolare quanto mi hai suggerito, cmq ho provato a fare quello che mi hai detto e non sono riuscito (ovviamente per mia incompetenza).

    Non esiste qualcosa di più semplice?

    Guardian se non ti disturba, mi riscrivi quanto mi hai suggerito spiegandomi passo passo come fare?

     

    Grazie mille in qualunque caso.

     

    Ciao a tutti alla fine ho trovato come scomparire accelerare e ricomparire, in pratica:

    - sono andato su eventi comuni;

    - ne prendi uno in bianco ed imposti Cambia Trasparenza : Trasparente;

    - poi inserisci imposta percorso movimento : velocità faster, 4 passi e velocità normale;

    - cambia trasparenza : normale.

    Più o meno come diceva Morshudiego.

    Adesso l'ultima cosa che non so fare e che chiedo nuovamente è :

    Come si lega un pulsante ad un evento?

    Immagino si faccia tramite script ma come già detto sono ignorante in materia.

     

    Grazie

  11. Ma scusatemi, mettete i due metodi insieme!

     

    Fai sparire la grafica del player, lo teletrasporti (anche se c'è il fade non si vede), fai riapparire il player...

     

    Per assegnare un particolare movimento ai tasti ho fatto una demo, è per XP ma se puoi aprirla apprendi molti trucchetti base per il movimento tramite eventi (salti, corse, movimenti invertiti, controllo di NPC, ecc.)

     

    http://www.rpg2s.net/forum/index.php?showtopic=12395

    (Considerando che ancora nessuno ha risposto dovrei fare anche una demo per 2k e per VX e scrivere il tutorial, ma non ho tempo ç.ç )

     

     

    Ciao Hash se faccio con il teletrasporto devo dare una destinazione specifica mentre quello che vorrei io è riuscire a farlo muovere a supervelocità per 4-5 passi con la sparizione nel mezzo per dare l'effetto che si vede in bleach quando usano lo Shunpo. Grazie cmq per il consiglio.

  12. Potresti fare in questa maniera:

    Rendi il player trasparente e fantasma, crei un'animazione che dia un effetto di scomparsa e la attivi non appena il personaggio è trasparente, aumenti la sua velocità e lo sposti nella posizione desiderata, poi riattivi l'animazione e lo fai ricomparire.

     

    Sono scabroso a parole, se vuoi ti faccio una demo.

     

     

    Ciao Morshudiego, avevo pensato una cosa del genere ma non so come accelerare il movimento e come unire il tutto ad un pulsante; mi sapresti aiutare?

    Non volevo disturbarti troppo nel farti fare una demo.

  13. Salve a tutti.

     

    Volevo sapere se è possibile riuscire ad utilizzare una supervelocità stile dragon ball o Bleach, dove l'immagine del personaggio scompare per riapparire più avanti, il tutto non durante la battaglia ma durante gli postamenti in mappa.

    In più questa abilità deve essere associata ad un pulsante diverso.

     

    Vi ringrazio anticipatamente per qualsiasi suggerimento

     

    P.S.: Se non ricordo male c'è uno script che ti permette di saltare, in pratica qualcosa di simile, solo che non deve saltare ma scomparire frammentando l'immagine del personaggio, ripeto un po' come dragon ball o bleach.

  14. Non sono sicuro, ma credo che si possano indicare più tipi diversi di slip damage, scrivendo il tag apposito per ciascuno nelle note di quello status . . .

     

    Adesso non so se le note possano essere scritte su più righe, in tal caso basta segnalare ogni effetto su una riga differente . . .

     

    Se invece c'è una riga sola per le note degli status, basta separarli con il codice \n, ad esempio

    <slip MP -5%>n<slip MP -1, 10>

     

    Come sempre, è solo un'ipotesi non testata, da provare a proprio rischio . . .

     

     

     

    Ciao Giver ho provato e avevi ragione + o -, in pratica nelle note mi è bastato scrivere <slip MP -1, -10>, in questo modo mi toglie 1 MP per turno in battaglia e 10 MP per passo fuori battaglia.

    Grazie mille

  15. Salve ragazzi ho un'altra domanda su questo script.

    Il PG che si trova sotto l'influenza di questo status, quando cammina non perde MP.

    La mia domanda è:

    è possibile fare in modo che venga influenzato dagli effetti di questo status anche al di fuori della battaglia? Cioè mentre cammina? (esattamente come fa lo status veleno che influgge danni sia durante la battaglia che al di fuori)

    In pratica voglio fare in modo che perda MP sia in battaglia sia fuori durante la passeggiata.

    Grazie in anticipo

×
×
  • Create New...