Mundo Maker
¡Bienvenid@ a Mundo Maker!

¿Quieres aprender todo sobre el RPG Maker?



Regístrate y forma parte de Mundo Maker.
Conectarse

Recuperar mi contraseña

Temas importantes
----------------------------------------
Páginas con recursos RPG Maker
----------------------------------------
----------------------------------------
----------------------------------------
----------------------------------------
----------------------------------------
----------------------------------------
----------------------------------------
----------------------------------------
----------------------------------------
Afiliados
Estadísticas
Tenemos 4133 miembros registrados.
El último usuario registrado es Neysersitoh.

Nuestros miembros han publicado un total de 84767 mensajes en 12064 argumentos.

Compatibilidad de estos dos Scripts ?

Ver el tema anterior Ver el tema siguiente Ir abajo

RPG Maker VX ACE Compatibilidad de estos dos Scripts ?

Mensaje por DioArcangel el 2017-03-13, 02:55

Buenas amigos, por mas que he tratado no he logrado hacer funcionar el Falcao Pearl ABS Liquid v3 y el EatYourBeetS stealing script  v 1.0.3

La cuestión es que ambos en un poryecto no le permite al Jump Script hacer su función, el juego crashea en cuanto se toca la tecla de salto, hasta donde tengo entendido creo que es un problema con el Pixel Movemnt que viene en el Falcao..

Alguien tendrá una solución, me encanta ese script de Jump, ya que puedes usar regiones IDs...
O algún otro script, hasta el momento he probado los mas populares pero siempre entra en conflicto con el Falcao...

No quiero usar evento común...
avatar
DioArcangel
Soñador
Soñador

0/3

Créditos 226

Gracias : 5

Volver arriba Ir abajo

RPG Maker VX ACE Re: Compatibilidad de estos dos Scripts ?

Mensaje por orochii el 2017-03-13, 06:59

No sé, a mí me ha funcionado. He bajado el demo del Pearl ABS Liquid y pegado el script y ha funcionado.

