设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 1935|回复: 3
打印 上一主题 下一主题

[已经过期] 如何在游戏过程中为物品添加名称和注释?

[复制链接]

Lv1.梦旅人

梦石
0
星屑
55
在线时间
9 小时
注册时间
2009-3-18
帖子
12
跳转到指定楼层
1
发表于 2010-11-14 12:14:01 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
如何在游戏过程中为物品添加名称和注释?

Lv1.梦旅人

梦石
0
星屑
180
在线时间
829 小时
注册时间
2010-6-26
帖子
671
2
发表于 2010-11-14 12:26:47 | 只看该作者
改名字有现成的脚本,不过改注释就没有了
  1. =begin
  2. ■スキル?アイテム名称変更 RGSS2 DAIpage■ v1.0

  3. ●機能と仕様●
  4.   任意のスキルやアイテムの名前をプレイヤーに変更させることができます。

  5. ●使い方●
  6.  イベントコマンド?スクリプトで、

  7. $scene = Scene_Item_Name.new(kind, id)

  8.  を実行します。
  9.  kindには種別(0:スキル、1:アイテム、2:武器、3:防具)を指定します。
  10.  idにはアイテムのidを指定します。

  11. 記述例:
  12. # ファイアの名前を変更
  13. $scene = Scene_Item_Name.new(0, 59)

  14. # ポーションの名前を変更
  15. $scene = Scene_Item_Name.new(1, 1)

  16. ●再定義している箇所●
  17.  Game_System、module RPGをエイリアス。

  18.  ※同じ箇所を変更するスクリプトと併用した場合は競合する可能性があります。

  19. ●更新履歴●
  20.  09/06/04:公開

  21. =end

  22. module RPG
  23. #==============================================================================
  24. # ■ BaseItem
  25. #==============================================================================
  26. class BaseItem
  27.   #--------------------------------------------------------------------------
  28.   # ● 名前
  29.   #--------------------------------------------------------------------------
  30.   alias dai_ed_name name unless $@
  31.   def name
  32.     return name_kind.nil? ? dai_ed_name : name_kind
  33.   end
  34.   #--------------------------------------------------------------------------
  35.   # ● 種別の判別
  36.   #--------------------------------------------------------------------------
  37.   def name_kind
  38.     return $game_system.name_list[0][id] if self.is_a?(RPG::Skill)
  39.     return $game_system.name_list[1][id] if self.is_a?(RPG::Item)
  40.     return $game_system.name_list[2][id] if self.is_a?(RPG::Weapon)
  41.     return $game_system.name_list[3][id] if self.is_a?(RPG::Armor)
  42.     return nil
  43.   end
  44. end
  45. end

  46. #==============================================================================
  47. # ■ Game_System
  48. #==============================================================================
  49. class Game_System
  50.   #--------------------------------------------------------------------------
  51.   # ● 公開インスタンス変数
  52.   #--------------------------------------------------------------------------
  53.   attr_accessor :name_list
  54.   #--------------------------------------------------------------------------
  55.   # ● オブジェクト初期化
  56.   #--------------------------------------------------------------------------
  57.   alias dai_ed_name_initialize initialize
  58.   def initialize
  59.     dai_ed_name_initialize
  60.     @name_list = [{0 => ""},{0 => ""},{0 => ""},{0 => ""}]
  61.   end
  62. end

  63. #==============================================================================
  64. # ■ Window_NameEdit
  65. #==============================================================================
  66. class Window_Item_NameEdit < Window_NameEdit
  67.   #--------------------------------------------------------------------------
  68.   # ● リフレッシュ
  69.   #--------------------------------------------------------------------------
  70.   def refresh
  71.     self.contents.clear
  72.     draw_icon(@actor.icon_index, 36, 36)
  73.     name_array = @name.split(//)
  74.     for i in 0...@max_char
  75.       c = name_array[i]
  76.       c = '_' if c == nil
  77.       self.contents.draw_text(item_rect(i), c, 1)
  78.     end
  79.   end
  80. end

  81. #==============================================================================
  82. # ■ Scene_Item_Name
  83. #==============================================================================
  84. class Scene_Item_Name < Scene_Base
  85.   #--------------------------------------------------------------------------
  86.   # ● オブジェクト初期化
  87.   #--------------------------------------------------------------------------
  88.   def initialize(kind, id)
  89.     @kind = kind
  90.     @id = id
  91.   end
  92.   #--------------------------------------------------------------------------
  93.   # ● 開始処理
  94.   #--------------------------------------------------------------------------
  95.   def start
  96.     super
  97.     create_menu_background
  98.     @edit_window = Window_Item_NameEdit.new(item, 10)
  99.     @input_window = Window_NameInput.new
  100.   end
  101.   #--------------------------------------------------------------------------
  102.   # ● 終了処理
  103.   #--------------------------------------------------------------------------
  104.   def terminate
  105.     super
  106.     dispose_menu_background
  107.     @edit_window.dispose
  108.     @input_window.dispose
  109.   end
  110.   #--------------------------------------------------------------------------
  111.   # ● 元の画面へ戻る
  112.   #--------------------------------------------------------------------------
  113.   def return_scene
  114.     $scene = Scene_Map.new
  115.   end
  116.   #--------------------------------------------------------------------------
  117.   # ● アイテムの取得
  118.   #--------------------------------------------------------------------------
  119.   def item
  120.     case @kind
  121.     when 0; return $data_skills[@id]
  122.     when 1; return $data_items[@id]
  123.     when 2; return $data_weapons[@id]
  124.     when 3; return $data_armors[@id]
  125.     end
  126.   end
  127.   #--------------------------------------------------------------------------
  128.   # ● フレーム更新
  129.   #--------------------------------------------------------------------------
  130.   def update
  131.     super
  132.     update_menu_background
  133.     @edit_window.update
  134.     @input_window.update
  135.     if Input.repeat?(Input::B)
  136.       if @edit_window.index > 0
  137.         Sound.play_cancel
  138.         @edit_window.back
  139.       end
  140.     elsif Input.trigger?(Input::C)
  141.       if @input_window.is_decision
  142.         if @edit_window.name == ""
  143.           @edit_window.restore_default
  144.           if @edit_window.name == ""
  145.             Sound.play_buzzer
  146.           else
  147.             Sound.play_decision
  148.           end
  149.         else
  150.           Sound.play_decision
  151.           $game_system.name_list[@kind][@id] = @edit_window.name
  152.           return_scene
  153.         end
  154.       elsif @input_window.character != ""
  155.         if @edit_window.index == @edit_window.max_char
  156.           Sound.play_buzzer
  157.         else
  158.           Sound.play_decision
  159.           @edit_window.add(@input_window.character)
  160.         end
  161.       end
  162.     end
  163.   end
  164. end
复制代码

评分

参与人数 1星屑 +400 收起 理由
懒De说 + 400 认可答案

查看全部评分

新手们!不要被看扁了!我们也会用论坛搜索,我们也会自己找脚本,我们也会自己点击关闭按钮旁边的小问号!
回复 支持 反对

使用道具 举报

Lv1.梦旅人

超级囧神 无尽的灌水

梦石
0
星屑
144
在线时间
784 小时
注册时间
2010-6-27
帖子
2065
3
发表于 2010-11-14 12:59:30 | 只看该作者
回复 企鹅达达 的帖子

如何使用啊???
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
180
在线时间
829 小时
注册时间
2010-6-26
帖子
671
4
发表于 2010-11-14 13:07:16 | 只看该作者
事件中插入脚本 $scene = Scene_Item_Name.new(kind, id)

kind为需要改名的种类(0:技能、1:物品、2:武器、3:防具)。

id要改名的种类中的id。如要给物品2(高效药水)改名,则事件脚本中填写 $scene = Scene_Item_Name.new(1, 2)

改名的字库为给主角改名的字库,可以再这里修改 Window_NameInput
新手们!不要被看扁了!我们也会用论坛搜索,我们也会自己找脚本,我们也会自己点击关闭按钮旁边的小问号!
回复 支持 反对

使用道具 举报

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

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-11-16 02:47

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表