Últimos temas
» [VX] Jikan: La Bruja del Tiempo
por kroko Jue Mayo 06, 2021 9:11 pm

» Cese de actividad del foro
por Muzgar Mar Abr 20, 2021 10:50 pm

» Escaping From The Dark - Juego de Misterio y Terror - [MZ] - Descarga disponible
por rstudios Jue Abr 15, 2021 11:27 pm

» Concursos anuales del foro 2021 [Resultados]
por Vesper Lun Abr 12, 2021 12:24 am

» Concursos anuales del foro 2021 [Votaciones]
por Lenny Sáb Abr 03, 2021 7:36 pm

» "El Destino de los 5 Libros"(Alfa)
por ShinZeta Jue Abr 01, 2021 4:56 am

» La Brújula de Zaza (JUEGO COMPLETO) (VXACE)
por Pocari Miér Mar 31, 2021 6:45 pm

» Ayuda con los puzzles de mi juego
por Chadoumaru Mar Mar 23, 2021 12:18 am

» RPGXP La maldición de Grim
por Alex1633 Sáb Mar 20, 2021 9:54 pm

» ¡Eventos y concursos anuales del foro! [2021]
por Lenny Sáb Mar 13, 2021 1:33 pm

» Los guerreros iluminados (Windows y android) Juego completo
por CalamarRojo Sáb Mar 13, 2021 12:14 am

» Laminación: Al otro lado de la brecha (NUEVO PROYECTO)
por Pocari Dom Mar 07, 2021 8:27 pm


Fallo en script de crafteo (RGSS3)

Ir abajo

Fallo en script de crafteo (RGSS3) Empty Fallo en script de crafteo (RGSS3)

Mensaje por Klayer Mar Ago 25, 2020 1:03 pm

Hola de nuevo, mi gente menos rubia que yo.
Vengo de vuelta para pediros un pequeño favor, puesto que intento terminar los proyectos que tengo pendientes.
Siempre había usado un script de crafting para uno de mis proyectos y nunca me había dado problemas.
Estos últimos días ha comenzado a fallar y me gustaría encontrar a alguien que supiese más o menos qué ocurre, para poder solucionarlo.
Fallo en script de crafteo (RGSS3) Sin_tz10


Script:
Spoiler:
# )----------------------------------------------------------------------------(
# )--     AUTHOR:     Mr. Trivel                                             --(
# )--     NAME:       Crafting Simple                                        --(
# )--     CREATED:    2014-06-25                                             --(
# )--     VERSION:    1.0                                                    --(
# )----------------------------------------------------------------------------(
# )--                         VERSION HISTORY                                --(
# )--  1.0 - Initial Release                                                 --(
# )----------------------------------------------------------------------------(
# )--                          DESCRIPTION                                   --(
# )--  Adds crafting. Infinite amount of different crafting Disciplines, each--(
# )--  having it's own level. Recipes can be learned by calling a method or  --(
# )--  by gaining a higher level in specific crafting discipline.            --(
# )----------------------------------------------------------------------------(
# )--                          INSTRUCTIONS                                  --(
# )--                  Carefully set up everything.                          --(
# )--          Learn new recipes by calling learn_recipe(id) method          --(
# )--  Call crafting scene by calling SceneManager.call(MrTS_Scene_Crafting) --(
# )----------------------------------------------------------------------------(
# )--                          LICENSE INFO                                  --(
# )--    http://mrtrivelvx.wordpress.com/terms-of-use/                       --(
# )----------------------------------------------------------------------------(

