赛季挑战任务

This commit is contained in:
sk 2024-07-11 17:20:01 +08:00
parent 7504a2dcdf
commit 1123fe94ab
25 changed files with 1137 additions and 268 deletions

View File

@ -710,6 +710,7 @@ const (
TaskTypeTienlenLoseCoin = 28 // Tienlen输的金币数量
TaskTypeTienlenWinCoin = 29 // Tienlen赢取金币数量
TaskTypeRankMatchWinTimes = 30 // 排位胜利次数
TaskTypeBuyPermit = 31 // 购买典藏通行证
)
const (
@ -725,7 +726,8 @@ const (
TaskActivityTypeNovice = 3 // 新手任务
TaskActivityTypeInvite = 4 // 邀请任务
TaskActivityTypeAchieve = 5 // 成就任务
TaskActivityTypePermit = 6 // 赛季通行证任务
TaskActivityTypePermitEveryDay = 6 // 赛季通行证每日任务
TaskActivityTypePermit = 7 // 赛季通行证任务
)
const HeadRange = 3 // 机器人头像id范围

Binary file not shown.

View File

@ -2950,6 +2950,38 @@
"Location": "0",
"Describe": "用途:话费兑换码\n产出途径七日累签进阶奖励",
"Num": 10
},
{
"Id": 300000,
"Name": "财神送福",
"ShowLocation": [
0,
0
],
"Classify": [
0,
0,
0
],
"Type": 20,
"Effect0": [
1,
0,
1,
0
],
"Effect": [
1,
0,
1,
0
],
"SaleType": 1,
"SaleGold": 5000,
"Composition": 1,
"CompositionMax": 9999,
"Location": "0",
"Describe": "作用:解锁角色皮肤-财神送福,可在皮肤功能界面使用"
}
]
}

Binary file not shown.

3
data/DB_Skin.dat Normal file
View File

@ -0,0 +1,3 @@
-á§mango icon_300001" 活力芒果*mg_01
7â§mango icon_300002" 财神é€<C3A9>ç¦<C3A7>*mg_060:à§

22
data/DB_Skin.json Normal file
View File

@ -0,0 +1,22 @@
{
"Arr": [
{
"Id": 300001,
"Model": "mango",
"SkinPic": "icon_300001",
"SkinName": "活力芒果",
"SkinType": "mg_01"
},
{
"Id": 300002,
"Model": "mango",
"SkinPic": "icon_300002",
"SkinName": "财神送福",
"SkinType": "mg_06",
"UnlockType": 1,
"UnlockItem": {
"300000": 1
}
}
]
}

19
data/DB_SkinLevel.dat Normal file
View File

@ -0,0 +1,19 @@
б§
б§"б§
б§"б§
б§"б§
б§"б§
б§"б§
в§
в§"в§
 в§"в§

в§"в§
 в§"в§
 в§"в§
 в§"в§
в§"в§
в§ "в§
в§
"в§

126
data/DB_SkinLevel.json Normal file
View File

@ -0,0 +1,126 @@
{
"Arr": [
{
"Id": 1,
"SkinId": 300001,
"Level": 1
},
{
"Id": 2,
"SkinId": 300001,
"Level": 2,
"UpItem": {
"300001": 20
}
},
{
"Id": 3,
"SkinId": 300001,
"Level": 3,
"UpItem": {
"300001": 21
}
},
{
"Id": 4,
"SkinId": 300001,
"Level": 4,
"UpItem": {
"300001": 22
}
},
{
"Id": 5,
"SkinId": 300001,
"Level": 5,
"UpItem": {
"300001": 23
}
},
{
"Id": 6,
"SkinId": 300001,
"Level": 6,
"UpItem": {
"300001": 24
}
},
{
"Id": 7,
"SkinId": 300002,
"Level": 1
},
{
"Id": 8,
"SkinId": 300002,
"Level": 2,
"UpItem": {
"300002": 20
}
},
{
"Id": 9,
"SkinId": 300002,
"Level": 3,
"UpItem": {
"300002": 21
}
},
{
"Id": 10,
"SkinId": 300002,
"Level": 4,
"UpItem": {
"300002": 22
}
},
{
"Id": 11,
"SkinId": 300002,
"Level": 5,
"UpItem": {
"300002": 23
}
},
{
"Id": 12,
"SkinId": 300002,
"Level": 6,
"UpItem": {
"300002": 24
}
},
{
"Id": 13,
"SkinId": 300002,
"Level": 7,
"UpItem": {
"300002": 25
}
},
{
"Id": 14,
"SkinId": 300002,
"Level": 8,
"UpItem": {
"300002": 26
}
},
{
"Id": 15,
"SkinId": 300002,
"Level": 9,
"UpItem": {
"300002": 27
}
},
{
"Id": 16,
"SkinId": 300002,
"Level": 10,
"UpItem": {
"300002": 28
}
}
]
}

