Project1

标题: 为什么我使用了这个变量脚本无法存档 [打印本页]

作者: PIA    时间: 2014-5-9 12:01
标题: 为什么我使用了这个变量脚本无法存档
就是这个独立变量的脚本,请问要如何修改才能存档?游戏做到一半才发现这问题..
  1. =begin
  2. ===============================================================================
  3.   独立变量 By喵呜喵5
  4. ===============================================================================
  5. 【说明】
  6.   
  7.   给每个事件添加一个独立变量功能
  8.   可以实现类似ARPG中每个怪物事件都有单独的变量储存HP这样的效果
  9.   参考独立开关的脚本以下代码其实挺好写的,
  10.   唯一困难的是我不知道如何让你看懂这个脚本怎么用……
  11.   
  12.   针对完全不懂脚本的人,请看以下说明:
  13.   首先使用事件脚本
  14.     m5_give_value(变量的ID)
  15.   可以让指定ID的变量值变成当前事件的独立变量,

  16.   接着你可以用正常的方式修改该ID变量的数值或者在条件分歧中判断变量的数值

  17.   全部完成以后,使用事件脚本
  18.     m5_send_value(变量的ID)
  19.   将该ID变量的数值保存进这个事件的独立变量,以便下次再读取

  20.   针对稍微懂一点脚本的人,请看以下说明:
  21.   
  22.   使用事件脚本
  23.     m5_give_value(变量的ID,"变量名称(包括双引号)",事件ID,地图ID)
  24.   可以把指定地图指定ID的事件对应名称的独立变量的值赋值给对应ID的变量
  25.   变量ID之后的几个参数可以省略不写,默认为当前地图下本事件名为“self”的独立变量
  26.   
  27.   使用事件脚本
  28.     m5_send_value(变量的ID,"变量名称(包括双引号)",事件ID,地图ID)
  29.   可以把对应ID的变量的值赋值给指定地图指定ID的事件对应名称的独立变量
  30.   变量ID之后的几个参数可以省略不写,默认为当前地图下本事件名为“self”的独立变量

  31. =end
  32. $m5script = {} if $m5script.nil?
  33. $m5script["M5SelfVariables"] = true
  34. module M5SelfVariables
  35. #==============================================================================
  36. #  设定部分
  37. #==============================================================================

  38.   DEA = 100
  39.   
  40.   #这里设置独立变量的初始值

  41. #==============================================================================
  42. #  设定结束
  43. #==============================================================================
  44. end
  45. #==============================================================================
  46. #  脚本部分
  47. #==============================================================================
  48. class << DataManager
  49.   alias m5_20131119_create_game_objects create_game_objects
  50.   alias m5_20131119_make_save_contents make_save_contents
  51.   alias m5_20131119_extract_save_contents extract_save_contents
  52.   def create_game_objects
  53.     m5_20131119_create_game_objects
  54.     $game_self_variables = Game_SelfVariables.new
  55.   end
  56.   def make_save_contents
  57.     m5_20131119_make_save_contents
  58.     contents[:self_variables] = $game_self_variables
  59.     contents
  60.   end
  61.   def extract_save_contents(contents)
  62.     m5_20131119_extract_save_contents(contents)
  63.     $game_self_variables = contents[:self_variables]
  64.   end
  65. end
  66. class Game_SelfVariables < Game_SelfSwitches
  67.   def [](key)
  68.     @data[key]
  69.   end
  70. end
  71. class Game_Interpreter   
  72.   def m5_get_value(key= "self",event_id = @event_id,map_id = @map_id)
  73.     value = $game_self_variables[[map_id,event_id,key]]
  74.     return (value ? value : M5SelfVariables::DEA)
  75.   end
  76.   def m5_change_value(value= 0,key= "self",event_id= @event_id,map_id= @map_id)
  77.     $game_self_variables[[map_id,event_id,key]] = value
  78.   end
  79.   def m5_give_value(var = 0,key = "self",event_id = @event_id,map_id = @map_id)
  80.     $game_variables[var] = m5_get_value(key,event_id,map_id)
  81.   end
  82.   def m5_send_value(var = 0,key= "self",event_id = @event_id,map_id = @map_id)
  83.     m5_change_value($game_variables[var],key,event_id,map_id)
  84.   end
  85. end
复制代码

作者: 喵呜喵5    时间: 2014-5-9 12:34
我最开头应该有写存档部分的代码?我之后再去试试看.........

你这个脚本以下的位置是不是还插入了类似截图存档之类的脚本?
作者: PIA    时间: 2014-5-9 12:40
喵呜喵5 发表于 2014-5-9 12:34
我最开头应该有写存档部分的代码?我之后再去试试看.........

