查看: 9792|回复: 19

[RMVA发布] 【<4月5日重大更新!>1.5】rsheep成就系统/消息推送系统

[复制链接]
梦石
0
星屑
1032
在线时间
145 小时
注册时间
2013-10-16
回帖
254
发表于 2015-2-11 15:25:01 | 显示全部楼层 |阅读模式

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

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

×
本帖最后由 rpg-sheep 于 2015-4-5 19:48 编辑

[fold=旧版更新日志:]

2015-02-12
V1.3(紧急更新)
#修复了分辨率大于640*480时显示错位的重大BUG
#使用更加稳定的数组

2015-01-12
V1.2
功能性更新:舍弃了原有一页显示5个成就的功能,改为了4个。但是在下方显示了总共取得的星星数。
1.png

2015-02-11
V1.1
#增加了加入菜单的功能 @黑白界
#人性化设计:改变了帖子的排版。
#现在成就系统无法保存的BUG修复了。已经能够100%存入存档
#现在当分辨率大于640*480时,窗口无论何时都会自动居中
#人性化设计:将原本的 1.png 简化为 1.png ,复制变的更容易。三个分别为任务系统部分,将窗口加入菜单部分和场景部分。

2015-02-11
V1.0
#提供了原创资源
#提供了范例工程
#提供了详细的说明


[/fold]
最新更新日志:

2015-04-05
V1.4
#修复了在没有获取0号成就的情况下获取1号成就报错的问题(感谢 @哀しい渚 )

2015-04-05
V1.5
#增加了推送消息功能,妈妈再也不用担心我不知道什么时候取得成就了!
效果图往下看~


相信大家对任务系统已经很了解了。而我这次发布的是成就系统。
那么成就系统与任务系统有什么区别呢?
话不多说,上图。
093212isknnydsqq277c27.jpg
某小白:唉?这是什么?
这个是COC的成就系统啦,如果你不知道这个游戏也没关系。咱们不是为了讨论这个游戏的对不对?
可以看到成就系统有以下几个特点:(纯属个人见解)

1.成就可以算是一个任务,但不是“救出某队友”“去送一封信”这样的任务。而是“摘100个桃子”这类目标大于1的任务。
2.成就与剧情无关。例如“摘100个桃子”,如果我“摘100个桃子”之后可以开启一段剧情,那么他就不是成就。
3.成就可以升级。比如“摘100个桃子”升级之后“摘200个桃子”“摘300个桃子”……
4.还有一类特殊的成就,比如“获得世界冠军”这种成就。。。

因此,成就可以算是特定的,复杂的任务。
由于我在6R搜索并未看到特别漂亮的VA成就系统,所以就做啦~
介绍完了我设计这个系统的初衷,上图。
1.png
是不是效果很好?
说明:
左侧是目前的星级
中间部分,上面是成就名称,是不会变的,中间是达成下一等级的条件。最下面是进度条。
右侧上面是最高记录,最下面是完成当前等级的奖励。
随着成就星级的上升,奖励和要求都会变化,炫!
s.png
1.5版本又新增了推送消息功能,妈妈再也不用担心我不知道什么时候取得成就了!
效果图:
无标题.png
其实1.5附赠了一个rsheep消息推送脚本(原创哦),详细说明见下~
面板介绍完了,如果你觉得这个脚本对你有用,想必已经很激动了。别急!现在是说明使用方法的时间啦!


如何使用成就系统?

链接
[fold=首先下载范例工程:范例工程链接]
V1.5链接: http://pan.baidu.com/s/1bnjNxuf 密码: bad7


V1.4链接: http://pan.baidu.com/s/1qWG6Wag 密码: h1d6
V1.3链接: http://pan.baidu.com/s/1CTZJ4 密码: dv9g
V1.2链接: http://pan.baidu.com/s/1jGmVqdg 密码: ilqo
V1.1链接: http://pan.baidu.com/s/1hq5qmrU 密码: oaii
V1.0链接: http://pan.baidu.com/s/1kTqXbnx  密码: ns5b

[/fold]
(提取码是为了让大家只能通过6R得到资源)
求糖~求糖~求糖~求糖~求糖~求糖~求糖~求糖~

[fold=详细的使用方法:]
====================================================
$game_party.get_achieve(index, name) # 获取数据库中的成就(强力推荐)
    范例:$game_party.get_achieve(3, "我看见了喵呜") # 获取数据库中第3号成就
    index这个参数就是数据库中的第几个成就。注意:第几个不等于第几行,需要按照数组来写,数据库中的第一行是第0个成就。
    name是一个人性化的参数,可以乱填,可以与数据库不一致,可以没有这个参数。它的作用就是为了防止你忘了成就的名字。
    关于如何填写数据库,会在后面说明。
