From 1b986fd46c8fad945b1102374f4074c9fa5124df Mon Sep 17 00:00:00 2001 From: wh_zcy Date: Mon, 14 Nov 2022 11:11:06 +0800 Subject: [PATCH 1/3] =?UTF-8?q?=E4=BB=BB=E5=8A=A1=E6=A0=A1=E9=AA=8C?= =?UTF-8?q?=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- bin/json/game_worldtask.json | 23 ++++++---- comm/error.go | 24 ++++++++++ comm/error_test.go | 28 ++++++++++++ go.mod | 12 ++--- go.sum | 24 +++++----- modules/battle/module.go | 2 +- modules/rtask/module.go | 16 ++++++- modules/worldtask/api_battlefinish.go | 3 ++ modules/worldtask/model_worldtask.go | 12 ++++- modules/worldtask/module.go | 63 ++++++++++++++------------- 10 files changed, 148 insertions(+), 59 deletions(-) create mode 100644 comm/error.go create mode 100644 comm/error_test.go diff --git a/bin/json/game_worldtask.json b/bin/json/game_worldtask.json index a42972b36..48c666bc1 100644 --- a/bin/json/game_worldtask.json +++ b/bin/json/game_worldtask.json @@ -11,7 +11,7 @@ "task_display": "新剧情文本10100", "npc": [ "scenes_ boundary_02", - "阿宝", + "阿宝组件名", "600" ], "getafter_event": [ @@ -151,6 +151,11 @@ "a": "attr", "t": "diamond", "n": 100 + }, + { + "a": "item", + "t": "30001", + "n": 10 } ] }, @@ -196,7 +201,7 @@ "task_display": "新剧情文本10106", "npc": [ "scenes_ boundary_02", - "邦尼兔组件名", + "阿宝组件名", "606" ], "getafter_event": [ @@ -226,7 +231,7 @@ "task_display": "新剧情文本10107", "npc": [ "scenes_ boundary_02", - "邦尼兔组件名", + "阿宝组件名", "607" ], "getafter_event": [ @@ -256,7 +261,7 @@ "task_display": "新剧情文本10108", "npc": [ "scenes_ boundary_02", - "邦尼兔组件名", + "阿宝组件名", "608" ], "getafter_event": [ @@ -586,7 +591,7 @@ "task_display": "新剧情文本10119", "npc": [ "scenes_ boundary_02", - "阿宝组件名", + "阿宝维京区", "619" ], "getafter_event": [ @@ -616,7 +621,7 @@ "task_display": "新剧情文本10120", "npc": [ "scenes_ boundary_02", - "阿宝组件名", + "阿宝维京区", "620" ], "getafter_event": [ @@ -646,7 +651,7 @@ "task_display": "新剧情文本10121", "npc": [ "scenes_ boundary_02", - "阿宝组件名", + "阿宝维京区", "621" ], "getafter_event": [ @@ -676,7 +681,7 @@ "task_display": "新剧情文本10122", "npc": [ "scenes_ boundary_02", - "阿宝组件名", + "阿宝维京区", "622" ], "getafter_event": [ @@ -706,7 +711,7 @@ "task_display": "新剧情文本10123", "npc": [ "scenes_ boundary_02", - "阿宝组件名", + "阿宝维京区", "623" ], "getafter_event": [ diff --git a/comm/error.go b/comm/error.go new file mode 100644 index 000000000..ad258db9f --- /dev/null +++ b/comm/error.go @@ -0,0 +1,24 @@ +package comm + +import ( + "go_dreamfactory/pb" + + "github.com/pkg/errors" +) + +type CustomError struct { + Code pb.ErrorCode `json:"code"` // 业务码 + Message string `json:"message"` // 业务码 +} + +func (e *CustomError) Error() string { + return e.Code.String() +} + +func NewCustomError(code pb.ErrorCode) error { + // 初次调用得用Wrap方法,进行实例化 + return errors.Wrap(&CustomError{ + Code: code, + Message: code.String(), + }, "") +} diff --git a/comm/error_test.go b/comm/error_test.go new file mode 100644 index 000000000..5d2dc6694 --- /dev/null +++ b/comm/error_test.go @@ -0,0 +1,28 @@ +package comm + +import ( + "errors" + "fmt" + "go_dreamfactory/pb" + "strings" + "testing" +) + +func TestErro(t *testing.T) { + err := findUser("ddada") + if err != nil { + var customErr = new(CustomError) + if errors.As(err, &customErr) { + if customErr.Code == pb.ErrorCode_UserSessionNobeing { + fmt.Println("用户不存在") + } + } + } +} + +func findUser(uid string) error { + if strings.Contains(uid, "z_") { + return NewCustomError(pb.ErrorCode_UserSessionNobeing) + } + return nil +} diff --git a/go.mod b/go.mod index c1a351412..a7db110e1 100644 --- a/go.mod +++ b/go.mod @@ -36,7 +36,7 @@ require ( github.com/valyala/fastrand v1.1.0 go.mongodb.org/mongo-driver v1.5.1 go.uber.org/multierr v1.6.0 - golang.org/x/net v0.0.0-20220722155237-a158d28d115b + golang.org/x/net v0.2.0 google.golang.org/protobuf v1.28.0 gopkg.in/yaml.v2 v2.4.0 ) @@ -178,11 +178,11 @@ require ( golang.org/x/crypto v0.0.0-20220824171710-5757bc0c5503 golang.org/x/image v0.0.0-20220601225756-64ec528b34cd // indirect golang.org/x/mobile v0.0.0-20211207041440-4e6c2922fdee // indirect - golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4 // indirect - golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4 // indirect - golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab // indirect - golang.org/x/text v0.3.7 // indirect - golang.org/x/tools v0.1.12 // indirect + golang.org/x/mod v0.7.0 // indirect + golang.org/x/sync v0.1.0 // indirect + golang.org/x/sys v0.2.0 // indirect + golang.org/x/text v0.4.0 // indirect + golang.org/x/tools v0.3.0 // indirect gopkg.in/ini.v1 v1.66.6 // indirect gopkg.in/natefinch/lumberjack.v2 v2.0.0 // indirect gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 // indirect diff --git a/go.sum b/go.sum index 811ef49d1..aee6552a5 100644 --- a/go.sum +++ b/go.sum @@ -906,8 +906,8 @@ golang.org/x/mod v0.4.1/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.5.1/go.mod h1:5OXOZSfqPIIbmVBIIKWRFfZjPR0E5r58TLhUjH0a2Ro= golang.org/x/mod v0.6.0-dev.0.20220106191415-9b9b3d81d5e3/go.mod h1:3p9vT2HGsQu2K1YbXdKPJLVgG5VJdoTa1poYQBtP1AY= -golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4 h1:6zppjxzCulZykYSLyVDYbneBfbaBIQPYMevg0bEwv2s= -golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= +golang.org/x/mod v0.7.0 h1:LapD9S96VoQRhi/GrNTqeBJFrUjs5UHCAtTlgwA5oZA= +golang.org/x/mod v0.7.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -964,8 +964,8 @@ golang.org/x/net v0.0.0-20211015210444-4f30a5c0130f/go.mod h1:9nx3DQGgdP8bBQD5qx golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20211216030914-fe4d6282115f/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20220407224826-aac1ed45d8e3/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= -golang.org/x/net v0.0.0-20220722155237-a158d28d115b h1:PxfKdU9lEEDYjdIzOtC4qFWgkU2rGHdKlKowJSMN9h0= -golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= +golang.org/x/net v0.2.0 h1:sZfSu1wtKLGlWI4ZZayP0ck9Y73K1ynO6gqzTdBVdPU= +golang.org/x/net v0.2.0/go.mod h1:KqCZLdyyvdV855qA2rE3GC2aiw5xGR5TEjj8smXukLY= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20181017192945-9dcd33a902f4/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20181203162652-d668ce993890/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= @@ -993,8 +993,8 @@ golang.org/x/sync v0.0.0-20200625203802-6e8e738ad208/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201207232520-09787c993a3a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4 h1:uVc8UZUe6tr40fFVnUP5Oj+veunVezqYl9z7DYw9xzw= -golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.1.0 h1:wsuoTGHzEhffawBOhz5CYhcrV4IdKZbEyZjBMuTp12o= +golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sys v0.0.0-20180823144017-11551d06cbcc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= @@ -1075,11 +1075,12 @@ golang.org/x/sys v0.0.0-20220408201424-a24fb2fb8a0f/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20220412211240-33da011f77ad/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab h1:2QkjZIsXupsJbJIdSjjUOgWK3aEtzyuh2mPt3l/CkeU= golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.2.0 h1:ljd4t30dBnAvMZaQCevtY0xLLD0A+bRZXbgLMLU1F/A= +golang.org/x/sys v0.2.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= -golang.org/x/term v0.0.0-20210927222741-03fcf44c2211 h1:JGgROgKl9N8DuW20oFS5gxc+lE67/N3FcwmBPMe7ArY= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= +golang.org/x/term v0.2.0 h1:z85xZCsEl7bi/KwbNADeBYoOP0++7W1ipu+aGnpwzRM= golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= @@ -1088,8 +1089,9 @@ golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.4/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/text v0.3.7 h1:olpwvP2KacW1ZWvsR7uQhoyTYvKAupfQrRGBFM352Gk= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= +golang.org/x/text v0.4.0 h1:BrVqGRd7+k1DiOgtnFvAkoQEWQvBc25ouMJM6429SFg= +golang.org/x/text v0.4.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/time v0.0.0-20180412165947-fbb02b2291d2/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= @@ -1164,8 +1166,8 @@ golang.org/x/tools v0.1.6-0.20210726203631-07bc1bf47fb2/go.mod h1:o0xws9oXOQQZyj golang.org/x/tools v0.1.8-0.20211022200916-316ba0b74098/go.mod h1:LGqMHiF4EqQNHR1JncWGqT5BVaXmza+X+BDGol+dOxo= golang.org/x/tools v0.1.8/go.mod h1:nABZi5QlRsZVlzPpHl034qft6wpY4eDcsTt5AaioBiU= golang.org/x/tools v0.1.10/go.mod h1:Uh6Zz+xoGYZom868N8YTex3t7RhtHDBrE8Gzo9bV56E= -golang.org/x/tools v0.1.12 h1:VveCTK38A2rkS8ZqFY25HIDFscX5X9OoEhJd3quQmXU= -golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= +golang.org/x/tools v0.3.0 h1:SrNbZl6ECOS1qFzgTdQfWXZM9XBkiA6tkFrH9YSTPHM= +golang.org/x/tools v0.3.0/go.mod h1:/rWhSS2+zyEVwoJf8YAX6L2f0ntZ7Kn/mGgAWcipA5k= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= diff --git a/modules/battle/module.go b/modules/battle/module.go index 746fab713..829d3096f 100644 --- a/modules/battle/module.go +++ b/modules/battle/module.go @@ -176,7 +176,7 @@ func (this *Battle) CreatePvpBattle(session comm.IUserSession, req *pb.BattlePVP //校验战报是否成功 func (this *Battle) CheckBattleReport(session comm.IUserSession, report *pb.BattleReport) (code pb.ErrorCode, iswin bool) { - this.moonfantasy.Trigger(session, report) + // this.moonfantasy.Trigger(session, report) return pb.ErrorCode_Success, true } diff --git a/modules/rtask/module.go b/modules/rtask/module.go index 2af1d3a5b..bc2285442 100644 --- a/modules/rtask/module.go +++ b/modules/rtask/module.go @@ -287,7 +287,21 @@ func (this *ModuleRtask) SendToRtask(session comm.IUserSession, rtaskType comm.T if err == nil { if worldtask, ok := module.(comm.IWorldtask); ok { if err := worldtask.TaskcondNotify(session, v.cfg.Id); err != nil { - log.Errorf("任务条件达成通知 失败 err:%v", err) + var customErr = new(comm.CustomError) + if errors.As(err, &customErr) { + notifyErr := &pb.NotifyErrorNotifyPush{ + ReqMainType: string(comm.ModuleWorldtask), + ReqSubType: "finish", + Code: pb.ErrorCode_WorldtaskLvNotEnough, + Message: "", + } + + if customErr.Code == pb.ErrorCode_WorldtaskLvNotEnough { + session.SendMsg(string(comm.ModuleWorldtask), "finish", notifyErr) + } else { + log.Errorf("任务条件达成通知 失败 err:%v", err) + } + } } } } diff --git a/modules/worldtask/api_battlefinish.go b/modules/worldtask/api_battlefinish.go index c563800aa..3a7ad1849 100644 --- a/modules/worldtask/api_battlefinish.go +++ b/modules/worldtask/api_battlefinish.go @@ -20,6 +20,9 @@ func (this *apiComp) Battlefinish(session comm.IUserSession, req *pb.WorldtaskBa return } + defer func() { + this.module.Errorf("战斗结束 taskId:%v", req.TaskId) + }() taskConf, err := this.module.configure.getWorldtaskById(req.TaskId) if err != nil || taskConf == nil { code = pb.ErrorCode_ConfigNoFound diff --git a/modules/worldtask/model_worldtask.go b/modules/worldtask/model_worldtask.go index 1cdda316c..171d87540 100644 --- a/modules/worldtask/model_worldtask.go +++ b/modules/worldtask/model_worldtask.go @@ -37,7 +37,7 @@ func (this *ModelWorldtask) getWorldtask(uid string) (*pb.DBWorldtask, error) { } //判断前置任务是否完成 -func(this *ModelWorldtask) IsPreFinished(userTask *pb.DBWorldtask, curTaskConf *cfg.GameWorldTaskData)bool{ +func (this *ModelWorldtask) IsPreFinished(userTask *pb.DBWorldtask, curTaskConf *cfg.GameWorldTaskData) bool { var ( lastTaskId int32 preTaskFinished bool @@ -57,6 +57,16 @@ func(this *ModelWorldtask) IsPreFinished(userTask *pb.DBWorldtask, curTaskConf * return preTaskFinished } +// 判断任务是否已完成 +func (this *ModelWorldtask) isFinished(taskId int32, list []*pb.Worldtask) bool { + for _, v := range list { + if v.TaskId == taskId { + return true + } + } + return false +} + // 完成任务 func (this *ModelWorldtask) finishTask(groupId, taskId int32, task *pb.DBWorldtask) error { if task == nil { diff --git a/modules/worldtask/module.go b/modules/worldtask/module.go index 21219e720..93b219217 100644 --- a/modules/worldtask/module.go +++ b/modules/worldtask/module.go @@ -77,47 +77,50 @@ func (this *Worldtask) TaskcondNotify(session comm.IUserSession, condId int32) e if userTask.Uid != "" { //查找任务ID根据condId 可能会找出不同的任务 - // 遍历配置表 - for k, id := range finishedTaskIds { + // 判断任务是否已完成 + if this.modelWorldtask.isFinished(id, userTask.TaskList) { + continue + } taskConf, err := this.configure.getWorldtaskById(id) if err != nil { return err } if taskConf != nil { if !this.modelWorldtask.IsPreFinished(userTask, taskConf) { - return nil + this.Errorf("世界任务已完成 uid:%v 要求taskid:%v", uid, id) + continue } - if taskConf.AutoAccept == 1 { //自动截取,返回下一个任务 - nextTaskId = taskConf.IdAfter - // 判断玩家等级要求 - if user.Lv < taskConf.Lock { - return fmt.Errorf("等级不满足 uid:%v 要求lv:%v", uid, taskConf.Lock) - } - - //完成任务 - if err := this.modelWorldtask.finishTask(k, id, userTask); err != nil { - this.Errorf("世界任务完成失败 err:%v", err) - return err - } - - //发奖 - if code := this.DispenseRes(session, taskConf.Reword, true); code != pb.ErrorCode_Success { - this.Errorf("资源发放失败 err:%v", err) - } - - if nextTaskId != 0 { - if err := session.SendMsg(string(this.GetType()), "nexttask", &pb.WorldtaskNexttaskPush{ - NextTaskId: nextTaskId, - }); err != nil { - log.Errorf("任务条件达成推送失败 err:%v", err) - } - } else { - this.Debugf("已经是最后一个任务了 taskId:%v", taskConf.Key) - } + nextTaskId = taskConf.IdAfter + // 判断玩家等级要求 + if user.Lv < taskConf.Lock { + this.Errorf("等级不满足 uid:%v 要求lv:%v", uid, taskConf.Lock) + return comm.NewCustomError(pb.ErrorCode_WorldtaskLvNotEnough) } + + //完成任务 + if err := this.modelWorldtask.finishTask(k, id, userTask); err != nil { + this.Errorf("世界任务完成失败 err:%v", err) + return err + } + this.Debugf("任务条件达成完成 condId:%v group:%v taskId:%d", condId, k, id) + //发奖 + if code := this.DispenseRes(session, taskConf.Reword, true); code != pb.ErrorCode_Success { + this.Errorf("资源发放失败 err:%v", err) + } + + if nextTaskId != 0 { + if err := session.SendMsg(string(this.GetType()), "nexttask", &pb.WorldtaskNexttaskPush{ + NextTaskId: nextTaskId, + }); err != nil { + log.Errorf("任务条件达成推送失败 err:%v", err) + } + } else { + this.Debugf("已经是最后一个任务了 taskId:%v", taskConf.Key) + } + } } From 981d1bc1daa9d2fda50453d4fa4c92ceb07d9311 Mon Sep 17 00:00:00 2001 From: meixiongfeng <766881921@qq.com> Date: Mon, 14 Nov 2022 11:14:32 +0800 Subject: [PATCH 2/3] update --- modules/pagoda/model_rank.go | 31 ------------------------------- 1 file changed, 31 deletions(-) diff --git a/modules/pagoda/model_rank.go b/modules/pagoda/model_rank.go index b91d952a3..e3d9424eb 100644 --- a/modules/pagoda/model_rank.go +++ b/modules/pagoda/model_rank.go @@ -36,31 +36,6 @@ func (this *ModelRank) Init(service core.IService, module core.IModule, comp cor return } -func (this *ModelRank) AddRank(uId string, data *pb.DBPagodaRecord) (err error) { - if err = this.Add(uId, data); err != nil { - //this.Errorf("err:%v", err) - return - } - return nil -} - -//获取用户通过扩展表 -// func (this *ModelRank) GetUserRandData(uid string) (result *pb.DBPagodaRecord, err error) { -// result = &pb.DBPagodaRecord{} -// if err = this.Get(uid, result); err != nil && redis.RedisNil != err { -// return -// } -// err = nil -// return result, err -// } - -func (this *ModelRank) ChangeUserRank(uid string, value map[string]interface{}) (err error) { - if len(value) == 0 { - return nil - } - return this.Change(uid, value) -} - func (this *ModelRank) GetRankData() (data []*pb.DBPagodaRecord, err error) { data = make([]*pb.DBPagodaRecord, 0) if conn, err := db.Cross(); err == nil { @@ -243,12 +218,6 @@ func (this *ModelRank) SetNormalPagodaRankList(tableName string, score int32, ui } func (this *ModelRank) seasonSettlement() { - - list := this.modulePagoda.configure.GetPagodaSeasonReward() - if list == nil { - return - } - rankReward := this.modulePagoda.configure.GetPagodaSeasonReward() if rankReward == nil { return From 05c1cbf323d36d37842c290d748cf86c3e3ae914 Mon Sep 17 00:00:00 2001 From: meixiongfeng <766881921@qq.com> Date: Mon, 14 Nov 2022 11:14:42 +0800 Subject: [PATCH 3/3] update --- modules/gm/api_cmd.go | 4 +++- modules/timer/season.go | 15 +++------------ 2 files changed, 6 insertions(+), 13 deletions(-) diff --git a/modules/gm/api_cmd.go b/modules/gm/api_cmd.go index 2c351ca53..8ab578dcf 100644 --- a/modules/gm/api_cmd.go +++ b/modules/gm/api_cmd.go @@ -10,14 +10,16 @@ import ( /* GM 在控制台输入的字符串类型 //bingo:item,10001,1 //bingo:attr,gold,1000000 +//bingo:equi,xxx,1 // xxx 装备id 2、修改主线关卡进度:bingo:mapid,102(102代表关卡位置) 3、修改心魔塔进度:bingo:pataid,10(10代表层数) -4、修改玩家经验值:bingo:exp,1000(1000代表新增的经验值 // +4、修改玩家经验值:bingo:attr,exp,1000(1000代表新增的经验值 // 5、跳过随机任务 bingo:rtask,1,1001 6、bingo:Iamyoudad +7、bingo:vip,yueka_1,1 // 月卡类型 */ //参数校验 func (this *apiComp) CmdCheck(session comm.IUserSession, req *pb.GMCmdReq) (code pb.ErrorCode) { diff --git a/modules/timer/season.go b/modules/timer/season.go index 21613d2a3..bbad5be11 100644 --- a/modules/timer/season.go +++ b/modules/timer/season.go @@ -59,7 +59,9 @@ func (this *SeasonPagoda) Start() (err error) { configure.RegisterConfigure(game_seasonreward, cfg.NewGamePagodaSeasonReward, nil) cron.AddFunc("0 0 23 L * ?", this.TimerSeasonOver) //每月最后一天23点执行一次 cron.AddFunc("0 0 5 /* * ?", this.TimerSeasonStar) //每月第一天5点执行一次 - + if db.IsCross() { + return + } conn, err := db.Cross() if err == nil { model := db.NewDBModel(comm.TableServerData, 0, conn) @@ -86,18 +88,7 @@ func (this *SeasonPagoda) Start() (err error) { return } -func (this *SeasonPagoda) CreatTestData(index int) { - seasonPagoda := &pb.DBPagoda{} - seasonPagoda.Id = primitive.NewObjectID().Hex() - seasonPagoda.Uid = "dfmxf_634f8f28609d489230fb40fa" - seasonPagoda.PagodaId = int32(index) // 初始数据0层 - seasonPagoda.Type = 201 // TODO 新的塔数据根据配置文件获取 - if err := this.Add(seasonPagoda.Uid, seasonPagoda); err != nil { - this.module.Errorf("err:%v", err) - return - } -} func (this *SeasonPagoda) GetSeasonReward() []int32 { sz := make([]int32, 0) if v, err := this.GetConfigure(game_seasonreward); err != nil {