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

Project1

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

[已经过期] 这个脚本可以说 成就 请高手改这个脚本有点用处

[复制链接]

Lv2.观梦者

梦石
0
星屑
575
在线时间
1752 小时
注册时间
2008-11-7
帖子
1431
跳转到指定楼层
1
发表于 2012-7-19 09:08:36 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
本帖最后由 z2z4 于 2012-7-31 17:17 编辑
  1. #==============================================================================
  2. # ★ RGSS3_実績メダル Ver1.01
  3. #==============================================================================
  4. =begin

  5. 作者:tomoaky
  6. webサイト:ひきも記 (http://hikimoki.sakura.ne.jp/)

  7. すごい記録を達成したときにポコンッと出るあれです。

  8. イベントコマンド『スクリプト』を使ってメダルを獲得することができます。
  9.   例)gain_medal(0)   # 0番のメダルを獲得する
  10.   設定項目にて番号に対応するメダルの内容を設定してください。


  11. 2012.01.25  Ver1.01
  12.   メダル獲得表示中のシーン切り替えにより表示がリセットされないように修正
  13.   
  14. 2012.01.16  Ver1.0
  15.   公開

  16. =end

  17. #==============================================================================
  18. # □ 設定項目
  19. #==============================================================================
  20. module TMMEDAL
  21.   COMMAND_MEDAL = "证件"     # 菜单命令名字
  22.   
  23.   # メダルが1枚もない状態でメダルコマンドを隠すかどうか(true で隠す)
  24.   HIDE_COMMAND = false
  25.   
  26.   # 获得证件时的效果音
  27.   SE_GAIN_MEDAL = RPG::SE.new("Powerup", 90, 140)
  28.   
  29.                 # 证件名,图标ID,说明的设定    脚本设置:gain_medal(0)
  30.   MEDAL_DATA = {}
  31.   MEDAL_DATA[0] = ["主人", 187, "女仆和会话的证明"]
  32.   MEDAL_DATA[1] = ["禁断の光魔法", 187, "光魔法オメガアツマーレを目撃した証"]
  33.   MEDAL_DATA[2] = ["サキュバスファン", 190, "サキュバスと会話をした証"]
  34. end

  35. #==============================================================================
  36. # ■ Game_Party
  37. #==============================================================================
  38. class Game_Party
  39.   #--------------------------------------------------------------------------
  40.   # ● 公开实例变量
  41.   #--------------------------------------------------------------------------
  42.   attr_reader   :medals                   # 已获得证件
  43.   attr_reader   :new_medals               # 新获得证件
  44.   attr_accessor :medal_info_count         # 证件信息显示计数
  45.   attr_accessor :medal_info_opacity       # 证件信息显示不透明度
  46.   #--------------------------------------------------------------------------
  47.   # ● 对象初期化
  48.   #--------------------------------------------------------------------------
  49.   alias tmmedal_game_party_initialize initialize
  50.   def initialize
  51.     tmmedal_game_party_initialize
  52.     @medals = []
  53.     @new_medals = []
  54.     @medal_info_count = 0
  55.     @medal_info_opacity = 0
  56.   end
  57.   #--------------------------------------------------------------------------
  58.   # ○ メダルの獲得
  59.   #--------------------------------------------------------------------------
  60.   def gain_medal(medal_id)
  61.     return if @medals.any? {|medal| medal[0] == medal_id }
  62.     t = Time.now.strftime(" (%Y/%m/%d %H:%M)")
  63.     @medals.push([medal_id, t])
  64.     @new_medals.push([medal_id, t])
  65.   end
  66.   #--------------------------------------------------------------------------
  67.   # ○ 获得证件信息消去
  68.   #--------------------------------------------------------------------------
  69.   def delete_new_medal
  70.     @new_medals.shift
  71.   end
  72. end

  73. #==============================================================================
  74. # ■ Game_Interpreter
  75. #==============================================================================
  76. class Game_Interpreter
  77.   #--------------------------------------------------------------------------
  78.   # ○ メダルの獲得
  79.   #--------------------------------------------------------------------------
  80.   def gain_medal(medal_id)
  81.     $game_party.gain_medal(medal_id)
  82.   end
  83. end

  84. #==============================================================================
  85. # ■ Window_MenuCommand
  86. #==============================================================================
  87. class Window_MenuCommand
  88.   #--------------------------------------------------------------------------
  89.   # ● 独自指令的追加用
  90.   #--------------------------------------------------------------------------
  91.   alias tmmedal_window_menucommand_add_original_commands add_original_commands
  92.   def add_original_commands
  93.     tmmedal_window_menucommand_add_original_commands
  94.     unless TMMEDAL::HIDE_COMMAND && !medal_enabled
  95.       add_command(TMMEDAL::COMMAND_MEDAL, :medal, medal_enabled)
  96.     end
  97.   end
  98.   #--------------------------------------------------------------------------
  99.   # ○ メダルの有効状態を取得
  100.   #--------------------------------------------------------------------------
  101.   def medal_enabled
  102.     !$game_party.medals.empty?
  103.   end
  104. end

  105. #==============================================================================
  106. # □ Window_MedalInfo
  107. #==============================================================================
  108. class Window_MedalInfo < Window_Base
  109.   #--------------------------------------------------------------------------
  110.   # ● オブジェクト初期化
  111.   #--------------------------------------------------------------------------
  112.   def initialize
  113.     super(Graphics.width - window_width, 0, window_width, fitting_height(1))
  114.     self.opacity = 0
  115.     self.contents_opacity = $game_party.medal_info_opacity
  116.     refresh
  117.   end
  118.   #--------------------------------------------------------------------------
  119.   # ● ウィンドウ幅の取得
  120.   #--------------------------------------------------------------------------
  121.   def window_width
  122.     return 240
  123.   end
  124.   #--------------------------------------------------------------------------
  125.   # ● フレーム更新
  126.   #--------------------------------------------------------------------------
  127.   def update
  128.     super
  129.     if $game_party.medal_info_count > 0
  130.       self.contents_opacity += 16
  131.       $game_party.medal_info_count -= 1
  132.       $game_party.delete_new_medal if $game_party.medal_info_count == 0
  133.     else
  134.       self.contents_opacity -= 16
  135.       if self.contents_opacity == 0
  136.         open unless $game_party.new_medals.empty?
  137.       end
  138.     end
  139.     $game_party.medal_info_opacity = self.contents_opacity
  140.   end
  141.   #--------------------------------------------------------------------------
  142.   # ● ウィンドウを開く
  143.   #--------------------------------------------------------------------------
  144.   def open
  145.     refresh
  146.     TMMEDAL::SE_GAIN_MEDAL.play
  147.     $game_party.medal_info_count = 150
  148.     self.contents_opacity = 0
  149.     self
  150.   end
  151.   #--------------------------------------------------------------------------
  152.   # ○ リフレッシュ
  153.   #--------------------------------------------------------------------------
  154.   def refresh
  155.     contents.clear
  156.     unless $game_party.new_medals.empty?
  157.       draw_background(contents.rect)
  158.       medal = TMMEDAL::MEDAL_DATA[$game_party.new_medals[0][0]]
  159.       rect = contents.rect.clone
  160.       draw_icon(medal[1], rect.x, rect.y)
  161.       rect.x += 24
  162.       rect.width -= 24
  163.       draw_text(rect, medal[0])
  164.     end
  165.   end
  166.   #--------------------------------------------------------------------------
  167.   # ○ 背景の描画
  168.   #--------------------------------------------------------------------------
  169.   def draw_background(rect)
  170.     temp_rect = rect.clone
  171.     temp_rect.width /= 2
  172.     contents.gradient_fill_rect(temp_rect, back_color2, back_color1)
  173.     temp_rect.x = temp_rect.width
  174.     contents.gradient_fill_rect(temp_rect, back_color1, back_color2)
  175.   end
  176.   #--------------------------------------------------------------------------
  177.   # ○ 背景色 1 の取得
  178.   #--------------------------------------------------------------------------
  179.   def back_color1
  180.     Color.new(0, 0, 0, 192)
  181.   end
  182.   #--------------------------------------------------------------------------
  183.   # ○ 背景色 2 の取得
  184.   #--------------------------------------------------------------------------
  185.   def back_color2
  186.     Color.new(0, 0, 0, 0)
  187.   end
  188. end

  189. #==============================================================================
  190. # □ Window_Medal
  191. #==============================================================================
  192. class Window_Medal < Window_Selectable
  193.   #--------------------------------------------------------------------------
  194.   # ● オブジェクト初期化
  195.   #--------------------------------------------------------------------------
  196.   def initialize(x, y, width, height)
  197.     super
  198.     refresh
  199.     select(0)
  200.     activate
  201.   end
  202.   #--------------------------------------------------------------------------
  203.   # ● 桁数の取得
  204.   #--------------------------------------------------------------------------
  205.   def col_max
  206.     return 1
  207.   end
  208.   #--------------------------------------------------------------------------
  209.   # ● 項目数の取得
  210.   #--------------------------------------------------------------------------
  211.   def item_max
  212.     @data ? @data.size : 1
  213.   end
  214.   #--------------------------------------------------------------------------
  215.   # ● アイテムの取得
  216.   #--------------------------------------------------------------------------
  217.   def item
  218.     @data && index >= 0 ? @data[index] : nil
  219.   end
  220.   #--------------------------------------------------------------------------
  221.   # ● アイテムリストの作成
  222.   #--------------------------------------------------------------------------
  223.   def make_item_list
  224.     @data = $game_party.medals
  225.   end
  226.   #--------------------------------------------------------------------------
  227.   # ● 項目の描画
  228.   #--------------------------------------------------------------------------
  229.   def draw_item(index)
  230.     item = @data[index]
  231.     medal = TMMEDAL::MEDAL_DATA[item[0]]
  232.     rect = item_rect(index)
  233.     draw_icon(medal[1], rect.x, rect.y)
  234.     rect.x += 24
  235.     rect.width -= 216
  236.     draw_text(rect, medal[0])
  237.     rect.x = contents.width - 192
  238.     rect.width = 192
  239.     draw_text(rect, item[1], 2)
  240.   end
  241.   #--------------------------------------------------------------------------
  242.   # ● ヘルプテキスト更新
  243.   #--------------------------------------------------------------------------
  244.   def update_help
  245.     if item
  246.       medal = TMMEDAL::MEDAL_DATA[item[0]]
  247.       text = medal[2]
  248.       @help_window.set_text(text)
  249.     end
  250.   end
  251.   #--------------------------------------------------------------------------
  252.   # ● リフレッシュ
  253.   #--------------------------------------------------------------------------
  254.   def refresh
  255.     make_item_list
  256.     create_contents
  257.     draw_all_items
  258.   end
  259. end

  260. #==============================================================================
  261. # ■ Scene_Map
  262. #==============================================================================
  263. class Scene_Map
  264.   #--------------------------------------------------------------------------
  265.   # ● 全ウィンドウの作成
  266.   #--------------------------------------------------------------------------
  267.   alias tmmedal_scene_map_create_all_windows create_all_windows
  268.   def create_all_windows
  269.     tmmedal_scene_map_create_all_windows
  270.     create_medal_window
  271.   end
  272.   #--------------------------------------------------------------------------
  273.   # ○ メダルウィンドウの作成
  274.   #--------------------------------------------------------------------------
  275.   def create_medal_window
  276.     @medal_window = Window_MedalInfo.new
  277.   end
  278. end

  279. #==============================================================================
  280. # ■ Scene_Menu
  281. #==============================================================================
  282. class Scene_Menu
  283.   #--------------------------------------------------------------------------
  284.   # ● コマンドウィンドウの作成
  285.   #--------------------------------------------------------------------------
  286.   alias tmmedal_scene_menu_create_command_window create_command_window
  287.   def create_command_window
  288.     tmmedal_scene_menu_create_command_window
  289.     @command_window.set_handler(:medal, method(:command_medal))
  290.   end
  291.   #--------------------------------------------------------------------------
  292.   # ○ コマンド[メダル]
  293.   #--------------------------------------------------------------------------
  294.   def command_medal
  295.     SceneManager.call(Scene_Medal)
  296.   end
  297. end

  298. #==============================================================================
  299. # □ Scene_Medal
  300. #==============================================================================
  301. class Scene_Medal < Scene_MenuBase
  302.   #--------------------------------------------------------------------------
  303.   # ● 開始処理
  304.   #--------------------------------------------------------------------------
  305.   def start
  306.     super
  307.     create_help_window
  308.     create_item_window
  309.   end
  310.   #--------------------------------------------------------------------------
  311.   # ○ アイテムウィンドウの作成
  312.   #--------------------------------------------------------------------------
  313.   def create_item_window
  314.     wy = @help_window.height
  315.     wh = Graphics.height - wy
  316.     @item_window = Window_Medal.new(0, wy, Graphics.width, wh)
  317.     @item_window.viewport = @viewport
  318.     @item_window.help_window = @help_window
  319.     @item_window.set_handler(:cancel, method(:return_scene))
  320.   end
  321. end