# )----------------------------------------------------------------------------(
# )--         Main Crafting module - Setup all data you want here.           --(
# )----------------------------------------------------------------------------(
module MrTS
 module Crafting
   # )------------------------------------------------------------------------(
   # )--  Formula for craft levels exp requirements.                        --(
   # )--  "50 * lvl" would mean level 1 requires 50 EXP, level 2 - 100 EXP..--(
   # )------------------------------------------------------------------------(
   CRAFT_EXP_FORMULA = "50 * lvl"
 
   # )------------------------------------------------------------------------(
   # )--  Max level of Discipline player can reach.                         --(
   # )------------------------------------------------------------------------(
   CRAFT_MAX_LEVEL = 60
 
   # )------------------------------------------------------------------------(
   # )--  Setup your Discipline names here.                                 --(
   # )------------------------------------------------------------------------(
   DISCIPLINES = { 0 => "Armas",
                   1 => "Comida",
                   2 => "Armaduras",
                   3 => "Pociones",
                   4 => "Otros",
                   5 => "Materiales",
                 }
   # )------------------------------------------------------------------------(
   # )--  Setup Recipes here.                                               --(
   # )------------------------------------------------------------------------(
   # )--  TYPE - 0: Item, 1: Weapon: 2: Armor                               --(
   # )--  ITEM = [TYPE, ID, AMOUNT]                                         --(
   # )------------------------------------------------------------------------(
   # )--  :discipline => ID of the Discipline, the DISCIPLINES Key value.   --(
   # )--                                                                    --(
   # )--  :item => [TYPE, ID, AMOUNT] - What item Player gets from crafting --(
   # )--  with this recipe. ID from database. AMOUNT - how much of the item --(
   # )--  Player gets                                                       --(
   # )--                                                                    --(
   # )--  :exp => AMOUNT - How much Discipline EXP Player gets.             --(
   # )--                                                                    --(
   # )--  :ingredients => [ITEM, ITEM, ITEM]                                --(
   # )--  What items Player requires to be able to craft using this Recipe. --(
   # )--  E.g. [[0, 10, 7], [1, 15, 1]]                                     --(
   # )--                                                                    --(
   # )--  :unlocking => HOW - "default" it will be there by default (only   --(
   # )--  shown if player has sufficient discipline level requirement.       --(
   # )--  "learn" - learned from method call learn_recipe(ID)               --(
   # )--                                                                    --(
   # )--  :level_req - LEVEL - Discipline level requirement                 --(
   # )------------------------------------------------------------------------(
   RECIPES = {
     0 => {
         :discipline   => 1,
         :item         => [0,2,1],
         :exp          => 5,
         :ingredients  => [[0,3,2],[0,4,1]],      
         :unlocking    => "default",
         :level_req    => 0
     },
     1 => {
         :discipline   => 4,
         :item         => [0,61,1],
         :exp          => 8,
         :ingredients  => [[0,44,1],[0,62,1]],      
         :unlocking    => "learn",
         :level_req    => 0
     },
     2 => {
         :discipline   => 1,
         :item         => [0,59,1],
         :exp          => 10,
         :ingredients  => [[0,22,2],[0,41,2],[0,40,2],[0,61,1]],      
         :unlocking    => "learn",
         :level_req    => 0
     },
     3 => {
         :discipline   => 3,
         :item         => [0,95,1],
         :exp          => 8,
         :ingredients  => [[0,80,3],[0,83,2],[0,68,1]],      
         :unlocking    => "learn",
         :level_req    => 0
     },
     4 => {
         :discipline   => 3,
         :item         => [0,97,1],
         :exp          => 20,
         :ingredients  => [[0,85,1],[0,95,4]],      
         :unlocking    => "learn",
         :level_req    => 0
     },
     5 => {
         :discipline   => 1,
         :item         => [0,5,1],
         :exp          => 8,
         :ingredients  => [[0,16,2],[0,53,2],[0,101,1]],      
         :unlocking    => "learn",
         :level_req    => 0
     },
     6 => {
         :discipline   => 4,
         :item         => [0,32,1],
         :exp          => 15,
         :ingredients  => [[0,29,3],[0,30,2]],      
         :unlocking    => "learn",
         :level_req    => 0
     },
     7 => {
         :discipline   => 4,
         :item         => [0,14,1],
         :exp          => 2,
         :ingredients  => [[0,29,1],[0,42,1]],      
         :unlocking    => "learn",
         :level_req    => 0
     },
     8 => {
         :discipline   => 5,
         :item         => [0,29,1],
         :exp          => 3,
         :ingredients  => [[0,17,2]],      
         :unlocking    => "default",
         :level_req    => 0
     },
     9 => {
         :discipline   => 5,
         :item         => [0,30,1],
         :exp          => 8,
         :ingredients  => [[0,17,2]],      
         :unlocking    => "default",
         :level_req    => 0
     },
     10 => {
         :discipline   => 5,
         :item         => [0,42,1],
         :exp          => 5,
         :ingredients  => [[0,17,3]],      
         :unlocking    => "default",
         :level_req    => 0
     },
     11=> {
         :discipline   => 5,
         :item         => [0,62,1],
         :exp          => 10,
         :ingredients  => [[0,17,2]],      
         :unlocking    => "default",
         :level_req    => 2
     },
     12 => {
         :discipline   => 5,
         :item         => [0,44,1],
         :exp          => 12,
         :ingredients  => [[0,17,3]],      
         :unlocking    => "default",
         :level_req    => 2
     },
     13 => {
         :discipline   => 5,
         :item         => [0,43,1],
         :exp          => 13,
         :ingredients  => [[0,17,5]],      
         :unlocking    => "default",
         :level_req    => 2
     },
     14=> {
         :discipline   => 5,
         :item         => [0,49,1],
         :exp          => 10,
         :ingredients  => [[0,17,4],[0,61,1]],      
         :unlocking    => "default",
         :level_req    => 3
     },
     15 => {
         :discipline   => 5,
         :item         => [0,50,1],
         :exp          => 5,
         :ingredients  => [[0,17,2],[0,61,1]],      
         :unlocking    => "default",
         :level_req    => 3
     },
     16 => {
         :discipline   => 5,
         :item         => [0,51,1],
         :exp          => 15,
         :ingredients  => [[0,17,6],[0,61,1]],      
         :unlocking    => "default",
         :level_req    => 3
     },
     17=> {
         :discipline   => 5,
         :item         => [0,31,1],
         :exp          => 12,
         :ingredients  => [[0,17,4]],      
         :unlocking    => "default",
         :level_req    => 4
     },
     18 => {
         :discipline   => 5,
         :item         => [0,45,1],
         :exp          => 10,
         :ingredients  => [[0,17,3]],      
         :unlocking    => "default",
         :level_req    => 4
     },
     19 => {
         :discipline   => 5,
         :item         => [0,46,1],
         :exp          => 18,
         :ingredients  => [[0,17,3]],      
         :unlocking    => "default",
         :level_req    => 4
     },
     20 => {
         :discipline   => 0,
         :item         => [1,4,1],
         :exp          => 10,
         :ingredients  => [[1,2,1],[1,1,1]],      
         :unlocking    => "default",
         :level_req    => 0
     },
     21 => {
         :discipline   => 1,
         :item         => [0,118,1],
         :exp          => 12,
         :ingredients  => [[0,40,1],[0,116,2],[0,63,1]],      
         :unlocking    => "learn",
         :level_req    => 0
     },
     22 => {
         :discipline   => 1,
         :item         => [0,6,1],
         :exp          => 25,
         :ingredients  => [[0,13,1],[0,108,1],[0,109,1],[0,107,1],[0,104,1],[0,106,1]],      
         :unlocking    => "learn",
         :level_req    => 0
     },
     23 => {
         :discipline   => 1,
         :item         => [0,60,1],
         :exp          => 36,
         :ingredients  => [[0,105,1],[0,104,1],[0,110,1],[0,108,1],[0,49,1],[0,114,1],[0,119,1],[0,115,1]],      
         :unlocking    => "learn",
         :level_req    => 0
     },
     24 => {
         :discipline   => 1,
         :item         => [0,120,3],
         :exp          => 10,
         :ingredients  => [[0,102,1],[0,103,1]],      
         :unlocking    => "learn",
         :level_req    => 0
     },
     25 => {
         :discipline   => 1,
         :item         => [0,122,1],
         :exp          => 25,
         :ingredients  => [[0,113,2],[0,112,7],[0,111,4],[0,109,3],[0,63,1]],      
         :unlocking    => "learn",
         :level_req    => 0
     },
     26 => {
         :discipline   => 1,
         :item         => [0,121,1],
         :exp          => 12,
         :ingredients  => [[0,113,1],[0,112,2],[0,63,1],[0,111,2]],      
         :unlocking    => "learn",
         :level_req    => 0
     },
     27 => {
         :discipline   => 4,
         :item         => [0,127,1],
         :exp          => 30,
         :ingredients  => [[0,89,1],[0,68,1],[0,45,2]],      
         :unlocking    => "default",
         :level_req    => 4
     },
     28 => {
         :discipline   => 4,
         :item         => [0,125,1],
         :exp          => 26,
         :ingredients  => [[0,50,2],[0,44,1],[0,45,2]],      
         :unlocking    => "default",
         :level_req    => 3
     },
     29 => {
         :discipline   => 4,
         :item         => [0,126,1],
         :exp          => 11,
         :ingredients  => [[0,29,3]],      
         :unlocking    => "default",
         :level_req    => 2
     },
     30 => {
         :discipline   => 4,
         :item         => [0,124,1],
         :exp          => 18,
         :ingredients  => [[0,62,3]],      
         :unlocking    => "default",
         :level_req    => 2
     },
     31 => {
         :discipline   => 4,
         :item         => [0,123,1],
         :exp          => 30,
         :ingredients  => [[0,79,8]],      
         :unlocking    => "default",
         :level_req    => 3
     },
     32 => {
         :discipline   => 3,
         :item         => [0,130,1],
         :exp          => 9,
         :ingredients  => [[0,3,5]],      
         :unlocking    => "default",
         :level_req    => 0
     },
     33 => {
         :discipline   => 4,
         :item         => [0,129,1],
         :exp          => 21,
         :ingredients  => [[0,125,1],[0,126,1],[0,68,1]],      
         :unlocking    => "default",
         :level_req    => 5
     },
     34 => {
         :discipline   => 3,
         :item         => [0,128,1],
         :exp          => 45 ,
         :ingredients  => [[0,127,2],[0,129,2],[0,125,1],[0,61,1]],      
         :unlocking    => "default",
         :level_req    => 4
     },
     35 => {
         :discipline   => 2,
         :item         => [2,12,1],
         :exp          => 20 ,
         :ingredients  => [[0,132,1],[0,88,1]],      
         :unlocking    => "learn",
         :level_req    => 0
     },
     36 => {
         :discipline   => 2,
         :item         => [2,8,1],
         :exp          => 20 ,
         :ingredients  => [[0,133,1],[0,134,1],[0,88,1]],      
         :unlocking    => "learn",
         :level_req    => 0
     },
     37 => {
         :discipline   => 0,
         :item         => [1,5,1],
         :exp          => 23 ,
         :ingredients  => [[0,133,1],[0,134,1],[0,87,1]],      
         :unlocking    => "learn",
         :level_req    => 0
     },
     38 => {
         :discipline   => 0,
         :item         => [1,10,1],
         :exp          => 23 ,
         :ingredients  => [[0,132,1],[0,87,1]],      
         :unlocking    => "learn",
         :level_req    => 0
     },
     39 => {
         :discipline   => 4,
         :item         => [0,141,1],
         :exp          => 8 ,
         :ingredients  => [[0,43,3]],      
         :unlocking    => "learn",
         :level_req    => 0
     },
     40 => {
         :discipline   => 4,
         :item         => [0,142,1],
         :exp          => 35 ,
         :ingredients  => [[0,15,50],[0,141,1]],      
         :unlocking    => "learn",
         :level_req    => 0
     },
     41 => {
         :discipline   => 4,
         :item         => [0,8,1],
         :exp          => 28 ,
         :ingredients  => [[0,143,1],[0,144,2]],      
         :unlocking    => "learn",
         :level_req    => 0
     },
      42 => {
         :discipline   => 3,
         :item         => [0,73,1],
         :exp          => 30 ,
         :ingredients  => [[0,146,1],[0,44,2],[0,126,1]],      
         :unlocking    => "learn",
         :level_req    => 0
     },
      43 => {
         :discipline   => 3,
         :item         => [0,147,1],
         :exp          => 58 ,
         :ingredients  => [[0,129,1],[0,3,2],[0,9,3],[0,61,1]],      
         :unlocking    => "default",
         :level_req    => 7
     },
      44 => {
         :discipline   => 4,
         :item         => [0,150,1],
         :exp          => 3 ,
         :ingredients  => [[0,144,1]],      
         :unlocking    => "default",
         :level_req    => 0
     },
     45 => {
         :discipline   => 0,
         :item         => [1,9,1],
         :exp          => 23 ,
         :ingredients  => [[1,3,1],[1,5,1]],      
         :unlocking    => "learn",
         :level_req    => 0
     },
     46 => {
         :discipline   => 2,
         :item         => [2,14,1],
         :exp          => 30 ,
         :ingredients  => [[0,145,4],[0,125,2]],      
         :unlocking    => "default",
         :level_req    => 2
     },
     47 => {
         :discipline   => 2,
         :item         => [2,15,1],
         :exp          => 35 ,
         :ingredients  => [[0,146,1],[0,125,2]],      
         :unlocking    => "default",
         :level_req    => 2
     },
     48 => {
         :discipline   => 4,
         :item         => [0,182,1],
         :exp          => 20 ,
         :ingredients  => [[0,29,2],[0,144,2]],      
         :unlocking    => "default",
         :level_req    => 3
     },
     49 => {
         :discipline   => 4,
         :item         => [0,183,1],
         :exp          => 20 ,
         :ingredients  => [[0,29,2],[0,144,2]],      
         :unlocking    => "default",
         :level_req    => 3
     },
     50 => {
         :discipline   => 3,
         :item         => [0,185,1],
         :exp          => 25 ,
         :ingredients  => [[0,184,1],[0,41,2],[0,61,1]],      
         :unlocking    => "learn",
         :level_req    => 0
     },
     51 => {
         :discipline   => 3,
         :item         => [0,73,1],
         :exp          => 38,
         :ingredients  => [[0,44,2],[0,129,1],[0,68,1]],      
         :unlocking    => "learn",
         :level_req    => 0
     },
     52 => {
         :discipline   => 4,
         :item         => [0,197,1],
         :exp          => 40,
         :ingredients  => [[0,44,2],[0,68,1],[0,198,1]],      
         :unlocking    => "learn",
         :level_req    => 0
     },
     53 => {
         :discipline   => 2,
         :item         => [2,17,1],
         :exp          => 10,
         :ingredients  => [[0,200,1],[0,4,1],[0,3,4]],      
         :unlocking    => "default",
         :level_req    => 0
     },
     }
 
   # )------------------------------------------------------------------------(
   # )--  Crafting command text.                                            --(
   # )------------------------------------------------------------------------(
   TEXT_CRAFT = "Construir"
 
   # )------------------------------------------------------------------------(
   # )--  Disciplines command text                                          --(
   # )------------------------------------------------------------------------(
   TEXT_DISCIPLINES = "Disciplinas"
 
   # )------------------------------------------------------------------------(
   # )--                  Setting up part - finished.                       --(
   # )------------------------------------------------------------------------(
 
   # )------------------------------------------------------------------------(
   # )--  Method: self.get_all_recipes                                      --(
   # )------------------------------------------------------------------------(
   def self.get_all_recipes(discipline)
     recipes = []
     RECIPES.each_key do |key|
       data = RECIPES[key]
       if  data[:discipline] == discipline &&
           data[:level_req] <= $game_party.get_discipline_level(discipline) &&
           (data[:unlocking] == "default" || $game_party.known_recipe?(key))
         recipes.push(key)
       end
     end
     return recipes
   end
 
 end
