¡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
----------------------------------------
----------------------------------------
----------------------------------------
----------------------------------------
----------------------------------------
----------------------------------------
----------------------------------------
----------------------------------------
----------------------------------------
Últimos temas
» [AYUDA]Hootshot de moghunter
por Rudy_kinneas Hoy a las 01:06

» Necesito Script
por BreinLand entertainment Hoy a las 00:03

» El poder oculto (Segunda entrega)
por alex1633 Ayer a las 23:18

» Holaaa a tod@s!!!
por RiKennedy-Maker Ayer a las 21:53

» Tutorial Interactivo [Uso de interruptores]
por alex1633 Ayer a las 19:39

» Hola mucho gusto
por Hk Diamond Ayer a las 13:49

» SoraDeathss se presenta!
por chronoMxx Ayer a las 07:50

» {AYUDA}Blizz-ABS Script
por chronoMxx Ayer a las 06:45

» las cosas como son...
por Bleuw Ayer a las 04:18

» Busco artistas graficos para proyecto serio
por Rudy_kinneas 2016-12-02, 20:52

Afiliados
Estadísticas
Tenemos 3381 miembros registrados.
El último usuario registrado es Hk Diamond.

Nuestros miembros han publicado un total de 79765 mensajes en 11247 argumentos.
Navega con Google Chrome
[DESCARGA]

Ayuda con un script

 :: RPG Maker :: Ayuda RPG

Ver el tema anterior Ver el tema siguiente Ir abajo

Ayuda con un script

Mensaje por akito_squall el 2014-01-30, 01:00

Bueno, el caso es con el script "tren de charas", cuando tengo activado el script y dicho interruptor, y le cambio la profesión a algún personaje por medio de un evento pasa lo siguiente:
"????? 'Tren de charas' ? 82 ??? NoMethodError ????????
undefined method 'setup_actor_character_sprites' for nil:NilClass"

El script es el siguiente:
Código:
# Config.rb
#==============================================================================
# ■ Train_Actor::Config
#------------------------------------------------------------------------------
# Caterpillar movement of actor is carried out on map
#==============================================================================

module Train_Actor

# ●Switch setup for transparent status
# When true, switch control is used
# TRANSPARENT_SWITCH = true
TRANSPARENT_SWITCH = true

# ●Switch number for transparent status
# When TRANSPARENT_SWITCH is true, transparency will be activated when the switch of this number is on
TRANSPARENT_SWITCHES_INDEX = 100

# ●Maximum number of actors
# There will be support for a large number of people in a party in the future...
TRAIN_ACTOR_SIZE_MAX = 4

# Constants
DOWN_LEFT  = 1
DOWN_RIGHT = 3
UP_LEFT    = 7
UP_RIGHT  = 9
JUMP      = 5

# Put any actor IDs who should have a "stopped animation" if in the caterpillar
# i.e. if a party member "is floating" it will look stupid if he suddenly stops
# moving in the air.
# - added by Blizzard
ACTOR_IDS = [2, 3, 4]

end

# rgss

# Spriteset_Map_Module.rb
#==============================================================================
# ■ Spriteset_Map_Module
#------------------------------------------------------------------------------
# Caterpillar movement of actor is carried out on map
#==============================================================================

module Train_Actor

module Spriteset_Map_Module
 def setup_actor_character_sprites?
   return @setup_actor_character_sprites_flag != nil
 end
 def setup_actor_character_sprites(characters)
   if !setup_actor_character_sprites?
     for character in characters.reverse
       @character_sprites.unshift(
         Sprite_Character.new(@viewport1, character)
       )
     end
     @setup_actor_character_sprites_flag = true
   end
 end
end

end

class Spriteset_Map
 include Train_Actor::Spriteset_Map_Module
end

# Scene_Map_Module.rb
#==============================================================================
# ■ Scene_Map_Module
#------------------------------------------------------------------------------
# Caterpillar movement of actor is carried out on map
#==============================================================================

module Train_Actor

module Scene_Map_Module
 def setup_actor_character_sprites(characters)
   @spriteset.setup_actor_character_sprites(characters)
 end
end

end

class Scene_Map
 include Train_Actor::Scene_Map_Module
end

# Game_Party_Module.rb
#==============================================================================
# ■ Game_Party_Module
#------------------------------------------------------------------------------
# Caterpillar movement of actor is carried out on map
#==============================================================================

module Train_Actor