Binary file not shown.

View File

@ -942,11 +942,7 @@
"FinishTimes": 1,
"Award": {
"100011": 20
},
"Position": [
1,
1
]
}
},
{
"Id": 11003,
@ -1059,11 +1055,7 @@
"FinishTimes": 1,
"Award": {
"100011": 80
},
"Position": [
1,
1
]
}
},
{
"Id": 11011,
@ -1081,6 +1073,107 @@
1,
1
]
},
{
"Id": 12001,
"Order": 1,
"Name": "通行证",
"Des": "累计领取转盘签到奖励7天",
"ActivityType": 7,
"TaskType": 17,
"TargetTimes": 7,
"FinishTimes": 1,
"Award": {
"100011": 50
}
},
{
"Id": 12002,
"Order": 2,
"Name": "通行证",
"Des": "购买进阶典藏通行证",
"ActivityType": 7,
"TaskType": 31,
"TargetTimes": 1,
"FinishTimes": 1,
"Award": {
"100011": 50
}
},
{
"Id": 12003,
"Order": 3,
"Name": "通行证",
"Des": "累计充值$9.99",
"ActivityType": 7,
"TaskType": 7,
"TargetTimes": 999,
"FinishTimes": 1,
"Award": {
"100011": 50
},
"Position": [
1,
1
]
},
{
"Id": 12004,
"Order": 4,
"Name": "通行证",
"Des": "累计充值$19.99",
"ActivityType": 7,
"TaskType": 7,
"TargetTimes": 1999,
"FinishTimes": 1,
"Award": {
"100011": 100
},
"Position": [
1,
1
]
},
{
"Id": 12005,
"Order": 5,
"Name": "通行证",
"Des": "累计赚取10B金币",
"ActivityType": 7,
"TaskType": 11,
"TargetTimes": 10000000000,
"FinishTimes": 1,
"Award": {
"100011": 50
},
"GameType": 1
},
{
"Id": 12006,
"Order": 6,
"Name": "通行证",
"Des": "成功参加任意比赛20次",
"ActivityType": 7,
"TaskType": 25,
"TargetTimes": 20,
"FinishTimes": 1,
"Award": {
"100011": 50
},
"GameType": 1
},
{
"Id": 12007,
"Order": 7,
"Name": "通行证",
"Des": "累计在线时长1200分钟",
"ActivityType": 7,
"TaskType": 21,
"TargetTimes": 72000,
"FinishTimes": 1,
"Award": {
"100011": 50
}
}
]
}

View File