end

# )----------------------------------------------------------------------------(
# )--  Don't worry about this one.                                           --(
# )--                                                                        --(
$imported ||= {} ; $imported["MrTS_Crafting_Main"] = true #                  --(
# )----------------------------------------------------------------------------(

# )----------------------------------------------------------------------------(
# )--  Class: MrTS_Scene_Crafting                                            --(
# )----------------------------------------------------------------------------(
class MrTS_Scene_Crafting < Scene_Base

 # )--------------------------------------------------------------------------(
 # )--  Method: start                                                       --(
 # )--------------------------------------------------------------------------(
 def start
   create_main_viewport
   create_all_windows
 end

 # )--------------------------------------------------------------------------(
 # )--  Method: create_all_windows                                          --(
 # )--------------------------------------------------------------------------(
 def create_all_windows
   create_help_window
   create_main_command_window
   create_discipline_info_window
   create_item_list_window
   create_requirements_window
   create_disciplines_command_window
 end

 # )--------------------------------------------------------------------------(
 # )-- All Windows
 # )-----

 # )--------------------------------------------------------------------------(
 # )--  Method: create_help_window                                          --(
 # )--------------------------------------------------------------------------(
 def create_help_window
   @help_window = Window_Help.new
   @help_window.viewport = @viewport
   @help_window.y = Graphics.height - @help_window.height
 end

 # )--------------------------------------------------------------------------(
 # )--  Method: create_main_command_window                                  --(
 # )--------------------------------------------------------------------------(
 def create_main_command_window
   @command_window = MrTS_Main_Command_Window.new
   @command_window.set_handler(:discover_on, method(:command_discover_on))
   @command_window.set_handler(:discipline_on, method(:command_discipline_on))
   @command_window.set_handler(:craft_on, method(:command_craft_on))
   @command_window.set_handler(:cancel, method(:command_cancel_on))
 end

 # )--------------------------------------------------------------------------(
 # )--  Method: create_discipline_info_window                               --(
 # )--------------------------------------------------------------------------(
 def create_discipline_info_window
   @discipline_info_window = MrTS_Discipline_Info_Window.new
 end

 # )--------------------------------------------------------------------------(
 # )--  Method: create_item_list_window                                     --(
 # )--------------------------------------------------------------------------(
 def create_item_list_window
   @item_window = MrTS_Item_Window.new(@command_window.height, Graphics.height-@command_window.height-@help_window.height)
   @item_window.set_handler(:cancel, method(:item_list_cancel_on))
   @item_window.set_handler(:ok, method(:item_list_ok_on))
   @item_window.help_window = @help_window
 end

 # )--------------------------------------------------------------------------(
 # )--  Method: create_requirements_window                                  --(
 # )--------------------------------------------------------------------------(
 def create_requirements_window
   @requirements_window = MrTS_Requirements_Window.new(@item_window.y, @item_window.height)
   @item_window.requirement_window = @requirements_window
 end

 # )--------------------------------------------------------------------------(
 # )--  Method: create_disciplines_command_window                           --(
 # )--------------------------------------------------------------------------(
 def create_disciplines_command_window
   @discipline_command_window = MrTS_Discipline_Command_Window.new(@command_window.width/2, @command_window.height)
   @discipline_command_window.set_handler(:ok, method(:discipline_choice_on))
   @discipline_command_window.set_handler(:cancel, method(:discipline_cancel_on))
 end

 # )--------------------------------------------------------------------------(
 # )-- All methods for windows
 # )-----
 # )---
 # )--  Command Window
 # )-

 # )--------------------------------------------------------------------------(
 # )--  Method: command_discover_on                                         --(
 # )--------------------------------------------------------------------------(
 def command_discover_on
   @item_window.activate
   @item_window.type = 0
   @requirements_window.type = 0
   @item_window.refresh
   @item_window.select(0)
 end

 # )--------------------------------------------------------------------------(
 # )--  Method: command_craft_on                                    --(
 # )--------------------------------------------------------------------------(
 def command_craft_on
   @item_window.activate
   @item_window.type = 1
   @requirements_window.type = 1
   @item_window.refresh
   @item_window.select(0)
 end

 # )--------------------------------------------------------------------------(
 # )--  Method: command_discipline_on                                       --(
 # )--------------------------------------------------------------------------(
 def command_discipline_on
   @discipline_command_window.open
   @discipline_command_window.activate
 end

 # )--------------------------------------------------------------------------(
 # )--  Method: command_cancel_on                                           --(
 # )--------------------------------------------------------------------------(
 def command_cancel_on
   return_scene
 end

 # )---
 # )--  Item List Window
 # )-

 # )--------------------------------------------------------------------------(
 # )--  Method: item_list_cancel_on                                         --(
 # )--------------------------------------------------------------------------(
 def item_list_cancel_on
   @item_window.unselect
   @command_window.activate
 end

 # )--------------------------------------------------------------------------(
 # )--  Method: item_list_ok_on                                             --(
 # )--------------------------------------------------------------------------(
 def item_list_ok_on
   @requirements_window.craft_item
   @item_window.activate
   @discipline_info_window.refresh
   @item_window.refresh
 end

 # )---
 # )--  Discipline Command List Window
 # )-

 # )--------------------------------------------------------------------------(
 # )--  Method: discipline_choice_on                                        --(
 # )--------------------------------------------------------------------------(
 def discipline_choice_on
   i = @discipline_command_window.index
   @item_window.discipline = i
   @item_window.refresh
   @discipline_info_window.discipline = i
   @discipline_info_window.refresh
   @command_window.activate
   @discipline_command_window.close
 end

 # )--------------------------------------------------------------------------(
 # )--  Method: discipline_cancel_on                                        --(
 # )--------------------------------------------------------------------------(
 def discipline_cancel_on
   @command_window.activate
   @discipline_command_window.close
 end  