module Game_Party_Module

 attr_reader :characters

 def update_party_order() return actors end

 def setup_actor_character_sprites
   if @characters.nil?
     @characters = []
     for i in 1 ... TRAIN_ACTOR_SIZE_MAX
       @characters.push(Game_Party_Actor.new)
     end
   end
   setup_actors = update_party_order
   for i in 1 ... TRAIN_ACTOR_SIZE_MAX
     @characters[i - 1].setup(setup_actors[i])
   end
   if $scene.class.method_defined?('setup_actor_character_sprites')
     $scene.setup_actor_character_sprites(@characters)
   end
 end

 def update_party_actors
   update_party_order
   setup_actor_character_sprites
   transparent = $game_player.transparent
   if transparent == false and TRANSPARENT_SWITCH
     transparent = $game_switches[TRANSPARENT_SWITCHES_INDEX]
   end
   for character in @characters
     character.transparent = transparent
     character.move_speed = $game_player.move_speed
     if ACTOR_IDS.include?(character.cp_id) # Blizzard's support for stopped animation
       character.step_anime = false # Blizzard's support for stopped animation
     else # Blizzard's support for stopped animation
       character.step_anime = $game_player.step_anime
     end # Blizzard's support for stopped animation
     character.update
   end
 end

 def moveto_party_actors( x, y )
   setup_actor_character_sprites
   for character in @characters
     character.moveto( x, y )
   end
   @move_list = [] if @move_list == nil
   move_list_setup
 end

 def move_party_actors
   if @move_list == nil
     @move_list = []
     move_list_setup
   end
   @move_list.each_index do |i|
   if @characters[i] != nil
     case @move_list[i].type
       when Input::DOWN
         @characters[i].move_down(@move_list[i].args[0])
       when Input::LEFT
         @characters[i].move_left(@move_list[i].args[0])
       when Input::RIGHT
         @characters[i].move_right(@move_list[i].args[0])
       when Input::UP
         @characters[i].move_up(@move_list[i].args[0])
       when DOWN_LEFT
         @characters[i].move_lower_left
       when DOWN_RIGHT
         @characters[i].move_lower_right
       when UP_LEFT
         @characters[i].move_upper_left
       when UP_RIGHT
         @characters[i].move_upper_right
       when JUMP
         @characters[i].jump(@move_list[i].args[0],@move_list[i].args[1])
       end
     end
   end
 end

 class Move_List_Element
 
   def initialize(type,args)
     @type = type
     @args = args
   end
 
   def type() return @type end
 
   def args() return @args end
 
   end
 
   def move_list_setup
     for i in 0 .. TRAIN_ACTOR_SIZE_MAX
       @move_list[i] = nil
     end
   end
 
   def add_move_list(type,*args)
     @move_list.unshift(Move_List_Element.new(type,args)).pop
   end
 
   def move_down_party_actors(turn_enabled = true)
     move_party_actors
     add_move_list(Input::DOWN,turn_enabled)
   end
 
   def move_left_party_actors(turn_enabled = true)
     move_party_actors
     add_move_list(Input::LEFT,turn_enabled)
   end
 
   def move_right_party_actors(turn_enabled = true)
     move_party_actors
     add_move_list(Input::RIGHT,turn_enabled)
   end
 
   def move_up_party_actors(turn_enabled = true)
     move_party_actors
     add_move_list(Input::UP,turn_enabled)
   end
 
   def move_lower_left_party_actors
     move_party_actors
     add_move_list(DOWN_LEFT)
   end
 
   def move_lower_right_party_actors
     move_party_actors
     add_move_list(DOWN_RIGHT)
   end
 
   def move_upper_left_party_actors
     move_party_actors
     add_move_list(UP_LEFT)
   end
 
   def move_upper_right_party_actors
     move_party_actors
     add_move_list(UP_RIGHT)
   end
 
   def jump_party_actors(x_plus, y_plus)
     move_party_actors
     add_move_list(JUMP,x_plus, y_plus)
   end
 
 end

end

class Game_Party
 include Train_Actor::Game_Party_Module
end

# Game_Player_Module.rb
#==============================================================================
# ■ Game_Player_Module
#------------------------------------------------------------------------------
# Caterpillar movement of actor is carried out on map
#==============================================================================

module Train_Actor

module Game_Player_Module

 attr_reader :move_speed
 attr_reader :step_anime

 def update_party_actors
   $game_party.update_party_actors
   $game_party.actors.each do |actor|
     @character_name = actor.character_name
     @character_hue = actor.character_hue
     break
   end
 end

 def update
   update_party_actors
   super
 end

 def moveto( x, y )
   $game_party.moveto_party_actors( x, y )
   super( x, y )
 end

 def move_down(turn_enabled = true)
   if passable?(@x, @y, Input::DOWN)
     $game_party.move_down_party_actors(turn_enabled)
   end
   super(turn_enabled)
 end

 def move_left(turn_enabled = true)
   if passable?(@x, @y, Input::LEFT)
     $game_party.move_left_party_actors(turn_enabled)
   end
   super(turn_enabled)
 end

 def move_right(turn_enabled = true)
   if passable?(@x, @y, Input::RIGHT)
     $game_party.move_right_party_actors(turn_enabled)
   end
   super(turn_enabled)
 end

 def move_up(turn_enabled = true)
   if passable?(@x, @y, Input::UP)
     $game_party.move_up_party_actors(turn_enabled)
   end
   super(turn_enabled)
 end

 def move_lower_left
   # When possible to move from down→left or from left→down
   if (passable?(@x, @y, Input::DOWN) and passable?(@x, @y + 1, Input::LEFT)) or
     (passable?(@x, @y, Input::LEFT) and passable?(@x - 1, @y, Input::DOWN))
     $game_party.move_lower_left_party_actors
   end
   super
 end

 def move_lower_right
   # When possible to move from down→right or from right→down
   if (passable?(@x, @y, Input::DOWN) and passable?(@x, @y + 1, Input::RIGHT)) or
     (passable?(@x, @y, Input::RIGHT) and passable?(@x + 1, @y, Input::DOWN))
     $game_party.move_lower_right_party_actors
   end
   super
 end

 def move_upper_left
   # When possible to move from up→left or from left→up
   if (passable?(@x, @y, Input::UP) and passable?(@x, @y - 1, Input::LEFT)) or
     (passable?(@x, @y, Input::LEFT) and passable?(@x - 1, @y, Input::UP))
     $game_party.move_upper_left_party_actors
   end
   super
 end

 def move_upper_right
   # When possible to move from up→right or from right→up
   if (passable?(@x, @y, Input::UP) and passable?(@x, @y - 1, Input::RIGHT)) or
     (passable?(@x, @y, Input::RIGHT) and passable?(@x + 1, @y, Input::UP))
     $game_party.move_upper_right_party_actors
   end
   super
 end

 def jump(x_plus, y_plus)
   # New coordinates are calculated
   new_x = @x + x_plus
   new_y = @y + y_plus
   # When addition values are (0,0), it is possible to jump to the destination
   if (x_plus == 0 and y_plus == 0) or passable?(new_x, new_y, 0)
     $game_party.jump_party_actors(x_plus, y_plus)
   end
   super(x_plus, y_plus)
 end

