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

Project1

 找回密码
 注册会员
搜索
12
返回列表 发新帖
楼主: 柳柳
打印 上一主题 下一主题

[原创发布]VX版 得失物品自动提示

 关闭 [复制链接]

Lv3.寻梦者 (暗夜天使)

名侦探小柯

梦石
0
星屑
3299
在线时间
3619 小时
注册时间
2006-9-6
帖子
37400

开拓者贵宾第3届短篇游戏大赛主流游戏组亚军第5届短篇游戏比赛亚军

11
发表于 2008-1-12 23:29:41 | 只看该作者
看起来比XP版的还好看些……{/hx}
回复 支持 反对

使用道具 举报

Lv1.梦旅人

风之塞尔达

梦石
0
星屑
50
在线时间
57 小时
注册时间
2005-10-22
帖子
2492

贵宾

12
发表于 2008-1-13 00:40:34 | 只看该作者
能把6R上的XP热门脚本都升级到VX就很好了{/se}
在程序里延续塞尔达的传说, 在画板上勾勒塞尔达的轮廓!!
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止发言)

Mars-火星机械

梦石
0
星屑
50
在线时间
0 小时
注册时间
2007-12-15
帖子
2713
13
发表于 2008-1-18 05:32:44 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

Lv1.梦旅人

66RPG站长

梦石
0
星屑
54
在线时间
615 小时
注册时间
2005-10-10
帖子
5734

RMVX自由创作大赛亚军第2届短篇游戏比赛亚军第5届短篇游戏比赛冠军

14
 楼主| 发表于 2008-1-18 06:06:30 | 只看该作者
看工程吧,考过来的时候有一些字符串混乱了。
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止发言)

喵,小柯的宠物

梦石
0
星屑
50
在线时间
0 小时
注册时间
2007-12-15
帖子
2310
15
发表于 2008-1-18 20:59:59 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复 支持 反对

使用道具 举报

Lv1.梦旅人

雷欧纳德的宠物

梦石
0
星屑
50
在线时间
769 小时
注册时间
2006-8-6
帖子
3778

贵宾

16
发表于 2008-2-12 08:03:03 | 只看该作者
打酱油的- -b
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
50
在线时间
0 小时
注册时间
2007-7-27
帖子
140
17
发表于 2008-2-12 09:00:55 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
1 小时
注册时间
2005-12-19
帖子
43
18
发表于 2008-6-1 01:22:28 | 只看该作者
想增加一个得失经验显示,要怎么改?
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
1 小时
注册时间
2005-12-19
帖子
43
19
发表于 2008-6-1 01:24:54 | 只看该作者
以下引用superufo于2008-1-17 21:32:44的发言:


tx = contents.text_size("  你" + str + "了: ").width + 24 + contents.text_size(para2.name).width
   self.contents.draw_text(tx, 0, self.width, 32, " ? + para3.to_s)
  when "gold"
    str = "获得"
    if para2 < 0 then
      str = "失去"
      para2 = - para2
    end


似乎应该是   self.contents.draw_text(tx, 0, self.width, 32, " ? "+ para3.to_s)
漏了引号

self.contents.draw_text(tx, 0, self.width, 32, " ×"+ para3.to_s)
我那里是这样改的 用问号的话就变成 "物品名称?数量" 的显示方法了
回复 支持 反对

使用道具 举报

Lv1.梦旅人

66RPG站长

梦石
0
星屑
54
在线时间
615 小时
注册时间
2005-10-10
帖子
5734

RMVX自由创作大赛亚军第2届短篇游戏比赛亚军第5届短篇游戏比赛冠军

20
 楼主| 发表于 2008-1-11 10:11:09 | 只看该作者

[原创发布]VX版 得失物品自动提示

1、标题:VX版 得失物品自动提示

2、作者:柳柳

3、摘要:RMVX下的得失物品自动提示,提示中按确定可以加速跳过。注意一点是如果你用VX自带的宝箱,那么宝箱事件里面最后一句话请删掉。

4、首发网址:http://z.66rpg.com/dispbbs.asp?b ... p;star=1&page=1

5、教学分类:RMVX、脚本、地图、表现效果

6、发布日期:2008/1/11

7、适用人群:任何RPG和SRPG制作者,为了统一游戏效果并追求美观的作者,脚本初级学习者。

8、通用度:★★★★★

9、技术应用的复杂度:20

10、技术学习的理解难度:35

11、范例工程:- -b 上传在自己小窝了,需要请自取:http://z.66rpg.com/dispbbs.asp?boardid=9&id=30&star=1&page=1 建议直接新建工程测试比较快。

12、关键字:得失、物品、武器、防具、金钱、自动、提示、统一界面、窗口创建、脚本入门

13、作者的话:这个是RMVX的得失物品自动提示,和XP版的差不太多,不过经历这么久时间,我已经比原来聪明点了,算法不仅规范一些(配合RGSS2.0吗),也加了一些小的人性化设定。只是窗口界面还不是很好看,以后可以根据自己兴趣慢慢改吧。

14、教学正文:

这个的制作过程很简单:

~1、首先确定得失物品会有几个参数,我这里设定为三个。

~2、根据这三个参数制作一个Window新类,用来创建窗口。不要把代码分散写在函数里面,不好维护。

~3、将获得物品的刷新部分代码写在Game_Interpreter里面,新定义一个函数。

~4、调整获得物品的那几个函数,加入一行自动显示的代码即可。



具体代码如下(提示,复制脚本请用word中转):

  1. #==============================================================================
  2. # ■  Game_Interpreter
  3. #------------------------------------------------------------------------------
  4. #  执行事件命令的解释器。本类在 Game_System 类
  5. # 与 Game_Event 类的内部使用。
  6. #==============================================================================
  7. class Game_Interpreter
  8.   #--------------------------------------------------------------------------
  9.   # ● 得失物品自动提示的刷新时间控制
  10.   #--------------------------------------------------------------------------
  11.   def call_6RgetItem(para1, para2 = nil, para3 = nil)
  12.     temp_window = Window_Gain_Item.new(para1, para2, para3)
  13.     Sound.play_shop
  14.     for i in 0..120
  15.       Graphics.update
  16.       Input.update
  17.       if Input.trigger?(Input::C) or Input.trigger?(Input::B)
  18.         Sound.play_cancel
  19.         break
  20.       end
  21.     end
  22.     for i in 0..15
  23.       temp_window.opacity -= 20
  24.       temp_window.contents_opacity -= 16
  25.       temp_window.update
  26.       Graphics.update
  27.     end   
  28.     temp_window.dispose
  29.     temp_window = nil
  30.   end  
  31.   #--------------------------------------------------------------------------
  32.   # ● 增减金钱
  33.   #--------------------------------------------------------------------------
  34.   def command_125
  35.     value = operate_value(@params[0], @params[1], @params[2])
  36.     $game_party.gain_gold(value)
  37.     call_6RgetItem("gold", value)
  38.     return true
  39.   end
  40.   #--------------------------------------------------------------------------
  41.   # ● 增减物品
  42.   #--------------------------------------------------------------------------
  43.   def command_126
  44.     value = operate_value(@params[1], @params[2], @params[3])
  45.     $game_party.gain_item($data_items[@params[0]], value)
  46.     $game_map.need_refresh = true
  47.     call_6RgetItem("item", $data_items[@params[0]], value)
  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.     call_6RgetItem("item", $data_weapons[@params[0]], value)
  57.     return true
  58.   end
  59.   #--------------------------------------------------------------------------
  60.   # ● 增减防具
  61.   #--------------------------------------------------------------------------
  62.   def command_128
  63.     value = operate_value(@params[1], @params[2], @params[3])
  64.     $game_party.gain_item($data_armors[@params[0]], value, @params[4])
  65.     call_6RgetItem("item", $data_armors[@params[0]], value)
  66.     return true
  67.   end
  68. end

  69. #==============================================================================
  70. # ■ Window_Gain_Item
  71. #------------------------------------------------------------------------------
  72. #  显示获得物品的窗口。
  73. #==============================================================================

  74. class Window_Gain_Item < Window_Base
  75.   #--------------------------------------------------------------------------
  76.   # ● 初始化窗口
  77.   #--------------------------------------------------------------------------
  78.   def initialize(para1, para2 = nil, para3 = nil)
  79.     super(0, 0, 160, WLH + 32)
  80.     self.z = 10000
  81.     case para1
  82.     when "item"
  83.       str = "获得"
  84.       if para3 < 0 then
  85.         str = "失去"
  86.         para3 = - para3
  87.       end
  88.       winwidth = contents.text_size("  你获得了: ?  " + para3.to_s).width + 24 + contents.text_size(para2.name).width
  89.       self.width = winwidth + 64
  90.       self.height = 64
  91.       self.x = (Graphics.width - self.width) / 2
  92.       self.y = (Graphics.height - self.height) / 2
  93.       create_contents
  94.       self.contents.draw_text(0, 0, self.width, 32, "  你" + str + "了: ")
  95.       tx = contents.text_size("  你" + str + "了:").width
  96.       draw_item_name(para2, tx , 0, true)
  97.       self.contents.draw_text(tx + 24, 0, self.width, 32, para2.name)
  98.       tx = contents.text_size("  你" + str + "了: ").width + 24 + contents.text_size(para2.name).width
  99.       self.contents.draw_text(tx, 0, self.width, 32, " ? + para3.to_s)
  100.     when "gold"
  101.       str = "获得"
  102.       if para2 < 0 then
  103.         str = "失去"
  104.         para2 = - para2
  105.       end
  106.       winwidth = contents.text_size("  你获得了:   " + Vocab.gold.to_s).width + contents.text_size(para2).width
  107.       self.width = winwidth + 64
  108.       self.height = 64
  109.       self.x = (Graphics.width - self.width) / 2
  110.       self.y = (Graphics.height - self.height) / 2
  111.       create_contents
  112.       self.contents.draw_text(0, 0, self.width, 32, "  你" + str + "了: #{para2} " + Vocab.gold.to_s)
  113.     end
  114.   end
  115.   #--------------------------------------------------------------------------
  116.   # ● 物品名的描画
  117.   #     item : 物品(特技、武器、防具可)
  118.   #     x    : 描画目标 X 坐标
  119.   #     y    : 描画目标 Y 坐标
  120.   #     enabled : 有效标记录。是false 的时候半透明绘画
  121.   #--------------------------------------------------------------------------
  122.   def draw_item_name(item, x, y, enabled = true)
  123.     if item != nil
  124.       draw_icon(item.icon_index, x, y, enabled)
  125.       self.contents.font.color = normal_color
  126.       self.contents.font.color.alpha = enabled ? 255 : 128
  127.     end
  128.   end  
  129. end
复制代码



17、教学相关RGSS类:

class Game_Interpreter
    def initialize
    def draw_item_name

class Game_Interpreter
    def call_6RgetItem
    def command_125
    def command_126
    def command_127
    def command_128


上面这个类别检查可以用来检查脚本冲突的原因。当然我建议你直接用本脚本中的函数替换以上几个函数的相应部分。

              [本贴由 御灵 于 2008-1-17 23:35:24 进行了编辑]
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-16 15:50

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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