Project1

标题: 装备名字能永久改变吗? [打印本页]

作者: 咚小黑    时间: 2012-7-24 06:18
标题: 装备名字能永久改变吗?
本帖最后由 咚小黑 于 2012-7-27 19:34 编辑

在游戏中改变一个装备的名字。
从此之后,保存再打开还是这个装备修改后的名字,  脚本怎么写?改变了之后,想还原的时候怎么还原。


其他存档不改变。

作者: 黑化の包子    时间: 2012-7-24 10:08
我个人觉得吧、还是直接做一把相同属性但是名字不同的武器、然后通过事件替换武器和增减物品来做可能还相对简单些、
很小白的想法、觉得不好别说我啊...
作者: feizhaodan    时间: 2012-7-24 11:04
  1. #==============================================================================
  2. # ■ Game_System
  3. #------------------------------------------------------------------------------
  4. #  システム周りのデータを扱うクラスです。セーブやメニューの禁止状態などを保存
  5. # します。このクラスのインスタンスは $game_system で参照されます。
  6. #==============================================================================

  7. class Game_System
  8.   #--------------------------------------------------------------------------
  9.   # ● 公開インスタンス変数
  10.   #--------------------------------------------------------------------------
  11.   attr_accessor :item_names
  12.   attr_accessor :weapon_names
  13.   attr_accessor :armor_names
  14.   #--------------------------------------------------------------------------
  15.   # ● オブジェクト初期化
  16.   #--------------------------------------------------------------------------
  17.   alias change_item_names_initialize initialize
  18.   def initialize
  19.     change_item_names_initialize
  20.     @item_names = {}
  21.     @weapon_names = {}
  22.     @armor_names = {}
  23.   end
  24.   #--------------------------------------------------------------------------
  25.   # ● 更改装备名称
  26.   #--------------------------------------------------------------------------
  27.   def change_item_names
  28.     @item_names.each do |id,name|
  29.       $data_items[id].name = name
  30.     end
  31.     @weapon_names.each do |id,name|
  32.       $data_weapons[id].name = name
  33.     end
  34.     @armor_names.each do |id,name|
  35.       $data_armors[id].name = name
  36.     end
  37.   end
  38. end
  39. #==============================================================================
  40. # ■ Game_Interpreter
  41. #------------------------------------------------------------------------------
  42. #  イベントコマンドを実行するインタプリタです。このクラスは Game_Map クラス、
  43. # Game_Troop クラス、Game_Event クラスの内部で使用されます。
  44. #==============================================================================

  45. class Game_Interpreter
  46.   #--------------------------------------------------------------------------
  47.   # ○ 更改道具名称
  48.   #--------------------------------------------------------------------------
  49.   def change_item_name(id,name)
  50.     i = $data_items[id]
  51.     if i
  52.       i.name = name
  53.       $game_system.item_names[id] = name
  54.     end
  55.   end
  56.   #--------------------------------------------------------------------------
  57.   # ○ 更改武器名称
  58.   #--------------------------------------------------------------------------
  59.   def change_weapon_name(id,name)
  60.     i = $data_weapons[id]
  61.     if i
  62.       i.name = name
  63.       $game_system.weapon_names[id] = name
  64.     end
  65.   end
  66.   #--------------------------------------------------------------------------
  67.   # ○ 更改道具名称
  68.   #--------------------------------------------------------------------------
  69.   def change_armor_name(id,name)
  70.     i = $data_armors[id]
  71.     if i
  72.       i.name = name
  73.       $game_system.armor_names[id] = name
  74.     end
  75.   end
  76. end
  77. #==============================================================================
  78. # ■ Scene_Title
  79. #------------------------------------------------------------------------------
  80. #  タイトル画面の処理を行うクラスです。
  81. #==============================================================================

  82. class Scene_Title < Scene_Base
  83.   #--------------------------------------------------------------------------
  84.   # ● 開始処理
  85.   #--------------------------------------------------------------------------
  86.   alias change_item_name_start start
  87.   def start
  88.     DataManager.load_database
  89.     change_item_name_start
  90.   end
  91. end
  92. #==============================================================================
  93. # ■ Scene_Load
  94. #------------------------------------------------------------------------------
  95. #  ロード画面の処理を行うクラスです。
  96. #==============================================================================

  97. class Scene_Load < Scene_File
  98.   #--------------------------------------------------------------------------
  99.   # ● ロード成功時の処理
  100.   #--------------------------------------------------------------------------
  101.   alias change_item_name_on_load_success on_load_success
  102.   def on_load_success
  103.     $game_system.change_item_names
  104.     change_item_name_on_load_success
  105.   end
  106. end
复制代码
要更改的时候在事件脚本里面用
  1. change_item_name(道具ID,更改后名称)
  2. change_weapon_name(武器ID,更改后名称)
  3. change_armor_name(防具ID,更改后名称)
复制代码
想要还原的时候把更改后名称弄成原来的名字就行。




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