end

end

class Game_Player
include Train_Actor::Game_Player_Module
end

# Game_Event_Module.rb
#==============================================================================
# ■ Game_Event_Module
#------------------------------------------------------------------------------
# Caterpillar movement of actor is carried out on map
#==============================================================================

module Train_Actor

module Game_Event_Module
 #--------------------------------------------------------------------------
 # ● Judgement determined
 #    x  : X coordinates
 #    y  : Y coordinates
 #    d  : Direction (0,2,4,6,8)  ※ 0 = Checks if all directions are not able to be passed (for a jump)
 # return : Passing is impossible (false), possible (true)
 #--------------------------------------------------------------------------
 def passable?(x, y, d)
   result = super(x, y, d)
   if result
     # New coordinates are searched for
     new_x = x + (d == 6 ? 1 : d == 4 ? -1 : 0)
     new_y = y + (d == 2 ? 1 : d == 8 ? -1 : 0)
     # Loops for actor in train
     for actor in $game_party.characters
       # When displayed
       if not actor.character_name.empty?
         # When actor's coordinates correspond to the destination
         if actor.x == new_x and actor.y == new_y
         # When event
           return false if self != $game_player
         end
       end
     end
   end
   return result
 end

end

end

class Game_Event
 include Train_Actor::Game_Event_Module
end

# Game_Party_Actor.rb
#==============================================================================
# ■ Game_Party_Actor
#------------------------------------------------------------------------------
# Caterpillar movement of actor is carried out on map
#==============================================================================

module Train_Actor

class Game_Party_Actor < Game_Character

 attr_reader :cp_id
 attr_writer :move_speed
 attr_writer :step_anime

 def initialize
   super()
   @through = true
 end

 def setup(actor)
   # The file name and hue of the character are set
   @cp_id = $data_actors[actor.id].id
   if actor != nil
     @character_name = actor.character_name
     @character_hue = actor.character_hue
   else
     @character_name = ""
     @character_hue = 0
   end
   # Opacity and blending method are initialized
   @opacity = 255
   @blend_type = 0
 end

 def screen_z(height = 0)
   if $game_player.x == @x and $game_player.y == @y
     return $game_player.screen_z(height) - 1
   end
   super(height)
 end
 #--------------------------------------------------------------------------
 # ● Move down
 #    turn_enabled : Flag that permits direction change on the spot
 #--------------------------------------------------------------------------
 def move_down(turn_enabled = true)
   # Face down
   turn_down if turn_enabled
   # When possible to pass
   if passable?(@x, @y, Input::DOWN)
     # Face down
     turn_down
     # Update coordinates
     @y += 1
   end
 end
 #--------------------------------------------------------------------------
 # ● Move left
 #    turn_enabled : Flag that permits direction change on the spot
 #--------------------------------------------------------------------------
 def move_left(turn_enabled = true)
   # Face left
   turn_left if turn_enabled
   # When possible to pass
   if passable?(@x, @y, Input::LEFT)
     # Face left
     turn_left
     # Update coordinates
     @x -= 1
   end
 end
 #--------------------------------------------------------------------------
 # ● Move right
 #    turn_enabled : Flag that permits direction change on the spot
 #--------------------------------------------------------------------------
 def move_right(turn_enabled = true)
   # Face right
   turn_right if turn_enabled
   # When possible to pass
   if passable?(@x, @y, Input::RIGHT)
     # Face right
     turn_right
     # Update coordinates
     @x += 1
   end
 end
 #--------------------------------------------------------------------------
 # ● Move up
 #    turn_enabled : Flag that permits direction change on the spot
 #--------------------------------------------------------------------------
 def move_up(turn_enabled = true)
   # Face up
   turn_up if turn_enabled
   # When possible to pass
   if passable?(@x, @y, Input::UP)
     # Face up
     turn_up
     # Update coordinates
     @y -= 1
   end
 end
 #--------------------------------------------------------------------------
 # ● Move lower left
 #--------------------------------------------------------------------------
 def move_lower_left
   # When no direction fixation
   unless @direction_fix
     # Turn left when facing right, turn down when facing up
     @direction = (@direction == Input::RIGHT ? Input::LEFT : @direction == Input::UP ? Input::DOWN : @direction)
   end
   # When possible to move from down→left or from left→down
   if (passable?(@x, @y, Input::DOWN) and passable?(@x, @y + 1, Input::LEFT)) or
     (passable?(@x, @y, Input::LEFT) and passable?(@x - 1, @y, Input::DOWN))
     # Update coordinates
     @x -= 1
     @y += 1
   end
 end
 #--------------------------------------------------------------------------
 # ● Move lower right
 #--------------------------------------------------------------------------
 def move_lower_right
   # When no direction fixation
   unless @direction_fix
     # Turn right when facing left, turn down when facing up
     @direction = (@direction == Input::LEFT ? Input::RIGHT : @direction == Input::UP ? Input::DOWN : @direction)
   end
   # When possible to move from down→right or from right→down
   if (passable?(@x, @y, Input::DOWN) and passable?(@x, @y + 1, Input::RIGHT)) or
     (passable?(@x, @y, Input::RIGHT) and passable?(@x + 1, @y, Input::DOWN))
     # Update coordinates
     @x += 1
     @y += 1
   end
 end
 #--------------------------------------------------------------------------
 # ● move upper left
 #--------------------------------------------------------------------------
 def move_upper_left
   # When no direction fixation
   unless @direction_fix
     # Turn left when facing right, turn up when facing down
     @direction = (@direction == Input::RIGHT ? Input::LEFT : @direction == Input::DOWN ? Input::UP : @direction)
   end
   # When possible to move from up→left or from left→up
   if (passable?(@x, @y, Input::UP) and passable?(@x, @y - 1, Input::LEFT)) or
     (passable?(@x, @y, Input::LEFT) and passable?(@x - 1, @y, Input::UP))
     # Update coordinates
     @x -= 1
     @y -= 1
   end
 end
 #--------------------------------------------------------------------------
 # ● move upper right
 #--------------------------------------------------------------------------
 def move_upper_right
   # When no direction fixation
   unless @direction_fix
     # Turn right when facing left, turn up when facing down
     @direction = (@direction == Input::LEFT ? Input::RIGHT : @direction == Input::DOWN ? Input::UP : @direction)
   end
   # When possible to move from up→right or from right→up
   if (passable?(@x, @y, Input::UP) and passable?(@x, @y - 1, Input::RIGHT)) or
     (passable?(@x, @y, Input::RIGHT) and passable?(@x + 1, @y, Input::UP))
     # Update coordinates
     @x += 1
     @y -= 1
   end
 end