end


# )----------------------------------------------------------------------------(
# )--  Class: MrTS_Requirements_Window                                       --(
# )----------------------------------------------------------------------------(
class MrTS_Requirements_Window < Window_Base

 # )--------------------------------------------------------------------------(
 # )--  Method: initialize                                                  --(
 # )--------------------------------------------------------------------------(
 def initialize(y, height)
   super(Graphics.width/2, y, Graphics.width/2, height)
   @type = 0
 end

 # )--------------------------------------------------------------------------(
 # )--  Method: type=                                                       --(
 # )--------------------------------------------------------------------------(
 def type=(value)
   @type = value
 end

 # )--------------------------------------------------------------------------(
 # )--  Method: get_true_item                                               --(
 # )--------------------------------------------------------------------------(
 def get_true_item(i)
   return unless i
   return [$data_items[i[1]], i[2]] if i[0] == 0
   return [$data_weapons[i[1]], i[2]] if i[0] == 1
   return [$data_armors[i[1]], i[2]] if i[0] == 2
 end

 # )--------------------------------------------------------------------------(
 # )--  Method: set_recipe                                                  --(
 # )--------------------------------------------------------------------------(
 def set_recipe(item)
   return unless item
   @recipe = item
   @item_list = []
   MrTS::Crafting::RECIPES[@recipe][:ingredients].each { |i| @item_list.push(get_true_item(i)) }
   refresh
 end

 # )--------------------------------------------------------------------------(
 # )--  Method: refresh                                                     --(
 # )--------------------------------------------------------------------------(
 def refresh
   contents.clear
   draw_window_name
   draw_item_requirements
 end

 # )--------------------------------------------------------------------------(
 # )--  Method: draw_window_name                                            --(
 # )--------------------------------------------------------------------------(
 def draw_window_name
   change_color(system_color)
   draw_text(0,0,contents.width, line_height, @type == 1 ? "Requisitos" : "Items added:", 1)
   change_color(normal_color)
 end

 # )--------------------------------------------------------------------------(
 # )--  Method: draw_item_requirements                                      --(
 # )--------------------------------------------------------------------------(
 def draw_item_requirements
   return unless @recipe    
   a = 0
   @item_list.each do |il|
     y = line_height + line_height*a
     draw_item_name(il[0], 0, y)
     txt = "/" + il[1].to_s
     draw_text(0, y, contents.width, line_height, txt, 2)
     nmb = $game_party.item_number(il[0])
     change_color(nmb >= il[1] ? tp_cost_color : nmb == 0 ? power_down_color : crisis_color)
     draw_text(0, y, contents.width-text_size(txt).width, line_height, nmb, 2)
     a += 1
   end
   change_color(system_color)
   txt = "EXP: "
   txtw = text_size(txt).width
   draw_text(0, contents.height - line_height, contents.width-txtw, line_height, txt, 1)
   change_color(crisis_color)
   draw_text(0, contents.height - line_height, contents.width+txtw, line_height, MrTS::Crafting::RECIPES[@recipe][:exp].to_s, 1)
 end

 # )--------------------------------------------------------------------------(
 # )--  Method: craft_item                                                  --(
 # )--------------------------------------------------------------------------(
 def craft_item
   @item_list.each do |il|
     if $game_party.item_number(il[0]) < il[1]
       Sound.play_buzzer
       return
     end
   end
   @item_list.each do |il|
     $game_party.lose_item(il[0], il[1])
   end
   geto = get_true_item(MrTS::Crafting::RECIPES[@recipe][:item])
   $game_party.gain_item(geto[0], geto[1])
   $game_party.add_craft_exp(MrTS::Crafting::RECIPES[@recipe][:discipline], MrTS::Crafting::RECIPES[@recipe][:exp])
 end
