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

Project1

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

[已经过期] 怎样在获得物品时让Tips漂浮?

[复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
16 小时
注册时间
2015-10-1
帖子
14
跳转到指定楼层
1
发表于 2015-10-24 15:16:30 | 只看该作者 |只看大图 回帖奖励 |正序浏览 |阅读模式

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

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

x
就是把获得物品做成飘字的,后面显示名称


Lv4.逐梦者

梦石
0
星屑
16044
在线时间
3992 小时
注册时间
2015-9-14
帖子
1337

开拓者

10
发表于 2015-10-26 15:19:17 | 只看该作者
本帖最后由 wabcmcc 于 2015-10-26 15:26 编辑

轉載日站: ひきも記
      作者:tomoaky
http://hikimoki.sakura.ne.jp/

劇本:http://hikimoki.sakura.ne.jp/rgss3/script_map/tmicpop.rb
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
2920
在线时间
713 小时
注册时间
2010-7-25
帖子
813

开拓者

9
发表于 2015-10-25 23:02:24 | 只看该作者
  1. #==============================================================================
  2. # ■入手インフォメーション(装備品個別管理対応) for RGSS3 Ver1.01-β
  3. # □作成者 kure
  4. #
  5. # 導入位置
  6. # 装備品個別管理より下
  7. #
  8. #===============================================================================
  9. $kure_base_script = {} if $kure_base_script == nil
  10. $kure_base_script[:Gain_infomation] = 105
  11. p "入手インフォメーション"

  12. module KURE
  13.   module Gain_Info
  14.     #基本設定-------------------------------------------------------------------
  15.       #インフォメーション表示フレーム数
  16.       VIEW_INFO_TIME = 150
  17.    
  18.       #最大表示項目数
  19.       MAX_LOG = 20
  20.    
  21.       #ログ出力対象シーン
  22.       #獲得ログを取得するシーンを配列で設定
  23.       LOG_SCENE = [Scene_Map, Scene_Item]
  24.       
  25.     #動作設定-------------------------------------------------------------------
  26.       #ゴールド獲得時に表示するアイコンのID
  27.       GOLD_ICON = 262
  28.       
  29.       #ゴールド獲得時のメッセージ
  30.       GOLD_INFO = "银币获得"
  31.       
  32.   end
  33. end

  34. #==============================================================================
  35. # ■ Game_Temp
  36. #==============================================================================
  37. class Game_Temp
  38.   #--------------------------------------------------------------------------
  39.   # ● 入手したアイテムのデータを入力(追加定義)
  40.   #--------------------------------------------------------------------------
  41.   def item_info_add(item, amount)
  42.     return unless KURE::Gain_Info::LOG_SCENE.include?(SceneManager.scene.class)
  43.    
  44.     @gain_item_list ||= []
  45.     return unless item
  46.     @gain_item_list.push([item, amount, 0])
  47.   end
  48.   #--------------------------------------------------------------------------
  49.   # ● 入手したアイテムのデータを入力(追加定義)
  50.   #--------------------------------------------------------------------------
  51.   def gold_info_add(amount)
  52.     return unless KURE::Gain_Info::LOG_SCENE.include?(SceneManager.scene.class)
  53.    
  54.     @gain_item_list ||= []
  55.     @gain_item_list.push([KURE::Gain_Info::GOLD_ICON, amount, 1])
  56.   end
  57.   #--------------------------------------------------------------------------
  58.   # ● 入手したアイテムのデータを出力(追加定義)
  59.   #--------------------------------------------------------------------------
  60.   def item_info_output
  61.     return [] unless @gain_item_list
  62.     return @gain_item_list
  63.   end
  64.   #--------------------------------------------------------------------------
  65.   # ● 入手したアイテムのデータの存在判定(追加定義)
  66.   #--------------------------------------------------------------------------
  67.   def item_info_view?
  68.     return false unless @gain_item_list
  69.     return false if @gain_item_list == []
  70.     return true
  71.   end
  72.   #--------------------------------------------------------------------------
  73.   # ● 入手したアイテムのデータをクリア(追加定義)
  74.   #--------------------------------------------------------------------------
  75.   def item_info_clear
  76.     @gain_item_list = []
  77.   end
  78. end

  79. #==============================================================================
  80. # ■ Game_Party
  81. #==============================================================================
  82. class Game_Party < Game_Unit
  83.   #--------------------------------------------------------------------------
  84.   # ● 入手したアイテムのデータを記録(エイリアス再定義)
  85.   #--------------------------------------------------------------------------
  86.   alias k_gain_info_before_memory_get_item memory_get_item if $kure_base_script[:SortOut]
  87.   def memory_get_item(item, amount)
  88.     $game_temp.item_info_add(item, amount) if amount > 0
  89.     k_gain_info_before_memory_get_item(item, amount)
  90.   end
  91.   #--------------------------------------------------------------------------
  92.   # ● アイテムの増加(減少)(エイリアス再定義)
  93.   #--------------------------------------------------------------------------
  94.   alias k_gain_info_before_gain_item gain_item
  95.   def gain_item(item, amount, include_equip = false, change_equip = false, recycle_slot = true)
  96.     if $kure_base_script[:SortOut]
  97.       k_gain_info_before_gain_item(item, amount, include_equip, change_equip, recycle_slot)
  98.     else
  99.       $game_temp.item_info_add(item, amount) if amount > 0
  100.       k_gain_info_before_gain_item(item, amount, include_equip)
  101.     end
  102.   end
  103.   #--------------------------------------------------------------------------
  104.   # ● 所持金の増加(減少)(エイリアス再定義)
  105.   #--------------------------------------------------------------------------
  106.   alias k_gain_info_before_gain_gold gain_gold
  107.   def gain_gold(amount)
  108.     $game_temp.gold_info_add(amount) if amount > 0
  109.     k_gain_info_before_gain_gold(amount)
  110.   end
  111. end

  112. #==============================================================================
  113. # ■ Scene_Map
  114. #==============================================================================
  115. class Scene_Map < Scene_Base
  116.   #--------------------------------------------------------------------------
  117.   # ● 全ウィンドウの作成(エイリアス再定義)
  118.   #--------------------------------------------------------------------------
  119.   alias k_gain_info_before_create_all_windows create_all_windows
  120.   def create_all_windows
  121.     k_gain_info_before_create_all_windows
  122.     create_item_info_window
  123.   end
  124.   #--------------------------------------------------------------------------
  125.   # ● インフォメーションウィンドウの作成(追加定義)
  126.   #--------------------------------------------------------------------------
  127.   def create_item_info_window
  128.     @item_info_window = Window_Gain_item_Info.new
  129.     @item_info_window.close
  130.   end
  131.   #--------------------------------------------------------------------------
  132.   # ● フレーム更新(エイリアス再定義)
  133.   #--------------------------------------------------------------------------
  134.   alias k_gain_info_before_update update
  135.   def update
  136.     if $game_temp.item_info_view?
  137.       @item_info_window.open($game_temp.item_info_output)
  138.       $game_temp.item_info_clear
  139.     end
  140.     k_gain_info_before_update
  141.   end
  142. end

  143. #==============================================================================
  144. # ■ Window_Gain_item_Info
  145. #==============================================================================
  146. class Window_Gain_item_Info < Window_Base
  147.   #--------------------------------------------------------------------------
  148.   # ● オブジェクト初期化
  149.   #--------------------------------------------------------------------------
  150.   def initialize
  151.     super(0, Graphics.height, window_width, fitting_height(1))
  152.     self.opacity = 0
  153.     self.contents_opacity = 0
  154.     @show_count = 0
  155.     @list = []
  156.     refresh
  157.   end
  158.   #--------------------------------------------------------------------------
  159.   # ● ウィンドウ幅の取得
  160.   #--------------------------------------------------------------------------
  161.   def window_width
  162.     return 352
  163.   end
  164.   #--------------------------------------------------------------------------
  165.   # ● フレーム更新
  166.   #--------------------------------------------------------------------------
  167.   def update
  168.     super
  169.     if @show_count > 0
  170.       update_fadein
  171.       @show_count -= 1
  172.     elsif @show_count == 0
  173.       update_list
  174.       @show_count -= 1
  175.     else
  176.       update_fadeout
  177.     end
  178.   end
  179.   #--------------------------------------------------------------------------
  180.   # ● フェードインの更新
  181.   #--------------------------------------------------------------------------
  182.   def update_fadein
  183.     self.contents_opacity += 16
  184.   end
  185.   #--------------------------------------------------------------------------
  186.   # ● リストの更新
  187.   #--------------------------------------------------------------------------
  188.   def update_list
  189.     if @list.size < KURE::Gain_Info::MAX_LOG + 1
  190.       @list = []
  191.     else
  192.       draw_data = @list[0..KURE::Gain_Info::MAX_LOG - 1]
  193.       KURE::Gain_Info::MAX_LOG.times{@list.delete_at(0)}
  194.     end
  195.   end
  196.   #--------------------------------------------------------------------------
  197.   # ● フェードアウトの更新
  198.   #--------------------------------------------------------------------------
  199.   def update_fadeout   
  200.     if @list == []
  201.       self.contents_opacity -= 8
  202.     else
  203.       open([])
  204.     end
  205.   end
  206.   #--------------------------------------------------------------------------
  207.   # ● ウィンドウを開く
  208.   #--------------------------------------------------------------------------
  209.   def open(list)
  210.     @list += list
  211.    
  212.     self.height = fitting_height([@list.size, KURE::Gain_Info::MAX_LOG].min)
  213.     self.y = Graphics.height - 220 - fitting_height([@list.size, KURE::Gain_Info::MAX_LOG].min)
  214.    
  215.     refresh
  216.     @show_count = KURE::Gain_Info::VIEW_INFO_TIME
  217.     self.contents_opacity = 0
  218.     self
  219.   end
  220.   #--------------------------------------------------------------------------
  221.   # ● ウィンドウを閉じる
  222.   #--------------------------------------------------------------------------
  223.   def close
  224.     @show_count = 0
  225.     self
  226.   end
  227.   #--------------------------------------------------------------------------
  228.   # ● ウィンドウを閉じる
  229.   #--------------------------------------------------------------------------
  230.   def closed?
  231.     return true if @show_count < 1
  232.     return false
  233.   end
  234.   #--------------------------------------------------------------------------
  235.   # ● リフレッシュ
  236.   #--------------------------------------------------------------------------
  237.   def refresh
  238.     create_contents
  239.     draw_background(contents.rect)
  240.    
  241.     @list.each_with_index{|data,index|
  242.       case data[2]
  243.       when 0
  244.         draw_item_name(data[0], 0, line_height * index, true)
  245.         change_color(tp_gauge_color2)
  246.         draw_text(0, line_height * index, window_width - 30, line_height, data[1].to_s + " 个获得", 2)
  247.         change_color(normal_color)
  248.       when 1
  249.         draw_icon(data[0], 0, line_height * index, true)
  250.         draw_text(24, line_height * index, window_width - 30, line_height, KURE::Gain_Info::GOLD_INFO)
  251.         change_color(mp_gauge_color2)
  252.         draw_text(0, line_height * index, window_width - 30, line_height, data[1].to_s + Vocab::currency_unit, 2)
  253.         change_color(normal_color)
  254.       end
  255.     }
  256.   end
  257.   #--------------------------------------------------------------------------
  258.   # ● 背景の描画
  259.   #--------------------------------------------------------------------------
  260.   def draw_background(rect)
  261.     contents.gradient_fill_rect(rect, back_color1, back_color2)
  262.   end
  263.   #--------------------------------------------------------------------------
  264.   # ● 背景色 1 の取得
  265.   #--------------------------------------------------------------------------
  266.   def back_color1
  267.     Color.new(0, 0, 0, 120)
  268.   end
  269.   #--------------------------------------------------------------------------
  270.   # ● 背景色 2 の取得
  271.   #--------------------------------------------------------------------------
  272.   def back_color2
  273.     Color.new(0, 0, 0, 0)
  274.   end
  275. end
复制代码
原本是从下方弹出获得提示,但是因为和对话框有重叠我改成中间了,原本想改成左上,但无论如何也没法让多个道具由上到下的刷新所以放弃了
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
2111
在线时间
950 小时
注册时间
2015-7-16
帖子
767

开拓者

8
发表于 2015-10-25 22:12:56 | 只看该作者
好像挺難的,我只能從圖書館找資料
還是你可以等等大觸們來幫忙你
這是最保險的方案

点评

對~我是台灣人 腳本這塊也只是新手程度  发表于 2015-10-25 22:30
奥 你是台湾的么,。。  发表于 2015-10-25 22:15
[神性领域扩张:扩张神性领域]
说了等于没说.
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
16 小时
注册时间
2015-10-1
帖子
14
7
 楼主| 发表于 2015-10-25 22:08:45 | 只看该作者
duzine 发表于 2015-10-25 22:02
只要木有框就行了嗎?
我研究一下(腳本渣)

只要物品图标和物品名称,,。
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
2111
在线时间
950 小时
注册时间
2015-7-16
帖子
767

开拓者

6
发表于 2015-10-25 22:02:21 | 只看该作者
只要木有框就行了嗎?
我研究一下(腳本渣)
[神性领域扩张:扩张神性领域]
说了等于没说.
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
16 小时
注册时间
2015-10-1
帖子
14
5
 楼主| 发表于 2015-10-25 21:40:26 | 只看该作者
@duzine 抱歉不是这种,不要带框的,直接漂浮
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
2111
在线时间
950 小时
注册时间
2015-7-16
帖子
767

开拓者

4
发表于 2015-10-25 21:30:00 | 只看该作者
不介意拿去玩吧,我相信這差不多就是你要的,一勞永逸!
  1. #來源:http://rpg.blue/thread-221452-1-1.html

  2. #==============================================================================
  3. # 本腳本來自www.66RPG.com,使用和轉載請保留此信息
  4. #==============================================================================

  5. # 注意!!!在對話後得到物品,請在對話後先用事件等待3幀,否則對話框來不及消失。

  6. # 開關定義:

  7. $noshowgold = 41                        # 不显示金钱得失

  8. $noshowitem = 42                        # 不显示物品得失

  9. $noshowweapon = 43                      # 不显示武器得失

  10. $noshowarmor = 44                       # 不显示防具得失
  11. # 以上開關,當打開的時候,獲得物品將不會提示,比如默認打開41號開關,獲得金錢不再提示

  12. # 不想提示等级升降时,就在事件命令直接选择是否显示就行了。

  13. #——聲效,可以自己改
  14. folder = "Audio/SE/"
  15. $gain_gold_se   = folder +"Shop"      # 获得金钱声效
  16. $loss_gold_se   = folder +"Blow2"     # 失去金钱声效

  17. $gain_item_se   = folder +"Item1"     # 获得物品声效
  18. $loss_item_se   = folder +"Blow2"     # 失去物品声效

  19. $gain_weapon_se = folder +"Item1"     # 获得武器声效
  20. $loss_weapon_se = folder +"Blow2"     # 失去武器声效

  21. $gain_armor_se  = folder +"Item1"     # 获得防具声效
  22. $loss_armor_se  = folder +"Blow2"     # 失去防具声效

  23. $gain_lv_se     = folder +"Item1"     # 提升等级声效
  24. $loss_lv_se     = folder +"Blow2"     # 降低等级声效

  25. # ————————————————————————————————————

  26. class Game_Interpreter
  27.   #--------------------------------------------------------------------------
  28.   # ● 增減金錢
  29.   #--------------------------------------------------------------------------
  30.   def command_125
  31.     value = operate_value(@params[0], @params[1], @params[2])
  32.     $game_party.gain_gold(value)
  33.     if $game_switches[$noshowgold]==false
  34.       show_gain_window(0, value)
  35.     end
  36.     return true
  37.   end
  38.   #--------------------------------------------------------------------------
  39.   # ● 增減物品
  40.   #--------------------------------------------------------------------------
  41.   def command_126
  42.     value = operate_value(@params[1], @params[2], @params[3])
  43.     $game_party.gain_item($data_items[@params[0]], value)
  44.     if $game_switches[$noshowitem]==false
  45.       show_gain_window(1, value)
  46.     end
  47.     $game_map.need_refresh = true
  48.     return true
  49.   end
  50.   #--------------------------------------------------------------------------
  51.   # ● 增減武器
  52.   #--------------------------------------------------------------------------
  53.   def command_127
  54.     value = operate_value(@params[1], @params[2], @params[3])
  55.     $game_party.gain_item($data_weapons[@params[0]], value, @params[4])
  56.     if $game_switches[$noshowweapon]==false
  57.       show_gain_window(2, value)
  58.     end
  59.     return true
  60.   end
  61.   #--------------------------------------------------------------------------
  62.   # ● 增減防具
  63.   #--------------------------------------------------------------------------
  64.   def command_128
  65.     value = operate_value(@params[1], @params[2], @params[3])
  66.     $game_party.gain_item($data_armors[@params[0]], value, @params[4])
  67.     if $game_switches[$noshowarmor]==false
  68.       show_gain_window(3, value)
  69.     end
  70.     return true
  71.   end
  72.   #--------------------------------------------------------------------------
  73.   # ● 等级増減
  74.   #--------------------------------------------------------------------------
  75.   def command_316
  76.     value = operate_value(@params[2], @params[3], @params[4])
  77.     iterate_actor_var(@params[0], @params[1]) do |actor|
  78.       actor.change_level(actor.level + value, @params[5])
  79.       if @params[4]
  80.         show_gain_level_window(actor,value)
  81.       end
  82.     end
  83.     return true
  84.   end
  85.   
  86.   def show_gain_window(type, value)
  87.     snstar2006_66rpg_item = $data_armors[@params[0]]
  88.     snstar2006_66rpg = Window_Base.new((640-300)/2,128,200,100)
  89.     snstar2006_66rpg.contents = Bitmap.new(snstar2006_66rpg.width - 32, snstar2006_66rpg.height - 32)
  90.     if value >= 0
  91.       gain_text = "獲得"   
  92.     else
  93.       gain_text = "失去"
  94.     end
  95.    
  96.     case type
  97.     when 0
  98.       gain_type = "金錢"
  99.       if value >=0
  100.         Audio.se_play($gain_gold_se,80,100)
  101.       else
  102.         Audio.se_play("Audio/SE/"+"Item1",80,100)
  103.       end
  104.     when 1
  105.       gain_type = "物品"
  106.       string = $data_items[@params[0]]
  107.       if value >=0
  108.         Audio.se_play($gain_item_se,80,100)
  109.       else
  110.         Audio.se_play($loss_item_se,80,100)
  111.       end
  112.     when 2
  113.       gain_type = "武器"
  114.       string = $data_weapons[@params[0]]
  115.       if value >=0
  116.         Audio.se_play($gain_weapon_se,80,100)
  117.       else
  118.         Audio.se_play($loss_weapon_se,80,100)
  119.       end
  120.     when 3
  121.       gain_type = "防具"
  122.       string = $data_armors[@params[0]]
  123.       if value >=0
  124.         Audio.se_play($gain_armor_se,80,100)
  125.       else
  126.         Audio.se_play($loss_armor_se,80,100)
  127.       end
  128.     end
  129.    
  130.     snstar2006_66rpg.contents.draw_text(0,0,160,30,gain_text+gain_type+":")
  131.    
  132.     unless type == 0
  133.       snstar2006_66rpg.draw_item_name(string, 0, 30, true)
  134.       snstar2006_66rpg.contents.draw_text(0, 30, 160, 30, "×"+value.abs.to_s, 2)
  135.     else
  136.       snstar2006_66rpg.contents.draw_text(0,30,165,30,value.abs.to_s + "  "+ Vocab.currency_unit, 2)
  137.     end
  138.    
  139.     snstar2006_66rpg.opacity = 160
  140.    
  141.     for i in 0..50
  142.       Graphics.update
  143.     end
  144.    
  145.     for i in 0..10
  146.       snstar2006_66rpg.opacity -= 10
  147.       snstar2006_66rpg.contents_opacity -= 10
  148.       Graphics.update
  149.     end
  150.    
  151.     snstar2006_66rpg.dispose
  152.    
  153.   end

  154.   def show_gain_level_window(actor,value)
  155.     lvstring = Vocab::level
  156.         
  157.     snstar2006_66rpg = Window_Base.new((640-300)/2,128,200,100)
  158.     snstar2006_66rpg.contents = Bitmap.new(snstar2006_66rpg.width - 30, snstar2006_66rpg.height - 30)
  159.    
  160.     if value >= 0
  161.       gain_text = "提升"
  162.       Audio.se_play($gain_lv_se,80,100)
  163.     else
  164.       gain_text = "降低"
  165.       Audio.se_play($loss_lv_se,80,100)
  166.     end
  167.    
  168.     snstar2006_66rpg.contents.draw_text(0, 0, 110, 30, actor.name)
  169.     string = lvstring+gain_text+value.abs.to_s+"級"
  170.     snstar2006_66rpg.contents.draw_text(0,30,160,30,string, 2)

  171.     snstar2006_66rpg.opacity = 160
  172.    
  173.     for i in 0..50
  174.       Graphics.update
  175.     end
  176.    
  177.     for i in 0..10
  178.       snstar2006_66rpg.opacity -= 10
  179.       snstar2006_66rpg.contents_opacity -= 10
  180.       Graphics.update
  181.     end
  182.    
  183.     snstar2006_66rpg.dispose

  184.   end
  185. end


  186. #==============================================================================
  187. # 本腳本來自www.66RPG.com,使用和轉載請保留此信息
  188. #==============================================================================
复制代码

点评

谢谢,我去试试  发表于 2015-10-25 21:33
[神性领域扩张:扩张神性领域]
说了等于没说.
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
16 小时
注册时间
2015-10-1
帖子
14
3
 楼主| 发表于 2015-10-25 21:24:10 | 只看该作者
未知-XY 发表于 2015-10-25 21:21
有没有人啊

@duzine 就是获得物品让物品图标在前面然后后面显示物品文字
每次获得物品飘在画面上几秒后消失
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
16 小时
注册时间
2015-10-1
帖子
14
2
 楼主| 发表于 2015-10-25 21:21:08 | 只看该作者
有没有人啊

点评

想幫你可是又看不懂你問的意思0.0  发表于 2015-10-25 21:22
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-17 00:32

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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