end

end
Ojala pudiesen ayudarme, muchas gracias de anticipación
Salu2

akito_squall
Novato
Novato

0/3

Créditos 100

Gracias : 10

Volver arriba Ir abajo

Re: Ayuda con un script

Mensaje por orochii el 2014-01-30, 02:53

Pues... es extraño, en un proyecto vacío no me pasa eso, he intentado replicar el error cambiando la clase del personaje principal, y también uno secundario en la partida, y no pasa nada. Yo supondría es incompatibilidad con algún otro script, sin embargo no entiendo porqué pasaría con el comando de cambiar profesión xD, es como un poco random xD.

Em... no sé, prueba en otro proyecto. Metes el script éste, y vas metiendo los otros scripts que uses, uno a uno, probando si anda (y probando lo de cambiar profesión claro). Así sabrás identificar cuál es el que da problemas con éste. Si hay scripts de partes múltiples, pues obvio metes todas las partes de un tirón xd.

Salut!

orochii
Caballero Shiro
Caballero Shiro

0/3

Créditos 6045

Gracias : 266

http://drekirokr.weebly.com/

Volver arriba Ir abajo

Re: Ayuda con un script

Mensaje por akito_squall el 2014-01-30, 04:29

Buenas, muchas gracias, el script del problema es el siguiente:
Código:
#===============================================================================
# Creado por: Northro
# Para: RPG Maker XP
# Nombre del Script: Visible Equipment
# Versión del Script: 0.1
# Descripción: Muestra los gráficos de los armamentos sobre el personaje.
#===============================================================================
#===============================================================================
# Instrucciones:
#
# 1) Use el siguiente comando si quieres que al cambiar de equipo se actualize
#    el gráfico del personaje:
#
#    * VisibleEquipment.update!(x)
#      x = true o false (verdadero o falso, activar o desactivar).
#
#    En la tercera pestaña de los comandos de eventos está el comando:
#
#    * "Llamar script..."
#
#    Uselo allí.
#
# Nota: Todos los gráficos de los characters deben ir en la carpeta:
#      "Graphics/Characters".
#===============================================================================
module VisibleEquipment
#-------------------------------------------------------------------------------
# * El character que usara el personaje cuando tenga un arma.
#
#  A = Id del arma.
#  B = Nombre del character.
#
#  Weapons = {A => "B"}
#-------------------------------------------------------------------------------
  Weapons = {
  1 => "Weapon01"
  }
