Mundo Maker
¡Bienvenid@ a Mundo Maker!

¿Quieres aprender todo sobre el RPG Maker?



Regístrate y forma parte de Mundo Maker.

Problema con un script y los eventos comunes

Ver el tema anterior Ver el tema siguiente Ir abajo

RPG Maker VX ACE Problema con un script y los eventos comunes

Mensaje por masterxg el 2018-09-07, 22:45

He intentado añadir un script que guarda todos los elementos de la "bolsa" (armadura, armas, items, dinero...) y los recupera, ambas operaciones mediante llamada de script.

El problema es que simplemente teniendo el script pegado en su sitio, encima de Main, los eventos comunes dejan de funcionar xD

Salta error en el comando 117, el de los eventos comunes...

Mi teoría es que el script nuevo sobreescribe algo del Game_Interpreter y por eso los eventos comunes petan. Seguro que es un cambio chorras, pero ni idea de cómo hacerlo... A ver si alguien sabe.

El error que aparece es este:




Y el script nuevo que puse, es este:

Código:
#==============================================================================
# Kingdom Take Items
# por King Gerar
#
# Método de ganhar/perder itens por: Shiroyasha
# Método de desequipar itens por: Xypher
#------------------------------------------------------------------------------
# Este script não precisa do "Kingdom - Módulo".
#
# Este script permite remover todos itens/armas/armaduras e ouro do personagem
# utilizando um comando via "Chamar Script", bem como devolver todos os itens
# retirados pelo mesmo jeito.
#
# Para remover todo o inventário utilize o código: "ktake_items"
#
# Para devolver todo o inventário utilize o código: "kdevolve_items"
#==============================================================================
class Game_Party < Game_Unit
 
  def unequip_all
    members.each do |i|
      i.equip_slots.each do |j|
        i.change_equip(j, nil)
      end
    end
  end
end
#==============================================================================
class Game_Interpreter
  alias knew_initialize initialize
  def initialize
    knew_initialize
    $inventary = Array.new(4)
    $inventary[0] = Array.new($data_items.size - 1)
    $inventary[1] = Array.new($data_weapons.size - 1)
    $inventary[2] = Array.new($data_armors.size - 1)
    $inventary[3] = Array.new(1)
  end
 
  def ktake_items
    $game_party.unequip_all
    for n in 0..$data_items.size
      $inventary[0][n] = $game_party.item_number($data_items[n])
    end
    for n in 0..$data_weapons.size
      $inventary[1][n] = $game_party.item_number($data_weapons[n])
    end
    for n in 0..$data_armors.size
      $inventary[2][n] = $game_party.item_number($data_armors[n])
    end
    $inventary[3] = $game_party.gold
    $game_party.init_all_items
    $game_party.gain_gold(-999999)
  end
 
  def kdevolve_items
    for n in 0..$data_items.size
      $game_party.gain_item($data_items[n], $inventary[0][n])
    end
    for n in 0..$data_weapons.size
      $game_party.gain_item($data_weapons[n], $inventary[1][n])
    end
    for n in 0..$data_armors.size
      $game_party.gain_item($data_armors[n], $inventary[2][n])
    end
    $game_party.gain_gold($inventary[3])
  end
end

Gracias y un saludo!
avatar
masterxg
Novato
Novato

0/3

Créditos 107

Gracias : 5

Volver arriba Ir abajo

RPG Maker VX ACE Re: Problema con un script y los eventos comunes

Mensaje por masterxg el 2018-09-08, 03:15

Bueno, tras mucho investigar, he encontrado el error. 5 de la mañana... Esto va a acabar conmigo xD

Pongo enlace al script corregido, ya debería de ir bien:http://www.mundo-maker.com/t15371-kingdom-take-items-script-para-guardar-temporalmente-todos-los-items-de-la-bolsa#111880

NOTA: Por si alguien tiene curiosidad, lo que cambié con respecto al original fue la inicialización de las variables de memoria donde se almacena la información. Todavía no sé por qué (el eterno dilema del programador xD) pero si la inicialización se hacía en Game_Interpreter, los eventos comunes no funcionaban. Así que la moví al Game_Party.
avatar
masterxg
Novato
Novato

0/3

Créditos 107

Gracias : 5

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.