Project1

标题: RMVA简易物品得失提示脚本 [打印本页]

作者: 寒夜无冬    时间: 2014-9-23 13:40
标题: RMVA简易物品得失提示脚本
本帖最后由 寒夜无冬 于 2014-9-23 15:04 编辑

鄙人之前得到了喵呜喵等人帮助,学习了得失脚本的内容https://rpg.blue/thread-368302-1-1.html
这次发布的是简易的版本,少了很多功能,只是为方便他人理解。。(一直用其他语言写的,脚本里面可以看出我用的就那几个通用函数),新人脚本,多多包涵哈

[box=Silver]
RUBY 代码复制
  1. =begin
  2. ===============================================================================
  3.                             RMVA物品增减提示脚本
  4. ===============================================================================
  5.  作者:火柴(寒夜无冬)
  6.  日期:2014.9.20
  7.  授权使用:66rpg、澄海制作组、RM亲友团全体成员
  8.  授权声明:本脚本供各位学习和制作方便之用,请勿用于商业和其他任何营利性用途!如有任
  9.  何疏漏和错误,欢迎修改。转载使用和修改请保留本段所有注释信息。
  10.  特别感谢:皓·宇(庆.new)、喵呜喵5
  11. ===============================================================================
  12. =end
  13. #===============CONFIG==========================================================
  14. IF_SHOW_GOLDMESSAGE=true    #是否开启金钱获得提示
  15. IF_SHOW_ITEMMESSAGE=true    #是否开启物品获得提示
  16. IF_SHOW_WEAPONSMESSAGE=true #是否开启武器获得提示
  17. IF_SHOW_ARMORMESSAGE=true   #是否开启护甲获得提示
  18. DURATION_TIME=100           #提示框停留时间
  19. #==============================================================================
  20.  
  21. class Game_Interpreter
  22.   def command_125 #金钱增减
  23.     #@params[0] #增加或减少
  24.     #@params[1]
  25.     #@params[2] #金钱数量
  26.     value = operate_value(@params[0], @params[1], @params[2])
  27.     #显示最终金钱加减数额
  28.     if IF_SHOW_GOLDMESSAGE==true
  29.      showMessage("gold",@params[1])
  30.     end
  31.     $game_party.gain_gold(value)
  32.   end
  33.   def command_126 #金钱增减
  34.     #@params[1] #增加或减少 0,1表示
  35.     #@params[2] #物品索引,从0算起
  36.     #@params[3] #物品数量
  37.     value = operate_value(@params[1], @params[2], @params[3])
  38.     $game_party.gain_item($data_items[@params[0]], value)
  39.     if IF_SHOW_ITEMMESSAGE==true
  40.      showMessage("item",@params[1])
  41.     end
  42.   end
  43.   def command_127  #武器增减
  44.     value = operate_value(@params[1], @params[2], @params[3])   
  45.     $game_party.gain_item($data_weapons[@params[0]], value, @params[4])
  46.     if IF_SHOW_WEAPONSMESSAGE==true
  47.        showMessage("weapon",@params[1])
  48.     end
  49.   end
  50.   def command_128  #护甲增减
  51.     value = operate_value(@params[1], @params[2], @params[3])   
  52.     $game_party.gain_item($data_armors[@params[0]], value, @params[4])
  53.     if IF_SHOW_ARMORMESSAGE==true
  54.       showMessage("armor",@params[1])
  55.     end
  56.   end
  57.   def showMessage(type,regulation) #判断获取的是物品/武器/护甲,执行查询相应的数据库信息
  58.     if type.eql?"item"
  59.         @wm=Window_ThingsMessage.new($data_items[@params[0]].name,@params[3],regulation)
  60.         for i in 0 .. DURATION_TIME
  61.           Graphics.update
  62.         end
  63.         @wm.dispose
  64.     elsif type.eql?"weapon"
  65.         @wm=Window_ThingsMessage.new($data_weapons[@params[0]].name,@params[3],regulation)        
  66.         for i in 0 .. DURATION_TIME         
  67.           Graphics.update        
  68.         end        
  69.         @wm.dispose
  70.     elsif type.eql?"gold"
  71.         @wm=Window_ThingsMessage.new("gold",@params[2],@params[0])        
  72.         for i in 0 .. DURATION_TIME         
  73.           Graphics.update        
  74.         end        
  75.         @wm.dispose
  76.     else
  77.         @wm=Window_ThingsMessage.new($data_armors[@params[0]].name,@params[3],regulation)               
  78.         for i in 0 .. DURATION_TIME                    
  79.           Graphics.update               
  80.         end               
  81.         @wm.dispose
  82.     end
  83.    end
  84. end
  85. class Window_ThingsMessage < Window_Base
  86.   @str=nil
  87.   @window_width=nil
  88.   @window_height=nil
  89.   @str_width=nil
  90.   @str_height=nil
  91.   def initialize(itemName,itemNumber,regulation)
  92.     #金钱处理
  93.     if itemName.eql?"gold"
  94.       if regulation==0
  95.         @str="你得到了 金钱×#{itemNumber}"
  96.       elsif regulation==1
  97.         @str="你失去了 金钱×#{itemNumber}"
  98.       end
  99.     #武器/护甲/物品处理
  100.     elsif regulation==0
  101.      @str="你得到了 #{itemName}×#{itemNumber}"
  102.     elsif regulation==1
  103.      @str="你失去了 #{itemName}×#{itemNumber}"
  104.     end
  105.     get_window_size
  106.     super(140,180,@window_width,@window_height)
  107.     refresh
  108.   end
  109.   def refresh
  110.     @str_width=text_size(@str).width
  111.     @str_height=text_size(@str).height
  112.     self.contents.clear
  113.     self.contents.draw_text(0,0,@str_width,@str_height,@str,1)
  114.   end
  115.   def get_window_size
  116.     bitmap=Bitmap.new(100,100)  
  117.     @window_width=bitmap.text_size(@str).width+32
  118.     @window_height=bitmap.text_size(@str).height+25
  119.   end
  120. end
[/box]
作者: VIPSaber    时间: 2014-9-23 14:36
等待120帧有点太久哦。
作者: 寒夜无冬    时间: 2014-9-23 14:54
本帖最后由 寒夜无冬 于 2014-9-23 15:02 编辑
VIPSaber 发表于 2014-9-23 14:36
等待120帧有点太久哦。


哈哈 VIP来啦,我等下回去修改{:2_262:}
作者: taroxd    时间: 2014-9-23 16:43
本帖最后由 taroxd 于 2014-9-23 16:44 编辑

我的群组(见签名档)里也有一个,比你这个还要简易得多。
作者: 寒夜无冬    时间: 2014-9-23 21:29
taroxd 发表于 2014-9-23 16:43
我的群组(见签名档)里也有一个,比你这个还要简易得多。

果然大触是不一样 大触的很精简啊,我的是简陋orz
作者: kotenka_    时间: 2014-10-2 06:33
感謝樓主~~下載了三個版本,只有樓主版本是我真正在遊戲中可以使用的@@@




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