#-------------------------------------------------------------------------------
# * El character que usara el personaje cuando tenga una armadura.
#
#  A = Id de la armadura.
#  B = Nombre del character.
#
#  Armors = {A => "B"}
#-------------------------------------------------------------------------------
  Armors = {
  1 => "charlinterna",
  33 => "ropainicial",
  34 => "pantalones normales",
  35 => "gorrocuero",
  30 => "camperacuero",
  31 => "jeansmarron",
  3 => "decuero",
  4 => "armadura",
  5 => "armaduradorada",
  6 => "tunica clerical",
  7 => "armaduracero",
  8 => "armaduracoral",
  17 => "túnica de cuero",
  18 => "tunica de plata",
  19 => "tunica azul",
  20 => "tunica roja",
  21 => "tunicaverde",
  22 => "tunica zarpel",
  37 => "camisazoo",
  23 => "tapado de tigre",
  24 => "tapado de tigre blanco",
  39 => "cascoro",
  40 => "Chaleco de wimpi"
  }
end

module RPG
  module Cache
    def self.see_bitmap(folder_name, filename)
      return @cache[folder_name + filename]
    end
   
    def self.take_bitmap(folder_name, filename, code)
      @cache[folder_name + filename] = code
    end
   
    def self.clear_bitmap(folder_name, filename)
      return if @cache[folder_name + filename].nil?
      @cache[folder_name + filename].dispose
      @cache[folder_name + filename] = nil
      GC.start
    end
  end
end

module VisibleEquipment
  @update = true
  def self.update!(update)
    @update = update
  end
 
  def self.update?
    return @update
  end
 
  def self.update(actor = nil)
    return if $game_party.nil?
    if actor.nil?
      $game_party.actors.each {|actor| refresh(actor)}
    else
      refresh(actor)
    end
  end
 
  def self.refresh(actor)
    return if actor.nil?
    foldername = "Graphics/Characters/"
    filename = actor.character_name
    bitmap_character = Bitmap.new(foldername + filename)
    RPG::Cache.clear_bitmap(foldername, filename)
    RPG::Cache.take_bitmap(foldername, filename, bitmap_character)
    for id in Armors.keys
      if actor.armor1_id == id or actor.armor2_id == id or
          actor.armor3_id == id or actor.armor4_id == id
        self.add_armor(actor, id, bitmap_character)
      end
    end
    for id in Weapons.keys
      self.add_weapon(actor, id, bitmap_character) if actor.weapon_id == id
    end
  end
 
  def self.add(bitmap, bitmap_base)
    return if bitmap.nil? or bitmap_base.nil?
    for x in 0..bitmap.width
      for y in 0..bitmap.height
        color_get = bitmap_base.get_pixel(x, y)
        next if color_get.alpha == 0
        bitmap.set_pixel(x, y, color_get)
      end
    end
  end
 
  def self.add_weapon(actor, id, bitmap)
    bitmap_weapon = RPG::Cache.character(Weapons[id], actor.character_hue)
    self.add(bitmap, bitmap_weapon)
  end
 
  def self.add_armor(actor, id, bitmap)
    bitmap_armor = RPG::Cache.character(Armors[id], actor.character_hue)
    self.add(bitmap, bitmap_armor)
  end
end

class Game_Actor < Game_Battler
  alias visible_equipment_game_actor_setup setup
  alias visible_equipment_game_actor_equip equip
 
  def setup(actor_id)
    visible_equipment_game_actor_setup(actor_id)
    VisibleEquipment.update(self)
  end
 
  def equip(equip_type, id)
    visible_equipment_game_actor_equip(equip_type, id)
    if VisibleEquipment.update?
      VisibleEquipment.update(self)
      $scene = Scene_Map.new if $scene.is_a?(Scene_Map)
    end
  end
end

class Scene_Equip
  alias visible_equipment_scene_equip_refresh refresh
 
  def refresh
    last_visible_equipment = VisibleEquipment.update?
    VisibleEquipment.update!(false)
    visible_equipment_scene_equip_refresh
    VisibleEquipment.update!(last_visible_equipment)
  end
end
Teniendo el codigo del script ese se puede dar alguna ayuda?
gracias n.n
Salu2

akito_squall
Novato
Novato

0/3

Créditos 100

Gracias : 10

Volver arriba Ir abajo

Re: Ayuda con un script

Mensaje por HebiLee el 2014-01-30, 16:24

El Maker te permite "des-equipar" todo lo que tengan  equipados los personajes. ¿Y si antes de cambiar de profesión, le quitas todos los equipos al personaje para que se borre del código de acción del script y luego se los pones luego de cambiarle de clase?

:O Podría funcionar, espero tu contestación. Un saludo  Warrior

PD: Lo que ocurre es que hay un momento en que el script calcula que "el personaje no tiene clase" y se pierde.

HebiLee
Soñador
Soñador

0/3

Créditos 112

Gracias : 16

http://www.youtube.com/leehebi

Volver arriba Ir abajo

Re: Ayuda con un script

Mensaje por akito_squall el 2014-01-30, 18:20

Hula, como te va? espero que bien.
Traigo malas noticias >:/
Lo único que cambia al hacer que no tengas equipado nada antes de cambiar profesión (también probe, que despues de profesión te desequipe todo , osea antes y despues, por las dudas) es que en vez de tirar el mismo error mencionado al momento, el juego "carga" los charas en el mapa, espera un segundo y ahi lo tira al error.
Estoy desesperado, no puedo sacar ningun script en mi juego, esta armado muy en base a eso, nunca creí que tiraria un error por algo tan random como cambiar una profesión xD
Espero ancioso tu respuesta HebiLee o Orochii o el que pueda ayudarme e.e
Salu2

