| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147 |
- package proto
- import (
- "bet24.com/servers/common"
- item "bet24.com/servers/micros/item_inventory/proto"
- )
- const (
- PreAddictionTaskId = 610800
- PreAddcitionTime = 10800
- )
- const (
- _ = iota
- TaskAction_login // 1=登录
- TaskAction_earn // 2=赚取金币
- TaskAction_wingame // 3=赢一把游戏
- TaskAction_pay // 4=充值
- TaskAction_fire // 5=游戏消耗金币
- TaskAction_play_time // 6=添加在线时长
- TaskAction_use_item // 7=使用道具、技能
- TaskAction_enter_room // 8=进入房间
- TaskAction_day_vitality // 9=天活跃度
- TaskAction_week_vitality // 10=周活跃度
- TaskAction_achievement // 11=成就
- TaskAction_playgame // 12=参与游戏
- TaskAction_worldchat // 13=世界聊天
- TaskAction_gameinteract // 14=游戏互动道具
- TaskAction_addfriend // 15=添加好友
- TaskAction_shareplatform // 16=平台分享
- TaskAction_sharegame // 17=游戏分享
- TaskAction_gift // 18=赠送礼物
- TaskAction_privatechat // 19=发私聊
- TaskAction_playmatch // 20=参加比赛
- TaskAction_matchpromote // 21=比赛晋级
- TaskAction_matchfinal // 22=比赛进入最后一轮
- TaskAction_matchchampion // 23=比赛获得冠军
- TaskAction_exchange_item // 24=购买道具
- TaskAction_novice_guidance // 25=新手引导
- TaskAction_playSNG // 26=进行sng比赛
- TaskAction_playComboMatch // 27=进行实物赛
- TaskAction_upMicDuration // 28=上麦时长
- TaskAction_diamondGift // 29=赠送钻石礼物
- TaskAction_sendGivingDiamond // 30=赠送钻石礼物价值
- TaskAction_receiveGivingDiamond // 31=收到钻石礼物价值
- TaskAction_roomChat // 32=在房间聊天
- TaskAction_betWin // 33=投注赢取,不扣减投注额
- TaskAction_gameaction = 50 // 游戏条件,不通的游戏可定义不同的内容,可扩充。配合TaskScop
- )
- const (
- TaskStatus_active = iota // 任务进行中
- TaskStatus_complete // 完成
- TaskStatus_awarded // 已领取奖励
- TaskStatus_inactive // 未开始
- TaskStatus_expired // 已过期
- )
- var status_desc = []string{"ACTIVE", "comple", "awarde", "inacti", "expire"}
- const (
- TaskDuration_Daily = -1 // 每日任务
- TaskDuration_Weekly = -2 // 每周任务
- )
- var duration_desc = []string{"daily", "weekly"}
- const (
- TaskScene_None = iota // 不显示
- TaskScene_Hall = 1 // 1=大厅
- TaskScene_Game = 10 // 10=游戏
- TaskScene_AudioRoom = 100 // 100=语聊房任务
- TaskScene_Agent = 1000 // 1000=代理会员任务
- TaskScene_DailyWheel = 10000 // 每日转盘任务
- TaskScene_HighlyProfitable = 100000 // 一本万利任务
- )
- type Task struct {
- Id int
- Scene int
- Title string
- Desc string
- Action int
- Target int
- Repeatable bool // 是否可重复
- Duration int // 任务有效期
- PreTask int `json:",omitempty"` // 如果不为0,则需要完成前置任务才创建,否则自动创建
- Awards []item.ItemPack
- Extra string // 预留跳转描述
- Task_Period // 如果是限时开放的任务,则在这里添加时效
- TaskScope // 是否限制游戏
- }
- // 任务的适用范围
- type TaskScope struct {
- GameNames []string `json:",omitempty"` // 游戏ID范围
- GameName string `json:",omitempty"` // 应用调用时传入参数
- RankCrdate string `json:",omitempty"` // 榜单的创建开始日期
- }
- func (t *Task) IsAplicable(param TaskScope) bool {
- if len(t.GameNames) == 0 {
- return true
- }
- for _, v := range t.GameNames {
- if v == param.GameName {
- return true
- }
- }
- return false
- }
- func (t *Task) IsOpen() bool {
- if t.Start == 0 {
- return true
- }
- now := common.GetTimeStamp()
- return now >= t.Start && now <= (t.Start+t.Duration)
- }
- type UserTask struct {
- TaskId int
- Scheduled int // 完成进度
- Status int
- Task_Period // 任务对玩家的时效,时效内已完成,如果没有后置任务,则不重置,等时效结束后再创建
- }
- type Task_Period struct {
- Start int `json:",omitempty"` // 开始时间戳 秒 0表示无时效
- Duration int `json:",omitempty"` // 持续时间 秒
- }
- func GetTaskStatusDesc(status int) string {
- if status < len(status_desc) && status >= 0 {
- return status_desc[status]
- }
- return "unknown"
- }
- func GetTaskDurationDesc(duration int) string {
- duration = duration*-1 - 1
- if duration < len(duration_desc) && duration >= 0 {
- return duration_desc[duration]
- }
- return "unknown"
- }
|