你这个脚本以下的位置是不是还插入了类似截 ...

没有插入别的脚本,我新建游戏只用这个脚本一样不能存档
作者: 喵呜喵5    时间: 2014-5-9 17:20
PIA 发表于 2014-5-9 12:40
没有插入别的脚本,我新建游戏只用这个脚本一样不能存档

脚本已修正
  1. =begin
  2. ===============================================================================
  3.   独立变量 By喵呜喵5
  4. ===============================================================================
  5. 【说明】
  6.   
  7.   给每个事件添加一个独立变量功能
  8.   可以实现类似ARPG中每个怪物事件都有单独的变量储存HP这样的效果
  9.   参考独立开关的脚本以下代码其实挺好写的,
  10.   唯一困难的是我不知道如何让你看懂这个脚本怎么用……
  11.   
  12.   针对完全不懂脚本的人,请看以下说明:
  13.   首先使用事件脚本
  14.     m5_give_value(变量的ID)
  15.   可以让指定ID的变量值变成当前事件的独立变量,

  16.   接着你可以用正常的方式修改该ID变量的数值或者在条件分歧中判断变量的数值

  17.   全部完成以后,使用事件脚本
  18.     m5_send_value(变量的ID)
  19.   将该ID变量的数值保存进这个事件的独立变量,以便下次再读取

  20.   针对稍微懂一点脚本的人,请看以下说明:
  21.   
  22.   使用事件脚本
  23.     m5_give_value(变量的ID,"变量名称(包括双引号)",事件ID,地图ID)
  24.   可以把指定地图指定ID的事件对应名称的独立变量的值赋值给对应ID的变量
  25.   变量ID之后的几个参数可以省略不写,默认为当前地图下本事件名为“self”的独立变量
  26.   
  27.   使用事件脚本
  28.     m5_send_value(变量的ID,"变量名称(包括双引号)",事件ID,地图ID)
  29.   可以把对应ID的变量的值赋值给指定地图指定ID的事件对应名称的独立变量
  30.   变量ID之后的几个参数可以省略不写,默认为当前地图下本事件名为“self”的独立变量

  31. =end
  32. $m5script = {} if $m5script.nil?
  33. $m5script["M5SelfVariables"] = true
  34. module M5SelfVariables
  35. #==============================================================================
  36. #  设定部分
  37. #==============================================================================

  38.   DEA = 100
  39.   
  40.   #这里设置独立变量的初始值

  41. #==============================================================================
  42. #  设定结束
  43. #==============================================================================
  44. end
  45. #==============================================================================
  46. #  脚本部分
  47. #==============================================================================
  48. class << DataManager
  49.   alias m5_20131119_create_game_objects create_game_objects
  50.   alias m5_20131119_make_save_contents make_save_contents
  51.   alias m5_20131119_extract_save_contents extract_save_contents
  52.   def create_game_objects
  53.     m5_20131119_create_game_objects
  54.     $game_self_variables = Game_SelfVariables.new
  55.   end
  56.   def make_save_contents
  57.     contents = m5_20131119_make_save_contents
  58.     contents[:self_variables] = $game_self_variables
  59.     contents
  60.   end
  61.   def extract_save_contents(contents)
  62.     m5_20131119_extract_save_contents(contents)
  63.     $game_self_variables = contents[:self_variables]
  64.   end
  65. end
  66. class Game_SelfVariables < Game_SelfSwitches
  67.   def [](key)
  68.     @data[key]
  69.   end
  70. end
  71. class Game_Interpreter   
  72.   def m5_get_value(key= "self",event_id = @event_id,map_id = @map_id)
  73.     value = $game_self_variables[[map_id,event_id,key]]
  74.     return (value ? value : M5SelfVariables::DEA)
  75.   end
  76.   def m5_change_value(value= 0,key= "self",event_id= @event_id,map_id= @map_id)
  77.     $game_self_variables[[map_id,event_id,key]] = value
  78.   end
  79.   def m5_give_value(var = 0,key = "self",event_id = @event_id,map_id = @map_id)
  80.     $game_variables[var] = m5_get_value(key,event_id,map_id)
  81.   end
  82.   def m5_send_value(var = 0,key= "self",event_id = @event_id,map_id = @map_id)
  83.     m5_change_value($game_variables[var],key,event_id,map_id)   
  84.   end
  85. end
复制代码

作者: PIA    时间: 2014-5-9 17:58
喵呜喵5 发表于 2014-5-9 17:20
脚本已修正

可以存档了,非常感谢!!




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1