end


# )----------------------------------------------------------------------------(
# )--  Class: MrTS_Item_Window                                               --(
# )----------------------------------------------------------------------------(
class MrTS_Item_Window < Window_Selectable

 # )--------------------------------------------------------------------------(
 # )--  Method: initialize                                                  --(
 # )--------------------------------------------------------------------------(
 def initialize(y, height)
   super(0, y, Graphics.width/2, height)
   @discipline = 0
   @type = 1
   @data = []
   @requirement_window = nil
   refresh
 end

 # )--------------------------------------------------------------------------(
 # )--  Method: type=                                                       --(
 # )--------------------------------------------------------------------------(
 def type=(value)
   @type = value
 end

 # )--------------------------------------------------------------------------(
 # )--  Method: discipline=                                                 --(
 # )--------------------------------------------------------------------------(
 def discipline=(value)
   @discipline = value
 end

 # )--------------------------------------------------------------------------(
 # )--  Method: requirement_window=                                         --(
 # )--------------------------------------------------------------------------(
 def requirement_window=(value)
   @requirement_window = value
 end

 # )--------------------------------------------------------------------------(
 # )--  Method: col_max                                                     --(
 # )--------------------------------------------------------------------------(
 def col_max
   return 1
 end

 # )--------------------------------------------------------------------------(
 # )--  Method: item_max                                                    --(
 # )--------------------------------------------------------------------------(
 def item_max
   @data ? @data.size : 1
 end

 # )--------------------------------------------------------------------------(
 # )--  Method: item                                                        --(
 # )--------------------------------------------------------------------------(
 def item
   @data && index >= 0 ? @data[index] : nil
 end

 # )--------------------------------------------------------------------------(
 # )--  Method: current_item_enabled?                                       --(
 # )--------------------------------------------------------------------------(
 def current_item_enabled? ; true ;  end

 # )--------------------------------------------------------------------------(
 # )--  Method: include?                                                    --(
 # )--------------------------------------------------------------------------(
 def include?(item) ; true ;  end

 # )--------------------------------------------------------------------------(
 # )--  Method: discipline_cancel_on                                        --(
 # )--------------------------------------------------------------------------(
 def make_item_list
   @data = @type == 0 ? $game_party.all_items : MrTS::Crafting::get_all_recipes(@discipline)
 end

 # )--------------------------------------------------------------------------(
 # )--  Method: select_last                                                 --(
 # )--------------------------------------------------------------------------(
 def select_last
   select(@data.index($game_party.last_item.object) || 0)
 end

 # )--------------------------------------------------------------------------(
 # )--  Method: draw_item                                                   --(
 # )--------------------------------------------------------------------------(
 def draw_item(index)
   case @type
   when 0
     item = @data[index]
     if item
       rect = item_rect(index)
       rect.width -= 4
       draw_item_name(item, rect.x, rect.y, true)
       draw_item_number(rect, item)
     end
   when 1
     item = @data[index]
     if item
       rect = item_rect(index)
       rect.width -= 4
       draw_recipe_name(item, rect.x, rect.y, true)
     end
   end    
 end

 # )--------------------------------------------------------------------------(
 # )--  Method: draw_recipe_name                                            --(
 # )--------------------------------------------------------------------------(
 def draw_recipe_name(item, x, y, enabled)
   return unless item
   true_item = get_true_item(item)
   draw_icon(true_item.icon_index, x, y, enabled)
   change_color(normal_color, enabled)
   draw_text(x + 24, y, width, line_height, true_item.name)
   draw_text(x, y, contents.width, line_height, sprintf("x%2d", $game_party.item_number(true_item)), 2)
 end

 # )--------------------------------------------------------------------------(
 # )--  Method: get_true_item                                               --(
 # )--------------------------------------------------------------------------(
 def get_true_item(i)
   return unless i
   temp = MrTS::Crafting::RECIPES[i][:item]
   return $data_items[temp[1]] if temp[0] == 0
   return $data_weapons[temp[1]] if temp[0] == 1
   return $data_armors[temp[1]] if temp[0] == 2
 end

 # )--------------------------------------------------------------------------(
 # )--  Method: draw_item_number                                            --(
 # )--------------------------------------------------------------------------(
 def draw_item_number(rect, item)
   draw_text(rect, sprintf(":%2d", $game_party.item_number(item)), 2)
 end

 # )--------------------------------------------------------------------------(
 # )--  Method: update_help                                                 --(
 # )--------------------------------------------------------------------------(
 def update_help
   @help_window.set_item(@type == 0 ? item : get_true_item(item))
   @requirement_window.set_recipe(item) if @type == 1
 end

 # )--------------------------------------------------------------------------(
 # )--  Method: refresh                                                     --(
 # )--------------------------------------------------------------------------(
 def refresh
   make_item_list
   create_contents
   draw_all_items
 end