(Claro, pegar ese script ha tomado rato porque por alguna razón el foro le ha quitado TODOS los saltos de línea -los "enters" dirían en mi casa xD- y he tenido que tirarme unos 10 minutos reacomodándolo :V. Aquí está el script por si alguien quiere ahorrarse la molestia (?) pero quiere probar.

Spoiler:
Código:
#=============================================================================##
#  EatYourBeetS stealing script  v 1.0.3
#
# -1.0.3: Added turn on spot while pressing a default key
# -1.0.2: Added Party Followers Jump and Sprite Change
# -1.0.1: Added Jump speed and Jump height
#
#
#  Desc: This script allow you to jump any time by pressing a button, you
#        can set Jump Button, Jump Se, and delay between jumps, as well
#        as regions and terrain tag which are always "unjumpable"
#        however the script already recognize most of the impassable tiles
#        the only ones not easily recognizable are vertical walls large 1 tile,
#        I suggest either using Region/TerrainTag or making walls large 2 tiles.
#
#  P.S:  The Keyboard_Full_input module can easily be accessed from other
#        scripts too, you are free to detach it from this script if you want.
##  *Free to use anywhere
#  *Credits: EatYourBeetS
#  *If you find bugs or have an idea about how to improve this,
#  please let me know!
#
#  I overwrited update_jump, just for the game_player class, not the events,
#  now you can set the jump speed
#
#=============================================================================
#
module Eat_Jump   
  JUMP_BUTTON = :space #Refer to the list below, it should cover ALL of the
                        #keyboard input buttons 
  JUMP_SE    = RPG::SE.new("Jump1", 60, 120) #("Sound.name", volume, pitch)   
  DELAY      = 25 #Delay between jumps(increase this if you use followers)   
  JUMP_HEIGHT = 10 #If you want your player to visit space set it higher!   
  JUMP_SPEED  = 1.0#Don't set it too high, unless you want to teleport   
  SPRITE      = 0  #If you want to change sprite while jumping change this
  #to the jumping sprite table, remember the "", otherwhise                   
  #leave it to 0                   
  TURN_ON_SPOT= :ctrl #the player will just turn on spot instead of moving if   
  #this button is being pressed, set it to nil if you don't                     
  #want this feature (remember that if you set this to                     
  #ctrl while playtesting you won't be able to pass through                     
  #wall, unless you jump in the meantime)                   
  JUMP_SWITCH = 20 #If this switch is off you can't jump   
  IMPASSABLE  = 50 #You can never jump over tiles with this region id   
  PASSABLE    = 51 #Viceversa   
  ALLOWED    = 52 #These tiles can be jumped over even when jump switch is off   
  TERRAINTAG  = 7  #You can never jump over tiles with this terrain tag, very   
  #useful for walls or trees   
  JUMP_DIST  = 2  #Not ready yet, leave it to 2
end

module Keyboard_Full_input   
  #Do not change these | | | | 
  #                    V V V V 
  CHECK = Win32API.new 'user32', 'GetAsyncKeyState', ['p'], 'i' 
  KEYS  = {
    :lmbutton => 0x01, :backspace => 0x08, :tab => 0x09, :enter => 0x0D, :shift => 0x10,
    :ctrl => 0x11, :alt => 0x12, :pause => 0x13, :caps => 0x14,           
    :escape => 0x1B, :space => 0x20, :pageup => 0x21, :pagedown => 0x22,
    :end => 0x23, :home => 0x24, :left => 0x25, :up => 0x26,           
    :right => 0x27, :down => 0x28, :print => 0x2C, :insert => 0x2D,           
    :delete => 0x2E,                     
    :N0 => 0x30, :N1 => 0x31, :N2 => 0x32, :N3 => 0x33, :N4 => 0x34,           
    :N5 => 0x35, :N6 => 0x36, :N7 => 0x37, :N8 => 0x38, :N9 => 0x39,             
    :A => 0x41, :B => 0x42, :C => 0x43, :D => 0x44, :E => 0x45, :F => 0x46, 
    :G => 0x47, :H => 0x48, :I => 0x49, :J => 0x4A, :K => 0x4B, :L => 0x4C,
    :M => 0x4D, :N => 0x4E, :O => 0x4F, :P => 0x50, :Q => 0x51, :R => 0x52,   
    :S => 0x53, :T => 0x54, :U => 0x55, :V => 0x56, :W => 0x57, :X => 0x58,       
    :Y => 0x59, :Z => 0x5A,       
    :F1 => 0x70, :F2 => 0x71, :F3 => 0x72, :F4 => 0x73, :F5 => 0x74, 
    :F6 => 0x75, :F7 => 0x76, :F8 => 0x77, :F9 => 0x78, :F10 => 0x79, 
    :F11 => 0x7A, :F12 => 0x7B,             
    :num => 0x90, :scroll => 0x91, :lshift => 0xA0, :rshift => 0xA1,     
    :lctrl => 0xA2, :rctrl => 0xA3, :lalt => 0xA4, :ralt => 0xA5,       
    :colon => 0xBa, :plus => 0xBB, :comma => 0xBC, :minus => 0xBD,     
    :period => 0xBE, :slash => 0xBF, :tilde => 0xC0, :lbrace => 0xDB, 
    :backslash => 0xDC, :rbrace => 0xDD, :quote => 0xDE
  }           
 
  def self.press?(symbol) 
    return true unless CHECK.call(KEYS[symbol]) == 0 
  end
end

#=============================================================================
class Scene_Map < Scene_Base
#Checks if conditions to jump are met
#============================================================================= 
  @@eat_jump_delay = 0
  #--------------------------------------------------------------------------
  # * Jump update                                    [ALIAS METHOD]
  #--------------------------------------------------------------------------
  alias eaty_jump_update update
  def update 
    eaty_jump_update
    if @@eat_jump_delay>0 
      @@eat_jump_delay-=1 
    elsif Keyboard_Full_input.press?(Eat_Jump::JUMP_BUTTON) 
      jump_call 
      @@eat_jump_delay=Eat_Jump::DELAY
    end
  end
  #--------------------------------------------------------------------------
  # * Jump call                                      [NEW METHOD]
  #--------------------------------------------------------------------------
  def jump_call
    return if !Keyboard_Full_input.press?(Eat_Jump::JUMP_BUTTON)
    $game_player.jumperino_check
  end
#=============================================================================
end # Scene_Map class end
#=============================================================================
class Game_Player < Game_Character 
#--------------------------------------------------------------------------
# * Jump check                                      [NEW METHOD]
#--------------------------------------------------------------------------
def jumperino_check
  return if $game_message.busy? || $game_message.visible
  n=Eat_Jump::JUMP_DIST
  d_up = self.direction
  d_do = 10-d_up
  d_le = eat_other_dir(d_up)
  d_ri = eat_other_dir(d_do)
  @jdx  = n*(eat_x_mov(d_up))
  @jdy  = n*(eat_y_mov(d_up))
  x_p2 = self.x + @jdx   
  y_p2 = self.y + @jdy   
  x_p1 = self.x + @jdx/n 
  y_p1 = self.y + @jdy/n 
  #-------------
  if $game_map.loop_horizontal?  #Check if looping map 
    x_p2=$game_map.round_x(x_p2) 
    x_p1=$game_map.round_x(x_p1)
  end
  if $game_map.loop_vertical?    #Check if looping map 
    y_p2=$game_map.round_y(y_p2) 
    y_p1=$game_map.round_y(y_p1)
  end 
  #-------------
  return if $game_switches[Eat_Jump::JUMP_SWITCH]==false &&         
    $game_map.region_id(x_p1, y_p1)!=Eat_Jump::ALLOWED
  #-------------
  v2 = total_pass(x_p2, y_p2, d_up, d_do, d_le, d_ri) #second tile ahead
  v1 = total_pass(x_p1, y_p1, d_up, d_do, d_le, d_ri) #first tile ahead
  if v1.include?(3) && !v2.include?(2) #v1 always jumpable?   
    self.eat_Jump_exec(@jdx,@jdy)
    #-----
  elsif  v1[1]==1 #v1 accessible from current direction? 
    if    v1[0]==1 #v1 accessible from opposite direction? 
      self.eat_Jump_exec(@jdx,@jdy)
    elsif v2[1]==0 || v2.include?(2)
      #v2 not access. from current dir?/Impassable? 
      @jdx /= n 
      @jdy /= n 
      self.eat_Jump_exec(@jdx,@jdy)   
    end
    #-----
    elsif v1[1]==0  #v1 unaccessible from current direction? 
      if  v1[0]==0 && v2.include?(1)
        #v1 accessible from opp. dir?/v2 accessible? 
        self.eat_Jump_exec(@jdx,@jdy) 
      end
    end 
    #-----
  end 
  #--------------------------------------------------------------------------
  # * Total passability check                              [NEW METHOD]
  #-------------------------------------------------------------------------
  def total_pass(x, y, d1,d2,d3,d4)
    #checks passability for each direction 
    pass = Array.new([0,0,0,0]) 
    #----- 
    if $game_map.region_id(x, y) == Eat_Jump::IMPASSABLE ||   
      ($game_map.terrain_tag(x, y)==Eat_Jump::TERRAINTAG &&   
      $game_map.terrain_tag(self.x, self.y)!=Eat_Jump::TERRAINTAG) 
      pass=[2,2,2,2] 
      return pass 
    elsif $game_map.region_id(x, y) == Eat_Jump::PASSABLE 
      pass=[3,3,3,3] 
      return pass 
    end   
    #----- 
    return pass if $game_player.collide_with_events?(x, y) 
    pass[0]+=1 if $game_player.passable?(x, y, d1) #forward 
    pass[1]+=1 if $game_player.passable?(x, y, d2) #backward 
    pass[2]+=1 if $game_player.passable?(x, y, d3) #left 
    pass[3]+=1 if $game_player.passable?(x, y, d4) #right 
    return pass
  end
  #--------------------------------------------------------------------------
  # * Other directions check                              [NEW METHOD]
  #-------------------------------------------------------------------------
  def eat_other_dir(d)
    #checks player current left and right
    return 4 if d==8
    return 6 if d==2
    return 8 if d==4
    return 2 if d==6
  end
  #--------------------------------------------------------------------------
  # * Determine x movement                                [NEW METHOD]
  #------------------------------------------------------------------------- 
  def eat_x_mov(d)#define x movement
    return 1  if d==6
    return -1 if d==4
    return 0
  end
  #--------------------------------------------------------------------------
  # * Determine y movement                                [NEW METHOD]
  #------------------------------------------------------------------------- 
  def eat_y_mov(d)#define y movement
    return 1  if d==2
    return -1 if d==8
    return 0 
  end
  #--------------------------------------------------------------------------
  # * Execute jump with sound                              [NEW METHOD]
  #-------------------------------------------------------------------------
  def eat_Jump_exec(x_plus,y_plus)#Execute jump and play sound   
    Eat_Jump::JUMP_SE.play   
    @followers.move   
    @x += x_plus   
    @y += y_plus   
    distance = Math.sqrt(x_plus * x_plus + y_plus * y_plus).round   
    @jump_peak =  distance - @move_speed + Eat_Jump::JUMP_HEIGHT   
    @jump_count = @jump_peak * 2   
    @stop_count = 0   
    straighten
  end
  #--------------------------------------------------------------------------
  # * Update While Jumping                            [OVERWRITE METHOD]
  #-------------------------------------------------------------------------- 
  def update_jump   
    @jump_count -= Eat_Jump::JUMP_SPEED     
    if Eat_Jump::SPRITE.is_a?(String)   
      @@sprite_name ||= self.character_name   
      self.set_graphic("#{Eat_Jump::SPRITE}", self.character_index)   
      if @jump_count <= 0   
        self.set_graphic("#{@@sprite_name}", self.character_index)   
        @@sprite_name=nil   
      end
    end   
    @real_x = (@real_x * @jump_count + @x) / (@jump_count + 1.0)   
    @real_y = (@real_y * @jump_count + @y) / (@jump_count + 1.0)   
    update_bush_depth   
    if @jump_count <= 0     
      @jump_count=0     
      @followers.each { |f| f.jump(@x - f.x, @y - f.y) }     
      @real_x = @x = $game_map.round_x(@x)     
      @real_y = @y = $game_map.round_y(@y)   
    end 
  end
  #--------------------------------------------------------------------------
  # * move_by_input                                    [OVERWRITE METHOD]
  #--------------------------------------------------------------------------   
  def move_by_input   
    return if !movable? || $game_map.interpreter.running?   
    if Keyboard_Full_input.press?(Eat_Jump::TURN_ON_SPOT)   
      set_direction(Input.dir4)   
      return   
    end   
    move_straight(Input.dir4) if Input.dir4 > 0 
  end
#==================================================================
end 
# Game_Player class  end
#=============================================================================

Quiza sea que no he encontrado dónde activar el pixel movement o algo, qué se yo. Yo sólo he agarrado la demo tal cual venía, le puse que activara el interruptor 20 apenas inicia para ahorrarme molestias (?s), y bueno claro el script. Y pues puedo saltar, hacer la danza del conejito y hostigar a la chica del erretepé.

Sino pues, prueba compartiendo el mensaje de error, quiza sea alguna otra cosa rara. Ah y btw hace tiempo no te leía :^).
avatar
orochii
Caballero Shiro
Caballero Shiro