--------------------------------------------------------------------------------------
$game_party.lose_achieve(index, name) # 删除成就(不推荐)
    范例:$game_party.get_achieve(3, "我看见了taroxd") # 删除数据库中第3号成就
    参数同上。
    我不建议使用这个方法,它的作用就是删掉这个成就,留给有特殊需求的人使用。
--------------------------------------------------------------------------------------
$game_party.new_achieve(index, name, max_level, description, number, reward) # 新成就(不推荐)
    范例:见下面数据库说明。
    参数见下面数据库说明。
    我不建议使用这个方法,一开始就在数据库里定义不就好了么?注意:使用这个方法时,如果index与数据库中重复,就会获取不到。
====================================================
$game_party.achieve_up(index) # 直接升级成就(不推荐)
    会被下面的调用。调用这个方法可以直接获得奖励,目前暂时没有提示功能(已经这么炫了,不预留点功能更新我怎么要糖)
---------------------------------------------------------------------------------------
$game_party.achieve_down(index) # 直接降级成就(不推荐)
    调用这个方法后,再次achieve_up升级可以重复获得奖励,留给有需要的人。
====================================================
$game_party.achieve_setrate(index, number) # 设置成就完成度(强力推荐)
    范例:$game_party.achieve_setrate(3, 1000) # 将3号成就的完成度设为1000
    index这个参数就是你想要设置的成就,使用这个方法前必须先get_achieve或new_achieve,否则会报错。
    number是任意数字。
    如果达到下一等级需求会自动调用achieve_up升级。但如果number达到了可以使这个成就连升两级以上的话,只能升级一次,这是为了防止溢出。如果你想升级多次,可以使用$game_party.achieve_uprate(index, 0)来多次升级。
    这个方法与下面相比,适用于”=“的情况:例如完成成就的条件是防御达到100,那么每次对防御赋值时,调用这个方法,将完成度设为防御值。
--------------------------------------------------------------------------------------
$game_party.achieve_uprate(index, number) # 增加成就完成度(强力推荐)
    范例:同上
    参数:同上,只不过这次变成了增加。
    如果达到下一等级需求会自动调用achieve_up升级。但如果number达到了可以使这个成就连升两级以上的话,只能升级一次,这是为了防止溢出。如果你想升级多次,可以使用$game_party.achieve_uprate(index, 0)来多次升级。
    这个方法与上面相比,适用于”+“的情况:例如完成成就的条件是捡到10个物品,那么每捡到一个,调用这个方法,使完成度+1。
--------------------------------------------------------------------------------------
$game_party.achieve_downrate(index, number) # 减少成就完成度(不推荐)
    范例:同上
    参数:同上,只不过这次变成了减少。
    留给有特殊需要的人。
    这个方法不会导致成就降级。最多减到0.
====================================================
[/fold]

[fold=如何填写数据库:]
数据库位置:
V1.0版本在 ┠ RS_Database 里面
V1.1版本在 ┠ RS Achieve System 最下方

语法:  
  def load_achieve
    @achieve_map = [
      Achieve.new(0, "我爱吃糖" ,4 , ["到66RPG给rpg-sheep塞糖", "枚"], [10000, 20000, 30000, 40000], [[1, 22], [1, 22], [1, 22], [1, 22]]),#注意这里有个逗号
      Achieve.new(1, "点赞最萌" ,7 , ["到小优兔兔吧给小优点赞", "次"], [100, 200, 300, 400, 500, 600, 700], [[1, 22], [2, 22], [3, 22], [4, 22], [5, 22], [6, 22], [7, 22]])#最后一行逗号可加可不加
    ]
  end

Achieve.new对应(index, name, max_level, description, number, reward)

index:按顺序填就好。(int)

name:成就名,不会改变。(string)

max_level:成就的星级(显示几颗星)。(int)
                    注意,本系统支持1~7星。超过7颗星会大幅影响玩家积极性哦(我会告诉你是星星太多放不下吗)

description:描述。是一个只有两个元素的数组。把你需要变的地方空出来,和下一个参数交互。(array)

number:完成当前等级的需要数量,是一个数组,元素的数量和max_level相等。会根据等级填补到上一个参数的空缺部分。(array)
                 比如:["到66RPG给rpg-sheep塞糖", "枚"]和[10000, 20000, 30000, 40000]补出来是:
                 Lv0 - Lv1:到66RPG给rpg-sheep塞糖10000枚
                 Lv1 - Lv2:到66RPG给rpg-sheep塞糖20000枚
                 Lv2 - Lv3:到66RPG给rpg-sheep塞糖30000枚
                 Lv3 - Lv4:到66RPG给rpg-sheep塞糖40000枚