end


# )----------------------------------------------------------------------------(
# )--  Class: MrTS_Discipline_Info_Window                                    --(
# )----------------------------------------------------------------------------(
class MrTS_Discipline_Info_Window < Window_Base

 # )--------------------------------------------------------------------------(
 # )--  Public Instance Variables                                           --(
 # )--------------------------------------------------------------------------(
 attr_writer :discipline

 # )--------------------------------------------------------------------------(
 # )--  Method: initialize                                                  --(
 # )--------------------------------------------------------------------------(
 def initialize
   super(Graphics.width - Graphics.width/2+50, 0, Graphics.width/2-50, line_height + standard_padding*2)
   @discipline = 0
   refresh
 end

 # )--------------------------------------------------------------------------(
 # )--  Method: refresh                                                     --(
 # )--------------------------------------------------------------------------(
 def refresh
   contents.clear
   change_color(system_color)
   draw_text(0,-5,contents.width, line_height, MrTS::Crafting::DISCIPLINES[@discipline].to_s)
   change_color(normal_color)
   draw_text(0,-5,contents.width, line_height, "Lv: " + $game_party.get_discipline_level(@discipline).to_s,2)
   draw_gauge(0, 4, contents.width, $game_party.get_discipline_rate(@discipline), normal_color, crisis_color)
   make_font_smaller
   change_color(power_down_color)
   draw_text(10, 7, contents.width, line_height, $game_party.get_discipline_exp(@discipline).to_s + "/" + $game_party.get_discipline_next_level_exp(@discipline).to_s, 1)
   change_color(normal_color)
   make_font_bigger
 end