复制代码
虽然说 是个成就  得了 成就是的  不过一点好处都没  有没有高手 把这个 脚本改下 最起码 完成成就 有什么奖励什么的 稍微复杂点
RPG魔塔:http://rpg.blue/thread-254429-1-1.html
魔塔2:http://rpg.blue/thread-303601-1-1.html
魔塔3: 制作中...MV

Lv2.观梦者

梦石
0
星屑
743
在线时间
2064 小时
注册时间
2011-10-3
帖子
1686
2
发表于 2012-7-19 12:15:32 | 只看该作者
我是用来做剧情进度的
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
575
在线时间
1752 小时
注册时间
2008-11-7
帖子
1431
3
 楼主| 发表于 2012-7-19 12:20:30 | 只看该作者
布里蓝 发表于 2012-7-19 12:15
我是用来做剧情进度的

用这个 怎么用剧情 进度?   这脚本到底有什么功能
RPG魔塔:http://rpg.blue/thread-254429-1-1.html
魔塔2:http://rpg.blue/thread-303601-1-1.html
魔塔3: 制作中...MV
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
743
在线时间
2064 小时
注册时间
2011-10-3
帖子
1686
4
发表于 2012-7-19 12:53:46 | 只看该作者
你也可以拿来做事件记录,就如里面例子写的那样

  MEDAL_DATA[0] = ["主人", 187, "女仆和会话的证明"]

  MEDAL_DATA[1] = ["禁断の光魔法", 187, "光魔法オメガアツマーレを目撃した証"]

  MEDAL_DATA[2] = ["サキュバスファン", 190, "サキュバスと会話をした証"]

