| 赞 | 29 |
| VIP | |
| 好人卡 | |
| 积分 | 10 |
| 经验 | |
| 最后登录 | 2022-3-28 |
| 在线时间 | 145 小时 |
- 梦石
- 0
- 星屑
- 1032
- 在线时间
- 145 小时
- 注册时间
- 2013-10-16
- 回帖
- 254
|
加入我们,或者,欢迎回来。
您需要 登录 才可以下载或查看,没有账号?注册会员
×
本帖最后由 rpg-sheep 于 2015-4-5 19:48 编辑
[fold=旧版更新日志:]
2015-02-12
V1.3(紧急更新)
#修复了分辨率大于640*480时显示错位的重大BUG
#使用更加稳定的数组
2015-01-12
V1.2
功能性更新:舍弃了原有一页显示5个成就的功能,改为了4个。但是在下方显示了总共取得的星星数。
2015-02-11
V1.1
#增加了加入菜单的功能 @黑白界
#人性化设计:改变了帖子的排版。
#现在成就系统无法保存的BUG修复了。已经能够100%存入存档
#现在当分辨率大于640*480时,窗口无论何时都会自动居中
#人性化设计:将原本的
简化为
,复制变的更容易。三个分别为任务系统部分,将窗口加入菜单部分和场景部分。
2015-02-11
V1.0
#提供了原创资源
#提供了范例工程
#提供了详细的说明
[/fold]
最新更新日志:
2015-04-05
V1.4
#修复了在没有获取0号成就的情况下获取1号成就报错的问题(感谢 @哀しい渚 )
2015-04-05
V1.5
#增加了推送消息功能,妈妈再也不用担心我不知道什么时候取得成就了!
效果图往下看~
相信大家对任务系统已经很了解了。而我这次发布的是成就系统。
那么成就系统与任务系统有什么区别呢?
话不多说,上图。
某小白:唉?这是什么?
这个是COC的成就系统啦,如果你不知道这个游戏也没关系。咱们不是为了讨论这个游戏的对不对?
可以看到成就系统有以下几个特点:(纯属个人见解)
1.成就可以算是一个任务,但不是“救出某队友”“去送一封信”这样的任务。而是“摘100个桃子”这类目标大于1的任务。
2.成就与剧情无关。例如“摘100个桃子”,如果我“摘100个桃子”之后可以开启一段剧情,那么他就不是成就。
3.成就可以升级。比如“摘100个桃子”升级之后“摘200个桃子”“摘300个桃子”……
4.还有一类特殊的成就,比如“获得世界冠军”这种成就。。。
因此,成就可以算是特定的,复杂的任务。
由于我在6R搜索并未看到特别漂亮的VA成就系统,所以就做啦~
介绍完了我设计这个系统的初衷,上图。
是不是效果很好?
说明:
左侧是目前的星级
中间部分,上面是成就名称,是不会变的,中间是达成下一等级的条件。最下面是进度条。
右侧上面是最高记录,最下面是完成当前等级的奖励。
随着成就星级的上升,奖励和要求都会变化,炫!
1.5版本又新增了推送消息功能,妈妈再也不用担心我不知道什么时候取得成就了!
效果图:
其实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] |
评分
-
查看全部评分
|