请选择 进入手机版 | 继续访问电脑版
查看: 4322|回复: 3

【leisel教程】服务器时间+签到+限定时段活动(jass)【搬运】

[复制链接]

36

主题

232

帖子

11万

积分

超级版主

Rank: 8Rank: 8

积分
117388
 楼主| 发表于 2019-7-9 15:25:29 | 显示全部楼层 |阅读模式
本帖最后由 凤凰院凶真 于 2019-7-9 15:45 编辑

本帖为搬运老贴,感谢暗黑3-虫子的逆袭 作者leisel(虫子)


注:本系统由jass语言所写,需要一定的技术基础去理解,由于我本人时间有限,并不能保证所有作者都可以看懂和使用。这是我自写自用的系统,现分享出来希望对各位有所启发。并以此感谢其他大佬的相助之恩,分享和互助应是魔兽延续至今最重要的精神之一。
1.png
1、服务器时间
这是官方提供的api,解决了魔兽地图一直没有现实时间控制的问题,利用这个时间可以丰富相当多的游戏体验,本系统是基于服务器时间进行的扩展应用。

2、时间范围匹配系统
如果说签到系统(见“签到系统”教程)是最常见的在线基础系统,那么时间范围匹配就是最常见的在线加强系统了,定期提高在线率的不二法宝。本系统通过数学技巧制作的一个简易时间范围对比工具,简化使用的同时,功能并不弱化。

3、移植
1)    官方的时间处理函数

2.png
获取时间星期的演示地图V3.0_T移植版.rar (19.55 KB, 下载次数: 23)
回复

使用道具 举报

36

主题

232

帖子

11万

积分

超级版主

Rank: 8Rank: 8

积分
117388
 楼主| 发表于 2019-7-9 15:37:38 | 显示全部楼层
签到内容部分:
复制签到系统函数
完了以后将“Attendance”触发器复制进地图,“cmd-Attendance”触发器内的指令测试已包含基本用法。
1.png

给服务器存档安排一个key来存储签到数据

使用签到系统的前提是开通了“服务器存档”,未开通请先向官方申请,开通后用一个key(一key多数据者自行处理)来保存签到信息,否则签到累计是无效的。Key名可以自行设置,注意读取和保存签到信息的key要一致,并且在游戏开始时,将签到信息从服务器读取并设置进签到系统里,如图所示。
2.png

使用
1)签到奖励
cmd-Attendance中包含了签到系统的调试,Attendance_DailyAttendance函数表示进行签到,其有一个返回值,返回值=0时表示当天已经签到过,同一天不会再生效,此时跳过剩余的奖励行为。
若不0时,表示签到生效,并且返回的是一个月累计的签到次数(由于官方时间获取函数没有提供第几周的判定,所以无法判定一周内签到次数,有兴趣的另行修改官方提供的算法)
1、可设置每一次签到的奖励
2、设置签到日等于星期六,或者星期日时,进行额外奖励

3、当一个月累计签到次数达到某数量时,进行额外奖励
3.png

2)保存签到数据
签到执行完成后,一定要将签到信息获取,并保存到服务器上,否则每次开始游戏都显示签到有效,重复领取奖励。

4.png

特别声明

使用前请将系统移植完整,并经过充分的测试再正式上线,以免带来不必要的损失。

回复 支持 反对

使用道具 举报

36

主题

232

帖子

11万

积分

超级版主

Rank: 8Rank: 8

积分
117388
 楼主| 发表于 2019-7-9 15:42:08 | 显示全部楼层
限定时间段活动部分:
复制签到系统函数
完了以后将“**ity”触发器复制进地图,“cmd-**ity”触发器内的指令测试已包含基本用法。
1.png

使用
cmd-**ity中包含了系统调试实例,包含了3种时间对比方法,覆盖了大多数有关时间范围的对比使用场景,基本满足了日常使用,需要注意的是时间参数的格式,此处使用了非常傻瓜、直观、巧妙的时间格式。
1)     每天的时间段匹配
2.png
它的时间格式是小时数+分钟数拼凑到一起组成的整数,没错,是一个整数。1:30正确表达是13018:30正确表达是183018:3则是1803,注意分钟正确表达是03,不是3183),不足十位要在十位补0。第一个参数表示活动开始时间,第二个参数表示活动结束时间。这个匹配比较适用于比如你希望每天凌晨1-凌晨2点之间创建的游戏都刷一个鬼王,那么条件就可以写成”**ity_DateRangeInDay(100,200)等于TRUE”


2)     每周x的特定时间段匹配
3.png
例如你希望奖励周末中午12点-18点上线的玩家,都可以免费使用某个皮肤或者英雄,就可以用这个函数,写成“**ity_DateRangeInWeek("六", 1200, 1800)等于TRUE”第一个参数表示周几,“日~六”可选,第二个是开始时间,第三个是结束时间。

3)     有效期匹配
4.png
这个函数一般用在超长时间的活动控制,例如从某个日期开始,停止某种福利的发放,或者从某天开始,开放某种服务,具有长期的意义,其格式为年份+月份+天数,不足十位的要补充0在前面,和前面一样道理,第一个参数是开始时间,第二个参数是结束时间。如果你希望20181111日开放某英雄的使用,无限期,为了达到精准控制,不受审核影响,就可以早早更新好内容,然后将时间判定设置为“**ity_ExpireDate(20181111, 99990324)等于TRUE


特别声明

使用前请将系统移植完整,并经过充分的测试再正式上线,以免带来不必要的损失。


回复 支持 反对

使用道具 举报

0

主题

1

帖子

8

积分

新手上路

Rank: 1

积分
8
发表于 2021-9-9 20:08:25 | 显示全部楼层
服务器时间+签到+限定时段
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

魔兽争霸官方对战平台 ( 互联网违法和不良信息举报电话:0571-28090163 )

GMT+8, 2021-12-9 06:43 , Processed in 0.053720 second(s), 8 queries , Redis On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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