akito_squall
Novato
Novato

0/3

Créditos 100

Gracias : 10

Volver arriba Ir abajo

Re: Ayuda con un script

Mensaje por HebiLee el 2014-01-30, 18:26

akito_squall escribió:Hula, como te va? espero que bien.
Traigo malas noticias >:/
Lo único que cambia al hacer que no tengas equipado nada antes de cambiar profesión (también probe, que despues de profesión te desequipe todo , osea antes y despues, por las dudas) es que en vez de tirar el mismo error mencionado al momento, el juego "carga" los charas en el mapa, espera un segundo y ahi lo tira al error.
Estoy desesperado, no puedo sacar ningun script en mi juego, esta armado muy en base a eso, nunca creí que tiraria un error por algo tan random como cambiar una profesión xD
Espero ancioso tu respuesta HebiLee o Orochii o el que pueda ayudarme e.e
Salu2

Que mala suerte. Tenemos que saber quien es el responsable. Yo intuyo que el script no está hecho para soportar eso. ¿Has probado ver si puedes cambiar de clase en un proyecto vacio solo con ese script?

HebiLee
Soñador
Soñador

0/3

Créditos 112

Gracias : 16

http://www.youtube.com/leehebi

Volver arriba Ir abajo

Re: Ayuda con un script

Mensaje por akito_squall el 2014-01-30, 18:29

Probe en un nuevo proyecto, teniendo instalado el tren de charas, cambiar la profesión y no pasa nada, teniendo instalado el equipamento visible y no pasa nada, pero si tengo instalado el equipamento visible y a la vez el tren de charas, ahi si que se viene el mundo abajo xD, tira el error u.u
Salu2

akito_squall
Novato
Novato

0/3

Créditos 100

Gracias : 10

Volver arriba Ir abajo

Re: Ayuda con un script

Mensaje por HebiLee el 2014-01-30, 18:49

akito_squall escribió:Probe en un nuevo proyecto, teniendo instalado el tren de charas, cambiar la profesión y no pasa nada, teniendo instalado el equipamento visible y no pasa nada, pero si tengo instalado el equipamento visible y a la vez el tren de charas, ahi si que se viene el mundo abajo xD, tira el error u.u
Salu2
¡BUM! NUEVA IDEA, y si en vez de cambiar de profesión a alguien simplemente es otro alguien. Es decir. Tienes en el 2 a Fulanito Guerrero y el 12 a Fulanito Guerrero Bravo. Y san se acabó el tema. Pones que al añadir el nuevo personaje tenga el mismo lvl que el anterior y lo re-equipas con lo que el otro llevara. Pruébalo  :O

HebiLee
Soñador
Soñador

0/3

Créditos 112

Gracias : 16

http://www.youtube.com/leehebi

Volver arriba Ir abajo

Re: Ayuda con un script

Mensaje por akito_squall el 2014-01-30, 19:54

Jajjjaja, antes de que me respondieras eso, también se me habia ocurrido, pero al cambiar de personaje tira el mismo error, dice lo mismo, la misma línea, etc, estoy empezando a creer que no es error de la profesión sino de los personajes en si ._.

akito_squall
Novato
Novato

0/3

Créditos 100

Gracias : 10

Volver arriba Ir abajo

Re: Ayuda con un script

Mensaje por HebiLee el 2014-01-30, 22:19

akito_squall escribió:Jajjjaja, antes de que me respondieras eso, también se me habia ocurrido, pero al cambiar de personaje tira el mismo error, dice lo mismo, la misma línea, etc, estoy empezando a creer que no es error de la profesión sino de los personajes en si ._.
El error lo da al sustraer o al añadir un nuevo personaje (podrías subir un proyecto vacío con los 2 scripts conflictivos para hacer esperimentos?) A mega que va bien por ejemplo.

HebiLee
Soñador
Soñador

0/3

Créditos 112

Gracias : 16

http://www.youtube.com/leehebi

Volver arriba Ir abajo

Re: Ayuda con un script

Mensaje por akito_squall el 2014-01-30, 22:48

Listo, ahí lo subi, disculpa si pesa mucho, estoy desesperado por ayuda u.u
Spoiler:
SOLUCIONADO
Salu2


Última edición por akito_squall el 2016-08-28, 16:58, editado 1 vez

akito_squall
Novato
Novato

0/3

Créditos 100

Gracias : 10

Volver arriba Ir abajo

Re: Ayuda con un script

Mensaje por HebiLee el 2014-01-31, 12:56

Warrior 
¡LLEGÓ LA NAVIDAD! :D ¡AQUÍ ESTÁ SANTA HEBI CON UNA SOLUCIÓN!

Bueno, quien dice solución dice "ÑAPA" o "CHAPUZA". Pero lo importante es que he conseguido un sistema para cambiar de trabajo sin que EXPLOTE, que no es poco.

Como dije en anteriores Post, mi idea de tener Héroes duplicados dió resultado. El problema era encontrar una manera de ejecutarla sin que EXPLOTARA.

