Project1

标题: 如何自定义物品名称 [打印本页]

作者: yiyi408776001    时间: 2012-6-24 07:47
标题: 如何自定义物品名称
想要的效果和自定义英雄名称相似,物品在输入名称后,在物品栏中显示的是输入的名称。
请教各位该如何实现……dsu_plus_rewardpost_czw
作者: 幽灵君。    时间: 2012-6-24 09:46
本帖最后由 幽灵君。 于 2012-6-24 09:46 编辑

亲说的是这个么..

工具→数据库→物品



-



-



-




作者: yiyi408776001    时间: 2012-6-24 11:02
幽灵君。 发表于 2012-6-24 09:46
亲说的是这个么..

工具→数据库→物品

= =|||
怎么会……
啊抱歉所指的不是这个。
是在游戏里玩家自行输入物品名称,就像给英雄起名字一样
可以用\[n]这种东西表示的那种
作者: Wind2010    时间: 2012-6-24 12:59
本帖最后由 Wind2010 于 2012-6-24 13:00 编辑

用法:调用$scene = Scene_ItemName.new(物品ID)
脚本25行设定物品名字的最大值
可调用的汉字和角色命名一样
  1. #==============================================================================
  2. # ■ Scene_Name
  3. #------------------------------------------------------------------------------
  4. #  处理名称输入画面的类。
  5. #==============================================================================

  6. class Window_ItemNameEdit < Window_NameEdit
  7.   def refresh
  8.     self.contents.clear
  9.     # 描绘名称
  10.     name_array = @name.split(//)
  11.     for i in 0...@max_char
  12.       c = name_array[i]
  13.       if c == nil
  14.         c = "_"
  15.       end
  16.       x = 320 - @max_char * 14 + i * 28
  17.       self.contents.draw_text(x, 32, 28, 32, c, 1)
  18.     end
  19.     bitmap = RPG::Cache.icon(@actor.icon_name)
  20.     self.contents.blt(256-@max_char*14,52, bitmap, Rect.new(0, 0, 24, 24))
  21.   end
  22. end
  23. class Scene_ItemName < Scene_Name
  24.   MAX = 6
  25.   #--------------------------------------------------------------------------
  26.   # ● 主处理
  27.   #--------------------------------------------------------------------------
  28.   def initialize(item_id)
  29.     @item_id = item_id
  30.   end
  31.   def main
  32.     # 获取角色
  33.     @actor = $data_items[@item_id]
  34.     # 生成窗口
  35.     $game_temp.name_max_char = MAX
  36.     @edit_window = Window_ItemNameEdit.new(@actor,MAX)
  37.     @input_window = Window_NameInput.new
  38.     # 执行过渡
  39.     Graphics.transition
  40.     # 主循环
  41.     loop do
  42.       # 刷新游戏画面
  43.       Graphics.update
  44.       # 刷新输入信息
  45.       Input.update
  46.       # 刷新信息
  47.       update
  48.       # 如果画面切换就中断循环
  49.       if $scene != self
  50.         break
  51.       end
  52.     end
  53.     # 准备过渡
  54.     Graphics.freeze
  55.     # 释放窗口
  56.     @edit_window.dispose
  57.     @input_window.dispose
  58.   end
  59. end
  60. class Scene_Save
  61.   alias litem_write_save_data write_save_data unless $louse_alias_item
  62.   def write_save_data(file)
  63.     litem_write_save_data(file)
  64.     Marshal.dump($data_items, file)
  65.   end
  66. end
  67. class Scene_Load
  68.   alias litem_read_save_data read_save_data unless $louse_alias_item
  69.   def read_save_data(file)
  70.     litem_read_save_data(file)
  71.     $data_items = Marshal.load(file) rescue $data_items = load_data("Data/Items.rxdata")
  72.   end
  73. end
  74. $louse_alias_item = true
复制代码

作者: 1584927450    时间: 2012-6-25 14:19
事件设定在加脚本喽,脚本像地面的人提供的脚本拿起修改一下就行啦。




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