end


# )----------------------------------------------------------------------------(
# )--  Class: MrTS_Main_Command_Window                                       --(
# )----------------------------------------------------------------------------(
class MrTS_Main_Command_Window < Window_HorzCommand

 # )--------------------------------------------------------------------------(
 # )--  Method: initialize                                                  --(
 # )--------------------------------------------------------------------------(
 def initialize
   super(0,0)
 end

 # )--------------------------------------------------------------------------(
 # )--  Method: window_width                                                --(
 # )--------------------------------------------------------------------------(
 def window_width
   (Graphics.width/2)+50
 end

 # )--------------------------------------------------------------------------(
 # )--  Method: col_max                                                     --(
 # )--------------------------------------------------------------------------(
 def col_max
   return 2
 end

 # )--------------------------------------------------------------------------(
 # )--  Method: spacing                                                     --(
 # )--------------------------------------------------------------------------(
 def spacing
   return 3
 end

 # )--------------------------------------------------------------------------(
 # )--  Method: make_command_list                                           --(
 # )--------------------------------------------------------------------------(
 def make_command_list
   add_command(MrTS::Crafting::TEXT_CRAFT, :craft_on)
   add_command(MrTS::Crafting::TEXT_DISCIPLINES, :discipline_on)
 end

 # )--------------------------------------------------------------------------(
 # )--  Method: item_rect_for_text                                          --(
 # )--------------------------------------------------------------------------(
 def item_rect_for_text(index)
   rect = item_rect(index)
   rect
 end
end


# )----------------------------------------------------------------------------(
# )--  Class: MrTS_Discipline_Command_Window                                 --(
# )----------------------------------------------------------------------------(
class MrTS_Discipline_Command_Window < Window_Command

 # )--------------------------------------------------------------------------(
 # )--  Method: initialize                                                  --(
 # )--------------------------------------------------------------------------(
 def initialize(x, y)
   super(x, y)
   self.openness = 0
 end

 # )--------------------------------------------------------------------------(
 # )--  Method: window_width                                                --(
 # )--------------------------------------------------------------------------(
 def window_width
   ((Graphics.width/2)+50)/2
 end

 # )--------------------------------------------------------------------------(
 # )--  Method: make_command_list                                           --(
 # )--------------------------------------------------------------------------(
 def make_command_list
   MrTS::Crafting::DISCIPLINES.each_value { |d| add_command(d, :ok) }
 end
end