reward:完成当前等级的回报,是一个数组套数组,第一层元素的数量和max_level相等,第二层只有两个元素。(array[array])
                 比如:["到66RPG给rpg-sheep塞糖", "枚"]和[10000, 20000, 30000, 40000]和[[1, 22], [1, 22], [3, 22], [1, 22]]补出来是:
                 Lv0 - Lv1:到66RPG给rpg-sheep塞糖10000枚,奖励1号物品22个
                 Lv1 - Lv2:到66RPG给rpg-sheep塞糖20000枚,奖励1号物品22个
                 Lv2 - Lv3:到66RPG给rpg-sheep塞糖30000枚,奖励3号物品22个
                 Lv3 - Lv4:到66RPG给rpg-sheep塞糖40000枚,奖励1号物品22个
                 第二层的两个元素可以有3种形式:
                 [1, 22] 这样的:增加1号物品22个。描绘在右下角会变为        奖励:[图标]物品名称*数量
                 ["$", 22] 这样的(引号必须有):增加金钱22个。描绘在右下角会变为        奖励:金钱单位*数量
                 ["EXP", 22] 这样的(引号必须有):全队每人增加经验22点。描绘在右下角会变为        奖励:EXP*数量
                 每个等级只能获取一个奖励。
===============================================
[/fold]

[fold=下面是问答时间~]
Q:脚本会不会冲突?
A:我做了防冲突处理,理论上没的说。要是有冲突去6R找rpg-sheep。

Q:我怎么使用这个脚本?
A:保证你的分辨率在640*480以上,或自行调整脚本。然后复制Graphics文件夹里的Menu文件夹。然后复制我新增的脚本。

Q:为什么我复制之后,字体变了?
A:我使用了方正喵呜体,如果你要使用不同的字体,自己修改Window_AchieveList里的draw_item方法,调到合适的参数。

Q:脚本的XP,VX,VA版本兼容性如何?
A:只支持VA。(这么好的系统,想要VX或XP版?我没时间修改啦,找大神帮忙修改吧~)

Q:为什么你有时候叫rpg-sheep,有时候叫小优?
A:我就这么任性(误)实际上我的百度昵称叫小优,听起来挺萌。。
   
Q:为什么报错?
A:大部分报错都是因为以下原因:
      1.在使用各种功能以前,请确保你获得了该成就,否则会弹出错误!
      2.定义参数没有按照规范。
      3.移动到你的工程时,Graphics文件夹里的Menu文件夹和我新增的脚本都要复制过去。
      先自己确认一下,如果不是这些问题再来问我吧~
[/fold]

[fold=附赠的消息推送]
  使用方法:在开始游戏后使用(废话)脚本及事件中使用均可!
  $sprite_push.show(bitmap, time)推送一张图片。
    参数:bitmap:图片
          time:等待帧数
    例子:$sprite_push.show(Cache.system("xx"), 100) # 推送图片100帧。
  $sprite_push.show_text(text, time)推送文字。
    参数:bitmap:文字,支持Window_Base里的所有参数。
          time:等待帧数
    例子:$sprite_push.show_text("\\C[4]哈哈哈", 100) # 使用4号颜色推送文字“哈哈哈”100帧。
[/fold]

点评

@怪蜀黍  发表于 2015-2-17 14:57
coc...  发表于 2015-2-11 16:06

评分

参与人数 8星屑 +255 收起 理由
Kim_巧克力控 + 10 精品文章
李光兆 + 120
qq546431664 + 15 塞糖
0newing + 30 你的糖,拿好~
蓝儿 + 30 你要的糖
alpacanist + 30 楼主好萌
火烧兔子 + 10 塞糖
黑白界 + 10 塞糖

查看全部评分

开心咸鱼每一天~
梦石
0
星屑
701
在线时间
511 小时
注册时间
2012-4-8
回帖
193
发表于 2015-2-11 15:56:33 | 显示全部楼层
成就界面加到菜单里吧!

点评

已经更新~  发表于 2015-2-11 18:30
嗯好哒,下一个版本我会加入哦  发表于 2015-2-11 17:37
武侠|养成|战棋游戏《以武证道》头秃开发中...
开发日记在此
回复

使用道具 举报

…あたしは天

梦石
0
星屑
2308
在线时间
4033 小时
注册时间
2010-10-4
回帖
10548

开拓者贵宾

发表于 2015-2-11 16:05:07 | 显示全部楼层
http://taroxd.github.io/rgss/%E7 ... B3%BB%E7%BB%9F.html

我只是懒得写界面而已嘤嘤婴(其实是不会任何美工)