0/3

Créditos 6388

Gracias : 332

Volver arriba Ir abajo

RPG Maker VX ACE Re: Compatibilidad de estos dos Scripts ?

Mensaje por DioArcangel el 2017-03-15, 02:49

Tal vez recordando sea, el hecho de que cuando metí el SAS, no quería usar el Pixel Movement, ya que interfería con las rutas de movimiento de los eventos y el personaje...

Alguien me hizo el favor de cambiar el Pixel Movement...
Existirá una manera en la que sin modificar el Pixel Movement, cuando se ejecute una Ruta de Movimiento no interfiera el Script... ?

Un ejemplo con Pixel Movement:
Hablas con el Evento que acciona una Ruta de Movimiento sobre el Personaje, pero si se encuentra muy al borde de una "casilla" al momento de hablar con el evento,  inicia el movimiento y en cierta esquina de un tile se detiene ya que "choca"...


Sin el Pixel, pues no pasa eso obvio por que al establecer la Ruta pues por obvias razones, no haces que camine hacia un tile Impasable...
avatar
DioArcangel
Soñador
Soñador

0/3

Créditos 226

Gracias : 5

Volver arriba Ir abajo

RPG Maker VX ACE Re: Compatibilidad de estos dos Scripts ?

Mensaje por Contenido patrocinado


Contenido patrocinado


Volver arriba Ir abajo

Ver el tema anterior Ver el tema siguiente Volver arriba


Permisos de este foro:
No puedes responder a temas en este foro.