REQUISITOS:

  • Debes tener Tantos clones del héroe como trabajos le quieras poner. Yo aconsejo seguir un incremento de 10, ya que dudo que tengas más de 10 héroes distintos y más de 10 profesiones distintas. Y aunque los tengas el limite es 999 XD. ¡PERO ES PARA NO LIARNOS!


    [Obviamente todos se llamarán Oshum, pero les he puesto su profesión en el nombre para no liarnos]
  • Debes tener un chara desnudo "diferente" aunque sea "igual" [Pero con diferente nombre], para cada héroe duplicado.


    (Si se les pone el mismo Chara desnudo hay un glich que hace que al cambiar de profesión se vuelva invisible hasta que abres y cierras el menú)


Bien, ya tenemos los requisitos para poder ejecutar el "cambio de profesión" ahora este es el engine que te lo permite (es muy sencillo):

ATENCIÓN, NO PUEDES EQUIPAR NI DES-EQUIPAR NADA NUNCA A NADIE MEDIANTE EVENTOS
ATENCIÓN, NO PUEDES CAMBIAR NUNCA A NINGÚN PERSONAJE DE PROFESIÓN POR EVENTOS




Explicación:

  1. Lo primero debes "calcular" que equipo lleva puesto. Como no se lo podemos quitar tendrás que crear clones del equipo y añadirlos al inventario (el jugador deberá equipar él manualmente los equipos) no lo veo un problema mayor simplemente que el personaje diga *Bien ahí tienes tu nuevo uniforme vístete* o alguna chorrada varia.

    Puedes realizar este cálculo mediante "Condiciones tiene X objeto" parece atareado pero la cantidad de objetos que un personaje puede llevar encima en determinada parte del juego no es tan extensa. Si tiene X objeto equipado le añades un duplicado al inventario.
  2. Debes calcular mediante una variable el nivel del personaje actualmente, es mucho más preciso calcular su experiencia (todos los clones tienen que tener él mismo ritmo de subida de nivel) Así que simplemente haces que una variable tenga la misma cantidad que experiencia tenga el personaje.
  3. Ahora vienen las comprobaciones de si X personaje también está en el grupo. Esto se puede hacer sin esto, pero queda muy raro que un personaje que es la cabeza de la fila pase a la cola al cambiar de profesión. Con esto se evita. Simplemente comprobamos 1 a 1 si hay X personaje en el grupo y si lo hay lo quitamos y activamos un interruptor para saber que lo hemos quitado.
  4. Después de quitar los demás personajes añadimos "el clon" con la profesión deseada. "En estado inicial"
  5. Incrementamos la experiencia de "el clon" en la cantidad que tenga almacenada la variable que creamos en el "punto 2".
  6. Eliminamos definitivamente al antiguo Oshum.
  7. Regresamos en el orden que queramos a los demás miembros del grupo "SIN VOLVER AL ESTADO INICIAL", por cada personaje que vuelva al grupo ponemos en OFF la variable de "sustracción".

    PD: Si el que cambia de profesión es el 2º, o 3º personaje de la cola. No hace falta quitar ni reponer a los que lleva delante ¡pero si los de detrás!


¡Y YA ESTÁ, UN NUEVO CLON CREANDO LA ILUSIÓN DE QUE HEMOS CAMBIADO DE PROFESIÓN! :D, Osea sé dar gato por liebre.

PROBLEMAS

  • Todos los incrementos de "Ataque" "Defensa" "Vida"... permanentes por medio de objetos del tipo "si comes esta baya tienes 10 más de vida". Se pierden. Pero, como al cambiar de profesión cambian estos estados...NADIE LO VA A NOTAR. También puedes crear un súper calculo que reste al ataque el ataque del arma que lleve equipada y la reste a la diferencia entre el ataque del viejo....etc Pero, nada una matada de trabajo para algo que nadie va a notar. [Sería más fácil este cálculo si pudieras quitarles las armas con eventos pero NO PUEDES]
  • El evento de cambio de profesión necesitará que lo ENGORDES muchísimo ya que tendrás que considerar todos los equipos que pudiera llevar y sustraer y reponer a todos los personajes que pudieras llevar INCLUIDOS LOS CLONES... es decir. ¿Carlos está en el grupo? ¿Carlos Clérigo está en el grupo? ¿Carlos ingeniero está en el grupo?..... etc. Pero vamos tampoco creo que tengas 200 personajes. Y una vez hagas un evento solo tienes que copiar pegar para los demás eventos de cambio de profesión.
  • Sigues sin poder cambiar realmente de profesión y no puedes des-equipar por eventos, pero sin tocar mucho los scripts es imposible ya que ninguno de los scripts está preparado para vivir con el otro en tiempo real en el juego.



pero vamos... FUNCIONA, QUE ES LO IMPORTANTE ¿NO?  Baile 
¡PRUÉBALO Y CUÉNTAME SI TE HA FUNCIONADO!  Warrior ¡UN SALUDO!

HebiLee
Soñador
Soñador

0/3

Créditos 112

Gracias : 16

http://www.youtube.com/leehebi

Volver arriba Ir abajo

Re: Ayuda con un script

Mensaje por orochii el 2014-01-31, 17:17

Hebi, hay algo en tu espíritu que me agrada (?), es algo que no se encuentra tan fácil... la búsqueda de soluciones alternativas. Eso es una fortaleza xD.