点评

。。。。。。  发表于 2015-2-11 19:02
开关和变量的名字起好不就行了……  发表于 2015-2-11 18:42
是占用了$game_switches[@id]和$game_variables[@id]咩?这样会不会对制作者的记忆力是个考验?  发表于 2015-2-11 18:33
Taroxd::Task 并没有保存任何信息呀~ 都是在变量里的  发表于 2015-2-11 18:30
好叭。。。确实十分简洁,但是没有窗口的视觉效果。。 单独定义Taroxd::Task的话会不会没法保存?得重新定义DataManager吧?  发表于 2015-2-11 17:44
回复

使用道具 举报

梦石
0
星屑
2017
在线时间
1019 小时
注册时间
2011-6-19
回帖
592

极短24参与开拓者

发表于 2015-2-13 10:37:00 | 显示全部楼层
其实我想知道那个最高纪录有什么用……
回复

使用道具 举报

梦石
0
星屑
1032
在线时间
145 小时
注册时间
2013-10-16
回帖
254
 楼主| 发表于 2015-2-13 18:37:34 | 显示全部楼层
alpacanist 发表于 2015-2-13 10:37
其实我想知道那个最高纪录有什么用……

“点评”的字数不够了。。新开一楼
比如说成就“万年牢”
主角防御力达到500/1000/5000
但是在游戏中,有的时候主角(或玩家)更改了装备,防御力下降了。
举个例子,主角穿了个铠甲,防御力达到了800
这时候我脱下铠甲,防御力降到了200.
此时成就界面中最高纪录显示800,绿色的条条显示200

点评

谢谢解释  发表于 2015-2-14 21:33
开心咸鱼每一天~
回复

使用道具 举报

梦石
10
星屑
5748
在线时间
1849 小时
注册时间
2013-2-14
回帖
327

开拓者

发表于 2015-2-14 08:16:46 来自手机 | 显示全部楼层
弱弱的问下,完成度的增加必须手动吗?如果要做总共清除多少敌人之类的要怎么做?更换装备后的攻防变换他是自动识别的吗?要怎么做。

另外关于最高记录我觉得设成永久变量会更好,开新游戏时能显示最高记录。
回复

使用道具 举报

梦石
0
星屑
1032
在线时间
145 小时
注册时间
2013-10-16
回帖
254
 楼主| 发表于 2015-2-14 09:26:03 | 显示全部楼层
hijl1990 发表于 2015-2-14 08:16
弱弱的问下,完成度的增加必须手动吗?如果要做总共清除多少敌人之类的要怎么做?更换装备后的攻防变换他是 ...

点评字数又不够了,新开一楼
完成度的增加是手动的。原因是每个人所做的游戏不同,我并不知道你的想法,即你想要做什么成就,所以我没有设置自动增加完成度。
如果你想要增加完成度的话,方法一是在事件的脚本中输入我上面提到的方法,方法二是自己修改游戏脚本,将我上面提到的方法插入相应位置(个人推荐没有脚本基础的人选择方法一,我会尽量考虑如何使操作变的更简单)
最高纪录设置成永久变量是不存在的!开启新游戏时一切变量都会重置。唯一的方法就是在本地生成一个文件记录变量,打开游戏时读取,我会考虑加入的
开心咸鱼每一天~
回复

使用道具 举报

梦石
0
星屑
78
在线时间
602 小时
注册时间
2012-4-20
回帖
572
发表于 2015-2-15 19:00:56 | 显示全部楼层
记录一下,非常好看~

点评

多谢支持~  发表于 2015-2-16 11:59
https://rpg.blue/https://rpg.blue/data/attachment/album/201407/20/204500gw201w4tveh224td.png
回复

使用道具 举报

bluer
公主殿下

梦石
0
星屑
283
在线时间
533 小时
注册时间
2013-10-19
回帖
2017
发表于 2015-2-18 10:34:13 | 显示全部楼层
楼主可以带回家杀掉吃么
嗯啊又有进步了
快入事件党
事件大法好【才不是不会脚本什么的

点评

1.5更新~  发表于 2015-4-5 19:49
啊咧  发表于 2015-2-22 07:09
其实是花了vip退回来了=w=  发表于 2015-2-21 13:09
你都龙骑士了=w=求糖  发表于 2015-2-18 12:26
回复

使用道具 举报

梦石
0
星屑
50
在线时间
37 小时
注册时间
2013-7-27
回帖
5
发表于 2015-2-20 23:02:37 | 显示全部楼层
无耻的收藏啦。。谢谢楼主  好东西~

点评

=w=  发表于 2015-2-22 07:09
回复

使用道具 举报

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

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部