# )----------------------------------------------------------------------------(
# )--  Class: Game_Party                                                     --(
# )----------------------------------------------------------------------------(
class Game_Party < Game_Unit

 # )--------------------------------------------------------------------------(
 # )--  Public Instance Variables                                           --(
 # )--------------------------------------------------------------------------(
 attr_reader   :disciplines #lv, xp
 attr_reader   :learned_recipes

 # )--------------------------------------------------------------------------(
 # )--  Alias to: initialize                                                --(
 # )--------------------------------------------------------------------------(
 alias mrts_gp_initialize initialize
 def initialize
   mrts_gp_initialize
   initialize_disciplines
   initialize_recipes
 end

 # )--------------------------------------------------------------------------(
 # )--  Method: initialize_disciplines                                      --(
 # )--------------------------------------------------------------------------(
 def initialize_disciplines
   @disciplines = []
   MrTS::Crafting::DISCIPLINES.each_value { |value| @disciplines.push([1, 0]) }
 end

 # )--------------------------------------------------------------------------(
 # )--  Method: initialize_recipes                                          --(
 # )--------------------------------------------------------------------------(
 def initialize_recipes
   @learned_recipes = []
 end

 # )--------------------------------------------------------------------------(
 # )--  Method: add_craft_exp                                               --(
 # )--------------------------------------------------------------------------(
 def add_craft_exp(id, exp)
   @disciplines[id][1] += exp
   craft_level_up(id)
 end

 # )--------------------------------------------------------------------------(
 # )--  Method: craft_level_up                                              --(
 # )--------------------------------------------------------------------------(
 def craft_level_up(id)
   while get_discipline_exp(id) >= get_discipline_next_level_exp(id) && get_discipline_level(id) < MrTS::Crafting::CRAFT_MAX_LEVEL
     @disciplines[id][0] += 1
     @disciplines[id][1] -= get_discipline_current_level_exp(id)
   end
 end

 # )--------------------------------------------------------------------------(
 # )--  Method: get_discipline_exp                                          --(
 # )--------------------------------------------------------------------------(
 def get_discipline_exp(id)
   return @disciplines[id][1]
 end

 # )--------------------------------------------------------------------------(
 # )--  Method: get_discipline_level                                        --(
 # )--------------------------------------------------------------------------(
 def get_discipline_level(id)
   return @disciplines[id][0]
 end

 # )--------------------------------------------------------------------------(
 # )--  Method: known_recipe?                                               --(
 # )--------------------------------------------------------------------------(
 def known_recipe?(id)
   @learned_recipes.include?(id)
 end

 # )--------------------------------------------------------------------------(
 # )--  Method: get_discipline_current_level_exp                            --(
 # )--------------------------------------------------------------------------(
 def get_discipline_current_level_exp(id)
   lvl = get_discipline_level(id)-1
   return eval(MrTS::Crafting::CRAFT_EXP_FORMULA)
 end

 # )--------------------------------------------------------------------------(
 # )--  Method: get_discipline_next_level_exp                               --(
 # )--------------------------------------------------------------------------(
 def get_discipline_next_level_exp(id)
   lvl = get_discipline_level(id)
   return eval(MrTS::Crafting::CRAFT_EXP_FORMULA)
 end

 # )--------------------------------------------------------------------------(
 # )--  Method: get_discipline_rate                                         --(
 # )--------------------------------------------------------------------------(
 def get_discipline_rate(id)
   return 1.0 if get_discipline_level(id) == MrTS::Crafting::CRAFT_MAX_LEVEL
   return get_discipline_exp(id).to_f / get_discipline_next_level_exp(id).to_f
 end
end

# )----------------------------------------------------------------------------(
# )--  Class: Game_Interpreter                                               --(
# )----------------------------------------------------------------------------(
class Game_Interpreter

 # )--------------------------------------------------------------------------(
 # )--  Method: learn_recipe                                                --(
 # )--------------------------------------------------------------------------(
 def learn_recipe(id)
   $game_party.learned_recipes.push(id)
 end
end


Esperaré a ver si alguien puede ayudarme con ello.
Saludos, Klayer.
Klayer
Klayer
PJ Secundario
PJ Secundario

Masculino
España
RPG Maker : Ace
Mensajes : 156
Monedas : 521
Reputación : 14
Edad : 20
Localización : Chaosworld

Volver arriba Ir abajo

Fallo en script de crafteo (RGSS3) Empty Re: Fallo en script de crafteo (RGSS3)

Mensaje por kyonides Jue Ago 27, 2020 1:31 am

Según parace @disciplines no existe en ese punto del script. ¿No será que trataste de usar una partida guardada? A veces provocan raros problemillas como este.


Última edición por kyonides el Lun Ago 31, 2020 6:17 am, editado 1 vez

kyonides
PJ Secundario
PJ Secundario

Masculino
Costa Rica
RPG Maker : Xp
Mensajes : 150
Monedas : 401
Reputación : 8

Volver arriba Ir abajo

Fallo en script de crafteo (RGSS3) Empty Re: Fallo en script de crafteo (RGSS3)

Mensaje por Klayer Sáb Ago 29, 2020 10:05 pm

Nope.
Intenté usar el objeto que activa el script en una partida nueva, y sigue dando el mismo error.


Debo destacar que ese objeto no daba problemas antes, y no recuerdo haberlo modificado.
Klayer
Klayer
PJ Secundario
PJ Secundario

Masculino
España
RPG Maker : Ace
Mensajes : 156
Monedas : 521
Reputación : 14
Edad : 20
Localización : Chaosworld

Volver arriba Ir abajo

Fallo en script de crafteo (RGSS3) Empty Re: Fallo en script de crafteo (RGSS3)

Mensaje por kyonides Lun Ago 31, 2020 6:19 am

Tendrías que buscar si hay métodos reescritos por otros scripts que hayan alterado su funcionamiento... Lo sé, sería muy tedioso. :P

¿Funciona en un proyecto nuevo con agregándole solo ese script personalizado?

kyonides
PJ Secundario
PJ Secundario

Masculino
Costa Rica
RPG Maker : Xp
Mensajes : 150
Monedas : 401
Reputación : 8

Volver arriba Ir abajo

Fallo en script de crafteo (RGSS3) Empty Re: Fallo en script de crafteo (RGSS3)

Mensaje por Contenido patrocinado


Contenido patrocinado


Volver arriba Ir abajo

Volver arriba


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