Jump to content
Rpg²S Forum

Grawel

Utenti
  • Posts

    447
  • Joined

  • Last visited

Posts posted by Grawel

  1. avrei bisogno di un aiutino ho questo script

     

    #------------------------------------------------------------------------------#
    # Galv's Jump Ability
    #------------------------------------------------------------------------------#
    # For: RPGMAKER VX ACE
    # Version 1.6
    #------------------------------------------------------------------------------#
    # 2013-06-02 - Version 1.6 - fixed a bug with region block jumping
    # 2013-03-14 - Version 1.5 - fixed priority bug when jumping behind things
    # - cleaned up code a bit
    # 2013-01-15 - Version 1.4 - added follower jumping
    # 2013-01-11 - Version 1.3 - added ability to make event pages block jumping
    # 2012-12-05 - Version 1.2 - fixed some more bugs
    # 2012-11-30 - Version 1.1 - fixed jumping in vehicles bug
    # 2012-11-29 - Version 1.0 - release
    #------------------------------------------------------------------------------#
    # This script allows the player to jump with the press of a button. The player
    # will jump as far as their max distance will take them without landing on a
    # blocked tile. Use regions to block players jumping completely to prevent the
    # player from doing things like jumping between rooms.
    #------------------------------------------------------------------------------#
    # INSTRUCTIONS:
    # Put script under Materials and above Main
    # Read options and settings below.
    #------------------------------------------------------------------------------#

    #------------------------------------------------------------------------------#
    # COMMENT FOR EVENT (Must be first event command)
    #------------------------------------------------------------------------------#
    #
    #
    #
    # add this comment as the first event command of a page to make it unable to
    # be jumped over. Change the page to a new event page without the comment when
    # you want it to be jumpable.

    #------------------------------------------------------------------------------#
    # NOTETAG FOR ACTORS, ARMORS, WEAPONS
    #------------------------------------------------------------------------------#
    #
    # # Adds that many tiles to jump distance
    #
    #------------------------------------------------------------------------------#
    # Only the jump bonus for the party leader and his/her equips are calculated
    #------------------------------------------------------------------------------#
    # SCRIPT CALL:
    # You can change an actor's jump bonus (that was set with the notetag) during
    # the game with a script call:
    #
    # jump_bonus(actor_id,jump_bonus)
    #
    # EXAMPLE:
    # jump_bonus(3,2) # Changes actor 3's jump bonus to 2
    #------------------------------------------------------------------------------#

    ($imported ||= {})["Galvs_Jump_Ability"] = true
    module Galv_Jump

    #------------------------------------------------------------------------------#
    # SCRIPT SETUP OPTIONS
    #------------------------------------------------------------------------------#

    DISABLE_SWITCH = 1 # Cannot jump when this switch is ON

    BUTTON = :X # Button to press to jump. :X is "a" key.

    DEFAULT_DISTANCE = 2 # Distance player can jump with no bonuses
    SPRINT_BONUS = 1 # Distance increased with a running jump

    JUMP_SE = ["Jump2", 50, 120]

    MAX_JUMP_BONUS = 3 # The maximum bonus you can get from equips/actors

    NO_JUMP_REGIONS = [1,2,3] # Region ID's that the player cannot jump over

    #------------------------------------------------------------------------------#
    # END SCRIPT SETUP OPTIONS
    #------------------------------------------------------------------------------#

    end

    class RPG::BaseItem
    def jump_bonus
    if @jump_bonus.nil?
    if @note =~ //i
    @jump_bonus = $1.to_i
    else
    @jump_bonus = 0
    end
    end
    @jump_bonus
    end
    end # RPG::BaseItem


    class Game_Player < Game_Character
    attr_accessor :priority_type

    alias galv_jump_player_initialize initialize
    def initialize
    galv_jump_player_initialize
    @jump_equip_bonus = 0
    end

    alias galv_jump_player_refresh refresh
    def refresh
    get_jump_equip_bonus
    galv_jump_player_refresh
    end

    def get_jump_equip_bonus
    bonus = 0 + $game_party.leader.jump_bonus
    $game_party.leader.equips.each { |eq| bonus += eq.jump_bonus if !eq.nil?}
    @jump_equip_bonus = [bonus,Galv_Jump::MAX_JUMP_BONUS].min
    end

    alias galv_jump_move_by_input move_by_input
    def move_by_input
    return if jumping?
    @priority_type = 1 if !jumping?
    galv_jump_move_by_input
    if !$game_switches[Galv_Jump::DISABLE_SWITCH] && Input.trigger?(Galv_Jump::BUTTON)
    do_jump if !$game_map.interpreter.running? && !jumping? && normal_walk?
    end
    end

    def do_jump
    get_bonuses
    @distance = Galv_Jump::DEFAULT_DISTANCE + @jump_bonus
    check_region
    check_distance
    if @can_jump
    RPG::SE.new(Galv_Jump::JUMP_SE[0], Galv_Jump::JUMP_SE[1], Galv_Jump::JUMP_SE[2]).play
    jump(@jump_x, @jump_y)
    @followers.each { |f| f.jump(@x - f.x, @y - f.y) }
    end
    end

    def get_bonuses
    @jump_bonus = 0 + @jump_equip_bonus
    @jump_bonus += Galv_Jump::SPRINT_BONUS if dash? && moving?
    end

    def check_region
    @max_x = 0
    @max_y = 0
    case @direction
    when 2
    @max_y = @distance
    (@distance+1).times { |i| return @max_y = i if stopper?(@x, @y+i+1) }
    when 4
    @max_x = -@distance
    (@distance+1).times { |i| return @max_x = -i if stopper?(@x-i-1, @y) }
    when 6
    @max_x = @distance
    (@distance+1).times { |i| return @max_x = i if stopper?(@x+i+1, @y) }
    when 8
    @max_y = -@distance
    (@distance+1).times { |i| return @max_y = -i if stopper?(@x, @y-i-1) }
    end
    end

    def stopper?(x,y)
    Galv_Jump::NO_JUMP_REGIONS.include?($game_map.region_id(x,y)) ||
    !$game_map.stopper_event?(x,y)
    end

    def canpass?(x,y)
    map_passable?(x, y, @direction) &&
    $game_map.blocking_event?(x,y) ||
    Galv_Jump::NO_JUMP_REGIONS.include?($game_map.region_id(x,y))
    end

    def check_distance
    @jump_x = 0
    @jump_y = 0
    ch = []
    @can_jump = true

    case @direction
    when 2
    @jump_y = @distance
    @distance.times { |i| ch << @jump_y - i if canpass?(@x, @y + @jump_y - i) }
    ch.delete_if {|x| x > @max_y }
    @jump_y = ch.max if !ch.empty?
    when 4
    @jump_x = -@distance
    @distance.times { |i| ch << @jump_x + i if canpass?(@x + @jump_x + i, @y) }
    ch.delete_if {|x| x < @max_x }
    @jump_x = ch.min if !ch.empty?
    when 6
    @jump_x = @distance
    @distance.times { |i| ch << @jump_x - i if canpass?(@x + @jump_x - i, @y) }
    ch.delete_if {|x| x > @max_x }
    @jump_x = ch.max if !ch.empty?
    when 8
    @jump_y = -@distance
    @distance.times { |i| ch << @jump_y + i if canpass?(@x, @y + @jump_y + i) }
    ch.delete_if {|x| x < @max_y }
    @jump_y = ch.min if !ch.empty?
    end
    if ch.empty?
    @jump_y = 0
    @jump_x = 0
    @can_jump = false
    end
    end

    def jump(x_plus, y_plus)
    @priority_type = 1.5
    super
    end
    end # Game_Player < Game_Character


    class Game_Map
    def blocking_event?(x,y)
    events_xy(x,y).each { |e| return false if e.priority_type == 1 }
    return true
    end

    def stopper_event?(x,y)
    events_xy(x,y).each { |e|
    next if e.list.nil?
    return false if e.list[0].code == 108 && e.list[0].parameters[0] == ""
    }
    return true
    end
    end # Game_Map


    class Game_Actor < Game_Battler
    attr_accessor :jump_bonus

    alias galv_jump_actor_initialize initialize
    def initialize(actor_id)
    galv_jump_actor_initialize(actor_id)
    @jump_bonus = $data_actors[actor_id].jump_bonus
    end
    end # Game_Actor < Game_Battler


    class Scene_Menu < Scene_MenuBase
    def return_scene
    $game_player.refresh
    super
    end
    end # Scene_Menu < Scene_MenuBase

    class Game_Interpreter
    def jump_bonus(actor,bonus)
    $game_actors[actor].jump_bonus = bonus
    $game_player.refresh
    end
    end # Game_Interpreter

     

    il problema è che funziona benissima apparte un particolare...riesco a saltare sui muri... come faccio a bloccarli?(non sono eventi) ma i muri quelli che nel database sono classificati come A4(muri).

  2. Grazie sieghart...altra domanda sempre medesimo argomento per le magie e per gli attacchi con i pugnali(doppio attacco?)

    in pratica vorrei le varie position sia per le skill che per le armi xk quella parte nella guida non l'ho capita un gran che scusa il disturbo.

  3. Ciao scusate rompo ancora volevo chiedere...io uso il BS di victor (http://victorscripts.wordpress.com/rpg-maker-vx-ace/battle-scripts/animated-battle/)

    Quando attacco il personaggio si muove normalmente verso il nemico e tira fuori l'arma(icon) fin qui tutto bene :smile:

    Ma se il mio personaggio usa un arco io non voglio che arriva li e gli da un colpo d'arco in faccia :sleep: sapete se c'è un modo per fare animazione attacco con arco?

    avevo visto online qualcosa un po di tempo fa ma non lo trovo più.

  4. Ciao volevo chiedere...ogni tipo di mappa (interno,esterno...) al massimo puo utilizzare 5 tileset, 4 dei quali modificabili...è possibile averne di più? oppure è possibile mettere un tile + grande di quelli che ci sono nel senso se ho trovato online 2 tile che mi servono metterli insieme e usarli?

  5. Spero che qualcuno posso aiutarmi :)

    Io sarei un programmatore ma anche se il ruby è simile al C faccio un po fatica a capirlo...modificare gli script riesco ma a ncora farne uno da solo no.

    Se qualcuno sa fare script io un idea c'è l'avrei pero è solo teorica perche come ho detto non sapendo usare il ruby purtroppo non so fino a che punto possa funzionare.

  6. Direi che il titolo si spiega da solo...

    Comunque vorrei uno script che mostri sulla schiena del chara l'icona l'arma equipaggiata ruotata di 90° in senso antiorario

    in modo che l'impugnatura dell'arma (angolo in basso a sinistra dell'icona) risulti,quando l'omino e di spalle sulla spalla destra

    (non importa se quando il chara è frontale non si vede)

  7. mi spiego meglio, ho copiato lo script ma quando cambio equip non vedo il cambiamento...immagino devo creare un chara con l'equip o comunque credo devo fare qualcosa che non so cosa se potete darmi un consiglio o una mano ve ne sarei grato e il mio gioco ne gioverebbe :)

    scusate il doppio post

×
×
  • Create New...