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 84768 mensajes en 12064 argumentos.

Alguien que haya usado el Khas Sapphire Action System IV ?

Ver el tema anterior Ver el tema siguiente Ir abajo

RPG Maker VX ACE Alguien que haya usado el Khas Sapphire Action System IV ?

Mensaje por DioArcangel el 2017-02-12, 17:41

Tengo problemas con esto y me hace pensar en el Falcao es el estúpido Pixel Movement !!
Osea me gusta el Pixel Movement, pero nada mas no logro comprenderlo !
Realmente se que no lo puedo Desactivar ya que se jodería el Script...

Edito 1: Bueno  Sweat al parecer tenia el Tile en "X", xD !!, sea como sea si disminuyeron los problemas pero, aun permanece uno :
Si hablo con un Evento que ejecutara una Ruta de movimiento en el Jugador y el Evento, si acaso el Jugador llega a hablar con este Evento en los pixeles del borde inferior de un tile, y llega a chocar con la esquina de un tile en esta ruta... se para todo...

En resumen : Como obligo al personaje y al evento de que se interactue en estas situaciones únicamente en el centro del Tile ( como sin pixel movement, dentro del 32x32 exacto ) para que en las Rutas de Movimiento no tenga problemas...

Me refiero a esto :
IZQ : Centro del Tile
DER: En los pixeles del borde Inferior del Tile



Quiero que el char o eventos, solo interactue con los eventos en el centro... para que la ruta de movimiento se ejecute desde esa posición...

No quiero usar Falcaoo !! >.<
Como puedo resolver estos problemas, con la ruta de movimiento y las colisiones ? Y si existe una manera de deshabilitar el pixel movement o quitarlo de plano..

Edito 2: EatYourBeats Free Jump
Ahora obviamente me tiro un error con este script obvio... me tira esto.. alguien sabe como solucionarlo sucede cuando trato de saltar ?
Es obvio que pues no reconoce x & y ... creo yo...



Free Jump:
#=============================================================================#
#
#  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 = :C #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  = 0.8#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 = 8 #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_JumpJUMP_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
#=============================================================================
avatar
DioArcangel
Soñador
Soñador

0/3

Créditos 226

Gracias : 5

Volver arriba Ir abajo

RPG Maker VX ACE Re: Alguien que haya usado el Khas Sapphire Action System IV ?

Mensaje por Bleuw el 2017-02-12, 18:50

Saludos, DioArcangel.

Este problema me lo preguntaron por MP (Vaya uno a saber la razón, ya que no uso este script =p) y lo vi en posts tanto acá como en otros países. La cosa es que pixel movement del script está integrado al mismo, es casi como una misma cosa. Habría que cambiar todos los apartados para que funcione como movimiento normal y si bien seguro se puede, debe ser un trabajo considerable supongo yo. Khas mismo dijo que está incompleto el script y eso tira un poco para atrás también =p

Saludos.
avatar
Bleuw
Aventurero
Aventurero

0/3

Créditos 1606

Gracias : 102

Volver arriba Ir abajo

RPG Maker VX ACE Re: Alguien que haya usado el Khas Sapphire Action System IV ?

Mensaje por DioArcangel el 2017-02-12, 18:54

Bleuw ! Años amigo !
Como has estado ?!!

Si llegue a leer lo que decía khas... por eso la esperanza de quitar el pixel ha muerto para mi xD !! haha
Pero albergo esperanza en que se pueda corregir los problemas que me genera haha hasta el momento y espero sean los únicos.

Osea me gusta la mecánica del pixel movement pero como me lia con tantos problemas ... -.-
avatar
DioArcangel
Soñador
Soñador

0/3

Créditos 226

Gracias : 5

Volver arriba Ir abajo

RPG Maker VX ACE Re: Alguien que haya usado el Khas Sapphire Action System IV ?

Mensaje por BreinLand entertainment el 2017-02-12, 19:22

Para "quitar" o simular el movimiento por cuadrados (vamos, sin pixel movement) solo cambia estas líneas de código en el script de khas que están en las constantes debajo de los settings de pixel movement a las que te pongo aquí:
Código:
 Pixel = 4
  Tile = 0.25
  Default_Collision_X = 3
  Default_Collision_Y = 3
  Body_Axis = [0.25,0.25,0.5,0.75]
  Bush_Axis = [0.5,0.75]
  Counter_Axis = [0.25,0.25,0.25,0.25]
  Ladder_Axis = [0.25,0.25]
  Pixel_Range = {2=>[0,1],4=>[-1,0],6=>[1,0],8=>[0,-1]}
  Tile_Range = {2=>[0,4],4=>[-4,0],6=>[4,0],8=>[0,-4]}
  Water_Range = {2=>[0,3],4=>[-3,0],6=>[3,0],8=>[0,-3]}
  Trigger_Range = {2=>[0,2],4=>[-2,0],6=>[2,0],8=>[0,-2]}
  Counter_Range = {2=>[0,3],4=>[-3,0],6=>[3,0],8=>[0,-3]}
  Chase_Axis = {2=>[0,1],4=>[1,0],6=>[1,0],8=>[0,1]}

Así supongo que debería también funcionarte el de saltos... pero sino ya sabes, utiliza un evento común y pon que salte hacia adelante cuando pulsas el botón que sea con condicionales (pones que si mira a arriba salte en esa dirección, si mira hacia abajo, a abajo, etc...
avatar
BreinLand entertainment
Soñador
Soñador

0/3

Créditos 209

Gracias : 48

Volver arriba Ir abajo

RPG Maker VX ACE Re: Alguien que haya usado el Khas Sapphire Action System IV ?

Mensaje por DioArcangel el 2017-02-12, 19:35

Hermano brein, muchas gracias si ya esta como si no tuviera "Pixel Movement" espero no afecte el sistema de batalla solamente, lo probare y aviso.

Pero me sigue botando el error del Jump de esta parte de khas :

Código:
#-------------------------------------------------------------------------------
# * Game FakeFollowers
#-------------------------------------------------------------------------------

class Game_FakeFollowers
  attr_accessor :visible
  def initialize
    @visible = true
  end
  def refresh
  end
  def update
  end
  def gathering?
    return false
  end
  def synchronize(x,y,d)
  end
  def collide?(x,y)
    return false
  end
  def gather
  end
  def gather?
    return true
  end
  def reverse_each
    return []
  end
  def each
    return []
  end
end

Supongo que si seguiré tu consejo de hacerlo por evento común.
Por que nada mas no haha Muchisimas gracias !!! Colega
avatar
DioArcangel
Soñador
Soñador

0/3

Créditos 226

Gracias : 5

Volver arriba Ir abajo

RPG Maker VX ACE Re: Alguien que haya usado el Khas Sapphire Action System IV ?

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.