En fin, sólo quería decir eso xD. Ya dirá Akito si le sirve.

orochii
Caballero Shiro
Caballero Shiro

0/3

Créditos 6045

Gracias : 266

http://drekirokr.weebly.com/

Volver arriba Ir abajo

Re: Ayuda con un script

Mensaje por akito_squall el 2014-01-31, 18:14

Hice todo lo que dijiste, pero no dio resultado, tarde como 40 minutos, en probarlo de diversas maneras y todo pero ni idea, ya no tirar el error, pero tampoco funciona xD, cuando cambio los personajes de los viejos a los nuevos, asigno la experiencia, etc, se queda freezeado el juego, osea sin moverse, tal cual como cuando uno pone en accion de evento "Esperar frames" y hasta ahí ya me habia dado por vencido..
Pero luego de unas horas entre a otro post en otra comunidad que cree con fin de encontrar la solucion a este problema, aver si otros usuarios tenian soluciónes distintas, a lo que mi amigo Raiden me dijo:
Raiden escribió:Debe hacer una solución simple, prueba en esa linea poner al final rescue nil
Yo quede en plan, no debe funcionar, es algo demasiado simple.. y de hecho si, agregando "rescue nil" al final de la línea que tiraba error en el script soluciono todo .__________________________. la verdad no se que decir.
Gracias Orochii y sobre todo GRAAAAAAAAAAAAAAACIAS HebiLee, aunque no hayamos podido dar una solución al problema, se notaron mucho tus animos de ayudarme y lo aprecio, estoy disponible cuando necesites algo, solo manda un MP
Salu2 :)
PD: Como es eso de las "Gracias" que aparecen abajo del avatar de cada uno? Me gustaria darle las gracias..

akito_squall
Novato
Novato

0/3

Créditos 100

Gracias : 10

Volver arriba Ir abajo

Re: Ayuda con un script

Mensaje por orochii el 2014-01-31, 18:50

Bueno, el "rescue nil" evitará que el juego crashee. Pero no sé qué efectos tendrá a largo plazo. En fin, si no pasa nada notable, no importará xD, son scripts que afectan cosas estéticas, y si la estética no recibe un impacto notable, no hay problema xD.

Ta buena la solución xD.

orochii
Caballero Shiro
Caballero Shiro

0/3

Créditos 6045

Gracias : 266

http://drekirokr.weebly.com/

Volver arriba Ir abajo

Re: Ayuda con un script

Mensaje por HebiLee el 2014-01-31, 20:51

orochii escribió:Hebi, hay algo en tu espíritu que me agrada (?), es algo que no se encuentra tan fácil... la búsqueda de soluciones alternativas. Eso es una fortaleza xD.

En fin, sólo quería decir eso xD. Ya dirá Akito si le sirve.

:D Gracias por el piropo. Intento ayudar xD aunque esta vez me ha salido rana.


akito_squall escribió:Hice todo lo que dijiste, pero no dio resultado, tarde como 40 minutos, en probarlo de diversas maneras y todo pero ni idea, ya no tirar el error, pero tampoco funciona xD, cuando cambio los personajes de los viejos a los nuevos, asigno la experiencia, etc, se queda freezeado el juego, osea sin moverse, tal cual como cuando uno pone en accion de evento "Esperar frames" y hasta ahí ya me habia dado por vencido..
Pero luego de unas horas entre a otro post en otra comunidad que cree con fin de encontrar la solucion a este problema, aver si otros usuarios tenian soluciónes distintas, a lo que mi amigo Raiden me dijo:
Raiden escribió:Debe hacer una solución simple, prueba en esa linea poner al final rescue nil
Yo quede en plan, no debe funcionar, es algo demasiado simple.. y de hecho si, agregando "rescue nil" al final de la línea que tiraba error en el script soluciono todo .__________________________. la verdad no se que decir.
Gracias Orochii y sobre todo GRAAAAAAAAAAAAAAACIAS HebiLee, aunque no hayamos podido dar una solución al problema, se notaron mucho tus animos de ayudarme y lo aprecio, estoy disponible cuando necesites algo, solo manda un MP
Salu2 :)
PD: Como es eso de las "Gracias" que aparecen abajo del avatar de cada uno? Me gustaria darle las gracias..

:O Woah, me alegro que encontraras una solución más simple. Pero como dice Orochi cuidado con esa línea lo que hace es ignorar la llamada al script de resterización, no sabemos como afectará puede que no se carguen los gráficos de las armaduras habría que verlo.

:D Nada hombre, estoy para ayudar.  Aunque se me ocurre una manera no sexual de agradecerme el rato de trabajo :D Te mandaré un PM.

¡Suerte con el Proyecto!  Warrior ¡A MAKEAR!

PD: Creo que para lo de dar gracias al lado de cada mensaje hay una especie de (+) y (-) chiquitito. Si pulsas el más se vuelve verde.

HebiLee
Soñador
Soñador

0/3

Créditos 112

Gracias : 16

http://www.youtube.com/leehebi

Volver arriba Ir abajo

Re: Ayuda con un script

Mensaje por Contenido patrocinado Hoy a las 01:56


Contenido patrocinado


Volver arriba Ir abajo

Ver el tema anterior Ver el tema siguiente Volver arriba


 :: RPG Maker :: Ayuda RPG

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