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

Project1

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

[RMVX发布] 脚本或事件获得(失去)道具和金钱时显示提示

[复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
72 小时
注册时间
2010-10-18
帖子
104
跳转到指定楼层
1
发表于 2010-10-24 02:51:43 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

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

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

x
本帖最后由 迷路子 于 2010-10-24 05:32 编辑

晚上看到帖子说脚本获得道具怎没弹提示
因为自己本来也就有这个想法
所以就趁这晚有空写出来了
虽然翻了下论坛
已经有前辈写出类似的脚本了
phil前辈的脚本
我还是写完才发现(汗)
不过都写了   还是发上来了
  1. =begin
  2. 脚本名:脚本获得道具提示
  3. 作者:迷路子

  4. 使用脚本获得道具时,还是会弹出获得道具的提示框

  5. =end

  6. module Miluko
  7.   ITEM_GET_SW = 4  #提示是否显示的开关
  8.   TIME    = 180  #提示显示的时间
  9.   GET_SE = RPG::SE.new("Chime2", 80, 100)  #获得道具的音效
  10.   LOSE_SE = RPG::SE.new("Cancel", 80, 100)
  11.   OPACITY_CHANGE_RATE = 3  #透明度变化时间为显示时间的几分之一
  12.   MONEY_TYPE = 0  #0为显示金钱名称  1为icon
  13.   MONEY_ICON= 205 #金币的icon图
  14. end

  15. class Window_GetItem < Window_Base
  16.   
  17.   def initialize(n,item = nil,lose = false)
  18.     super(147,180,250,60)
  19.     self.z = 10000
  20.     self.contents_opacity = 0
  21.     self.back_opacity = 0
  22.     self.opacity = 0
  23.     self.y = 180 + Miluko::TIME/4
  24.     @item = item
  25.     @count = 0
  26.     @num = n
  27.     @lose = lose
  28.     refresh
  29.     if @lose
  30.       Miluko::LOSE_SE.play
  31.     else
  32.       Miluko::GET_SE.play
  33.     end
  34.   end
  35.   
  36.   def update
  37.     @count += 1
  38.     change_time = Miluko::TIME/Miluko::OPACITY_CHANGE_RATE
  39.     if @count <= change_time
  40.       self.y -= 1
  41.       self.contents_opacity += 255/change_time
  42.       self.back_opacity += 255/change_time
  43.       self.opacity += 255/change_time
  44.     elsif @count >= change_time*(Miluko::OPACITY_CHANGE_RATE-1)
  45.       self.y += 1
  46.       self.contents_opacity -= 255/change_time
  47.       self.back_opacity -= 255/change_time
  48.       self.opacity -= 255/change_time
  49.     end
  50.     if @count >= Miluko::TIME
  51.       dispose
  52.     end
  53.   end
  54.   
  55.   def refresh
  56.     draw_get_text(0,0)
  57.     Graphics.frame_reset
  58.   end
  59.   
  60.   def draw_get_text(x,y)
  61.     self.contents.font.color = Color.new(120,120,255)
  62.     self.contents.font.size = 24
  63.     if @lose
  64.       self.contents.draw_text(x, y, 60, WLH, "失去  ")
  65.     else
  66.       self.contents.draw_text(x, y, 60, WLH, "获得  ")
  67.     end
  68.     if @item != nil
  69.       self.draw_icon(@item.icon_index, x+50, y)
  70.       self.contents.font.color = Color.new(255,255,255)
  71.       self.contents.draw_text(x+80, y, 100, WLH, @item.name)
  72.       self.contents.font.color = Color.new(0,255,255)
  73.       num_text = "x" + @num.to_s
  74.       self.contents.draw_text(x+180, y, 30, WLH, num_text,2)
  75.     else
  76.       self.draw_icon(144, x+50, y)
  77.       self.contents.font.color = Color.new(255,255,255)
  78.       self.contents.draw_text(x+70, y, 100, WLH, @num,2)
  79.       if Miluko::MONEY_TYPE
  80.         self.draw_icon(Miluko::MONEY_ICON, x+190, y)
  81.       else
  82.         self.contents.draw_text(x+180, y, 40, WLH, Vocab::gold)
  83.       end
  84.     end
  85.   end
  86. end

  87. class Game_Party < Game_Unit
  88.   
  89.   def gain_gold(n)
  90.     @gold = [[@gold + n, 0].max, 9999999].min
  91.     get_num = n
  92.     lose = true if n < 0
  93.     if $game_switches[Miluko::ITEM_GET_SW]
  94.       if lose
  95.         get_window = Window_GetItem.new(0-get_num,nil,lose)
  96.       else
  97.         get_window = Window_GetItem.new(get_num)
  98.       end
  99.       for i in 1..Miluko::TIME
  100.         get_window.update
  101.         Graphics.update
  102.       end
  103.     end
  104.   end
  105.   
  106.   def gain_item(item, n, include_equip = false)
  107.     number = item_number(item)
  108.     lose = true if n < 0
  109.     get_num = n
  110.     case item
  111.     when RPG::Item
  112.       @items[item.id] = [[number + n, 0].max, 99].min
  113.     when RPG::Weapon
  114.       @weapons[item.id] = [[number + n, 0].max, 99].min
  115.     when RPG::Armor
  116.       @armors[item.id] = [[number + n, 0].max, 99].min
  117.     end
  118.     n += number
  119.     if include_equip and n < 0
  120.       for actor in members
  121.         while n < 0 and actor.equips.include?(item)
  122.           actor.discard_equip(item)
  123.           n += 1
  124.         end
  125.       end
  126.     end
  127.     if $game_switches[Miluko::ITEM_GET_SW]
  128.       if lose
  129.         get_window = Window_GetItem.new(0-get_num,item,lose)
  130.       else
  131.         get_window = Window_GetItem.new(get_num,item)
  132.       end
  133.       for i in 1..Miluko::TIME
  134.         get_window.update
  135.         Graphics.update
  136.       end
  137.     end
  138.   end
  139. end
复制代码
使用方法
  1. 设定一个开关控制是否显示物品获得提示,预设为4号开关

  2. 可设定提示显示时间,预设为3秒(180帧  设定时要注意单位为帧)

  3. 透明度变化时间  OPACITY_CHANGE_RATE为提示显示时间的几分之一   预设为3   即是1/3

  4. LOSE_SE和GET_SE分别是失去和获得时的音效  可以自行修改

  5. MONEY_TYPE是显示金钱时   金钱单位要以文字还是ICON方式显示

  6. MONEY_ICON  若是以ICON方式显示金钱单位   可修改此值设定想显示的ICON
复制代码
截图

提示框透明度变化和位移照不出来~哈


$game_party.gain_item和用事件增减的结果是一样的

工程
Project1.rar (239.94 KB, 下载次数: 162)

评分

参与人数 2星屑 +1002 收起 理由
bobobzc + 2 你知道的,杂“病”只能评2分 我就给一分吧.
DeathKing + 1000 鼓励。

查看全部评分

Lv3.寻梦者

梦石
0
星屑
1190
在线时间
1564 小时
注册时间
2008-7-30
帖子
4418

贵宾

2
发表于 2010-10-24 07:46:05 | 只看该作者
这个是"老生常谈"的东西了,事实上,这个很早以前就被人从XP上移至如VX。

配置高度集中化思想很好(Miluko模块),易于定位。

可以尝试使用其他的提示方式。值得借鉴的经验,我曾看过VX有防永远的伊苏的物品取得方式,不放考虑模仿或复刻一些比较出名的游戏的物品取得方式。

See FScript Here:https://github.com/DeathKing/fscript
潜心编写URG3中。
所有对URG3的疑问和勘误或者建议,请移步至发布页面。
欢迎萌妹纸催更
回复 支持 反对

使用道具 举报

Lv2.观梦者

花开堪折直须折

梦石
0
星屑
681
在线时间
943 小时
注册时间
2010-7-17
帖子
4963

贵宾

3
发表于 2010-11-1 20:21:39 | 只看该作者
哇哇,支持,建议再开发个“开关变量”自动提示脚本,在脚本里设置要提示的开关和变量(提示的时候就说:XX打开了/关闭了,XX+1/-1或写XX现在是1)呃,要求高了吧。。。表示愿意给V。。唉,穷人啊!

点评

啊啊,可以的吗……果然还是菜鸟啊!企鹅大多指教啰!  发表于 2010-11-1 21:45
选中两个图层的时候,移动工具不是可以设置居中吗……  发表于 2010-11-1 21:29
这些常理当然还是知道的啦喵!我是说在PS里把对话框对齐啊。。唉,烦!  发表于 2010-11-1 20:51
首先,MessageBack改成一个居中的小方框,文章显示时用“变暗”,中间显示,至于空格,就是不知道那个文字脚本有没有文字居中就是了  发表于 2010-11-1 20:42
- -!您牛啊,我才懒得去数空格和对齐图片呢。。  发表于 2010-11-1 20:38
大家好,我叫节操,有一天,我被吃了。
http://forever-dream.5d6d.com
永恒の梦制作组论坛

129993099
永恒の梦制作组QQ群
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-27 13:22

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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