查看: 3413|回复: 2

[已经解决] 装备名字能永久改变吗?

[复制链接]

小黑

梦石
0
星屑
50
在线时间
140 小时
注册时间
2011-8-23
回帖
459
发表于 2012-7-24 06:18:15 | 显示全部楼层 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有账号?注册会员

×
本帖最后由 咚小黑 于 2012-7-27 19:34 编辑

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


其他存档不改变。
梦石
0
星屑
49
在线时间
342 小时
注册时间
2012-3-18
回帖
108
发表于 2012-7-24 10:08:32 | 显示全部楼层
我个人觉得吧、还是直接做一把相同属性但是名字不同的武器、然后通过事件替换武器和增减物品来做可能还相对简单些、
很小白的想法、觉得不好别说我啊...
南村群童欺我老无力、啪啪啪啪啪啪啪...
回复

使用道具 举报

Mr.Gandum

梦石
0
星屑
226
在线时间
2070 小时
注册时间
2007-1-31
回帖
2982

贵宾

发表于 2012-7-24 11:04:17 | 显示全部楼层
  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,更改后名称)
复制代码
想要还原的时候把更改后名称弄成原来的名字就行。

点评

谢谢  发表于 2012-7-27 17:04
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部