评分

参与人数 1梦石 +2 收起 理由
迷糊的安安 + 2 认可答案 附赠66RPG提供的精美好人卡一张^^.

查看全部评分

回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
95
在线时间
231 小时
注册时间
2011-5-14
帖子
13
5
发表于 2012-7-19 13:06:09 | 只看该作者
还可以做成 “成就系统”
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
575
在线时间
1752 小时
注册时间
2008-11-7
帖子
1431
6
 楼主| 发表于 2012-7-31 17:18:00 | 只看该作者
虽然说 是个成就  得了 成就是的  不过一点好处都没  有没有高手 把这个 脚本改下 最起码 完成成就 有什么奖励什么的 稍微复杂点
RPG魔塔:http://rpg.blue/thread-254429-1-1.html
魔塔2:http://rpg.blue/thread-303601-1-1.html
魔塔3: 制作中...MV
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
55
在线时间
177 小时
注册时间
2011-6-7
帖子
88
7
发表于 2012-7-31 18:42:55 | 只看该作者
z2z4 发表于 2012-7-31 17:18
虽然说 是个成就  得了 成就是的  不过一点好处都没  有没有高手 把这个 脚本改下 最起码 完成成就 有什么 ...

这个脚本调用可以在事件里调用自定义脚本 gain_medal(n)
然后直接在事件里调用获得物品 经验 等 事件不就好了

点评

太复杂兼容性就低了  发表于 2012-7-31 19:05
晕死 这样过于简单  发表于 2012-7-31 18:54
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
99 小时
注册时间
2012-3-11
帖子
74
8
发表于 2012-8-1 19:59:30 | 只看该作者
等一下……这脚本该怎么用啊?要不要改菜单?

点评

我已经会了= =谢谢你  发表于 2012-8-2 16:34
不需要改菜单  发表于 2012-8-2 16:28
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-5-21 09:03

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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