@ -216,10 +216,11 @@ type ShopTotal struct {
AdLookedNum int32 //已经观看的次数
AdReceiveNum int32 //已经领取的次数
}
type RolePetInfo struct {
ModUnlock map[int32]int32 //已经解锁的id
ModUnlock map[int32]int32 //已经解锁的id:等级
ModId int32 //使用中的id
SkillInfo map[int32]map[int32]int32 //宠物技能 key1 - petId key2 - skillId value - level
SkillInfo map[int32]map[int32]int32 //技能等级 宠物id:技能id:技能等级
}
// 七日签到数据
@ -435,6 +436,7 @@ type PlayerData struct {
ShopLastLookTime map[int32]int64 //商品上一次的观看时间
Roles *RolePetInfo //人物
Pets *RolePetInfo //宠物
Skin *RolePetInfo //皮肤
WelfData *WelfareData //活动数据
*SignData
VipMatchTimes int32 //VIP比赛场参与次数

File diff suppressed because it is too large Load Diff

View File

@ -1513,6 +1513,44 @@ message DB_Sensitive_WordsArray {
repeated DB_Sensitive_Words Arr = 1;
}
message DB_Skin {
int32 Id = 1;
string Model = 2;
string SkinPic = 3;
string SkinName = 4;
string SkinType = 5;
int32 UnlockType = 6;
map<int64, int64> UnlockItem = 7;
}
message DB_SkinArray {
repeated DB_Skin Arr = 1;
}
message DB_SkinLevel {
int32 Id = 1;
int32 SkinId = 2;
int32 Level = 3;
map<int64, int64> UpItem = 4;
}
message DB_SkinLevelArray {
repeated DB_SkinLevel Arr = 1;
}
message DB_SlotRateWeight {
int32 Id = 1;

2
public

@ -1 +1 @@
Subproject commit 20147d9ef04cb8f6f1df630ced583280c0361312
Subproject commit e23e35def8bf29736c1e4c3ed56781f51ed94773

77
srvdata/db_skin.go Normal file
View File

@ -0,0 +1,77 @@
// Code generated by xlsx2proto.
// DO NOT EDIT!
package srvdata
import (
"google.golang.org/protobuf/proto"
"mongo.games.com/game/protocol/server"
)
var PBDB_SkinMgr = &DB_SkinMgr{
Datas: &server.DB_SkinArray{},
pool: make(map[int32]*server.DB_Skin),
}
type DB_SkinMgr struct {
Datas *server.DB_SkinArray
pool map[int32]*server.DB_Skin
}
func (this *DB_SkinMgr) unmarshal(data []byte) error {
err := proto.Unmarshal(data, this.Datas)
if err == nil {
this.arrangeData()
}
return err
}
func (this *DB_SkinMgr) reunmarshal(data []byte) error {
newDatas := &server.DB_SkinArray{}
err := proto.Unmarshal(data, newDatas)
if err == nil {
for _, item := range newDatas.Arr {
existItem := this.GetData(item.GetId())
if existItem == nil {
this.pool[item.GetId()] = item
this.Datas.Arr = append(this.Datas.Arr, item)
} else {
*existItem = *item
}
}
}
return err
}
func (this *DB_SkinMgr) arrangeData() {
if this.Datas == nil {
return
}
dataArr := this.Datas.GetArr()
if dataArr == nil {
return
}
for _, data := range dataArr {
this.pool[data.GetId()] = data
}
}
func (this *DB_SkinMgr) GetData(id int32) *server.DB_Skin {
if data, ok := this.pool[id]; ok {
return data
}
return nil
}
func init() {
DataMgr.register("DB_Skin.dat", &ProtobufDataLoader{dh: PBDB_SkinMgr})
}

77
srvdata/db_skinlevel.go Normal file
View File

@ -0,0 +1,77 @@
// Code generated by xlsx2proto.
// DO NOT EDIT!
package srvdata
import (
"google.golang.org/protobuf/proto"
"mongo.games.com/game/protocol/server"
)
var PBDB_SkinLevelMgr = &DB_SkinLevelMgr{
Datas: &server.DB_SkinLevelArray{},
pool: make(map[int32]*server.DB_SkinLevel),
}
type DB_SkinLevelMgr struct {
Datas *server.DB_SkinLevelArray
pool map[int32]*server.DB_SkinLevel
}
func (this *DB_SkinLevelMgr) unmarshal(data []byte) error {
err := proto.Unmarshal(data, this.Datas)
if err == nil {
this.arrangeData()
}
return err
}
func (this *DB_SkinLevelMgr) reunmarshal(data []byte) error {
newDatas := &server.DB_SkinLevelArray{}
err := proto.Unmarshal(data, newDatas)
if err == nil {
for _, item := range newDatas.Arr {
existItem := this.GetData(item.GetId())
if existItem == nil {
this.pool[item.GetId()] = item
this.Datas.Arr = append(this.Datas.Arr, item)
} else {
*existItem = *item
}
}
}
return err
}
func (this *DB_SkinLevelMgr) arrangeData() {
if this.Datas == nil {
return
}
dataArr := this.Datas.GetArr()
if dataArr == nil {
return
}
for _, data := range dataArr {
this.pool[data.GetId()] = data
}
}
func (this *DB_SkinLevelMgr) GetData(id int32) *server.DB_SkinLevel {
if data, ok := this.pool[id]; ok {
return data
}
return nil
}
func init() {
DataMgr.register("DB_SkinLevel.dat", &ProtobufDataLoader{dh: PBDB_SkinLevelMgr})
}

View File

@ -52,7 +52,7 @@ func IsTaskReward(p *Player, id int32) bool {
if data := p.WelfData.Task[id]; data != nil && data.Ts > 0 {
t := srvdata.PBDB_TaskMgr.GetData(id)
switch t.ActivityType {
case common.TaskActivityTypeEveryDay, common.TaskActivityTypePermit:
case common.TaskActivityTypeEveryDay, common.TaskActivityTypePermitEveryDay:
if common.TsInSameDay(time.Now().Unix(), data.Ts) {
return true
}
@ -66,6 +66,13 @@ func IsTaskReward(p *Player, id int32) bool {
if data.Ts > 0 {
return true
}
case common.TaskActivityTypePermit:
startTs := PlatformMgrSingleton.GetConfig(p.Platform).PermitStartTs
endTs := PlatformMgrSingleton.GetConfig(p.Platform).PermitEndTs
if startTs > 0 {
return data.Ts >= startTs && data.Ts < endTs
}
return true
}
}
}

View File

@ -2258,7 +2258,7 @@ func (this *Player) OnDayTimer(login, continuous bool, t int) {
for _, v := range srvdata.TaskMgr.GetActivityType(common.TaskActivityTypeEveryDay) {
this.WelfData.Task[v.GetId()] = &model.TaskData{}
}
for _, v := range srvdata.TaskMgr.GetActivityType(common.TaskActivityTypePermit) {
for _, v := range srvdata.TaskMgr.GetActivityType(common.TaskActivityTypePermitEveryDay) {
this.WelfData.Task[v.GetId()] = &model.TaskData{}
}
}
@ -2299,6 +2299,12 @@ func (this *Player) ResetPermit() {
}
this.WelfData.PermitAward = make(map[int32]int64)
this.WelfData.PermitExchange = make(map[int32][]int64)
if this.WelfData.Task != nil {
for _, v := range srvdata.TaskMgr.GetActivityType(common.TaskActivityTypePermit) {
this.WelfData.Task[v.GetId()] = &model.TaskData{}
}
}
this.dirty = true
// 清理数据
bag := BagMgrSingleton.GetBagInfo(this.SnId)
@ -3950,6 +3956,10 @@ func (this *Player) GetPayGoodsInfo() {
SnId: this.SnId,
Ts: time.Now().Unix(),
})
TaskSubjectSingleton.Touch(common.TaskTypeBuyPermit, &TaskData{
SnId: this.SnId,
Num: 1,
})
}
switch info.Remark {
case "BlindBox":

View File

@ -260,4 +260,5 @@ func init() {
TaskSubjectSingleton.Attach(common.TaskTypeTienlenLoseCoin, taskHandle)
TaskSubjectSingleton.Attach(common.TaskTypeTienlenWinCoin, taskHandle)
TaskSubjectSingleton.Attach(common.TaskTypeRankMatchWinTimes, taskHandle)
TaskSubjectSingleton.Attach(common.TaskTypeBuyPermit, taskHandle)
}

View File

@ -3473,6 +3473,10 @@ func init() {
SnId: player.SnId,
Ts: time.Now().Unix(),
})
TaskSubjectSingleton.Touch(common.TaskTypeBuyPermit, &TaskData{
SnId: player.SnId,
Num: 1,
})
}
switch info.Remark {
case "BlindBox":

Binary file not shown.

BIN
xlsx/DB_Skin.xlsx Normal file

Binary file not shown.

BIN
xlsx/DB_SkinLevel.xlsx Normal file

Binary file not shown.

Binary file not shown.