From fa8e1a93d7784a1b5b8b1ebe6284869c5269cd43 Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Tue, 17 Mar 2026 10:13:51 +0800 Subject: [PATCH 01/52] =?UTF-8?q?=E6=B4=BB=E5=8A=A8=E9=85=8D=E7=BD=AE?= =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/server/backend/server.go | 53 +++++--- src/server/conf/json.go | 1 + src/server/conf/server.json | 1 + src/server/db/Mysql.go | 6 + src/server/db/SqlStruct.go | 13 ++ src/server/game/GameLogic.go | 11 ++ src/server/game/activity_mgr.go | 61 ++++++++- src/server/game/external.go | 2 +- src/server/game/register_network_func.go | 2 - src/server/go.mod | 11 +- src/server/go.sum | 15 ++- src/server/main.go | 3 +- src/server/msg/Gameapi_grpc.pb.go | 121 ++++++++++++++++++ .../pkg/github.com/name5566/leaf/leaf.go | 3 +- src/server/sql/Merge_Pet.sql | 21 ++- src/server/test/fix_test.go | 25 ++++ 16 files changed, 312 insertions(+), 37 deletions(-) create mode 100644 src/server/msg/Gameapi_grpc.pb.go diff --git a/src/server/backend/server.go b/src/server/backend/server.go index 99762d47..b86db4b8 100644 --- a/src/server/backend/server.go +++ b/src/server/backend/server.go @@ -1,24 +1,39 @@ package backend -func Start() { - // addr := net.JoinHostPort("localhost", "9090") - // handler := NewGameServiceHandler() +import ( + "context" + "net" + "server/conf" + "server/msg" + "server/pkg/github.com/name5566/leaf/log" - // //创建处理器 - // processor := backend.NewGameAdminServiceProcessor(handler) + "google.golang.org/grpc" +) - // transportFactory := thrift.NewTBufferedTransportFactory(8192) - // protocolFactory := thrift.NewTBinaryProtocolFactoryConf(&thrift.TConfiguration{}) - - // tcpAddr, err := net.ResolveTCPAddr("tcp", addr) - // if err != nil { - // fmt.Printf("Failed to resolve address %s: %v\n", addr, err) - // return - // } - // serverTransport := thrift.NewTServerSocketFromAddrTimeout(tcpAddr, 0) - // server := thrift.NewTSimpleServer4(processor, serverTransport, transportFactory, protocolFactory) - // fmt.Printf("Starting the server on %s...\n", addr) - // if err := server.Serve(); err != nil { - // fmt.Printf("Error starting the server: %v\n", err) - // } +type backendServer struct { + msg.UnimplementedBackendServer +} + +func (s *backendServer) ReloadActivity(ctx context.Context, req *msg.ReqActivityCfgReload) (*msg.ResActivityCfgReload, error) { + return nil, nil +} + +func Start() { + if conf.Server.RPCAddr == "" { + log.Debug("RPC server address not configured, skipping gRPC server startup") + return + } + lis, err := net.Listen("tcp", conf.Server.RPCAddr) + if err != nil { + log.Error("failed to listen: %v", err) + return + } + + s := grpc.NewServer() + msg.RegisterBackendServer(s, &backendServer{}) + + log.Debug("gRPC server listening on %s", conf.Server.RPCAddr) + if err := s.Serve(lis); err != nil { + log.Error("server exited with error: %v", err) + } } diff --git a/src/server/conf/json.go b/src/server/conf/json.go index aabca98f..d958cd74 100644 --- a/src/server/conf/json.go +++ b/src/server/conf/json.go @@ -14,6 +14,7 @@ var Server struct { LogLevel string LogPath string WSAddr string + RPCAddr string CertFile string KeyFile string TCPAddr string diff --git a/src/server/conf/server.json b/src/server/conf/server.json index ff105c9d..3b390e3c 100644 --- a/src/server/conf/server.json +++ b/src/server/conf/server.json @@ -4,6 +4,7 @@ "LogPath": "./log", "TCPAddr": ":3602", "WSAddr": ":3567", + "RPCAddr": ":9003", "MySqlAddr": "127.0.0.1", "MySqlPort": "3306", "MySqlUsr": "root", diff --git a/src/server/db/Mysql.go b/src/server/db/Mysql.go index e2581d95..fce92539 100644 --- a/src/server/db/Mysql.go +++ b/src/server/db/Mysql.go @@ -413,6 +413,12 @@ func GetServerMailData(data *[]*SqlServerMailStruct) error { return err } +func GetActivityData(data *[]*SqlActivityCfgStruct) error { + sql := "select `id`, `type`, `title`, `mail_title`, `mail_content`, `level_limit`, `start_time`, `end_time`, `reward`, `extra` from t_activity_mod" + err := SqlDb.Select(data, sql) + return err +} + func CreateOrderSn(Uid, ChargeId int, OrderSn, Platform, Channel string, Price float64, Currency, Extra string) error { sql := "insert into t_player_charge (`Uid`,`OrderId`, `ProductId`, `Price`,`Currency`, `CreateTime`, `PayPlatform`, `PayChannel`, `PayChannelExtra`) Values (?,?,?,?,?,?,?,?,?)" Now := GoUtil.Now() diff --git a/src/server/db/SqlStruct.go b/src/server/db/SqlStruct.go index 9bd732f7..9eed9bd1 100644 --- a/src/server/db/SqlStruct.go +++ b/src/server/db/SqlStruct.go @@ -497,6 +497,19 @@ type SqlServerMailStruct struct { CreateTime int64 `db:"create_time"` } +type SqlActivityCfgStruct struct { + Id int `db:"id"` + Type int `db:"type"` + Title string `db:"title"` + MailTitle string `db:"mail_title"` + MailContent string `db:"mail_content"` + Level int `db:"level_limit"` + Start_time int64 `db:"start_time"` + End_time int64 `db:"end_time"` + RewardItem string `db:"reward"` + Extra string `db:"extra"` +} + type SqlChargeOrderStruct struct { Id int `db:"id"` Uid int `db:"Uid"` diff --git a/src/server/game/GameLogic.go b/src/server/game/GameLogic.go index e3ea35e7..78569f8a 100644 --- a/src/server/game/GameLogic.go +++ b/src/server/game/GameLogic.go @@ -84,6 +84,7 @@ type GameLogic struct { VarMgr *VarMgr // 变量管理器 StartTime int64 // 服务器启动时间 MessageMgr *MessageMgr // 消息管理器 + ActivityMgr *ActivityMgr // 活动管理器 } type ServerInfo struct { @@ -293,6 +294,14 @@ func (ad *GameLogic) CreateMailMgr() { ad.MailMgr.Init() } +// 活动管理器 +func (ad *GameLogic) CreateActivityMgr() { + ad.ActivityMgr = &ActivityMgr{ + ServerMod: new(ServerMod), + } + ad.ActivityMgr.Init() +} + func (ad *GameLogic) CreateMessageMgr() { ad.MessageMgr = &MessageMgr{ ServerMod: new(ServerMod), @@ -478,6 +487,8 @@ func G_getGameLogic() *GameLogic { // G_GameLogicPtr.CreateFriendMgr() //创建好友管理器 G_GameLogicPtr.CreateChampshipMgr() // 创建竞标赛管理器 G_GameLogicPtr.CreateVarMgr() // 创建变量管理器 + } else { + G_GameLogicPtr.CreateActivityMgr() //创建活动管理器 } G_GameLogicPtr.CreateRankMgr() //创建排行榜管理器 G_GameLogicPtr.CreateMailMgr() //创建邮件管理器 diff --git a/src/server/game/activity_mgr.go b/src/server/game/activity_mgr.go index df6c2c82..962ed367 100644 --- a/src/server/game/activity_mgr.go +++ b/src/server/game/activity_mgr.go @@ -1,7 +1,11 @@ package game import ( + "encoding/json" + "fmt" + "server/db" "server/game/mod/msg" + "server/pkg/github.com/name5566/leaf/log" "sync" ) @@ -27,15 +31,21 @@ type ActivityCfg struct { Extra map[string]interface{} } +func (ac *ActivityCfg) String() string { + return fmt.Sprintf("Id: %d, Type: %d, StartTime: %d, EndTime: %d, Level: %d, Title: %s, MailTitle: %s, MailContent: %s, RewardItem: %v, Extra: %v", + ac.Id, ac.Type, ac.Strartime, ac.Endtime, ac.Level, ac.Title, ac.MailTitle, ac.MailContent, ac.RewardItem, ac.Extra) +} + const () func (r *ActivityMgr) Init() { - r.key = RANK_MGR_KEY + r.key = ACTIVITY_MGR_KEY r.data = &ActivityData{ List: make(map[int]*ActivityCfg, 0), } // 注册处理函数 r.init() + r.Reload() } func (r *ActivityMgr) getData() *ActivityData { @@ -58,3 +68,52 @@ func (r ActivityMgr) GetActivityCfg(Id int) ActivityCfg { } return *cfg } + +func (r *ActivityMgr) Reload() error { + // 重新加载活动配置 + // 从数据库加载邮件 + log.Debug("reload activity data") + data := r.getData() + data.mu.Lock() + defer data.mu.Unlock() + cfgList := make([]*db.SqlActivityCfgStruct, 0) + err := db.GetActivityData(&cfgList) + if err != nil { + log.Error("LoadActivityData error: %v", err) + return err + } + data.List = make(map[int]*ActivityCfg, 0) + for _, v := range cfgList { + reward := make(map[string]interface{}) + if v.RewardItem != "" { + err := json.Unmarshal([]byte(v.RewardItem), &reward) + if err != nil { + log.Error("Unmarshal reward error: %v", err) + continue + } + } + extra := make(map[string]interface{}) + if v.Extra != "" { + err := json.Unmarshal([]byte(v.Extra), &extra) + if err != nil { + log.Error("Unmarshal extra error: %v", err) + continue + } + } + cfg := &ActivityCfg{ + Id: v.Id, + Type: v.Type, + Strartime: v.Start_time, + Endtime: v.End_time, + Level: v.Level, + Title: v.Title, + MailTitle: v.MailTitle, + MailContent: v.MailContent, + RewardItem: reward, + Extra: extra, + } + log.Debug("load activity cfg: %v", cfg) + data.List[v.Id] = cfg + } + return nil +} diff --git a/src/server/game/external.go b/src/server/game/external.go index 4742cbba..5691856e 100644 --- a/src/server/game/external.go +++ b/src/server/game/external.go @@ -34,7 +34,7 @@ func RegisterHandlerRPC(param []interface{}) { handler(&msg.AdminReq{}, HandleAdminReq) } -func init() { +func Init() { register() db.InitDB() db.InitRedis() diff --git a/src/server/game/register_network_func.go b/src/server/game/register_network_func.go index bced11dd..7bab0909 100644 --- a/src/server/game/register_network_func.go +++ b/src/server/game/register_network_func.go @@ -2894,8 +2894,6 @@ func ReqSetPetName(player *Player, buf []byte) error { }) player.PlayMod.save() player.BackUserInfo() - PlayroomMod := player.PlayMod.getPlayroomMod() - PlayroomMod.UnLock(BaseMod.GetLevel()) player.LimitedTimePlayroomTrigger() player.UpdateUserInfo() player.TeLog("petname_set", map[string]interface{}{ diff --git a/src/server/go.mod b/src/server/go.mod index f8e477c8..2e581db8 100644 --- a/src/server/go.mod +++ b/src/server/go.mod @@ -1,6 +1,6 @@ module server -go 1.23 +go 1.25.0 require ( github.com/alibabacloud-go/cloudauth-20190307/v4 v4.9.2 @@ -13,10 +13,12 @@ require ( github.com/go-sql-driver/mysql v1.8.1 github.com/gorilla/websocket v1.5.3 github.com/jmoiron/sqlx v1.4.0 + github.com/oschwald/geoip2-golang v1.13.0 github.com/redis/go-redis/v9 v9.6.1 github.com/robfig/cron/v3 v3.0.1 github.com/shirou/gopsutil v3.21.11+incompatible - google.golang.org/protobuf v1.36.2 + google.golang.org/grpc v1.64.0 + google.golang.org/protobuf v1.36.11 gopkg.in/mgo.v2 v2.0.0-20190816093944-a6b53ec6cb22 ) @@ -36,7 +38,6 @@ require ( github.com/json-iterator/go v1.1.12 // indirect github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect github.com/modern-go/reflect2 v1.0.2 // indirect - github.com/stretchr/testify v1.9.0 // indirect github.com/tjfoc/gmsm v1.4.1 // indirect github.com/tklauser/go-sysconf v0.3.14 // indirect github.com/tklauser/numcpus v0.8.0 // indirect @@ -47,10 +48,10 @@ require ( ) require ( - github.com/apache/thrift v0.22.0 // indirect - github.com/oschwald/geoip2-golang v1.13.0 // indirect github.com/oschwald/maxminddb-golang v1.13.0 // indirect golang.org/x/sys v0.29.0 // indirect + golang.org/x/text v0.21.0 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20260311181403-84a4fc48630c // indirect ) require ( diff --git a/src/server/go.sum b/src/server/go.sum index b152ad73..7853a80e 100644 --- a/src/server/go.sum +++ b/src/server/go.sum @@ -73,8 +73,6 @@ github.com/aliyun/credentials-go v1.3.6/go.mod h1:1LxUuX7L5YrZUWzBrRyk0SwSdH4OmP github.com/aliyun/credentials-go v1.4.5/go.mod h1:Jm6d+xIgwJVLVWT561vy67ZRP4lPTQxMbEYRuT2Ti1U= github.com/aliyun/credentials-go v1.4.6 h1:CG8rc/nxCNKfXbZWpWDzI9GjF4Tuu3Es14qT8Y0ClOk= github.com/aliyun/credentials-go v1.4.6/go.mod h1:Jm6d+xIgwJVLVWT561vy67ZRP4lPTQxMbEYRuT2Ti1U= -github.com/apache/thrift v0.22.0 h1:r7mTJdj51TMDe6RtcmNdQxgn9XcyfGDOzegMDRg47uc= -github.com/apache/thrift v0.22.0/go.mod h1:1e7J/O1Ae6ZQMTYdy9xa3w9k+XHWPfRvdPyJeynQ+/g= github.com/bsm/ginkgo/v2 v2.12.0 h1:Ny8MWAHyOepLGlLKYmXG4IEkioBysk6GpaRTLC8zwWs= github.com/bsm/ginkgo/v2 v2.12.0/go.mod h1:SwYbGRRDovPVboqFv0tPTcG1sN61LM1Z4ARdbAV9g4c= github.com/bsm/gomega v1.27.10 h1:yeMWxP2pV2fG3FgAODIY8EiRE3dy0aeFYt4l7wh6yKA= @@ -114,8 +112,9 @@ github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5a github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= +github.com/google/go-cmp v0.7.0 h1:wk8382ETsv4JYUZwIsn6YpYiWiBsYLSJiTsyBybVuN8= +github.com/google/go-cmp v0.7.0/go.mod h1:pXiqmnSA92OHEEa9HXL2W4E7lf9JzCmGVUdgjX3N/iU= github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= @@ -282,6 +281,8 @@ golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= golang.org/x/text v0.15.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= golang.org/x/text v0.16.0/go.mod h1:GhwF1Be+LQoKShO3cGOHzqOgRrGaYc9AvblQOmPVHnI= +golang.org/x/text v0.21.0 h1:zyQAAkrwaneQ066sspRyJaG9VNi/YJ1NfzcGB3hZ/qo= +golang.org/x/text v0.21.0/go.mod h1:4IBbMaMmOPCJ8SecivzSH54+73PCFmPWxNTLm+vZkEQ= golang.org/x/time v0.0.0-20200416051211-89c76fbcd5d1 h1:NusfzzA6yGQ+ua51ck7E3omNUX/JuqbFSaRGqU8CcLI= golang.org/x/time v0.0.0-20200416051211-89c76fbcd5d1/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= @@ -303,18 +304,22 @@ google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9Ywl google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= +google.golang.org/genproto/googleapis/rpc v0.0.0-20260311181403-84a4fc48630c h1:xgCzyF2LFIO/0X2UAoVRiXKU5Xg6VjToG4i2/ecSswk= +google.golang.org/genproto/googleapis/rpc v0.0.0-20260311181403-84a4fc48630c/go.mod h1:4Hqkh8ycfw05ld/3BWL7rJOSfebL2Q+DVDeRgYgxUU8= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY= google.golang.org/grpc v1.31.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= +google.golang.org/grpc v1.64.0 h1:KH3VH9y/MgNQg1dE7b3XfVK0GsPSIzJwdF617gUSbvY= +google.golang.org/grpc v1.64.0/go.mod h1:oxjF8E3FBnjp+/gVFYdWacaLDx9na1aqy9oovLpxQYg= google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= google.golang.org/protobuf v1.20.1-0.20200309200217-e05f789c0967/go.mod h1:A+miEFZTKqfCUM6K7xSMQL9OKL/b6hQv+e19PK+JZNE= google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo= google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= -google.golang.org/protobuf v1.36.2 h1:R8FeyR1/eLmkutZOM5CWghmo5itiG9z0ktFlTVLuTmU= -google.golang.org/protobuf v1.36.2/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE= +google.golang.org/protobuf v1.36.11 h1:fV6ZwhNocDyBLK0dj+fg8ektcVegBBuEolpbTQyBNVE= +google.golang.org/protobuf v1.36.11/go.mod h1:HTf+CrKn2C3g5S8VImy6tdcUvCska2kB7j23XfzDpco= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= diff --git a/src/server/main.go b/src/server/main.go index d56aa3a8..cbe3439b 100644 --- a/src/server/main.go +++ b/src/server/main.go @@ -26,9 +26,10 @@ func main() { lconf.ListenAddr = conf.Server.ListenAddr lconf.CenterAddr = conf.Server.CenterAddr lconf.PendingWriteNum = conf.PendingWriteNum - // 当内存>256M时开始GC + // 当内存>512M时开始GC debug.SetGCPercent(50) debug.SetMemoryLimit(512 << 20) + game.Init() // 启动 pprof(仅绑定本地) go func() { // 如果需要绑定所有接口改为 ":6060" diff --git a/src/server/msg/Gameapi_grpc.pb.go b/src/server/msg/Gameapi_grpc.pb.go new file mode 100644 index 00000000..c6fb135f --- /dev/null +++ b/src/server/msg/Gameapi_grpc.pb.go @@ -0,0 +1,121 @@ +// Code generated by protoc-gen-go-grpc. DO NOT EDIT. +// versions: +// - protoc-gen-go-grpc v1.6.1 +// - protoc v5.28.2 +// source: proto/Gameapi.proto + +package msg + +import ( + context "context" + grpc "google.golang.org/grpc" + codes "google.golang.org/grpc/codes" + status "google.golang.org/grpc/status" +) + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the grpc package it is being compiled against. +// Requires gRPC-Go v1.64.0 or later. +const _ = grpc.SupportPackageIsVersion9 + +const ( + Backend_ReloadActivity_FullMethodName = "/tutorial.Backend/ReloadActivity" +) + +// BackendClient is the client API for Backend service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream. +type BackendClient interface { + ReloadActivity(ctx context.Context, in *ReqActivityCfgReload, opts ...grpc.CallOption) (*ResActivityCfgReload, error) +} + +type backendClient struct { + cc grpc.ClientConnInterface +} + +func NewBackendClient(cc grpc.ClientConnInterface) BackendClient { + return &backendClient{cc} +} + +func (c *backendClient) ReloadActivity(ctx context.Context, in *ReqActivityCfgReload, opts ...grpc.CallOption) (*ResActivityCfgReload, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) + out := new(ResActivityCfgReload) + err := c.cc.Invoke(ctx, Backend_ReloadActivity_FullMethodName, in, out, cOpts...) + if err != nil { + return nil, err + } + return out, nil +} + +// BackendServer is the server API for Backend service. +// All implementations must embed UnimplementedBackendServer +// for forward compatibility. +type BackendServer interface { + ReloadActivity(context.Context, *ReqActivityCfgReload) (*ResActivityCfgReload, error) + mustEmbedUnimplementedBackendServer() +} + +// UnimplementedBackendServer must be embedded to have +// forward compatible implementations. +// +// NOTE: this should be embedded by value instead of pointer to avoid a nil +// pointer dereference when methods are called. +type UnimplementedBackendServer struct{} + +func (UnimplementedBackendServer) ReloadActivity(context.Context, *ReqActivityCfgReload) (*ResActivityCfgReload, error) { + return nil, status.Error(codes.Unimplemented, "method ReloadActivity not implemented") +} +func (UnimplementedBackendServer) mustEmbedUnimplementedBackendServer() {} +func (UnimplementedBackendServer) testEmbeddedByValue() {} + +// UnsafeBackendServer may be embedded to opt out of forward compatibility for this service. +// Use of this interface is not recommended, as added methods to BackendServer will +// result in compilation errors. +type UnsafeBackendServer interface { + mustEmbedUnimplementedBackendServer() +} + +func RegisterBackendServer(s grpc.ServiceRegistrar, srv BackendServer) { + // If the following call panics, it indicates UnimplementedBackendServer was + // embedded by pointer and is nil. This will cause panics if an + // unimplemented method is ever invoked, so we test this at initialization + // time to prevent it from happening at runtime later due to I/O. + if t, ok := srv.(interface{ testEmbeddedByValue() }); ok { + t.testEmbeddedByValue() + } + s.RegisterService(&Backend_ServiceDesc, srv) +} + +func _Backend_ReloadActivity_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ReqActivityCfgReload) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(BackendServer).ReloadActivity(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: Backend_ReloadActivity_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(BackendServer).ReloadActivity(ctx, req.(*ReqActivityCfgReload)) + } + return interceptor(ctx, in, info, handler) +} + +// Backend_ServiceDesc is the grpc.ServiceDesc for Backend service. +// It's only intended for direct use with grpc.RegisterService, +// and not to be introspected or modified (even as a copy) +var Backend_ServiceDesc = grpc.ServiceDesc{ + ServiceName: "tutorial.Backend", + HandlerType: (*BackendServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "ReloadActivity", + Handler: _Backend_ReloadActivity_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "proto/Gameapi.proto", +} diff --git a/src/server/pkg/github.com/name5566/leaf/leaf.go b/src/server/pkg/github.com/name5566/leaf/leaf.go index b7ad1ac6..8fdc725e 100644 --- a/src/server/pkg/github.com/name5566/leaf/leaf.go +++ b/src/server/pkg/github.com/name5566/leaf/leaf.go @@ -3,6 +3,7 @@ package leaf import ( "os" "os/signal" + "server/backend" mergeCluster "server/cluster" sconf "server/conf" "server/game" @@ -32,7 +33,7 @@ func Run(mods ...module.Module) { } log.Release("服务器版本: %s", "1.0.02") log.Release("%s 启动, 节点类型: %s, 区服id: %d", sconf.Server.GameName, sconf.Server.ServerType, sconf.Server.ServerID) - + go backend.Start() // module for i := 0; i < len(mods); i++ { module.Register(mods[i]) diff --git a/src/server/sql/Merge_Pet.sql b/src/server/sql/Merge_Pet.sql index 0ea2a541..6b31ae65 100644 --- a/src/server/sql/Merge_Pet.sql +++ b/src/server/sql/Merge_Pet.sql @@ -141,11 +141,28 @@ CREATE TABLE IF NOT EXISTS `system_mail_info` ( ) ENGINE = InnoDB AUTO_INCREMENT = 1 DEFAULT CHARSET = utf8mb4 COMMENT = '系统邮件'; /*==============================================================*/ -/* Table: t_player_data 系统模块表 */ +/* Table: t_server_mod 系统模块表 */ /*==============================================================*/ CREATE TABLE IF NOT EXISTS t_server_mod ( `id` int NOT NULL AUTO_INCREMENT primary key, `key` varchar(128) DEFAULT '' COMMENT '模块key', `mData` mediumblob DEFAULT NULL COMMENT '数据', `updateTime` int unsigned NOT NULL DEFAULT '0' COMMENT '更新时间' -) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE utf8mb4_general_ci COMMENT = '系统模块表'; \ No newline at end of file +) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE utf8mb4_general_ci COMMENT = '系统模块表'; + +/*==============================================================*/ +/* Table: t_activity_mod 系统活动表 */ +/*==============================================================*/ +CREATE TABLE IF NOT EXISTS t_activity_mod ( + `id` int NOT NULL AUTO_INCREMENT primary key, + `type` int DEFAULT 0 COMMENT '活动类型', + `title` varchar(128) DEFAULT '' COMMENT '活动标题', + `mail_title` varchar(128) DEFAULT '' COMMENT '活动邮件标题', + `mail_content` varchar(2048) DEFAULT '' COMMENT '活动邮件内容', + `start_time` int unsigned NOT NULL DEFAULT '0' COMMENT '活动开始时间', + `end_time` int unsigned NOT NULL DEFAULT '0' COMMENT '活动结束时间', + `level_limit` int unsigned NOT NULL DEFAULT '0' COMMENT '等级限制', + `reward` varchar(2048) DEFAULT '' COMMENT '活动奖励', + `extra` varchar(2048) DEFAULT '' COMMENT '活动额外数据', + `updateTime` int unsigned NOT NULL DEFAULT '0' COMMENT '更新时间' +) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE utf8mb4_general_ci COMMENT = '系统活动表'; \ No newline at end of file diff --git a/src/server/test/fix_test.go b/src/server/test/fix_test.go index 22d304b7..6cf9ae0c 100644 --- a/src/server/test/fix_test.go +++ b/src/server/test/fix_test.go @@ -113,6 +113,7 @@ func TestLevelUp(t *testing.T) { } func TestEndless(t *testing.T) { + game.Init() p1 := new(game.Player) p1.InitPlayer("3625212") p1.ZeroUpdate(nil) @@ -292,3 +293,27 @@ func TestGeoIp(t *testing.T) { code, _ := GoUtil.GetCountryByIP(ip) fmt.Printf("IP: %s, Country Code: %s\n", ip, code) } + +func TestSearchPlayer(t *testing.T) { + db.InitDB() + db.InitRedis() + uids := []int{} + err := db.SqlDb.Select(&uids, "select dwUin from t_player_baseinfo") + if err != nil { + fmt.Printf("Error fetching UIDs: %v\n", err) + return + } + var i int + for _, uid := range uids { + p1 := new(game.Player) + p1.M_DwUin = int64(uid) + p1.InitPlayerOnly() + if p1.GetBaseMod().GetLevel() < 16 { + continue + } + if len(p1.GetPlayroomMod().Physiology) < 6 { + i++ + } + } + fmt.Printf("Number of players with level >= 16 and less than 6 physiology: %d\n", i) +} From 76e18cac7b0c1f0b8f2dfbd33853625827bc53ac Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Tue, 17 Mar 2026 18:57:01 +0800 Subject: [PATCH 02/52] =?UTF-8?q?=E6=B4=BB=E5=8A=A8=E9=85=8D=E7=BD=AE?= =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/server/db/Mysql.go | 2 +- src/server/db/SqlStruct.go | 2 +- src/server/game/activity_mgr.go | 15 ++++----------- src/server/game/player_data.go | 1 + src/server/sql/Merge_Pet.sql | 5 +++-- 5 files changed, 10 insertions(+), 15 deletions(-) diff --git a/src/server/db/Mysql.go b/src/server/db/Mysql.go index fce92539..fb37d20d 100644 --- a/src/server/db/Mysql.go +++ b/src/server/db/Mysql.go @@ -414,7 +414,7 @@ func GetServerMailData(data *[]*SqlServerMailStruct) error { } func GetActivityData(data *[]*SqlActivityCfgStruct) error { - sql := "select `id`, `type`, `title`, `mail_title`, `mail_content`, `level_limit`, `start_time`, `end_time`, `reward`, `extra` from t_activity_mod" + sql := "select `id`, `type`, `title`, `mail_title`, `mail_content`, `level_limit`, `start_time`, `end_time`, `cfg`, `extra` from t_activity_mod" err := SqlDb.Select(data, sql) return err } diff --git a/src/server/db/SqlStruct.go b/src/server/db/SqlStruct.go index 9eed9bd1..c60bd90a 100644 --- a/src/server/db/SqlStruct.go +++ b/src/server/db/SqlStruct.go @@ -506,7 +506,7 @@ type SqlActivityCfgStruct struct { Level int `db:"level_limit"` Start_time int64 `db:"start_time"` End_time int64 `db:"end_time"` - RewardItem string `db:"reward"` + Cfg []byte `db:"cfg_buf"` Extra string `db:"extra"` } diff --git a/src/server/game/activity_mgr.go b/src/server/game/activity_mgr.go index 962ed367..2adcea32 100644 --- a/src/server/game/activity_mgr.go +++ b/src/server/game/activity_mgr.go @@ -27,13 +27,13 @@ type ActivityCfg struct { Title string MailTitle string MailContent string - RewardItem map[string]interface{} + cfg map[string]interface{} Extra map[string]interface{} } func (ac *ActivityCfg) String() string { - return fmt.Sprintf("Id: %d, Type: %d, StartTime: %d, EndTime: %d, Level: %d, Title: %s, MailTitle: %s, MailContent: %s, RewardItem: %v, Extra: %v", - ac.Id, ac.Type, ac.Strartime, ac.Endtime, ac.Level, ac.Title, ac.MailTitle, ac.MailContent, ac.RewardItem, ac.Extra) + return fmt.Sprintf("Id: %d, Type: %d, StartTime: %d, EndTime: %d, Level: %d, Title: %s, MailTitle: %s, MailContent: %s, cfg: %v, Extra: %v", + ac.Id, ac.Type, ac.Strartime, ac.Endtime, ac.Level, ac.Title, ac.MailTitle, ac.MailContent, ac.cfg, ac.Extra) } const () @@ -85,13 +85,6 @@ func (r *ActivityMgr) Reload() error { data.List = make(map[int]*ActivityCfg, 0) for _, v := range cfgList { reward := make(map[string]interface{}) - if v.RewardItem != "" { - err := json.Unmarshal([]byte(v.RewardItem), &reward) - if err != nil { - log.Error("Unmarshal reward error: %v", err) - continue - } - } extra := make(map[string]interface{}) if v.Extra != "" { err := json.Unmarshal([]byte(v.Extra), &extra) @@ -109,7 +102,7 @@ func (r *ActivityMgr) Reload() error { Title: v.Title, MailTitle: v.MailTitle, MailContent: v.MailContent, - RewardItem: reward, + cfg: reward, Extra: extra, } log.Debug("load activity cfg: %v", cfg) diff --git a/src/server/game/player_data.go b/src/server/game/player_data.go index 3434b743..e07d254b 100644 --- a/src/server/game/player_data.go +++ b/src/server/game/player_data.go @@ -69,6 +69,7 @@ type Player struct { stopOnce sync.Once msgChanOnce sync.Once func_time int + config_list map[string]interface{} } type PlayerBackUp struct { diff --git a/src/server/sql/Merge_Pet.sql b/src/server/sql/Merge_Pet.sql index 6b31ae65..73041ad2 100644 --- a/src/server/sql/Merge_Pet.sql +++ b/src/server/sql/Merge_Pet.sql @@ -162,7 +162,8 @@ CREATE TABLE IF NOT EXISTS t_activity_mod ( `start_time` int unsigned NOT NULL DEFAULT '0' COMMENT '活动开始时间', `end_time` int unsigned NOT NULL DEFAULT '0' COMMENT '活动结束时间', `level_limit` int unsigned NOT NULL DEFAULT '0' COMMENT '等级限制', - `reward` varchar(2048) DEFAULT '' COMMENT '活动奖励', - `extra` varchar(2048) DEFAULT '' COMMENT '活动额外数据', + `cfg` TEXT DEFAULT '' COMMENT '活动配置', + `cfg_buf` BLOB DEFAULT NULL COMMENT '活动配置buf', + `extra` TEXT DEFAULT '' COMMENT '活动额外数据', `updateTime` int unsigned NOT NULL DEFAULT '0' COMMENT '更新时间' ) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE utf8mb4_general_ci COMMENT = '系统活动表'; \ No newline at end of file From 66f985f758dc0cec93083b641acaf07b01bef582 Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Wed, 18 Mar 2026 14:41:18 +0800 Subject: [PATCH 03/52] 1 --- src/server/game/external.go | 2 +- src/server/main.go | 1 - src/server/test/fix_test.go | 1 - 3 files changed, 1 insertion(+), 3 deletions(-) diff --git a/src/server/game/external.go b/src/server/game/external.go index 5691856e..4742cbba 100644 --- a/src/server/game/external.go +++ b/src/server/game/external.go @@ -34,7 +34,7 @@ func RegisterHandlerRPC(param []interface{}) { handler(&msg.AdminReq{}, HandleAdminReq) } -func Init() { +func init() { register() db.InitDB() db.InitRedis() diff --git a/src/server/main.go b/src/server/main.go index cbe3439b..97229a0c 100644 --- a/src/server/main.go +++ b/src/server/main.go @@ -29,7 +29,6 @@ func main() { // 当内存>512M时开始GC debug.SetGCPercent(50) debug.SetMemoryLimit(512 << 20) - game.Init() // 启动 pprof(仅绑定本地) go func() { // 如果需要绑定所有接口改为 ":6060" diff --git a/src/server/test/fix_test.go b/src/server/test/fix_test.go index 6cf9ae0c..42ad4cf4 100644 --- a/src/server/test/fix_test.go +++ b/src/server/test/fix_test.go @@ -113,7 +113,6 @@ func TestLevelUp(t *testing.T) { } func TestEndless(t *testing.T) { - game.Init() p1 := new(game.Player) p1.InitPlayer("3625212") p1.ZeroUpdate(nil) From 1e7fac37b8250a35d621cae020d738222a4940ca Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Wed, 18 Mar 2026 16:26:05 +0800 Subject: [PATCH 04/52] 1 --- .gitignore | 1 + src/server/db/Mysql.go | 2 +- src/server/game/GameLogic.go | 4 +-- src/server/game/activity_mgr.go | 44 +++++++++++++++++++-------------- 4 files changed, 29 insertions(+), 22 deletions(-) diff --git a/.gitignore b/.gitignore index 623c746c..ab614cb0 100644 --- a/.gitignore +++ b/.gitignore @@ -22,3 +22,4 @@ src/server/msg/Gameapi.pb.go src/server/gen-go src/server/GeoLite2-Country src/server/test/GeoLite2-Country +src/server/msg/Gameapi_grpc.pb.go diff --git a/src/server/db/Mysql.go b/src/server/db/Mysql.go index fb37d20d..81e8a3fb 100644 --- a/src/server/db/Mysql.go +++ b/src/server/db/Mysql.go @@ -414,7 +414,7 @@ func GetServerMailData(data *[]*SqlServerMailStruct) error { } func GetActivityData(data *[]*SqlActivityCfgStruct) error { - sql := "select `id`, `type`, `title`, `mail_title`, `mail_content`, `level_limit`, `start_time`, `end_time`, `cfg`, `extra` from t_activity_mod" + sql := "select `id`, `type`, `title`, `mail_title`, `mail_content`, `level_limit`, `start_time`, `end_time`, `cfg_buf`, `extra` from t_activity_mod" err := SqlDb.Select(data, sql) return err } diff --git a/src/server/game/GameLogic.go b/src/server/game/GameLogic.go index 78569f8a..08862a37 100644 --- a/src/server/game/GameLogic.go +++ b/src/server/game/GameLogic.go @@ -296,9 +296,7 @@ func (ad *GameLogic) CreateMailMgr() { // 活动管理器 func (ad *GameLogic) CreateActivityMgr() { - ad.ActivityMgr = &ActivityMgr{ - ServerMod: new(ServerMod), - } + ad.ActivityMgr = &ActivityMgr{} ad.ActivityMgr.Init() } diff --git a/src/server/game/activity_mgr.go b/src/server/game/activity_mgr.go index 2adcea32..a108e185 100644 --- a/src/server/game/activity_mgr.go +++ b/src/server/game/activity_mgr.go @@ -1,16 +1,18 @@ package game import ( - "encoding/json" "fmt" "server/db" "server/game/mod/msg" + protoMsg "server/msg" "server/pkg/github.com/name5566/leaf/log" "sync" + + "google.golang.org/protobuf/proto" ) type ActivityMgr struct { - *ServerMod + data *ActivityData } type ActivityData struct { @@ -27,7 +29,7 @@ type ActivityCfg struct { Title string MailTitle string MailContent string - cfg map[string]interface{} + cfg interface{} Extra map[string]interface{} } @@ -39,17 +41,14 @@ func (ac *ActivityCfg) String() string { const () func (r *ActivityMgr) Init() { - r.key = ACTIVITY_MGR_KEY r.data = &ActivityData{ List: make(map[int]*ActivityCfg, 0), } - // 注册处理函数 - r.init() r.Reload() } func (r *ActivityMgr) getData() *ActivityData { - return r.data.(*ActivityData) + return r.data } // 零点更新 重置榜单 @@ -57,7 +56,7 @@ func (r *ActivityMgr) ZeroUpdate(m *msg.Msg) (interface{}, error) { return nil, nil } -func (r ActivityMgr) GetActivityCfg(Id int) ActivityCfg { +func (r *ActivityMgr) GetActivityCfg(Id int) ActivityCfg { // 获取活动配置 data := r.getData() data.mu.Lock() @@ -84,14 +83,10 @@ func (r *ActivityMgr) Reload() error { } data.List = make(map[int]*ActivityCfg, 0) for _, v := range cfgList { - reward := make(map[string]interface{}) - extra := make(map[string]interface{}) - if v.Extra != "" { - err := json.Unmarshal([]byte(v.Extra), &extra) - if err != nil { - log.Error("Unmarshal extra error: %v", err) - continue - } + activityCfg, err := unmarshalActivityCfg(v.Type, []byte(v.Cfg)) + if err != nil { + log.Error("Unmarshal activity cfg error: %v", err) + continue } cfg := &ActivityCfg{ Id: v.Id, @@ -102,11 +97,24 @@ func (r *ActivityMgr) Reload() error { Title: v.Title, MailTitle: v.MailTitle, MailContent: v.MailContent, - cfg: reward, - Extra: extra, + cfg: activityCfg, } log.Debug("load activity cfg: %v", cfg) data.List[v.Id] = cfg } return nil } + +func unmarshalActivityCfg(atype int, buf []byte) (interface{}, error) { + switch atype { + case 1: + cfg := &protoMsg.MiningCfg{} + err := proto.Unmarshal(buf, cfg) + if err != nil { + return nil, err + } + return cfg, nil + } + return nil, fmt.Errorf("unknown activity type: %d", atype) + +} From 32d66d96fd0b5da83f8584fc79dcee719050a845 Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Wed, 18 Mar 2026 16:58:54 +0800 Subject: [PATCH 05/52] 1 --- src/server/game/activity_mgr.go | 12 ++++++++++++ src/server/game/player_data.go | 19 +++++++------------ 2 files changed, 19 insertions(+), 12 deletions(-) diff --git a/src/server/game/activity_mgr.go b/src/server/game/activity_mgr.go index a108e185..1b00de48 100644 --- a/src/server/game/activity_mgr.go +++ b/src/server/game/activity_mgr.go @@ -56,6 +56,18 @@ func (r *ActivityMgr) ZeroUpdate(m *msg.Msg) (interface{}, error) { return nil, nil } +func (r *ActivityMgr) GetActivityList() []ActivityCfg { + // 获取活动列表 + data := r.getData() + data.mu.Lock() + defer data.mu.Unlock() + list := make([]ActivityCfg, 0, len(data.List)) + for _, v := range data.List { + list = append(list, *v) + } + return list +} + func (r *ActivityMgr) GetActivityCfg(Id int) ActivityCfg { // 获取活动配置 data := r.getData() diff --git a/src/server/game/player_data.go b/src/server/game/player_data.go index e07d254b..7629f8bd 100644 --- a/src/server/game/player_data.go +++ b/src/server/game/player_data.go @@ -7,7 +7,6 @@ import ( "errors" "math" "server/conf" - activityCfg "server/conf/activity" cardCfg "server/conf/card" chargeCfg "server/conf/charge" fur_cfg "server/conf/fur" @@ -1192,9 +1191,8 @@ func (p *Player) TeLog(Type string, Param map[string]interface{}) { // 初始化活动 func (p *Player) InitActivity() { p.activity = make(map[int]*ActivityInfo) - ActivityList := activityCfg.GetActivityList() + ActivityList := G_GameLogicPtr.ActivityMgr.GetActivityList() Level := p.GetPlayerBaseMod().GetLevel() - ActivityMod := p.PlayMod.getActivityMod() now := GoUtil.Now() var startduration int64 var minduration int64 @@ -1203,24 +1201,21 @@ func (p *Player) InitActivity() { if v.Level > Level { continue } - Status := ActivityMod.GetActivityStatus(v) - if Status == 0 { - continue - } - startduration = v.StartTime - now - endduration = v.EndTime - now + 1 + Status := 1 + startduration = v.Strartime - now + endduration = v.Endtime - now + 1 if startduration > 0 && (minduration == 0 || minduration > startduration) { minduration = startduration } if endduration > 0 && (minduration == 0 || minduration > endduration) { minduration = endduration } - if v.StartTime > now || v.EndTime < now { + if v.Strartime > now || v.Endtime < now { continue } p.activity[v.Id] = &ActivityInfo{ - StartT: v.StartTime, - EndT: v.EndTime, + StartT: v.Strartime, + EndT: v.Endtime, Id: v.Id, Type: v.Type, Status: Status, From 57d2ab0f69539dd0e8277b3640ab9fb33b41f7d3 Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Thu, 19 Mar 2026 15:06:12 +0800 Subject: [PATCH 06/52] 1 --- src/server/conf/activity/activity_cfg.go | 12 ------------ src/server/game/activity_func.go | 10 +++++----- src/server/game/activity_mgr.go | 10 ++++++---- src/server/game/player_data.go | 6 +++--- 4 files changed, 14 insertions(+), 24 deletions(-) diff --git a/src/server/conf/activity/activity_cfg.go b/src/server/conf/activity/activity_cfg.go index b1cac0ea..e1b915ab 100644 --- a/src/server/conf/activity/activity_cfg.go +++ b/src/server/conf/activity/activity_cfg.go @@ -1,11 +1,9 @@ package activityCfg import ( - languageCfg "server/conf/language" "server/game/mod/item" GoUtil "server/game_util" "server/gamedata" - "server/msg" "server/pkg/github.com/name5566/leaf/log" "strconv" ) @@ -136,16 +134,6 @@ func GetActivityRewardItems(ActId int) []*item.Item { return nil } -func GetActivityTitle(ActId int) (string, string) { - data, err := gamedata.GetDataByIntKey(CFG_ACTIVITY, ActId) - if err != nil { - log.Debug("GetActivityTitle err:%v", err) - return "", "" - } - title := gamedata.GetStringValue(data, "Title") - return languageCfg.GetLanguage(msg.LANG_TYPE_LANG_CN, title), languageCfg.GetLanguage(msg.LANG_TYPE_LANG_EN, title) -} - func GetActivityRecycleMail(ActId int) (string, string, string) { data, err := gamedata.GetDataByIntKey(CFG_ACTIVITY, ActId) if err != nil { diff --git a/src/server/game/activity_func.go b/src/server/game/activity_func.go index 79bbbe4e..66a061fb 100644 --- a/src/server/game/activity_func.go +++ b/src/server/game/activity_func.go @@ -460,7 +460,7 @@ func (p *Player) CatnipBackData() { func (p *Player) GetChampshipActivityId() (int, int) { var todayActivityId int var yesterdayActivityId int - activiyCfgList := activityCfg.GetActivityListOrigin() + activiyCfgList := G_GameLogicPtr.ActivityMgr.GetActivityList() Now := GoUtil.Now() YesterDay := GoUtil.ZeroTimestamp() - 1 level := p.GetBaseMod().GetLevel() @@ -472,10 +472,10 @@ func (p *Player) GetChampshipActivityId() (int, int) { if v.Level > level { continue } - if v.StartTime <= Now && v.EndTime >= Now { + if v.Startime <= Now && v.Endtime >= Now { todayActivityId = v.Id } - if v.StartTime <= YesterDay && v.EndTime >= YesterDay { + if v.Startime <= YesterDay && v.Endtime >= YesterDay { yesterdayActivityId = v.Id } } @@ -484,7 +484,7 @@ func (p *Player) GetChampshipActivityId() (int, int) { func (p *Player) GetDailyTaskActivityId() int { var activityId int - activiyCfgList := activityCfg.GetActivityListOrigin() + activiyCfgList := G_GameLogicPtr.ActivityMgr.GetActivityList() Now := GoUtil.Now() level := p.GetBaseMod().GetLevel() activityIds := dailyTaskCfg.GetActivityIds() @@ -495,7 +495,7 @@ func (p *Player) GetDailyTaskActivityId() int { if v.Level > level { continue } - if v.StartTime <= Now && v.EndTime >= Now { + if v.Startime <= Now && v.Endtime >= Now { activityId = v.Id break } diff --git a/src/server/game/activity_mgr.go b/src/server/game/activity_mgr.go index 1b00de48..593f5f88 100644 --- a/src/server/game/activity_mgr.go +++ b/src/server/game/activity_mgr.go @@ -23,7 +23,7 @@ type ActivityData struct { type ActivityCfg struct { Id int Type int - Strartime int64 + Startime int64 Endtime int64 Level int Title string @@ -35,7 +35,7 @@ type ActivityCfg struct { func (ac *ActivityCfg) String() string { return fmt.Sprintf("Id: %d, Type: %d, StartTime: %d, EndTime: %d, Level: %d, Title: %s, MailTitle: %s, MailContent: %s, cfg: %v, Extra: %v", - ac.Id, ac.Type, ac.Strartime, ac.Endtime, ac.Level, ac.Title, ac.MailTitle, ac.MailContent, ac.cfg, ac.Extra) + ac.Id, ac.Type, ac.Startime, ac.Endtime, ac.Level, ac.Title, ac.MailTitle, ac.MailContent, ac.cfg, ac.Extra) } const () @@ -103,7 +103,7 @@ func (r *ActivityMgr) Reload() error { cfg := &ActivityCfg{ Id: v.Id, Type: v.Type, - Strartime: v.Start_time, + Startime: v.Start_time, Endtime: v.End_time, Level: v.Level, Title: v.Title, @@ -118,6 +118,9 @@ func (r *ActivityMgr) Reload() error { } func unmarshalActivityCfg(atype int, buf []byte) (interface{}, error) { + if len(buf) == 0 { + return nil, nil + } switch atype { case 1: cfg := &protoMsg.MiningCfg{} @@ -128,5 +131,4 @@ func unmarshalActivityCfg(atype int, buf []byte) (interface{}, error) { return cfg, nil } return nil, fmt.Errorf("unknown activity type: %d", atype) - } diff --git a/src/server/game/player_data.go b/src/server/game/player_data.go index 7629f8bd..029360c9 100644 --- a/src/server/game/player_data.go +++ b/src/server/game/player_data.go @@ -1202,7 +1202,7 @@ func (p *Player) InitActivity() { continue } Status := 1 - startduration = v.Strartime - now + startduration = v.Startime - now endduration = v.Endtime - now + 1 if startduration > 0 && (minduration == 0 || minduration > startduration) { minduration = startduration @@ -1210,11 +1210,11 @@ func (p *Player) InitActivity() { if endduration > 0 && (minduration == 0 || minduration > endduration) { minduration = endduration } - if v.Strartime > now || v.Endtime < now { + if v.Startime > now || v.Endtime < now { continue } p.activity[v.Id] = &ActivityInfo{ - StartT: v.Strartime, + StartT: v.Startime, EndT: v.Endtime, Id: v.Id, Type: v.Type, From e3d7370ff63da3ddfe4ff137165e34db5a5bcce5 Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Thu, 19 Mar 2026 19:56:33 +0800 Subject: [PATCH 07/52] =?UTF-8?q?=E6=89=93=E7=82=B9=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/server/game/register_network_func.go | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/server/game/register_network_func.go b/src/server/game/register_network_func.go index 4cbc55b0..9e0b82cb 100644 --- a/src/server/game/register_network_func.go +++ b/src/server/game/register_network_func.go @@ -31,6 +31,7 @@ import ( GoUtil "server/game_util" "server/msg" "strconv" + "strings" "server/pkg/github.com/name5566/leaf/gate" "server/pkg/github.com/name5566/leaf/log" @@ -3002,15 +3003,15 @@ func ReqGetInviteReward(player *Player, buf []byte) error { }) player.PushClientRes(InviteMod.BackData()) - Str := "" + playerIds := make([]string, 0) for k := range InviteMod.InviteList { - Str += strconv.Itoa(k) + "," + playerIds = append(playerIds, GoUtil.String(k)) } player.TeLog("register_invite_reward", map[string]interface{}{ "register_type": "facebook", "item_id": Items, "register_score": InviteMod.GetIndex, - "player_id": Str, + "player_id": strings.Join(playerIds, ","), "is_npc": len(InviteMod.InviteList) == 1, }) return nil From 0316e0682380b07a0cc9a379dbdf4762bdd7791c Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Thu, 19 Mar 2026 21:00:02 +0800 Subject: [PATCH 08/52] 1 --- src/server/game/mod_factory.go | 5 +++++ src/server/test/invite_test.go | 13 +++++++++++++ 2 files changed, 18 insertions(+) create mode 100644 src/server/test/invite_test.go diff --git a/src/server/game/mod_factory.go b/src/server/game/mod_factory.go index cf3ef97b..3f56ed00 100644 --- a/src/server/game/mod_factory.go +++ b/src/server/game/mod_factory.go @@ -15,6 +15,7 @@ import ( "server/game/mod/friend" friendTreasure "server/game/mod/friend_treasure.go" "server/game/mod/fur" + "server/game/mod/invite" "server/game/mod/item" limitedTimeEvent "server/game/mod/limited_time_event" "server/game/mod/mail" @@ -110,3 +111,7 @@ func (p *Player) GetActivityMod() *activity.Activity { func (p *Player) GetCollectMod() *collect.Collect { return p.PlayMod.getCollectMod() } + +func (p *Player) GetInviteMod() *invite.InviteMod { + return p.PlayMod.getInviteMod() +} diff --git a/src/server/test/invite_test.go b/src/server/test/invite_test.go new file mode 100644 index 00000000..9f5ffaa9 --- /dev/null +++ b/src/server/test/invite_test.go @@ -0,0 +1,13 @@ +package test + +import ( + "server/game" + "testing" +) + +func TestInviteBack(t *testing.T) { + player := new(game.Player) + player.InitPlayer("3625212") + InviteMod := player.GetInviteMod() + InviteMod.BackData() +} From 171aab883a6b23f287f09a0e9eb1bc0e64831153 Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Fri, 20 Mar 2026 11:48:48 +0800 Subject: [PATCH 09/52] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E6=97=A5=E5=BF=97?= =?UTF-8?q?=E6=89=93=E7=82=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/server/game/player_data.go | 1 + 1 file changed, 1 insertion(+) diff --git a/src/server/game/player_data.go b/src/server/game/player_data.go index d94cf337..7787f504 100644 --- a/src/server/game/player_data.go +++ b/src/server/game/player_data.go @@ -102,6 +102,7 @@ func (p *Player) signalDispatcherStop() { } func (p *Player) CallEvent(Duration time.Duration, F func(), Label string) { + log.Debug("add ticker event player id %d; type : %s", p.M_DwUin, Label) if v, ok := p.timerList[Label]; ok { v.Stop() } From 3dda192a6f2efac3cf9e372302049fc43b0a9733 Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Fri, 20 Mar 2026 15:46:15 +0800 Subject: [PATCH 10/52] =?UTF-8?q?=E4=BC=98=E5=8C=96=E6=97=A5=E5=BF=97?= =?UTF-8?q?=E6=89=93=E7=82=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/server/game/player_data.go | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/src/server/game/player_data.go b/src/server/game/player_data.go index 7787f504..e67560bb 100644 --- a/src/server/game/player_data.go +++ b/src/server/game/player_data.go @@ -641,6 +641,9 @@ func (p *Player) HandleItem(itemList []*item.Item, Label string) error { switch IType { case item.ITEM_TYPE_ENERGY: // 能量 err := p.GetPlayerBaseMod().AddEnergy(p, v.Num) + if err != nil { + return err + } p.TeLog("asset_change", map[string]interface{}{ "item_id": v.Id, "change_type": change_type, @@ -649,15 +652,13 @@ func (p *Player) HandleItem(itemList []*item.Item, Label string) error { "change_reason": Label, }) is_update = true - if err != nil { - return err - } + case item.ITEM_TYPE_STAR: // 星星 err := p.GetPlayerBaseMod().AddStar(p, v.Num) - is_update = true if err != nil { return err } + is_update = true p.TeLog("asset_change", map[string]interface{}{ "item_id": v.Id, "change_type": change_type, @@ -667,10 +668,10 @@ func (p *Player) HandleItem(itemList []*item.Item, Label string) error { }) case item.ITEM_TYPE_DIAMOND: // 钻石 err := p.GetPlayerBaseMod().AddDiamond(v.Num) - is_update = true if err != nil { return err } + is_update = true if v.Num < 0 { p.QuestTrigger(&quest.Trigger{Label: quest.TRIGGER_LABEL_DIAMOND, A: []interface{}{-v.Num}}) } @@ -929,6 +930,9 @@ func (p *Player) HandleItem(itemList []*item.Item, Label string) error { BackDataType[item.ITEM_TYPE_AD_CARD] = struct{}{} default: err := ItemMod.AddItem(v.Id, v.Num) + if err != nil { + return err + } p.TeLog("asset_change", map[string]interface{}{ "item_id": v.Id, "change_type": change_type, @@ -948,9 +952,6 @@ func (p *Player) HandleItem(itemList []*item.Item, Label string) error { "event_id": aId, }) } - if err != nil { - return err - } } } ResItemPopId := 0 From 72ccca583b1d7935023e620b5e68cade1e32e822 Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Fri, 20 Mar 2026 16:36:15 +0800 Subject: [PATCH 11/52] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E6=97=B6=E9=97=B4?= =?UTF-8?q?=E7=BA=BFbug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/server/game/mod/friend/Friend.go | 16 ++++++++-------- src/server/game/player_data.go | 12 ++++++------ 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/src/server/game/mod/friend/Friend.go b/src/server/game/mod/friend/Friend.go index 97525533..b7636ab6 100644 --- a/src/server/game/mod/friend/Friend.go +++ b/src/server/game/mod/friend/Friend.go @@ -513,22 +513,22 @@ func (f *FriendMod) AgreeApply(UId int) { } // 增加好友日志 -func (f *FriendMod) AddLog(Uid, Type int, Param string) int { +func (f *FriendMod) AddLog(uid, ltype int, param string, send int64) int { f.AutoId++ f.Log = append(f.Log, &LogInfo{ Id: f.AutoId, - Uid: Uid, - Type: Type, - Time: GoUtil.Now(), - Param: Param, + Uid: uid, + Type: ltype, + Time: send, + Param: param, }) - switch Type { + switch ltype { case LOG_TYPE_HANDBOOK_UPVOTE, LOG_TYPE_PLAYROOM_UPVOTE: - f.AddBubble(f.AutoId, Type, nil) + f.AddBubble(f.AutoId, ltype, nil) case LOG_TYPE_TREASURE_HELP: ItemNum := GoUtil.RandNum(2, 5) ItemList := []*item.Item{item.NewItem(item.ITEM_STAR_ID, ItemNum)} - f.AddBubble(f.AutoId, Type, ItemList) + f.AddBubble(f.AutoId, ltype, ItemList) } if len(f.Log) > 30 { f.Log = f.Log[len(f.Log)-30:] diff --git a/src/server/game/player_data.go b/src/server/game/player_data.go index e67560bb..783ab598 100644 --- a/src/server/game/player_data.go +++ b/src/server/game/player_data.go @@ -1170,17 +1170,17 @@ func (p *Player) HandleInChampshipRank() { SendMsgToCenterAsync(m) } -func (p *Player) AddLog(Uid int, Type int, Param string, Time int64) { +func (p *Player) AddLog(uid int, ltype int, param string, send int64) { FriendMod := p.PlayMod.getFriendMod() - Id := FriendMod.AddLog(Uid, Type, Param) + Id := FriendMod.AddLog(uid, ltype, param, send) p.PlayMod.save() p.PushClientRes(&msg.NotifyFriendLog{ Info: &msg.ResFriendLog{ - Player: G_GameLogicPtr.GetResSimplePlayerByUid(Uid), - Type: int32(Type), - Param: Param, + Player: G_GameLogicPtr.GetResSimplePlayerByUid(uid), + Type: int32(ltype), + Param: param, Id: int32(Id), - Time: int32(Time), + Time: int32(send), }, Bubble: FriendMod.GetBubble(Id), }) From ef03eb4581967df0b2c600bd666ae61560cfc9e6 Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Fri, 20 Mar 2026 17:02:56 +0800 Subject: [PATCH 12/52] =?UTF-8?q?=E5=A2=9E=E5=8A=A0GM=E6=8C=87=E4=BB=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/server/game/gm_handler.go | 9 +++++++++ src/server/game/message_mgr.go | 4 ++-- src/server/test/conf/server.json | 4 ++-- 3 files changed, 13 insertions(+), 4 deletions(-) diff --git a/src/server/game/gm_handler.go b/src/server/game/gm_handler.go index 2d552175..593ddb3c 100644 --- a/src/server/game/gm_handler.go +++ b/src/server/game/gm_handler.go @@ -653,6 +653,15 @@ func ReqGmCommand_(player *Player, Command string) error { Id, _ := strconv.Atoi(arg[1]) player.PlayMod.getInviteMod().AddInvite(Id) player.PushClientRes(player.PlayMod.getInviteMod().NotifySuccess()) + case "championshipResult": + uid, _ := strconv.Atoi(arg[1]) + FriendMgrSend(&MsgMod.Msg{ + Type: MsgMod.HANDLE_TYPE_CHAMPSHIP_RESULT, + SendT: GoUtil.ZeroTimestamp(), + To: int(player.M_DwUin), + From: uid, + Extra: []int{2, 145}, + }) case "debugLogoutMsg": ToUid, _ := strconv.Atoi(arg[1]) uidList, err := db.GetDebugPlayer(ToUid) diff --git a/src/server/game/message_mgr.go b/src/server/game/message_mgr.go index 90c6fab4..7e096576 100644 --- a/src/server/game/message_mgr.go +++ b/src/server/game/message_mgr.go @@ -472,7 +472,7 @@ func (m *MessageMgr) Handle(msg *msg.Msg) (interface{}, error) { if fun, ok := m.handler[msg.Type]; ok { return fun(msg) } - log.Error("server mod key:%s handle not exist handle type:%d", m.key, msg.Type) + log.Error("server mod key:%s handle not exist handle msg %v", m.key, msg) return nil, fmt.Errorf("server mod handler err") } @@ -510,7 +510,7 @@ func (m *MessageMgr) MessageHandleAsync(message *msg.Msg) error { return nil } - log.Error("server mod key:%s handle not exist handle type:%d", m.key, message.Type) + log.Error("server mod key:%s handle not exist handle msg %v", m.key, message) return fmt.Errorf("server mod handler err") } diff --git a/src/server/test/conf/server.json b/src/server/test/conf/server.json index b1a8388a..c7c5aa5e 100644 --- a/src/server/test/conf/server.json +++ b/src/server/test/conf/server.json @@ -26,8 +26,8 @@ "GameConfPath": "D:/Github/pet_home_server/src/server/gamedata/config/", "ListenAddr":":9001", - "CenterAddr": "pethome.bywaystudios.com:9000", - "RemoteAddr":"host.docker.internal:9001", + "CenterAddr": "127.0.0.1:9000", + "RemoteAddr":":9001", "RedisAddr":"127.0.0.1", "RedisPort" :"6379", From bb32b5b124702a3bf1065c209456c3fc50c09fe2 Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Fri, 20 Mar 2026 18:06:17 +0800 Subject: [PATCH 13/52] =?UTF-8?q?=E4=BC=98=E5=8C=96=E9=82=80=E8=AF=B7?= =?UTF-8?q?=E5=A5=96=E5=8A=B1=E6=89=93=E7=82=B9=E6=96=B9=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/server/game/register_network_func.go | 19 ++++++++++++------- src/server/test/invite_test.go | 23 +++++++++++++++++++++++ 2 files changed, 35 insertions(+), 7 deletions(-) diff --git a/src/server/game/register_network_func.go b/src/server/game/register_network_func.go index 9e0b82cb..7575a298 100644 --- a/src/server/game/register_network_func.go +++ b/src/server/game/register_network_func.go @@ -11,6 +11,7 @@ import ( emojiCfg "server/conf/emoji" GuideTaskCfg "server/conf/guide_task" handbookCfg "server/conf/handbook" + inviteCfg "server/conf/invite" limitedTimeEventCfg "server/conf/limited_time_event" mergeDataCfg "server/conf/merge_data" miningCfg "server/conf/mining" @@ -2987,6 +2988,7 @@ func ReqGetInviteReward(player *Player, buf []byte) error { return err } InviteMod := player.PlayMod.getInviteMod() + curIndex := InviteMod.GetIndex Items, err := InviteMod.GetReward(int(req.GetIndex)) if err != nil { log.Debug("ReqGetInviteReward err :%v", err) @@ -3007,13 +3009,16 @@ func ReqGetInviteReward(player *Player, buf []byte) error { for k := range InviteMod.InviteList { playerIds = append(playerIds, GoUtil.String(k)) } - player.TeLog("register_invite_reward", map[string]interface{}{ - "register_type": "facebook", - "item_id": Items, - "register_score": InviteMod.GetIndex, - "player_id": strings.Join(playerIds, ","), - "is_npc": len(InviteMod.InviteList) == 1, - }) + for i := curIndex + 1; i <= InviteMod.GetIndex; i++ { + _, rewardItems := inviteCfg.GetInviteReward(i) + player.TeLog("register_invite_reward", map[string]interface{}{ + "register_type": "facebook", + "item_id": rewardItems, + "register_score": InviteMod.GetIndex, + "player_id": strings.Join(playerIds, ","), + "is_npc": i == 1, + }) + } return nil } diff --git a/src/server/test/invite_test.go b/src/server/test/invite_test.go index 9f5ffaa9..c568bcab 100644 --- a/src/server/test/invite_test.go +++ b/src/server/test/invite_test.go @@ -1,8 +1,12 @@ package test import ( + "fmt" "server/game" + "server/msg" "testing" + + "google.golang.org/protobuf/proto" ) func TestInviteBack(t *testing.T) { @@ -11,3 +15,22 @@ func TestInviteBack(t *testing.T) { InviteMod := player.GetInviteMod() InviteMod.BackData() } + +func TestInviteReward(t *testing.T) { + player := new(game.Player) + player.InitPlayer("3625212") + InviteMod := player.GetInviteMod() + InviteMod.GetIndex = 0 + InviteMod.InviteList = map[int]struct{}{1: {}, 2: {}, 3: {}} + req := &msg.ReqGetInviteReward{ + GetIndex: 2, + } + buf, _ := proto.Marshal(req) + game.ReqGetInviteReward(player, buf) +} + +func TestFix(t *testing.T) { + for i := 0; i < 10; i++ { + fmt.Println(i) + } +} From c01b594247f6da03a7458a50e927b8a5d1f1f7fe Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Fri, 20 Mar 2026 18:06:17 +0800 Subject: [PATCH 14/52] =?UTF-8?q?=E4=BC=98=E5=8C=96=E9=82=80=E8=AF=B7?= =?UTF-8?q?=E5=A5=96=E5=8A=B1=E6=89=93=E7=82=B9=E6=96=B9=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/server/game/register_network_func.go | 19 ++++++++++++------- src/server/test/invite_test.go | 23 +++++++++++++++++++++++ 2 files changed, 35 insertions(+), 7 deletions(-) diff --git a/src/server/game/register_network_func.go b/src/server/game/register_network_func.go index bdc540e3..dc1ee205 100644 --- a/src/server/game/register_network_func.go +++ b/src/server/game/register_network_func.go @@ -11,6 +11,7 @@ import ( emojiCfg "server/conf/emoji" GuideTaskCfg "server/conf/guide_task" handbookCfg "server/conf/handbook" + inviteCfg "server/conf/invite" limitedTimeEventCfg "server/conf/limited_time_event" mergeDataCfg "server/conf/merge_data" miningCfg "server/conf/mining" @@ -2988,6 +2989,7 @@ func ReqGetInviteReward(player *Player, buf []byte) error { return err } InviteMod := player.PlayMod.getInviteMod() + curIndex := InviteMod.GetIndex Items, err := InviteMod.GetReward(int(req.GetIndex)) if err != nil { log.Debug("ReqGetInviteReward err :%v", err) @@ -3008,13 +3010,16 @@ func ReqGetInviteReward(player *Player, buf []byte) error { for k := range InviteMod.InviteList { playerIds = append(playerIds, GoUtil.String(k)) } - player.TeLog("register_invite_reward", map[string]interface{}{ - "register_type": "facebook", - "item_id": Items, - "register_score": InviteMod.GetIndex, - "player_id": strings.Join(playerIds, ","), - "is_npc": len(InviteMod.InviteList) == 1, - }) + for i := curIndex + 1; i <= InviteMod.GetIndex; i++ { + _, rewardItems := inviteCfg.GetInviteReward(i) + player.TeLog("register_invite_reward", map[string]interface{}{ + "register_type": "facebook", + "item_id": rewardItems, + "register_score": InviteMod.GetIndex, + "player_id": strings.Join(playerIds, ","), + "is_npc": i == 1, + }) + } return nil } diff --git a/src/server/test/invite_test.go b/src/server/test/invite_test.go index 9f5ffaa9..c568bcab 100644 --- a/src/server/test/invite_test.go +++ b/src/server/test/invite_test.go @@ -1,8 +1,12 @@ package test import ( + "fmt" "server/game" + "server/msg" "testing" + + "google.golang.org/protobuf/proto" ) func TestInviteBack(t *testing.T) { @@ -11,3 +15,22 @@ func TestInviteBack(t *testing.T) { InviteMod := player.GetInviteMod() InviteMod.BackData() } + +func TestInviteReward(t *testing.T) { + player := new(game.Player) + player.InitPlayer("3625212") + InviteMod := player.GetInviteMod() + InviteMod.GetIndex = 0 + InviteMod.InviteList = map[int]struct{}{1: {}, 2: {}, 3: {}} + req := &msg.ReqGetInviteReward{ + GetIndex: 2, + } + buf, _ := proto.Marshal(req) + game.ReqGetInviteReward(player, buf) +} + +func TestFix(t *testing.T) { + for i := 0; i < 10; i++ { + fmt.Println(i) + } +} From aa4656da0a0308e694b46e7fac68df03c029039b Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Fri, 20 Mar 2026 18:41:30 +0800 Subject: [PATCH 15/52] =?UTF-8?q?=E6=95=B0=E6=8D=AE=E5=BA=93=E4=BC=98?= =?UTF-8?q?=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/server/sql/Merge_Pet.sql | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/server/sql/Merge_Pet.sql b/src/server/sql/Merge_Pet.sql index 0ea2a541..d89b7ca6 100644 --- a/src/server/sql/Merge_Pet.sql +++ b/src/server/sql/Merge_Pet.sql @@ -30,7 +30,7 @@ CREATE TABLE IF NOT EXISTS t_account ( `channel` varchar(50) DEFAULT '' COMMENT '渠道号', `device_id` varchar(256) DEFAULT '' COMMENT '是否为刷榜账号', `auto_id` bigint NOT NULL auto_increment COMMENT '自增id', - PRIMARY KEY (`auto_id`) + PRIMARY KEY (`auto_id`), KEY `user_name` (`user_name`) USING HASH ) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE utf8mb4_general_ci COMMENT = '账号密码对照表'; /*==============================================================*/ @@ -109,7 +109,7 @@ CREATE TABLE IF NOT EXISTS t_player_charge ( `PayChannelOrderId` varchar(512) DEFAULT '' COMMENT '支付渠道订单号', `PayChannelUserId` varchar(128) DEFAULT '' COMMENT '支付渠道用户id', `PayChannelExtra` varchar(128) DEFAULT '' COMMENT '支付渠道额外信息', - primary key (`id`) + primary key (`id`), KEY `Uid` (`Uid`), KEY `OrderId` (`OrderId`) ) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE utf8mb4_general_ci COMMENT = '玩家订单表'; -- ---------------------------- From d38bb332d638aa8ff22e7d08b3c7f7e02e76d432 Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Fri, 20 Mar 2026 18:46:59 +0800 Subject: [PATCH 16/52] =?UTF-8?q?=E4=BF=9D=E5=AD=98=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/server/game/player_data.go | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/server/game/player_data.go b/src/server/game/player_data.go index 783ab598..76cc5139 100644 --- a/src/server/game/player_data.go +++ b/src/server/game/player_data.go @@ -255,7 +255,7 @@ func (p *Player) InitPlayer(UserName string) error { // 启动定时器 p.DispatcherHandle() p.McronSave = cron.New() - _, err = p.McronSave.AddFunc("@every 1m", p.AutoSaveData) + _, err = p.McronSave.AddFunc("@every 2m", p.AutoSaveData) if err != nil { log.Debug("AddFunc failed:", err) } @@ -556,6 +556,9 @@ func (p *Player) ClearData() { func (p *Player) AutoSaveData() { p.lock.Lock() defer p.lock.Unlock() + if !p.PlayMod.is_update { + return + } //保存数据 ctx := context.Background() txOptions := &sql.TxOptions{} From 133beb47b47bcf9a76918c549ae7f27d947ec31c Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Fri, 20 Mar 2026 18:41:30 +0800 Subject: [PATCH 17/52] =?UTF-8?q?=E6=95=B0=E6=8D=AE=E5=BA=93=E4=BC=98?= =?UTF-8?q?=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/server/sql/Merge_Pet.sql | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/server/sql/Merge_Pet.sql b/src/server/sql/Merge_Pet.sql index 0ea2a541..d89b7ca6 100644 --- a/src/server/sql/Merge_Pet.sql +++ b/src/server/sql/Merge_Pet.sql @@ -30,7 +30,7 @@ CREATE TABLE IF NOT EXISTS t_account ( `channel` varchar(50) DEFAULT '' COMMENT '渠道号', `device_id` varchar(256) DEFAULT '' COMMENT '是否为刷榜账号', `auto_id` bigint NOT NULL auto_increment COMMENT '自增id', - PRIMARY KEY (`auto_id`) + PRIMARY KEY (`auto_id`), KEY `user_name` (`user_name`) USING HASH ) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE utf8mb4_general_ci COMMENT = '账号密码对照表'; /*==============================================================*/ @@ -109,7 +109,7 @@ CREATE TABLE IF NOT EXISTS t_player_charge ( `PayChannelOrderId` varchar(512) DEFAULT '' COMMENT '支付渠道订单号', `PayChannelUserId` varchar(128) DEFAULT '' COMMENT '支付渠道用户id', `PayChannelExtra` varchar(128) DEFAULT '' COMMENT '支付渠道额外信息', - primary key (`id`) + primary key (`id`), KEY `Uid` (`Uid`), KEY `OrderId` (`OrderId`) ) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE utf8mb4_general_ci COMMENT = '玩家订单表'; -- ---------------------------- From 638126b50b348cadfaac415b3847a4ff7ee7171e Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Fri, 20 Mar 2026 18:46:59 +0800 Subject: [PATCH 18/52] =?UTF-8?q?=E4=BF=9D=E5=AD=98=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/server/game/player_data.go | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/server/game/player_data.go b/src/server/game/player_data.go index 783ab598..76cc5139 100644 --- a/src/server/game/player_data.go +++ b/src/server/game/player_data.go @@ -255,7 +255,7 @@ func (p *Player) InitPlayer(UserName string) error { // 启动定时器 p.DispatcherHandle() p.McronSave = cron.New() - _, err = p.McronSave.AddFunc("@every 1m", p.AutoSaveData) + _, err = p.McronSave.AddFunc("@every 2m", p.AutoSaveData) if err != nil { log.Debug("AddFunc failed:", err) } @@ -556,6 +556,9 @@ func (p *Player) ClearData() { func (p *Player) AutoSaveData() { p.lock.Lock() defer p.lock.Unlock() + if !p.PlayMod.is_update { + return + } //保存数据 ctx := context.Background() txOptions := &sql.TxOptions{} From e0b255a859b28f5a809cf98e8944de258d722e9c Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Mon, 23 Mar 2026 11:20:43 +0800 Subject: [PATCH 19/52] =?UTF-8?q?=E8=B0=83=E6=95=B4GC=E5=8F=82=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/server/main.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/server/main.go b/src/server/main.go index d56aa3a8..6243f340 100644 --- a/src/server/main.go +++ b/src/server/main.go @@ -27,8 +27,8 @@ func main() { lconf.CenterAddr = conf.Server.CenterAddr lconf.PendingWriteNum = conf.PendingWriteNum // 当内存>256M时开始GC - debug.SetGCPercent(50) - debug.SetMemoryLimit(512 << 20) + debug.SetGCPercent(200) + debug.SetMemoryLimit(1024 << 20) // 启动 pprof(仅绑定本地) go func() { // 如果需要绑定所有接口改为 ":6060" From d190c2edf8df67784835017d18704dc447526f74 Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Mon, 23 Mar 2026 11:39:36 +0800 Subject: [PATCH 20/52] =?UTF-8?q?=E5=A4=87=E4=BB=BD=E7=9A=84=E5=BA=8F?= =?UTF-8?q?=E5=88=97=E5=8C=96=E5=AF=B9=E8=B1=A1=E4=BD=BF=E7=94=A8=E5=86=85?= =?UTF-8?q?=E5=AD=98=E6=B1=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/server/game/player_data.go | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/src/server/game/player_data.go b/src/server/game/player_data.go index 76cc5139..901ee5ad 100644 --- a/src/server/game/player_data.go +++ b/src/server/game/player_data.go @@ -82,6 +82,17 @@ type PlayerMsg struct { B []byte } +var playerDataPool = sync.Pool{ + New: func() interface{} { + return &PlayerBackUp{} + }, +} + +func (pd *PlayerBackUp) Reset() { + pd.Data = msg.ResPlayerBaseInfo{} + pd.PlayMod = nil +} + func (p *Player) Stop() { p.wg.Wait() p.signalDispatcherStop() @@ -201,10 +212,10 @@ func (p *Player) ProcessTrigger() { // 接口请求之前备份数据 func (p *Player) BackUp() *PlayerBackUp { - BackUp := PlayerBackUp{} - p.PlayMod.BackUp(&BackUp) + BackUp := playerDataPool.Get().(*PlayerBackUp) + p.PlayMod.BackUp(BackUp) BackUp.Data = p.GetPlayerBaseMod().BackUp() - return &BackUp + return BackUp } // 接口发生错误时 还原数据 @@ -212,6 +223,8 @@ func (p *Player) Recover(backUp *PlayerBackUp) { // p.GetPlayerBaseMod().Data = backUp.Data p.PlayMod.Recover(backUp) p.Msg = make([]PlayerMsg, 0) + backUp.Reset() + playerDataPool.Put(backUp) } func (p *Player) InitPlayer(UserName string) error { From 92417342bf5d345b323a72775b53d20843f78811 Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Mon, 23 Mar 2026 14:52:31 +0800 Subject: [PATCH 21/52] =?UTF-8?q?=E6=B4=BB=E5=8A=A8=E9=85=8D=E7=BD=AE?= =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/server/backend/server.go | 13 +++ src/server/backend/sever_handler.go | 135 ---------------------------- src/server/conf/server.json | 2 +- src/server/game/activity_mgr.go | 2 +- src/server/game/admin.go | 26 ++++++ src/server/test/conf/server.json | 1 + 6 files changed, 42 insertions(+), 137 deletions(-) delete mode 100644 src/server/backend/sever_handler.go diff --git a/src/server/backend/server.go b/src/server/backend/server.go index b86db4b8..6026db25 100644 --- a/src/server/backend/server.go +++ b/src/server/backend/server.go @@ -4,6 +4,7 @@ import ( "context" "net" "server/conf" + "server/game" "server/msg" "server/pkg/github.com/name5566/leaf/log" @@ -15,9 +16,21 @@ type backendServer struct { } func (s *backendServer) ReloadActivity(ctx context.Context, req *msg.ReqActivityCfgReload) (*msg.ResActivityCfgReload, error) { + log.Debug("Received ReloadActivity request: %v", req) + game.AcitivityCfgReload() return nil, nil } +func (s *backendServer) OrderShipping(ctx context.Context, req *msg.ReqOrderShipping) (*msg.ResOrderShipping, error) { + log.Debug("Received OrderShipping request: %v", req) + res, err := game.AdminShipping(req) + if err != nil { + log.Error("OrderShipping error: %v", err) + return nil, err + } + return res, nil +} + func Start() { if conf.Server.RPCAddr == "" { log.Debug("RPC server address not configured, skipping gRPC server startup") diff --git a/src/server/backend/sever_handler.go b/src/server/backend/sever_handler.go deleted file mode 100644 index e6006f27..00000000 --- a/src/server/backend/sever_handler.go +++ /dev/null @@ -1,135 +0,0 @@ -package backend - -// type GameServiceHandler struct{} - -// func NewGameServiceHandler() *GameServiceHandler { -// return &GameServiceHandler{} -// } - -// func (h *GameServiceHandler) ReqPlayerInfo(ctx context.Context, id int64) (*backend.ResAdminInfo, error) { -// player := game.G_GameLogicPtr.GetPlayer(int64(id)) -// online := true -// if player == nil { -// player = new(game.Player) -// player.M_DwUin = int64(id) -// player.InitPlayerOnly() -// player.ZeroUpdate(nil) -// online = false -// } -// res := &backend.ResAdminInfo{} -// res.Name = player.GetBaseMod().NickName -// res.UID = player.M_DwUin -// res.AreaId = int32(player.GetDecorateMod().GetAreaId()) -// res.Face = int32(player.GetFaceMod().SetId) -// res.Charge = player.GetChargeMod().Charge -// res.MaxCharge = player.GetChargeMod().MaxCharge -// res.Level = int32(player.GetPlayerBaseMod().GetLevel()) -// res.Diamond = int32(player.GetPlayerBaseMod().GetDiamond()) -// res.Star = int32(player.GetPlayerBaseMod().GetStar()) -// res.Energy = int32(player.GetPlayerBaseMod().GetEnergy()) -// res.UserName = player.GetPlayerBaseMod().GetName() -// res.LoginTime = player.GetBaseMod().LoginTime -// res.Cumulative = int32(player.GetBaseMod().Cumulative) -// res.RegisterTime = int32(player.GetPlayerBaseMod().GetRegisterTime()) -// res.TodayCumulative = int32(player.GetBaseMod().TodayCumulative) -// res.Ban = int8(db.GetPlayerBan(player.GetBaseMod().Account)) -// if online { -// res.Cumulative = int32(int64(player.GetBaseMod().Cumulative) + GoUtil.Now() - int64(player.GetBaseMod().LoginTime)) -// res.TodayCumulative = int32(int64(player.GetBaseMod().TodayCumulative) + GoUtil.Now() - int64(player.GetBaseMod().LoginTime)) -// } -// res.Code = player.GetBaseMod().AddCode -// res.ChessMap = player.GetChessMod().ChessMap -// resActLog := make([]*backend.Actlog, 0, len(player.GetFriendMod().ActivityLog)) -// for _, log := range player.GetFriendMod().ActivityLog { -// resActLog = append(resActLog, &backend.Actlog{ -// Type: int8(log.Type), -// Time: log.Time, -// Param: log.Param, -// }) -// } -// res.ActLog = resActLog -// friendList := player.GetFriendMod().NewFriendList -// type friendInfo struct { -// Uid int64 -// NickName string -// Avatar int -// Level int -// LogoutTime int64 -// LoginTime int64 -// } -// resFriendList := make([]*backend.FriendInfo, 0, len(friendList)) -// for v := range friendList { -// ps := game.G_GameLogicPtr.GetSimplePlayerByUid(v) -// if ps == nil { -// continue -// } -// resFriendList = append(resFriendList, &backend.FriendInfo{ -// UID: int64(v), -// NickName: ps.Name, -// Face: int32(ps.Face), -// Level: int32(ps.Level), -// LogoutTime: ps.Loginout, -// LoginTime: ps.Login, -// }) -// } -// res.FriendList = resFriendList -// OrderMap := make(map[int32]*backend.OrderInfo) -// Index := 0 -// for k, v := range player.GetOrderMod().OrderList { -// OrderMap[int32(Index)] = &backend.OrderInfo{ -// ID: int32(k), -// Type: int32(v.Type), -// Time: v.Timestamp, -// ChessId: GoUtil.IntSliceToString(v.MergeId), -// Diff: int8(v.Diff), -// } -// Index++ -// } -// res.OrderList = OrderMap -// return res, nil -// } - -// func (h *GameServiceHandler) ReqReloadServerMail(ctx context.Context) (*backend.ResMessage, error) { -// game.G_GameLogicPtr.MailMgrCall(&msg.Msg{Type: msg.HANDLE_TYPE_MAIL_RELOAD}) -// game.G_GameLogicPtr.NotifyAll(&msg.Msg{Type: msg.HANDLE_TYPE_MAIL}) -// log.Debug("ReqReloadServerMail success") -// return &backend.ResMessage{ -// Code: 0, -// }, nil -// } - -// func (h *GameServiceHandler) ReqConfigReload(ctx context.Context) (*backend.ResMessage, error) { -// gamedata.Reload() -// return &backend.ResMessage{ -// Code: 0, -// }, nil -// } - -// func (h *GameServiceHandler) ReqAdminGm(ctx context.Context, uid int64, command string) (*backend.ResMessage, error) { -// player := game.G_GameLogicPtr.GetPlayer(uid) -// if player == nil { -// return &backend.ResMessage{ -// Code: 1, -// Msg: "player not online", -// }, nil -// } -// player.Lock() -// defer player.UnLock() -// err := game.ReqGmCommand_(player, command) -// if err != nil { -// return &backend.ResMessage{ -// Code: 1, -// Msg: err.Error(), -// }, nil -// } -// return &backend.ResMessage{ -// Code: 0, -// }, nil -// } - -// func (h *GameServiceHandler) ReqAdminBan(ctx context.Context, uid int64, banTime int64) (*backend.ResMessage, error) { -// db.UpdatePlayerBan(uid, banTime) -// return &backend.ResMessage{ -// Code: 0, -// }, nil -// } diff --git a/src/server/conf/server.json b/src/server/conf/server.json index 3b390e3c..9fca6f51 100644 --- a/src/server/conf/server.json +++ b/src/server/conf/server.json @@ -4,7 +4,7 @@ "LogPath": "./log", "TCPAddr": ":3602", "WSAddr": ":3567", - "RPCAddr": ":9003", + "RPCAddr": ":50051", "MySqlAddr": "127.0.0.1", "MySqlPort": "3306", "MySqlUsr": "root", diff --git a/src/server/game/activity_mgr.go b/src/server/game/activity_mgr.go index 593f5f88..54d937a0 100644 --- a/src/server/game/activity_mgr.go +++ b/src/server/game/activity_mgr.go @@ -130,5 +130,5 @@ func unmarshalActivityCfg(atype int, buf []byte) (interface{}, error) { } return cfg, nil } - return nil, fmt.Errorf("unknown activity type: %d", atype) + return nil, nil } diff --git a/src/server/game/admin.go b/src/server/game/admin.go index 87589fe7..aac65f31 100644 --- a/src/server/game/admin.go +++ b/src/server/game/admin.go @@ -322,3 +322,29 @@ func ReqAdminBan(args []interface{}) error { AdminPlayerBack(a, res) return nil } + +func AcitivityCfgReload() { + G_GameLogicPtr.ActivityMgr.Reload() +} + +func AdminShipping(req *msg.ReqOrderShipping) (*msg.ResOrderShipping, error) { + res := &msg.ResOrderShipping{} + res.Code = 0 + OrderInfo, err := db.GetPlayerChargeData(req.OrderSn) + if err != nil { + res.Code = 1 + res.Msg = "order not found" + } + if OrderInfo.PayStatus == MergeConst.ORDER_STATUS_SHIP { + res.Msg = "order already shipped" + } + // 玩家在线,通知发货 + Player := G_GameLogicPtr.GetPlayer(int64(OrderInfo.Uid)) + if Player != nil { + go Player.TriggerShippingOrderOrigin(&msg.ReqShippingOrder{ + OrderSn: req.OrderSn, + }) + res.Msg = "player online,triggered sync" + } + return res, nil +} diff --git a/src/server/test/conf/server.json b/src/server/test/conf/server.json index b1a8388a..1ed6d3c3 100644 --- a/src/server/test/conf/server.json +++ b/src/server/test/conf/server.json @@ -3,6 +3,7 @@ "LogLevel": "debug", "LogPath": "./log", "TCPAddr": ":3601", + "RPCAddr": ":50051", "WSAddr": ":3566", "MySqlAddr": "127.0.0.1", "MySqlPort": "3306", From bf5eafc0e0fe81621c2f9cc0c43c7b6382dbe508 Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Mon, 23 Mar 2026 15:06:52 +0800 Subject: [PATCH 22/52] =?UTF-8?q?=E6=B4=BB=E5=8A=A8=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/server/game/activity_mgr.go | 2 ++ src/server/game/message_handler.go | 4 ++++ src/server/game/mod/msg/Msg.go | 4 ++++ 3 files changed, 10 insertions(+) diff --git a/src/server/game/activity_mgr.go b/src/server/game/activity_mgr.go index 54d937a0..31dda126 100644 --- a/src/server/game/activity_mgr.go +++ b/src/server/game/activity_mgr.go @@ -4,6 +4,7 @@ import ( "fmt" "server/db" "server/game/mod/msg" + Msg "server/game/mod/msg" protoMsg "server/msg" "server/pkg/github.com/name5566/leaf/log" "sync" @@ -114,6 +115,7 @@ func (r *ActivityMgr) Reload() error { log.Debug("load activity cfg: %v", cfg) data.List[v.Id] = cfg } + G_GameLogicPtr.NotifyAll(&Msg.Msg{Type: Msg.HANDLE_TYPE_ACTIVITY_RELOAD}) return nil } diff --git a/src/server/game/message_handler.go b/src/server/game/message_handler.go index 1779a079..796f8e8d 100644 --- a/src/server/game/message_handler.go +++ b/src/server/game/message_handler.go @@ -581,6 +581,10 @@ func (p *Player) handle(m *msg.Msg) error { Uids: otherUids, }) } + case msg.HANDLE_TYPE_ACTIVITY_RELOAD: + p.InitActivity() + p.BackDataActivity() + p.PushClientRes(p.GetMailMod().BackData()) default: log.Debug("uid : %d, handle msg type : %d not exist", p.M_DwUin, m.Type) } diff --git a/src/server/game/mod/msg/Msg.go b/src/server/game/mod/msg/Msg.go index 3d447193..b896875a 100644 --- a/src/server/game/mod/msg/Msg.go +++ b/src/server/game/mod/msg/Msg.go @@ -158,6 +158,8 @@ const ( HANDLE_TYPE_LOGIN // 玩家登录处理 SERVER_PLAYER_SYNC_LOGOUT_MSG // 玩家处理完离线消息 + + HANDLE_TYPE_ACTIVITY_RELOAD // 活动重新加载 ) const ( @@ -396,6 +398,8 @@ func formatType(t int) string { return "player_login" case SERVER_PLAYER_SYNC_LOGOUT_MSG: return "player_sync_logout" + case HANDLE_TYPE_ACTIVITY_RELOAD: + return "activity_reload" default: return fmt.Sprintf("Unknown(%d)", t) } From 186eba9d55e3864a1c3c1f09f9cd1d3cfd2a60a3 Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Mon, 23 Mar 2026 17:24:24 +0800 Subject: [PATCH 23/52] =?UTF-8?q?sql=E8=AF=AD=E5=8F=A5=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/server/sql/Merge_Pet.sql | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/server/sql/Merge_Pet.sql b/src/server/sql/Merge_Pet.sql index 13772ec7..62021d38 100644 --- a/src/server/sql/Merge_Pet.sql +++ b/src/server/sql/Merge_Pet.sql @@ -162,8 +162,8 @@ CREATE TABLE IF NOT EXISTS t_activity_mod ( `start_time` int unsigned NOT NULL DEFAULT '0' COMMENT '活动开始时间', `end_time` int unsigned NOT NULL DEFAULT '0' COMMENT '活动结束时间', `level_limit` int unsigned NOT NULL DEFAULT '0' COMMENT '等级限制', - `cfg` TEXT DEFAULT '' COMMENT '活动配置', - `cfg_buf` BLOB DEFAULT NULL COMMENT '活动配置buf', - `extra` TEXT DEFAULT '' COMMENT '活动额外数据', + `cfg` TEXT COMMENT '活动配置', + `cfg_buf` BLOB COMMENT '活动配置buf', + `extra` TEXT COMMENT '活动额外数据', `updateTime` int unsigned NOT NULL DEFAULT '0' COMMENT '更新时间' ) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE utf8mb4_general_ci COMMENT = '系统活动表'; \ No newline at end of file From 381a932b0686430f5ec29fad0627afd3ffacc63f Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Mon, 23 Mar 2026 17:33:27 +0800 Subject: [PATCH 24/52] =?UTF-8?q?=E9=9B=B6=E4=BB=B6=E8=AE=A2=E5=8D=95?= =?UTF-8?q?=E4=B8=8D=E4=BD=BF=E7=94=A8=E8=87=AA=E5=8A=A8=E5=8F=91=E5=B0=84?= =?UTF-8?q?=E5=99=A8=E4=BA=A7=E7=89=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/server/game/message_handler.go | 2 +- src/server/game/mod/chess/Chess.go | 12 ++++++++++++ src/server/test/order_test.go | 8 ++++++++ 3 files changed, 21 insertions(+), 1 deletion(-) diff --git a/src/server/game/message_handler.go b/src/server/game/message_handler.go index 796f8e8d..f352ee5b 100644 --- a/src/server/game/message_handler.go +++ b/src/server/game/message_handler.go @@ -1117,7 +1117,7 @@ func (player *Player) CreateNormalOrder() { } } if Trigger && Trigger2 && BaseMod.GetLevel() >= 12 { - OrderMod.CreateOrder(BaseMod.GetLevel(), ChessMod.GetOrderEmit(), BaseMod.GetEnergyMul(), order.Part_type) + OrderMod.CreateOrder(BaseMod.GetLevel(), ChessMod.GetOrderPartEmit(), BaseMod.GetEnergyMul(), order.Part_type) for k, v := range OrderMod.GetOrderList() { if v.Type == order.Part_type { v.Items = []*item.Item{item.NewItem(item.ITEM_LAUNCHER_ID, 2)} diff --git a/src/server/game/mod/chess/Chess.go b/src/server/game/mod/chess/Chess.go index 9a8e2958..bfd6be2b 100644 --- a/src/server/game/mod/chess/Chess.go +++ b/src/server/game/mod/chess/Chess.go @@ -590,6 +590,18 @@ func (cb *ChessBorad) GetOrderEmit() []int { return cb.GetEmitList() } +// 生成零件订单的发射器列表[去除自动发射器] +func (cb *ChessBorad) GetOrderPartEmit() []int { + emitList := cb.GetEmitList() + newEmitList := make([]int, 0, len(emitList)) + for _, v := range emitList { + if mergeDataCfg.GetEmitType(v) != "auto" { + newEmitList = append(newEmitList, v) + } + } + return newEmitList +} + func (cb *ChessBorad) GetRetireEmit() map[string]int { return cb.Retire } diff --git a/src/server/test/order_test.go b/src/server/test/order_test.go index f55be88d..a273a00a 100644 --- a/src/server/test/order_test.go +++ b/src/server/test/order_test.go @@ -66,3 +66,11 @@ func TestHighOrder(t *testing.T) { p1.InitOrderItem() fmt.Printf("order item:%v", OrderMod.OrderList[1].Items) } + +func TestAddPetOrder(t *testing.T) { + p1 := new(game.Player) + p1.InitPlayer("3625212") + ChessMod := p1.GetChessMod() + emitList := ChessMod.GetOrderPartEmit() + fmt.Printf("emit list:%v", emitList) +} From 3468f8f220d82b4d8430d2670961f9f45544447c Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Mon, 23 Mar 2026 17:42:55 +0800 Subject: [PATCH 25/52] =?UTF-8?q?=E7=8C=AB=E7=8C=AB=E5=B0=8F=E9=87=91?= =?UTF-8?q?=E5=BA=93=E6=95=B0=E5=80=BC=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/server/game/mod/playroom/playroom.go | 1 + src/server/game/register_network_func.go | 11 ++++------- 2 files changed, 5 insertions(+), 7 deletions(-) diff --git a/src/server/game/mod/playroom/playroom.go b/src/server/game/mod/playroom/playroom.go index b2e820b6..95326368 100644 --- a/src/server/game/mod/playroom/playroom.go +++ b/src/server/game/mod/playroom/playroom.go @@ -622,6 +622,7 @@ func (p *PlayroomMod) SetGameReward3(Star int) { p.GameReward[3] = &item.Item{Id: item.ITEM_STAR_ID, Num: Star} } +// N1, N2, N3分别是铜、银、金翻牌的奖励数量,经过玩家的加成后再设置到GameReward中 func (p *PlayroomMod) SetGameRewardFlip(N1, N2, N3 int) { p.GameReward[1] = &item.Item{Id: item.ITEM_STAR_ID, Num: N1} p.GameReward[2] = &item.Item{Id: item.ITEM_STAR_ID, Num: N2} diff --git a/src/server/game/register_network_func.go b/src/server/game/register_network_func.go index f4bf0f8f..488429ac 100644 --- a/src/server/game/register_network_func.go +++ b/src/server/game/register_network_func.go @@ -3455,14 +3455,11 @@ func ReqPlayroomInfo(player *Player, buf []byte) error { } } else { PlayroomMod.SetGameId(playroom.GAME_TYPE_FILP) - DecorateMod := player.PlayMod.getDecorateMod() - needStar := DecorateMod.GetAreaCost() - highReward := int(float64(needStar) * 0.75) - if highReward < PlayerData.Star { - PlayroomMod.SetGameRewardFlip(max(int(float64(needStar)*0.1), 10), max(int(float64(needStar)*0.3), 50), max(int(float64(needStar)*0.75), 100)) - } else { - PlayroomMod.SetGameRewardFlip(max(10, int(float64(PlayerData.Star)*0.1)), max(50, int(float64(PlayerData.Star)*0.5)), max(PlayerData.Star, 100)) + addNumFunc := func(num int) int { + factor := player.GetOrderFactor() + return int(float64(num)*float64(factor)) / 100 * 100 } + PlayroomMod.SetGameRewardFlip(addNumFunc(100), addNumFunc(500), addNumFunc(2000)) } player.PlayMod.save() player.PlayroomVisit(Targer) From 84cf7df5f8b1a401b3afdff397aed458a39fd808 Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Mon, 23 Mar 2026 11:20:43 +0800 Subject: [PATCH 26/52] =?UTF-8?q?=E8=B0=83=E6=95=B4GC=E5=8F=82=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/server/main.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/server/main.go b/src/server/main.go index d56aa3a8..6243f340 100644 --- a/src/server/main.go +++ b/src/server/main.go @@ -27,8 +27,8 @@ func main() { lconf.CenterAddr = conf.Server.CenterAddr lconf.PendingWriteNum = conf.PendingWriteNum // 当内存>256M时开始GC - debug.SetGCPercent(50) - debug.SetMemoryLimit(512 << 20) + debug.SetGCPercent(200) + debug.SetMemoryLimit(1024 << 20) // 启动 pprof(仅绑定本地) go func() { // 如果需要绑定所有接口改为 ":6060" From de33ba1221989f315110d30619d6452af25e68d8 Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Mon, 23 Mar 2026 18:31:07 +0800 Subject: [PATCH 27/52] =?UTF-8?q?=E7=8C=AB=E5=92=AA=E6=88=8F=E6=B3=95?= =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/server/game/mod/limited_time_event/limited_time_event.go | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/server/game/mod/limited_time_event/limited_time_event.go b/src/server/game/mod/limited_time_event/limited_time_event.go index 410ab9c7..b7ced703 100644 --- a/src/server/game/mod/limited_time_event/limited_time_event.go +++ b/src/server/game/mod/limited_time_event/limited_time_event.go @@ -453,10 +453,11 @@ func (l *LimitedTimeEventMod) GetCatTrickReward() ([]*item.Item, error) { if d.Energy < 100 { return nil, fmt.Errorf("CatTrick energy not enough") } - d.Energy -= 100 + count := d.Energy / 100 + d.Energy = d.Energy % 100 // TODO 放到配置中 return []*item.Item{ - {Id: item.ITEM_DIAMOND_ID, Num: 5}, + {Id: item.ITEM_DIAMOND_ID, Num: 5 * count}, }, nil } From 6d46b9de85c698f00c8edb2ef84a8f63aebc8055 Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Tue, 24 Mar 2026 10:31:01 +0800 Subject: [PATCH 28/52] =?UTF-8?q?=E7=8C=AB=E7=8C=AB=E5=B0=8F=E9=87=91?= =?UTF-8?q?=E5=BA=93=E6=95=B0=E5=80=BC=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/server/game/register_network_func.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/server/game/register_network_func.go b/src/server/game/register_network_func.go index 488429ac..44ec8e1c 100644 --- a/src/server/game/register_network_func.go +++ b/src/server/game/register_network_func.go @@ -3457,7 +3457,7 @@ func ReqPlayroomInfo(player *Player, buf []byte) error { PlayroomMod.SetGameId(playroom.GAME_TYPE_FILP) addNumFunc := func(num int) int { factor := player.GetOrderFactor() - return int(float64(num)*float64(factor)) / 100 * 100 + return int(float64(num)*float64(factor)/100) / 100 * 100 } PlayroomMod.SetGameRewardFlip(addNumFunc(100), addNumFunc(500), addNumFunc(2000)) } From 2aa7947dad691fd33ffe02ac3504448a49e81d7e Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Tue, 24 Mar 2026 14:09:27 +0800 Subject: [PATCH 29/52] =?UTF-8?q?=E7=8C=AB=E5=92=AA=E6=88=8F=E6=B3=95?= =?UTF-8?q?=E5=8F=96=E6=B6=88=E6=98=BE=E7=A4=BA=E6=97=B6=E9=97=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../game/mod/limited_time_event/limited_time_event.go | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/server/game/mod/limited_time_event/limited_time_event.go b/src/server/game/mod/limited_time_event/limited_time_event.go index b7ced703..280652b4 100644 --- a/src/server/game/mod/limited_time_event/limited_time_event.go +++ b/src/server/game/mod/limited_time_event/limited_time_event.go @@ -173,9 +173,9 @@ func (l *LimitedTimeEventMod) Trigger(Lv int) (int, []int, []int) { //删除过期事件 for k, v := range l.EventList { EndTime := v.StartT + v.Remian - if k == EVENT_TYPE_CAT_TRICK { - EndTime += 5 * 60 // 猫咪戏法事件显示时间为5分钟 - } + // if k == EVENT_TYPE_CAT_TRICK { + // EndTime += 5 * 60 // 猫咪戏法事件显示时间为5分钟 + // } if EndTime <= Now { delete(l.EventList, k) TimeoutEvent = append(TimeoutEvent, k) From 36d0eed502523cf2718fbfdf0ea0591ce17e21a1 Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Tue, 24 Mar 2026 14:10:03 +0800 Subject: [PATCH 30/52] =?UTF-8?q?=E7=B3=BB=E7=BB=9F=E5=8F=82=E6=95=B0?= =?UTF-8?q?=E6=8A=BD=E7=A6=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/server/MergeConst/system.go | 6 ++++++ src/server/main.go | 5 +++-- 2 files changed, 9 insertions(+), 2 deletions(-) create mode 100644 src/server/MergeConst/system.go diff --git a/src/server/MergeConst/system.go b/src/server/MergeConst/system.go new file mode 100644 index 00000000..05dae9c4 --- /dev/null +++ b/src/server/MergeConst/system.go @@ -0,0 +1,6 @@ +package MergeConst + +const ( + Go_gc_percent = 200 + Go_gc_memory_limit = 1024 << 20 +) diff --git a/src/server/main.go b/src/server/main.go index 6243f340..9ea8e540 100644 --- a/src/server/main.go +++ b/src/server/main.go @@ -6,6 +6,7 @@ import ( _ "net/http/pprof" "runtime" "runtime/debug" + "server/MergeConst" "server/conf" "server/game" "server/gate" @@ -27,8 +28,8 @@ func main() { lconf.CenterAddr = conf.Server.CenterAddr lconf.PendingWriteNum = conf.PendingWriteNum // 当内存>256M时开始GC - debug.SetGCPercent(200) - debug.SetMemoryLimit(1024 << 20) + debug.SetGCPercent(MergeConst.Go_gc_percent) + debug.SetMemoryLimit(MergeConst.Go_gc_memory_limit) // 启动 pprof(仅绑定本地) go func() { // 如果需要绑定所有接口改为 ":6060" From a4efd1bac1f76b20f463f38e6d3d7b22a6e69fd2 Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Tue, 24 Mar 2026 14:24:23 +0800 Subject: [PATCH 31/52] =?UTF-8?q?playroom=E7=A0=B4=E4=BA=A7=E6=9C=BA?= =?UTF-8?q?=E5=88=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/server/game/message_handler.go | 543 +++++++++++------------ src/server/game/register_network_func.go | 29 +- 2 files changed, 288 insertions(+), 284 deletions(-) diff --git a/src/server/game/message_handler.go b/src/server/game/message_handler.go index f352ee5b..c378ef09 100644 --- a/src/server/game/message_handler.go +++ b/src/server/game/message_handler.go @@ -88,10 +88,6 @@ func (p *Player) handle(m *msg.Msg) error { Type: friend.FRIEND_NOTIFY_AGREE, Time: int32(GoUtil.Now()), }) - // PlayroomMod := p.PlayMod.getPlayroomMod() - // BaseMod := p.PlayMod.getBaseMod() - // PlayroomMod.AddRoomPointAdd(BaseMod.GetLevel()) - // p.PlayroomBackData() p.TeLog("friend_add", map[string]interface{}{ "player_id": m.From, "add_type": "接受申请", @@ -118,14 +114,14 @@ func (p *Player) handle(m *msg.Msg) error { }) case msg.HANDLE_TYPE_REQ_CARD: // 卡牌申请 FriendMod := p.PlayMod.getFriendMod() - CardInfo, ok := m.Extra.(card.CardInfo) + cardInfo, ok := m.Extra.(card.CardInfo) if !ok { return nil } - FriendMod.SetCardInfo(&CardInfo) + FriendMod.SetCardInfo(&cardInfo) p.PushClientRes( &proto.NotifyFriendCard{ - Info: GetCardInfoMsg(&CardInfo), + Info: GetCardInfoMsg(&cardInfo), }, ) case msg.HANDLE_TYPE_FACEBOOK_UNBIND: // facebook解绑 @@ -158,56 +154,56 @@ func (p *Player) handle(m *msg.Msg) error { p.PlayMod.save() p.PushClientRes(InviteMod.NotifySuccess()) case msg.HANDLE_TYPE_SEND_CARD: // B收到A赠送的卡牌 - CardInfo := m.Extra.(card.CardInfo) + cardInfo := m.Extra.(card.CardInfo) FriendMod := p.PlayMod.getFriendMod() - FriendMod.SetCardInfo(&CardInfo) - FriendMod.Interact(CardInfo.AUid, friend.INTERACT_TYPE_CARD, m.SendT) + FriendMod.SetCardInfo(&cardInfo) + FriendMod.Interact(cardInfo.AUid, friend.INTERACT_TYPE_CARD, m.SendT) p.PushClientRes( &proto.NotifyFriendCard{ - Info: GetCardInfoMsg(&CardInfo), + Info: GetCardInfoMsg(&cardInfo), }, ) p.PlayMod.save() case msg.HANDLE_TYPE_EX_CARD_SELECT_TIMEOUT: // A收到B置换卡牌选择超时 - CardInfo := m.Extra.(card.CardInfo) + cardInfo := m.Extra.(card.CardInfo) CardMod := p.PlayMod.getCardMod() - p.AddCard(CardInfo.CardId) - CardMod.DelExCard(&CardInfo) + p.AddCard(cardInfo.CardId) + CardMod.DelExCard(&cardInfo) p.PushClientRes(CardMod.NotifyCard()) p.PushClientRes(CardMod.NotifyTimes()) case msg.HANDLE_TYPE_EX_CARD_TIMEOUT: // B收到A同意置换卡牌超时 - CardInfo, ok := m.Extra.(card.CardInfo) + cardInfo, ok := m.Extra.(card.CardInfo) if !ok { return nil } CardMod := p.PlayMod.getCardMod() - p.AddCard(CardInfo.ExId) + p.AddCard(cardInfo.ExId) p.PushClientRes(CardMod.NotifyCard()) p.PushClientRes(CardMod.NotifyTimes()) case msg.HANDLE_TYPE_REG_CARD_FINISH, msg.HANDLE_TYPE_AGREE_CARD_FAIL: // B收到A的请求已结束 - CardInfo, ok := m.Extra.(card.CardInfo) + cardInfo, ok := m.Extra.(card.CardInfo) if !ok { return nil } FriendMod := p.PlayMod.getFriendMod() - FriendMod.DelCardInfo(CardInfo.Id) + FriendMod.DelCardInfo(cardInfo.Id) p.PushClientRes( &proto.NotifyFriendCard{ - Info: GetCardInfoMsg(&CardInfo), + Info: GetCardInfoMsg(&cardInfo), }, ) p.PlayMod.save() case msg.HANDLE_TYPE_AGREE_CARD: // A收到B同意卡牌 - CardInfo, ok := m.Extra.(card.CardInfo) + cardInfo, ok := m.Extra.(card.CardInfo) if !ok { return nil } CardMod := p.PlayMod.getCardMod() - OtherUid, err := CardMod.DelRequestCard(CardInfo.BUid) + OtherUid, err := CardMod.DelRequestCard(cardInfo.BUid) FriendMod := p.PlayMod.getFriendMod() - FriendMod.SetCardInfo(&CardInfo) + FriendMod.SetCardInfo(&cardInfo) if err != nil { // 同意失败,请求已失效 - msg := &msg.Msg{Type: msg.HANDLE_TYPE_AGREE_CARD_FAIL, From: CardInfo.AUid, End: CardInfo.EndTime, Extra: CardInfo} + msg := &msg.Msg{Type: msg.HANDLE_TYPE_AGREE_CARD_FAIL, From: cardInfo.AUid, End: cardInfo.EndTime, Extra: cardInfo} FriendMgrSend(msg) return nil } @@ -219,83 +215,83 @@ func (p *Player) handle(m *msg.Msg) error { p.PlayMod.save() p.PushClientRes( &proto.NotifyFriendCard{ - Info: GetCardInfoMsg(&CardInfo), + Info: GetCardInfoMsg(&cardInfo), }, ) p.PushClientRes(CardMod.NotifyTimes()) case msg.HANDLE_TYPE_REG_CARD_REFUSE: // A收到B拒绝索要卡牌 - CardInfo, ok := m.Extra.(card.CardInfo) + cardInfo, ok := m.Extra.(card.CardInfo) if !ok { return nil } CardMod := p.PlayMod.getCardMod() - CardMod.DelRequestCard(CardInfo.BUid) - CardMod.AddReqTimes(CardInfo.Id, CardInfo.StartTime) + CardMod.DelRequestCard(cardInfo.BUid) + CardMod.AddReqTimes(cardInfo.Id, cardInfo.StartTime) p.PlayMod.save() p.PushClientRes(CardMod.NotifyTimes()) p.PushClientRes(CardMod.NotifyCard()) case msg.HANDLE_TYPE_EX_CARD: // B收到A置换卡牌 FriendMod := p.PlayMod.getFriendMod() - CardInfo, ok := m.Extra.(card.CardInfo) + cardInfo, ok := m.Extra.(card.CardInfo) if !ok { return nil } - FriendMod.SetCardInfo(&CardInfo) - FriendMod.Interact(CardInfo.AUid, friend.INTERACT_TYPE_EX, m.SendT) + FriendMod.SetCardInfo(&cardInfo) + FriendMod.Interact(cardInfo.AUid, friend.INTERACT_TYPE_EX, m.SendT) p.PlayMod.save() p.PushClientRes( &proto.NotifyFriendCard{ - Info: GetCardInfoMsg(&CardInfo), + Info: GetCardInfoMsg(&cardInfo), }, ) case msg.HANDLE_TYPE_SELECT_EX_CARD: // A收到B选择卡牌进行置换 FriendMod := p.PlayMod.getFriendMod() - CardInfo, ok := m.Extra.(card.CardInfo) + cardInfo, ok := m.Extra.(card.CardInfo) if !ok { return nil } - FriendMod.SetCardInfo(&CardInfo) + FriendMod.SetCardInfo(&cardInfo) p.PlayMod.save() p.PushClientRes( &proto.NotifyFriendCard{ - Info: GetCardInfoMsg(&CardInfo), + Info: GetCardInfoMsg(&cardInfo), }, ) case msg.HANDLE_TYPE_ARGREE_EX_CARD: // B收到A同意置换卡牌 - CardInfo, ok := m.Extra.(card.CardInfo) + cardInfo, ok := m.Extra.(card.CardInfo) if !ok { return nil } FriendMod := p.PlayMod.getFriendMod() - FriendMod.SetCardInfo(&CardInfo) + FriendMod.SetCardInfo(&cardInfo) p.PushClientRes( &proto.NotifyFriendCard{ - Info: GetCardInfoMsg(&CardInfo), + Info: GetCardInfoMsg(&cardInfo), }, ) p.PlayMod.save() case msg.HANDLE_TYPE_REFUSE_SELECT_CARD: // A收到B拒绝置换卡牌 CardMod := p.PlayMod.getCardMod() - CardInfo, ok := m.Extra.(card.CardInfo) + cardInfo, ok := m.Extra.(card.CardInfo) if !ok { return nil } - CardMod.AddExTimes(&CardInfo) - p.AddCard(CardInfo.CardId) - CardMod.DelExCard(&CardInfo) + CardMod.AddExTimes(&cardInfo) + p.AddCard(cardInfo.CardId) + CardMod.DelExCard(&cardInfo) p.PushClientRes(CardMod.NotifyCard()) p.PushClientRes(CardMod.NotifyTimes()) p.PlayMod.save() case msg.HANDLE_TYPE_REFUSE_EX_CARD: // B收到A拒绝置换卡牌 CardMod := p.PlayMod.getCardMod() - CardInfo, ok := m.Extra.(card.CardInfo) + cardInfo, ok := m.Extra.(card.CardInfo) if !ok { return nil } - p.AddCard(CardInfo.ExId) + p.AddCard(cardInfo.ExId) FriendMod := p.PlayMod.getFriendMod() - FriendMod.DelCardInfo(CardInfo.Id) - if cardCfg.CheckCardIsGold(CardInfo.CardId) || cardCfg.CheckCardIsGold(CardInfo.ExId) { + FriendMod.DelCardInfo(cardInfo.Id) + if cardCfg.CheckCardIsGold(cardInfo.CardId) || cardCfg.CheckCardIsGold(cardInfo.ExId) { CardMod.AddGoldTimes() } p.PlayMod.save() @@ -311,58 +307,67 @@ func (p *Player) handle(m *msg.Msg) error { SyncMailMsg(p) case msg.HANDLE_TYPE_PLAYROOM_LOSE: // # 玩家输了 PlayroomMod := p.PlayMod.getPlayroomMod() - Items := m.Item - GameId := playroom.GAME_TYPE_HOOK - Emoji := 0 + gameId := playroom.GAME_TYPE_HOOK + emoji := 0 if m.Extra != nil { if val, ok := m.Extra.(GameResult); ok { - GameId = val.T - Emoji = val.Emoji + gameId = val.T + emoji = val.Emoji } } - if len(Items) == 0 { + if len(m.Item) == 0 { return nil } - if GameId == playroom.GAME_TYPE_HOOK || GameId == playroom.GAME_TYPE_HIDE { - PlayroomMod.AddChip(m.From, m.SendT, Emoji) - p.AddLog(m.From, friend.LOG_TYPE_PLAYROOM_CAT_WIN, fmt.Sprintf("%d_%d_%d", Items[0].Id, Items[0].Num, Emoji), m.SendT) + var broken bool + if gameId == playroom.GAME_TYPE_HOOK || gameId == playroom.GAME_TYPE_HIDE { + PlayroomMod.AddChip(m.From, m.SendT, emoji) + p.AddLog(m.From, friend.LOG_TYPE_PLAYROOM_CAT_WIN, fmt.Sprintf("%d_%d_%d", m.Item[0].Id, m.Item[0].Num, emoji), m.SendT) } else { - p.AddLog(m.From, friend.LOG_TYPE_PLAYROOM_VISIT, fmt.Sprintf("%d_%d_%d", Items[0].Id, Items[0].Num, Emoji), m.SendT) + p.AddLog(m.From, friend.LOG_TYPE_PLAYROOM_VISIT, fmt.Sprintf("%d_%d_%d", m.Item[0].Id, m.Item[0].Num, emoji), m.SendT) } PlayroomMod.AddMood(playroom.MOOD_TYPE_FOOD, -50) PlayroomMod.AddMood(playroom.MOOD_TYPE_CLEAN, -50) PlayroomMod.AddVisitor(m.From, m.SendT) - if Items[0].Id == item.ITEM_STAR_ID { + if m.Item[0].Id == item.ITEM_STAR_ID { BaseMod := p.PlayMod.getBaseMod() - StarNum := BaseMod.GetStar() - Items[0].Num = min(Items[0].Num, StarNum) - p.HandleLoseItem(Items, "HANDLE_TYPE_PLAYROOM_LOSE") + starNum := BaseMod.GetStar() + m.Item[0].Num = min(m.Item[0].Num, starNum) + if m.Item[0].Num >= starNum { + broken = true + } + p.HandleLoseItem(m.Item, "HANDLE_TYPE_PLAYROOM_LOSE") } else { - PlayroomMod.Lose(Items) + PlayroomMod.Lose(m.Item) + } + if broken { + playerSimpleData := G_GameLogicPtr.GetResSimplePlayerByUid(m.From) + p.PushClientRes(&proto.NotifyPlayroomBroken{ + Player: playerSimpleData, + }) } FriendMod := p.PlayMod.getFriendMod() FriendMod.Interact(m.From, friend.INTERACT_TYPE_VISIT, m.SendT) p.UpdateUserInfo() - p.TeLog("playroom_lost", map[string]interface{}{"uid": m.From, "item": Items}) + p.TeLog("playroom_lost", map[string]interface{}{"uid": m.From, "item": m.Item}) p.PushClientRes(PlayroomMod.NotifyLose()) case msg.HANDLE_TYPE_PLAYROOM_GAME: FriendMod := p.PlayMod.getFriendMod() - Emoji := 0 + emoji := 0 if m.Extra != nil { if val, ok := m.Extra.(GameResult); ok { - Emoji = val.Emoji + emoji = val.Emoji } } - p.AddLog(m.From, friend.LOG_TYPE_PLAYROOM_CAT_LOSE, fmt.Sprintf("%d", Emoji), m.SendT) + p.AddLog(m.From, friend.LOG_TYPE_PLAYROOM_CAT_LOSE, fmt.Sprintf("%d", emoji), m.SendT) FriendMod.Interact(m.From, friend.INTERACT_TYPE_VISIT, m.SendT) case msg.FRIEND_TREASURE_HANDLE: // # 好友宝藏 - Items, ok := m.Extra.([]*item.Item) + items, ok := m.Extra.([]*item.Item) if !ok { - Items = []*item.Item{} + items = []*item.Item{} } p.AddLog(m.From, friend.LOG_TYPE_TREASURE_HELP, "", m.SendT) - p.HandleItem(Items, proto.ITEM_POP_LABEL_Friendtreasure.String()) + p.HandleItem(items, proto.ITEM_POP_LABEL_Friendtreasure.String()) case msg.HANDLE_TYPE_HANDBOOK_COLLECTION: // 图鉴收集奖励 if m.Extra == nil { return nil @@ -384,13 +389,13 @@ func (p *Player) handle(m *msg.Msg) error { PlayerSimpleData := G_GameLogicPtr.GetResSimplePlayerByUid(m.From) MailMod := p.PlayMod.getMailMod() mt, mc, mt_en, mc_en := mailCfg.GetChargeSendMail(PlayerSimpleData.Name) - Items := p.ChargeItem(C.ChargeId) + items := p.ChargeItem(C.ChargeId) mailId := MailMod.SendMail(&mail.MailStruct{ Title: mt, Content: mc, TitleEn: mt_en, ContentEn: mc_en, - Items: Items, + Items: items, Type: mail.MAIL_TYPE_GIFT, }) p.AddLog(m.From, friend.LOG_TYPE_CHARGE_SEND, fmt.Sprintf("%d", mailId), m.SendT) @@ -431,83 +436,83 @@ func (p *Player) handle(m *msg.Msg) error { p.NotifyPlayroomKiss() case msg.HANDLE_TYPE_CATNIP_INVITE: // 邀请好友参与猫咪游戏 CatnipMod := p.PlayMod.getCatnipMod() - CatnipMsg, ok := m.Extra.(CatnipMsg) + catnipMsg, ok := m.Extra.(CatnipMsg) if !ok { return nil } - ActivityId := p.GetActivityId(activity.ACT_TYPE_CATNIP) - if ActivityId != CatnipMsg.ActivityId { // 活动ID不匹配 + activityId := p.GetActivityId(activity.ACT_TYPE_CATNIP) + if activityId != catnipMsg.ActivityId { // 活动ID不匹配 return nil } CatnipMod.BeInvited(int(m.From), m.SendT) FriendMod := p.PlayMod.getFriendMod() - ReplyInfo := FriendMod.AddReplyInfo(m.From, friend.REPLY_TYPE_CATNIP, fmt.Sprintf("%d", CatnipMsg.GameId), m.End, nil) + replyInfo := FriendMod.AddReplyInfo(m.From, friend.REPLY_TYPE_CATNIP, fmt.Sprintf("%d", catnipMsg.GameId), m.End, nil) PlayerSimpleData := G_GameLogicPtr.GetResSimplePlayerByUid(m.From) p.PushClientRes(&proto.ResFriendReplyNotify{ Info: &proto.ResFriendReply{ Player: PlayerSimpleData, - Param: ReplyInfo.Param, - Type: int32(ReplyInfo.Type), - Id: int32(ReplyInfo.Id), + Param: replyInfo.Param, + Type: int32(replyInfo.Type), + Id: int32(replyInfo.Id), }, Type: int32(friend.REPLY_TYPE_CATNIP), Time: int32(m.SendT), }) case msg.HANDLE_TYPE_CATNIP_AGREE: // 同意好友参与猫咪游戏 CatnipMod := p.PlayMod.getCatnipMod() - CatnipMsg, ok := m.Extra.(CatnipMsg) + catnipMsg, ok := m.Extra.(CatnipMsg) if !ok { return nil } - ActivityId := p.GetActivityId(activity.ACT_TYPE_CATNIP) - if ActivityId != CatnipMsg.ActivityId { // 活动ID不匹配 + activityId := p.GetActivityId(activity.ACT_TYPE_CATNIP) + if activityId != catnipMsg.ActivityId { // 活动ID不匹配 return nil } - CatnipMod.BeAgree(CatnipMsg.GameId, int(m.From)) + CatnipMod.BeAgree(catnipMsg.GameId, int(m.From)) case msg.HANDLE_TYPE_CATNIP_AGREE_DEL: // 同意好友参与猫咪游戏后删除邀请 CatnipMod := p.PlayMod.getCatnipMod() - CatnipMsg, ok := m.Extra.(CatnipMsg) + catnipMsg, ok := m.Extra.(CatnipMsg) if !ok { return nil } - ActivityId := p.GetActivityId(activity.ACT_TYPE_CATNIP) - if ActivityId != CatnipMsg.ActivityId { // 活动ID不匹配 + activityId := p.GetActivityId(activity.ACT_TYPE_CATNIP) + if activityId != catnipMsg.ActivityId { // 活动ID不匹配 return nil } - CatnipMod.DelInvited(CatnipMsg.GameId, int(m.From)) + CatnipMod.DelInvited(catnipMsg.GameId, int(m.From)) case msg.HANDLE_TYPE_CATNIP_REFUSE: // 拒绝好友参与猫咪游戏 CatnipMod := p.PlayMod.getCatnipMod() - CatnipMsg, ok := m.Extra.(CatnipMsg) + catnipMsg, ok := m.Extra.(CatnipMsg) if !ok { return nil } - ActivityId := p.GetActivityId(activity.ACT_TYPE_CATNIP) - if ActivityId != CatnipMsg.ActivityId { // 活动ID不匹配 + activityId := p.GetActivityId(activity.ACT_TYPE_CATNIP) + if activityId != catnipMsg.ActivityId { // 活动ID不匹配 return nil } - CatnipMod.DelInvited(CatnipMsg.GameId, int(m.From)) + CatnipMod.DelInvited(catnipMsg.GameId, int(m.From)) case msg.HANDLE_TYPE_CATNIP_GROWTH: CatnipMod := p.PlayMod.getCatnipMod() - CatnipMsg, ok := m.Extra.(CatnipMsg) + catnipMsg, ok := m.Extra.(CatnipMsg) if !ok { return nil } - ActivityId := p.GetActivityId(activity.ACT_TYPE_CATNIP) - if ActivityId != CatnipMsg.ActivityId { // 活动ID不匹配 + activityId := p.GetActivityId(activity.ACT_TYPE_CATNIP) + if activityId != catnipMsg.ActivityId { // 活动ID不匹配 return nil } - CatnipMod.GrowthByUid(m.From, CatnipMsg.Growth) - if CatnipMsg.FriendItems > 0 { - Items := catnipCfg.GetItemCost(ActivityId, CatnipMsg.FriendItems) + CatnipMod.GrowthByUid(m.From, catnipMsg.Growth) + if catnipMsg.FriendItems > 0 { + Items := catnipCfg.GetItemCost(activityId, catnipMsg.FriendItems) FriendMod := p.PlayMod.getFriendMod() - ReplyInfo := FriendMod.AddReplyInfo(m.From, friend.REPLY_TYPE_CATNIP_ITEMS, "", m.End, Items) + replyInfo := FriendMod.AddReplyInfo(m.From, friend.REPLY_TYPE_CATNIP_ITEMS, "", m.End, Items) PlayerSimpleData := G_GameLogicPtr.GetResSimplePlayerByUid(m.From) p.PushClientRes(&proto.ResFriendReplyNotify{ Info: &proto.ResFriendReply{ Player: PlayerSimpleData, - Param: ReplyInfo.Param, - Type: int32(ReplyInfo.Type), - Id: int32(ReplyInfo.Id), + Param: replyInfo.Param, + Type: int32(replyInfo.Type), + Id: int32(replyInfo.Id), }, Type: int32(friend.REPLY_TYPE_CATNIP_ITEMS), Time: int32(m.SendT), @@ -516,8 +521,8 @@ func (p *Player) handle(m *msg.Msg) error { p.CatnipBackData() case msg.HANDLE_TYPE_CATNIP_SEND_EMOJI: CatnipMod := p.PlayMod.getCatnipMod() - EmojiId := GoUtil.Int(m.Extra) - CatnipMod.SetEmoji(m.From, EmojiId) + emojiId := GoUtil.Int(m.Extra) + CatnipMod.SetEmoji(m.From, emojiId) p.CatnipBackData() case msg.HANDLE_TYPE_FRIEND_GREETING_REPLY: FriendMod := p.PlayMod.getFriendMod() @@ -592,9 +597,9 @@ func (p *Player) handle(m *msg.Msg) error { } func SyncMailMsg(p *Player) { - ServerMailList := G_GameLogicPtr.MailMgr.Sync(int(p.M_DwUin), p.GetPlayerBaseMod().GetRegisterTime()) + serverMailList := G_GameLogicPtr.MailMgr.Sync(int(p.M_DwUin), p.GetPlayerBaseMod().GetRegisterTime()) MailMod := p.PlayMod.getMailMod() - for _, v := range ServerMailList { + for _, v := range serverMailList { if GoUtil.InArray(v.Id, MailMod.ServerMail) { continue } @@ -616,14 +621,14 @@ func SyncMailMsg(p *Player) { } func (p *Player) CatnipGrowthMsg(To, Id, Growth, FriendItems int) error { - ActivityId := p.GetActivityId(activity.ACT_TYPE_CATNIP) + activityId := p.GetActivityId(activity.ACT_TYPE_CATNIP) FriendMgrSend(&msg.Msg{ From: int(p.M_DwUin), To: To, Type: msg.HANDLE_TYPE_CATNIP_GROWTH, SendT: GoUtil.Now(), Extra: CatnipMsg{ - ActivityId: ActivityId, + ActivityId: activityId, GameId: Id, Growth: Growth, FriendItems: FriendItems, @@ -637,76 +642,76 @@ func ClusterSendMsg(ServerId int, m *msg.Msg) { mergeCluster.SendServerMsg(m, ServerId) } -func GetCardInfoMsg(CardInfo *card.CardInfo) *proto.ResFriendCard { - Uid := 0 - if CardInfo.Type == card.TYPE_CARD_SEND { - Uid = CardInfo.AUid +func GetCardInfoMsg(cardInfo *card.CardInfo) *proto.ResFriendCard { + uid := 0 + if cardInfo.Type == card.TYPE_CARD_SEND { + uid = cardInfo.AUid } - if CardInfo.Type == card.TYPE_CARD_GIVE { - if CardInfo.Status == card.STATUS_CARD_GIVE_1 { - Uid = CardInfo.AUid + if cardInfo.Type == card.TYPE_CARD_GIVE { + if cardInfo.Status == card.STATUS_CARD_GIVE_1 { + uid = cardInfo.AUid } else { - Uid = CardInfo.BUid + uid = cardInfo.BUid } } - if CardInfo.Type == card.TYPE_CARD_EX { - if CardInfo.Status == card.STATUS_CARD_EX_2 { - Uid = CardInfo.AUid + if cardInfo.Type == card.TYPE_CARD_EX { + if cardInfo.Status == card.STATUS_CARD_EX_2 { + uid = cardInfo.AUid } else { - Uid = CardInfo.BUid + uid = cardInfo.BUid } } - ps := G_GameLogicPtr.GetSimplePlayerByUid(Uid) + ps := G_GameLogicPtr.GetSimplePlayerByUid(uid) if ps == nil { return &proto.ResFriendCard{} } return &proto.ResFriendCard{ - Uid: int64(Uid), + Uid: int64(uid), Name: ps.Name, Face: int32(ps.Face), Avatar: int32(ps.Avatar), Level: int32(ps.Level), - CardId: int32(CardInfo.CardId), - ExCardId: int32(CardInfo.ExId), - Time: int32(CardInfo.StartTime), - Type: int32(CardInfo.Type), - Status: int32(CardInfo.Status), - Id: CardInfo.Id, - Emoji: int32(CardInfo.Emoji), + CardId: int32(cardInfo.CardId), + ExCardId: int32(cardInfo.ExId), + Time: int32(cardInfo.StartTime), + Type: int32(cardInfo.Type), + Status: int32(cardInfo.Status), + Id: cardInfo.Id, + Emoji: int32(cardInfo.Emoji), } } // 发射器退役第一步 不再生成此发射器订单 func (p *Player) EmitRetireTrigger1() { ChessMod := p.PlayMod.getChessMod() - EmitList := ChessMod.GetEmitList() - EmitId := make(map[string]struct{}) - for _, v := range EmitList { - Emit_Id := mergeDataCfg.GetEmitId(v) - if Emit_Id == "" { + emitList := ChessMod.GetEmitList() + emitId := make(map[string]struct{}) + for _, v := range emitList { + emit_Id := mergeDataCfg.GetEmitId(v) + if emit_Id == "" { continue } - EmitId[Emit_Id] = struct{}{} + emitId[emit_Id] = struct{}{} } - var EmitId1 []string - for k := range EmitId { - EmitId1 = append(EmitId1, k) + var emitId1 []string + for k := range emitId { + emitId1 = append(emitId1, k) } - if len(EmitId1) <= 5 { + if len(emitId1) <= 5 { return } - sort.Slice(EmitId1, func(i, j int) bool { - return EmitId1[i] < EmitId1[j] + sort.Slice(emitId1, func(i, j int) bool { + return emitId1[i] < emitId1[j] }) OrderMod := p.PlayMod.getOrderMod() - OrderMod.Retire(EmitId1[0]) + OrderMod.Retire(emitId1[0]) p.TeLog("launcher_retire", map[string]interface{}{ - "launcher_type": EmitId1[0], + "launcher_type": emitId1[0], }) - ChessMod.BeginRetire(EmitId1[0]) + ChessMod.BeginRetire(emitId1[0]) } // 发射器退役第二步 生成清理订单 @@ -714,12 +719,12 @@ func (p *Player) EmitRetireTrigger2() { ChessMod := p.PlayMod.getChessMod() OrderMod := p.PlayMod.getOrderMod() BaseMod := p.PlayMod.getBaseMod() - OrderList := OrderMod.GetOrderList() - AllChess := make(map[string]struct{}) - for _, v := range OrderList { + orderList := OrderMod.GetOrderList() + allChess := make(map[string]struct{}) + for _, v := range orderList { for _, v1 := range v.MergeId { Color := mergeDataCfg.GetColorById(v1) - AllChess[Color] = struct{}{} + allChess[Color] = struct{}{} } } RetireEmit := ChessMod.GetRetireEmit() @@ -738,7 +743,7 @@ func (p *Player) EmitRetireTrigger2() { NeedFinishOrder := false Produce := mergeDataCfg.GetEmitOrderProduce(k) for _, v1 := range Produce { - if _, ok := AllChess[v1]; ok { + if _, ok := allChess[v1]; ok { NeedFinishOrder = true break } @@ -748,7 +753,7 @@ func (p *Player) EmitRetireTrigger2() { } ChessMod.RetireOrder(k) } - for _, v := range OrderList { + for _, v := range orderList { if v.Type == order.Clean_type { return } @@ -802,13 +807,13 @@ func (player *Player) GetPetOrderItemExp() int { itemList := make([]*item.Item, 0) ItemMod := player.PlayMod.getItemMod() for _, v := range OrderItemCfgList { - Num := ItemMod.GetItem(v) - if Num <= 0 { + num := ItemMod.GetItem(v) + if num <= 0 { continue } itemList = append(itemList, &item.Item{ Id: v, - Num: Num, + Num: num, }) } return playroomCfg.GetPetOrderItemExpByList(itemList) @@ -817,11 +822,11 @@ func (player *Player) GetPetOrderItemExp() int { // 触发生成新的固定订单 func (player *Player) TriggerOrder(lv int, Type string, Emit []int, EnergyMul int) error { OrderMod := player.PlayMod.getOrderMod() - TriggerOrderList := orderCfg.GetStartOrderList() - FixedOrder := 0 + triggerOrderList := orderCfg.GetStartOrderList() + fixedOrder := 0 for _, v := range OrderMod.OrderList { if v.Type == order.Fixed_type { - FixedOrder++ + fixedOrder++ } } OrderList := make(map[int]order.Order, len(OrderMod.OrderList)) @@ -829,7 +834,7 @@ func (player *Player) TriggerOrder(lv int, Type string, Emit []int, EnergyMul in OrderList[k] = v } // 触发生成新的固定订单 - for _, v := range TriggerOrderList { + for _, v := range triggerOrderList { if GoUtil.InArray(v.Id, OrderMod.FinishOrder) { continue } @@ -839,13 +844,13 @@ func (player *Player) TriggerOrder(lv int, Type string, Emit []int, EnergyMul in } // 预览条件不为空且未存在且未完成 if v.Preview != "" && !exists && !GoUtil.InArray(v.Id, OrderMod.FinishOrder) { - if OrderMod.CheckCondition(lv, v.Preview, Type, Emit, FixedOrder, OrderList) { + if OrderMod.CheckCondition(lv, v.Preview, Type, Emit, fixedOrder, OrderList) { OrderMod.AddFixOrder(v.Id, v.MergeList, order.Preview_type, v.Items) } } if v.Appear != "" { - if OrderMod.CheckCondition(lv, v.Appear, Type, Emit, FixedOrder, OrderList) { + if OrderMod.CheckCondition(lv, v.Appear, Type, Emit, fixedOrder, OrderList) { Type := order.Fixed_type OrderType := orderCfg.GetOrderType(v.Id) if OrderType != 0 { @@ -880,20 +885,20 @@ func (player *Player) AddOrder() { BaseMod := player.PlayMod.getBaseMod() OrderMod := player.PlayMod.getOrderMod() ChessMod := player.PlayMod.getChessMod() - MaxOrderNum := orderCfg.GetOrderNum(BaseMod.GetLevel()) + maxOrderNum := orderCfg.GetOrderNum(BaseMod.GetLevel()) n := 0 if OrderMod.LastOrder.Type == order.Preheat_type { - ChessId := OrderMod.LastOrder.MergeId[0] - ChessColor := mergeDataCfg.GetColorById(ChessId) - PreheatStep := OrderMod.PreheatStep[ChessColor] - OrderMod.PreheatStep[ChessColor]++ - if PreheatStep < 4 { - NewChessId := mergeDataCfg.GetChessIdByLvAndColor(BaseMod.GetEnergyMul()+PreheatStep+1, ChessColor) - Items, ok := order.PreheatItems[OrderMod.PreheatStep[ChessColor]] + chessId := OrderMod.LastOrder.MergeId[0] + chessColor := mergeDataCfg.GetColorById(chessId) + preheatStep := OrderMod.PreheatStep[chessColor] + OrderMod.PreheatStep[chessColor]++ + if preheatStep < 4 { + newChessId := mergeDataCfg.GetChessIdByLvAndColor(BaseMod.GetEnergyMul()+preheatStep+1, chessColor) + items, ok := order.PreheatItems[OrderMod.PreheatStep[chessColor]] if !ok { - Items = []*item.Item{item.NewItem(item.ITEM_STAR_ID, order.GetOrderStar([]int{NewChessId}, ChessMod.GetStarEmitList()))} + items = []*item.Item{item.NewItem(item.ITEM_STAR_ID, order.GetOrderStar([]int{newChessId}, ChessMod.GetStarEmitList()))} } - OrderMod.AddPreheatOrder([]int{NewChessId}, order.DIFF_LOW, order.Preheat_type, Items) + OrderMod.AddPreheatOrder([]int{newChessId}, order.DIFF_LOW, order.Preheat_type, items) } } for _, v := range OrderMod.OrderList { @@ -901,7 +906,7 @@ func (player *Player) AddOrder() { n++ } } - for i := n; i < MaxOrderNum; i++ { + for i := n; i < maxOrderNum; i++ { player.CreateNormalOrder() } } @@ -914,28 +919,28 @@ func (player *Player) FixOrderBug() { if v > 4 { continue } - Exit := false + exit := false for _, o := range OrderMod.OrderList { if o.Type != order.Preheat_type { continue } - Color := mergeDataCfg.GetColorById(o.MergeId[0]) - if Color == k { - Exit = true + color := mergeDataCfg.GetColorById(o.MergeId[0]) + if color == k { + exit = true break } } - if Exit { + if exit { continue } - NewChessId := mergeDataCfg.GetChessIdByLvAndColor(BaseMod.GetEnergyMul()+v+1, k) + newChessId := mergeDataCfg.GetChessIdByLvAndColor(BaseMod.GetEnergyMul()+v+1, k) OrderMod.PreheatStep[k]++ - Items, ok := order.PreheatItems[OrderMod.PreheatStep[k]] + items, ok := order.PreheatItems[OrderMod.PreheatStep[k]] if !ok { - Items = []*item.Item{item.NewItem(item.ITEM_STAR_ID, order.GetOrderStar([]int{NewChessId}, ChessMod.GetStarEmitList()))} + items = []*item.Item{item.NewItem(item.ITEM_STAR_ID, order.GetOrderStar([]int{newChessId}, ChessMod.GetStarEmitList()))} } - OrderMod.AddPreheatOrder([]int{NewChessId}, order.DIFF_LOW, order.Preheat_type, Items) + OrderMod.AddPreheatOrder([]int{newChessId}, order.DIFF_LOW, order.Preheat_type, items) } } @@ -1008,14 +1013,14 @@ func (player *Player) CreatePetOrder() { BaseMod := player.PlayMod.getBaseMod() ChessMod := player.PlayMod.getChessMod() OrderMod := player.PlayMod.getOrderMod() - PetTrigger := true + petTrigger := true for _, v := range OrderMod.GetOrderList() { if v.Type == order.Pet_type { - PetTrigger = false + petTrigger = false break } } - if PetTrigger && BaseMod.GetLevel() >= 17 { + if petTrigger && BaseMod.GetLevel() >= 17 { OrderMod.CreateOrder(BaseMod.GetLevel(), ChessMod.GetOrderEmit(), BaseMod.GetEnergyMul(), order.Pet_type) for k, v := range OrderMod.GetOrderList() { if len(v.Items) != 0 { @@ -1024,16 +1029,16 @@ func (player *Player) CreatePetOrder() { if v.Type != order.Pet_type { continue } - var Items []*item.Item + var items []*item.Item Star := order.GetOrderStar(v.MergeId, ChessMod.GetStarEmitList()) // Star = int(float64(Star)*float64(OrderFactor)/1000) * 10 - Items = player.GetPetOrderReward(Star, Items) - if len(Items) == 1 && Items[0].Id == item.ITEM_STAR_ID { + items = player.GetPetOrderReward(Star, items) + if len(items) == 1 && items[0].Id == item.ITEM_STAR_ID { v.Type = order.Common_type } else { v.Type = order.Pet_type } - v.Items = Items + v.Items = items OrderMod.OrderList[k] = v } return @@ -1041,43 +1046,43 @@ func (player *Player) CreatePetOrder() { } func (player *Player) CreateNormalOrder() { - Exp, PExp := userCfg.GetLevUpExp(player.GetPlayerBaseMod().GetLevel()) + exp, pExp := userCfg.GetLevUpExp(player.GetPlayerBaseMod().GetLevel()) BaseMod := player.PlayMod.getBaseMod() DecorateMod := player.PlayMod.getDecorateMod() ChessMod := player.PlayMod.getChessMod() - OrderFactor := orderCfg.GetOrderFactor(DecorateMod.GetAreaId()) - ExpCoin := (Exp-BaseMod.GetExp())*decorateCfg.GetAreaPerPExp(DecorateMod.GetAreaId()) - BaseMod.GetStar() - PExpCoin := (PExp-BaseMod.GetPExp())*50 - player.GetPetOrderItemExp() + orderFactor := orderCfg.GetOrderFactor(DecorateMod.GetAreaId()) + expCoin := (exp-BaseMod.GetExp())*decorateCfg.GetAreaPerPExp(DecorateMod.GetAreaId()) - BaseMod.GetStar() + pExpCoin := (pExp-BaseMod.GetPExp())*50 - player.GetPetOrderItemExp() OrderMod := player.PlayMod.getOrderMod() // 预热订单 // 安慰订单 - Now := GoUtil.Now() - if OrderMod.LastOrder.Type == order.COMFORT_TYPE && Now < int64(OrderMod.ComfortEndTime) { + now := GoUtil.Now() + if OrderMod.LastOrder.Type == order.COMFORT_TYPE && now < int64(OrderMod.ComfortEndTime) { OrderMod.CreateOrder(BaseMod.GetLevel(), ChessMod.GetOrderEmit(), BaseMod.GetEnergyMul(), order.COMFORT_TYPE) for k, v := range OrderMod.GetOrderList() { if k == OrderMod.Auto_id { if v.Type != order.COMFORT_TYPE { continue } - Star := order.GetOrderStar(v.MergeId, ChessMod.GetStarEmitList()) - Star = int(float64(Star)*float64(OrderFactor)/1000) * 10 - v.Items = []*item.Item{{Id: item.ITEM_STAR_ID, Num: Star}} + star := order.GetOrderStar(v.MergeId, ChessMod.GetStarEmitList()) + star = int(float64(star)*float64(orderFactor)/1000) * 10 + v.Items = []*item.Item{{Id: item.ITEM_STAR_ID, Num: star}} OrderMod.OrderList[k] = v } } return } - PetTrigger := true + petTrigger := true for _, v := range OrderMod.GetOrderList() { if v.Type == order.Pet_type { - PetTrigger = false + petTrigger = false break } } - if PExpCoin > ExpCoin && PetTrigger && BaseMod.GetLevel() >= 17 { + if pExpCoin > expCoin && petTrigger && BaseMod.GetLevel() >= 17 { OrderMod.CreateOrder(BaseMod.GetLevel(), ChessMod.GetOrderEmit(), BaseMod.GetEnergyMul(), order.Pet_type) for k, v := range OrderMod.GetOrderList() { if len(v.Items) != 0 { @@ -1086,37 +1091,37 @@ func (player *Player) CreateNormalOrder() { if v.Type != order.Pet_type { continue } - var Items []*item.Item - Star := order.GetOrderStar(v.MergeId, ChessMod.GetStarEmitList()) + var items []*item.Item + star := order.GetOrderStar(v.MergeId, ChessMod.GetStarEmitList()) // Star = int(float64(Star)*float64(OrderFactor)/1000) * 10 - Items = player.GetPetOrderReward(Star, Items) - if len(Items) == 1 && Items[0].Id == item.ITEM_STAR_ID { + items = player.GetPetOrderReward(star, items) + if len(items) == 1 && items[0].Id == item.ITEM_STAR_ID { v.Type = order.Common_type } else { v.Type = order.Pet_type } - v.Items = Items + v.Items = items OrderMod.OrderList[k] = v } return } // 触发式订单 满足条件生成零件订单 - PartCost := DecorateMod.GetPartCost() - PartBag := ChessMod.GetPartBag() - Trigger := true + partCost := DecorateMod.GetPartCost() + partBag := ChessMod.GetPartBag() + trigger := true for _, v := range OrderMod.GetOrderList() { if v.Type == order.Part_type { - Trigger = false + trigger = false } } - Trigger2 := false - for k, v := range PartCost { - if v > PartBag[k] { - Trigger2 = true + trigger2 := false + for k, v := range partCost { + if v > partBag[k] { + trigger2 = true } } - if Trigger && Trigger2 && BaseMod.GetLevel() >= 12 { + if trigger && trigger2 && BaseMod.GetLevel() >= 12 { OrderMod.CreateOrder(BaseMod.GetLevel(), ChessMod.GetOrderPartEmit(), BaseMod.GetEnergyMul(), order.Part_type) for k, v := range OrderMod.GetOrderList() { if v.Type == order.Part_type { @@ -1133,7 +1138,7 @@ func (player *Player) InitOrderItem() { OrderMod := player.PlayMod.getOrderMod() DecorateMod := player.PlayMod.getDecorateMod() ChessMod := player.PlayMod.getChessMod() - OrderFactor := orderCfg.GetOrderFactor(DecorateMod.GetAreaId()) + orderFactor := orderCfg.GetOrderFactor(DecorateMod.GetAreaId()) for k, v := range OrderMod.GetOrderList() { if v.Type == order.Super_type { continue @@ -1141,108 +1146,98 @@ func (player *Player) InitOrderItem() { if len(v.Items) != 0 { continue } - Star := order.GetOrderStar(v.MergeId, ChessMod.GetStarEmitList()) - Star = int(float64(Star)*float64(OrderFactor)/1000) * 10 - v.Items = []*item.Item{{Id: item.ITEM_STAR_ID, Num: Star}} + star := order.GetOrderStar(v.MergeId, ChessMod.GetStarEmitList()) + star = int(float64(star)*float64(orderFactor)/1000) * 10 + v.Items = []*item.Item{{Id: item.ITEM_STAR_ID, Num: star}} OrderMod.OrderList[k] = v } } -func (player *Player) GetPetOrderReward(Star int, Items []*item.Item) []*item.Item { - HighNum := Star / 225 - if HighNum > 0 { - HighNum = min(HighNum, 3) - Items = append(Items, item.NewItem(item.ITEM_PLAYROOM_BOX_HIGH_ID, HighNum)) - Star -= HighNum * 225 +func (player *Player) GetPetOrderReward(star int, items []*item.Item) []*item.Item { + highNum := star / 225 + if highNum > 0 { + highNum = min(highNum, 3) + items = append(items, item.NewItem(item.ITEM_PLAYROOM_BOX_HIGH_ID, highNum)) + star -= highNum * 225 } - MidNum := Star / 150 - if MidNum > 0 { - MidNum = min(MidNum, 3) - Items = append(Items, item.NewItem(item.ITEM_PLAYROOM_BOX_MID_ID, MidNum)) - Star -= MidNum * 150 + midNum := star / 150 + if midNum > 0 { + midNum = min(midNum, 3) + items = append(items, item.NewItem(item.ITEM_PLAYROOM_BOX_MID_ID, midNum)) + star -= midNum * 150 } - if len(Items) >= 2 { - Items = append(Items, item.NewItem(item.ITEM_STAR_ID, Star)) - return Items + if len(items) >= 2 { + items = append(items, item.NewItem(item.ITEM_STAR_ID, star)) + return items } - LowNum := Star / 75 - if LowNum > 0 { - LowNum = min(LowNum, 3) - Items = append(Items, item.NewItem(item.ITEM_PLAYROOM_BOX_LOW_ID, LowNum)) - Star -= LowNum * 75 + lowNum := star / 75 + if lowNum > 0 { + lowNum = min(lowNum, 3) + items = append(items, item.NewItem(item.ITEM_PLAYROOM_BOX_LOW_ID, lowNum)) + star -= lowNum * 75 } - if Star > 0 { - Items = append(Items, item.NewItem(item.ITEM_STAR_ID, Star)) + if star > 0 { + items = append(items, item.NewItem(item.ITEM_STAR_ID, star)) } - return Items + return items } -func ExcludeCardStar(CardList []int) []int { - StarList := make([]int, 0, len(CardList)) - for _, v := range CardList { - Star := cardCfg.GetStarById(v) - if Star < 2 || Star > 4 { - continue - } - StarList = append(StarList, v) - } - return StarList -} - -func (p *Player) GetPlayroomGameReward(Type, SelectId int) []*item.Item { +// 获取playroom小游戏奖励 +func (p *Player) GetPlayroomGameReward(gType, selectId int) []*item.Item { PlayroomMod := p.PlayMod.getPlayroomMod() BaseMod := p.PlayMod.getBaseMod() - Level := BaseMod.GetLevel() - var Items []*item.Item - switch Type { + level := BaseMod.GetLevel() + var items []*item.Item + switch gType { case playroom.GAME_RESULT_LOSE: - Items = append(Items, item.NewItem(item.ITEM_STAR_ID, 20)) + items = append(items, item.NewItem(item.ITEM_STAR_ID, 20)) case playroom.GAME_RESULT_LOW: - Items = append(Items, item.NewItem(item.ITEM_STAR_ID, Level*2)) + items = append(items, item.NewItem(item.ITEM_STAR_ID, level*2)) case playroom.GAME_RESULT_MIDDLE: - Items = append(Items, item.NewItem(item.ITEM_STAR_ID, Level*3)) + items = append(items, item.NewItem(item.ITEM_STAR_ID, level*3)) default: - Items = PlayroomMod.SelectReward(SelectId) + items = PlayroomMod.SelectReward(selectId) } - return Items + return items } -func (p *Player) GetPetThiefReward(Target int) error { - PlayerData := G_GameLogicPtr.GetSimplePlayerByUid(Target) +// 获取宠物小偷奖励 +func (p *Player) GetPetThiefReward(target int) error { + PlayerData := G_GameLogicPtr.GetSimplePlayerByUid(target) if PlayerData == nil { - return fmt.Errorf("target %d not exist", Target) + return fmt.Errorf("target %d not exist", target) } - CardStar := limitedTimeEventCfg.GetThiefProb() + cardStar := limitedTimeEventCfg.GetThiefProb() starMap := make(map[int][]int) var cardList []int for _, v := range PlayerData.CardInfo { - Star := cardCfg.GetStarById(v) - starMap[Star] = append(starMap[Star], v) + star := cardCfg.GetStarById(v) + starMap[star] = append(starMap[star], v) } for { - if l, ok := starMap[CardStar]; ok { + if l, ok := starMap[cardStar]; ok { cardList = l break } - if CardStar <= 1 { + if cardStar <= 1 { break } - CardStar-- + cardStar-- } - ItemId := 0 + itemId := 0 if len(cardList) == 0 { - List := cardCfg.GetCardListByStar(0, 1, 0) - CardId := GoUtil.RandSlice(List) - ItemId = cardCfg.GetItemIdByCardId(CardId) - if ItemId == 0 { - log.Error("LimitEventPetTheif ItemId %d not exist", ItemId) - return fmt.Errorf("ItemId %d not exist", ItemId) + list := cardCfg.GetCardListByStar(0, 1, 0) + cardId := GoUtil.RandSlice(list) + itemId = cardCfg.GetItemIdByCardId(cardId) + if itemId == 0 { + log.Error("LimitEventPetTheif ItemId %d not exist", itemId) + return fmt.Errorf("ItemId %d not exist", itemId) } } else { - CardId := GoUtil.RandSlice(cardList) - ItemId = cardCfg.GetItemIdByCardId(CardId) + cardId := GoUtil.RandSlice(cardList) + itemId = cardCfg.GetItemIdByCardId(cardId) } - p.HandleItem([]*item.Item{{Id: ItemId, Num: 1}}, proto.ITEM_POP_LABEL_PetTheif.String()) + p.HandleItem([]*item.Item{{Id: itemId, Num: 1}}, proto.ITEM_POP_LABEL_PetTheif.String()) return nil } diff --git a/src/server/game/register_network_func.go b/src/server/game/register_network_func.go index 44ec8e1c..e276000f 100644 --- a/src/server/game/register_network_func.go +++ b/src/server/game/register_network_func.go @@ -3839,7 +3839,7 @@ func ReqPlayroomFlipReward(player *Player, buf []byte) error { return err } PlayroomMod := player.PlayMod.getPlayroomMod() - Items, Target, Result, err := PlayroomMod.GetFlipReward() + items, target, result, err := PlayroomMod.GetFlipReward() if err != nil { player.SendErrClienRes(&msg.ResPlayroomFlipReward{ Code: msg.RES_CODE_FAIL, @@ -3847,13 +3847,21 @@ func ReqPlayroomFlipReward(player *Player, buf []byte) error { }) return err } - Items1 := Items LimitedTimeEventMod := player.PlayMod.getLimitedTimeEventMod() - if LimitedTimeEventMod.CheckExist(limitedTimeEvent.EVENT_TYPE_PET_THIEF) && Result == playroom.FLIP_TYPE_GOLD { - player.GetPetThiefReward(Target) + if LimitedTimeEventMod.CheckExist(limitedTimeEvent.EVENT_TYPE_PET_THIEF) && result == playroom.FLIP_TYPE_GOLD { + player.GetPetThiefReward(target) + } + var broken bool + playerSimple := G_GameLogicPtr.GetSimplePlayerByUid(target) + if playerSimple != nil { + if len(items) > 0 { + if playerSimple.Star < items[0].Num { + broken = true + } + } } - err = player.HandleItem(Items1, msg.ITEM_POP_LABEL_PlayroomFlip.String()) + err = player.HandleItem(items, msg.ITEM_POP_LABEL_PlayroomFlip.String()) if err != nil { player.SendErrClienRes(&msg.ResPlayroomFlip{ Code: msg.RES_CODE_FAIL, @@ -3861,7 +3869,7 @@ func ReqPlayroomFlipReward(player *Player, buf []byte) error { }) return err } - if Result == playroom.FLIP_TYPE_GOLD { + if result == playroom.FLIP_TYPE_GOLD { FriendMod := player.PlayMod.getFriendMod() FriendMod.AddActLog(friend.ACT_LOG_TYPE_GET_VISIT_GAME_PRIZE, "") player.UpdateUserInfo() @@ -3869,11 +3877,11 @@ func ReqPlayroomFlipReward(player *Player, buf []byte) error { now := GoUtil.Now() FriendMgrSend(&MsqMod.Msg{ From: int(player.M_DwUin), - To: Target, + To: target, Type: MsqMod.HANDLE_TYPE_PLAYROOM_LOSE, SendT: now, End: now + sevendays, - Item: Items, + Item: items, Extra: GameResult{ T: playroom.GAME_TYPE_FILP, Emoji: int(req.EmojiId), @@ -3882,13 +3890,14 @@ func ReqPlayroomFlipReward(player *Player, buf []byte) error { player.TeLog("finish_mini_game", map[string]interface{}{ "mini_game_type": playroom.GAME_TYPE_FILP, "is_chip": false, - "item_list": Items, + "item_list": items, }) player.PlayerDecoSetLog("emoji", int(req.EmojiId), "playroom_flip_reward") player.PlayMod.save() player.PlayroomBackData() player.PushClientRes(&msg.ResPlayroomFlipReward{ - Code: msg.RES_CODE_SUCCESS, + Code: msg.RES_CODE_SUCCESS, + Broken: broken, }) return nil } From bc417b6301c99a8a0aa8d304204077a9ae6d5ca7 Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Tue, 24 Mar 2026 15:53:26 +0800 Subject: [PATCH 32/52] =?UTF-8?q?=E9=AB=98=E7=BA=A7=E8=AE=A2=E5=8D=95?= =?UTF-8?q?=E7=AC=A6=E5=90=88=E6=9D=A1=E4=BB=B6=E5=B9=B6=E6=B2=A1=E6=9C=89?= =?UTF-8?q?=E7=9B=B4=E6=8E=A5=E7=94=9F=E6=95=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/server/game/message_handler.go | 301 +++--- src/server/game/mod/chess/Chess.go | 312 ++++--- src/server/game/register_network_func.go | 1088 +++++++++++----------- src/server/game/req_func_friend.go | 12 +- 4 files changed, 877 insertions(+), 836 deletions(-) diff --git a/src/server/game/message_handler.go b/src/server/game/message_handler.go index c378ef09..3ef57bc0 100644 --- a/src/server/game/message_handler.go +++ b/src/server/game/message_handler.go @@ -73,18 +73,18 @@ func (p *Player) handle(m *msg.Msg) error { return nil } p.AddLog(m.From, friend.LOG_TYPE_FRIEND_APPLY, "", m.SendT) - PlayerSimpleData := G_GameLogicPtr.GetResSimplePlayerByUid(m.From) + playerSimpleData := G_GameLogicPtr.GetResSimplePlayerByUid(m.From) p.PushClientRes(&proto.ResFriendApplyNotify{ - Player: PlayerSimpleData, + Player: playerSimpleData, Type: friend.FRIEND_NOTIFY_APPLY, Time: int32(GoUtil.Now()), }) case msg.HADNLE_TYPE_AGREE: // 同意好友申请 FriendMod := p.PlayMod.getFriendMod() FriendMod.AgreeApply(m.From) - PlayerSimpleData := G_GameLogicPtr.GetResSimplePlayerByUid(m.From) + playerSimpleData := G_GameLogicPtr.GetResSimplePlayerByUid(m.From) p.PushClientRes(&proto.ResFriendApplyNotify{ - Player: PlayerSimpleData, + Player: playerSimpleData, Type: friend.FRIEND_NOTIFY_AGREE, Time: int32(GoUtil.Now()), }) @@ -97,18 +97,18 @@ func (p *Player) handle(m *msg.Msg) error { FriendMod := p.PlayMod.getFriendMod() FriendMod.DelFriend(m.From) p.AddLog(m.From, friend.LOG_TYPE_FRIEND_APPLY, "", m.SendT) - PlayerSimpleData := G_GameLogicPtr.GetResSimplePlayerByUid(m.From) + playerSimpleData := G_GameLogicPtr.GetResSimplePlayerByUid(m.From) p.PushClientRes(&proto.ResFriendApplyNotify{ - Player: PlayerSimpleData, + Player: playerSimpleData, Type: friend.FRIEND_NOTIFY_DEL, Time: int32(GoUtil.Now()), }) case msg.HANDLE_TYPE_REFUSE: // 拒绝好友申请 FriendMod := p.PlayMod.getFriendMod() FriendMod.RefuseApply(m.From) - PlayerSimpleData := G_GameLogicPtr.GetResSimplePlayerByUid(m.From) + playerSimpleData := G_GameLogicPtr.GetResSimplePlayerByUid(m.From) p.PushClientRes(&proto.ResFriendApplyNotify{ - Player: PlayerSimpleData, + Player: playerSimpleData, Type: friend.FRIEND_NOTIFY_REFUSE, Time: int32(GoUtil.Now()), }) @@ -199,7 +199,7 @@ func (p *Player) handle(m *msg.Msg) error { return nil } CardMod := p.PlayMod.getCardMod() - OtherUid, err := CardMod.DelRequestCard(cardInfo.BUid) + otherUid, err := CardMod.DelRequestCard(cardInfo.BUid) FriendMod := p.PlayMod.getFriendMod() FriendMod.SetCardInfo(&cardInfo) if err != nil { // 同意失败,请求已失效 @@ -207,7 +207,7 @@ func (p *Player) handle(m *msg.Msg) error { FriendMgrSend(msg) return nil } - for k, v := range OtherUid { // 通知好友请求已结束 + for k, v := range otherUid { // 通知好友请求已结束 v.Status = card.STATUS_CARD_GIVE_3 FriendMgrSend(&msg.Msg{Type: msg.HANDLE_TYPE_REG_CARD_FINISH, From: k, Extra: &v}) CardMod.DelRequestCard(k) @@ -299,8 +299,15 @@ func (p *Player) handle(m *msg.Msg) error { case msg.HANDLE_TYPE_CHAMPSHIP_NOTIFY: // # 锦标赛排名变动通知 p.BackChampship() case msg.HANDLE_TYPE_CHAMPSHIP_RESULT: // # 好友锦标赛结果 - Extra := GoUtil.IntSlice(m.Extra) - p.AddLog(m.From, friend.LOG_TYPE_PLAYROOM_CHAMPSHIP, fmt.Sprintf("%d_%d", Extra[0], Extra[1]), m.SendT) + extra := GoUtil.IntSlice(m.Extra) + var gameId, rank int + if len(extra) >= 2 { + gameId = extra[0] + rank = extra[1] + } else { + return nil + } + p.AddLog(m.From, friend.LOG_TYPE_PLAYROOM_CHAMPSHIP, fmt.Sprintf("%d_%d", gameId, rank), m.SendT) case msg.HANDLE_TYPE_TREASURE_RESULT: // 好友宝藏结果 // 暂未处理 case msg.HANDLE_TYPE_MAIL: // 邮件操作 @@ -382,14 +389,14 @@ func (p *Player) handle(m *msg.Msg) error { FriendMod.Interact(m.From, friend.INTERACT_TYPE_UPVOTE, m.SendT) p.AddLog(m.From, friend.LOG_TYPE_HANDBOOK_UPVOTE, "", m.SendT) case msg.HANDLE_TYPE_SEND_CHARGE: // 收到好友赠送的充值礼包 - C, ok := m.Extra.(*ChargeExtra) + chargeExtra, ok := m.Extra.(*ChargeExtra) if !ok { - C = &ChargeExtra{} + chargeExtra = &ChargeExtra{} } - PlayerSimpleData := G_GameLogicPtr.GetResSimplePlayerByUid(m.From) + playerSimpleData := G_GameLogicPtr.GetResSimplePlayerByUid(m.From) MailMod := p.PlayMod.getMailMod() - mt, mc, mt_en, mc_en := mailCfg.GetChargeSendMail(PlayerSimpleData.Name) - items := p.ChargeItem(C.ChargeId) + mt, mc, mt_en, mc_en := mailCfg.GetChargeSendMail(playerSimpleData.Name) + items := p.ChargeItem(chargeExtra.ChargeId) mailId := MailMod.SendMail(&mail.MailStruct{ Title: mt, Content: mc, @@ -405,9 +412,9 @@ func (p *Player) handle(m *msg.Msg) error { if !ok { Content = "" } - PlayerSimpleData := G_GameLogicPtr.GetResSimplePlayerByUid(m.From) + playerSimpleData := G_GameLogicPtr.GetResSimplePlayerByUid(m.From) MailMod := p.PlayMod.getMailMod() - mt, mc, mt_en, mc_en := mailCfg.GetChargeReceiveMail(PlayerSimpleData.Name, Content) + mt, mc, mt_en, mc_en := mailCfg.GetChargeReceiveMail(playerSimpleData.Name, Content) mailId := MailMod.SendMail(&mail.MailStruct{ Title: mt, Content: mc, @@ -436,21 +443,21 @@ func (p *Player) handle(m *msg.Msg) error { p.NotifyPlayroomKiss() case msg.HANDLE_TYPE_CATNIP_INVITE: // 邀请好友参与猫咪游戏 CatnipMod := p.PlayMod.getCatnipMod() - catnipMsg, ok := m.Extra.(CatnipMsg) + catnipMsg, ok := m.Extra.(map[string]interface{}) if !ok { return nil } activityId := p.GetActivityId(activity.ACT_TYPE_CATNIP) - if activityId != catnipMsg.ActivityId { // 活动ID不匹配 + if activityId != catnipMsg["ActivityId"] { // 活动ID不匹配 return nil } CatnipMod.BeInvited(int(m.From), m.SendT) FriendMod := p.PlayMod.getFriendMod() - replyInfo := FriendMod.AddReplyInfo(m.From, friend.REPLY_TYPE_CATNIP, fmt.Sprintf("%d", catnipMsg.GameId), m.End, nil) - PlayerSimpleData := G_GameLogicPtr.GetResSimplePlayerByUid(m.From) + replyInfo := FriendMod.AddReplyInfo(m.From, friend.REPLY_TYPE_CATNIP, fmt.Sprintf("%d", catnipMsg["GameId"]), m.End, nil) + playerSimpleData := G_GameLogicPtr.GetResSimplePlayerByUid(m.From) p.PushClientRes(&proto.ResFriendReplyNotify{ Info: &proto.ResFriendReply{ - Player: PlayerSimpleData, + Player: playerSimpleData, Param: replyInfo.Param, Type: int32(replyInfo.Type), Id: int32(replyInfo.Id), @@ -460,56 +467,56 @@ func (p *Player) handle(m *msg.Msg) error { }) case msg.HANDLE_TYPE_CATNIP_AGREE: // 同意好友参与猫咪游戏 CatnipMod := p.PlayMod.getCatnipMod() - catnipMsg, ok := m.Extra.(CatnipMsg) + catnipMsg, ok := m.Extra.(map[string]interface{}) if !ok { return nil } activityId := p.GetActivityId(activity.ACT_TYPE_CATNIP) - if activityId != catnipMsg.ActivityId { // 活动ID不匹配 + if activityId != catnipMsg["ActivityId"] { // 活动ID不匹配 return nil } - CatnipMod.BeAgree(catnipMsg.GameId, int(m.From)) + CatnipMod.BeAgree(GoUtil.Int(catnipMsg["GameId"]), int(m.From)) case msg.HANDLE_TYPE_CATNIP_AGREE_DEL: // 同意好友参与猫咪游戏后删除邀请 CatnipMod := p.PlayMod.getCatnipMod() - catnipMsg, ok := m.Extra.(CatnipMsg) + catnipMsg, ok := m.Extra.(map[string]interface{}) if !ok { return nil } activityId := p.GetActivityId(activity.ACT_TYPE_CATNIP) - if activityId != catnipMsg.ActivityId { // 活动ID不匹配 + if activityId != catnipMsg["ActivityId"] { // 活动ID不匹配 return nil } - CatnipMod.DelInvited(catnipMsg.GameId, int(m.From)) + CatnipMod.DelInvited(GoUtil.Int(catnipMsg["GameId"]), int(m.From)) case msg.HANDLE_TYPE_CATNIP_REFUSE: // 拒绝好友参与猫咪游戏 CatnipMod := p.PlayMod.getCatnipMod() - catnipMsg, ok := m.Extra.(CatnipMsg) + catnipMsg, ok := m.Extra.(map[string]interface{}) if !ok { return nil } activityId := p.GetActivityId(activity.ACT_TYPE_CATNIP) - if activityId != catnipMsg.ActivityId { // 活动ID不匹配 + if activityId != catnipMsg["ActivityId"] { // 活动ID不匹配 return nil } - CatnipMod.DelInvited(catnipMsg.GameId, int(m.From)) + CatnipMod.DelInvited(GoUtil.Int(catnipMsg["GameId"]), int(m.From)) case msg.HANDLE_TYPE_CATNIP_GROWTH: CatnipMod := p.PlayMod.getCatnipMod() - catnipMsg, ok := m.Extra.(CatnipMsg) + catnipMsg, ok := m.Extra.(map[string]interface{}) if !ok { return nil } activityId := p.GetActivityId(activity.ACT_TYPE_CATNIP) - if activityId != catnipMsg.ActivityId { // 活动ID不匹配 + if activityId != catnipMsg["ActivityId"] { // 活动ID不匹配 return nil } - CatnipMod.GrowthByUid(m.From, catnipMsg.Growth) - if catnipMsg.FriendItems > 0 { - Items := catnipCfg.GetItemCost(activityId, catnipMsg.FriendItems) + CatnipMod.GrowthByUid(m.From, GoUtil.Int(catnipMsg["Growth"])) + if GoUtil.Int(catnipMsg["FriendItems"]) > 0 { + Items := catnipCfg.GetItemCost(activityId, GoUtil.Int(catnipMsg["FriendItems"])) FriendMod := p.PlayMod.getFriendMod() replyInfo := FriendMod.AddReplyInfo(m.From, friend.REPLY_TYPE_CATNIP_ITEMS, "", m.End, Items) - PlayerSimpleData := G_GameLogicPtr.GetResSimplePlayerByUid(m.From) + playerSimpleData := G_GameLogicPtr.GetResSimplePlayerByUid(m.From) p.PushClientRes(&proto.ResFriendReplyNotify{ Info: &proto.ResFriendReply{ - Player: PlayerSimpleData, + Player: playerSimpleData, Param: replyInfo.Param, Type: int32(replyInfo.Type), Id: int32(replyInfo.Id), @@ -627,11 +634,11 @@ func (p *Player) CatnipGrowthMsg(To, Id, Growth, FriendItems int) error { To: To, Type: msg.HANDLE_TYPE_CATNIP_GROWTH, SendT: GoUtil.Now(), - Extra: CatnipMsg{ - ActivityId: activityId, - GameId: Id, - Growth: Growth, - FriendItems: FriendItems, + Extra: map[string]interface{}{ + "ActivityId": activityId, + "GameId": Id, + "Growth": Growth, + "FriendItems": FriendItems, }, }) return nil @@ -727,28 +734,28 @@ func (p *Player) EmitRetireTrigger2() { allChess[Color] = struct{}{} } } - RetireEmit := ChessMod.GetRetireEmit() - for k, v := range RetireEmit { + retireEmit := ChessMod.GetRetireEmit() + for k, v := range retireEmit { if k == "" { continue } if v != 1 { continue } - RetireLv := mergeDataCfg.GetEmitRetire(k) - if RetireLv > BaseMod.GetLevel() { + retireLv := mergeDataCfg.GetEmitRetire(k) + if retireLv > BaseMod.GetLevel() { continue } - NeedFinishOrder := false - Produce := mergeDataCfg.GetEmitOrderProduce(k) - for _, v1 := range Produce { + needFinishOrder := false + produce := mergeDataCfg.GetEmitOrderProduce(k) + for _, v1 := range produce { if _, ok := allChess[v1]; ok { - NeedFinishOrder = true + needFinishOrder = true break } } - if NeedFinishOrder { + if needFinishOrder { continue } ChessMod.RetireOrder(k) @@ -758,36 +765,36 @@ func (p *Player) EmitRetireTrigger2() { return } } - RetireEmit1 := ChessMod.GetRetireEmit() - for k, v := range RetireEmit1 { + retireEmit1 := ChessMod.GetRetireEmit() + for k, v := range retireEmit1 { if k == "" { continue } if v != 2 { continue } - ChessList := ChessMod.GetRetireChess(k) + chessList := ChessMod.GetRetireChess(k) // 清理完成 - if len(ChessList) == 0 { + if len(chessList) == 0 { ChessMod.FinishRetire(k) ChargeMod := p.PlayMod.getChargeMod() ChargeMod.InitChessShop(ChessMod.GetEmitList()) p.ChargeBackData() continue } - OrderMod.CreateCleanOrder(ChessList) + OrderMod.CreateCleanOrder(chessList) return } } func NotifyChampshipResult(Uid, Rank int) { - PlayerSimpleData := G_GameLogicPtr.GetSimplePlayerByUid(Uid) - if PlayerSimpleData == nil { + playerSimpleData := G_GameLogicPtr.GetSimplePlayerByUid(Uid) + if playerSimpleData == nil { return } now := GoUtil.Now() serveropenday := GoUtil.GetServerOpenDay() - for _, v := range PlayerSimpleData.Friend { + for _, v := range playerSimpleData.Friend { if CheckPlayerLose(v) { continue } @@ -803,20 +810,20 @@ func NotifyChampshipResult(Uid, Rank int) { } func (player *Player) GetPetOrderItemExp() int { - OrderItemCfgList := playroomCfg.GetOrderItemList() - itemList := make([]*item.Item, 0) - ItemMod := player.PlayMod.getItemMod() - for _, v := range OrderItemCfgList { - num := ItemMod.GetItem(v) + orderItemCfgList := playroomCfg.GetOrderItemList() + items := make([]*item.Item, 0) + itemMod := player.PlayMod.getItemMod() + for _, v := range orderItemCfgList { + num := itemMod.GetItem(v) if num <= 0 { continue } - itemList = append(itemList, &item.Item{ + items = append(items, &item.Item{ Id: v, Num: num, }) } - return playroomCfg.GetPetOrderItemExpByList(itemList) + return playroomCfg.GetPetOrderItemExpByList(items) } // 触发生成新的固定订单 @@ -829,32 +836,32 @@ func (player *Player) TriggerOrder(lv int, Type string, Emit []int, EnergyMul in fixedOrder++ } } - OrderList := make(map[int]order.Order, len(OrderMod.OrderList)) + orderList := make(map[int]order.Order, len(OrderMod.OrderList)) for k, v := range OrderMod.OrderList { - OrderList[k] = v + orderList[k] = v } // 触发生成新的固定订单 for _, v := range triggerOrderList { if GoUtil.InArray(v.Id, OrderMod.FinishOrder) { continue } - orderInfo, exists := OrderList[v.Id] + orderInfo, exists := orderList[v.Id] if exists && v.Preview == "" { continue } // 预览条件不为空且未存在且未完成 if v.Preview != "" && !exists && !GoUtil.InArray(v.Id, OrderMod.FinishOrder) { - if OrderMod.CheckCondition(lv, v.Preview, Type, Emit, fixedOrder, OrderList) { + if OrderMod.CheckCondition(lv, v.Preview, Type, Emit, fixedOrder, orderList) { OrderMod.AddFixOrder(v.Id, v.MergeList, order.Preview_type, v.Items) } } if v.Appear != "" { - if OrderMod.CheckCondition(lv, v.Appear, Type, Emit, fixedOrder, OrderList) { - Type := order.Fixed_type - OrderType := orderCfg.GetOrderType(v.Id) - if OrderType != 0 { - Type = OrderType + if OrderMod.CheckCondition(lv, v.Appear, Type, Emit, fixedOrder, orderList) { + vType := order.Fixed_type + orderType := orderCfg.GetOrderType(v.Id) + if orderType != 0 { + vType = orderType } player.TeLog("preset_order_birth", map[string]interface{}{ "order_id": v.Id, @@ -866,7 +873,7 @@ func (player *Player) TriggerOrder(lv int, Type string, Emit []int, EnergyMul in orderInfo.Type = order.Fixed_type OrderMod.OrderList[v.Id] = orderInfo } else { - OrderMod.AddFixOrder(v.Id, v.MergeList, Type, v.Items) + OrderMod.AddFixOrder(v.Id, v.MergeList, vType, v.Items) if v.Id == 78 { OrderMod.Retire("D") OrderMod.AutoEmit = append(OrderMod.AutoEmit, "D") @@ -1030,9 +1037,9 @@ func (player *Player) CreatePetOrder() { continue } var items []*item.Item - Star := order.GetOrderStar(v.MergeId, ChessMod.GetStarEmitList()) + star := order.GetOrderStar(v.MergeId, ChessMod.GetStarEmitList()) // Star = int(float64(Star)*float64(OrderFactor)/1000) * 10 - items = player.GetPetOrderReward(Star, items) + items = player.GetPetOrderReward(star, items) if len(items) == 1 && items[0].Id == item.ITEM_STAR_ID { v.Type = order.Common_type } else { @@ -1246,7 +1253,7 @@ func (p *Player) AddHighOrder() { OrderMod := p.PlayMod.getOrderMod() BaseMod := p.PlayMod.getBaseMod() ChessMod := p.PlayMod.getChessMod() - LastChess := OrderMod.LastOrder.MergeId[len(OrderMod.LastOrder.MergeId)-1] + lastChess := OrderMod.LastOrder.MergeId[len(OrderMod.LastOrder.MergeId)-1] maxId := 0 for k := range OrderMod.GetOrderList() { maxId = max(maxId, k) @@ -1254,51 +1261,53 @@ func (p *Player) AddHighOrder() { if maxId == 0 || BaseMod.GetLevel() < 12 { return } - NewChess := OrderMod.GetOrderList()[maxId].MergeId[0] - LastColor := mergeDataCfg.GetColorById(LastChess) - NewColor := mergeDataCfg.GetColorById(NewChess) - LastEmitId := order.GetEmitByColor(ChessMod.GetOrderEmit(), LastColor) - AddNewEmitId := order.GetEmitByColor(ChessMod.GetOrderEmit(), NewColor) - var Product []string - Product = append(Product, mergeDataCfg.GetEmitProduceType(LastEmitId)...) - Product = append(Product, mergeDataCfg.GetEmitProduceType(AddNewEmitId)...) - ChessMap := make(map[string]int) - ChessList := ChessMod.GetUnlockChessList() - for _, v := range ChessList { + newChess := OrderMod.GetOrderList()[maxId].MergeId[0] + lastColor := mergeDataCfg.GetColorById(lastChess) + newColor := mergeDataCfg.GetColorById(newChess) + lastEmitId := order.GetEmitByColor(ChessMod.GetOrderEmit(), lastColor) + addNewEmitId := order.GetEmitByColor(ChessMod.GetOrderEmit(), newColor) + var product []string + product = append(product, mergeDataCfg.GetEmitProduceType(lastEmitId)...) + product = append(product, mergeDataCfg.GetEmitProduceType(addNewEmitId)...) + chessMap := make(map[string]int) + chessList := ChessMod.GetUnlockChessList() + chessBagList := ChessMod.GetChessBagList() + chessList = append(chessList, chessBagList...) + for _, v := range chessList { ChessType := mergeDataCfg.GetTypeById(v) if ChessType != "Product" { continue } Color := mergeDataCfg.GetColorById(v) - if GoUtil.InStringArray(Color, Product) { + if GoUtil.InStringArray(Color, product) { continue } - if v > ChessMap[Color] { - ChessMap[Color] = v + if v > chessMap[Color] { + chessMap[Color] = v } } RetireProduceColor := ChessMod.GetRetireProduceColor() - for Color, ChessId := range ChessMap { - EmitId := order.GetEmitByColor(ChessMod.GetOrderEmit(), Color) - _, ChessMaxLv := getChesslvRange(EmitId, BaseMod.GetEnergyMul(), OrderMod.IsCharge) - NewLev2 := mergeDataCfg.DynamicLev(ChessMaxLv, EmitId, Color) - NewLev3 := order.AdjustLev(NewLev2, BaseMod.GetEnergyMul()) - ChessLv := mergeDataCfg.GetLvById(ChessId) + for Color, ChessId := range chessMap { + emitId := order.GetEmitByColor(ChessMod.GetOrderEmit(), Color) + _, ChessMaxLv := getChesslvRange(emitId, BaseMod.GetEnergyMul(), OrderMod.IsCharge) + newLev2 := mergeDataCfg.DynamicLev(ChessMaxLv, emitId, Color) + newLev3 := order.AdjustLev(newLev2, BaseMod.GetEnergyMul()) + chessLv := mergeDataCfg.GetLvById(ChessId) chessColor := mergeDataCfg.GetColorById(ChessId) // 退役产物不生成订单 if GoUtil.InStringArray(chessColor, RetireProduceColor) { continue } - if NewLev3 >= ChessLv { + if newLev3 >= chessLv { continue } - Add := true + add := true for _, v := range OrderMod.GetOrderList() { if GoUtil.InArray(ChessId, v.MergeId) { - Add = false + add = false } } - if Add { + if add { OrderMod.AddExtraOrder([]int{ChessId}) return } @@ -1313,28 +1322,30 @@ func (p *Player) AddHighOrder() { func (p *Player) AddHighOrder2() { OrderMod := p.PlayMod.getOrderMod() ChessMod := p.PlayMod.getChessMod() - ChessList := ChessMod.GetUnlockChessList() - ChessMap := make(map[int]int) - for _, v := range ChessList { - Lv := mergeDataCfg.GetLvById(v) - MaxLv := mergeDataCfg.GetMaxLvById(v) - if Lv != MaxLv { + chessList := ChessMod.GetUnlockChessList() + chessBagList := ChessMod.GetChessBagList() + chessList = append(chessList, chessBagList...) + chessMap := make(map[int]int) + for _, v := range chessList { + lv := mergeDataCfg.GetLvById(v) + maxLv := mergeDataCfg.GetMaxLvById(v) + if lv != maxLv { continue } - Type := mergeDataCfg.GetTypeById(v) - if Type != "Product" { + chessType := mergeDataCfg.GetTypeById(v) + if chessType != "Product" { continue } - ChessMap[v]++ + chessMap[v]++ } - RetireProduceColor := ChessMod.GetRetireProduceColor() - for ChessId, Num := range ChessMap { + retireProduceColor := ChessMod.GetRetireProduceColor() + for ChessId, Num := range chessMap { if Num < 2 { continue } chessColor := mergeDataCfg.GetColorById(ChessId) // 退役产物不生成订单 - if GoUtil.InStringArray(chessColor, RetireProduceColor) { + if GoUtil.InStringArray(chessColor, retireProduceColor) { continue } add := true @@ -1354,7 +1365,7 @@ func (p *Player) AddHighOrder2() { func (p *Player) DeleteHighOrder() { OrderMod := p.PlayMod.getOrderMod() ChessMod := p.PlayMod.getChessMod() - ChessList := ChessMod.GetUnlockChessList() + chessList := ChessMod.GetUnlockChessList() for k, v := range OrderMod.GetOrderList() { if v.Type != order.Extra_type { continue @@ -1364,7 +1375,7 @@ func (p *Player) DeleteHighOrder() { } chessId := v.MergeId[0] chessNum := len(v.MergeId) - elementNum := GoUtil.ElemNumber(ChessList, chessId) + elementNum := GoUtil.ElemNumber(chessList, chessId) if elementNum < chessNum { OrderMod.DeleteOrder(k) } @@ -1372,28 +1383,28 @@ func (p *Player) DeleteHighOrder() { } func (p *Player) FormatPetOrderItem(Items []*item.Item) []*item.Item { - var NewItems []*item.Item + var newItems []*item.Item PlayroomMod := p.PlayMod.getPlayroomMod() for _, v := range Items { if v.Id != item.ITEM_PLAYROOM_BOX_LOW_ID && v.Id != item.ITEM_PLAYROOM_BOX_MID_ID && v.Id != item.ITEM_PLAYROOM_BOX_HIGH_ID { - NewItems = append(NewItems, v) + newItems = append(newItems, v) continue } - var OrderItem map[int][]int + var orderItem map[int][]int switch v.Id { case item.ITEM_PLAYROOM_BOX_LOW_ID: - OrderItem = playroomCfg.GetOrderItemByGrade(1) + orderItem = playroomCfg.GetOrderItemByGrade(1) case item.ITEM_PLAYROOM_BOX_MID_ID: - OrderItem = playroomCfg.GetOrderItemByGrade(2) + orderItem = playroomCfg.GetOrderItemByGrade(2) default: - OrderItem = playroomCfg.GetOrderItemByGrade(3) + orderItem = playroomCfg.GetOrderItemByGrade(3) } feed := PlayroomMod.GetPhysiology(playroom.PHYSIOLOGY_TYPE_FEED) feedItem := p.GetPlayroomFood() feedPlo := playroomCfg.GetItemAddPhysiology(feedItem) if feed != nil && feed.Num+feedPlo <= 1 { - RandList := OrderItem[1] - NewItems = append(NewItems, item.NewItem(GoUtil.RandSlice(RandList), 1)) + randList := orderItem[1] + newItems = append(newItems, item.NewItem(GoUtil.RandSlice(randList), 1)) continue } clean := PlayroomMod.GetPhysiology(playroom.PHYSIOLOGY_TYPE_CLEAN) @@ -1401,50 +1412,50 @@ func (p *Player) FormatPetOrderItem(Items []*item.Item) []*item.Item { cleanPlo := playroomCfg.GetItemAddPhysiology(cleanItem) // 卫生值低于等于5点,优先产出清洁类物品 if clean != nil && clean.Num+cleanPlo <= 5 { - RandList := OrderItem[2] - NewItems = append(NewItems, item.NewItem(GoUtil.RandSlice(RandList), 1)) + randList := orderItem[2] + newItems = append(newItems, item.NewItem(GoUtil.RandSlice(randList), 1)) continue } - var RandList []int - for k, v1 := range OrderItem { + var randList []int + for k, v1 := range orderItem { if k == 1 || k == 2 { continue } - RandList = append(RandList, v1...) + randList = append(randList, v1...) } - NewItems = append(NewItems, item.NewItem(GoUtil.RandSlice(RandList), 1)) + newItems = append(newItems, item.NewItem(GoUtil.RandSlice(randList), 1)) } - return NewItems + return newItems } func (player *Player) GetPlayroomFood() map[int]int { ItemMod := player.PlayMod.getItemMod() - Item := make(map[int]int) + items := make(map[int]int) for k, v := range ItemMod.Data { ItemType := itemCfg.GetItemType(k) if ItemType == item.ITEM_TYPE_PLAYROOM_PET { Effect := itemCfg.GetItemEffect(k) if Effect == 1 { - Item[k] = v + items[k] = v } } } - return Item + return items } func (player *Player) GetPlayroomClean() map[int]int { ItemMod := player.PlayMod.getItemMod() - Item := make(map[int]int) + items := make(map[int]int) for k, v := range ItemMod.Data { - ItemType := itemCfg.GetItemType(k) - if ItemType == item.ITEM_TYPE_PLAYROOM_PET { - Effect := itemCfg.GetItemEffect(k) - if Effect == 2 { - Item[k] = v + itemType := itemCfg.GetItemType(k) + if itemType == item.ITEM_TYPE_PLAYROOM_PET { + effect := itemCfg.GetItemEffect(k) + if effect == 2 { + items[k] = v } } } - return Item + return items } func (player *Player) IsWeeklyDiscount() bool { diff --git a/src/server/game/mod/chess/Chess.go b/src/server/game/mod/chess/Chess.go index bfd6be2b..c2fd7d3e 100644 --- a/src/server/game/mod/chess/Chess.go +++ b/src/server/game/mod/chess/Chess.go @@ -74,9 +74,9 @@ func (cb *ChessBorad) IsEmpty() bool { // 初始化棋盘 func (cb *ChessBorad) InitData() { - StartMerge := startMergeCfg.GetStartChessList() + startMerge := startMergeCfg.GetStartChessList() cb.EmitList = make(map[int]int) - cb.ChessList = StartMerge + cb.ChessList = startMerge if cb.ChessBag.List == nil { cb.ChessBag.List = make(map[int]ChessBagGrid) InitNum := mergeDataCfg.GetChessBagInitNum() @@ -141,11 +141,11 @@ func (cb *ChessBorad) GetChessBuf() []int { // 棋子合成 func (cb *ChessBorad) ComposeChess(id int) (int, error) { - CfgRecord, err := mergeDataCfg.GetOne(id) + cfgRecord, err := mergeDataCfg.GetOne(id) if err != nil { return 0, errors.New("配置错误") } - if CfgRecord.Lv == CfgRecord.MaxLv { + if cfgRecord.Lv == cfgRecord.MaxLv { return 0, errors.New("已达最大等级") } count := 0 @@ -161,8 +161,8 @@ func (cb *ChessBorad) ComposeChess(id int) (int, error) { if count < 2 { return 0, errors.New("次数不足" + fmt.Sprintf("Id: %d", id)) } - ChessType := mergeDataCfg.GetTypeById(id) - if ChessType == "Emitter" { + chessType := mergeDataCfg.GetTypeById(id) + if chessType == "Emitter" { cb.EmitList[id+1]++ cb.EmitList[id] -= 2 } @@ -199,8 +199,8 @@ func (cb *ChessBorad) AddChess(id int) error { cb.ChessBuff = append(cb.ChessBuff, id) return nil } - ChessType := mergeDataCfg.GetTypeById(id) - if ChessType == "Emitter" { + chessType := mergeDataCfg.GetTypeById(id) + if chessType == "Emitter" { cb.EmitList[id]++ } cb.ChessList = append(cb.ChessList, id) @@ -209,21 +209,21 @@ func (cb *ChessBorad) AddChess(id int) error { // 购买棋子 func (cb *ChessBorad) BuyChess(id int) (int, error) { - CfgRecord, err := mergeDataCfg.GetOne(id) + cfgRecord, err := mergeDataCfg.GetOne(id) if err != nil { return 0, errors.New("配置错误") } cb.ChessList = append(cb.ChessList, id) - ChessType := mergeDataCfg.GetTypeById(id) - if ChessType == "Emitter" { + chessType := mergeDataCfg.GetTypeById(id) + if chessType == "Emitter" { cb.EmitList[id]++ } - return CfgRecord.SellNum, nil + return cfgRecord.SellNum, nil } // 出售棋子 func (cb *ChessBorad) SellChess(id int) ([]*item.Item, error) { - CfgRecord, err := mergeDataCfg.GetOne(id) + cfgRecord, err := mergeDataCfg.GetOne(id) if err != nil { return nil, errors.New("配置错误") } @@ -243,24 +243,24 @@ func (cb *ChessBorad) SellChess(id int) ([]*item.Item, error) { cb.ChessList = newList var items []*item.Item - switch CfgRecord.SellType { + switch cfgRecord.SellType { case "star": - items = append(items, &item.Item{Id: item.ITEM_STAR_ID, Num: CfgRecord.SellNum}) + items = append(items, &item.Item{Id: item.ITEM_STAR_ID, Num: cfgRecord.SellNum}) case "diamond": - items = append(items, &item.Item{Id: item.ITEM_DIAMOND_ID, Num: CfgRecord.SellNum}) + items = append(items, &item.Item{Id: item.ITEM_DIAMOND_ID, Num: cfgRecord.SellNum}) case "energy": - items = append(items, &item.Item{Id: item.ITEM_ENERGY_ID, Num: CfgRecord.SellNum}) + items = append(items, &item.Item{Id: item.ITEM_ENERGY_ID, Num: cfgRecord.SellNum}) case "Racing Battery": - items = append(items, &item.Item{Id: item.ITEM_RACING_BATTERY_ID, Num: CfgRecord.SellNum}) + items = append(items, &item.Item{Id: item.ITEM_RACING_BATTERY_ID, Num: cfgRecord.SellNum}) } return items, nil } // 移除棋子 -func (cb *ChessBorad) RemoveChess(Id int) error { +func (cb *ChessBorad) RemoveChess(id int) error { find := false for k, v := range cb.ChessList { - if v == Id { + if v == id { cb.ChessList = append(cb.ChessList[:k], cb.ChessList[k+1:]...) find = true break @@ -269,11 +269,11 @@ func (cb *ChessBorad) RemoveChess(Id int) error { if !find { return errors.New("chess id not exist") } - ChessType := mergeDataCfg.GetTypeById(Id) - if ChessType == "Emitter" { - v, ok := cb.EmitList[Id] + chessType := mergeDataCfg.GetTypeById(id) + if chessType == "Emitter" { + v, ok := cb.EmitList[id] if v > 0 && ok { - cb.EmitList[Id]-- + cb.EmitList[id]-- } } return nil @@ -282,39 +282,39 @@ func (cb *ChessBorad) RemoveChess(Id int) error { // emitListToSlice 将 EmitList 过滤并转换为发射器 ID 列表。 // retireFilter 为 true 时过滤已退役的发射器。 func (cb *ChessBorad) emitListToSlice(retireFilter bool) []int { - EM := make(map[string]int) + emitMap := make(map[string]int) for k, v := range cb.EmitList { if v <= 0 { delete(cb.EmitList, k) continue } - EmitID := mergeDataCfg.GetEmitId(k) - if EmitID == "" { + emitID := mergeDataCfg.GetEmitId(k) + if emitID == "" { continue } - if retireFilter && cb.Retire[EmitID] >= EMIT_RETIRE_START { + if retireFilter && cb.Retire[emitID] >= EMIT_RETIRE_START { continue } if mergeDataCfg.GetEmitType(k) == "sub" { continue } - EM[EmitID] = max(EM[EmitID], k) + emitMap[emitID] = max(emitMap[emitID], k) } for _, v := range cb.ChessBag.List { - EmitID := mergeDataCfg.GetEmitId(v.ChessId) - if EmitID == "" { + emitID := mergeDataCfg.GetEmitId(v.ChessId) + if emitID == "" { continue } - if retireFilter && cb.Retire[EmitID] >= EMIT_RETIRE_START { + if retireFilter && cb.Retire[emitID] >= EMIT_RETIRE_START { continue } if mergeDataCfg.GetEmitType(v.ChessId) == "sub" { continue } - EM[EmitID] = max(EM[EmitID], (v.ChessId)) + emitMap[emitID] = max(emitMap[emitID], (v.ChessId)) } - result := make([]int, 0, len(EM)) - for _, v := range EM { + result := make([]int, 0, len(emitMap)) + for _, v := range emitMap { result = append(result, v) } if !retireFilter { @@ -336,7 +336,7 @@ func (cb *ChessBorad) GetEmitList() []int { } // 完成订单 移除棋子 -func (cb *ChessBorad) FinishOrder(ChessId []int) error { +func (cb *ChessBorad) FinishOrder(chessId []int) error { unlockChessList := cb.GetUnlockChessList() unlockChessMap := make(map[int]int) for _, v := range unlockChessList { @@ -344,13 +344,13 @@ func (cb *ChessBorad) FinishOrder(ChessId []int) error { } var boardChess []int - var BagChess []int - for _, v := range ChessId { + var bagChess []int + for _, v := range chessId { if unlockChessMap[v] > 0 { unlockChessMap[v]-- boardChess = append(boardChess, v) } else { - BagChess = append(BagChess, v) + bagChess = append(bagChess, v) } } for _, v := range boardChess { @@ -359,7 +359,7 @@ func (cb *ChessBorad) FinishOrder(ChessId []int) error { return err } } - for _, v := range BagChess { + for _, v := range bagChess { err := cb.FinishOrderChessByBag(v) if err != nil { return err @@ -369,37 +369,47 @@ func (cb *ChessBorad) FinishOrder(ChessId []int) error { } // 完成订单 移除棋子 -func (cb *ChessBorad) FinishOrderChess(Chess int) error { +func (cb *ChessBorad) FinishOrderChess(chess int) error { for k, v := range cb.ChessList { - if v == Chess { + if v == chess { cb.ChessList = append(cb.ChessList[:k], cb.ChessList[k+1:]...) return nil } } - return fmt.Errorf("order finish board chess id:%d not exist", Chess) + return fmt.Errorf("order finish board chess id:%d not exist", chess) +} + +func (cb *ChessBorad) GetChessBagList() []int { + var chessBag []int + for _, v := range cb.ChessBag.List { + if v.ChessId > 0 { + chessBag = append(chessBag, v.ChessId) + } + } + return chessBag } // 完成订单 移除棋子 -func (cb *ChessBorad) FinishOrderChessByBag(Chess int) error { +func (cb *ChessBorad) FinishOrderChessByBag(chess int) error { for k, v := range cb.ChessBag.List { - if v.ChessId == Chess { + if v.ChessId == chess { cb.ChessBag.List[k] = ChessBagGrid{} return nil } } - return fmt.Errorf("order finish bag chess id:%d not exist", Chess) + return fmt.Errorf("order finish bag chess id:%d not exist", chess) } // 棋子转换 -func (cb *ChessBorad) ExChess(OldChessId, NewChessId int) error { - if OldChessId > 0 { - newList, b := GoUtil.PopElemSlice(cb.ChessList, OldChessId) +func (cb *ChessBorad) ExChess(oldChessId, newChessId int) error { + if oldChessId > 0 { + newList, b := GoUtil.PopElemSlice(cb.ChessList, oldChessId) if !b { return fmt.Errorf("ExChess chess id not exist") } cb.ChessList = newList } - return cb.AddChess(NewChessId) + return cb.AddChess(newChessId) } // 增加棋盘缓冲器 @@ -407,82 +417,82 @@ func (cb *ChessBorad) AddChessBuff(chess int) { cb.ChessBuff = append(cb.ChessBuff, chess) } -func (cb *ChessBorad) AddHonor(Id int) { - cb.Honor[Id] = 1 +func (cb *ChessBorad) AddHonor(id int) { + cb.Honor[id] = 1 } -func (cb *ChessBorad) RemoveHonor(Id int) { - delete(cb.Honor, Id) +func (cb *ChessBorad) RemoveHonor(id int) { + delete(cb.Honor, id) } // 从暂存区添加棋子到棋盘 -func (cb *ChessBorad) GetChessFromBuff(Chess int) error { +func (cb *ChessBorad) GetChessFromBuff(chess int) error { for i, v := range cb.ChessBuff { - if v == Chess { + if v == chess { cb.ChessBuff = append(cb.ChessBuff[:i], cb.ChessBuff[i+1:]...) - return cb.AddChess(Chess) + return cb.AddChess(chess) } } return errors.New("chess id not exist") } // 扣除零件 -func (cb *ChessBorad) LosePart(PartId int, Num int) error { - v, ok := cb.PartBag.List[PartId] - if !ok || v.Num < Num { - return errors.New("part id not exist or num not enough" + fmt.Sprintf("PartId: %d, Num: %d, ok: %v", PartId, Num, ok)) +func (cb *ChessBorad) LosePart(partId int, num int) error { + v, ok := cb.PartBag.List[partId] + if !ok || v.Num < num { + return errors.New("part id not exist or num not enough" + fmt.Sprintf("PartId: %d, Num: %d, ok: %v", partId, num, ok)) } - v.Num -= Num - cb.PartBag.List[PartId] = v + v.Num -= num + cb.PartBag.List[partId] = v return nil } // 返回数据 func (cb *ChessBorad) BackData() *msg.ResPlayerChessInfo { - var ChessBagGrids []*msg.ChessBagGrid + var chessBagGrids []*msg.ChessBagGrid for k, v := range cb.ChessBag.List { - ChessBagGrids = append(ChessBagGrids, &msg.ChessBagGrid{ + chessBagGrids = append(chessBagGrids, &msg.ChessBagGrid{ Id: int32(k), ChessId: int32(v.ChessId), EmitId: int32(v.EmitId), }) } - var PartBagGrids []*msg.PartBagGrid + var partBagGrids []*msg.PartBagGrid for k, v := range cb.PartBag.List { - PartBagGrids = append(PartBagGrids, &msg.PartBagGrid{ + partBagGrids = append(partBagGrids, &msg.PartBagGrid{ PartId: int32(k), Count: int32(v.Num), }) } - Re := make([]string, 0, len(cb.Retire)) + retire := make([]string, 0, len(cb.Retire)) for k, v := range cb.Retire { if v == EMIT_RETIRE_END { - Re = append(Re, k) + retire = append(retire, k) } } - Ho := make([]int32, 0, len(cb.Honor)) + honor := make([]int32, 0, len(cb.Honor)) for k := range cb.Honor { - Ho = append(Ho, int32(k)) + honor = append(honor, int32(k)) } - Rw := make([]string, 0, len(cb.RetireReward)) + retireReward := make([]string, 0, len(cb.RetireReward)) for k, v := range cb.RetireReward { if v { - Rw = append(Rw, k) + retireReward = append(retireReward, k) } } return &msg.ResPlayerChessInfo{ ChessList: GoUtil.SliceIntToInt32(cb.ChessList), ChessBuff: GoUtil.SliceIntToInt32(cb.ChessBuff), - RetireEmit: Re, - RetireReward: Rw, - Honor: Ho, + RetireEmit: retire, + RetireReward: retireReward, + Honor: honor, ChessBag: &msg.ChessBag{ - ChessBagGrids: ChessBagGrids, + ChessBagGrids: chessBagGrids, ChessBuyCnt: int32(cb.ChessBag.Buy), ChessFreeCnt: int32(cb.ChessBag.Free), }, PartBag: &msg.PartBag{ - PartBagGrids: PartBagGrids, + PartBagGrids: partBagGrids, }, } } @@ -494,8 +504,8 @@ func (cb *ChessBorad) BuyChessBagGrid() error { cb.ChessBag.Free-- return nil } - MaxBuy := mergeDataCfg.GetChessBagBugNum() - if cb.ChessBag.Buy >= MaxBuy { + maxBuy := mergeDataCfg.GetChessBagBugNum() + if cb.ChessBag.Buy >= maxBuy { return fmt.Errorf("ChessBag can buy is full") } cb.ChessBag.Buy++ @@ -507,31 +517,31 @@ func (cb *ChessBorad) GetBuyChessBagGridCost() []*item.Item { if cb.ChessBag.Free > 0 { return nil } - NeedDiamond := 10 + 15*cb.ChessBag.Buy - return []*item.Item{{Id: item.ITEM_DIAMOND_ID, Num: -NeedDiamond}} + needDiamond := 10 + 15*cb.ChessBag.Buy + return []*item.Item{{Id: item.ITEM_DIAMOND_ID, Num: -needDiamond}} } // 升级触发解锁棋盘背包 -func (cb *ChessBorad) TriggerChessBagUnlock(Lv int) bool { - UnlockPack := userCfg.GetUnlockPack(Lv) - if UnlockPack > 0 { - cb.ChessBag.Free += UnlockPack +func (cb *ChessBorad) TriggerChessBagUnlock(lv int) bool { + unlockPack := userCfg.GetUnlockPack(lv) + if unlockPack > 0 { + cb.ChessBag.Free += unlockPack return true } return false } // 将棋子放入背包 -func (cb *ChessBorad) PutChessInBag(Grid, ChessId, EmitId int) error { - err := cb.RemoveChess(ChessId) +func (cb *ChessBorad) PutChessInBag(grid, chessId, emitId int) error { + err := cb.RemoveChess(chessId) if err != nil { return err } - if Grid == 0 { // 背包id为0且发射器已退役奖励已领取 直接放入荣誉室 - cb.AddHonor(ChessId) + if grid == 0 { // 背包id为0且发射器已退役奖励已领取 直接放入荣誉室 + cb.AddHonor(chessId) return nil } - v, ok := cb.ChessBag.List[Grid] + v, ok := cb.ChessBag.List[grid] if !ok { return errors.New("ChessBag Grid unlock") } @@ -539,50 +549,50 @@ func (cb *ChessBorad) PutChessInBag(Grid, ChessId, EmitId int) error { if v.ChessId > 0 { return errors.New("ChessBag Grid is not empty") } - cb.ChessBag.List[Grid] = ChessBagGrid{ - ChessId: ChessId, - EmitId: EmitId, + cb.ChessBag.List[grid] = ChessBagGrid{ + ChessId: chessId, + EmitId: emitId, } return nil } // 将零件放入背包 -func (cb *ChessBorad) PutPartInBag(ChessId int) error { - err := cb.RemoveChess(ChessId) +func (cb *ChessBorad) PutPartInBag(chessId int) error { + err := cb.RemoveChess(chessId) if err != nil { return err } - ChessLv := mergeDataCfg.GetLvById(ChessId) - ChessMaxLv := mergeDataCfg.GetMaxLvById(ChessId) + ChessLv := mergeDataCfg.GetLvById(chessId) + ChessMaxLv := mergeDataCfg.GetMaxLvById(chessId) if ChessLv != ChessMaxLv { // 零件只能放入满级棋子 return errors.New("part Lv is not max") } if cb.PartBag.List == nil { cb.PartBag.List = make(map[int]PartBagGrid) } - Num := cb.PartBag.List[ChessId].Num - cb.PartBag.List[ChessId] = PartBagGrid{ - PartId: ChessId, + Num := cb.PartBag.List[chessId].Num + cb.PartBag.List[chessId] = PartBagGrid{ + PartId: chessId, Num: Num + 1, } return nil } // 将棋子从背包取出 -func (cb *ChessBorad) TakeChessOutBag(Grid int) (int, error) { - if Grid < 0 { - cb.RemoveHonor(-Grid) - cb.AddChess(-Grid) +func (cb *ChessBorad) TakeChessOutBag(grid int) (int, error) { + if grid < 0 { + cb.RemoveHonor(-grid) + cb.AddChess(-grid) return 0, nil } - GridInfo, ok := cb.ChessBag.List[Grid] + GridInfo, ok := cb.ChessBag.List[grid] if !ok { return 0, errors.New("ChessBag Grid unlock") } if GridInfo.ChessId == 0 { return 0, errors.New("ChessBag Grid is empty") } - cb.ChessBag.List[Grid] = ChessBagGrid{} + cb.ChessBag.List[grid] = ChessBagGrid{} return GridInfo.ChessId, cb.AddChess(GridInfo.ChessId) } @@ -607,42 +617,42 @@ func (cb *ChessBorad) GetRetireEmit() map[string]int { } // 获取退役发射器的棋子列表 -func (cb *ChessBorad) GetRetireChess(EmitType string) []int { - v, ok := cb.RetireChessMap[EmitType] +func (cb *ChessBorad) GetRetireChess(emitType string) []int { + v, ok := cb.RetireChessMap[emitType] if !ok { return nil } if len(v) == 1 { - cb.RetireChessMap[EmitType] = nil + cb.RetireChessMap[emitType] = nil return v } if len(v) == 0 { return nil } - cb.RetireChessMap[EmitType] = v[2:] + cb.RetireChessMap[emitType] = v[2:] return v[:2] } // 开始退役 -func (cb *ChessBorad) BeginRetire(EmitType string) error { +func (cb *ChessBorad) BeginRetire(emitType string) error { if cb.Retire == nil { cb.Retire = make(map[string]int) } - _, ok := cb.Retire[EmitType] + _, ok := cb.Retire[emitType] if ok { return errors.New("chess has been retired") } - cb.Retire[EmitType] = EMIT_RETIRE_START + cb.Retire[emitType] = EMIT_RETIRE_START return nil } // 退役棋子处理 -func (cb *ChessBorad) RetireOrder(EmitType string) error { - if cb.Retire[EmitType] != 1 { +func (cb *ChessBorad) RetireOrder(emitType string) error { + if cb.Retire[emitType] != 1 { return errors.New("chess has not been retired") } chess := make([]int, 0, len(cb.ChessMap)) - EmitProduct := mergeDataCfg.GetEmitOrderProduce(EmitType) + EmitProduct := mergeDataCfg.GetEmitOrderProduce(emitType) for k, v := range cb.ChessMap { arr := strings.Split(k, "@") Color := mergeDataCfg.GetColorById(int(v)) @@ -652,31 +662,31 @@ func (cb *ChessBorad) RetireOrder(EmitType string) error { } sort.Sort(sort.Reverse(sort.IntSlice(chess))) - cb.RetireChessMap[EmitType] = chess - cb.Retire[EmitType] = EMIT_RETIRE_ING + cb.RetireChessMap[emitType] = chess + cb.Retire[emitType] = EMIT_RETIRE_ING return nil } // 完成退役 -func (cb *ChessBorad) FinishRetire(EmitType string) error { - _, ok := cb.Retire[EmitType] +func (cb *ChessBorad) FinishRetire(emitType string) error { + _, ok := cb.Retire[emitType] if !ok { return errors.New("chess has not been retired") } - cb.Retire[EmitType] = EMIT_RETIRE_END + cb.Retire[emitType] = EMIT_RETIRE_END return nil } // 获取资源宝箱奖励 -func (cb *ChessBorad) SourceChest(ChessId int) ([]*item.Item, error) { - err := cb.RemoveChess(ChessId) +func (cb *ChessBorad) SourceChest(chessId int) ([]*item.Item, error) { + err := cb.RemoveChess(chessId) if err != nil { return nil, err } - if ChessId == CHESS_SOURCE_CHEST { + if chessId == CHESS_SOURCE_CHEST { return mergeDataCfg.GetSourceChestItem(), nil } - if ChessId == CHESS_HIGH_SOURCE_CHEST { + if chessId == CHESS_HIGH_SOURCE_CHEST { return mergeDataCfg.GetHighSourceChestItem(), nil } @@ -684,16 +694,16 @@ func (cb *ChessBorad) SourceChest(ChessId int) ([]*item.Item, error) { } // 降低棋子等级 -func (cb *ChessBorad) SeparateChess(ChessId int) (int, error) { - ChessLv := mergeDataCfg.GetLvById(ChessId) - if ChessLv == 1 { +func (cb *ChessBorad) SeparateChess(chessId int) (int, error) { + chessLv := mergeDataCfg.GetLvById(chessId) + if chessLv == 1 { return 0, errors.New("chess lv is 1") } - ChessType := mergeDataCfg.GetTypeById(ChessId) - if ChessType != "Product" { + chessType := mergeDataCfg.GetTypeById(chessId) + if chessType != "Product" { return 0, errors.New("chess type is not product") } - err := cb.RemoveChess(ChessId) + err := cb.RemoveChess(chessId) if err != nil { return 0, err } @@ -701,25 +711,25 @@ func (cb *ChessBorad) SeparateChess(ChessId int) (int, error) { if err != nil { return 0, err } - ChessColor := mergeDataCfg.GetColorById(ChessId) - NewChess := mergeDataCfg.GetChessIdByLvAndColor(ChessLv-1, ChessColor) - cb.AddChess(NewChess) - cb.AddChess(NewChess) - return NewChess, nil + chessColor := mergeDataCfg.GetColorById(chessId) + newChess := mergeDataCfg.GetChessIdByLvAndColor(chessLv-1, chessColor) + cb.AddChess(newChess) + cb.AddChess(newChess) + return newChess, nil } // 提高棋子等级 -func (cb *ChessBorad) UpgradeChess(ChessId int) (int, error) { - ChessLv := mergeDataCfg.GetLvById(ChessId) - ChessMaxLv := mergeDataCfg.GetMaxLvById(ChessId) - if ChessLv == ChessMaxLv { +func (cb *ChessBorad) UpgradeChess(chessId int) (int, error) { + chessLv := mergeDataCfg.GetLvById(chessId) + chessMaxLv := mergeDataCfg.GetMaxLvById(chessId) + if chessLv == chessMaxLv { return 0, errors.New("chess lv is max") } - ChessType := mergeDataCfg.GetTypeById(ChessId) - if ChessType != "Product" { + chessType := mergeDataCfg.GetTypeById(chessId) + if chessType != "Product" { return 0, errors.New("chess type is not product") } - err := cb.RemoveChess(ChessId) + err := cb.RemoveChess(chessId) if err != nil { return 0, err } @@ -727,9 +737,9 @@ func (cb *ChessBorad) UpgradeChess(ChessId int) (int, error) { if err != nil { return 0, err } - NewChess := mergeDataCfg.GetChessIdByLvAndColor(ChessLv+1, mergeDataCfg.GetColorById(ChessId)) - cb.AddChess(NewChess) - return NewChess, nil + newChess := mergeDataCfg.GetChessIdByLvAndColor(chessLv+1, mergeDataCfg.GetColorById(chessId)) + cb.AddChess(newChess) + return newChess, nil } func (cb *ChessBorad) GetPartBag() map[int]int { @@ -740,14 +750,14 @@ func (cb *ChessBorad) GetPartBag() map[int]int { return res } -func (cb *ChessBorad) GetRetireReward(Id string) ([]*item.Item, error) { - if cb.RetireReward[Id] == true { +func (cb *ChessBorad) GetRetireReward(id string) ([]*item.Item, error) { + if cb.RetireReward[id] == true { return nil, errors.New("emit retire reward has been get") } - if cb.Retire[Id] != EMIT_RETIRE_END { + if cb.Retire[id] != EMIT_RETIRE_END { return nil, errors.New("emit not finish retire") } - cb.RetireReward[Id] = true + cb.RetireReward[id] = true return mergeDataCfg.GetRetireReward(), nil } diff --git a/src/server/game/register_network_func.go b/src/server/game/register_network_func.go index e276000f..8adad8b3 100644 --- a/src/server/game/register_network_func.go +++ b/src/server/game/register_network_func.go @@ -64,10 +64,10 @@ func ReqPlayerBriefProfileDataFunc(player *Player, buf []byte) error { if err != nil { return err } - Uid := int(detail.DwUin) - PlayerSimpleData := G_GameLogicPtr.GetSimplePlayerByUid(Uid) - if PlayerSimpleData == nil { - log.Debug("玩家不存在, Uid:%d", Uid) + uid := int(detail.DwUin) + playerSimpleData := G_GameLogicPtr.GetSimplePlayerByUid(uid) + if playerSimpleData == nil { + log.Debug("玩家不存在, Uid:%d", uid) player.SendErrClienRes(&msg.ResPlayerBriefProfileData{ DwUin: detail.DwUin, }) @@ -75,13 +75,13 @@ func ReqPlayerBriefProfileDataFunc(player *Player, buf []byte) error { } player.PushClientRes(&msg.ResPlayerBriefProfileData{ DwUin: detail.DwUin, - ImageFrame: int32(PlayerSimpleData.Avatar), - ImageIcon: int32(PlayerSimpleData.Face), - DecorateCnt: int32(PlayerSimpleData.Decorate), - PicURL: PlayerSimpleData.FaceBookPic, - ActiveTime: int32(max(PlayerSimpleData.Loginout, PlayerSimpleData.Login)), - NickName: PlayerSimpleData.Name, - SetEmoji: GoUtil.MapIntToInt32(PlayerSimpleData.Emoji), + ImageFrame: int32(playerSimpleData.Avatar), + ImageIcon: int32(playerSimpleData.Face), + DecorateCnt: int32(playerSimpleData.Decorate), + PicURL: playerSimpleData.FaceBookPic, + ActiveTime: int32(max(playerSimpleData.Loginout, playerSimpleData.Login)), + NickName: playerSimpleData.Name, + SetEmoji: GoUtil.MapIntToInt32(playerSimpleData.Emoji), }) return nil } @@ -92,16 +92,16 @@ func ReqFriendPlayerSimple(player *Player, buf []byte) error { if err != nil { return err } - Uid := int(detail.Uid) - PlayerSimpleData := G_GameLogicPtr.GetResFriendPlayerByUid(Uid) - if PlayerSimpleData == nil { - log.Debug("玩家不存在, Uid:%d", Uid) + uid := int(detail.Uid) + playerSimpleData := G_GameLogicPtr.GetResFriendPlayerByUid(uid) + if playerSimpleData == nil { + log.Debug("玩家不存在, Uid:%d", uid) return errors.New("玩家不存在") } FriendMod := player.PlayMod.getFriendMod() - PlayerSimpleData.AddTime = FriendMod.GetAddTime(Uid) - PlayerSimpleData.Interact = FriendMod.GetInteractTime(Uid) - player.PushClientRes(PlayerSimpleData) + playerSimpleData.AddTime = FriendMod.GetAddTime(uid) + playerSimpleData.Interact = FriendMod.GetInteractTime(uid) + player.PushClientRes(playerSimpleData) return nil } @@ -150,10 +150,10 @@ func RegSetEneryFunc(player *Player, buf []byte) error { if err != nil { return err } - MaxEnergyMul := player.GetPlayerBaseMod().GetMaxEnergyMul(player) + maxEnergyMul := player.GetPlayerBaseMod().GetMaxEnergyMul(player) BaseMod := player.PlayMod.getBaseMod() - EnergyMul := BaseMod.GetEnergyMul() - if int(req.EnergyMul) > EnergyMul && int(req.EnergyMul) > MaxEnergyMul { + energyMul := BaseMod.GetEnergyMul() + if int(req.EnergyMul) > energyMul && int(req.EnergyMul) > maxEnergyMul { player.SendErrClienRes(&msg.ResSetEnergyMul{ ResultCode: msg.RES_CODE_FAIL, Msg: "能量倍数超过最大值", @@ -167,10 +167,10 @@ func RegSetEneryFunc(player *Player, buf []byte) error { }) player.PlayMod.getBaseMod().SetEnergyMul(int(req.EnergyMul)) OrderMod := player.PlayMod.getOrderMod() - Lv := player.GetPlayerBaseMod().GetLevel() - Emit := player.PlayMod.getChessMod().GetOrderEmit() - ChessList := player.PlayMod.getChessMod().GetUnlockChessList() - OrderMod.ChangeEnergyMul(Lv, Emit, int(req.EnergyMul), ChessList) + lv := player.GetPlayerBaseMod().GetLevel() + emit := player.PlayMod.getChessMod().GetOrderEmit() + chessList := player.PlayMod.getChessMod().GetUnlockChessList() + OrderMod.ChangeEnergyMul(lv, emit, int(req.EnergyMul), chessList) player.InitOrderItem() player.PlayMod.save() player.PushClientRes(OrderMod.BackData()) @@ -221,8 +221,8 @@ func RegHandbookAllReward(player *Player, buf []byte) error { if err != nil { return err } - AllChess := mergeDataCfg.GetAllChessBySeries(req.Type) - Items, err := player.PlayMod.getHandbookMod().CollectItem(req.Type, AllChess) + allChess := mergeDataCfg.GetAllChessBySeries(req.Type) + items, err := player.PlayMod.getHandbookMod().CollectItem(req.Type, allChess) if err != nil { player.SendErrClienRes(&msg.ResHandbookAllReward{ Code: msg.RES_CODE_FAIL, @@ -230,7 +230,7 @@ func RegHandbookAllReward(player *Player, buf []byte) error { }) return err } - err = player.HandleItem(Items, msg.ITEM_POP_LABEL_HandbookAllReward.String()) + err = player.HandleItem(items, msg.ITEM_POP_LABEL_HandbookAllReward.String()) if err != nil { player.SendErrClienRes(&msg.ResHandbookAllReward{ Code: msg.RES_CODE_FAIL, @@ -256,7 +256,7 @@ func RegHandbookAllReward(player *Player, buf []byte) error { }) player.TeLog("collection_like", map[string]interface{}{ "collection_type": req.Type, - "collection_reward": Items, + "collection_reward": items, }) player.PushClientRes(player.PlayMod.getHandbookMod().BackData()) player.PlayMod.save() @@ -273,17 +273,17 @@ func ReqRewardOrder(player *Player, buf []byte) error { OrderMod := player.PlayMod.getOrderMod() ChessMod := player.PlayMod.getChessMod() LimitedTimeEventMod := player.PlayMod.getLimitedTimeEventMod() - Item, mergeList, OrderType, Star, err := OrderMod.RewardOrder(int(req.OrderId)) - if OrderType == order.Pet_type { - Item = player.FormatPetOrderItem(Item) + items, mergeList, orderType, star, err := OrderMod.RewardOrder(int(req.OrderId)) + if orderType == order.Pet_type { + items = player.FormatPetOrderItem(items) } - if OrderType == order.Super_type { + if orderType == order.Super_type { virtualEnergy := order.GetVirtualEnergy(mergeList, ChessMod.GetStarEmitList()) superOrderItem := limitedTimeEventCfg.GetSuperOrderReward(virtualEnergy) - Item = item.Merge(Item, superOrderItem) + items = item.Merge(items, superOrderItem) } - ActItem := player.GetActivityItem(GoUtil.Int32ToInt(req.ActType)) - Item = item.Merge(Item, ActItem) + actItem := player.GetActivityItem(GoUtil.Int32ToInt(req.ActType)) + items = item.Merge(items, actItem) if !OrderMod.CheckSuperOrder() { if LimitedTimeEventMod.RemoveSuperOrder() { player.PushClientRes(&msg.LimitEventNotify{ @@ -293,25 +293,25 @@ func ReqRewardOrder(player *Player, buf []byte) error { } } if LimitedTimeEventMod.CheckExist(limitedTimeEvent.EVENT_TYPE_METEOR_SHOW) { //流星雨活动 - AddItem := LimitedTimeEventMod.GetMeteorReward(mergeList, ChessMod.GetStarEmitList()) - if len(AddItem) > 0 { + addItem := LimitedTimeEventMod.GetMeteorReward(mergeList, ChessMod.GetStarEmitList()) + if len(addItem) > 0 { player.TeLog("time_limited_event_action", map[string]interface{}{ "event_type": limitedTimeEventCfg.GetEventName(limitedTimeEvent.EVENT_TYPE_METEOR_SHOW), - "item_list": AddItem, + "item_list": addItem, }) } - Item = item.Merge(Item, AddItem) + items = item.Merge(items, addItem) } if LimitedTimeEventMod.CheckExist(limitedTimeEvent.EVENT_TYPE_MONEY_CAT) { //招财猫活动 - if OrderType != order.Super_type { - AddItem := LimitedTimeEventMod.GetMoneyCatReward(mergeList) - if len(AddItem) > 0 { + if orderType != order.Super_type { + addItem := LimitedTimeEventMod.GetMoneyCatReward(mergeList) + if len(addItem) > 0 { player.TeLog("time_limited_event_action", map[string]interface{}{ "event_type": limitedTimeEventCfg.GetEventName(limitedTimeEvent.EVENT_TYPE_MONEY_CAT), - "item_list": AddItem, + "item_list": addItem, }) } - Item = item.Merge(Item, AddItem) + items = item.Merge(items, addItem) } } if err != nil { @@ -331,7 +331,7 @@ func ReqRewardOrder(player *Player, buf []byte) error { return err } - err = player.HandleItem(Item, msg.ITEM_POP_LABEL_OrderReward.String()) + err = player.HandleItem(items, msg.ITEM_POP_LABEL_OrderReward.String()) if err != nil { player.SendErrClienRes(&msg.ResRewardOrder{ Code: msg.RES_CODE_FAIL, @@ -341,9 +341,9 @@ func ReqRewardOrder(player *Player, buf []byte) error { } if LimitedTimeEventMod.CheckExist(limitedTimeEvent.EVENT_TYPE_CHEST_RAIN) { //宝箱雨活动 - ChestRainItems := LimitedTimeEventMod.GetChestReward(mergeList, ChessMod.GetStarEmitList()) + chestRainItems := LimitedTimeEventMod.GetChestReward(mergeList, ChessMod.GetStarEmitList()) player.args["ResItemPopId"] = req.OrderId - err = player.HandleItem(ChestRainItems, msg.ITEM_POP_LABEL_LimitEventChestRain.String()) + err = player.HandleItem(chestRainItems, msg.ITEM_POP_LABEL_LimitEventChestRain.String()) if err != nil { player.SendErrClienRes(&msg.ResRewardOrder{ Code: msg.RES_CODE_FAIL, @@ -352,14 +352,14 @@ func ReqRewardOrder(player *Player, buf []byte) error { return err } - if len(ChestRainItems) > 0 { + if len(chestRainItems) > 0 { player.PushClientRes(&msg.ResChessRainReward{ - Items: item.ItemToMsg(ChestRainItems), + Items: item.ItemToMsg(chestRainItems), Id: 0, }) player.TeLog("time_limited_event_action", map[string]interface{}{ "event_type": limitedTimeEventCfg.GetEventName(limitedTimeEvent.EVENT_TYPE_CHEST_RAIN), - "item_list": ChestRainItems, + "item_list": chestRainItems, }) } } @@ -377,7 +377,7 @@ func ReqRewardOrder(player *Player, buf []byte) error { player.QuestTrigger(&quest.Trigger{Label: quest.TRIGGER_LABEL_FINISHORDER}) order_star_reward := 0 order_item_reward := []int{} - for _, v := range Item { + for _, v := range items { if v.Id == item.ITEM_STAR_ID { order_star_reward += v.Num } else { @@ -385,32 +385,26 @@ func ReqRewardOrder(player *Player, buf []byte) error { } } preset_order_group := 0 - if OrderType != order.Preview_type && OrderType != order.Fixed_type { + if orderType != order.Preview_type && orderType != order.Fixed_type { preset_order_group = -1 } preset_order_group, preset_order_step := orderCfg.GetStartOrderInfo(int(req.OrderId)) player.TeLog("order_finish", map[string]interface{}{ "order_id": int(req.OrderId), "order_item_id": mergeList, - "order_type": OrderType, + "order_type": orderType, "order_star_reward": order_star_reward, "order_item_reward": order_item_reward, - "order_star_value": Star, + "order_star_value": star, "preset_order_group": preset_order_group, "preset_order_step": preset_order_step, }) - player.PetItemGetLog(Item, nil, "Order") + player.PetItemGetLog(items, nil, "Order") player.EmitRetireTrigger2() Lv := player.GetPlayerBaseMod().GetLevel() EnergyMul := player.PlayMod.getBaseMod().GetEnergyMul() Emit := ChessMod.GetOrderEmit() player.TriggerSeedSource() - //NewOrder := TriggerSeedOrder(player) - // if NewOrder == nil || len(NewOrder.MergeId) == 0 { - // OrderMod.CreateOrder(Lv, Emit, EnergyMul) - // } else { - // OrderMod.CreateOrderSeed(NewOrder) - // } player.TriggerOrder(Lv, order.TRIGGER_TYPE_ORDER, Emit, EnergyMul) player.AddOrder() player.AddHighOrder() @@ -424,22 +418,22 @@ func ReqRewardOrder(player *Player, buf []byte) error { // 锦标赛增加积分 if player.GetPlayerBaseMod().GetLevel() >= 17 { - ChessList := make([]int, 0) + chessList := make([]int, 0) for _, v := range mergeList { color := mergeDataCfg.GetColorById(v) - Emit := order.GetEmitByColor(ChessMod.GetStarEmitList(), color) - EmitType := mergeDataCfg.GetEmitType(Emit) - if EmitType == "auto" { + emit := order.GetEmitByColor(ChessMod.GetStarEmitList(), color) + emitType := mergeDataCfg.GetEmitType(emit) + if emitType == "auto" { continue } - ChessList = append(ChessList, v) + chessList = append(chessList, v) } ChampshipMod := player.PlayMod.getChampshipMod() - ChampshipMod.AddScore(ChessList) + ChampshipMod.AddScore(chessList) player.HandleInChampshipRank() } FriendTreasureMod := player.PlayMod.getFriendTreasureMod() - FriendTreasureMod.AddStar(Star/20, player.GetOrderFactor()) + FriendTreasureMod.AddStar(star/20, player.GetOrderFactor()) player.PushClientRes(FriendTreasureMod.NotifyStar()) // 限时事件增加进度 LimitedTimeEventMod.AddProgress(player.GetPlayerBaseMod().GetLevel()) @@ -470,7 +464,7 @@ func ReqDelOrder(player *Player, buf []byte) error { return err } OrderMod := player.PlayMod.getOrderMod() - DelOrder, err := OrderMod.DelOrder(int(req.OrderId)) + delOrder, err := OrderMod.DelOrder(int(req.OrderId)) if err != nil { player.SendErrClienRes(&msg.ResDelOrder{ Code: msg.RES_CODE_FAIL, @@ -483,7 +477,7 @@ func ReqDelOrder(player *Player, buf []byte) error { }) player.TeLog("order_delete", map[string]interface{}{ "order_id": int(req.OrderId), - "order": DelOrder, + "order": delOrder, }) player.PushClientRes(OrderMod.BackData()) return nil @@ -497,12 +491,12 @@ func ReqDecorate(player *Player, buf []byte) error { return err } DecorateMod := player.PlayMod.getDecorateMod() - DecorateId := int(req.DecorateId) - AreaId := int(req.AreaId) + decorateId := int(req.DecorateId) + areaId := int(req.AreaId) LimitEventMod := player.PlayMod.getLimitedTimeEventMod() - DecorateOffIsExist := LimitEventMod.CheckExist(limitedTimeEvent.EVENT_TYPE_DECORATE_OFF) - CostItem, PetExp, PartItem := DecorateMod.GetDecorateCostItem(AreaId, DecorateId, DecorateOffIsExist) - err = player.HandleLoseItem(CostItem, msg.ITEM_POP_LABEL_DecorateCost.String()) // 扣除道具 + decorateOffIsExist := LimitEventMod.CheckExist(limitedTimeEvent.EVENT_TYPE_DECORATE_OFF) + costItem, petExp, partItem := DecorateMod.GetDecorateCostItem(areaId, decorateId, decorateOffIsExist) + err = player.HandleLoseItem(costItem, msg.ITEM_POP_LABEL_DecorateCost.String()) // 扣除道具 if err != nil { player.SendErrClienRes(&msg.ResDecorate{ Code: msg.RES_CODE_FAIL, @@ -510,7 +504,7 @@ func ReqDecorate(player *Player, buf []byte) error { }) return err } - AddItem, err := DecorateMod.Decorate(AreaId, DecorateId) // 装饰 + addItem, err := DecorateMod.Decorate(areaId, decorateId) // 装饰 if err != nil { player.SendErrClienRes(&msg.ResDecorate{ Code: msg.RES_CODE_FAIL, @@ -520,8 +514,8 @@ func ReqDecorate(player *Player, buf []byte) error { } player.QuestTrigger(&quest.Trigger{Label: quest.TRIGGER_LABEL_DECORATE, A: []interface{}{1}}) EnergyItem := DecorateMod.GetDecorateAddEnergy(1) - AddItem = item.Merge(AddItem, EnergyItem) - err = player.HandleItem(AddItem, msg.ITEM_POP_LABEL_DecorateAdd.String()) // 增加道具 + addItem = item.Merge(addItem, EnergyItem) + err = player.HandleItem(addItem, msg.ITEM_POP_LABEL_DecorateAdd.String()) // 增加道具 if err != nil { player.SendErrClienRes(&msg.ResDecorate{ Code: msg.RES_CODE_FAIL, @@ -529,7 +523,7 @@ func ReqDecorate(player *Player, buf []byte) error { }) return err } - _, err = player.GetPlayerBaseMod().AddExp(player, 10, PetExp) + _, err = player.GetPlayerBaseMod().AddExp(player, 10, petExp) if err != nil { player.SendErrClienRes(&msg.ResDecorate{ Code: msg.RES_CODE_FAIL, @@ -537,14 +531,14 @@ func ReqDecorate(player *Player, buf []byte) error { }) return err } - if AddItem != nil { + if addItem != nil { player.TeLog("scene_reward", map[string]interface{}{ "deco_step_id": fmt.Sprintf("%d_%d", DecorateMod.AreaId, DecorateMod.Progress), - "item_list": AddItem, + "item_list": addItem, }) } // 跨越场景 - if DecorateMod.GetAreaId() != AreaId { // 解锁上报 + if DecorateMod.GetAreaId() != areaId { // 解锁上报 LimitEventMod := player.PlayMod.getLimitedTimeEventMod() if LimitEventMod.AddSenceDashTimes() { player.PushClientRes(LimitEventMod.BackData()) @@ -554,24 +548,24 @@ func ReqDecorate(player *Player, buf []byte) error { }) } player.TeLog("finish_deco", map[string]interface{}{ - "deco_step_id": fmt.Sprintf("%d_%d", AreaId, DecorateId), - "material_cost": PartItem, + "deco_step_id": fmt.Sprintf("%d_%d", areaId, decorateId), + "material_cost": partItem, }) FriendMod := player.PlayMod.getFriendMod() - if AreaId == 1 && DecorateId == 20 { + if areaId == 1 && decorateId == 20 { FriendMod.AddActLog(friend.ACT_LOG_TYPE_COMPLETE_RESTROOM, "") } - if AreaId == 1 && DecorateId == 29 { + if areaId == 1 && decorateId == 29 { FriendMod.AddActLog(friend.ACT_LOG_TYPE_COMPLETE_RESTAURANT, "") } - if AreaId == 1 && DecorateId == 36 { + if areaId == 1 && decorateId == 36 { FriendMod.AddActLog(friend.ACT_LOG_TYPE_COMPLETE_BATHROOM, "") } - if AreaId == 1 && DecorateId == 44 { + if areaId == 1 && decorateId == 44 { FriendMod.AddActLog(friend.ACT_LOG_TYPE_COMPLETE_CLOAKROOM, "") } - if AreaId != DecorateMod.AreaId { - FriendMod.AddActLog(friend.ACT_LOG_TYPE_COMPLETE_CHAPTER_SCENES, GoUtil.String(AreaId)) + if areaId != DecorateMod.AreaId { + FriendMod.AddActLog(friend.ACT_LOG_TYPE_COMPLETE_CHAPTER_SCENES, GoUtil.String(areaId)) } player.PlayMod.save() player.PushClientRes(DecorateMod.BackData()) @@ -592,20 +586,20 @@ func ReqDecorateAll(player *Player, buf []byte) error { return err } DecorateMod := player.PlayMod.getDecorateMod() - AreaId := DecorateMod.GetAreaId() - UnLockLv := decorateCfg.GetOneKeyDecorateUnlockLv() - if player.GetPlayerBaseMod().GetLevel() < UnLockLv { + areaId := DecorateMod.GetAreaId() + unLockLv := decorateCfg.GetOneKeyDecorateUnlockLv() + if player.GetPlayerBaseMod().GetLevel() < unLockLv { player.SendErrClienRes(&msg.ResDecorateAll{ Code: msg.RES_CODE_FAIL, - Msg: fmt.Sprintf("等级不足%d级", UnLockLv), + Msg: fmt.Sprintf("等级不足%d级", unLockLv), }) return errors.New("等级不足") } PlayerBaseMod := player.GetPlayerBaseMod() LimitEventMod := player.PlayMod.getLimitedTimeEventMod() - DecorateOffIsExist := LimitEventMod.CheckExist(limitedTimeEvent.EVENT_TYPE_DECORATE_OFF) - CostItem, AddItem, DecorateNum, DecorateList, Log, PetExp := DecorateMod.DecorateAll(PlayerBaseMod.GetStar(), DecorateOffIsExist) - err = player.HandleLoseItem(CostItem, msg.ITEM_POP_LABEL_DecorateCost.String()) // 扣除道具 + decorateOffIsExist := LimitEventMod.CheckExist(limitedTimeEvent.EVENT_TYPE_DECORATE_OFF) + costItem, addItem, decorateNum, DecorateList, Log, PetExp := DecorateMod.DecorateAll(PlayerBaseMod.GetStar(), decorateOffIsExist) + err = player.HandleLoseItem(costItem, msg.ITEM_POP_LABEL_DecorateCost.String()) // 扣除道具 if err != nil { player.SendErrClienRes(&msg.ResDecorateAll{ Code: msg.RES_CODE_FAIL, @@ -613,10 +607,10 @@ func ReqDecorateAll(player *Player, buf []byte) error { }) return err } - player.QuestTrigger(&quest.Trigger{Label: quest.TRIGGER_LABEL_DECORATE, A: []interface{}{DecorateNum}}) - EnergyItem := DecorateMod.GetDecorateAddEnergy(DecorateNum) - AddItem = item.Merge(AddItem, EnergyItem) - err = player.HandleItem(AddItem, msg.ITEM_POP_LABEL_DecorateAdd.String()) // 增加道具 + player.QuestTrigger(&quest.Trigger{Label: quest.TRIGGER_LABEL_DECORATE, A: []interface{}{decorateNum}}) + EnergyItem := DecorateMod.GetDecorateAddEnergy(decorateNum) + addItem = item.Merge(addItem, EnergyItem) + err = player.HandleItem(addItem, msg.ITEM_POP_LABEL_DecorateAdd.String()) // 增加道具 if err != nil { player.SendErrClienRes(&msg.ResDecorateAll{ Code: msg.RES_CODE_FAIL, @@ -624,7 +618,7 @@ func ReqDecorateAll(player *Player, buf []byte) error { }) return err } - _, err = player.GetPlayerBaseMod().AddExp(player, 10*DecorateNum, PetExp) + _, err = player.GetPlayerBaseMod().AddExp(player, 10*decorateNum, PetExp) if err != nil { player.SendErrClienRes(&msg.ResDecorateAll{ Code: msg.RES_CODE_FAIL, @@ -634,7 +628,7 @@ func ReqDecorateAll(player *Player, buf []byte) error { } deco_step_id := []string{} for _, v := range DecorateList { - deco_step_id = append(deco_step_id, fmt.Sprintf("%d_%d", AreaId, v)) + deco_step_id = append(deco_step_id, fmt.Sprintf("%d_%d", areaId, v)) } player.TeLog("one_click_decoration", map[string]interface{}{ "deco_step_id": fmt.Sprintf("%v", deco_step_id), @@ -645,7 +639,7 @@ func ReqDecorateAll(player *Player, buf []byte) error { player.TeLog("scene_reward", v.(map[string]interface{})) } } - if DecorateMod.GetAreaId() != AreaId { // 解锁上报 + if DecorateMod.GetAreaId() != areaId { // 解锁上报 LimitEventMod := player.PlayMod.getLimitedTimeEventMod() if LimitEventMod.AddSenceDashTimes() { player.PushClientRes(LimitEventMod.BackData()) @@ -673,7 +667,7 @@ func ReqAreaReward(player *Player, buf []byte) error { return err } DecorateMod := player.PlayMod.getDecorateMod() - RewardItem, err := DecorateMod.GetDecorateReward(int(req.AreaId)) + rewardItem, err := DecorateMod.GetDecorateReward(int(req.AreaId)) if err != nil { player.SendErrClienRes(&msg.ResAreaReward{ Code: msg.RES_CODE_FAIL, @@ -681,7 +675,7 @@ func ReqAreaReward(player *Player, buf []byte) error { }) return err } - err = player.HandleItem(RewardItem, msg.ITEM_POP_LABEL_DecorateReward.String()) + err = player.HandleItem(rewardItem, msg.ITEM_POP_LABEL_DecorateReward.String()) if err != nil { player.SendErrClienRes(&msg.ResAreaReward{ Code: msg.RES_CODE_FAIL, @@ -702,6 +696,10 @@ func ReqAreaReward(player *Player, buf []byte) error { func UpdatePlayerChessDataFunc(player *Player, buf []byte) error { data := &PlayerChessData{} err := data.UpdatePlayerChessData(player, buf) + player.AddHighOrder() + player.AddHighOrder2() + player.InitOrderItem() + player.PushClientRes(player.PlayMod.getOrderMod().BackData()) player.RedBackData() player.UpdateUserInfo() return err @@ -718,13 +716,13 @@ func ReqGetChessFromBuff(player *Player, buf []byte) error { HandbookMod := player.PlayMod.getHandbookMod() OrderMod := player.PlayMod.getOrderMod() BaseMod := player.PlayMod.getBaseMod() - ChessId := int(req.ChessId) - err = ChessMod.GetChessFromBuff(ChessId) - Update := HandbookMod.SetHandbook(ChessId) + chessId := int(req.ChessId) + err = ChessMod.GetChessFromBuff(chessId) + update := HandbookMod.SetHandbook(chessId) AddNewEmit := make([]int, 0) - if Update { + if update { player.PushClientRes(HandbookMod.BackData()) - AddNewEmit = append(AddNewEmit, ChessId) + AddNewEmit = append(AddNewEmit, chessId) } if err != nil { player.SendErrClienRes(&msg.ResGetChessFromBuff{ @@ -743,16 +741,16 @@ func ReqGetChessFromBuff(player *Player, buf []byte) error { return err } player.TeLog("ReqGetChessFromBuff", map[string]interface{}{ - "chess_id": ChessId, + "chess_id": chessId, }) - Update = OrderMod.CreateExtraOrder([]int{ChessId}, AddNewEmit, ChessMod.GetUnlockChessList(), BaseMod.GetEnergyMul(), BaseMod.GetLevel()) - triggerComposeChess(player, ChessId, player.PlayMod.getBaseMod().EnergyMul, player.PlayMod.getChessMod().GetEmitList()) + update = OrderMod.CreateExtraOrder([]int{chessId}, AddNewEmit, ChessMod.GetUnlockChessList(), BaseMod.GetEnergyMul(), BaseMod.GetLevel()) + triggerComposeChess(player, chessId, player.PlayMod.getBaseMod().EnergyMul, player.PlayMod.getChessMod().GetEmitList()) player.EmitRetireTrigger1() + player.AddHighOrder() + player.AddHighOrder2() + player.InitOrderItem() player.PlayMod.save() - if Update { - player.InitOrderItem() - player.PushClientRes(OrderMod.BackData()) - } + player.PushClientRes(OrderMod.BackData()) player.PushClientRes(ChessMod.BackData()) player.PushClientRes(&msg.ResGetChessFromBuff{ Code: msg.RES_CODE_SUCCESS, @@ -761,7 +759,7 @@ func ReqGetChessFromBuff(player *Player, buf []byte) error { return nil } -// 放置棋子进背包 +// 放置零件棋子进背包 func ReqPutPartInBag(player *Player, buf []byte) error { req := &msg.ReqPutPartInBag{} err := proto.Unmarshal(buf, req) @@ -844,7 +842,7 @@ func ReqTakeChessOutBag(player *Player, buf []byte) error { return err } ChessMod := player.PlayMod.getChessMod() - ChessId, err := ChessMod.TakeChessOutBag(int(req.BagId)) + chessId, err := ChessMod.TakeChessOutBag(int(req.BagId)) if err != nil { player.SendErrClienRes(&msg.ResTakeChessOutBag{ Code: msg.RES_CODE_FAIL, @@ -863,13 +861,13 @@ func ReqTakeChessOutBag(player *Player, buf []byte) error { } OrderMod := player.PlayMod.getOrderMod() BaseMod := player.PlayMod.getBaseMod() - Update := OrderMod.CreateExtraOrder([]int{ChessId}, nil, ChessMod.GetUnlockChessList(), BaseMod.GetEnergyMul(), BaseMod.GetLevel()) - if Update { + update := OrderMod.CreateExtraOrder([]int{chessId}, nil, ChessMod.GetUnlockChessList(), BaseMod.GetEnergyMul(), BaseMod.GetLevel()) + if update { player.PushClientRes(OrderMod.BackData()) } player.TeLog("ReqTakeChessOutBag", map[string]interface{}{ "bag_id": req.BagId, - "chess_id": ChessId, + "chess_id": chessId, }) player.InitOrderItem() player.PlayMod.save() @@ -888,8 +886,8 @@ func ReqBuyChessBagGrid(player *Player, buf []byte) error { return err } ChessMod := player.PlayMod.getChessMod() - CostItem := ChessMod.GetBuyChessBagGridCost() - err = player.HandleItem(CostItem, msg.ITEM_POP_LABEL_BuyChessBagGrid.String()) + costItem := ChessMod.GetBuyChessBagGridCost() + err = player.HandleItem(costItem, msg.ITEM_POP_LABEL_BuyChessBagGrid.String()) if err != nil { player.SendErrClienRes(&msg.ResBuyChessBagGrid{ Code: msg.RES_CODE_FAIL, @@ -911,10 +909,10 @@ func ReqBuyChessBagGrid(player *Player, buf []byte) error { player.PushClientRes(&msg.ResBuyChessBagGrid{ Code: msg.RES_CODE_SUCCESS, }) - if len(CostItem) > 0 { + if len(costItem) > 0 { player.TeLog("warehouse_unlock", map[string]interface{}{ "unlock_type": "diamond", - "unlock_cost": CostItem[0].Num, + "unlock_cost": costItem[0].Num, }) } return nil @@ -927,7 +925,7 @@ func ReqSeparateChess(player *Player, buf []byte) error { return err } ChessMod := player.PlayMod.getChessMod() - NewChess, err := ChessMod.SeparateChess(int(req.ChessId)) + newChess, err := ChessMod.SeparateChess(int(req.ChessId)) if err != nil { player.SendErrClienRes(&msg.ResSeparateChess{ Code: msg.RES_CODE_FAIL, @@ -946,15 +944,15 @@ func ReqSeparateChess(player *Player, buf []byte) error { } player.TeLog("ReqSeparateChess", map[string]interface{}{ "chess_id": req.ChessId, - "new_chess": NewChess, + "new_chess": newChess, }) player.PlayMod.save() player.PushClientRes(ChessMod.BackData()) player.PushClientRes(&msg.ResSeparateChess{ Code: msg.RES_CODE_SUCCESS, }) - triggerComposeChess(player, NewChess, player.PlayMod.getBaseMod().EnergyMul, player.PlayMod.getChessMod().GetEmitList()) - triggerComposeChess(player, NewChess, player.PlayMod.getBaseMod().EnergyMul, player.PlayMod.getChessMod().GetEmitList()) + triggerComposeChess(player, newChess, player.PlayMod.getBaseMod().EnergyMul, player.PlayMod.getChessMod().GetEmitList()) + triggerComposeChess(player, newChess, player.PlayMod.getBaseMod().EnergyMul, player.PlayMod.getChessMod().GetEmitList()) player.TeLog("scissors_use", map[string]interface{}{ "scissors_item_id": int(req.ChessId), }) @@ -969,7 +967,7 @@ func ReqUpgradeChess(player *Player, buf []byte) error { return err } ChessMod := player.PlayMod.getChessMod() - NewChess, err := ChessMod.UpgradeChess(int(req.ChessId)) + newChess, err := ChessMod.UpgradeChess(int(req.ChessId)) if err != nil { player.SendErrClienRes(&msg.ResUpgradeChess{ Code: msg.RES_CODE_FAIL, @@ -988,11 +986,11 @@ func ReqUpgradeChess(player *Player, buf []byte) error { } player.TeLog("wand_use", map[string]interface{}{ "wand_item_id": req.ChessId, - "new_chess": NewChess, + "new_chess": newChess, }) Handbook := player.PlayMod.getHandbookMod() - Handbook.SetHandbook(NewChess) - triggerComposeChess(player, NewChess, player.PlayMod.getBaseMod().EnergyMul, player.PlayMod.getChessMod().GetEmitList()) + Handbook.SetHandbook(newChess) + triggerComposeChess(player, newChess, player.PlayMod.getBaseMod().EnergyMul, player.PlayMod.getChessMod().GetEmitList()) player.PlayMod.save() player.PushClientRes(ChessMod.BackData()) player.PushClientRes(&msg.ResUpgradeChess{ @@ -1099,8 +1097,8 @@ func ReqSourceChest(player *Player, buf []byte) error { return err } ChessMod := player.PlayMod.getChessMod() - ChestId := int(req.ChestId) - Items, err := ChessMod.SourceChest(ChestId) + chestId := int(req.ChestId) + items, err := ChessMod.SourceChest(chestId) if err != nil { player.SendErrClienRes(&msg.ResSourceChest{ Code: msg.RES_CODE_FAIL, @@ -1108,7 +1106,7 @@ func ReqSourceChest(player *Player, buf []byte) error { }) return err } - err = player.HandleItem(Items, msg.ITEM_POP_LABEL_SourceChest.String()) + err = player.HandleItem(items, msg.ITEM_POP_LABEL_SourceChest.String()) if err != nil { player.SendErrClienRes(&msg.ResSourceChest{ Code: msg.RES_CODE_FAIL, @@ -1127,8 +1125,8 @@ func ReqSourceChest(player *Player, buf []byte) error { } player.PlayMod.save() player.TeLog("ReqSourceChest", map[string]interface{}{ - "chest_id": ChestId, - "item_list": Items, + "chest_id": chestId, + "item_list": items, }) player.PushClientRes(ChessMod.BackData()) player.PushClientRes(&msg.ResSourceChest{ @@ -1233,7 +1231,7 @@ func ReqExStarReward(player *Player, buf []byte) error { return err } CardMod := player.PlayMod.getCardMod() - itemList, CostStar, err := CardMod.ExStarReward(int(req.Id)) + itemList, costStar, err := CardMod.ExStarReward(int(req.Id)) if err != nil { player.SendErrClienRes(&msg.ResExStarReward{ Code: msg.RES_CODE_FAIL, @@ -1252,7 +1250,7 @@ func ReqExStarReward(player *Player, buf []byte) error { } player.TeLog("sticker_exchange", map[string]interface{}{ // "pack_id": int(req.Id), - "sticker_cost": CostStar, + "sticker_cost": costStar, "item_list": itemList, }) player.PlayMod.save() @@ -1589,8 +1587,8 @@ func ReqBuyEnergy(player *Player, buf []byte) error { } BaseMod := player.PlayMod.getBaseMod() ChargeMod := player.PlayMod.getChargeMod() - Item, Energy, Diamond := ChargeMod.BuyEnergy(player.IsWeeklyDiscount()) - err = player.HandleItem(Item, msg.ITEM_POP_LABEL_BuyEnergy.String()) + items, energy, diamond := ChargeMod.BuyEnergy(player.IsWeeklyDiscount()) + err = player.HandleItem(items, msg.ITEM_POP_LABEL_BuyEnergy.String()) if err != nil { player.SendErrClienRes(&msg.ResBuyEnergy{ Code: msg.RES_CODE_FAIL, @@ -1605,15 +1603,15 @@ func ReqBuyEnergy(player *Player, buf []byte) error { }) player.ChargeBackData() player.TeLog("buy_energy_diamond", map[string]interface{}{ - "diamond_cost": Diamond, - "energy_num": Energy, + "diamond_cost": diamond, + "energy_num": energy, }) return nil } func ReqGetEnergyByAD(player *Player, buf []byte) error { BaseMod := player.PlayMod.getBaseMod() - Item, err := BaseMod.GetEnergyByAD() + items, err := BaseMod.GetEnergyByAD() if err != nil { player.SendErrClienRes(&msg.ResGetEnergyByAD{ Code: msg.RES_CODE_FAIL, @@ -1621,7 +1619,7 @@ func ReqGetEnergyByAD(player *Player, buf []byte) error { }) return err } - err = player.HandleItem(Item, msg.ITEM_POP_LABEL_GetEnergyByAD.String()) + err = player.HandleItem(items, msg.ITEM_POP_LABEL_GetEnergyByAD.String()) if err != nil { player.SendErrClienRes(&msg.ResGetEnergyByAD{ Code: msg.RES_CODE_FAIL, @@ -1630,7 +1628,7 @@ func ReqGetEnergyByAD(player *Player, buf []byte) error { return err } player.TeLog("ReqGetEnergyByAD", map[string]interface{}{ - "item_list": Item, + "item_list": items, }) player.PlayMod.save() player.PushClientRes(BaseMod.BackData()) @@ -1718,10 +1716,10 @@ func ReqGetMonthLoginReward(player *Player, buf []byte) error { func ReqFastProduceInfo(player *Player, buf []byte) error { LimitedTimeEventMod := player.PlayMod.getLimitedTimeEventMod() - EndTime, Times := LimitedTimeEventMod.GetFastProduceInfo() + endTime, times := LimitedTimeEventMod.GetFastProduceInfo() player.PushClientRes(&msg.ResFastProduceInfo{ - EndTime: EndTime, - Num: int32(Times), + EndTime: endTime, + Num: int32(times), }) return nil } @@ -1772,7 +1770,7 @@ func ReqLimitSenceReward(player *Player, buf []byte) error { return fmt.Errorf("not exist") } - Id, Items, err := limitedTimeEventMod.GetSceneDashReward() + id, items, err := limitedTimeEventMod.GetSceneDashReward() if err != nil { player.SendErrClienRes(&msg.ResLimitSenceReward{ Code: msg.RES_CODE_FAIL, @@ -1780,8 +1778,8 @@ func ReqLimitSenceReward(player *Player, buf []byte) error { }) return err } - player.args["ResItemPopId"] = Id - err = player.HandleItem(Items, msg.ITEM_POP_LABEL_LimitSenceReward.String()) + player.args["ResItemPopId"] = id + err = player.HandleItem(items, msg.ITEM_POP_LABEL_LimitSenceReward.String()) if err != nil { player.SendErrClienRes(&msg.ResLimitSenceReward{ Code: msg.RES_CODE_FAIL, @@ -1791,7 +1789,7 @@ func ReqLimitSenceReward(player *Player, buf []byte) error { } player.TeLog("ReqLimitSenceReward", map[string]interface{}{ "event_type": limitedTimeEvent.EVENT_TYPE_SENCE_DASH, - "item_list": Items, + "item_list": items, }) player.PlayMod.save() player.PushClientRes(&msg.ResLimitSenceReward{ @@ -1825,7 +1823,7 @@ func ReqCardGive(player *Player, buf []byte) error { } CardMod := player.PlayMod.getCardMod() - EndTime := GoUtil.Now() + 86400 + endTime := GoUtil.Now() + 86400 FriendMod := player.PlayMod.getFriendMod() err = CardMod.RequestCard() @@ -1844,18 +1842,18 @@ func ReqCardGive(player *Player, buf []byte) error { }) return fmt.Errorf("uid empty") } - CardId := int(req.CardId) - if CardId == 0 { // 请求交换的卡牌ID不为空 + cardId := int(req.CardId) + if cardId == 0 { // 请求交换的卡牌ID不为空 player.SendErrClienRes(&msg.ResCardGive{ Code: msg.RES_CODE_FAIL, Msg: "card id empty", }) return fmt.Errorf("card id empty") } - Id := GoUtil.CreateCardId(int(player.M_DwUin), 0, int(req.CardId)) + id := GoUtil.CreateCardId(int(player.M_DwUin), 0, int(req.CardId)) for _, v := range req.Uid { - Uid := int(v) - if !FriendMod.CheckFriend(Uid) { + uid := int(v) + if !FriendMod.CheckFriend(uid) { player.SendErrClienRes(&msg.ResCardGive{ Code: msg.RES_CODE_FAIL, Msg: "not friend", @@ -1863,16 +1861,16 @@ func ReqCardGive(player *Player, buf []byte) error { return fmt.Errorf("not friend") } CardInfo := &card.CardInfo{ - Id: Id, + Id: id, AUid: int(player.M_DwUin), - BUid: Uid, - CardId: CardId, + BUid: uid, + CardId: cardId, StartTime: GoUtil.Now(), - EndTime: EndTime, + EndTime: endTime, Type: card.TYPE_CARD_GIVE, Status: card.STATUS_CARD_GIVE_1, } - player.AddLog(Uid, friend.LOG_TYPE_CARD_GIVE, strconv.Itoa(CardId), GoUtil.Now()) + player.AddLog(uid, friend.LOG_TYPE_CARD_GIVE, strconv.Itoa(cardId), GoUtil.Now()) err = CardMod.AddRequestCard(CardInfo) // 添加请求卡牌 if err != nil { player.SendErrClienRes(&msg.ResCardGive{ @@ -1884,9 +1882,9 @@ func ReqCardGive(player *Player, buf []byte) error { m := &MsqMod.Msg{ Type: MsqMod.HANDLE_TYPE_REQ_CARD, From: int(player.M_DwUin), - To: Uid, + To: uid, SendT: GoUtil.Now(), - End: EndTime, + End: endTime, Extra: *CardInfo, } FriendMgrSend(m) @@ -1898,7 +1896,7 @@ func ReqCardGive(player *Player, buf []byte) error { player.PushClientRes(CardMod.NotifyTimes()) player.PlayMod.save() player.TeLog("card_require", map[string]interface{}{ - "card_id": CardId, + "card_id": cardId, "player_id_target": req.Uid, }) return nil @@ -1912,8 +1910,8 @@ func ReqAgreeCardGive(player *Player, buf []byte) error { return err } FriendMod := player.PlayMod.getFriendMod() - CardInfo := FriendMod.GetCardInfo(req.Id) - if CardInfo == nil { + cardInfo := FriendMod.GetCardInfo(req.Id) + if cardInfo == nil { player.SendErrClienRes(&msg.ResAgreeCardGive{ Code: msg.RES_CODE_FAIL, Msg: "card apply not exist", @@ -1921,7 +1919,7 @@ func ReqAgreeCardGive(player *Player, buf []byte) error { return fmt.Errorf("card apply not exist") } CardMod := player.PlayMod.getCardMod() - err = player.SubCard(CardInfo.CardId) + err = player.SubCard(cardInfo.CardId) if err != nil { player.SendErrClienRes(&msg.ResAgreeCardGive{ Code: msg.RES_CODE_FAIL, @@ -1929,14 +1927,14 @@ func ReqAgreeCardGive(player *Player, buf []byte) error { }) return fmt.Errorf("card not exist") } - CardInfo.Status = card.STATUS_CARD_GIVE_2 - CardInfo.EndTime = 0 + cardInfo.Status = card.STATUS_CARD_GIVE_2 + cardInfo.EndTime = 0 m := &MsqMod.Msg{ Type: MsqMod.HANDLE_TYPE_AGREE_CARD, From: int(player.M_DwUin), - To: CardInfo.AUid, + To: cardInfo.AUid, SendT: GoUtil.Now(), - Extra: *CardInfo, + Extra: *cardInfo, } FriendMgrSend(m) player.PushClientRes(CardMod.NotifyCard()) @@ -1945,11 +1943,11 @@ func ReqAgreeCardGive(player *Player, buf []byte) error { Code: msg.RES_CODE_SUCCESS, Id: req.Id, }) - player.AddLog(CardInfo.AUid, friend.LOG_TYPE_CARD_GIVE_ACCEPT, strconv.Itoa(CardInfo.CardId), GoUtil.Now()) + player.AddLog(cardInfo.AUid, friend.LOG_TYPE_CARD_GIVE_ACCEPT, strconv.Itoa(cardInfo.CardId), GoUtil.Now()) player.PlayMod.save() player.TeLog("card_require_reply", map[string]interface{}{ - "card_id": CardInfo.CardId, - "player_id_requirer": CardInfo.AUid, + "card_id": cardInfo.CardId, + "player_id_requirer": cardInfo.AUid, }) return nil } @@ -1962,8 +1960,8 @@ func ReqRefuseCardGive(player *Player, buf []byte) error { return err } FriendMod := player.PlayMod.getFriendMod() - CardInfo := FriendMod.GetCardInfo(req.Id) - if CardInfo == nil { + cardInfo := FriendMod.GetCardInfo(req.Id) + if cardInfo == nil { player.SendErrClienRes(&msg.ResRefuseCardGive{ Code: msg.RES_CODE_FAIL, Msg: "card apply not exist", @@ -1977,16 +1975,16 @@ func ReqRefuseCardGive(player *Player, buf []byte) error { Id: req.Id, }) player.TeLog("ReqRefuseCardGive", map[string]interface{}{ - "card_id": CardInfo.CardId, + "card_id": cardInfo.CardId, }) now := GoUtil.Now() m := &MsqMod.Msg{ Type: MsqMod.HANDLE_TYPE_REG_CARD_REFUSE, From: int(player.M_DwUin), - To: CardInfo.AUid, + To: cardInfo.AUid, SendT: now, End: now + 86400, - Extra: *CardInfo, + Extra: *cardInfo, } FriendMgrSend(m) return nil @@ -2000,8 +1998,8 @@ func ReqCardSend(player *Player, buf []byte) error { return err } CardMod := player.PlayMod.getCardMod() - CardId := int(req.CardId) - CardInfo, err := CardMod.SendCard(int(player.M_DwUin), int(req.Uid), CardId) + cardId := int(req.CardId) + cardInfo, err := CardMod.SendCard(int(player.M_DwUin), int(req.Uid), cardId) if err != nil { player.SendErrClienRes(&msg.ResCardSend{ Code: msg.RES_CODE_FAIL, @@ -2009,21 +2007,21 @@ func ReqCardSend(player *Player, buf []byte) error { }) return err } - CardInfo.Emoji = int(req.Emoji) + cardInfo.Emoji = int(req.Emoji) m := &MsqMod.Msg{ Type: MsqMod.HANDLE_TYPE_SEND_CARD, From: int(player.M_DwUin), To: int(req.Uid), SendT: GoUtil.Now(), End: GoUtil.Now() + 86400, - Extra: *CardInfo, + Extra: *cardInfo, } - player.AddLog(int(req.Uid), friend.LOG_TYPE_CARD_SEND, strconv.Itoa(CardId), GoUtil.Now()) + player.AddLog(int(req.Uid), friend.LOG_TYPE_CARD_SEND, strconv.Itoa(cardId), GoUtil.Now()) player.PushClientRes(&msg.ResCardSend{ Code: msg.RES_CODE_SUCCESS, }) player.TeLog("card_send", map[string]interface{}{ - "card_id": CardId, + "card_id": cardId, "player_id_target": int(req.Uid), }) player.PlayerDecoSetLog("emoji", int(req.Emoji), "card_send") @@ -2042,8 +2040,8 @@ func ReqCardExchange(player *Player, buf []byte) error { return err } CardMod := player.PlayMod.getCardMod() - CardId := int(req.CardId) - CardInfo, err := CardMod.ExchangeCard(int(player.M_DwUin), int(req.Uid), CardId) + cardId := int(req.CardId) + cardInfo, err := CardMod.ExchangeCard(int(player.M_DwUin), int(req.Uid), cardId) if err != nil { player.SendErrClienRes(&msg.ResCardExchange{ Code: msg.RES_CODE_FAIL, @@ -2051,16 +2049,16 @@ func ReqCardExchange(player *Player, buf []byte) error { }) return err } - CardInfo.Emoji = int(req.Emoji) + cardInfo.Emoji = int(req.Emoji) m := &MsqMod.Msg{ Type: MsqMod.HANDLE_TYPE_EX_CARD, From: int(player.M_DwUin), To: int(req.Uid), SendT: GoUtil.Now(), End: GoUtil.Now() + 86400, - Extra: *CardInfo, + Extra: *cardInfo, } - player.AddLog(int(req.Uid), friend.LOG_TYPE_CARD_EX_SEND, fmt.Sprintf("%d", int(req.CardId)), GoUtil.Now()) + player.AddLog(int(req.Uid), friend.LOG_TYPE_CARD_EX_SEND, fmt.Sprintf("%d", cardId), GoUtil.Now()) player.PushClientRes(&msg.ResCardExchange{ Code: msg.RES_CODE_SUCCESS, @@ -2070,7 +2068,7 @@ func ReqCardExchange(player *Player, buf []byte) error { player.PushClientRes(CardMod.NotifyTimes()) FriendMgrSend(m) player.TeLog("card_exchange", map[string]interface{}{ - "card_id": CardId, + "card_id": cardId, "player_id_target": int(req.Uid), "is_gift": 0, }) @@ -2084,27 +2082,27 @@ func ReqSelectCardExchange(player *Player, buf []byte) error { if err != nil { return err } - CardId := int(req.CardId) + cardId := int(req.CardId) CardMod := player.PlayMod.getCardMod() FriendMod := player.PlayMod.getFriendMod() - CardInfo := FriendMod.GetCardInfo(req.Id) - if CardInfo == nil || CardInfo.EndTime < GoUtil.Now() { + cardInfo := FriendMod.GetCardInfo(req.Id) + if cardInfo == nil || cardInfo.EndTime < GoUtil.Now() { player.SendErrClienRes(&msg.ResSelectCardExchange{ Code: msg.RES_CODE_FAIL, Msg: "exchange time out", }) return fmt.Errorf("exchange time out") } - if CardInfo.ExId != 0 { + if cardInfo.ExId != 0 { player.SendErrClienRes(&msg.ResSelectCardExchange{ Code: msg.RES_CODE_FAIL, Msg: "card already selected", }) return fmt.Errorf("card already selected") } - CardInfo.ExId = CardId - CardInfo.Status = card.STATUS_CARD_EX_2 - if cardCfg.CheckCardIsGold(CardInfo.CardId) || cardCfg.CheckCardIsGold(CardInfo.ExId) { + cardInfo.ExId = cardId + cardInfo.Status = card.STATUS_CARD_EX_2 + if cardCfg.CheckCardIsGold(cardInfo.CardId) || cardCfg.CheckCardIsGold(cardInfo.ExId) { err := CardMod.SubGoldTimes() if err != nil { player.SendErrClienRes(&msg.ResSelectCardExchange{ @@ -2115,8 +2113,8 @@ func ReqSelectCardExchange(player *Player, buf []byte) error { } } FriendMod.DelCardInfo(req.Id) - player.AddLog(CardInfo.AUid, friend.LOG_TYPE_CARD_SELECT_SEND, fmt.Sprintf("%d", CardInfo.ExId), GoUtil.Now()) - err = player.SubCard(CardId) + player.AddLog(cardInfo.AUid, friend.LOG_TYPE_CARD_SELECT_SEND, fmt.Sprintf("%d", cardInfo.ExId), GoUtil.Now()) + err = player.SubCard(cardId) if err != nil { player.SendErrClienRes(&msg.ResSelectCardExchange{ Code: msg.RES_CODE_FAIL, @@ -2134,15 +2132,15 @@ func ReqSelectCardExchange(player *Player, buf []byte) error { m := &MsqMod.Msg{ Type: MsqMod.HANDLE_TYPE_SELECT_EX_CARD, From: int(player.M_DwUin), - To: CardInfo.AUid, + To: cardInfo.AUid, SendT: GoUtil.Now(), - Extra: *CardInfo, + Extra: *cardInfo, } FriendMgrSend(m) player.TeLog("card_exchange_reply", map[string]interface{}{ - "palyer_id_giver": CardInfo.AUid, - "card_id_giver": CardInfo.CardId, - "card_id_reply": CardInfo.ExId, + "palyer_id_giver": cardInfo.AUid, + "card_id_giver": cardInfo.CardId, + "card_id_reply": cardInfo.ExId, }) return nil } @@ -2156,19 +2154,19 @@ func ReqAgreeCardExchange(player *Player, buf []byte) error { } CardMod := player.PlayMod.getCardMod() FriendMod := player.PlayMod.getFriendMod() - CardInfo := FriendMod.GetCardInfo(req.Id) + cardInfo := FriendMod.GetCardInfo(req.Id) - if CardInfo == nil || CardInfo.EndTime < GoUtil.Now() { + if cardInfo == nil || cardInfo.EndTime < GoUtil.Now() { player.SendErrClienRes(&msg.ResAgreeCardExchange{ Code: msg.RES_CODE_FAIL, Msg: "exchange time out", }) return fmt.Errorf("exchange time out") } - player.AddCard(CardInfo.ExId) - CardMod.DelExCard(CardInfo) + player.AddCard(cardInfo.ExId) + CardMod.DelExCard(cardInfo) FriendMod.DelCardInfo(req.Id) - if cardCfg.CheckCardIsGold(CardInfo.CardId) || cardCfg.CheckCardIsGold(CardInfo.ExId) { + if cardCfg.CheckCardIsGold(cardInfo.CardId) || cardCfg.CheckCardIsGold(cardInfo.ExId) { err := CardMod.SubGoldTimes() if err != nil { player.SendErrClienRes(&msg.ResAgreeCardExchange{ @@ -2178,31 +2176,31 @@ func ReqAgreeCardExchange(player *Player, buf []byte) error { return err } } - player.AddLog(CardInfo.BUid, friend.LOG_TYPE_CARD_EX_SUCCESS_1, fmt.Sprintf("%d_%d", CardInfo.CardId, CardInfo.ExId), GoUtil.Now()) - CardInfo.Status = card.STATUS_CARD_EX_3 - CardInfo.EndTime = 0 + player.AddLog(cardInfo.BUid, friend.LOG_TYPE_CARD_EX_SUCCESS_1, fmt.Sprintf("%d_%d", cardInfo.CardId, cardInfo.ExId), GoUtil.Now()) + cardInfo.Status = card.STATUS_CARD_EX_3 + cardInfo.EndTime = 0 player.PlayMod.save() player.PushClientRes(CardMod.NotifyCard()) player.PushClientRes(&msg.ResAgreeCardExchange{ Code: msg.RES_CODE_SUCCESS, Id: req.Id, - Emoji: int32(CardInfo.Emoji), + Emoji: int32(cardInfo.Emoji), }) m := &MsqMod.Msg{ Type: MsqMod.HANDLE_TYPE_ARGREE_EX_CARD, From: int(player.M_DwUin), - To: CardInfo.BUid, - Extra: *CardInfo, + To: cardInfo.BUid, + Extra: *cardInfo, SendT: GoUtil.Now(), } player.PushClientRes(CardMod.NotifyCard()) player.PushClientRes(CardMod.NotifyTimes()) FriendMgrSend(m) player.TeLog("card_exchange_finish", map[string]interface{}{ - "player_id_giver": CardInfo.AUid, - "card_id_giver": CardInfo.CardId, - "card_id_reply": CardInfo.ExId, - "player_id_reply": CardInfo.BUid, + "player_id_giver": cardInfo.AUid, + "card_id_giver": cardInfo.CardId, + "card_id_reply": cardInfo.ExId, + "player_id_reply": cardInfo.BUid, }) return nil } @@ -2215,15 +2213,15 @@ func ReqRefuseCardSelect(player *Player, buf []byte) error { return err } FriendMod := player.PlayMod.getFriendMod() - CardInfo := FriendMod.GetCardInfo(req.Id) - if CardInfo == nil { + cardInfo := FriendMod.GetCardInfo(req.Id) + if cardInfo == nil { player.SendErrClienRes(&msg.ResRefuseCardSelect{ Code: msg.RES_CODE_FAIL, Msg: "exchange time out", }) return fmt.Errorf("exchange time out") } - if CardInfo.Status != 1 { + if cardInfo.Status != 1 { player.SendErrClienRes(&msg.ResRefuseCardSelect{ Code: msg.RES_CODE_FAIL, Msg: "card is not select status", @@ -2234,8 +2232,8 @@ func ReqRefuseCardSelect(player *Player, buf []byte) error { m := &MsqMod.Msg{ Type: MsqMod.HANDLE_TYPE_REFUSE_SELECT_CARD, From: int(player.M_DwUin), - To: CardInfo.AUid, - Extra: *CardInfo, + To: cardInfo.AUid, + Extra: *cardInfo, SendT: GoUtil.Now(), } FriendMgrSend(m) @@ -2256,15 +2254,15 @@ func ReqRefuseCardExchange(player *Player, buf []byte) error { } CardMod := player.PlayMod.getCardMod() FriendMod := player.PlayMod.getFriendMod() - CardInfo := FriendMod.GetCardInfo(req.Id) - if CardInfo == nil || CardInfo.EndTime < GoUtil.Now() { + cardInfo := FriendMod.GetCardInfo(req.Id) + if cardInfo == nil || cardInfo.EndTime < GoUtil.Now() { player.SendErrClienRes(&msg.ResRefuseCardExchange{ Code: msg.RES_CODE_FAIL, Msg: "exchange time out", }) return fmt.Errorf("exchange time out") } - if CardInfo.Status != 2 { + if cardInfo.Status != 2 { player.SendErrClienRes(&msg.ResRefuseCardExchange{ Code: msg.RES_CODE_FAIL, Msg: "card is not status 2", @@ -2272,9 +2270,9 @@ func ReqRefuseCardExchange(player *Player, buf []byte) error { return fmt.Errorf("card is not status 2") } FriendMod.DelCardInfo(req.Id) - player.AddCard(CardInfo.CardId) - CardMod.DelExCard(CardInfo) - CardMod.AddExTimes(CardInfo) + player.AddCard(cardInfo.CardId) + CardMod.DelExCard(cardInfo) + CardMod.AddExTimes(cardInfo) player.PlayMod.save() player.PushClientRes(&msg.ResRefuseCardExchange{ Code: msg.RES_CODE_SUCCESS, @@ -2283,8 +2281,8 @@ func ReqRefuseCardExchange(player *Player, buf []byte) error { m := &MsqMod.Msg{ Type: MsqMod.HANDLE_TYPE_REFUSE_EX_CARD, From: int(player.M_DwUin), - To: CardInfo.BUid, - Extra: *CardInfo, + To: cardInfo.BUid, + Extra: *cardInfo, SendT: GoUtil.Now(), } player.PushClientRes(CardMod.NotifyCard()) @@ -2302,8 +2300,8 @@ func ReqGetFriendCard(player *Player, buf []byte) error { } CardMod := player.PlayMod.getCardMod() FriendMod := player.PlayMod.getFriendMod() - CardInfo := FriendMod.GetCardInfo(req.Id) - if CardInfo == nil || CardInfo.EndTime != 0 { + cardInfo := FriendMod.GetCardInfo(req.Id) + if cardInfo == nil || cardInfo.EndTime != 0 { player.SendErrClienRes(&msg.ResGetFriendCard{ Code: msg.RES_CODE_FAIL, Msg: "exchange time out", @@ -2311,18 +2309,18 @@ func ReqGetFriendCard(player *Player, buf []byte) error { return fmt.Errorf("exchange time out") } FriendMod.DelCardInfo(req.Id) - player.AddCard(CardInfo.CardId) - uid := CardInfo.AUid - if CardInfo.Type == card.TYPE_CARD_GIVE { - uid = CardInfo.BUid + player.AddCard(cardInfo.CardId) + uid := cardInfo.AUid + if cardInfo.Type == card.TYPE_CARD_GIVE { + uid = cardInfo.BUid } - player.AddLog(uid, friend.LOG_TYPE_CARD_SEND_ACCEPT, fmt.Sprintf("%d", CardInfo.CardId), GoUtil.Now()) + player.AddLog(uid, friend.LOG_TYPE_CARD_SEND_ACCEPT, fmt.Sprintf("%d", cardInfo.CardId), GoUtil.Now()) player.PlayMod.save() player.PushClientRes(&msg.ResGetFriendCard{ Code: msg.RES_CODE_SUCCESS, Id: req.Id, - CardId: int32(CardInfo.CardId), - Emoji: int32(CardInfo.Emoji), + CardId: int32(cardInfo.CardId), + Emoji: int32(cardInfo.Emoji), }) player.PushClientRes(CardMod.NotifyCard()) return nil @@ -2345,17 +2343,17 @@ func ReqRank(player *Player, buf []byte) error { }, SendT: GoUtil.Now(), } - RankInfo := G_GameLogicPtr.RankMgrCall(m).(*RankInfo) + rankInfo := G_GameLogicPtr.RankMgrCall(m).(*RankInfo) res := make(map[int32]*msg.ResPlayerSimple) - for k, rank := range RankInfo.List { + for k, rank := range rankInfo.List { res[int32(k+1)] = G_GameLogicPtr.GetResSimplePlayerByUid(rank.Uid) } player.PushClientRes(&msg.ResRank{ Type: req.Type, RankList: res, - MyRank: int32(RankInfo.MyRank), - MyScore: float32(RankInfo.MyScore), + MyRank: int32(rankInfo.MyRank), + MyScore: float32(rankInfo.MyScore), }) return nil } @@ -2503,7 +2501,7 @@ func ReqDeleteMail(player *Player, buf []byte) error { // 领取商店免费奖励 func ReqFreeShop(player *Player, buf []byte) error { ChargeMod := player.PlayMod.getChargeMod() - Item, err := ChargeMod.FireFreeShop() + items, err := ChargeMod.FireFreeShop() if err != nil { player.SendErrClienRes(&msg.ResFreeShop{ Code: msg.RES_CODE_FAIL, @@ -2511,7 +2509,14 @@ func ReqFreeShop(player *Player, buf []byte) error { }) return err } - err = player.HandleItem(Item, msg.ITEM_POP_LABEL_FreeShop.String()) + if len(items) == 0 { + player.SendErrClienRes(&msg.ResFreeShop{ + Code: msg.RES_CODE_FAIL, + Msg: "no reward", + }) + return fmt.Errorf("no reward") + } + err = player.HandleItem(items, msg.ITEM_POP_LABEL_FreeShop.String()) if err != nil { player.SendErrClienRes(&msg.ResFreeShop{ Code: msg.RES_CODE_FAIL, @@ -2526,8 +2531,8 @@ func ReqFreeShop(player *Player, buf []byte) error { }) player.TeLog("gift_free", map[string]interface{}{ "gift_type": "store", - "item_id": Item[0].Id, - "num": Item[0].Num, + "item_id": items[0].Id, + "num": items[0].Num, }) return nil } @@ -2540,7 +2545,7 @@ func ReqBuyChessShop(player *Player, buf []byte) error { return err } ChargeMod := player.PlayMod.getChargeMod() - LostItem, Item, _, err := ChargeMod.BuyChess(int(req.Id), player.IsWeeklyDiscount()) + lostItems, items, _, err := ChargeMod.BuyChess(int(req.Id), player.IsWeeklyDiscount()) if err != nil { player.SendErrClienRes(&msg.ResBuyChessShop{ Code: msg.RES_CODE_FAIL, @@ -2548,7 +2553,11 @@ func ReqBuyChessShop(player *Player, buf []byte) error { }) return err } - err = player.HandleLoseItem(LostItem, "ChessShop") + var lostNum int + if len(lostItems) > 0 { + lostNum = lostItems[0].Num + } + err = player.HandleLoseItem(lostItems, "ChessShop") if err != nil { player.SendErrClienRes(&msg.ResBuyChessShop2{ Code: msg.RES_CODE_FAIL, @@ -2556,7 +2565,7 @@ func ReqBuyChessShop(player *Player, buf []byte) error { }) return err } - err = player.HandleItem(Item, msg.ITEM_POP_LABEL_ChessShop.String()) + err = player.HandleItem(items, msg.ITEM_POP_LABEL_ChessShop.String()) if err != nil { player.SendErrClienRes(&msg.ResBuyChessShop{ Code: msg.RES_CODE_FAIL, @@ -2568,7 +2577,7 @@ func ReqBuyChessShop(player *Player, buf []byte) error { "item_id": int(req.Id), "change_num": 1, "cost_type": "diamond", - "cost_num": -LostItem[0].Num, + "cost_num": -lostNum, }) player.PlayMod.save() player.ChargeBackData() @@ -2576,7 +2585,7 @@ func ReqBuyChessShop(player *Player, buf []byte) error { Code: msg.RES_CODE_SUCCESS, }) player.TeLog("buy_product_diamond", map[string]interface{}{ - "diamond_cost": -LostItem[0].Num, + "diamond_cost": -lostNum, "product_id": int(req.Id), "product_name": mergeDataCfg.GetNameById(int(req.Id)), }) @@ -2591,7 +2600,7 @@ func ReqBuyChessShop2(player *Player, buf []byte) error { return err } ChargeMod := player.PlayMod.getChargeMod() - LostItem, _, ChessId, err := ChargeMod.BuyChess(int(req.Id), player.IsWeeklyDiscount()) + lostItems, _, ChessId, err := ChargeMod.BuyChess(int(req.Id), player.IsWeeklyDiscount()) if err != nil { player.SendErrClienRes(&msg.ResBuyChessShop2{ Code: msg.RES_CODE_FAIL, @@ -2599,7 +2608,7 @@ func ReqBuyChessShop2(player *Player, buf []byte) error { }) return err } - err = player.HandleLoseItem(LostItem, "ChessShop") + err = player.HandleLoseItem(lostItems, "ChessShop") if err != nil { player.SendErrClienRes(&msg.ResBuyChessShop2{ Code: msg.RES_CODE_FAIL, @@ -2625,11 +2634,15 @@ func ReqBuyChessShop2(player *Player, buf []byte) error { }) return err } + var lostNum int + if len(lostItems) > 0 { + lostNum = lostItems[0].Num + } player.TeLog("store_buy", map[string]interface{}{ "item_id": int(req.Id), "change_num": 1, "cost_type": "diamond", - "cost_num": LostItem[0].Num, + "cost_num": lostNum, }) player.PlayMod.save() player.ChargeBackData() @@ -2637,7 +2650,7 @@ func ReqBuyChessShop2(player *Player, buf []byte) error { Code: msg.RES_CODE_SUCCESS, }) player.TeLog("buy_product_diamond", map[string]interface{}{ - "diamond_cost": LostItem[0].Num, + "diamond_cost": lostNum, "product_id": int(req.Id), "product_name": mergeDataCfg.GetNameById(int(req.Id)), }) @@ -2649,8 +2662,8 @@ func ReqRefreshChessShop(player *Player, buf []byte) error { ChargeMod := player.PlayMod.getChargeMod() ChessMod := player.PlayMod.getChessMod() ChargeMod.InitChessShop(ChessMod.GetEmitList()) - Cost := []*item.Item{item.NewItem(item.ITEM_DIAMOND_ID, -20)} - err := player.HandleItem(Cost, msg.ITEM_POP_LABEL_RefreshChessShop.String()) + costItems := []*item.Item{item.NewItem(item.ITEM_DIAMOND_ID, -20)} + err := player.HandleItem(costItems, msg.ITEM_POP_LABEL_RefreshChessShop.String()) if err != nil { player.SendErrClienRes(&msg.ResRefreshChessShop{ Code: msg.RES_CODE_FAIL, @@ -2696,16 +2709,16 @@ func ReqEndlessReward(player *Player, buf []byte) error { player.PushClientRes(&msg.ResEndlessReward{ Code: msg.RES_CODE_SUCCESS, }) - Ids := make([]int, 0) - Nums := make([]int, 0) + ids := make([]int, 0) + nums := make([]int, 0) for _, v := range itemList { - Ids = append(Ids, v.Id) - Nums = append(Nums, v.Num) + ids = append(ids, v.Id) + nums = append(nums, v.Num) } player.TeLog("gift_ad", map[string]interface{}{ "gift_type": "endless", - "item_id": Ids, - "item_number": Nums, + "item_id": ids, + "item_number": nums, }) return nil } @@ -2748,12 +2761,12 @@ func ReqCreateOrderSn(player *Player, buf []byte) error { if err != nil { return err } - OrderSn, err := player.CreateOrderSn(req) + orderSn, err := player.CreateOrderSn(req) if err != nil { return err } player.PushClientRes(&msg.ResCreateOrderSn{ - OrderSn: OrderSn, + OrderSn: orderSn, }) return nil } @@ -2769,7 +2782,7 @@ func ReqChampshipReward(player *Player, buf []byte) error { todayActivityId, _ := player.GetChampshipActivityId() DecorateMod := player.PlayMod.getDecorateMod() orderFactor := orderCfg.GetOrderFactor(DecorateMod.GetAreaId()) - RewardId := ChampshipMod.Reward + rewardId := ChampshipMod.Reward itemList := ChampshipMod.GetReward(todayActivityId, orderFactor) err := player.HandleItem(itemList, msg.ITEM_POP_LABEL_ChampshipReward.String()) if err != nil { @@ -2785,13 +2798,13 @@ func ReqChampshipReward(player *Player, buf []byte) error { player.PushClientRes(&msg.ResChampshipReward{ Code: msg.RES_CODE_SUCCESS, }) - MaxId := champshipCfg.GetMaxRewardId() - if MaxId == ChampshipMod.Reward { + maxId := champshipCfg.GetMaxRewardId() + if maxId == ChampshipMod.Reward { FriendMod := player.PlayMod.getFriendMod() FriendMod.AddActLog(friend.ACT_LOG_TYPE_GET_CHAMPIONSHIP_PRIZE, "") player.UpdateUserInfo() } - for i := RewardId + 1; i <= ChampshipMod.Reward; i++ { + for i := rewardId + 1; i <= ChampshipMod.Reward; i++ { items, _ := champshipCfg.GetRewardItems(i) player.TeLog("championship_reward", map[string]interface{}{ "season_id": GoUtil.ZeroTimestamp(), @@ -2987,12 +3000,12 @@ func ReqGetInviteReward(player *Player, buf []byte) error { } InviteMod := player.PlayMod.getInviteMod() curIndex := InviteMod.GetIndex - Items, err := InviteMod.GetReward(int(req.GetIndex)) + items, err := InviteMod.GetReward(int(req.GetIndex)) if err != nil { log.Debug("ReqGetInviteReward err :%v", err) return err } - err = player.HandleItem(Items, msg.ITEM_POP_LABEL_invite.String()) + err = player.HandleItem(items, msg.ITEM_POP_LABEL_invite.String()) if err != nil { log.Debug("ReqGetInviteReward err :%v", err) return err @@ -3027,21 +3040,21 @@ func ReqAutoAddInviteFriend(player *Player, buf []byte) error { return err } FriendMod := player.PlayMod.getFriendMod() - Uid := int(req.Id) - if Uid == 0 && Uid == int(player.M_DwUin) { + uid := int(req.Id) + if uid == 0 && uid == int(player.M_DwUin) { player.PushClientRes(&msg.ResAutoAddInviteFriend{ ResultCode: int32(msg.RES_CODE_FAIL), }) - return fmt.Errorf("uid wrong %d", Uid) + return fmt.Errorf("uid wrong %d", uid) } - FriendMod.AddFriend(Uid) + FriendMod.AddFriend(uid) player.PlayMod.save() player.PushClientRes(&msg.ResAutoAddInviteFriend{ ResultCode: 1, }) FriendMgrSend(&MsqMod.Msg{ From: int(player.M_DwUin), - To: Uid, + To: uid, Type: MsqMod.HANDLE_TYPE_INVITE_ADD_FRIEND, SendT: GoUtil.Now(), }) @@ -3059,8 +3072,8 @@ func ReqAutoAddInviteFriend2(player *Player, buf []byte) error { return err } FriendMod := player.PlayMod.getFriendMod() - Uid, err := GetUidByFaceBook(req.Id) - if Uid == 0 || Uid == int(player.M_DwUin) { + uid, err := GetUidByFaceBook(req.Id) + if uid == 0 || uid == int(player.M_DwUin) { player.PushClientRes(&msg.ResAutoAddInviteFriend2{ ResultCode: 0, }) @@ -3074,14 +3087,14 @@ func ReqAutoAddInviteFriend2(player *Player, buf []byte) error { log.Debug("ReqAutoAddInviteFriend2 err :%v", err) return err } - FriendMod.AddFriend(Uid) + FriendMod.AddFriend(uid) player.PlayMod.save() player.PushClientRes(&msg.ResAutoAddInviteFriend2{ ResultCode: 1, }) FriendMgrSend(&MsqMod.Msg{ From: int(player.M_DwUin), - To: Uid, + To: uid, Type: MsqMod.HANDLE_TYPE_INVITE_ADD_FRIEND, SendT: GoUtil.Now(), }) @@ -3100,7 +3113,7 @@ func ReqSelectLimitEvent(player *Player, buf []byte) error { } LimitedTimeEventMod := player.PlayMod.getLimitedTimeEventMod() BaseMod := player.PlayMod.getBaseMod() - Items, EventType, OrderNum, RewardList, err := LimitedTimeEventMod.SelectProgressReward(int(req.Id), BaseMod.GetLevel(), BaseMod.GetEnergy()) + items, eventType, orderNum, rewardList, err := LimitedTimeEventMod.SelectProgressReward(int(req.Id), BaseMod.GetLevel(), BaseMod.GetEnergy()) if err != nil { player.SendErrClienRes(&msg.ResSelectLimitEvent{ Code: msg.RES_CODE_FAIL, @@ -3108,7 +3121,7 @@ func ReqSelectLimitEvent(player *Player, buf []byte) error { }) return err } - err = player.HandleItem(Items, msg.ITEM_POP_LABEL_SelectLimitEvent.String()) + err = player.HandleItem(items, msg.ITEM_POP_LABEL_SelectLimitEvent.String()) if err != nil { player.SendErrClienRes(&msg.ResSelectLimitEvent{ Code: msg.RES_CODE_FAIL, @@ -3117,9 +3130,9 @@ func ReqSelectLimitEvent(player *Player, buf []byte) error { return err } player.TeLog("time_limited_slot", map[string]interface{}{ - "slot_order_number": OrderNum, - "slot_reward_list": RewardList, - "slot_reward": limitedTimeEventCfg.GetEventName(EventType), + "slot_order_number": orderNum, + "slot_reward_list": rewardList, + "slot_reward": limitedTimeEventCfg.GetEventName(eventType), }) player.PlayMod.save() player.PushClientRes(LimitedTimeEventMod.BackData()) @@ -3144,17 +3157,17 @@ func ReqMiningTake(player *Player, buf []byte) error { return err } MiningMod := player.PlayMod.getMiningMod() - ActivityInfo := player.GetActivityInfo(activity.ACT_TYPE_MINING) - Status := player.GetActivityStatus(activity.ACT_TYPE_MINING) - if Status != ACT_STATUS_START { + activityInfo := player.GetActivityInfo(activity.ACT_TYPE_MINING) + status := player.GetActivityStatus(activity.ACT_TYPE_MINING) + if status != ACT_STATUS_START { player.SendErrClienRes(&msg.ResMiningTake{ Code: msg.RES_CODE_FAIL, Msg: "activity not start", }) return fmt.Errorf("activity not start") } - LoseItem := miningCfg.GetLoseItem(ActivityInfo.Id) - err = player.HandleLoseItem(LoseItem, "MiningLose") + loseItem := miningCfg.GetLoseItem(activityInfo.Id) + err = player.HandleLoseItem(loseItem, "MiningLose") if err != nil { player.SendErrClienRes(&msg.ResMiningTake{ Code: msg.RES_CODE_FAIL, @@ -3189,8 +3202,8 @@ func ReqMiningTake(player *Player, buf []byte) error { // 领取关卡奖励 func ReqMiningReward(player *Player, buf []byte) error { MiningMod := player.PlayMod.getMiningMod() - Status := player.GetActivityStatus(activity.ACT_TYPE_MINING) - if Status != ACT_STATUS_START { + status := player.GetActivityStatus(activity.ACT_TYPE_MINING) + if status != ACT_STATUS_START { player.SendErrClienRes(&msg.ResMiningReward{ Code: msg.RES_CODE_FAIL, Msg: "activity not start", @@ -3199,7 +3212,7 @@ func ReqMiningReward(player *Player, buf []byte) error { } DecorateMod := player.PlayMod.getDecorateMod() orderFactor := orderCfg.GetOrderFactor(DecorateMod.GetAreaId()) - itemList, Mining, err := MiningMod.GetReward(orderFactor) + itemList, mining, err := MiningMod.GetReward(orderFactor) if err != nil { player.SendErrClienRes(&msg.ResMiningReward{ Code: msg.RES_CODE_FAIL, @@ -3215,13 +3228,13 @@ func ReqMiningReward(player *Player, buf []byte) error { }) return err } - ActivityInfo := player.GetActivityInfo(activity.ACT_TYPE_MINING) + activityInfo := player.GetActivityInfo(activity.ACT_TYPE_MINING) aId := 0 - if ActivityInfo != nil { - aId = ActivityInfo.Id + if activityInfo != nil { + aId = activityInfo.Id } player.TeLog("finish_level", map[string]interface{}{ - "expend_token_num": Mining, + "expend_token_num": mining, "level_id": MiningMod.Pass - 1, "event_id": aId, }) @@ -3241,8 +3254,8 @@ func ReqGuessColor(player *Player, buf []byte) error { return err } GuessColorMod := player.PlayMod.getGuessColorMod() - Items := GuessColorMod.FirstIn() - err = player.HandleItem(Items, msg.ITEM_POP_LABEL_GuessColor.String()) + items := GuessColorMod.FirstIn() + err = player.HandleItem(items, msg.ITEM_POP_LABEL_GuessColor.String()) if err != nil { return err } @@ -3258,8 +3271,8 @@ func ReqGuessColorTake(player *Player, buf []byte) error { if err != nil { return err } - Status := player.GetActivityStatus(activity.ACT_TYPE_GUESS_COLOR) - if Status != ACT_STATUS_START { + status := player.GetActivityStatus(activity.ACT_TYPE_GUESS_COLOR) + if status != ACT_STATUS_START { player.SendErrClienRes(&msg.ResGuessColorTake{ Code: msg.RES_CODE_FAIL, Msg: "activity not start", @@ -3267,8 +3280,8 @@ func ReqGuessColorTake(player *Player, buf []byte) error { return fmt.Errorf("activity not start") } GuessColorMod := player.PlayMod.getGuessColorMod() - LoseItem := GuessColorMod.GetLoseItem() - err = player.HandleLoseItem(LoseItem, "GuessColorLose") + loseItems := GuessColorMod.GetLoseItem() + err = player.HandleLoseItem(loseItems, "GuessColorLose") if err != nil { player.SendErrClienRes(&msg.ResGuessColorTake{ Code: msg.RES_CODE_FAIL, @@ -3276,11 +3289,11 @@ func ReqGuessColorTake(player *Player, buf []byte) error { }) return err } - var M map[int32]int32 + var m map[int32]int32 if req.Map != nil { - M = req.Map.Map + m = req.Map.Map } - GuessColorMod.Take(M, req.OMap) + GuessColorMod.Take(m, req.OMap) player.TeLog("ReqGuessColorTake", map[string]interface{}{ "map": req.Map.Map, "o_map": req.OMap, @@ -3298,8 +3311,8 @@ func ReqGuessColorReward(player *Player, buf []byte) error { if err != nil { return err } - Status := player.GetActivityStatus(activity.ACT_TYPE_GUESS_COLOR) - if Status != ACT_STATUS_START { + status := player.GetActivityStatus(activity.ACT_TYPE_GUESS_COLOR) + if status != ACT_STATUS_START { player.SendErrClienRes(&msg.ResGuessColorReward{ Code: msg.RES_CODE_FAIL, Msg: "activity not start", @@ -3307,7 +3320,7 @@ func ReqGuessColorReward(player *Player, buf []byte) error { return fmt.Errorf("activity not start") } GuessColorMod := player.PlayMod.getGuessColorMod() - itemList, err := GuessColorMod.GetReward() + items, err := GuessColorMod.GetReward() if err != nil { player.SendErrClienRes(&msg.ResGuessColorReward{ Code: msg.RES_CODE_FAIL, @@ -3315,7 +3328,7 @@ func ReqGuessColorReward(player *Player, buf []byte) error { }) return err } - err = player.HandleItem(itemList, msg.ITEM_POP_LABEL_GuessColorReward.String()) + err = player.HandleItem(items, msg.ITEM_POP_LABEL_GuessColorReward.String()) if err != nil { player.SendErrClienRes(&msg.ResGuessColorReward{ Code: msg.RES_CODE_FAIL, @@ -3324,7 +3337,7 @@ func ReqGuessColorReward(player *Player, buf []byte) error { return err } player.TeLog("guess_color_finish", map[string]interface{}{ - "item_list": itemList, + "item_list": items, }) player.PlayMod.save() player.GuessColorBackData() @@ -3368,7 +3381,7 @@ func ReqRaceReward(player *Player, buf []byte) error { return err } RaceMod := player.PlayMod.getRaceMod() - Items, err := RaceMod.GetReward() + items, err := RaceMod.GetReward() if err != nil { player.SendErrClienRes(&msg.ResRaceReward{ Code: msg.RES_CODE_FAIL, @@ -3376,7 +3389,7 @@ func ReqRaceReward(player *Player, buf []byte) error { }) return err } - err = player.HandleItem(Items, msg.ITEM_POP_LABEL_RaceReward.String()) + err = player.HandleItem(items, msg.ITEM_POP_LABEL_RaceReward.String()) if err != nil { player.SendErrClienRes(&msg.ResRaceReward{ Code: msg.RES_CODE_FAIL, @@ -3386,7 +3399,7 @@ func ReqRaceReward(player *Player, buf []byte) error { } player.RaceBackData() player.TeLog("ReqRaceReward", map[string]interface{}{ - "item_list": Items, + "item_list": items, }) player.PushClientRes(&msg.ResRaceReward{ Code: msg.RES_CODE_SUCCESS, @@ -3408,50 +3421,50 @@ func ReqPlayroomInfo(player *Player, buf []byte) error { return err } PlayroomMod := player.PlayMod.getPlayroomMod() - Targer := int(req.Uid) + target := int(req.Uid) if req.Uid == 0 { - Targer = PlayroomMod.GetTarget() + target = PlayroomMod.GetTarget() } if req.Uid == -1 { - Targer = player.GetVisitorPlayer() + target = player.GetVisitorPlayer() } - if Targer == 0 { - player.PlayroomVisit(Targer) + if target == 0 { + player.PlayroomVisit(target) return nil } - PlayerData := G_GameLogicPtr.GetSimplePlayerByUid(Targer) + PlayerData := G_GameLogicPtr.GetSimplePlayerByUid(target) if PlayerData == nil { - return fmt.Errorf("ReqPlayroomInfo player %d not found", Targer) + return fmt.Errorf("ReqPlayroomInfo player %d not found", target) } - PlayroomMod.SetTarget(Targer) + PlayroomMod.SetTarget(target) player.QuestTrigger(&quest.Trigger{Label: quest.TRIGGER_LABEL_VISITROOM}) if PlayerData.Loginout > 0 && PlayerData.Loginout < GoUtil.Now()-int64(playroomCfg.GetGameOutline()) { - GameType := PlayroomMod.RandGameType() - PlayroomMod.SetGameId(GameType) - Star := min(500, max(PlayerData.Star/10, 10)) + gameType := PlayroomMod.RandGameType() + PlayroomMod.SetGameId(gameType) + star := min(500, max(PlayerData.Star/10, 10)) ChessMod := player.PlayMod.getChessMod() - EmitList := ChessMod.GetOrderEmit() - ColorList := make([]string, 0) - for _, v := range EmitList { - Color := mergeDataCfg.GetEmitProduceChessType(v) - ColorList = append(ColorList, Color...) + emitList := ChessMod.GetOrderEmit() + colorList := make([]string, 0) + for _, v := range emitList { + color := mergeDataCfg.GetEmitProduceChessType(v) + colorList = append(colorList, color...) } - RandList := make([]int, 0) + randList := make([]int, 0) for _, v := range PlayerData.Chess { - Color := mergeDataCfg.GetColorById(v) - Lv := mergeDataCfg.GetLvById(v) - if GoUtil.InStringArray(Color, ColorList) && Lv <= 8 && Lv != 0 { - RandList = append(RandList, v) + color := mergeDataCfg.GetColorById(v) + lv := mergeDataCfg.GetLvById(v) + if GoUtil.InStringArray(color, colorList) && lv <= 8 && lv != 0 { + randList = append(randList, v) } } - RandList = GoUtil.UniqueInts(RandList) - if len(RandList) == 0 { - PlayroomMod.SetGameReward3(Star) - } else if len(RandList) == 1 { - PlayroomMod.SetGameReward2(RandList[0], Star) + randList = GoUtil.UniqueInts(randList) + if len(randList) == 0 { + PlayroomMod.SetGameReward3(star) + } else if len(randList) == 1 { + PlayroomMod.SetGameReward2(randList[0], star) } else { - ChessList := GoUtil.RandSliceNum(RandList, 2) - PlayroomMod.SetGameReward(ChessList[0], ChessList[1], Star) + chessList := GoUtil.RandSliceNum(randList, 2) + PlayroomMod.SetGameReward(chessList[0], chessList[1], star) } } else { PlayroomMod.SetGameId(playroom.GAME_TYPE_FILP) @@ -3462,7 +3475,7 @@ func ReqPlayroomInfo(player *Player, buf []byte) error { PlayroomMod.SetGameRewardFlip(addNumFunc(100), addNumFunc(500), addNumFunc(2000)) } player.PlayMod.save() - player.PlayroomVisit(Targer) + player.PlayroomVisit(target) return nil } @@ -3474,7 +3487,7 @@ func ReqPlayroomInteract(player *Player, buf []byte) error { return err } PlayroomMod := player.PlayMod.getPlayroomMod() - Items, PType, err := PlayroomMod.Interact(int(req.Id), int(req.Type)) + items, pType, err := PlayroomMod.Interact(int(req.Id), int(req.Type)) if err != nil { player.SendErrClienRes(&msg.ResPlayroomInteract{ Code: msg.RES_CODE_FAIL, @@ -3482,7 +3495,7 @@ func ReqPlayroomInteract(player *Player, buf []byte) error { }) return err } - err = player.HandleLoseItem(Items, "PlayroomInteract") + err = player.HandleLoseItem(items, "PlayroomInteract") if err != nil { player.SendErrClienRes(&msg.ResPlayroomInteract{ Code: msg.RES_CODE_FAIL, @@ -3493,8 +3506,8 @@ func ReqPlayroomInteract(player *Player, buf []byte) error { if GoUtil.InArray(int(req.Id), playroomCfg.GetInteractIdBath()) { player.SetPlayroomKiss(0, int(player.M_DwUin)) } - PExp := playroomCfg.GetInteractPExp(int(req.Id)) - _, err = player.GetPlayerBaseMod().AddExp(player, 0, PExp) + pExp := playroomCfg.GetInteractPExp(int(req.Id)) + _, err = player.GetPlayerBaseMod().AddExp(player, 0, pExp) if err != nil { player.SendErrClienRes(&msg.ResPlayroomInteract{ Code: msg.RES_CODE_FAIL, @@ -3505,7 +3518,7 @@ func ReqPlayroomInteract(player *Player, buf []byte) error { PlayroomMod.AddInteractNum(BaseMod.GetLevel()) player.QuestTrigger(&quest.Trigger{Label: quest.TRIGGER_LABEL_INTERACT, A: []interface{}{int(req.Id)}}) player.PlayMod.save() - player.LimitedTimePlayroomTrigger_(PType) + player.LimitedTimePlayroomTrigger_(pType) player.NotifyPlayroomKiss() player.TeLog("playroom_interact", map[string]interface{}{ "interact_id": int(req.Id), @@ -3551,16 +3564,16 @@ func ReqPlayroomGame(player *Player, buf []byte) error { return err } PlayroomMod := player.PlayMod.getPlayroomMod() - Target := PlayroomMod.GetTarget() - if Target == 0 { + target := PlayroomMod.GetTarget() + if target == 0 { player.SendErrClienRes(&msg.ResPlayroomGame{ Code: msg.RES_CODE_FAIL, Msg: "no target", }) return fmt.Errorf("no target") } - Items := player.GetPlayroomGameReward(int(req.Type), 0) - err = player.HandleItem(Items, msg.ITEM_POP_LABEL_PlayroomGame.String()) + items := player.GetPlayroomGameReward(int(req.Type), 0) + err = player.HandleItem(items, msg.ITEM_POP_LABEL_PlayroomGame.String()) if err != nil { player.SendErrClienRes(&msg.ResPlayroomGame{ Code: msg.RES_CODE_FAIL, @@ -3571,7 +3584,7 @@ func ReqPlayroomGame(player *Player, buf []byte) error { now := GoUtil.Now() FriendMgrSend(&MsqMod.Msg{ From: int(player.M_DwUin), - To: Target, + To: target, Type: MsqMod.HANDLE_TYPE_PLAYROOM_GAME, SendT: now, End: now + sevendays, @@ -3580,9 +3593,9 @@ func ReqPlayroomGame(player *Player, buf []byte) error { Emoji: int(req.EmojiId), }, }) - ItemsMsg := make(map[int32]*msg.ItemInfo, 0) + itemsMsg := make(map[int32]*msg.ItemInfo, 0) for k, v := range PlayroomMod.GameReward { - ItemsMsg[int32(k)] = &msg.ItemInfo{ + itemsMsg[int32(k)] = &msg.ItemInfo{ Id: int32(v.Id), Num: int32(v.Num), } @@ -3590,7 +3603,7 @@ func ReqPlayroomGame(player *Player, buf []byte) error { player.TeLog("finish_mini_game", map[string]interface{}{ "mini_game_type": PlayroomMod.GetGameId(), "is_chip": false, - "item_list": Items, + "item_list": items, }) PlayroomMod.ResetGame() player.PlayroomBackData() @@ -3598,7 +3611,7 @@ func ReqPlayroomGame(player *Player, buf []byte) error { player.PushClientRes(&msg.ResPlayroomGame{ Code: msg.RES_CODE_SUCCESS, Type: req.Type, - Items: ItemsMsg, + Items: itemsMsg, }) player.PlayMod.save() return nil @@ -3612,8 +3625,8 @@ func ReqPlayroomSelectReward(player *Player, buf []byte) error { return err } PlayroomMod := player.PlayMod.getPlayroomMod() - Items := player.GetPlayroomGameReward(playroom.GAME_RESULT_HIGH, int(req.Id)) - err = player.HandleItem(Items, msg.ITEM_POP_LABEL_PlayroomGame.String()) + items := player.GetPlayroomGameReward(playroom.GAME_RESULT_HIGH, int(req.Id)) + err = player.HandleItem(items, msg.ITEM_POP_LABEL_PlayroomGame.String()) if err != nil { player.SendErrClienRes(&msg.ResPlayroomSelectReward{ Code: msg.RES_CODE_FAIL, @@ -3621,9 +3634,9 @@ func ReqPlayroomSelectReward(player *Player, buf []byte) error { }) return err } - GameId := PlayroomMod.GetGameId() - Target := PlayroomMod.GetTarget() - if GameId == 0 || Target == 0 { + gameId := PlayroomMod.GetGameId() + target := PlayroomMod.GetTarget() + if gameId == 0 || target == 0 { player.SendErrClienRes(&msg.ResPlayroomSelectReward{ Code: msg.RES_CODE_FAIL, Msg: "no game or target", @@ -3633,11 +3646,11 @@ func ReqPlayroomSelectReward(player *Player, buf []byte) error { now := GoUtil.Now() FriendMgrSend(&MsqMod.Msg{ From: int(player.M_DwUin), - To: Target, + To: target, Type: MsqMod.HANDLE_TYPE_PLAYROOM_LOSE, SendT: now, End: now + sevendays, - Item: Items, + Item: items, Extra: GameResult{ T: PlayroomMod.GetGameId(), Emoji: int(req.EmojiId), @@ -3645,13 +3658,13 @@ func ReqPlayroomSelectReward(player *Player, buf []byte) error { }) LimitedTimeEventMod := player.PlayMod.getLimitedTimeEventMod() if LimitedTimeEventMod.CheckExist(limitedTimeEvent.EVENT_TYPE_PET_THIEF) { - player.GetPetThiefReward(Target) + player.GetPetThiefReward(target) } player.AddPlayroomChip(int(req.Id)) player.TeLog("finish_mini_game", map[string]interface{}{ "mini_game_type": PlayroomMod.GetGameId(), "is_chip": true, - "item_list": Items, + "item_list": items, }) player.QuestTrigger(&quest.Trigger{Label: quest.TRIGGER_LABEL_PLAYROOM_GAME}) FriendMod := player.PlayMod.getFriendMod() @@ -3660,7 +3673,7 @@ func ReqPlayroomSelectReward(player *Player, buf []byte) error { PlayroomMod.ResetGame() player.PlayerDecoSetLog("emoji", int(req.EmojiId), "playroom_select_reward") player.PlayroomBackData() - go NotifyPetroomGame(Target) + go NotifyPetroomGame(target) player.PlayMod.save() player.PushClientRes(&msg.ResPlayroomSelectReward{ Code: msg.RES_CODE_SUCCESS, @@ -3684,7 +3697,7 @@ func ReqPlayroomWork(player *Player, buf []byte) error { return err } PlayroomMod := player.PlayMod.getPlayroomMod() - Items, err := PlayroomMod.Work() + items, err := PlayroomMod.Work() if err != nil { player.SendErrClienRes(&msg.ResPlayroomWork{ Code: msg.RES_CODE_FAIL, @@ -3693,11 +3706,11 @@ func ReqPlayroomWork(player *Player, buf []byte) error { return err } // 开始工作 设置定时器 - if Items != nil { + if items != nil { LimitedTimePlayroomWorkTrigger(player) player.UpdateUserInfo() } - err = player.HandleLoseItem(Items, "playroomWork") + err = player.HandleLoseItem(items, "playroomWork") if err != nil { player.SendErrClienRes(&msg.ResPlayroomWork{ Code: msg.RES_CODE_FAIL, @@ -3732,7 +3745,7 @@ func ReqPlayroomRest(player *Player, buf []byte) error { // 抽取转盘 func ReqPlayroomDraw(player *Player, buf []byte) error { PlayroomMod := player.PlayMod.getPlayroomMod() - Id, Items, err := PlayroomMod.Draw() + id, items, err := PlayroomMod.Draw() if err != nil { player.SendErrClienRes(&msg.ResPlayroomDraw{ Code: msg.RES_CODE_FAIL, @@ -3740,8 +3753,8 @@ func ReqPlayroomDraw(player *Player, buf []byte) error { }) return err } - player.args["ResItemPopId"] = Id - err = player.HandleItem(Items, msg.ITEM_POP_LABEL_PlayroomDraw.String()) + player.args["ResItemPopId"] = id + err = player.HandleItem(items, msg.ITEM_POP_LABEL_PlayroomDraw.String()) if err != nil { player.SendErrClienRes(&msg.ResPlayroomDraw{ Code: msg.RES_CODE_FAIL, @@ -3753,12 +3766,12 @@ func ReqPlayroomDraw(player *Player, buf []byte) error { // player.PlayroomBackData() player.PushClientRes(PlayroomMod.NotifyMood()) player.TeLog("playroom_draw", map[string]interface{}{ - "draw_id": Id, - "item_list": Items, + "draw_id": id, + "item_list": items, }) player.PushClientRes(&msg.ResPlayroomDraw{ Code: msg.RES_CODE_SUCCESS, - Id: int32(Id), + Id: int32(id), }) return nil } @@ -3771,7 +3784,7 @@ func ReqPlayroomChip(player *Player, buf []byte) error { return err } PlayroomMod := player.PlayMod.getPlayroomMod() - Items, ChipNum, err := PlayroomMod.RemoveChip(req.Uid) + items, chipNum, err := PlayroomMod.RemoveChip(req.Uid) if err != nil { player.SendErrClienRes(&msg.ResPlayroomChip{ Code: msg.RES_CODE_FAIL, @@ -3779,7 +3792,7 @@ func ReqPlayroomChip(player *Player, buf []byte) error { }) return err } - err = player.HandleLoseItem(Items, msg.ITEM_POP_LABEL_PlayroomChip.String()) + err = player.HandleLoseItem(items, msg.ITEM_POP_LABEL_PlayroomChip.String()) if err != nil { player.SendErrClienRes(&msg.ResPlayroomChip{ Code: msg.RES_CODE_FAIL, @@ -3788,9 +3801,9 @@ func ReqPlayroomChip(player *Player, buf []byte) error { return err } player.TeLog("remove_chip", map[string]interface{}{ - "remove_chip_number": ChipNum, + "remove_chip_number": chipNum, }) - for range ChipNum { + for range chipNum { player.SubPlayroomChip(int(player.M_DwUin)) } player.PlayMod.save() @@ -3810,7 +3823,7 @@ func ReqPlayroomFlip(player *Player, buf []byte) error { } PlayroomMod := player.PlayMod.getPlayroomMod() - CardId, err := PlayroomMod.FlipCard(int(req.Id)) + cardId, err := PlayroomMod.FlipCard(int(req.Id)) if err != nil { player.SendErrClienRes(&msg.ResPlayroomFlip{ Code: msg.RES_CODE_FAIL, @@ -3819,7 +3832,7 @@ func ReqPlayroomFlip(player *Player, buf []byte) error { return err } player.TeLog("playroom_flip", map[string]interface{}{ - "CardID": CardId, + "CardID": cardId, "Id": req.Id, }) player.PlayMod.save() @@ -3827,7 +3840,7 @@ func ReqPlayroomFlip(player *Player, buf []byte) error { player.PushClientRes(&msg.ResPlayroomFlip{ Code: msg.RES_CODE_SUCCESS, Id: req.Id, - CardId: int32(CardId), + CardId: int32(cardId), }) return nil } @@ -3909,8 +3922,8 @@ func ReqPlayroomBuyItem(player *Player, buf []byte) error { return err } PlayroomMod := player.PlayMod.getPlayroomMod() - AddItems, CostItem := PlayroomMod.BuyItem(int(req.Id)) - if CostItem == nil { + addItems, costItems := PlayroomMod.BuyItem(int(req.Id)) + if costItems == nil { err := fmt.Errorf("can not buy item") player.SendErrClienRes(&msg.ResPlayroomBuyItem{ Code: msg.RES_CODE_FAIL, @@ -3919,7 +3932,7 @@ func ReqPlayroomBuyItem(player *Player, buf []byte) error { return err } - err = player.HandleLoseItem(CostItem, msg.ITEM_POP_LABEL_PlayroomBuyItem.String()) + err = player.HandleLoseItem(costItems, msg.ITEM_POP_LABEL_PlayroomBuyItem.String()) if err != nil { player.SendErrClienRes(&msg.ResPlayroomBuyItem{ Code: msg.RES_CODE_FAIL, @@ -3927,7 +3940,7 @@ func ReqPlayroomBuyItem(player *Player, buf []byte) error { }) return err } - err = player.HandleItem(AddItems, msg.ITEM_POP_LABEL_PlayroomBuyItem.String()) + err = player.HandleItem(addItems, msg.ITEM_POP_LABEL_PlayroomBuyItem.String()) if err != nil { player.SendErrClienRes(&msg.ResPlayroomBuyItem{ Code: msg.RES_CODE_FAIL, @@ -3952,7 +3965,7 @@ func ReqPlayroomUpvote(player *Player, buf []byte) error { return err } PlayroomMod := player.PlayMod.getPlayroomMod() - Items, err := PlayroomMod.GiveUpvote(int(req.Id)) + items, err := PlayroomMod.GiveUpvote(int(req.Id)) if err != nil { player.SendErrClienRes(&msg.ResPlayroomUpvote{ Code: msg.RES_CODE_FAIL, @@ -3960,7 +3973,7 @@ func ReqPlayroomUpvote(player *Player, buf []byte) error { }) return err } - err = player.HandleItem(Items, msg.ITEM_POP_LABEL_PlayroomUpvote.String()) + err = player.HandleItem(items, msg.ITEM_POP_LABEL_PlayroomUpvote.String()) if err != nil { player.SendErrClienRes(&msg.ResPlayroomUpvote{ Code: msg.RES_CODE_FAIL, @@ -4029,7 +4042,7 @@ func ReqPlayroomTask(player *Player, buf []byte) error { return err } PlayroomMod := player.PlayMod.getPlayroomMod() - Items, err := PlayroomMod.GetDailyTaskReward(int(req.Id)) + items, err := PlayroomMod.GetDailyTaskReward(int(req.Id)) if err != nil { player.SendErrClienRes(&msg.ResPlayroomTask{ Code: msg.RES_CODE_FAIL, @@ -4037,7 +4050,7 @@ func ReqPlayroomTask(player *Player, buf []byte) error { }) return err } - err = player.HandleItem(Items, msg.ITEM_POP_LABEL_PlayroomTask.String()) + err = player.HandleItem(items, msg.ITEM_POP_LABEL_PlayroomTask.String()) if err != nil { player.SendErrClienRes(&msg.ResPlayroomTask{ Code: msg.RES_CODE_FAIL, @@ -4045,10 +4058,10 @@ func ReqPlayroomTask(player *Player, buf []byte) error { }) return err } - Type := playroomCfg.GetDailyTaskType(int(req.Id)) + dailyType := playroomCfg.GetDailyTaskType(int(req.Id)) player.TeLog("room_daily_task", map[string]interface{}{ "task_id": req.Id, - "is_reward": PlayroomMod.DailyTaskCanReward(Type), + "is_reward": PlayroomMod.DailyTaskCanReward(dailyType), }) player.PlayMod.save() player.PushClientRes(&msg.ResPlayroomTask{ @@ -4066,7 +4079,7 @@ func ReqPlayroomTaskReward(player *Player, buf []byte) error { return err } PlayroomMod := player.PlayMod.getPlayroomMod() - Id, Items, err := PlayroomMod.GetTaskReward(int(req.Type)) + id, items, err := PlayroomMod.GetTaskReward(int(req.Type)) if err != nil { player.SendErrClienRes(&msg.ResPlayroomTaskReward{ Code: msg.RES_CODE_FAIL, @@ -4074,8 +4087,8 @@ func ReqPlayroomTaskReward(player *Player, buf []byte) error { }) return err } - player.args["ResItemPopId"] = Id - err = player.HandleItem(Items, msg.ITEM_POP_LABEL_PlayroomTaskReward.String()) + player.args["ResItemPopId"] = id + err = player.HandleItem(items, msg.ITEM_POP_LABEL_PlayroomTaskReward.String()) if err != nil { player.SendErrClienRes(&msg.ResPlayroomTaskReward{ Code: msg.RES_CODE_FAIL, @@ -4085,13 +4098,13 @@ func ReqPlayroomTaskReward(player *Player, buf []byte) error { } player.TeLog("playroom_task_reward", map[string]interface{}{ "task_type": req.Type, - "reward_id": Id, - "reward": Items, + "reward_id": id, + "reward": items, }) player.PlayMod.save() player.PushClientRes(&msg.ResPlayroomTaskReward{ Code: msg.RES_CODE_SUCCESS, - Id: int32(Id), + Id: int32(id), Type: req.Type, }) player.NotifyPlayroomTask() @@ -4134,8 +4147,8 @@ func ReqPlayroomOutline(player *Player, buf []byte) error { ChessMod := player.PlayMod.getChessMod() if req.CostDia < 0 { var itemList []*item.Item - item := item.NewItem(item.ITEM_DIAMOND_ID, int(req.CostDia)) - itemList = append(itemList, item) + itemInfo := item.NewItem(item.ITEM_DIAMOND_ID, int(req.CostDia)) + itemList = append(itemList, itemInfo) err := player.HandleItem(itemList, msg.ITEM_POP_LABEL_ChessEx.String()) if err != nil { player.SendErrClienRes(&msg.ResPlayroomOutline{ @@ -4192,7 +4205,7 @@ func ReqPlayroomShop(player *Player, buf []byte) error { return err } PlayroomMod := player.PlayMod.getPlayroomMod() - AddItems, LoseItem, err := PlayroomMod.ShopBuy(int(req.Id), int(req.Num), player.IsWeeklyDiscount()) + addItems, loseItems, err := PlayroomMod.ShopBuy(int(req.Id), int(req.Num), player.IsWeeklyDiscount()) if err != nil { player.SendErrClienRes(&msg.ResPlayroomShop{ Code: msg.RES_CODE_FAIL, @@ -4201,8 +4214,8 @@ func ReqPlayroomShop(player *Player, buf []byte) error { return err } // 消耗道具为0则为广告获取 - if LoseItem[0].Num == 0 { - err := PlayroomMod.AdWatch(AddItems[0].Id) + if len(loseItems) > 0 && loseItems[0].Num == 0 { + err := PlayroomMod.AdWatch(addItems[0].Id) if err != nil { player.SendErrClienRes(&msg.ResPlayroomBuyItem{ Code: msg.RES_CODE_FAIL, @@ -4211,7 +4224,7 @@ func ReqPlayroomShop(player *Player, buf []byte) error { return err } } - err = player.HandleLoseItem(LoseItem, msg.ITEM_POP_LABEL_PlayroomShop.String()) + err = player.HandleLoseItem(loseItems, msg.ITEM_POP_LABEL_PlayroomShop.String()) if err != nil { player.SendErrClienRes(&msg.ResPlayroomShop{ Code: msg.RES_CODE_FAIL, @@ -4219,7 +4232,7 @@ func ReqPlayroomShop(player *Player, buf []byte) error { }) return err } - err = player.HandleItem(AddItems, msg.ITEM_POP_LABEL_PlayroomShop.String()) + err = player.HandleItem(addItems, msg.ITEM_POP_LABEL_PlayroomShop.String()) if err != nil { player.SendErrClienRes(&msg.ResPlayroomShop{ Code: msg.RES_CODE_FAIL, @@ -4230,9 +4243,9 @@ func ReqPlayroomShop(player *Player, buf []byte) error { player.TeLog("playroom_shop", map[string]interface{}{ "shop_id": req.Id, "num": req.Num, - "reward": AddItems, + "reward": addItems, }) - player.PetItemGetLog(AddItems, LoseItem, "Shop") + player.PetItemGetLog(addItems, loseItems, "Shop") player.PlayMod.save() player.PushClientRes(PlayroomMod.NotifyMood()) player.PlayroomBackData() @@ -4287,7 +4300,7 @@ func ReqFriendTreasureFilp(player *Player, buf []byte) error { return err } FriendTreasureMod := player.PlayMod.getFriendTreasureMod() - Items, Uid, err := FriendTreasureMod.Flip(int(req.Pos)) + items, uid, err := FriendTreasureMod.Flip(int(req.Pos)) if err != nil { player.SendErrClienRes( &msg.ResFriendTreasureFilp{ @@ -4298,18 +4311,18 @@ func ReqFriendTreasureFilp(player *Player, buf []byte) error { return err } now := GoUtil.Now() - if Uid != 0 && Items != nil { + if uid != 0 && items != nil { FriendMgrSend(&MsqMod.Msg{ From: int(player.M_DwUin), - To: int(Uid), + To: int(uid), Type: MsqMod.HANDLE_TYPE_TREASURE_RESULT, - Extra: Items[0].Num, + Extra: items[0].Num, SendT: now, End: now + sevendays, }) } - err = player.HandleItem(Items, msg.ITEM_POP_LABEL_FriendtreasureFilp.String()) + err = player.HandleItem(items, msg.ITEM_POP_LABEL_FriendtreasureFilp.String()) if err != nil { player.SendErrClienRes( &msg.ResFriendTreasureFilp{ @@ -4321,8 +4334,8 @@ func ReqFriendTreasureFilp(player *Player, buf []byte) error { } player.TeLog("friend_treasure_filp", map[string]interface{}{ "pos": req.Pos, - "items": Items, - "uid": Uid, + "items": items, + "uid": uid, }) player.PlayMod.save() player.PushClientRes(&msg.ResFriendTreasureFilp{ @@ -4333,7 +4346,7 @@ func ReqFriendTreasureFilp(player *Player, buf []byte) error { func ReqFriendTreasureEnd(player *Player, buf []byte) error { FriendTreasureMod := player.PlayMod.getFriendTreasureMod() - Items, FriendItemNum, err := FriendTreasureMod.EndGame(player.GetOrderFactor()) + items, friendItemNum, err := FriendTreasureMod.EndGame(player.GetOrderFactor()) if err != nil { player.SendErrClienRes( &msg.ResFriendTreasureEnd{ @@ -4347,7 +4360,7 @@ func ReqFriendTreasureEnd(player *Player, buf []byte) error { for _, v := range FriendTreasureMod.List { ItemNum := 0 if v.Status == 1 { - ItemNum = FriendItemNum + ItemNum = friendItemNum } FriendMgrSend(&MsqMod.Msg{ From: int(player.M_DwUin), @@ -4358,7 +4371,7 @@ func ReqFriendTreasureEnd(player *Player, buf []byte) error { Extra: []*item.Item{item.NewItem(item.ITEM_STAR_ID, ItemNum)}, }) } - err = player.HandleItem(Items, msg.ITEM_POP_LABEL_FriendtreasureEnd.String()) + err = player.HandleItem(items, msg.ITEM_POP_LABEL_FriendtreasureEnd.String()) if err != nil { player.SendErrClienRes( &msg.ResFriendTreasureEnd{ @@ -4374,7 +4387,7 @@ func ReqFriendTreasureEnd(player *Player, buf []byte) error { player.TeLog("pet_treasure_open", map[string]interface{}{ "pet_treasure_step": FriendTreasureMod.Shift, "pet_treasure_box": FriendTreasureMod.BoxItems, - "pet_treasure_reward": append(Items, FriendTreasureMod.BoxItems...), + "pet_treasure_reward": append(items, FriendTreasureMod.BoxItems...), }) FriendTreasureMod.ResetGame() player.PlayMod.save() @@ -4405,7 +4418,7 @@ func ReqCardHandbookReward(player *Player, buf []byte) error { return err } CardMod := player.PlayMod.getCardMod() - Items, err := CardMod.GetHandbookReward(int(req.CardId)) + items, err := CardMod.GetHandbookReward(int(req.CardId)) if err != nil { player.SendErrClienRes(&msg.ResCardHandbookReward{ Code: msg.RES_CODE_FAIL, @@ -4413,7 +4426,7 @@ func ReqCardHandbookReward(player *Player, buf []byte) error { }) return err } - err = player.HandleItem(Items, msg.ITEM_POP_LABEL_CardHandbookReward.String()) + err = player.HandleItem(items, msg.ITEM_POP_LABEL_CardHandbookReward.String()) if err != nil { player.SendErrClienRes(&msg.ResCardHandbookReward{ Code: msg.RES_CODE_FAIL, @@ -4423,7 +4436,7 @@ func ReqCardHandbookReward(player *Player, buf []byte) error { } player.TeLog("card_handbook_reward", map[string]interface{}{ "CardId": int(req.CardId), - "Items": Items, + "Items": items, }) player.PlayMod.save() player.PushClientRes(&msg.ResCardHandbookReward{ @@ -4478,21 +4491,21 @@ func ReqCollect(player *Player, buf []byte) error { return err } CollectMod := player.PlayMod.getCollectMod() - Type := collectCfg.GetRewardType(int(req.Id)) - Num := 0 - AreaType := "" - switch Type { + rewardType := collectCfg.GetRewardType(int(req.Id)) + var num int + var areaType string + switch rewardType { case collect.COLLECT_TYPE_EMOJI: - AreaType = "emoji" - Num = player.PlayMod.getEmojiMod().GetEmojiNum() + areaType = "emoji" + num = player.PlayMod.getEmojiMod().GetEmojiNum() case collect.COLLECT_TYPE_FACE: // 增加默认头像1个 - AreaType = "face" - Num = player.PlayMod.getFaceMod().GetFaceNum() + 1 + areaType = "face" + num = player.PlayMod.getFaceMod().GetFaceNum() + 1 case collect.COLLECT_TYPE_AVATAR: - AreaType = "avatar" - Num = player.PlayMod.getAvatarMod().GetAvatarNum() + areaType = "avatar" + num = player.PlayMod.getAvatarMod().GetAvatarNum() } - Items, err := CollectMod.GetReward(int(req.Id), Num, player.GetOrderFactor()) + items, err := CollectMod.GetReward(int(req.Id), num, player.GetOrderFactor()) if err != nil { player.SendErrClienRes(&msg.ResCollect{ Code: msg.RES_CODE_FAIL, @@ -4500,7 +4513,7 @@ func ReqCollect(player *Player, buf []byte) error { }) return err } - err = player.HandleItem(Items, msg.ITEM_POP_LABEL_Collect.String()) + err = player.HandleItem(items, msg.ITEM_POP_LABEL_Collect.String()) if err != nil { player.SendErrClienRes(&msg.ResCollect{ Code: msg.RES_CODE_FAIL, @@ -4514,9 +4527,9 @@ func ReqCollect(player *Player, buf []byte) error { Code: msg.RES_CODE_SUCCESS, }) player.TeLog("playerdeco_warehouse_unlock", map[string]interface{}{ - "area_type": AreaType, + "area_type": areaType, "Id": int(req.Id), - "Items": Items, + "Items": items, }) return nil } @@ -4529,17 +4542,18 @@ func ReqSellChessNum(player *Player, buf []byte) error { return err } data, _ := mergeDataCfg.GetOne(int(req.ChessId)) - Num := data.SellNum + num := data.SellNum limitedTimeEventMod := player.PlayMod.getLimitedTimeEventMod() if limitedTimeEventMod.CheckExist(limitedTimeEvent.EVENT_TYPE_PAYBACK_DAY) { - Num = data.Star + num = data.Star } player.PushClientRes(&msg.ResSellChessNum{ - Num: int32(Num), + Num: int32(num), }) return nil } +// 设置宠物装扮 func ReqPlayroomDressSet(player *Player, buf []byte) error { req := &msg.ReqPlayroomDressSet{} err := proto.Unmarshal(buf, req) @@ -4547,7 +4561,7 @@ func ReqPlayroomDressSet(player *Player, buf []byte) error { return err } PlayroomMod := player.PlayMod.getPlayroomMod() - Parts, _, error := PlayroomMod.PlayroomDressSet(GoUtil.MapInt32ToInt(req.DressSet)) + parts, _, error := PlayroomMod.PlayroomDressSet(GoUtil.MapInt32ToInt(req.DressSet)) if error != nil { player.SendErrClienRes(&msg.ResPlayroomDressSet{ Code: msg.RES_CODE_FAIL, @@ -4555,7 +4569,7 @@ func ReqPlayroomDressSet(player *Player, buf []byte) error { }) return error } - player.QuestTrigger(&quest.Trigger{Label: quest.TRIGGER_LABEL_PETDRESS, A: []interface{}{Parts}}) + player.QuestTrigger(&quest.Trigger{Label: quest.TRIGGER_LABEL_PETDRESS, A: []interface{}{parts}}) player.PlayMod.save() //player.PetDecoSetLog(Diff) player.PlayroomBackData() @@ -4565,6 +4579,7 @@ func ReqPlayroomDressSet(player *Player, buf []byte) error { return nil } +// 设置宠物挂件 弃用 func ReqPlayroomPetAirSet(player *Player, buf []byte) error { req := &msg.ReqPlayroomPetAirSet{} err := proto.Unmarshal(buf, req) @@ -4588,6 +4603,7 @@ func ReqPlayroomPetAirSet(player *Player, buf []byte) error { return nil } +// 幸运猫活动领取奖励 func ReqLimitEventLuckyCat(player *Player, buf []byte) error { req := &msg.ReqLimitEventLuckyCat{} LimitedTimeEventMod := player.PlayMod.getLimitedTimeEventMod() @@ -4672,14 +4688,15 @@ func ReqAddGiftReward(player *Player, buf []byte) error { } +// 领取活动奖励 func ReqActivityReward(player *Player, buf []byte) error { req := &msg.ReqActivityReward{} err := proto.Unmarshal(buf, req) if err != nil { return err } - ActivityInfo := player.GetActivityInfo(int(req.Id)) - if ActivityInfo == nil { + activityInfo := player.GetActivityInfo(int(req.Id)) + if activityInfo == nil { player.SendErrClienRes(&msg.ResActivityReward{ Code: msg.RES_CODE_FAIL, Msg: "activity not exist", @@ -4687,7 +4704,7 @@ func ReqActivityReward(player *Player, buf []byte) error { return fmt.Errorf("activity not exist") } ActivityMod := player.PlayMod.getActivityMod() - Items, err := ActivityMod.GetReward(int(req.Id)) + items, err := ActivityMod.GetReward(int(req.Id)) if err != nil { player.SendErrClienRes(&msg.ResActivityReward{ Code: msg.RES_CODE_FAIL, @@ -4695,7 +4712,7 @@ func ReqActivityReward(player *Player, buf []byte) error { }) return err } - err = player.HandleItem(Items, msg.ITEM_POP_LABEL_ActivityReward.String()) + err = player.HandleItem(items, msg.ITEM_POP_LABEL_ActivityReward.String()) if err != nil { player.SendErrClienRes(&msg.ResActivityReward{ Code: msg.RES_CODE_FAIL, @@ -4705,7 +4722,7 @@ func ReqActivityReward(player *Player, buf []byte) error { } player.TeLog("activity_reward", map[string]interface{}{ "Id": int(req.Id), - "Items": Items, + "Items": items, }) player.PlayMod.save() player.InitActivity() @@ -4762,7 +4779,7 @@ func ReqCatTrickReward(player *Player, buf []byte) error { }) return fmt.Errorf("cat trick event not exist") } - Items, err := LimitedTimeEventMod.GetCatTrickReward() + items, err := LimitedTimeEventMod.GetCatTrickReward() if err != nil { player.SendErrClienRes(&msg.ResCatTrickReward{ Code: msg.RES_CODE_FAIL, @@ -4770,7 +4787,7 @@ func ReqCatTrickReward(player *Player, buf []byte) error { }) return err } - err = player.HandleItem(Items, msg.ITEM_POP_LABEL_CatTrickReward.String()) + err = player.HandleItem(items, msg.ITEM_POP_LABEL_CatTrickReward.String()) if err != nil { player.SendErrClienRes(&msg.ResCatTrickReward{ Code: msg.RES_CODE_FAIL, @@ -4779,7 +4796,7 @@ func ReqCatTrickReward(player *Player, buf []byte) error { return err } player.TeLog("cat_trick_reward", map[string]interface{}{ - "Items": Items, + "Items": items, }) player.PlayMod.save() player.PushClientRes(LimitedTimeEventMod.BackData()) @@ -4816,7 +4833,7 @@ func ReqAddWish(player *Player, buf []byte) error { return err } ChargeMod := player.PlayMod.getChargeMod() - Items, err := ChargeMod.AddWish(int(req.Id), int(req.Type)) + items, err := ChargeMod.AddWish(int(req.Id), int(req.Type)) if err != nil { player.SendErrClienRes(&msg.ResAddWish{ Code: msg.RES_CODE_FAIL, @@ -4824,8 +4841,8 @@ func ReqAddWish(player *Player, buf []byte) error { }) return err } - if Items != nil { - err = player.HandleItem(Items, msg.ITEM_POP_LABEL_AddWish.String()) + if items != nil { + err = player.HandleItem(items, msg.ITEM_POP_LABEL_AddWish.String()) if err != nil { player.SendErrClienRes(&msg.ResAddWish{ Code: msg.RES_CODE_FAIL, @@ -4837,7 +4854,7 @@ func ReqAddWish(player *Player, buf []byte) error { player.TeLog("wish_add", map[string]interface{}{ "Id": int(req.Id), "Type": int(req.Type), - "Items": Items, + "Items": items, }) player.PlayMod.save() player.PushClientRes(&msg.ResAddWish{ @@ -4853,7 +4870,7 @@ func ReqGetWish(player *Player, buf []byte) error { return err } ChargeMod := player.PlayMod.getChargeMod() - Items, err := ChargeMod.GetWish() + items, err := ChargeMod.GetWish() if err != nil { player.SendErrClienRes(&msg.ResGetWish{ Code: msg.RES_CODE_FAIL, @@ -4861,8 +4878,8 @@ func ReqGetWish(player *Player, buf []byte) error { }) return err } - if Items != nil { - err = player.HandleItem(Items, msg.ITEM_POP_LABEL_GetWish.String()) + if items != nil { + err = player.HandleItem(items, msg.ITEM_POP_LABEL_GetWish.String()) if err != nil { player.SendErrClienRes(&msg.ResGetWish{ Code: msg.RES_CODE_FAIL, @@ -4872,7 +4889,7 @@ func ReqGetWish(player *Player, buf []byte) error { } } player.TeLog("wish_get", map[string]interface{}{ - "wish": Items, + "wish": items, }) player.PlayMod.save() player.PushClientRes(&msg.ResGetWish{ @@ -4922,9 +4939,9 @@ func ReqWishApplyList(player *Player, buf []byte) error { return err } FriendMod := player.PlayMod.getFriendMod() - List := FriendMod.GetWishApply() + list := FriendMod.GetWishApply() rs := make([]*msg.ResFriendApplyInfo, 0) - for _, v := range List { + for _, v := range list { PD := G_GameLogicPtr.GetResSimplePlayerByUid(0) if PD == nil { continue @@ -4981,16 +4998,16 @@ func ReqGuidePlayroom(player *Player, buf []byte) error { return err } GuideMod := player.PlayMod.getGuideMod() - B := GuideMod.GetPlayroomGuide() - if B { + isReward := GuideMod.GetPlayroomGuide() + if isReward { player.SendErrClienRes(&msg.ResGuidePlayroom{ Code: msg.RES_CODE_FAIL, Msg: "已领取", }) return fmt.Errorf("已领取") } - Items := []*item.Item{item.NewItem(int(req.Id), 1)} - err = player.HandleItem(Items, msg.ITEM_POP_LABEL_PlayroomGame.String()) + items := []*item.Item{item.NewItem(int(req.Id), 1)} + err = player.HandleItem(items, msg.ITEM_POP_LABEL_PlayroomGame.String()) if err != nil { player.SendErrClienRes(&msg.ResWishApply{ Code: msg.RES_CODE_FAIL, @@ -5046,9 +5063,9 @@ func ReqPlayroomGameShowReward(player *Player, buf []byte) error { if err != nil { return err } - Items := player.GetPlayroomGameReward(int(req.Type), int(req.SelectId)) + items := player.GetPlayroomGameReward(int(req.Type), int(req.SelectId)) player.PushClientRes(&msg.ResPlayroomGameShowReward{ - Items: item.ItemToMsg(Items), + Items: item.ItemToMsg(items), }) return nil } @@ -5091,15 +5108,15 @@ func ReqCatnipInvite(player *Player, buf []byte) error { if err != nil { return err } - ActivityId := player.GetActivityId(activity.ACT_TYPE_CATNIP) - if ActivityId == 0 { + activityId := player.GetActivityId(activity.ACT_TYPE_CATNIP) + if activityId == 0 { player.SendErrClienRes(&msg.ResCatnipInvite{ Code: msg.RES_CODE_FAIL, Msg: "activity not active", }) return fmt.Errorf("activity not active") } - ActivityInfo := player.GetActivityInfo(ActivityId) + activityInfo := player.GetActivityInfo(activityId) CatnipMod := player.PlayMod.getCatnipMod() err = CatnipMod.Invite(int(req.Uid), int(req.Id)) if err != nil { @@ -5116,14 +5133,13 @@ func ReqCatnipInvite(player *Player, buf []byte) error { From: int(player.M_DwUin), To: int(req.Uid), Type: MsqMod.HANDLE_TYPE_CATNIP_INVITE, - End: ActivityInfo.EndT, - Extra: CatnipMsg{ - ActivityId: ActivityId, - GameId: int(req.Id), + End: activityInfo.EndT, + Extra: map[string]interface{}{ + "ActivityId": activityId, + "GameId": int(req.Id), }, SendT: GoUtil.Now(), }) - //player.CatnipBackData() player.PlayMod.save() player.PushClientRes(&msg.ResCatnipInvite{ Code: msg.RES_CODE_SUCCESS, @@ -5139,9 +5155,9 @@ func ReqCatnipAgree(player *Player, buf []byte) error { return err } CatnipMod := player.PlayMod.getCatnipMod() - ActivityId := player.GetActivityId(activity.ACT_TYPE_CATNIP) - ActivityInfo := player.GetActivityInfo(ActivityId) - if ActivityId == 0 { + activityId := player.GetActivityId(activity.ACT_TYPE_CATNIP) + activityInfo := player.GetActivityInfo(activityId) + if activityId == 0 { player.SendErrClienRes(&msg.ResCatnipAgree{ Code: msg.RES_CODE_FAIL, Msg: "activity not active", @@ -5156,7 +5172,7 @@ func ReqCatnipAgree(player *Player, buf []byte) error { }) return err } - err = player.SetCatnipPartner(int(req.Id), int(req.Uid), ActivityInfo.EndT) + err = player.SetCatnipPartner(int(req.Id), int(req.Uid), activityInfo.EndT) if err != nil { player.SendErrClienRes(&msg.ResCatnipAgree{ Code: msg.RES_CODE_FAIL, @@ -5171,9 +5187,9 @@ func ReqCatnipAgree(player *Player, buf []byte) error { From: int(player.M_DwUin), To: int(req.Uid), Type: MsqMod.HANDLE_TYPE_CATNIP_AGREE, - Extra: CatnipMsg{ - ActivityId: ActivityId, - GameId: int(req.Id), + Extra: map[string]interface{}{ + "ActivityId": activityId, + "GameId": int(req.Id), }, SendT: GoUtil.Now(), }) @@ -5194,8 +5210,8 @@ func ReqCatnipMultiply(player *Player, buf []byte) error { return err } CatnipMod := player.PlayMod.getCatnipMod() - ActivityId := player.GetActivityId(activity.ACT_TYPE_CATNIP) - if ActivityId == 0 { + activityId := player.GetActivityId(activity.ACT_TYPE_CATNIP) + if activityId == 0 { player.SendErrClienRes(&msg.ResCatnipMultiply{ Code: msg.RES_CODE_FAIL, Msg: "activity not active", @@ -5230,15 +5246,15 @@ func ReqCatnipPlay(player *Player, buf []byte) error { return err } CatnipMod := player.PlayMod.getCatnipMod() - ActivityId := player.GetActivityId(activity.ACT_TYPE_CATNIP) - if ActivityId == 0 { + activityId := player.GetActivityId(activity.ACT_TYPE_CATNIP) + if activityId == 0 { player.SendErrClienRes(&msg.ResCatnipPlay{ Code: msg.RES_CODE_FAIL, Msg: "activity not active", }) return fmt.Errorf("activity not active") } - Id, Growth, PartnerId, Items, ItemCost, FriendItems, err := CatnipMod.Play(int(req.Id)) + id, growth, partnerId, items, costItems, friendItems, err := CatnipMod.Play(int(req.Id)) if err != nil { player.SendErrClienRes(&msg.ResCatnipPlay{ Code: msg.RES_CODE_FAIL, @@ -5246,7 +5262,7 @@ func ReqCatnipPlay(player *Player, buf []byte) error { }) return err } - err = player.HandleLoseItem(ItemCost, msg.ITEM_POP_LABEL_CatnipPlay.String()) + err = player.HandleLoseItem(costItems, msg.ITEM_POP_LABEL_CatnipPlay.String()) if err != nil { player.SendErrClienRes(&msg.ResCatnipPlay{ Code: msg.RES_CODE_FAIL, @@ -5254,7 +5270,7 @@ func ReqCatnipPlay(player *Player, buf []byte) error { }) return err } - err = player.HandleItem(Items, msg.ITEM_POP_LABEL_CatnipPlay.String()) + err = player.HandleItem(items, msg.ITEM_POP_LABEL_CatnipPlay.String()) if err != nil { player.SendErrClienRes(&msg.ResCatnipPlay{ Code: msg.RES_CODE_FAIL, @@ -5262,20 +5278,24 @@ func ReqCatnipPlay(player *Player, buf []byte) error { }) return err } + var expendNum int + if len(costItems) > 0 { + expendNum = costItems[0].Num + } player.TeLog("cats_garden_expend_token", map[string]interface{}{ - "friends_ID": PartnerId, + "friends_ID": partnerId, "multiple": CatnipMod.GetMultiple(), - "expend_num": ItemCost[0].Num, - "get_award": Items, + "expend_num": expendNum, + "get_award": items, }) - if Growth > 0 { - player.CatnipGrowthMsg(PartnerId, int(req.Id), Growth, FriendItems*CatnipMod.Mul) + if growth > 0 { + player.CatnipGrowthMsg(partnerId, int(req.Id), growth, friendItems*CatnipMod.Mul) } //player.CatnipBackData() player.PlayMod.save() player.PushClientRes(&msg.ResCatnipPlay{ Code: msg.RES_CODE_SUCCESS, - Id: int32(Id), + Id: int32(id), }) return nil } @@ -5288,15 +5308,15 @@ func ReqCatnipReward(player *Player, buf []byte) error { return err } CatnipMod := player.PlayMod.getCatnipMod() - ActivityId := player.GetActivityId(activity.ACT_TYPE_CATNIP) - if ActivityId == 0 { + activityId := player.GetActivityId(activity.ACT_TYPE_CATNIP) + if activityId == 0 { player.SendErrClienRes(&msg.ResCatnipPlay{ Code: msg.RES_CODE_FAIL, Msg: "activity not active", }) return fmt.Errorf("activity not active") } - Items, GameInfo, err := CatnipMod.Reward(int(req.Id)) + items, gameInfo, err := CatnipMod.Reward(int(req.Id)) if err != nil { player.SendErrClienRes(&msg.ResCatnipReward{ Code: msg.RES_CODE_FAIL, @@ -5304,7 +5324,7 @@ func ReqCatnipReward(player *Player, buf []byte) error { }) return err } - err = player.HandleItem(Items, msg.ITEM_POP_LABEL_CatnipReward.String()) + err = player.HandleItem(items, msg.ITEM_POP_LABEL_CatnipReward.String()) if err != nil { player.SendErrClienRes(&msg.ResCatnipReward{ Code: msg.RES_CODE_FAIL, @@ -5314,9 +5334,9 @@ func ReqCatnipReward(player *Player, buf []byte) error { } player.TeLog("cats_garden_stage_reward", map[string]interface{}{ "Id": int(req.Id), - "friends_ID": GameInfo.Partner, - "friends_get_num": GameInfo.PartnerAdd, - "user_get_num": GameInfo.Progress - GameInfo.PartnerAdd, + "friends_ID": gameInfo.Partner, + "friends_get_num": gameInfo.PartnerAdd, + "user_get_num": gameInfo.Progress - gameInfo.PartnerAdd, }) //player.CatnipBackData() player.PlayMod.save() @@ -5334,15 +5354,15 @@ func ReqCatnipGrandReward(player *Player, buf []byte) error { return err } CatnipMod := player.PlayMod.getCatnipMod() - ActivityId := player.GetActivityId(activity.ACT_TYPE_CATNIP) - if ActivityId == 0 { + activityId := player.GetActivityId(activity.ACT_TYPE_CATNIP) + if activityId == 0 { player.SendErrClienRes(&msg.ResCatnipPlay{ Code: msg.RES_CODE_FAIL, Msg: "activity not active", }) return fmt.Errorf("activity not active") } - Items, err := CatnipMod.GrandReward() + items, err := CatnipMod.GrandReward() if err != nil { player.SendErrClienRes(&msg.ResCatnipGrandReward{ Code: msg.RES_CODE_FAIL, @@ -5350,7 +5370,7 @@ func ReqCatnipGrandReward(player *Player, buf []byte) error { }) return err } - err = player.HandleItem(Items, msg.ITEM_POP_LABEL_CatnipGrandReward.String()) + err = player.HandleItem(items, msg.ITEM_POP_LABEL_CatnipGrandReward.String()) if err != nil { player.SendErrClienRes(&msg.ResCatnipGrandReward{ Code: msg.RES_CODE_FAIL, @@ -5359,7 +5379,7 @@ func ReqCatnipGrandReward(player *Player, buf []byte) error { return err } player.TeLog("cats_garden_final_reward", map[string]interface{}{ - "get_reward": Items, + "get_reward": items, }) //player.CatnipBackData() player.PlayMod.save() @@ -5376,8 +5396,8 @@ func ReqCatnipRefuse(player *Player, buf []byte) error { return err } CatnipMod := player.PlayMod.getCatnipMod() - ActivityId := player.GetActivityId(activity.ACT_TYPE_CATNIP) - if ActivityId == 0 { + activityId := player.GetActivityId(activity.ACT_TYPE_CATNIP) + if activityId == 0 { player.SendErrClienRes(&msg.ResCatnipRefuse{ Code: msg.RES_CODE_FAIL, Msg: "activity not active", @@ -5400,9 +5420,9 @@ func ReqCatnipRefuse(player *Player, buf []byte) error { To: int(req.Uid), Type: MsqMod.HANDLE_TYPE_CATNIP_REFUSE, SendT: GoUtil.Now(), - Extra: CatnipMsg{ - ActivityId: player.GetActivityId(activity.ACT_TYPE_CATNIP), - GameId: int(req.Id), + Extra: map[string]interface{}{ + "ActivityId": player.GetActivityId(activity.ACT_TYPE_CATNIP), + "GameId": int(req.Id), }, }) //player.CatnipBackData() @@ -5421,8 +5441,8 @@ func ReqActPass(player *Player, buf []byte) error { func ReqActPassReward(player *Player, buf []byte) error { PassMod := player.PlayMod.getPassMod() - Items, NewLevel := PassMod.GetRewardItems() - err := player.HandleItem(Items, msg.ITEM_POP_LABEL_ActPassReward.String()) + items, newLevel := PassMod.GetRewardItems() + err := player.HandleItem(items, msg.ITEM_POP_LABEL_ActPassReward.String()) if err != nil { player.SendErrClienRes(&msg.ResActPassReward{ Code: msg.RES_CODE_FAIL, @@ -5431,13 +5451,13 @@ func ReqActPassReward(player *Player, buf []byte) error { return err } player.TeLog("act_pass_reward", map[string]interface{}{ - "NewLevel": NewLevel, - "Items": Items, + "NewLevel": newLevel, + "Items": items, }) player.PlayMod.save() player.PushClientRes(&msg.ResActPassReward{ Code: msg.RES_CODE_SUCCESS, - RewardLevel: GoUtil.IntToInt32(NewLevel), + RewardLevel: GoUtil.IntToInt32(newLevel), }) return nil } @@ -5449,7 +5469,7 @@ func ReqGetChessRetireReward(player *Player, buf []byte) error { return err } ChessMod := player.PlayMod.getChessMod() - Items, err := ChessMod.GetRetireReward(req.Id) + items, err := ChessMod.GetRetireReward(req.Id) if err != nil { player.SendErrClienRes(&msg.ResGetChessRetireReward{ Code: msg.RES_CODE_FAIL, @@ -5457,7 +5477,7 @@ func ReqGetChessRetireReward(player *Player, buf []byte) error { }) return err } - err = player.HandleItem(Items, msg.ITEM_POP_LABEL_GetChessRetireReward.String()) + err = player.HandleItem(items, msg.ITEM_POP_LABEL_GetChessRetireReward.String()) if err != nil { player.SendErrClienRes(&msg.ResGetChessRetireReward{ Code: msg.RES_CODE_FAIL, @@ -5467,7 +5487,7 @@ func ReqGetChessRetireReward(player *Player, buf []byte) error { } player.TeLog("get_chess_retire_reward", map[string]interface{}{ "EmitSerise": req.Id, - "Items": Items, + "Items": items, }) player.PushClientRes(ChessMod.BackData()) player.PlayMod.save() @@ -5485,17 +5505,17 @@ func ReqCatnipEmoji(player *Player, buf []byte) error { return err } CatnipMod := player.PlayMod.getCatnipMod() - ActivityId := player.GetActivityId(activity.ACT_TYPE_CATNIP) - if ActivityId == 0 { + activityId := player.GetActivityId(activity.ACT_TYPE_CATNIP) + if activityId == 0 { player.SendErrClienRes(&msg.ResCatnipEmoji{ Code: msg.RES_CODE_FAIL, Msg: "activity not active", }) return fmt.Errorf("activity not active") } - GameInfo := CatnipMod.GetGameInfo(int(req.Id)) + gameInfo := CatnipMod.GetGameInfo(int(req.Id)) CatnipMod.SetSendEmoji(int(req.Id), int(req.EmojiId)) - if GameInfo.Partner == 0 { + if gameInfo.Partner == 0 { player.SendErrClienRes(&msg.ResCatnipEmoji{ Code: msg.RES_CODE_FAIL, Msg: "no partner", @@ -5504,7 +5524,7 @@ func ReqCatnipEmoji(player *Player, buf []byte) error { } FriendMgrSend(&MsqMod.Msg{ From: int(player.M_DwUin), - To: GameInfo.Partner, + To: gameInfo.Partner, Type: MsqMod.HANDLE_TYPE_CATNIP_SEND_EMOJI, Extra: int(req.EmojiId), }) diff --git a/src/server/game/req_func_friend.go b/src/server/game/req_func_friend.go index 84129415..2a3a4e04 100644 --- a/src/server/game/req_func_friend.go +++ b/src/server/game/req_func_friend.go @@ -452,9 +452,9 @@ func ReqFriendReplyHandle(player *Player, buf []byte) error { From: int(player.M_DwUin), To: int(ReplyInfo.Uid), Type: MsqMod.HANDLE_TYPE_CATNIP_AGREE, - Extra: CatnipMsg{ - ActivityId: ActivityId, - GameId: int(GameId), + Extra: map[string]interface{}{ + "ActivityId": ActivityId, + "GameId": int(GameId), }, SendT: now, End: now + sevendays, @@ -465,9 +465,9 @@ func ReqFriendReplyHandle(player *Player, buf []byte) error { From: int(player.M_DwUin), To: int(v), Type: MsqMod.HANDLE_TYPE_CATNIP_AGREE, - Extra: CatnipMsg{ - ActivityId: ActivityId, - GameId: int(GameId), + Extra: map[string]interface{}{ + "ActivityId": ActivityId, + "GameId": int(GameId), }, SendT: now, End: now + sevendays, From 9574295f8de24f656916699506e716470d3293ab Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Tue, 24 Mar 2026 18:52:49 +0800 Subject: [PATCH 33/52] =?UTF-8?q?=E4=BB=A3=E7=A0=81=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/server/game/activity_func.go | 202 +++-- src/server/game/admin.go | 38 +- src/server/game/champship_mgr.go | 535 +++++++------ src/server/game/charge_func.go | 136 ++-- src/server/game/cluster_mgr.go | 4 +- src/server/game/friend_func.go | 104 +-- src/server/game/limited_time_trigger.go | 180 ++--- src/server/game/mail_mgr.go | 20 +- src/server/game/message_handler.go | 6 +- src/server/game/mod/activity/activity_gift.go | 8 +- src/server/game/mod/avatar/Avatar.go | 30 +- src/server/game/mod/base/Base.go | 63 +- src/server/game/mod/card/Card.go | 250 +++--- src/server/game/mod/card/card_func.go | 12 +- src/server/game/mod/catnip/Catnip.go | 166 ++-- src/server/game/mod/champship/Champship.go | 16 +- src/server/game/mod/charge/Charge.go | 278 ++++--- src/server/game/mod/charge/charge_func.go | 8 +- src/server/game/mod/chess/Chess.go | 26 +- .../game/mod/compensation/compensation.go | 4 +- src/server/game/mod/daily_task/DailyFunc.go | 21 +- src/server/game/mod/decorate/Decorate.go | 206 ++--- src/server/game/mod/emoji/emoji.go | 20 +- src/server/game/mod/endless/Endless.go | 36 +- src/server/game/mod/endless/endless_func.go | 86 +-- src/server/game/mod/face/Face.go | 26 +- src/server/game/mod/friend/Friend.go | 166 ++-- .../mod/friend_treasure.go/friend_treasure.go | 10 +- .../game/mod/guess_color/guess_color.go | 44 +- src/server/game/mod/guide/Guide.go | 14 +- src/server/game/mod/guide_task/guide_task.go | 34 +- src/server/game/mod/handbook/Handbook.go | 38 +- src/server/game/mod/invite/invite.go | 18 +- src/server/game/mod/item/Item.go | 30 +- .../limited_time_event/limited_time_event.go | 373 ++++----- src/server/game/mod/mining/mining.go | 42 +- src/server/game/mod/order/Order.go | 368 ++++----- src/server/game/mod/order/order_func.go | 719 +++++++++--------- src/server/game/mod/pass/Pass.go | 54 +- src/server/game/mod/piggy_bank/piggy_bank.go | 34 +- src/server/game/mod/playroom/playroom.go | 534 ++++++------- src/server/game/mod/quest/Quest.go | 22 +- src/server/game/mod/race/race.go | 64 +- .../game/mod/seven_login/seven_login.go | 82 +- src/server/game/player_back.go | 110 +-- src/server/game/player_base_mod.go | 86 +-- src/server/game/player_chess_mod.go | 219 +++--- 47 files changed, 2765 insertions(+), 2777 deletions(-) diff --git a/src/server/game/activity_func.go b/src/server/game/activity_func.go index 54a2d155..51a6fe4f 100644 --- a/src/server/game/activity_func.go +++ b/src/server/game/activity_func.go @@ -23,7 +23,6 @@ import ( // 活动模块 登录 func (p *Player) ActivityLogin() { ItemMod := p.PlayMod.getItemMod() - // 通用登录处理:检查旧Activity道具并通过邮件退还 handleSimpleLogin := func(actType int, loginFn func(int) int) { ActivityId := p.GetActivityId(actType) @@ -58,10 +57,10 @@ func (p *Player) ActivityLogin() { // 赛跑 handleSimpleLogin(activity.ACT_TYPE_RACE, p.PlayMod.getRaceMod().Login) // 猫草大作战 - CatnipActivityId := p.GetActivityId(activity.ACT_TYPE_CATNIP) + catnipActivityId := p.GetActivityId(activity.ACT_TYPE_CATNIP) CatnipMod := p.PlayMod.getCatnipMod() - OldId, CatnipUnReward := CatnipMod.Login(CatnipActivityId) - if OldId != 0 && len(CatnipUnReward) > 0 { + oldId, catnipUnReward := CatnipMod.Login(catnipActivityId) + if oldId != 0 && len(catnipUnReward) > 0 { // 清空猫草大作战数据无需发邮件 MailMod := p.PlayMod.getMailMod() MailMod.SendMail(&mail.MailStruct{ @@ -73,25 +72,24 @@ func (p *Player) ActivityLogin() { ContentPtBr: languageCfg.GetLanguage(msg.LANG_TYPE_LANG_PTBR, "backend_gardenend_mail_content"), TitleEsLatam: languageCfg.GetLanguage(msg.LANG_TYPE_LANG_ES_LATAM, "backend_gardenend_mail_title"), ContentEsLatam: languageCfg.GetLanguage(msg.LANG_TYPE_LANG_ES_LATAM, "backend_gardenend_mail_content"), - Items: CatnipUnReward, + Items: catnipUnReward, Type: mail.MAIL_TYPE_NORMAL, }) } // 通行证 - PassActivityId := p.GetActivityId(activity.ACT_TYPE_PASS) + passActivityId := p.GetActivityId(activity.ACT_TYPE_PASS) PassMod := p.PlayMod.getPassMod() - PassOldId := PassMod.Login(PassActivityId) - if PassOldId != 0 { - ItemId := passCfg.GetActivityItemId(PassOldId) + passOldId := PassMod.Login(passActivityId) + if passOldId != 0 { + ItemId := passCfg.GetActivityItemId(passOldId) ItemNum := PassMod.Num RewardItems, _ := PassMod.GetRewardItems() if ItemNum != 0 { ItemMod.AddItem(ItemId, -ItemNum) - p.SendActivityMail(ItemId, ItemNum, PassActivityId, RewardItems) + p.SendActivityMail(ItemId, ItemNum, passActivityId, RewardItems) } } - // 初始化活动道具 initItem := p.GetMiningMod().GetInitItem() if len(initItem) > 0 { @@ -189,15 +187,15 @@ func (p *Player) GetActivityInfoById(Id int) *ActivityInfo { // 获取活动状态 func (p *Player) GetActivityStatus(actType int) int { - ActivityInfo := p.GetActivityInfo(actType) - if ActivityInfo == nil { + activityInfo := p.GetActivityInfo(actType) + if activityInfo == nil { return ACT_STATUS_NOT_START } - Now := GoUtil.Now() - if Now < ActivityInfo.StartT { + now := GoUtil.Now() + if now < activityInfo.StartT { return ACT_STATUS_NOT_START } - if Now > ActivityInfo.EndT { + if now > activityInfo.EndT { return ACT_STATUS_END } return ACT_STATUS_START @@ -205,12 +203,12 @@ func (p *Player) GetActivityStatus(actType int) int { // 挖矿活动数据返回 func (p *Player) MiningBackData() { - ActivityInfo := p.GetActivityInfo(activity.ACT_TYPE_MINING) - if ActivityInfo == nil { + activityInfo := p.GetActivityInfo(activity.ACT_TYPE_MINING) + if activityInfo == nil { return } - Status := p.GetActivityStatus(activity.ACT_TYPE_MINING) - Template := miningCfg.GetTemplate(ActivityInfo.Id) + status := p.GetActivityStatus(activity.ACT_TYPE_MINING) + template := miningCfg.GetTemplate(activityInfo.Id) DecorateMod := p.PlayMod.getDecorateMod() orderFactor := orderCfg.GetOrderFactor(DecorateMod.GetAreaId()) passRewardList := miningCfg.GetPassItemList(orderFactor) @@ -220,10 +218,10 @@ func (p *Player) MiningBackData() { } MiningMod := p.PlayMod.getMiningMod() p.PushClientRes(&msg.ResMining{ - Id: int32(ActivityInfo.Id), - Status: int32(Status), - EndTime: int32(ActivityInfo.EndT), - Template: int32(Template), + Id: int32(activityInfo.Id), + Status: int32(status), + EndTime: int32(activityInfo.EndT), + Template: int32(template), Pass: int32(MiningMod.GetPass()), Gem: GoUtil.IntToInt32(MiningMod.GetGem()), Map: MiningMod.GetMap(), @@ -234,23 +232,23 @@ func (p *Player) MiningBackData() { // 猜颜色活动数据返回 func (p *Player) GuessColorBackData() { - ActivityInfo := p.GetActivityInfo(activity.ACT_TYPE_GUESS_COLOR) - if ActivityInfo == nil { + activityInfo := p.GetActivityInfo(activity.ACT_TYPE_GUESS_COLOR) + if activityInfo == nil { return } - Status := p.GetActivityStatus(activity.ACT_TYPE_GUESS_COLOR) + status := p.GetActivityStatus(activity.ACT_TYPE_GUESS_COLOR) GuessColorMod := p.PlayMod.getGuessColorMod() - MapList := make([]*msg.GuessColorInfo, 0, len(GuessColorMod.MapList)) + mapList := make([]*msg.GuessColorInfo, 0, len(GuessColorMod.MapList)) for _, v := range GuessColorMod.MapList { - MapList = append(MapList, &msg.GuessColorInfo{ + mapList = append(mapList, &msg.GuessColorInfo{ Map: v, }) } p.PushClientRes(&msg.ResGuessColor{ - Id: int32(ActivityInfo.Id), - Status: int32(Status), - EndTime: int32(ActivityInfo.EndT), + Id: int32(activityInfo.Id), + Status: int32(status), + EndTime: int32(activityInfo.EndT), Pass: int32(GuessColorMod.Pass), Opponent: &msg.Opponent{ Name: GuessColorMod.Opponent.Name, @@ -259,22 +257,22 @@ func (p *Player) GuessColorBackData() { Progress: int32(GuessColorMod.Opponent.Progress), }, WinTime: int32(GuessColorMod.WinTime), - MapList: MapList, + MapList: mapList, OMap: GuessColorMod.OMap, }) } // 赛跑活动数据返回 func (p *Player) RaceBackData() { - ActivityInfo := p.GetActivityInfo(activity.ACT_TYPE_RACE) - if ActivityInfo == nil { + activityInfo := p.GetActivityInfo(activity.ACT_TYPE_RACE) + if activityInfo == nil { return } - Status := p.GetActivityStatus(activity.ACT_TYPE_RACE) + status := p.GetActivityStatus(activity.ACT_TYPE_RACE) RaceMod := p.PlayMod.getRaceMod() - Opponent := make([]*msg.Raceopponent, 0, len(RaceMod.Opponent)) + opponent := make([]*msg.Raceopponent, 0, len(RaceMod.Opponent)) for _, v := range RaceMod.Opponent { - Opponent = append(Opponent, &msg.Raceopponent{ + opponent = append(opponent, &msg.Raceopponent{ Id: int32(v.Id), Name: v.Name, Face: int32(v.Face), @@ -283,14 +281,14 @@ func (p *Player) RaceBackData() { }) } p.PushClientRes(&msg.ResRace{ - Id: int32(ActivityInfo.Id), - Status: int32(Status), - EndTime: int32(ActivityInfo.EndT), + Id: int32(activityInfo.Id), + Status: int32(status), + EndTime: int32(activityInfo.EndT), Pass: int32(RaceMod.Pass), GameStartTime: int32(RaceMod.StartTime), Progress: int32(RaceMod.Progress), GameEndTime: int32(RaceMod.EndTime), - Opponent: Opponent, + Opponent: opponent, Rank: int32(RaceMod.Rank), }) } @@ -298,9 +296,9 @@ func (p *Player) RaceBackData() { // 红点数据返回 func (p *Player) RedBackData() { result := make(map[int32]int32) - Now := GoUtil.Now() + now := GoUtil.Now() for _, v := range p.activity { - if v.StartT < Now && v.EndT > Now { + if v.StartT < now && v.EndT > now { result[int32(v.Type)] = int32(p.GetRed(v)) } } @@ -308,27 +306,27 @@ func (p *Player) RedBackData() { } func (p *Player) GetMiningItemId() int { - ActivityInfo := p.GetActivityInfo(activity.ACT_TYPE_MINING) - if ActivityInfo == nil { + activityInfo := p.GetActivityInfo(activity.ACT_TYPE_MINING) + if activityInfo == nil { return 0 } - return miningCfg.GetActivityItemId(ActivityInfo.Id) + return miningCfg.GetActivityItemId(activityInfo.Id) } // 通行证活动数据返回 func (p *Player) ActPassBackData() { - ActivityInfo := p.GetActivityInfo(activity.ACT_TYPE_PASS) - if ActivityInfo == nil { + activityInfo := p.GetActivityInfo(activity.ACT_TYPE_PASS) + if activityInfo == nil { return } - Status := p.GetActivityStatus(activity.ACT_TYPE_PASS) - Template := passCfg.GetTemplate(ActivityInfo.Id) + status := p.GetActivityStatus(activity.ACT_TYPE_PASS) + template := passCfg.GetTemplate(activityInfo.Id) PassMod := p.PlayMod.getPassMod() p.PushClientRes(&msg.ResActPass{ - Id: int32(ActivityInfo.Id), - Status: int32(Status), - Template: int32(Template), - EndTime: int32(ActivityInfo.EndT), + Id: int32(activityInfo.Id), + Status: int32(status), + Template: int32(template), + EndTime: int32(activityInfo.EndT), LowPass: PassMod.LowPass > 0, HighPass: PassMod.HighPass > 0, Score: int32(PassMod.Num), @@ -338,57 +336,57 @@ func (p *Player) ActPassBackData() { // 获取活动道具 func (p *Player) GetActivityItem(ActType []int) []*item.Item { - Items := make([]*item.Item, 0) - Now := GoUtil.Now() + items := make([]*item.Item, 0) + now := GoUtil.Now() for _, v := range ActType { - ActivityInfo := p.GetActivityInfo(v) - if ActivityInfo == nil { + activityInfo := p.GetActivityInfo(v) + if activityInfo == nil { continue } - Status := ACT_STATUS_START - if Now < ActivityInfo.StartT { - Status = ACT_STATUS_NOT_START - } else if Now > ActivityInfo.EndT { - Status = ACT_STATUS_END + status := ACT_STATUS_START + if now < activityInfo.StartT { + status = ACT_STATUS_NOT_START + } else if now > activityInfo.EndT { + status = ACT_STATUS_END } - if Status != ACT_STATUS_START { + if status != ACT_STATUS_START { continue } switch v { case activity.ACT_TYPE_MINING: - Item := miningCfg.GetLoseItem(ActivityInfo.Id) - Items = item.Merge(Items, Item) + itemInfo := miningCfg.GetLoseItem(activityInfo.Id) + items = item.Merge(items, itemInfo) case activity.ACT_TYPE_GUESS_COLOR: - Item := guesscolorCfg.GetLoseItem(ActivityInfo.Id) - Items = item.Merge(Items, Item) + itemInfo := guesscolorCfg.GetLoseItem(activityInfo.Id) + items = item.Merge(items, itemInfo) case activity.ACT_TYPE_RACE: - ItemId := raceCfg.GetCoin(ActivityInfo.Id) - Item := item.NewItem(ItemId, 1) - Items = append(Items, Item) + itemId := raceCfg.GetCoin(activityInfo.Id) + itemInfo := item.NewItem(itemId, 1) + items = append(items, itemInfo) case activity.ACT_TYPE_PASS: - ItemId := passCfg.GetActivityItemId(ActivityInfo.Id) - Item := item.NewItem(ItemId, 1) - Items = append(Items, Item) + itemId := passCfg.GetActivityItemId(activityInfo.Id) + itemInfo := item.NewItem(itemId, 1) + items = append(items, itemInfo) } } - return Items + return items } // 猫草大作战活动数据返回 func (p *Player) CatnipBackData() { - ActivityInfo := p.GetActivityInfo(activity.ACT_TYPE_CATNIP) - if ActivityInfo == nil { + activityInfo := p.GetActivityInfo(activity.ACT_TYPE_CATNIP) + if activityInfo == nil { return } CatnipMod := p.PlayMod.getCatnipMod() - Status := p.GetActivityStatus(activity.ACT_TYPE_CATNIP) + status := p.GetActivityStatus(activity.ACT_TYPE_CATNIP) if CatnipMod == nil { return } FriendMod := p.PlayMod.getFriendMod() - GameList := make([]*msg.CatnipGame, 0, len(CatnipMod.Game)) + gameList := make([]*msg.CatnipGame, 0, len(CatnipMod.Game)) for _, v := range CatnipMod.Game { - GameInfo := &msg.CatnipGame{ + gameInfo := &msg.CatnipGame{ Id: int32(v.Id), Progress: int32(v.Progress), Status: int32(v.Status), @@ -398,13 +396,13 @@ func (p *Player) CatnipBackData() { SendEmoji: int32(v.SendEmoji), } if v.Partner != 0 { - PlayerData := G_getGameLogic().GetResSimplePlayerByUid(v.Partner) - if PlayerData != nil { - GameInfo.Partner = PlayerData + playerData := G_getGameLogic().GetResSimplePlayerByUid(v.Partner) + if playerData != nil { + gameInfo.Partner = playerData } } - GameList = append(GameList, GameInfo) + gameList = append(gameList, gameInfo) } tmpData := make(map[int]*msg.CatnipInvite) for uid, info := range CatnipMod.InviteList { @@ -443,24 +441,24 @@ func (p *Player) CatnipBackData() { invite.Type = 4 // 已参与游戏的好友不显示邀请 } } - InviteList := make([]*msg.CatnipInvite, 0, len(tmpData)) + inviteList := make([]*msg.CatnipInvite, 0, len(tmpData)) for _, v := range tmpData { - ResPlayerSimple := G_getGameLogic().GetResSimplePlayerByUid(int(v.Uid)) - if ResPlayerSimple != nil { - v.Player = ResPlayerSimple + resPlayerSimple := G_getGameLogic().GetResSimplePlayerByUid(int(v.Uid)) + if resPlayerSimple != nil { + v.Player = resPlayerSimple } - InviteList = append(InviteList, v) + inviteList = append(inviteList, v) } - Template := catnipCfg.GetTemplateId(CatnipMod.Id) + template := catnipCfg.GetTemplateId(CatnipMod.Id) res := &msg.ResCatnip{ Id: int32(CatnipMod.Id), - EndTime: int32(ActivityInfo.EndT), - Status: int32(Status), - Template: int32(Template), - GameList: GameList, + EndTime: int32(activityInfo.EndT), + Status: int32(status), + Template: int32(template), + GameList: gameList, Multiply: int32(CatnipMod.Mul), - FriendList: InviteList, + FriendList: inviteList, } p.PushClientRes(res) } @@ -469,8 +467,8 @@ func (p *Player) GetChampshipActivityId() (int, int) { var todayActivityId int var yesterdayActivityId int activiyCfgList := G_GameLogicPtr.ActivityMgr.GetActivityList() - Now := GoUtil.Now() - YesterDay := GoUtil.ZeroTimestamp() - 1 + now := GoUtil.Now() + yesterday := GoUtil.ZeroTimestamp() - 1 level := p.GetBaseMod().GetLevel() champshipActivityIds := champshipCfg.GetChampshipActivityId() for _, v := range activiyCfgList { @@ -480,10 +478,10 @@ func (p *Player) GetChampshipActivityId() (int, int) { if v.Level > level { continue } - if v.Startime <= Now && v.Endtime >= Now { + if v.Startime <= now && v.Endtime >= now { todayActivityId = v.Id } - if v.Startime <= YesterDay && v.Endtime >= YesterDay { + if v.Startime <= yesterday && v.Endtime >= yesterday { yesterdayActivityId = v.Id } } @@ -493,7 +491,7 @@ func (p *Player) GetChampshipActivityId() (int, int) { func (p *Player) GetDailyTaskActivityId() int { var activityId int activiyCfgList := G_GameLogicPtr.ActivityMgr.GetActivityList() - Now := GoUtil.Now() + now := GoUtil.Now() level := p.GetBaseMod().GetLevel() activityIds := dailyTaskCfg.GetActivityIds() for _, v := range activiyCfgList { @@ -503,7 +501,7 @@ func (p *Player) GetDailyTaskActivityId() int { if v.Level > level { continue } - if v.Startime <= Now && v.Endtime >= Now { + if v.Startime <= now && v.Endtime >= now { activityId = v.Id break } diff --git a/src/server/game/admin.go b/src/server/game/admin.go index aac65f31..21de05c0 100644 --- a/src/server/game/admin.go +++ b/src/server/game/admin.go @@ -30,14 +30,14 @@ var AdminFuncMap = map[string]func([]interface{}) error{ "ReqAdminShipping": ReqAdminShipping, } -func AdminProcess(Func string, args []interface{}) { +func AdminProcess(funcName string, args []interface{}) { defer func() { if r := recover(); r != nil { - log.Error("uid : %d, func : %s, fatal : %s", 0, Func, r) - //GoUtil.SendFeishuFatal(0, Func, fmt.Sprintf("fatal : %s", r)) + log.Error("uid : %d, func : %s, fatal : %s", 0, funcName, r) + //GoUtil.SendFeishuFatal(0, funcName, fmt.Sprintf("fatal : %s", r)) } }() - if f, ok := AdminFuncMap[Func]; ok { + if f, ok := AdminFuncMap[funcName]; ok { err := f(args) if err != nil { log.Debug("AdminProcess error: %v", err) @@ -123,27 +123,27 @@ func ReqAdminShipping(args []interface{}) error { proto.Unmarshal(buf, req) res := make(map[string]interface{}) res["Code"] = 0 - OrderInfo, err := db.GetPlayerChargeData(req.OrderSn) + orderInfo, err := db.GetPlayerChargeData(req.OrderSn) if err != nil { res["Code"] = 1 res["Msg"] = "order not found" AdminPlayerBack(a, res) } - if OrderInfo.PayStatus == MergeConst.ORDER_STATUS_SHIP { + if orderInfo.PayStatus == MergeConst.ORDER_STATUS_SHIP { res["Msg"] = "order already shipped" AdminPlayerBack(a, res) } - Player := G_GameLogicPtr.GetPlayer(int64(OrderInfo.Uid)) - if Player != nil { - go Player.TriggerShippingOrderOrigin(&msg.ReqShippingOrder{ + player := G_GameLogicPtr.GetPlayer(int64(orderInfo.Uid)) + if player != nil { + go player.TriggerShippingOrderOrigin(&msg.ReqShippingOrder{ OrderSn: req.OrderSn, }) res["Msg"] = "player online,triggered sync" AdminPlayerBack(a, res) } else { - OrderInfo.PayStatus = MergeConst.ORDER_STATUS_PAY - OrderInfo.PayChannelOrderId = req.ChannelOrderSn - db.UpdatePlayerChargeData(OrderInfo) + orderInfo.PayStatus = MergeConst.ORDER_STATUS_PAY + orderInfo.PayChannelOrderId = req.ChannelOrderSn + db.UpdatePlayerChargeData(orderInfo) } return nil } @@ -230,10 +230,10 @@ func AdminPlayerInfo(args []interface{}) error { } func AdminPlayerBack(a gate.Agent, res map[string]interface{}) { - JsonBuff, _ := json.Marshal(res) + jsonBuff, _ := json.Marshal(res) response := &msg.AdminRes{} response.Func = "admin" - response.Info = string(JsonBuff) + response.Info = string(jsonBuff) a.WriteMsg(response) } @@ -330,18 +330,18 @@ func AcitivityCfgReload() { func AdminShipping(req *msg.ReqOrderShipping) (*msg.ResOrderShipping, error) { res := &msg.ResOrderShipping{} res.Code = 0 - OrderInfo, err := db.GetPlayerChargeData(req.OrderSn) + orderInfo, err := db.GetPlayerChargeData(req.OrderSn) if err != nil { res.Code = 1 res.Msg = "order not found" } - if OrderInfo.PayStatus == MergeConst.ORDER_STATUS_SHIP { + if orderInfo.PayStatus == MergeConst.ORDER_STATUS_SHIP { res.Msg = "order already shipped" } // 玩家在线,通知发货 - Player := G_GameLogicPtr.GetPlayer(int64(OrderInfo.Uid)) - if Player != nil { - go Player.TriggerShippingOrderOrigin(&msg.ReqShippingOrder{ + player := G_GameLogicPtr.GetPlayer(int64(orderInfo.Uid)) + if player != nil { + go player.TriggerShippingOrderOrigin(&msg.ReqShippingOrder{ OrderSn: req.OrderSn, }) res.Msg = "player online,triggered sync" diff --git a/src/server/game/champship_mgr.go b/src/server/game/champship_mgr.go index 4ff59a4c..f9510804 100644 --- a/src/server/game/champship_mgr.go +++ b/src/server/game/champship_mgr.go @@ -94,15 +94,15 @@ func (c *ChampshipMgr) Init() { } // 注册处理函数 c.init() - Now := GoUtil.Now() - ZeroTime := GoUtil.ZeroTimestamp() - if c.getData().ZeroTime != ZeroTime { + now := GoUtil.Now() + zeroTime := GoUtil.ZeroTimestamp() + if c.getData().ZeroTime != zeroTime { c.ZeroUpdate() } - Remain := Now - ZeroTime - Remain1 := 1800 - Remain%1800 + remain := now - zeroTime + remain1 := 1800 - remain%1800 - c.mDispatr.AfterFunc(time.Duration(Remain1)*time.Second, func() { // 30分钟后重新分组 + c.mDispatr.AfterFunc(time.Duration(remain1)*time.Second, func() { // 30分钟后重新分组 c.group(false) }) @@ -205,10 +205,10 @@ func (c *ChampshipMgr) ai() (interface{}, error) { ChampshipData := c.getData() ChampshipData.mu.Lock() defer ChampshipData.mu.Unlock() - Now := GoUtil.Now() + now := GoUtil.Now() uids := make(map[int]struct{}) for k, v := range ChampshipData.Rank { - Notify := make(map[int]int) + notify := make(map[int]int) for e, r := range v { if r.Type == RANK_PLAYER_ROBOT { AddScore := 0.0 @@ -217,17 +217,17 @@ func (c *ChampshipMgr) ai() (interface{}, error) { continue } - if Robot.Type == 2 && Robot.Time+60 < Now { + if Robot.Type == 2 && Robot.Time+60 < now { AddScore = Robot.PerScore - Robot.Time = Now + Robot.Time = now } - if Robot.Type == 3 && Robot.Time+1800 < Now { + if Robot.Type == 3 && Robot.Time+1800 < now { AddScore = Robot.PerScore - Robot.Time = Now + Robot.Time = now } r.Score += AddScore } else { - Notify[r.Uid] = e + notify[r.Uid] = e } } sort.Slice(v, func(i, j int) bool { // 排序 从大到小 数值相等按时间排序 @@ -242,14 +242,13 @@ func (c *ChampshipMgr) ai() (interface{}, error) { if r.Type == RANK_PLAYER_ROBOT { continue } - if Notify[r.Uid] != e { + if notify[r.Uid] != e { c.SetRankCache(r.Uid) uids[r.Uid] = struct{}{} } } ChampshipData.Rank[k] = v } - now := GoUtil.Now() // 在锁外通知玩家,避免在持锁时启动 goroutine 访问可能被并发修改的数据 for uid := range uids { go NotifyPlayer(uid, &msg.Msg{ @@ -264,180 +263,180 @@ func (c *ChampshipMgr) ai() (interface{}, error) { return nil, nil } -func (c *ChampshipMgr) GetPreRankMsg(Uid int) *proto.ResChampshipPreRank { +func (c *ChampshipMgr) GetPreRankMsg(uid int) *proto.ResChampshipPreRank { ChampshipData := c.getData() ChampshipData.mu.RLock() defer ChampshipData.mu.RUnlock() - GroupId := ChampshipData.PreGroupInfo[Uid] - if GroupId == 0 { + groupId := ChampshipData.PreGroupInfo[uid] + if groupId == 0 { return &proto.ResChampshipPreRank{} } - RankList, ok := ChampshipData.PreRank[GroupId] + RankList, ok := ChampshipData.PreRank[groupId] if !ok { return &proto.ResChampshipPreRank{} } - MyRank := 0 - MyScore := 0.0 + myRank := 0 + myScore := 0.0 RL := make(map[int32]*proto.ResPlayerRank, 0) for k, v := range RankList { - if v.Uid == Uid { - MyRank = k + 1 - MyScore = v.Score + if v.Uid == uid { + myRank = k + 1 + myScore = v.Score } if v.Type == RANK_PLAYER_ROBOT { - Robot := ChampshipData.PreRobot[v.Uid] - if Robot == nil { + robot := ChampshipData.PreRobot[v.Uid] + if robot == nil { continue } last := &proto.ActLog{} - if Robot.ActLog != nil { + if robot.ActLog != nil { last = &proto.ActLog{ - Type: int32(Robot.ActLog.Type), - Time: Robot.ActLog.Time, - Param: Robot.ActLog.Param, + Type: int32(robot.ActLog.Type), + Time: robot.ActLog.Time, + Param: robot.ActLog.Param, } } RL[int32(k+1)] = &proto.ResPlayerRank{ Uid: int64(v.Uid), Score: float32(v.Score), - Name: Robot.Name, - Avatar: int32(Robot.Avatar), - Face: int32(Robot.Face), - Level: int32(Robot.Level), + Name: robot.Name, + Avatar: int32(robot.Avatar), + Face: int32(robot.Face), + Level: int32(robot.Level), Type: int32(v.Type), - PlayroomSet: GoUtil.MapIntToInt32(Robot.Playroom), - DressSet: GoUtil.MapIntToInt32(Robot.DressSet), - FurSet: int32(Robot.FurSet), - PetName: Robot.PetName, + PlayroomSet: GoUtil.MapIntToInt32(robot.Playroom), + DressSet: GoUtil.MapIntToInt32(robot.DressSet), + FurSet: int32(robot.FurSet), + PetName: robot.PetName, Last: last, } } else { - SimplePlayer := G_GameLogicPtr.GetSimplePlayerByUid(v.Uid) - if SimplePlayer == nil { + simplePlayer := G_GameLogicPtr.GetSimplePlayerByUid(v.Uid) + if simplePlayer == nil { continue } last := &proto.ActLog{} - if SimplePlayer.ActLog != nil { + if simplePlayer.ActLog != nil { last = &proto.ActLog{ - Type: int32(SimplePlayer.ActLog.Type), - Time: SimplePlayer.ActLog.Time, - Param: SimplePlayer.ActLog.Param, + Type: int32(simplePlayer.ActLog.Type), + Time: simplePlayer.ActLog.Time, + Param: simplePlayer.ActLog.Param, } } RL[int32(k+1)] = &proto.ResPlayerRank{ Uid: int64(v.Uid), Score: float32(v.Score), - Name: SimplePlayer.Name, - Avatar: int32(SimplePlayer.Avatar), - Face: int32(SimplePlayer.Face), - Level: int32(SimplePlayer.Level), + Name: simplePlayer.Name, + Avatar: int32(simplePlayer.Avatar), + Face: int32(simplePlayer.Face), + Level: int32(simplePlayer.Level), Type: int32(v.Type), - PlayroomSet: GoUtil.MapIntToInt32(SimplePlayer.Playroom), - DressSet: GoUtil.MapIntToInt32(SimplePlayer.DressSet), - FurSet: int32(SimplePlayer.PetFur), - PetName: SimplePlayer.PetName, + PlayroomSet: GoUtil.MapIntToInt32(simplePlayer.Playroom), + DressSet: GoUtil.MapIntToInt32(simplePlayer.DressSet), + FurSet: int32(simplePlayer.PetFur), + PetName: simplePlayer.PetName, Last: last, } } } return &proto.ResChampshipPreRank{ - MyRank: int32(MyRank), - MyScore: float32(MyScore), + MyRank: int32(myRank), + MyScore: float32(myScore), RankList: RL, } } // TODO 待优化 -func (c *ChampshipMgr) GetRankMsg(Uid int) *proto.ResChampshipRank { +func (c *ChampshipMgr) GetRankMsg(uid int) *proto.ResChampshipRank { ChampshipData := c.getData() ChampshipData.mu.RLock() defer ChampshipData.mu.RUnlock() - GroupId := ChampshipData.GroupInfo[Uid] - if GroupId == 0 { + groupId := ChampshipData.GroupInfo[uid] + if groupId == 0 { return &proto.ResChampshipRank{} } - RankList, ok := ChampshipData.Rank[GroupId] + rankList, ok := ChampshipData.Rank[groupId] if !ok { return &proto.ResChampshipRank{} } - MyRank := 0 - MyScore := 0.0 + myRank := 0 + myScore := 0.0 RL := make(map[int32]*proto.ResPlayerRank, 0) - for k, v := range RankList { - if v.Uid == Uid { - MyRank = k + 1 - MyScore = v.Score + for k, v := range rankList { + if v.Uid == uid { + myRank = k + 1 + myScore = v.Score } if v.Type == RANK_PLAYER_ROBOT { - Robot := ChampshipData.Robot[v.Uid] - if Robot == nil { + robot := ChampshipData.Robot[v.Uid] + if robot == nil { continue } last := &proto.ActLog{} - if Robot.ActLog != nil { + if robot.ActLog != nil { last = &proto.ActLog{ - Type: int32(Robot.ActLog.Type), - Time: Robot.ActLog.Time, - Param: Robot.ActLog.Param, + Type: int32(robot.ActLog.Type), + Time: robot.ActLog.Time, + Param: robot.ActLog.Param, } } RL[int32(k+1)] = &proto.ResPlayerRank{ Uid: int64(v.Uid), Score: float32(v.Score), - Name: Robot.Name, - Avatar: int32(Robot.Avatar), - Face: int32(Robot.Face), - Level: int32(Robot.Level), + Name: robot.Name, + Avatar: int32(robot.Avatar), + Face: int32(robot.Face), + Level: int32(robot.Level), Type: int32(v.Type), - PlayroomSet: GoUtil.MapIntToInt32(Robot.Playroom), - DressSet: GoUtil.MapIntToInt32(Robot.DressSet), - FurSet: int32(Robot.FurSet), - PetName: Robot.PetName, + PlayroomSet: GoUtil.MapIntToInt32(robot.Playroom), + DressSet: GoUtil.MapIntToInt32(robot.DressSet), + FurSet: int32(robot.FurSet), + PetName: robot.PetName, Last: last, } } else { - SimplePlayer := G_GameLogicPtr.GetSimplePlayerByUid(v.Uid) - if SimplePlayer == nil { + simplePlayer := G_GameLogicPtr.GetSimplePlayerByUid(v.Uid) + if simplePlayer == nil { continue } last := &proto.ActLog{} - if SimplePlayer.ActLog != nil { + if simplePlayer.ActLog != nil { last = &proto.ActLog{ - Type: int32(SimplePlayer.ActLog.Type), - Time: SimplePlayer.ActLog.Time, - Param: SimplePlayer.ActLog.Param, + Type: int32(simplePlayer.ActLog.Type), + Time: simplePlayer.ActLog.Time, + Param: simplePlayer.ActLog.Param, } } RL[int32(k+1)] = &proto.ResPlayerRank{ Uid: int64(v.Uid), Score: float32(v.Score), - Name: SimplePlayer.Name, - Avatar: int32(SimplePlayer.Avatar), - Face: int32(SimplePlayer.Face), - Level: int32(SimplePlayer.Level), + Name: simplePlayer.Name, + Avatar: int32(simplePlayer.Avatar), + Face: int32(simplePlayer.Face), + Level: int32(simplePlayer.Level), Type: int32(v.Type), - PlayroomSet: GoUtil.MapIntToInt32(SimplePlayer.Playroom), - DressSet: GoUtil.MapIntToInt32(SimplePlayer.DressSet), - FurSet: int32(SimplePlayer.PetFur), - PetName: SimplePlayer.PetName, + PlayroomSet: GoUtil.MapIntToInt32(simplePlayer.Playroom), + DressSet: GoUtil.MapIntToInt32(simplePlayer.DressSet), + FurSet: int32(simplePlayer.PetFur), + PetName: simplePlayer.PetName, Last: last, } } } return &proto.ResChampshipRank{ - MyRank: int32(MyRank), - MyScore: float32(MyScore), + MyRank: int32(myRank), + MyScore: float32(myScore), RankList: RL, } } // 分组 func (c *ChampshipMgr) group(iszero bool) (interface{}, error) { - Now := GoUtil.Now() - Zero := GoUtil.ZeroTimestamp() - if Now-Zero < 1800 && !iszero { // 0点30分钟内不分组 + now := GoUtil.Now() + zero := GoUtil.ZeroTimestamp() + if now-zero < 1800 && !iszero { // 0点30分钟内不分组 return nil, nil } c.mDispatr.AfterFunc(time.Duration(1800)*time.Second, func() { // 30分钟后重新分组 @@ -496,35 +495,35 @@ func (c *ChampshipMgr) group(iszero bool) (interface{}, error) { g[i] = g[i][:len(g[i])-remainder] } ChampshipData.AutoId++ - StartId := ChampshipData.AutoId + startId := ChampshipData.AutoId for j := 0; j < len(g[i]); j++ { if len(ChampshipData.Rank[ChampshipData.AutoId]) >= 10 { log.Error("championship error: more than 10 players in a group") } ChampshipData.GroupInfo[g[i][j]] = ChampshipData.AutoId - UserData := ChampshipData.Pool[g[i][j]] + userData := ChampshipData.Pool[g[i][j]] ChampshipData.Rank[ChampshipData.AutoId] = append(ChampshipData.Rank[ChampshipData.AutoId], &ChampshipRank{ - Uid: UserData.Uid, - Score: UserData.Score, - Time: UserData.Time, + Uid: userData.Uid, + Score: userData.Score, + Time: userData.Time, }) - //log.Debug("group AutoId:%d, Uid:%d, Score:%.2f, Time:%d", ChampshipData.AutoId, UserData.Uid, UserData.Score, UserData.Time) + //log.Debug("group AutoId:%d, Uid:%d, Score:%.2f, Time:%d", ChampshipData.AutoId, userData.Uid, userData.Score, userData.Time) if len(ChampshipData.Rank[ChampshipData.AutoId]) >= 10 && j != len(g[i])-1 { ChampshipData.AutoId++ } } - for j := StartId; j <= ChampshipData.AutoId; j++ { // 填充机器人 + for j := startId; j <= ChampshipData.AutoId; j++ { // 填充机器人 if len(ChampshipData.Rank[j]) >= 30 || len(ChampshipData.Rank[j]) == 0 { log.Error("championship error: more than 30 players in a group or no player in a group") continue } - RobotNum := 30 - len(ChampshipData.Rank[j]) - //log.Debug("group AutoId:%d, player num:%d, need robot num:%d", j, len(ChampshipData.Rank[j]), RobotNum) - RobotList := CreateRobotList(i, RobotNum, j) - for i := 0; i < RobotNum; i++ { - go FormatRobotInfo(RobotList[i], i+1, uids) + robotNum := 30 - len(ChampshipData.Rank[j]) + //log.Debug("group AutoId:%d, player num:%d, need robot num:%d", j, len(ChampshipData.Rank[j]), robotNum) + robotList := CreateRobotList(i, robotNum, j) + for i := 0; i < robotNum; i++ { + go FormatRobotInfo(robotList[i], i+1, uids) } - for _, v := range RobotList { + for _, v := range robotList { ChampshipData.Robot[ChampshipData.RobotId] = v ChampshipData.Rank[j] = append(ChampshipData.Rank[j], &ChampshipRank{ Uid: ChampshipData.RobotId, @@ -563,13 +562,13 @@ func (c *ChampshipMgr) group(iszero bool) (interface{}, error) { // 获取分组ID -func (c *ChampshipMgr) getGroupId(Uid int) int { +func (c *ChampshipMgr) getGroupId(uid int) int { ChampshipData := c.getData() ChampshipData.mu.RLock() defer ChampshipData.mu.RUnlock() - GroupId, ok := ChampshipData.GroupInfo[Uid] + groupId, ok := ChampshipData.GroupInfo[uid] if ok { - return GroupId + return groupId } return 0 } @@ -578,7 +577,7 @@ func (c *ChampshipMgr) getGroupId(Uid int) int { func (c *ChampshipMgr) inRank(m *msg.Msg) (interface{}, error) { data := m.Extra.(CRank) // 在加锁前获取 GroupId,避免在持有写锁时调用会获取读锁的 getGroupId 导致死锁 - GroupId := c.getGroupId(data.Uid) + groupId := c.getGroupId(data.Uid) ChampshipData := c.getData() ChampshipData.mu.Lock() @@ -586,10 +585,10 @@ func (c *ChampshipMgr) inRank(m *msg.Msg) (interface{}, error) { // 再次检查 GroupId,因为可能在等待锁期间被其他协程修改 if currentGroupId, ok := ChampshipData.GroupInfo[data.Uid]; ok { - GroupId = currentGroupId + groupId = currentGroupId } - if GroupId == 0 { + if groupId == 0 { ChampshipData.Pool[data.Uid] = &GroupInfo{ Uid: data.Uid, Score: data.Score, @@ -599,13 +598,13 @@ func (c *ChampshipMgr) inRank(m *msg.Msg) (interface{}, error) { } return nil, nil } - RankList, ok := ChampshipData.Rank[GroupId] + rankList, ok := ChampshipData.Rank[groupId] if !ok { - ChampshipData.Rank[GroupId] = make([]*ChampshipRank, 0) + ChampshipData.Rank[groupId] = make([]*ChampshipRank, 0) } inRank := false - Notify := make(map[int]int) - for k, v := range RankList { + notify := make(map[int]int) + for k, v := range rankList { if v.Uid == data.Uid { if v.Score < data.Score { v.Score = data.Score @@ -615,29 +614,29 @@ func (c *ChampshipMgr) inRank(m *msg.Msg) (interface{}, error) { } return nil, nil } - Notify[v.Uid] = k + notify[v.Uid] = k } if !inRank { - RankList = append(RankList, &ChampshipRank{ + rankList = append(rankList, &ChampshipRank{ Uid: data.Uid, Score: data.Score, Time: GoUtil.Now(), }) } - sort.Slice(RankList, func(i, j int) bool { // 排序 从大到小 数值相等按时间排序 - if RankList[i].Score > RankList[j].Score { + sort.Slice(rankList, func(i, j int) bool { // 排序 从大到小 数值相等按时间排序 + if rankList[i].Score > rankList[j].Score { return true - } else if RankList[i].Score == RankList[j].Score { - return RankList[i].Time < RankList[j].Time + } else if rankList[i].Score == rankList[j].Score { + return rankList[i].Time < rankList[j].Time } return false }) - ChampshipData.Rank[GroupId] = RankList + ChampshipData.Rank[groupId] = rankList // 收集需要通知的玩家 notifyList := make([]int, 0) - for k, v := range RankList { - if Notify[v.Uid] != k && v.Type != RANK_PLAYER_ROBOT { + for k, v := range rankList { + if notify[v.Uid] != k && v.Type != RANK_PLAYER_ROBOT { c.SetRankCache(v.Uid) notifyList = append(notifyList, v.Uid) } @@ -653,75 +652,75 @@ func (c *ChampshipMgr) inRank(m *msg.Msg) (interface{}, error) { return nil, nil } -func (c *ChampshipMgr) getMyRank(Uid int) int { +func (c *ChampshipMgr) getMyRank(uid int) int { ChampshipData := c.getData() ChampshipData.mu.RLock() defer ChampshipData.mu.RUnlock() - GroupId := ChampshipData.GroupInfo[Uid] - if GroupId == 0 { + groupId := ChampshipData.GroupInfo[uid] + if groupId == 0 { return 0 } - RankList, ok := ChampshipData.Rank[GroupId] + rankList, ok := ChampshipData.Rank[groupId] if !ok { return 0 } - for k, v := range RankList { - if v.Uid == Uid { + for k, v := range rankList { + if v.Uid == uid { return k + 1 } } return 0 } -func (c *ChampshipMgr) unsafe_getMyRank(Uid int) int { +func (c *ChampshipMgr) unsafe_getMyRank(uid int) int { ChampshipData := c.getData() - GroupId := ChampshipData.GroupInfo[Uid] - if GroupId == 0 { + groupId := ChampshipData.GroupInfo[uid] + if groupId == 0 { return 0 } - RankList, ok := ChampshipData.Rank[GroupId] + rankList, ok := ChampshipData.Rank[groupId] if !ok { return 0 } - for k, v := range RankList { - if v.Uid == Uid { + for k, v := range rankList { + if v.Uid == uid { return k + 1 } } return 0 } -func (c *ChampshipMgr) getLastMyRank(Uid int) int { +func (c *ChampshipMgr) getLastMyRank(uid int) int { ChampshipData := c.getData() ChampshipData.mu.RLock() defer ChampshipData.mu.RUnlock() - GroupId := ChampshipData.PreGroupInfo[Uid] - if GroupId == 0 { + groupId := ChampshipData.PreGroupInfo[uid] + if groupId == 0 { return 0 } - RankList, ok := ChampshipData.PreRank[GroupId] + rankList, ok := ChampshipData.PreRank[groupId] if !ok { return 0 } - for k, v := range RankList { - if v.Uid == Uid { + for k, v := range rankList { + if v.Uid == uid { return k + 1 } } return 0 } -func (c *ChampshipMgr) unsafe_getLastMyRank(Uid int) int { +func (c *ChampshipMgr) unsafe_getLastMyRank(uid int) int { ChampshipData := c.getData() - GroupId := ChampshipData.PreGroupInfo[Uid] - if GroupId == 0 { + groupId := ChampshipData.PreGroupInfo[uid] + if groupId == 0 { return 0 } - RankList, ok := ChampshipData.PreRank[GroupId] + rankList, ok := ChampshipData.PreRank[groupId] if !ok { return 0 } - for k, v := range RankList { - if v.Uid == Uid { + for k, v := range rankList { + if v.Uid == uid { return k + 1 } } @@ -732,215 +731,215 @@ func (c *ChampshipMgr) getData() *ChampshipData { return c.data.(*ChampshipData) } -func CreateRobotList(G, Num, GroupId int) []*ChampshipRobot { +func CreateRobotList(G, num, groupId int) []*ChampshipRobot { r := make([]*ChampshipRobot, 0) switch G { case 1: - r = append(r, CreateRobot(float64(GoUtil.RandNum(12181, 21680)), GroupId)) - r = append(r, CreateRobot(float64(GoUtil.RandNum(7531, 12180)), GroupId)) - r = append(r, CreateRobot(float64(GoUtil.RandNum(4631, 7530)), GroupId)) - r = append(r, CreateRobot(float64(GoUtil.RandNum(2781, 4630)), GroupId)) + r = append(r, CreateRobot(float64(GoUtil.RandNum(12181, 21680)), groupId)) + r = append(r, CreateRobot(float64(GoUtil.RandNum(7531, 12180)), groupId)) + r = append(r, CreateRobot(float64(GoUtil.RandNum(4631, 7530)), groupId)) + r = append(r, CreateRobot(float64(GoUtil.RandNum(2781, 4630)), groupId)) for i := 0; i < 6; i++ { - r = append(r, CreateRobot(float64(GoUtil.RandNum(1731, 2780)), GroupId)) + r = append(r, CreateRobot(float64(GoUtil.RandNum(1731, 2780)), groupId)) } for i := 0; i < 5; i++ { - r = append(r, CreateRobot(float64(GoUtil.RandNum(241, 580)), GroupId)) + r = append(r, CreateRobot(float64(GoUtil.RandNum(241, 580)), groupId)) } - Last := Num - len(r) + Last := num - len(r) for i := 0; i < Last; i++ { - r = append(r, CreateRobot(float64(GoUtil.RandNum(20, 240)), GroupId)) + r = append(r, CreateRobot(float64(GoUtil.RandNum(20, 240)), groupId)) } case 2: - r = append(r, CreateRobot(float64(GoUtil.RandNum(12181, 21680)), GroupId)) - r = append(r, CreateRobot(float64(GoUtil.RandNum(7531, 12180)), GroupId)) - r = append(r, CreateRobot(float64(GoUtil.RandNum(4631, 7530)), GroupId)) - r = append(r, CreateRobot(float64(GoUtil.RandNum(2781, 4630)), GroupId)) + r = append(r, CreateRobot(float64(GoUtil.RandNum(12181, 21680)), groupId)) + r = append(r, CreateRobot(float64(GoUtil.RandNum(7531, 12180)), groupId)) + r = append(r, CreateRobot(float64(GoUtil.RandNum(4631, 7530)), groupId)) + r = append(r, CreateRobot(float64(GoUtil.RandNum(2781, 4630)), groupId)) for i := 0; i < 6; i++ { - r = append(r, CreateRobot(float64(GoUtil.RandNum(1731, 2780)), GroupId)) + r = append(r, CreateRobot(float64(GoUtil.RandNum(1731, 2780)), groupId)) } - n := Num - 10 + n := num - 10 for i := 0; i < int(float64(n)*0.1); i++ { - r = append(r, CreateRobot(float64(GoUtil.RandNum(241, 580)), GroupId)) + r = append(r, CreateRobot(float64(GoUtil.RandNum(241, 580)), groupId)) } - Last := Num - len(r) + Last := num - len(r) for i := 0; i < Last; i++ { - r = append(r, CreateRobot(float64(GoUtil.RandNum(20, 240)), GroupId)) + r = append(r, CreateRobot(float64(GoUtil.RandNum(20, 240)), groupId)) } case 3: - r = append(r, CreateRobot(float64(GoUtil.RandNum(12181, 21680)), GroupId)) - r = append(r, CreateRobot(float64(GoUtil.RandNum(7531, 12180)), GroupId)) - r = append(r, CreateRobot(float64(GoUtil.RandNum(4631, 7530)), GroupId)) - r = append(r, CreateRobot(float64(GoUtil.RandNum(2781, 4630)), GroupId)) + r = append(r, CreateRobot(float64(GoUtil.RandNum(12181, 21680)), groupId)) + r = append(r, CreateRobot(float64(GoUtil.RandNum(7531, 12180)), groupId)) + r = append(r, CreateRobot(float64(GoUtil.RandNum(4631, 7530)), groupId)) + r = append(r, CreateRobot(float64(GoUtil.RandNum(2781, 4630)), groupId)) for i := 0; i < 6; i++ { - r = append(r, CreateRobot(float64(GoUtil.RandNum(1731, 2780)), GroupId)) + r = append(r, CreateRobot(float64(GoUtil.RandNum(1731, 2780)), groupId)) } - n := Num - 10 + n := num - 10 for i := 0; i < int(float64(n)*0.05); i++ { - r = append(r, CreateRobot(float64(GoUtil.RandNum(581, 1730)), GroupId)) + r = append(r, CreateRobot(float64(GoUtil.RandNum(581, 1730)), groupId)) } for i := 0; i < int(float64(n)*0.15); i++ { - r = append(r, CreateRobot(float64(GoUtil.RandNum(241, 580)), GroupId)) + r = append(r, CreateRobot(float64(GoUtil.RandNum(241, 580)), groupId)) } - Last := Num - len(r) + Last := num - len(r) for i := 0; i < Last; i++ { - r = append(r, CreateRobot(float64(GoUtil.RandNum(20, 240)), GroupId)) + r = append(r, CreateRobot(float64(GoUtil.RandNum(20, 240)), groupId)) } case 4: - r = append(r, CreateRobot(float64(GoUtil.RandNum(12181, 21680)), GroupId)) - r = append(r, CreateRobot(float64(GoUtil.RandNum(7531, 12180)), GroupId)) - r = append(r, CreateRobot(float64(GoUtil.RandNum(4631, 7530)), GroupId)) - r = append(r, CreateRobot(float64(GoUtil.RandNum(2781, 4630)), GroupId)) + r = append(r, CreateRobot(float64(GoUtil.RandNum(12181, 21680)), groupId)) + r = append(r, CreateRobot(float64(GoUtil.RandNum(7531, 12180)), groupId)) + r = append(r, CreateRobot(float64(GoUtil.RandNum(4631, 7530)), groupId)) + r = append(r, CreateRobot(float64(GoUtil.RandNum(2781, 4630)), groupId)) - n := Num - 4 + n := num - 4 for i := 0; i < int(float64(n)*0.35); i++ { - r = append(r, CreateRobot(float64(GoUtil.RandNum(1731, 2780)), GroupId)) + r = append(r, CreateRobot(float64(GoUtil.RandNum(1731, 2780)), groupId)) } for i := 0; i < int(float64(n)*0.1); i++ { - r = append(r, CreateRobot(float64(GoUtil.RandNum(581, 1730)), GroupId)) + r = append(r, CreateRobot(float64(GoUtil.RandNum(581, 1730)), groupId)) } for i := 0; i < int(float64(n)*0.1); i++ { - r = append(r, CreateRobot(float64(GoUtil.RandNum(241, 580)), GroupId)) + r = append(r, CreateRobot(float64(GoUtil.RandNum(241, 580)), groupId)) } - Last := Num - len(r) + Last := num - len(r) for i := 0; i < Last; i++ { - r = append(r, CreateRobot(float64(GoUtil.RandNum(20, 240)), GroupId)) + r = append(r, CreateRobot(float64(GoUtil.RandNum(20, 240)), groupId)) } case 5: - r = append(r, CreateRobot(float64(GoUtil.RandNum(12181, 21680)), GroupId)) - r = append(r, CreateRobot(float64(GoUtil.RandNum(7531, 12180)), GroupId)) - r = append(r, CreateRobot(float64(GoUtil.RandNum(4631, 7530)), GroupId)) + r = append(r, CreateRobot(float64(GoUtil.RandNum(12181, 21680)), groupId)) + r = append(r, CreateRobot(float64(GoUtil.RandNum(7531, 12180)), groupId)) + r = append(r, CreateRobot(float64(GoUtil.RandNum(4631, 7530)), groupId)) - n := Num - 3 + n := num - 3 for i := 0; i < int(float64(n)*0.05); i++ { - r = append(r, CreateRobot(float64(GoUtil.RandNum(2781, 4630)), GroupId)) + r = append(r, CreateRobot(float64(GoUtil.RandNum(2781, 4630)), groupId)) } for i := 0; i < int(float64(n)*0.3); i++ { - r = append(r, CreateRobot(float64(GoUtil.RandNum(1731, 2780)), GroupId)) + r = append(r, CreateRobot(float64(GoUtil.RandNum(1731, 2780)), groupId)) } for i := 0; i < int(float64(n)*0.1); i++ { - r = append(r, CreateRobot(float64(GoUtil.RandNum(581, 1730)), GroupId)) + r = append(r, CreateRobot(float64(GoUtil.RandNum(581, 1730)), groupId)) } for i := 0; i < int(float64(n)*0.2); i++ { - r = append(r, CreateRobot(float64(GoUtil.RandNum(241, 580)), GroupId)) + r = append(r, CreateRobot(float64(GoUtil.RandNum(241, 580)), groupId)) } - Last := Num - len(r) + Last := num - len(r) for i := 0; i < Last; i++ { - r = append(r, CreateRobot(float64(GoUtil.RandNum(20, 240)), GroupId)) + r = append(r, CreateRobot(float64(GoUtil.RandNum(20, 240)), groupId)) } case 6: - r = append(r, CreateRobot(float64(GoUtil.RandNum(12181, 21680)), GroupId)) - r = append(r, CreateRobot(float64(GoUtil.RandNum(7531, 12180)), GroupId)) + r = append(r, CreateRobot(float64(GoUtil.RandNum(12181, 21680)), groupId)) + r = append(r, CreateRobot(float64(GoUtil.RandNum(7531, 12180)), groupId)) - n := Num - 2 + n := num - 2 for i := 0; i < int(float64(n)*0.05); i++ { - r = append(r, CreateRobot(float64(GoUtil.RandNum(4631, 7530)), GroupId)) + r = append(r, CreateRobot(float64(GoUtil.RandNum(4631, 7530)), groupId)) } for i := 0; i < int(float64(n)*0.05); i++ { - r = append(r, CreateRobot(float64(GoUtil.RandNum(2781, 4630)), GroupId)) + r = append(r, CreateRobot(float64(GoUtil.RandNum(2781, 4630)), groupId)) } for i := 0; i < int(float64(n)*0.3); i++ { - r = append(r, CreateRobot(float64(GoUtil.RandNum(1731, 2780)), GroupId)) + r = append(r, CreateRobot(float64(GoUtil.RandNum(1731, 2780)), groupId)) } for i := 0; i < int(float64(n)*0.1); i++ { - r = append(r, CreateRobot(float64(GoUtil.RandNum(581, 1730)), GroupId)) + r = append(r, CreateRobot(float64(GoUtil.RandNum(581, 1730)), groupId)) } for i := 0; i < int(float64(n)*0.25); i++ { - r = append(r, CreateRobot(float64(GoUtil.RandNum(241, 580)), GroupId)) + r = append(r, CreateRobot(float64(GoUtil.RandNum(241, 580)), groupId)) } - Last := Num - len(r) + Last := num - len(r) for i := 0; i < Last; i++ { - r = append(r, CreateRobot(float64(GoUtil.RandNum(20, 240)), GroupId)) + r = append(r, CreateRobot(float64(GoUtil.RandNum(20, 240)), groupId)) } case 7: - r = append(r, CreateRobot(float64(GoUtil.RandNum(12181, 21680)), GroupId)) - n := Num - 1 + r = append(r, CreateRobot(float64(GoUtil.RandNum(12181, 21680)), groupId)) + n := num - 1 for i := 0; i < int(float64(n)*0.05); i++ { - r = append(r, CreateRobot(float64(GoUtil.RandNum(7531, 12180)), GroupId)) + r = append(r, CreateRobot(float64(GoUtil.RandNum(7531, 12180)), groupId)) } for i := 0; i < int(float64(n)*0.05); i++ { - r = append(r, CreateRobot(float64(GoUtil.RandNum(4631, 7530)), GroupId)) + r = append(r, CreateRobot(float64(GoUtil.RandNum(4631, 7530)), groupId)) } for i := 0; i < int(float64(n)*0.1); i++ { - r = append(r, CreateRobot(float64(GoUtil.RandNum(2781, 4630)), GroupId)) + r = append(r, CreateRobot(float64(GoUtil.RandNum(2781, 4630)), groupId)) } for i := 0; i < int(float64(n)*0.3); i++ { - r = append(r, CreateRobot(float64(GoUtil.RandNum(1731, 2780)), GroupId)) + r = append(r, CreateRobot(float64(GoUtil.RandNum(1731, 2780)), groupId)) } for i := 0; i < int(float64(n)*0.1); i++ { - r = append(r, CreateRobot(float64(GoUtil.RandNum(581, 1730)), GroupId)) + r = append(r, CreateRobot(float64(GoUtil.RandNum(581, 1730)), groupId)) } for i := 0; i < int(float64(n)*0.2); i++ { - r = append(r, CreateRobot(float64(GoUtil.RandNum(241, 580)), GroupId)) + r = append(r, CreateRobot(float64(GoUtil.RandNum(241, 580)), groupId)) } - Last := Num - len(r) + Last := num - len(r) for i := 0; i < Last; i++ { - r = append(r, CreateRobot(float64(GoUtil.RandNum(20, 240)), GroupId)) + r = append(r, CreateRobot(float64(GoUtil.RandNum(20, 240)), groupId)) } case 8, 9, 10, 11: M10 := GoUtil.RandMap(map[int]int{0: 98, 1: 2}) if M10 == 1 { - r = append(r, CreateRobot(float64(GoUtil.RandNum(35131, 64980)), GroupId)) + r = append(r, CreateRobot(float64(GoUtil.RandNum(35131, 64980)), groupId)) } - n := Num + n := num for i := 0; i < int(float64(n)*0.05); i++ { - r = append(r, CreateRobot(float64(GoUtil.RandNum(12181, 21680)), GroupId)) + r = append(r, CreateRobot(float64(GoUtil.RandNum(12181, 21680)), groupId)) } for i := 0; i < int(float64(n)*0.05); i++ { - r = append(r, CreateRobot(float64(GoUtil.RandNum(7531, 12180)), GroupId)) + r = append(r, CreateRobot(float64(GoUtil.RandNum(7531, 12180)), groupId)) } for i := 0; i < int(float64(n)*0.05); i++ { - r = append(r, CreateRobot(float64(GoUtil.RandNum(4631, 7530)), GroupId)) + r = append(r, CreateRobot(float64(GoUtil.RandNum(4631, 7530)), groupId)) } for i := 0; i < int(float64(n)*0.1); i++ { - r = append(r, CreateRobot(float64(GoUtil.RandNum(2781, 4630)), GroupId)) + r = append(r, CreateRobot(float64(GoUtil.RandNum(2781, 4630)), groupId)) } for i := 0; i < int(float64(n)*0.3); i++ { - r = append(r, CreateRobot(float64(GoUtil.RandNum(1731, 2780)), GroupId)) + r = append(r, CreateRobot(float64(GoUtil.RandNum(1731, 2780)), groupId)) } for i := 0; i < int(float64(n)*0.15); i++ { - r = append(r, CreateRobot(float64(GoUtil.RandNum(581, 1730)), GroupId)) + r = append(r, CreateRobot(float64(GoUtil.RandNum(581, 1730)), groupId)) } for i := 0; i < int(float64(n)*0.2); i++ { - r = append(r, CreateRobot(float64(GoUtil.RandNum(241, 580)), GroupId)) + r = append(r, CreateRobot(float64(GoUtil.RandNum(241, 580)), groupId)) } - Last := Num - len(r) + Last := num - len(r) for i := 0; i < Last; i++ { - r = append(r, CreateRobot(float64(GoUtil.RandNum(20, 240)), GroupId)) + r = append(r, CreateRobot(float64(GoUtil.RandNum(20, 240)), groupId)) } } return r } -func CreateRobot(M float64, GroupId int) *ChampshipRobot { - Type := GoUtil.RandMap(map[int]int{1: 25, 2: 50, 3: 25}) - Score := M / 10 - PerScore := 0.0 - if Type == 2 { - PerScore = math.Round((M/10*0.34)/(float64(GoUtil.NextZeroTimestampDuration())/60)*100) / 100 - Score = M / 10 * 0.66 +func CreateRobot(M float64, groupId int) *ChampshipRobot { + rType := GoUtil.RandMap(map[int]int{1: 25, 2: 50, 3: 25}) + score := M / 10 + perScore := 0.0 + if rType == 2 { + perScore = math.Round((M/10*0.34)/(float64(GoUtil.NextZeroTimestampDuration())/60)*100) / 100 + score = M / 10 * 0.66 } - if Type == 3 { - PerScore = math.Round((M/10*0.34)/(float64(GoUtil.NextZeroTimestampDuration())/1800)*100) / 100 - Score = 2 + if rType == 3 { + perScore = math.Round((M/10*0.34)/(float64(GoUtil.NextZeroTimestampDuration())/1800)*100) / 100 + score = 2 } return &ChampshipRobot{ Max: M / 10, - Type: Type, + Type: rType, Name: randnameCfg.GetRandName(), PetName: randnameCfg.GetRandName(), Avatar: avatarCfg.GetRandInitId(), Face: faceCfg.GetRandInitId(), Level: GoUtil.RandNum(1, 10), - GroupId: GroupId, + GroupId: groupId, Time: GoUtil.Now(), - Score: Score, - PerScore: PerScore, + Score: score, + PerScore: perScore, } } -func FormatRobotInfo(Robot *ChampshipRobot, index int, uids []int) { +func FormatRobotInfo(robot *ChampshipRobot, index int, uids []int) { x := int(len(uids)) / 30 if index > int(x) { index = int(x) @@ -956,24 +955,24 @@ func FormatRobotInfo(Robot *ChampshipRobot, index int, uids []int) { if playerSimpleData == nil { return } - Robot.Level = playerSimpleData.Level - Robot.Avatar = playerSimpleData.Avatar - Robot.Face = playerSimpleData.Face - Robot.Playroom = playerSimpleData.Playroom - Robot.DressSet = playerSimpleData.DressSet - Robot.FurSet = playerSimpleData.PetFur - Robot.ActLog = playerSimpleData.ActLog - Robot.PetName = playerSimpleData.PetName + robot.Level = playerSimpleData.Level + robot.Avatar = playerSimpleData.Avatar + robot.Face = playerSimpleData.Face + robot.Playroom = playerSimpleData.Playroom + robot.DressSet = playerSimpleData.DressSet + robot.FurSet = playerSimpleData.PetFur + robot.ActLog = playerSimpleData.ActLog + robot.PetName = playerSimpleData.PetName } -func (c *ChampshipMgr) SetRankCache(Uid int) { - PreRank := c.unsafe_getLastMyRank(Uid) - Rank := c.unsafe_getMyRank(Uid) - PreGroupId := c.getData().PreGroupInfo[Uid] - GroupId := c.getData().GroupInfo[Uid] - key := fmt.Sprintf("champship_rank_cache_%d", Uid) - log.Debug("SetRankCache key:%s; data:%s", key, fmt.Sprintf("%d_%d_%d_%d", PreRank, Rank, PreGroupId, GroupId)) - db.RedisSetKey(key, fmt.Sprintf("%d_%d_%d_%d", PreRank, Rank, PreGroupId, GroupId), time.Second*172800) +func (c *ChampshipMgr) SetRankCache(uid int) { + preRank := c.unsafe_getLastMyRank(uid) + rank := c.unsafe_getMyRank(uid) + preGroupId := c.getData().PreGroupInfo[uid] + groupId := c.getData().GroupInfo[uid] + key := fmt.Sprintf("champship_rank_cache_%d", uid) + log.Debug("SetRankCache key:%s; data:%s", key, fmt.Sprintf("%d_%d_%d_%d", preRank, rank, preGroupId, groupId)) + db.RedisSetKey(key, fmt.Sprintf("%d_%d_%d_%d", preRank, rank, preGroupId, groupId), time.Second*172800) } func (c *ChampshipMgr) Debug() { @@ -1001,13 +1000,13 @@ func (c *ChampshipMgr) Debug() { log.Debug("Debug player num:%d", i) } -func GetRankCache(Uid int) (int, int, int, int) { - key := fmt.Sprintf("champship_rank_cache_%d", Uid) +func GetRankCache(uid int) (int, int, int, int) { + key := fmt.Sprintf("champship_rank_cache_%d", uid) data, err := db.RedisGetKey(key) if err != nil || data == "" { return 0, 0, 0, 0 } - var PreRank, Rank, PreGroupId, GroupId int - fmt.Sscanf(data, "%d_%d_%d_%d", &PreRank, &Rank, &PreGroupId, &GroupId) - return PreRank, Rank, PreGroupId, GroupId + var preRank, rank, preGroupId, groupId int + fmt.Sscanf(data, "%d_%d_%d_%d", &preRank, &rank, &preGroupId, &groupId) + return preRank, rank, preGroupId, groupId } diff --git a/src/server/game/charge_func.go b/src/server/game/charge_func.go index 7c33e90a..ce6f4ad9 100644 --- a/src/server/game/charge_func.go +++ b/src/server/game/charge_func.go @@ -22,14 +22,14 @@ import ( "time" ) -func (p *Player) Charge(ChargeId int) { - p.ChargeFire(ChargeId) // 充值 - p.EndlessFire(ChargeId) // 无尽礼包 - p.PiggyBankFire(ChargeId) // 猪猪银行 - p.PlayroomFire(ChargeId) // 游乐场 - p.ActivityFire(ChargeId) // 活动礼包 - p.ADPetWorkFire(ChargeId) // 广告宠物工作 - p.PassFire(ChargeId) +func (p *Player) Charge(chargeId int) { + p.ChargeFire(chargeId) // 充值 + p.EndlessFire(chargeId) // 无尽礼包 + p.PiggyBankFire(chargeId) // 猪猪银行 + p.PlayroomFire(chargeId) // 游乐场 + p.ActivityFire(chargeId) // 活动礼包 + p.ADPetWorkFire(chargeId) // 广告宠物工作 + p.PassFire(chargeId) OrderMod := p.PlayMod.getOrderMod() OrderMod.SetIsCharge() // 设置订单模块为充值状态 p.QuestTrigger(&quest.Trigger{Label: quest.TRIGGER_LABEL_PURCHASE, A: []interface{}{}}) @@ -45,9 +45,9 @@ func (p *Player) SendCharge(d *ChargeExtra) { }) } -func (p *Player) ADPetWorkFire(ChargeId int) { +func (p *Player) ADPetWorkFire(chargeId int) { ChargeMod := p.PlayMod.getChargeMod() - items := ChargeMod.FireAdReward(ChargeId) + items := ChargeMod.FireAdReward(chargeId) if items != nil { err := p.HandleItem(items, proto.ITEM_POP_LABEL_ActivityGift.String()) if err != nil { @@ -96,27 +96,27 @@ func (p *Player) ActivityFire(chargeId int) { p.BackDataActivity() } -func (p *Player) PassFire(ChargeId int) { - ActivityInfo := p.GetActivityInfo(activity.ACT_TYPE_PASS) - if ActivityInfo == nil { +func (p *Player) PassFire(chargeId int) { + activityInfo := p.GetActivityInfo(activity.ACT_TYPE_PASS) + if activityInfo == nil { return } - Now := GoUtil.Now() - if Now < ActivityInfo.StartT || Now > ActivityInfo.EndT { + now := GoUtil.Now() + if now < activityInfo.StartT || now > activityInfo.EndT { return } PassMod := p.PlayMod.getPassMod() - var Items []*item.Item - switch ChargeId { - case passCfg.GetLowChargeId(ActivityInfo.Id): - Items = PassMod.GetLowChargeItems() - case passCfg.GetHighChargeId(ActivityInfo.Id): - Items = PassMod.GetHighChargeItems() + var items []*item.Item + switch chargeId { + case passCfg.GetLowChargeId(activityInfo.Id): + items = PassMod.GetLowChargeItems() + case passCfg.GetHighChargeId(activityInfo.Id): + items = PassMod.GetHighChargeItems() } - if len(Items) == 0 { + if len(items) == 0 { return } - err := p.HandleItem(Items, proto.ITEM_POP_LABEL_PassCharge.String()) + err := p.HandleItem(items, proto.ITEM_POP_LABEL_PassCharge.String()) if err != nil { log.Debug("PassFire err : %s", err) return @@ -124,13 +124,13 @@ func (p *Player) PassFire(ChargeId int) { p.PlayMod.save() } -func (p *Player) PlayroomFire(ChargeId int) { +func (p *Player) PlayroomFire(chargeId int) { PlayroomMod := p.PlayMod.getPlayroomMod() - Item := PlayroomMod.Fire(ChargeId) - if Item == nil { + items := PlayroomMod.Fire(chargeId) + if items == nil { return } - err := p.HandleItem(Item, proto.ITEM_POP_LABEL_Playroom.String()) + err := p.HandleItem(items, proto.ITEM_POP_LABEL_Playroom.String()) if err != nil { log.Debug("PlayroomFire err : %s", err) } @@ -140,34 +140,34 @@ func (p *Player) PlayroomFire(ChargeId int) { p.PlayMod.save() } -func (p *Player) PiggyBankFire(ChargeId int) { +func (p *Player) PiggyBankFire(chargeId int) { PiggyBankMod := p.PlayMod.getPiggyBankMod() - Item := PiggyBankMod.Fire(ChargeId) - if Item == nil { + items := PiggyBankMod.Fire(chargeId) + if items == nil { return } - err := p.HandleItem(Item, proto.ITEM_POP_LABEL_PiggyBank.String()) + err := p.HandleItem(items, proto.ITEM_POP_LABEL_PiggyBank.String()) if err != nil { log.Debug("PiggyBankFire err : %s", err) } p.LimitedTimePiggyBankTrigger() p.TeLog("piggy_bank_open", map[string]interface{}{ "piggy_bank_type": piggyBank.PIGGY_BANK_TYPE_CHARGE, - "item_list": Item, - "open_cost": ChargeId, + "item_list": items, + "open_cost": chargeId, }) p.PlayMod.save() } // 处理玩家充值 -func (p *Player) ChargeFire(ChargeId int) { +func (p *Player) ChargeFire(chargeId int) { ChargeMod := p.PlayMod.getChargeMod() - Item := ChargeMod.Fire(ChargeId) - if Item == nil { + items := ChargeMod.Fire(chargeId) + if items == nil { return } - err := p.HandleItem(Item, proto.ITEM_POP_LABEL_Charge.String()) + err := p.HandleItem(items, proto.ITEM_POP_LABEL_Charge.String()) if err != nil { log.Debug("ChargeFire err : %s", err) } @@ -175,20 +175,20 @@ func (p *Player) ChargeFire(ChargeId int) { p.ChargeBackData() } -func (p *Player) ChargeItem(ChargeId int) []*item.Item { +func (p *Player) ChargeItem(chargeId int) []*item.Item { ChargeMod := p.PlayMod.getChargeMod() - Item := ChargeMod.Fire(ChargeId) - return Item + items := ChargeMod.Fire(chargeId) + return items } // 处理无尽礼包充值 -func (p *Player) EndlessFire(ChargeId int) { +func (p *Player) EndlessFire(chargeId int) { EndlessMod := p.PlayMod.getEndlessMod() - Item := EndlessMod.Fire(ChargeId) - if Item == nil { + items := EndlessMod.Fire(chargeId) + if items == nil { return } - err := p.HandleItem(Item, proto.ITEM_POP_LABEL_Endless.String()) + err := p.HandleItem(items, proto.ITEM_POP_LABEL_Endless.String()) if err != nil { log.Debug("EndlessFire err : %s", err) } @@ -198,38 +198,38 @@ func (p *Player) EndlessFire(ChargeId int) { // 创建订单 func (p *Player) CreateOrderSn(req *proto.ReqCreateOrderSn) (string, error) { - Uid := int(p.M_DwUin) - OrderSn := GoUtil.CreateOrderSn(Uid) + uid := int(p.M_DwUin) + orderSn := GoUtil.CreateOrderSn(uid) - Price, Currency := chargeCfg.GetChargeInfo(int(req.ChargeId)) - Extra := &ChargeExtra{ + price, currency := chargeCfg.GetChargeInfo(int(req.ChargeId)) + extra := &ChargeExtra{ Type: int(req.Type), Uid: req.Uid, } - ExtraData, _ := json.Marshal(Extra) - err := db.CreateOrderSn(Uid, int(req.ChargeId), OrderSn, req.PlatForm, req.Channel, Price, Currency, string(ExtraData)) + extraData, _ := json.Marshal(extra) + err := db.CreateOrderSn(uid, int(req.ChargeId), orderSn, req.PlatForm, req.Channel, price, currency, string(extraData)) if err != nil { return "", err } - return OrderSn, nil + return orderSn, nil } -func (p *Player) GoogleVerify(OrderSn, ProduceId, Token string) (*db.SqlChargeOrderStruct, error) { - Order, err := db.GetPlayerChargeData(OrderSn) +func (p *Player) GoogleVerify(orderSn, produceId, token string) (*db.SqlChargeOrderStruct, error) { + order, err := db.GetPlayerChargeData(orderSn) if err != nil { return nil, err } - if Order.PayStatus == MergeConst.ORDER_STATUS_SHIP { + if order.PayStatus == MergeConst.ORDER_STATUS_SHIP { return nil, fmt.Errorf("订单已经发货") } if !conf.Server.GoogleVerify { - Order.PayStatus = MergeConst.ORDER_STATUS_PAY - return Order, nil + order.PayStatus = MergeConst.ORDER_STATUS_PAY + return order, nil } - if Order.PayStatus != MergeConst.ORDER_STATUS_IDLE { + if order.PayStatus != MergeConst.ORDER_STATUS_IDLE { return nil, fmt.Errorf("订单已经支付") } - cmd := exec.Command(conf.Server.AppPath+"/script/verifyOrder", ProduceId, Token) + cmd := exec.Command(conf.Server.AppPath+"/script/verifyOrder", produceId, token) // 获取命令的输出 output, err := cmd.Output() @@ -257,26 +257,26 @@ func (p *Player) GoogleVerify(OrderSn, ProduceId, Token string) (*db.SqlChargeOr if err == nil { return nil, fmt.Errorf("订单已支付发货 param: %v", r) } - // if r.DeveloperPayload != OrderSn { + // if r.DeveloperPayload != orderSn { // return nil, fmt.Errorf("订单号不匹配") // } if r.ConsumptionState != 1 { return nil, fmt.Errorf("订单未消费") } - Order.PayStatus = MergeConst.ORDER_STATUS_PAY - Order.PayChannelOrderId = r.OrderId - Order.PayTime = GoUtil.Now() - return Order, nil + order.PayStatus = MergeConst.ORDER_STATUS_PAY + order.PayChannelOrderId = r.OrderId + order.PayTime = GoUtil.Now() + return order, nil } -func (p *Player) CancelOrder(OrderSn string) error { - Order, err := db.GetPlayerChargeData(OrderSn) +func (p *Player) CancelOrder(orderSn string) error { + order, err := db.GetPlayerChargeData(orderSn) if err != nil { return err } - if Order.PayStatus != MergeConst.ORDER_STATUS_IDLE { + if order.PayStatus != MergeConst.ORDER_STATUS_IDLE { return fmt.Errorf("订单已支付") } - Order.PayStatus = MergeConst.ORDER_STATUS_CANCEL - return db.UpdatePlayerChargeData(Order) + order.PayStatus = MergeConst.ORDER_STATUS_CANCEL + return db.UpdatePlayerChargeData(order) } diff --git a/src/server/game/cluster_mgr.go b/src/server/game/cluster_mgr.go index d3272ac6..9907acf2 100644 --- a/src/server/game/cluster_mgr.go +++ b/src/server/game/cluster_mgr.go @@ -49,10 +49,10 @@ func champshipRankInfoHandler(m *msg.Msg) error { } func champshipMyRankHandler(m *msg.Msg) error { - MyRank := G_GameLogicPtr.ChampshipMgr.getMyRank(m.From) + myRank := G_GameLogicPtr.ChampshipMgr.getMyRank(m.From) m.To = m.From m.From = 0 - m.Extra = MyRank + m.Extra = myRank FriendMgrSend(m) return nil } diff --git a/src/server/game/friend_func.go b/src/server/game/friend_func.go index b85ec513..b9e75557 100644 --- a/src/server/game/friend_func.go +++ b/src/server/game/friend_func.go @@ -11,16 +11,16 @@ import ( func (p *Player) GetVisitorPlayer() int { PlayroomMod := p.PlayMod.getPlayroomMod() - VisitorList := PlayroomMod.GetVisitor() // 到访用户 - TodayVisitedUsers := PlayroomMod.GetTodayVisitedUsers() // 今日已互动用户 + visitorList := PlayroomMod.GetVisitor() // 到访用户 + todayVisitedUsers := PlayroomMod.GetTodayVisitedUsers() // 今日已互动用户 FriendMod := p.PlayMod.getFriendMod() type sortData struct { Uid int Time int64 } - PlayerList := make([]sortData, 0) - PlayerList2 := make([]sortData, 0) - Now := GoUtil.Now() + playerList := make([]sortData, 0) + playerList2 := make([]sortData, 0) + now := GoUtil.Now() /** 排除当日玩家已对其发起过交互的用户 优先选择24小时内曾经与玩家进行过宠物交互的好友 @@ -30,30 +30,30 @@ func (p *Player) GetVisitorPlayer() int { 若不存在符合条件的用户,则选择24小时内登入过游戏且上次登入时间与当前时间最近的好友 若不存在符合条件的用户,则依据以上用户推荐算法,选择一位随机推荐用户,并且在下次触发式订单完成时,不再排除已发起过交互的用户 */ - for k, v := range VisitorList { - if GoUtil.InArray(k, TodayVisitedUsers) { + for k, v := range visitorList { + if GoUtil.InArray(k, todayVisitedUsers) { continue } - if v.Time < Now-86400 { + if v.Time < now-86400 { continue } if FriendMod.CheckFriend(k) { - PlayerList = append(PlayerList, sortData{k, v.Time}) + playerList = append(playerList, sortData{k, v.Time}) } else { - PlayerList2 = append(PlayerList2, sortData{k, v.Time}) + playerList2 = append(playerList2, sortData{k, v.Time}) } } - if len(PlayerList) != 0 { - sort.Slice(PlayerList, func(i, j int) bool { - return PlayerList[i].Time > PlayerList[j].Time + if len(playerList) != 0 { + sort.Slice(playerList, func(i, j int) bool { + return playerList[i].Time > playerList[j].Time }) - return PlayerList[0].Uid + return playerList[0].Uid } - if len(PlayerList2) != 0 { - sort.Slice(PlayerList2, func(i, j int) bool { - return PlayerList2[i].Time > PlayerList2[j].Time + if len(playerList2) != 0 { + sort.Slice(playerList2, func(i, j int) bool { + return playerList2[i].Time > playerList2[j].Time }) - return PlayerList2[0].Uid + return playerList2[0].Uid } // 若不存在符合条件的用户,则选择24小时内登入过游戏且上次登入时间与当前时间最近的好友 var recentFriendUid int @@ -62,14 +62,14 @@ func (p *Player) GetVisitorPlayer() int { if uid == int(p.M_DwUin) { continue } - if GoUtil.InArray(uid, TodayVisitedUsers) { + if GoUtil.InArray(uid, todayVisitedUsers) { continue } ps := G_GameLogicPtr.GetSimplePlayerByUid(uid) if ps == nil { continue } - if Now-ps.Loginout > 86400 { // 24小时内登录过 + if now-ps.Loginout > 86400 { // 24小时内登录过 continue } if ps.Loginout > recentLoginTime { @@ -84,51 +84,51 @@ func (p *Player) GetVisitorPlayer() int { if err != nil { return 0 } - var PlayerList4 []int - for _, Uid := range uids { - if Uid == int(p.M_DwUin) { + var playerList4 []int + for _, uid := range uids { + if uid == int(p.M_DwUin) { continue } - if G_GameLogicPtr.GetSimplePlayerByUid(Uid) == nil { + if G_GameLogicPtr.GetSimplePlayerByUid(uid) == nil { continue } - PlayerList4 = append(PlayerList4, Uid) + playerList4 = append(playerList4, uid) } - L := GoUtil.RandSliceNum(PlayerList4, 1) - if len(L) == 0 { + lastList := GoUtil.RandSliceNum(playerList4, 1) + if len(lastList) == 0 { return 0 } - return L[0] + return lastList[0] } -func GetRecommendPlayer(p *Player, Num int) []int { +func GetRecommendPlayer(p *Player, num int) []int { uids, err := db.GetCommendPlayerFromDb(p.M_DwUin, GoUtil.Now()-259200, 4) if err != nil { log.Debug("GetCommendPlayerFromDb err:%v, uid=%d", err, p.M_DwUin) return nil } - PlayerList1 := make([]int, 0, len(uids)) + playerList1 := make([]int, 0, len(uids)) FriendMod := p.PlayMod.getFriendMod() - for _, Uid := range uids { - if Uid == int(p.M_DwUin) { + for _, uid := range uids { + if uid == int(p.M_DwUin) { continue } - if FriendMod.CheckSendApply(Uid) { + if FriendMod.CheckSendApply(uid) { continue } - if FriendMod.CheckAddBefore(Uid) { + if FriendMod.CheckAddBefore(uid) { continue } - PlayerList1 = append(PlayerList1, Uid) + playerList1 = append(playerList1, uid) } // 按照时间门槛筛选用户 filterByTime := func(excludeSeconds int64) []int { now := GoUtil.Now() - result := make([]int, 0, len(PlayerList1)) - for _, Uid := range PlayerList1 { - recommendTime := FriendMod.GetRecommendTime(Uid) + result := make([]int, 0, len(playerList1)) + for _, uid := range playerList1 { + recommendTime := FriendMod.GetRecommendTime(uid) if recommendTime == 0 || recommendTime <= now-excludeSeconds { - result = append(result, Uid) + result = append(result, uid) } } return result @@ -145,16 +145,16 @@ func GetRecommendPlayer(p *Player, Num int) []int { } if len(candidateList) == 0 { - candidateList = append(candidateList, PlayerList1...) + candidateList = append(candidateList, playerList1...) } if len(candidateList) == 0 { candidateList = make([]int, 0, len(uids)) - for _, Uid := range uids { - if Uid == int(p.M_DwUin) { + for _, uid := range uids { + if uid == int(p.M_DwUin) { continue } - candidateList = append(candidateList, Uid) + candidateList = append(candidateList, uid) } } levelFilterList := make([]*PlayerSimpleData, 0, len(candidateList)) @@ -291,9 +291,9 @@ func GetRecommendPlayer(p *Player, Num int) []int { return res } if diffLimit == 10 && len(chargeFilterList) >= 5 { - MaxCharge := p.GetChargeMod().GetMaxCharge() - if MaxCharge > 0 { - endFilterList = chargeFilterFunc(chargeFilterList, MaxCharge) + maxCharge := p.GetChargeMod().GetMaxCharge() + if maxCharge > 0 { + endFilterList = chargeFilterFunc(chargeFilterList, maxCharge) } else { if p.GetChargeMod().GetAdWatch() > 5 { endFilterList = notChargeWatchAdFilterFunc(chargeFilterList) @@ -303,21 +303,21 @@ func GetRecommendPlayer(p *Player, Num int) []int { } } - recommendList := GoUtil.RandSliceNum(endFilterList, Num) - for _, Uid := range recommendList { - FriendMod.AddRecommend(Uid) + recommendList := GoUtil.RandSliceNum(endFilterList, num) + for _, uid := range recommendList { + FriendMod.AddRecommend(uid) } return recommendList } -func GetUidByFaceBook(Fb string) (int, error) { +func GetUidByFaceBook(fb string) (int, error) { sqlStr := "SELECT dwUin FROM t_player_baseinfo WHERE FaceBookId = ?" type Result struct { Uid int `db:"dwUin"` } R := Result{} - err := db.SqlDb.Get(&R, sqlStr, Fb) - log.Debug("Fb :%s;Uid :%d", Fb, R.Uid) + err := db.SqlDb.Get(&R, sqlStr, fb) + log.Debug("Fb :%s;Uid :%d", fb, R.Uid) return R.Uid, err } diff --git a/src/server/game/limited_time_trigger.go b/src/server/game/limited_time_trigger.go index 1d8f1eb5..43b7e824 100644 --- a/src/server/game/limited_time_trigger.go +++ b/src/server/game/limited_time_trigger.go @@ -16,20 +16,20 @@ import ( ) // 限时事件触发器 -func (p *Player) LimitedTimeEventTrigger(AddEventId int) { - Lv := p.GetPlayerBaseMod().GetLevel() - EndTime, TimeoutEvent, AddEvent := p.PlayMod.getLimitedTimeEventMod().Trigger(Lv) +func (p *Player) LimitedTimeEventTrigger(addEventId int) { + lv := p.GetPlayerBaseMod().GetLevel() + endTime, timeoutEvent, addEvent := p.PlayMod.getLimitedTimeEventMod().Trigger(lv) remainingTime := GoUtil.NextHourRemain() - if EndTime <= 0 { - EndTime = int(remainingTime) + if endTime <= 0 { + endTime = int(remainingTime) } else { - EndTime = min(EndTime, int(remainingTime)) + endTime = min(endTime, int(remainingTime)) } - if AddEventId != 0 { - AddEvent = append(AddEvent, AddEventId) + if addEventId != 0 { + addEvent = append(addEvent, addEventId) } - if EndTime > 0 { - p.CallEvent(time.Duration(EndTime)*time.Second, func() { + if endTime > 0 { + p.CallEvent(time.Duration(endTime)*time.Second, func() { p.lock.Lock() defer p.lock.Unlock() p.LimitedTimeEventTrigger(0) @@ -37,7 +37,7 @@ func (p *Player) LimitedTimeEventTrigger(AddEventId int) { }, "LimitedTimeEvent") } - for _, v := range TimeoutEvent { // 事件到期处理 + for _, v := range timeoutEvent { // 事件到期处理 p.PushClientRes(&msg.LimitEventNotify{ Id: int32(v), Type: limitedTimeEvent.EVENT_NOTIFY_TYPE_DEL, @@ -45,15 +45,15 @@ func (p *Player) LimitedTimeEventTrigger(AddEventId int) { switch v { case limitedTimeEvent.EVENT_TYPE_HIGH_ROLLER: BaseMod := p.PlayMod.getBaseMod() - EnergyMul := BaseMod.GetEnergyMul() + energyMul := BaseMod.GetEnergyMul() OrderMod := p.PlayMod.getOrderMod() - Emit := p.PlayMod.getChessMod().GetOrderEmit() - ChessList := p.PlayMod.getChessMod().GetUnlockChessList() - OrderMod.ChangeEnergyMul(Lv, Emit, EnergyMul, ChessList) + emit := p.PlayMod.getChessMod().GetOrderEmit() + chessList := p.PlayMod.getChessMod().GetUnlockChessList() + OrderMod.ChangeEnergyMul(lv, emit, energyMul, chessList) p.PushClientRes(OrderMod.BackData()) p.TeLog("mutil_merge_change", map[string]interface{}{ - "change_from": math.Pow(2, float64(EnergyMul)), - "change_to": math.Pow(2, float64(EnergyMul)), + "change_from": math.Pow(2, float64(energyMul)), + "change_to": math.Pow(2, float64(energyMul)), "is_auto": true, }) p.PushClientRes(p.PlayMod.getBaseMod().BackData()) @@ -68,13 +68,13 @@ func (p *Player) LimitedTimeEventTrigger(AddEventId int) { } } - for _, v := range AddEvent { // 增加事件处理 + for _, v := range addEvent { // 增加事件处理 switch v { case limitedTimeEvent.EVENT_TYPE_SUPER_ORDER: - Emit := p.PlayMod.getChessMod().GetOrderEmit() - Lv := p.GetPlayerBaseMod().GetLevel() - EnergyMul := p.PlayMod.getBaseMod().GetEnergyMul() - p.PlayMod.getOrderMod().CreateSuperOrder(Lv, Emit, EnergyMul) + emit := p.PlayMod.getChessMod().GetOrderEmit() + lv := p.GetPlayerBaseMod().GetLevel() + energyMul := p.PlayMod.getBaseMod().GetEnergyMul() + p.PlayMod.getOrderMod().CreateSuperOrder(lv, emit, energyMul) p.PushClientRes(p.PlayMod.getOrderMod().BackData()) case limitedTimeEvent.EVENT_TYPE_CARD_FESTIVAL: p.PlayMod.getCardMod().CreateCardFestival() @@ -95,9 +95,9 @@ func (p *Player) LimitedTimeEventTrigger(AddEventId int) { // 限时猪猪存钱罐触发器 func (p *Player) LimitedTimePiggyBankTrigger() { - Remain := p.PlayMod.getPiggyBankMod().TimeOut() - if Remain > 0 { - p.CallEvent(time.Duration(Remain)*time.Second, func() { + remain := p.PlayMod.getPiggyBankMod().TimeOut() + if remain > 0 { + p.CallEvent(time.Duration(remain)*time.Second, func() { p.lock.Lock() defer p.lock.Unlock() p.LimitedTimePiggyBankTrigger() @@ -111,10 +111,10 @@ func (p *Player) LimitedTimePiggyBankTrigger() { func (p *Player) LimitedTimeCardTrigger() { FriendMod := p.PlayMod.getFriendMod() CardMod := p.PlayMod.getCardMod() - Now := GoUtil.Now() - var EndTime int64 + now := GoUtil.Now() + var endTime int64 for k, v := range FriendMod.Card { - if v.EndTime > 0 && v.EndTime <= Now { + if v.EndTime > 0 && v.EndTime <= now { switch v.Status { case card.STATUS_CARD_EX_1: delete(FriendMod.Card, k) @@ -137,12 +137,12 @@ func (p *Player) LimitedTimeCardTrigger() { } continue } - if v.EndTime > 0 && (EndTime == 0 || v.EndTime < EndTime) { - EndTime = v.EndTime + if v.EndTime > 0 && (endTime == 0 || v.EndTime < endTime) { + endTime = v.EndTime } } - if EndTime > 0 { - p.CallEvent(time.Duration(EndTime-Now)*time.Second, func() { + if endTime > 0 { + p.CallEvent(time.Duration(endTime-now)*time.Second, func() { p.lock.Lock() defer p.lock.Unlock() p.LimitedTimeCardTrigger() @@ -159,58 +159,58 @@ func (p *Player) LimitedTimePlayroomTrigger() { } } -func (p *Player) LimitedTimePlayroomTrigger_(Id int) { +func (p *Player) LimitedTimePlayroomTrigger_(id int) { PlayroomMod := p.PlayMod.getPlayroomMod() - Physiology := PlayroomMod.GetPhysiology(Id) - if Physiology == nil { + physiology := PlayroomMod.GetPhysiology(id) + if physiology == nil { return } - NewTime, NextSecond, Num := PlayroomTrigger(Physiology.Id, Physiology.Time, Physiology.Num) - Physiology.Time = NewTime - DiffValue := Physiology.Num - Num - MType, MEffect := playroomCfg.GetMoodEffect(Physiology.Id) - CleanMood := PlayroomMod.GetMoodInfo(playroom.MOOD_TYPE_CLEAN) - PlayroomMod.AddMood(MType, -MEffect*DiffValue) + newTime, nextSecond, num := PlayroomTrigger(physiology.Id, physiology.Time, physiology.Num) + physiology.Time = newTime + diffValue := physiology.Num - num + mType, mEffect := playroomCfg.GetMoodEffect(physiology.Id) + cleanMood := PlayroomMod.GetMoodInfo(playroom.MOOD_TYPE_CLEAN) + PlayroomMod.AddMood(mType, -mEffect*diffValue) // 上厕所数值为0 且清洁度大于50时,清洁度降至50 - if CleanMood != nil && Id == playroom.PHYSIOLOGY_TYPE_TOLIET && Num == 0 && CleanMood.Num > 50 { - CleanMood.Num = 50 + if cleanMood != nil && id == playroom.PHYSIOLOGY_TYPE_TOLIET && num == 0 && cleanMood.Num > 50 { + cleanMood.Num = 50 } - Physiology.Num = Num - if PlayroomMod.GetMoodInfo(MType).Num == 0 { // 心情值为0时,重置生理状态 - PlayroomMod.ResetPhysiology(MType) - NewTime = 0 + physiology.Num = num + if PlayroomMod.GetMoodInfo(mType).Num == 0 { // 心情值为0时,重置生理状态 + PlayroomMod.ResetPhysiology(mType) + newTime = 0 } p.PlayMod.save() ResNotifyMood := PlayroomMod.NotifyMood() p.PushClientRes(ResNotifyMood) - if NextSecond > 0 { - p.CallEvent(time.Duration(NextSecond)*time.Second, func() { + if nextSecond > 0 { + p.CallEvent(time.Duration(nextSecond)*time.Second, func() { p.lock.Lock() defer p.lock.Unlock() - p.LimitedTimePlayroomTrigger_(Id) + p.LimitedTimePlayroomTrigger_(id) p.SendClientRes() - }, fmt.Sprintf("Playroom_%d", Id)) + }, fmt.Sprintf("Playroom_%d", id)) } } -func PlayroomTrigger(Id int, Time int64, Num int) (int64, int64, int) { - if Num == 0 { +func PlayroomTrigger(id int, time int64, num int) (int64, int64, int) { + if num == 0 { return 0, 0, 0 } - Now := GoUtil.Now() - NeedDuration := playroomCfg.GetPhysiologyDuration(Id, Num) - if Time+int64(NeedDuration) > Now { - return Time, int64(NeedDuration), Num + now := GoUtil.Now() + needDuration := playroomCfg.GetPhysiologyDuration(id, num) + if time+int64(needDuration) > now { + return time, int64(needDuration), num } n := 0 for n <= 100 { - Num-- - NeedDuration := playroomCfg.GetPhysiologyDuration(Id, Num) - Time += int64(NeedDuration) - if Time >= Now { - return Now, int64(NeedDuration), Num + num-- + needDuration := playroomCfg.GetPhysiologyDuration(id, num) + time += int64(needDuration) + if time >= now { + return now, int64(needDuration), num } - if Num == 0 { + if num == 0 { return 0, 0, 0 } n++ @@ -220,18 +220,18 @@ func PlayroomTrigger(Id int, Time int64, Num int) (int64, int64, int) { func LimitedTimePlayroomWorkTrigger(p *Player) { PlayroomMod := p.PlayMod.getPlayroomMod() - EndTime := PlayroomMod.Endtime - Now := GoUtil.Now() - if EndTime > 0 && EndTime <= Now { + endTime := PlayroomMod.Endtime + now := GoUtil.Now() + if endTime > 0 && endTime <= now { PlayroomMod.ResetWork() p.PlayMod.save() p.PlayroomBackData() p.SendClientRes() return } - NextSecond := EndTime - Now - if NextSecond > 0 { - p.CallEvent(time.Duration(NextSecond)*time.Second, func() { + nextSecond := endTime - now + if nextSecond > 0 { + p.CallEvent(time.Duration(nextSecond)*time.Second, func() { p.lock.Lock() defer p.lock.Unlock() LimitedTimePlayroomWorkTrigger(p) @@ -245,50 +245,50 @@ func LimitedTimeEnergyAdd(p *Player) { PlayerBaseMod := p.GetPlayerBaseMod() BaseMod := p.PlayMod.getBaseMod() delta := curtime - BaseMod.GetRecoverTime() - Recover := userCfg.GetRecover(BaseMod.GetLevel()) - if Recover <= 0 { + recover := userCfg.GetRecover(BaseMod.GetLevel()) + if recover <= 0 { return } - Addsta := int(delta) / Recover - if Addsta <= 0 { + addsta := int(delta) / recover + if addsta <= 0 { return } - Energy := BaseMod.GetEnergy() - MaxEnergy := PlayerBaseMod.GetMaxEnergy() - if MaxEnergy > Energy { - E := MaxEnergy - Energy - Energy += Addsta - if Energy > MaxEnergy { - Energy = MaxEnergy + energy := BaseMod.GetEnergy() + maxEnergy := PlayerBaseMod.GetMaxEnergy() + if maxEnergy > energy { + e := maxEnergy - energy + energy += addsta + if energy > maxEnergy { + energy = maxEnergy } p.TeLog("asset_change", map[string]interface{}{ "item_id": item.ITEM_ENERGY_ID, "change_type": "gain", - "change_num": min(Addsta, E), - "change_after": Energy, + "change_num": min(addsta, e), + "change_after": energy, "change_reason": "recover_server", }) - p.CallEvent(time.Duration(Recover)*time.Second, func() { + p.CallEvent(time.Duration(recover)*time.Second, func() { p.lock.Lock() defer p.lock.Unlock() LimitedTimeEnergyAdd(p) }, "AddEnergy") } - BaseMod.SetEnergy(Energy) + BaseMod.SetEnergy(energy) BaseMod.SetRecoverTime(curtime) p.SendErrClienRes(PlayerBaseMod.BackAsset()) } func GuideTaskTrigger(p *Player) { GuideTaskMod := p.PlayMod.getGuideTaskMod() - UnlockTime := GuideTaskMod.UnlockTime - if UnlockTime == 0 { + unlockTime := GuideTaskMod.UnlockTime + if unlockTime == 0 { return } - Now := GoUtil.Now() - NextSecond := 86400 - (Now-UnlockTime)%86400 - if NextSecond > 0 { - p.CallEvent(time.Duration(NextSecond)*time.Second, func() { + now := GoUtil.Now() + nextSecond := 86400 - (now-unlockTime)%86400 + if nextSecond > 0 { + p.CallEvent(time.Duration(nextSecond)*time.Second, func() { p.lock.Lock() defer p.lock.Unlock() GuideTaskMod.Login() diff --git a/src/server/game/mail_mgr.go b/src/server/game/mail_mgr.go index 65feb1ef..40ea2957 100644 --- a/src/server/game/mail_mgr.go +++ b/src/server/game/mail_mgr.go @@ -57,12 +57,12 @@ func (m *MailMgr) Init() { } func (m *MailMgr) AddMail(msg *msg.Msg) (interface{}, error) { - ServerMail, ok := msg.Extra.(*ServerMail) + serverMail, ok := msg.Extra.(*ServerMail) if !ok { log.Error("AddMail error: invalid mail data") return nil, nil } - m.list[ServerMail.Id] = ServerMail + m.list[serverMail.Id] = serverMail return nil, nil } @@ -76,10 +76,10 @@ func (r *MailMgr) LoadMail(msg *msg.Msg) (interface{}, error) { return nil, err } for _, v := range data { - Uids := make([]int, 0) - UidArr := strings.Split(v.To_uids, ",") - for _, v := range UidArr { - Uids = append(Uids, GoUtil.Int(v)) + uids := make([]int, 0) + uidArr := strings.Split(v.To_uids, ",") + for _, v := range uidArr { + uids = append(uids, GoUtil.Int(v)) } var items []interface{} json.Unmarshal([]byte(v.Items), &items) @@ -99,7 +99,7 @@ func (r *MailMgr) LoadMail(msg *msg.Msg) (interface{}, error) { End_time: v.End_time, Mail_type: v.Mail_type, Send_type: v.Send_type, - To_uids: Uids, + To_uids: uids, } } return nil, nil @@ -107,13 +107,13 @@ func (r *MailMgr) LoadMail(msg *msg.Msg) (interface{}, error) { func (r *MailMgr) Sync(Uid int, Register int64) []ServerMail { // 同步邮件 - Now := GoUtil.Now() + now := GoUtil.Now() list := make([]ServerMail, 0) for _, v := range r.list { - if v.Start_time > 0 && v.Start_time > Now { + if v.Start_time > 0 && v.Start_time > now { continue } - if v.End_time > 0 && v.End_time < Now { + if v.End_time > 0 && v.End_time < now { continue } if v.Register_time > 0 && v.Register_time < Register { diff --git a/src/server/game/message_handler.go b/src/server/game/message_handler.go index 3ef57bc0..8d37373b 100644 --- a/src/server/game/message_handler.go +++ b/src/server/game/message_handler.go @@ -1210,14 +1210,14 @@ func (p *Player) GetPlayroomGameReward(gType, selectId int) []*item.Item { // 获取宠物小偷奖励 func (p *Player) GetPetThiefReward(target int) error { - PlayerData := G_GameLogicPtr.GetSimplePlayerByUid(target) - if PlayerData == nil { + playerData := G_GameLogicPtr.GetSimplePlayerByUid(target) + if playerData == nil { return fmt.Errorf("target %d not exist", target) } cardStar := limitedTimeEventCfg.GetThiefProb() starMap := make(map[int][]int) var cardList []int - for _, v := range PlayerData.CardInfo { + for _, v := range playerData.CardInfo { star := cardCfg.GetStarById(v) starMap[star] = append(starMap[star], v) } diff --git a/src/server/game/mod/activity/activity_gift.go b/src/server/game/mod/activity/activity_gift.go index 23875261..2be986e0 100644 --- a/src/server/game/mod/activity/activity_gift.go +++ b/src/server/game/mod/activity/activity_gift.go @@ -7,16 +7,16 @@ import ( ) // 活动礼包 -func (a *Activity) Fire(Id int, atype int) ([]*item.Item, error) { - // AId := activityCfg.GetActivityGiftId(Id) +func (a *Activity) Fire(id int, atype int) ([]*item.Item, error) { + // AId := activityCfg.GetActivityGiftId(id) // Var := a.getGiftVar(AId) // if Var.Buy { - // return nil, fmt.Errorf("Id%d已购买", Id) + // return nil, fmt.Errorf("Id%d已购买", id) // } // Var.Buy = true // Var.Time = GoUtil.Now() if atype == ACT_TYPE_ADD_GIFT { a.AddEnd = GoUtil.Now() + 7*86400 } - return activityCfg.GetActivityGiftItems(Id), nil + return activityCfg.GetActivityGiftItems(id), nil } diff --git a/src/server/game/mod/avatar/Avatar.go b/src/server/game/mod/avatar/Avatar.go index 7c4cf423..da2f3ca4 100644 --- a/src/server/game/mod/avatar/Avatar.go +++ b/src/server/game/mod/avatar/Avatar.go @@ -17,10 +17,10 @@ type Avatar struct { AddTime int64 } -func (f *AvatarMod) Login(RegisterTime int64) { +func (f *AvatarMod) Login(registerTime int64) { for k, v := range f.List { if v.AddTime == 0 { - v.AddTime = RegisterTime + v.AddTime = registerTime f.List[k] = v } } @@ -28,9 +28,9 @@ func (f *AvatarMod) Login(RegisterTime int64) { func (a *AvatarMod) InitData() { now := GoUtil.Now() if a.List == nil { - InitId := avatarCfg.GetInitList() - a.List = make(map[int]*Avatar, len(InitId)) - for _, v := range InitId { + initId := avatarCfg.GetInitList() + a.List = make(map[int]*Avatar, len(initId)) + for _, v := range initId { a.List[v] = &Avatar{ AddTime: now, } @@ -42,30 +42,30 @@ func (a *AvatarMod) GetAvatarNum() int { return len(a.List) } -func (a *AvatarMod) SetAvatar(Id int) error { - if _, ok := a.List[Id]; !ok { - return fmt.Errorf("avatar id:%d not exist", Id) +func (a *AvatarMod) SetAvatar(id int) error { + if _, ok := a.List[id]; !ok { + return fmt.Errorf("avatar id:%d not exist", id) } - a.SetId = Id + a.SetId = id return nil } -func (a *AvatarMod) Unlock(Id, Time int) error { - v, ok := a.List[Id] +func (a *AvatarMod) Unlock(id, duration int) error { + v, ok := a.List[id] if ok { if v.Ts == 0 { return nil } - v.Ts += int64(Time) + v.Ts += int64(duration) return nil } now := GoUtil.Now() ts := int64(0) - if Time > 0 { - ts = now + int64(Time) + if duration > 0 { + ts = now + int64(duration) } - a.List[Id] = &Avatar{ + a.List[id] = &Avatar{ Ts: ts, AddTime: now, } diff --git a/src/server/game/mod/base/Base.go b/src/server/game/mod/base/Base.go index 0a52df8a..85fbf4b0 100644 --- a/src/server/game/mod/base/Base.go +++ b/src/server/game/mod/base/Base.go @@ -55,15 +55,15 @@ func (b *Base) InitData(Uid int, Ip string) { b.CountryCode = code } if b.AddCode == "" && Ip != "" { - Code, _ := GoUtil.GetCountryByIP(Ip) - CountryCode := conf.Server.CountryCode - if CountryCode == "" { - CountryCode = "000" + code, _ := GoUtil.GetCountryByIP(Ip) + countryCode := conf.Server.CountryCode + if countryCode == "" { + countryCode = "000" } - if Code != "" && len(Code) == 3 { - CountryCode = Code + if code != "" && len(code) == 3 { + countryCode = code } - b.AddCode = fmt.Sprintf("MMM-%s-%s", CountryCode, GoUtil.UniqueStringFromInt(Uid)) + b.AddCode = fmt.Sprintf("MMM-%s-%s", countryCode, GoUtil.UniqueStringFromInt(Uid)) } if b.NickName == "" { b.NickName = fmt.Sprintf("Player_%d", Uid) @@ -71,15 +71,15 @@ func (b *Base) InitData(Uid int, Ip string) { } func (b *Base) Login() int64 { - Now := GoUtil.Now() - if !GoUtil.IsSameDay(b.LoginTime, Now) { + now := GoUtil.Now() + if !GoUtil.IsSameDay(b.LoginTime, now) { b.LoginDay += 1 } logoutDuration := int64(0) if b.LogoutTime != 0 { - logoutDuration = Now - b.LogoutTime + logoutDuration = now - b.LogoutTime } - b.LoginTime = Now + b.LoginTime = now b.LogoutTime = 0 return logoutDuration } @@ -231,16 +231,16 @@ func (b *Base) SetLang(lang msg.LANG_TYPE) { b.Lang = lang } -func (b *Base) BuyEnergy(Energy int) ([]*item.Item, int, int) { +func (b *Base) BuyEnergy(energy int) ([]*item.Item, int, int) { b.EnergyBuy += 1 - Mul := baseCfg.GetEnergyByMul(b.EnergyBuy) - Diamond := int(float64(Energy) / Mul) - return []*item.Item{{Id: item.ITEM_DIAMOND_ID, Num: -Diamond}, {Id: item.ITEM_ENERGY_ID, Num: Energy}}, Energy, Diamond + mul := baseCfg.GetEnergyByMul(b.EnergyBuy) + diamond := int(float64(energy) / mul) + return []*item.Item{{Id: item.ITEM_DIAMOND_ID, Num: -diamond}, {Id: item.ITEM_ENERGY_ID, Num: energy}}, energy, diamond } // HighRoller 结束时重置能量倍数 -func (b *Base) ResetEnergyMul(Mul int) { - b.EnergyMul = Mul +func (b *Base) ResetEnergyMul(mul int) { + b.EnergyMul = mul } func (b *Base) BackData() *msg.BaseInfo { @@ -259,10 +259,10 @@ func (b *Base) ZeroUpdate() { b.TodayCumulative = 0 } -func (b *Base) Outline(Time int) { +func (b *Base) Outline(duration int) { b.LogoutTime = GoUtil.Now() - b.TodayCumulative += Time - b.Cumulative += Time + b.TodayCumulative += duration + b.Cumulative += duration } func (b *Base) GetEnergyByAD() ([]*item.Item, error) { @@ -273,24 +273,7 @@ func (b *Base) GetEnergyByAD() ([]*item.Item, error) { return baseCfg.GetEnergyByADNum(), nil } -func (b *Base) FormatEnergyMul(Energy int) { - for { - if b.EnergyMul <= 0 { - b.EnergyMul = 0 - return - } - EnergyLimit := baseCfg.GetLimitEnergyMul(b.Level) - if EnergyLimit == 0 { - return - } - if Energy > EnergyLimit { - return - } - b.EnergyMul-- - } -} - -func (b *Base) SetId2Verify(UserName, Num string) { - b.IdCardName = UserName - b.IdCardNum = Num +func (b *Base) SetId2Verify(userName, num string) { + b.IdCardName = userName + b.IdCardNum = num } diff --git a/src/server/game/mod/card/Card.go b/src/server/game/mod/card/Card.go index a76eb43b..dbbafdeb 100644 --- a/src/server/game/mod/card/Card.go +++ b/src/server/game/mod/card/Card.go @@ -118,10 +118,10 @@ func (c *CardMod) InitData() { 卡牌系统-登录:赛季结束则重置 */ func (c *CardMod) Login(ServerOpenTime int64) []*item.Item { - Now := GoUtil.Now() - Duration := cardCfg.GetCardDuration() - HandbookItemNum := 0 - if c.EndTime < Now { + now := GoUtil.Now() + duration := cardCfg.GetCardDuration() + handbookItemNum := 0 + if c.EndTime < now { c.CardList = make(map[int]int) c.ExchangeStar = 0 c.CollectReward = make(map[int]struct{}) @@ -132,57 +132,57 @@ func (c *CardMod) Login(ServerOpenTime int64) []*item.Item { if v == HANDBOOK_STATUS_GET { continue } - Round := cardCfg.GetRoundById(k) - if Round < c.Round { + round := cardCfg.GetRoundById(k) + if round < c.Round { continue } - HandbookItemNum += cardCfg.GetStarById(k) + handbookItemNum += cardCfg.GetStarById(k) } c.Handbook = make(map[int]int) } if c.EndTime == 0 { - c.EndTime = ((Now-ServerOpenTime)/Duration+1)*Duration + ServerOpenTime + c.EndTime = ((now-ServerOpenTime)/duration+1)*duration + ServerOpenTime } - return []*item.Item{{Id: item.ITEM_ENERGY_ID, Num: HandbookItemNum}} + return []*item.Item{{Id: item.ITEM_ENERGY_ID, Num: handbookItemNum}} } // 零点更新 -func (c *CardMod) ZeroUpdate(ServerOpenTime int64) []*item.Item { +func (c *CardMod) ZeroUpdate(serverOpenTime int64) []*item.Item { c.ReqTimes = cardCfg.GetReqTimes() c.ExTimes = cardCfg.GetExTimes() c.GoldTimes = 2 - return c.Login(ServerOpenTime) + return c.Login(serverOpenTime) } // 增加卡牌 -func (c *CardMod) AddCard(Id int) { - _, ok := c.CardList[Id] +func (c *CardMod) AddCard(id int) { + _, ok := c.CardList[id] if ok { - star := cardCfg.GetStarById(Id) + star := cardCfg.GetStarById(id) c.ExchangeStar += star c.Cache.ExStar += star - c.CardList[Id]++ + c.CardList[id]++ } else { - c.CardList[Id] = 1 + c.CardList[id] = 1 } - _, ok = c.Handbook[Id] + _, ok = c.Handbook[id] if !ok { - c.Handbook[Id] = HANDBOOK_STATUS_IDLE - c.Cache.Handbook[Id] = 1 + c.Handbook[id] = HANDBOOK_STATUS_IDLE + c.Cache.Handbook[id] = 1 } - c.Cache.Card[Id]++ + c.Cache.Card[id]++ } // 开启卡包 -func (c *CardMod) OpenCardPack(Star int) ([]int, error) { +func (c *CardMod) OpenCardPack(star int) ([]int, error) { cardId := 0 newCard := make([]int, 0) - cnt := cardCfg.GetPackRewardCnt(Star) + cnt := cardCfg.GetPackRewardCnt(star) if cnt == 0 { - return newCard, fmt.Errorf("open star %d card pack cfg err cnt == 0", Star) + return newCard, fmt.Errorf("open star %d card pack cfg err cnt == 0", star) } - mustHaveStar := cardCfg.GetPackMustHave(Star) + mustHaveStar := cardCfg.GetPackMustHave(star) if mustHaveStar != 0 { cardId = randCard(c.Round, mustHaveStar, 0, newCard) if cardId == 0 { @@ -197,7 +197,7 @@ func (c *CardMod) OpenCardPack(Star int) ([]int, error) { Extra := max(1, int(total/2)) cnt += Extra } - randList := cardCfg.GetRandListByStar(Star) + randList := cardCfg.GetRandListByStar(star) for i := 0; i < cnt; i++ { CardStar := GoUtil.RandMap(randList) switch CardStar { @@ -222,10 +222,10 @@ func (c *CardMod) OpenCardPack(Star int) ([]int, error) { // cleanExpired 清理过期的请求和交换记录,返回有效 uid 列表 func (c *CardMod) cleanExpired() (reqUid, exUid []int64) { - Now := GoUtil.Now() + now := GoUtil.Now() reqUid = make([]int64, 0, len(c.ReqFriend)) for k, v := range c.ReqFriend { - if v.EndTime < Now { + if v.EndTime < now { delete(c.ReqFriend, k) continue } @@ -233,7 +233,7 @@ func (c *CardMod) cleanExpired() (reqUid, exUid []int64) { } exUid = make([]int64, 0, len(c.ExCard)) for k, v := range c.ExCard { - if v.EndTime < Now { + if v.EndTime < now { delete(c.ExCard, k) continue } @@ -251,7 +251,7 @@ func (c *CardMod) BackData() *msg.ResCardInfo { } cardList = append(cardList, &msg.Card{Id: int32(k), Count: int32(v)}) } - ReqUid, ExUid := c.cleanExpired() + reqUid, exUid := c.cleanExpired() if c.EndTime < GoUtil.Now() { log.Debug("CardMod BackData EndTime < Now, reset card data") @@ -265,8 +265,8 @@ func (c *CardMod) BackData() *msg.ResCardInfo { ExTimes: int32(c.ExTimes), ReqTimes: int32(c.ReqTimes), AllCard: GoUtil.MapIntToInt32(c.AllCard), - ReqUid: ReqUid, - ExUid: ExUid, + ReqUid: reqUid, + ExUid: exUid, Round: int32(c.Round), Handbook: GoUtil.MapIntToInt32(c.Handbook), SeasonFirst: c.SeasonFirst, @@ -274,35 +274,35 @@ func (c *CardMod) BackData() *msg.ResCardInfo { } // 领取卡牌收集奖励 -func (c *CardMod) GetCollectReward(Id int) ([]*item.Item, int, error) { - _, ok := c.CollectReward[Id] +func (c *CardMod) GetCollectReward(id int) ([]*item.Item, int, error) { + _, ok := c.CollectReward[id] if ok { - return nil, 0, fmt.Errorf("CollectReward id:%d already collect", Id) + return nil, 0, fmt.Errorf("CollectReward id:%d already collect", id) } - cardList := cardCfg.GetCardListByColor(Id) + cardList := cardCfg.GetCardListByColor(id) for _, v := range cardList { count, ok := c.CardList[v] if !ok || count <= 0 { - return nil, 0, fmt.Errorf("card not collect all ,id : %d", Id) + return nil, 0, fmt.Errorf("card not collect all ,id : %d", id) } } - c.CollectReward[Id] = struct{}{} - Item, Chess := cardCfg.GetCollectReward(Id) + c.CollectReward[id] = struct{}{} + Item, Chess := cardCfg.GetCollectReward(id) return Item, Chess, nil } // 兑换星星奖励 -func (c *CardMod) ExStarReward(Id int) ([]*item.Item, int, error) { - if c.ExchangeStar < Id { - return nil, 0, fmt.Errorf("ExStarReward star not enough, Id: %d", Id) +func (c *CardMod) ExStarReward(id int) ([]*item.Item, int, error) { + if c.ExchangeStar < id { + return nil, 0, fmt.Errorf("ExStarReward star not enough, Id: %d", id) } - CostStar, itemList := cardCfg.GetExchangeCfg(Id) - if c.ExchangeStar < CostStar { - return nil, 0, fmt.Errorf("ExStarReward star not enough, Id: %d", Id) + costStar, items := cardCfg.GetExchangeCfg(id) + if c.ExchangeStar < costStar { + return nil, 0, fmt.Errorf("ExStarReward star not enough, Id: %d", id) } - c.ExchangeStar -= CostStar - c.Cache.ExStar -= CostStar - return itemList, CostStar, nil + c.ExchangeStar -= costStar + c.Cache.ExStar -= costStar + return items, costStar, nil } // 领取全收集奖励 @@ -310,8 +310,8 @@ func (c *CardMod) AllCollectReward() ([]*item.Item, []*item.Item, error) { if c.AllCollect == 1 { return nil, nil, fmt.Errorf("AllCollectReward already collect") } - AllCardId := cardCfg.GetAllCardId(c.Round) - for _, v := range AllCardId { + allCardId := cardCfg.GetAllCardId(c.Round) + for _, v := range allCardId { count, ok := c.CardList[v] if !ok || count <= 0 { return nil, nil, fmt.Errorf("card not fully collect for all collect reward, card id : %d", v) @@ -319,26 +319,26 @@ func (c *CardMod) AllCollectReward() ([]*item.Item, []*item.Item, error) { } c.AllCollect = 0 c.CollectReward = make(map[int]struct{}) - ExStar := 0 + exStar := 0 for k, v := range c.CardList { star := cardCfg.GetStarById(k) - ExStar += star * (v - 1) + exStar += star * (v - 1) c.CardList[k] = v - 1 } c.CardList = make(map[int]int) - c.ExchangeStar += ExStar - c.Cache.ExStar += ExStar - Item := cardCfg.GetAllCollectReward() - HandbookItemNum := 0 + c.ExchangeStar += exStar + c.Cache.ExStar += exStar + items := cardCfg.GetAllCollectReward() + handbookItemNum := 0 for k, v := range c.Handbook { if v == HANDBOOK_STATUS_GET { continue } - HandbookItemNum += cardCfg.GetStarById(k) + handbookItemNum += cardCfg.GetStarById(k) } c.Round++ c.Handbook = make(map[int]int) - return Item, []*item.Item{{Id: item.ITEM_ENERGY_ID, Num: HandbookItemNum}}, nil + return items, []*item.Item{{Id: item.ITEM_ENERGY_ID, Num: handbookItemNum}}, nil } func (c *CardMod) ResetCardFestival() { @@ -353,8 +353,8 @@ func (c *CardMod) CreateCardFestival() { c.CardLimit = true } -func (c *CardMod) GetCardNum(Card int) int { - return c.CardList[Card] +func (c *CardMod) GetCardNum(card int) int { + return c.CardList[card] } func (c *CardMod) SubCard(id int) error { @@ -376,19 +376,19 @@ func (c *CardMod) RequestCard() error { } // 增加请求卡牌记录 -func (c *CardMod) AddRequestCard(CardInfo *CardInfo) error { - _, ok := c.ReqFriend[CardInfo.BUid] +func (c *CardMod) AddRequestCard(cardInfo *CardInfo) error { + _, ok := c.ReqFriend[cardInfo.BUid] if ok { - return fmt.Errorf("AddRequestCard already request card to this friend, BUid: %d", CardInfo.BUid) + return fmt.Errorf("AddRequestCard already request card to this friend, BUid: %d", cardInfo.BUid) } - c.ReqFriend[CardInfo.BUid] = CardInfo + c.ReqFriend[cardInfo.BUid] = cardInfo return nil } -func (c *CardMod) DelRequestCard(Uid int) (map[int]*CardInfo, error) { - ci, ok := c.ReqFriend[Uid] +func (c *CardMod) DelRequestCard(uid int) (map[int]*CardInfo, error) { + ci, ok := c.ReqFriend[uid] if !ok { - return nil, fmt.Errorf("DelRequestCard not find request card, Uid: %d", Uid) + return nil, fmt.Errorf("DelRequestCard not find request card, Uid: %d", uid) } r := make(map[int]*CardInfo) for k, v := range c.ReqFriend { @@ -397,106 +397,106 @@ func (c *CardMod) DelRequestCard(Uid int) (map[int]*CardInfo, error) { continue } } - delete(c.ReqFriend, Uid) + delete(c.ReqFriend, uid) return r, nil } -func (c *CardMod) AddReqTimes(Id string, Time int64) { +func (c *CardMod) AddReqTimes(id string, time int64) { n := 0 for _, v := range c.ReqFriend { - if v.Id == Id { + if v.Id == id { n++ } } - Zero := GoUtil.ZeroTime(Time) - ZeroTime := GoUtil.ZeroTimestamp() - if n == 0 && Zero == ZeroTime { + zero := GoUtil.ZeroTime(time) + zeroTime := GoUtil.ZeroTimestamp() + if n == 0 && zero == zeroTime { c.ReqTimes = min(cardCfg.GetReqTimes(), c.ReqTimes+1) } } -func (c *CardMod) AddExTimes(CardInfo *CardInfo) { - Zero := GoUtil.ZeroTime(CardInfo.StartTime) - ZeroTime := GoUtil.ZeroTimestamp() - if Zero == ZeroTime { +func (c *CardMod) AddExTimes(cardInfo *CardInfo) { + zero := GoUtil.ZeroTime(cardInfo.StartTime) + zeroTime := GoUtil.ZeroTimestamp() + if zero == zeroTime { c.ExTimes++ c.ExTimes = min(cardCfg.GetExTimes(), c.ExTimes) } - if cardCfg.CheckCardIsGold(CardInfo.CardId) { + if cardCfg.CheckCardIsGold(cardInfo.CardId) { c.GoldTimes-- } } // 交换卡牌 -func (c *CardMod) ExchangeCard(From, To, CardId int) (*CardInfo, error) { +func (c *CardMod) ExchangeCard(from, to, cardId int) (*CardInfo, error) { if c.ExTimes <= 0 { - return nil, fmt.Errorf("ExchangeCard times not enough, CardId: %d", CardId) + return nil, fmt.Errorf("ExchangeCard times not enough, CardId: %d", cardId) } - err := c.SubCard(CardId) + err := c.SubCard(cardId) if err != nil { return nil, err } c.ExTimes-- - Now := GoUtil.Now() - Id := GoUtil.CreateCardId(From, To, CardId) + now := GoUtil.Now() + id := GoUtil.CreateCardId(from, to, cardId) CardInfo := &CardInfo{ - Id: Id, - AUid: From, - BUid: To, - CardId: CardId, + Id: id, + AUid: from, + BUid: to, + CardId: cardId, Type: TYPE_CARD_EX, Status: STATUS_CARD_EX_1, - StartTime: Now, - EndTime: Now + 86400, + StartTime: now, + EndTime: now + 86400, } - c.ExCard[To] = CardInfo + c.ExCard[to] = CardInfo return CardInfo, nil } -func (c *CardMod) SendCard(From, To, CardId int) (*CardInfo, error) { +func (c *CardMod) SendCard(from, to, cardId int) (*CardInfo, error) { if c.ExTimes <= 0 { - return nil, fmt.Errorf("SendCard times not enough, CardId: %d", CardId) + return nil, fmt.Errorf("SendCard times not enough, CardId: %d", cardId) } - err := c.SubCard(CardId) + err := c.SubCard(cardId) if err != nil { return nil, err } c.ExTimes-- - Now := GoUtil.Now() - Id := GoUtil.CreateCardId(From, To, CardId) + now := GoUtil.Now() + id := GoUtil.CreateCardId(from, to, cardId) CardInfo := &CardInfo{ - Id: Id, - AUid: From, - BUid: To, - CardId: CardId, + Id: id, + AUid: from, + BUid: to, + CardId: cardId, Type: TYPE_CARD_SEND, - StartTime: Now, + StartTime: now, Status: STATUS_CARD_SEND_1, } return CardInfo, nil } -func (c *CardMod) DelExCard(CardInfo *CardInfo) { - delete(c.ExCard, CardInfo.BUid) +func (c *CardMod) DelExCard(cardInfo *CardInfo) { + delete(c.ExCard, cardInfo.BUid) } -func (c *CardMod) AddMasterCard(Id int) { - c.Cache.Master[Id]++ - c.AllCard[Id]++ +func (c *CardMod) AddMasterCard(id int) { + c.Cache.Master[id]++ + c.AllCard[id]++ } -func (c *CardMod) MasterCardEx(Id, CardId int) error { - if c.AllCard[Id] <= 0 { - return fmt.Errorf("MasterCardEx card not enough, Id: %d", Id) +func (c *CardMod) MasterCardEx(id, cardId int) error { + if c.AllCard[id] <= 0 { + return fmt.Errorf("MasterCardEx card not enough, Id: %d", id) } - if Id == MASTER_CARD_NORMAL && cardCfg.CheckCardIsGold(CardId) { - return fmt.Errorf("MasterCardEx card type err, Id: %d, CardId: %d", Id, CardId) + if id == MASTER_CARD_NORMAL && cardCfg.CheckCardIsGold(cardId) { + return fmt.Errorf("MasterCardEx card type err, Id: %d, CardId: %d", id, cardId) } - c.AllCard[Id]-- - c.Cache.Master[Id]-- - c.AddCard(CardId) + c.AllCard[id]-- + c.Cache.Master[id]-- + c.AddCard(cardId) return nil } @@ -517,12 +517,12 @@ func (c *CardMod) NotifyCard() *msg.ResNotifyCard { } func (c *CardMod) NotifyTimes() *msg.ResNotifyCardTimes { - ReqUid, ExUid := c.cleanExpired() + reqUid, exUid := c.cleanExpired() return &msg.ResNotifyCardTimes{ ExTimes: int32(c.ExTimes), ReqTimes: int32(c.ReqTimes), - ExUid: ExUid, - ReqUid: ReqUid, + ExUid: exUid, + ReqUid: reqUid, GoldTimes: int32(c.GoldTimes), } } @@ -551,21 +551,21 @@ func (c *CardMod) AddGoldTimes() { c.GoldTimes = min(2, c.GoldTimes) } -func (c *CardMod) GetHandbookReward(CardId int) ([]*item.Item, error) { - if v, ok := c.Handbook[CardId]; ok { +func (c *CardMod) GetHandbookReward(cardId int) ([]*item.Item, error) { + if v, ok := c.Handbook[cardId]; ok { if v == HANDBOOK_STATUS_GET { - return nil, fmt.Errorf("GetHandbookReward already get reward, CardId: %d", CardId) + return nil, fmt.Errorf("GetHandbookReward already get reward, CardId: %d", cardId) } - Star := cardCfg.GetStarById(CardId) - c.Handbook[CardId] = HANDBOOK_STATUS_GET - c.Cache.Handbook[CardId] = HANDBOOK_STATUS_GET - return []*item.Item{item.NewItem(item.ITEM_ENERGY_ID, Star)}, nil + star := cardCfg.GetStarById(cardId) + c.Handbook[cardId] = HANDBOOK_STATUS_GET + c.Cache.Handbook[cardId] = HANDBOOK_STATUS_GET + return []*item.Item{item.NewItem(item.ITEM_ENERGY_ID, star)}, nil } - return nil, fmt.Errorf("GetHandbookReward not find card in handbook, CardId: %d", CardId) + return nil, fmt.Errorf("GetHandbookReward not find card in handbook, CardId: %d", cardId) } -func (c *CardMod) RandCard(Star int) int { - return randCard(c.Round, Star, 0, []int{}) +func (c *CardMod) RandCard(star int) int { + return randCard(c.Round, star, 0, []int{}) } func (c *CardMod) SeasonFirstReward() ([]*item.Item, error) { diff --git a/src/server/game/mod/card/card_func.go b/src/server/game/mod/card/card_func.go index 0f3dc40b..8118379c 100644 --- a/src/server/game/mod/card/card_func.go +++ b/src/server/game/mod/card/card_func.go @@ -6,16 +6,16 @@ import ( ) // 随机卡牌 -func randCard(Round, Star, IsGold int, Except []int) int { - cardList := cardCfg.GetCardListByStar(Round, Star, IsGold) - cardList = GoUtil.SubSlices(cardList, Except) +func randCard(round, star, isGold int, except []int) int { + cardList := cardCfg.GetCardListByStar(round, star, isGold) + cardList = GoUtil.SubSlices(cardList, except) cardId := GoUtil.RandSlice(cardList) return cardId } // 排位赛金卡 func RankGoldCard() (int, int) { - Card1 := randCard(0, 4, 1, []int{}) - Card2 := randCard(0, 5, 1, []int{Card1}) - return Card1, Card2 + card1 := randCard(0, 4, 1, []int{}) + card2 := randCard(0, 5, 1, []int{card1}) + return card1, card2 } diff --git a/src/server/game/mod/catnip/Catnip.go b/src/server/game/mod/catnip/Catnip.go index ad452d59..a2df8815 100644 --- a/src/server/game/mod/catnip/Catnip.go +++ b/src/server/game/mod/catnip/Catnip.go @@ -51,24 +51,24 @@ func (c *CatnipMod) InitData() { } // 登录 判断是否需要重置数据 -func (c *CatnipMod) Login(Id int) (int, []*item.Item) { - OldId := c.Id - if Id == 0 { +func (c *CatnipMod) Login(id int) (int, []*item.Item) { + oldId := c.Id + if id == 0 { c.Id = 0 - return OldId, nil + return oldId, nil } - if c.Id == Id { + if c.Id == id { return 0, nil } - Items := c.GetUnGetReward() - c.Id = Id + items := c.GetUnGetReward() + c.Id = id c.IsGetGrandReward = false // Reset grand reward status on login c.Game = make(map[int]*CatnipGame) c.Mul = 1 // Default multiplier - GameNum := catnipCfg.GetGameNum(c.Id) // Assuming 1 is the default game ID + gameNum := catnipCfg.GetGameNum(c.Id) // Assuming 1 is the default game ID c.InviteList = make(map[int]*InviteInfo) c.BeInvitedList = make(map[int]*InviteInfo) - for i := 1; i <= GameNum; i++ { + for i := 1; i <= gameNum; i++ { c.Game[i] = &CatnipGame{ Id: i, Partner: 0, // No partner initially @@ -76,50 +76,50 @@ func (c *CatnipMod) Login(Id int) (int, []*item.Item) { Status: GAME_STATUS_IDLE, // Not started } } - return OldId, Items + return oldId, items } -func (c *CatnipMod) ZeroUpdate(Id int) { - c.Login(Id) +func (c *CatnipMod) ZeroUpdate(id int) { + c.Login(id) } // 邀请好友 -func (c *CatnipMod) Invite(Uid, Id int) error { - if c.InviteList[Uid] != nil { - return fmt.Errorf("user with ID %d is already invited", Uid) +func (c *CatnipMod) Invite(uid, id int) error { + if c.InviteList[uid] != nil { + return fmt.Errorf("user with ID %d is already invited", uid) } - c.InviteList[Uid] = &InviteInfo{ - InviteId: Id, + c.InviteList[uid] = &InviteInfo{ + InviteId: id, Time: GoUtil.Now(), } return nil } // 被邀请 -func (c *CatnipMod) BeInvited(Uid int, Time int64) error { +func (c *CatnipMod) BeInvited(uid int, time int64) error { // Check if the user is already invited - invite := c.BeInvitedList[Uid] + invite := c.BeInvitedList[uid] if invite != nil { - return fmt.Errorf("user with ID %d has already been invited ", Uid) + return fmt.Errorf("user with ID %d has already been invited ", uid) } - c.BeInvitedList[Uid] = &InviteInfo{ - InviteId: Uid, - Time: Time, + c.BeInvitedList[uid] = &InviteInfo{ + InviteId: uid, + Time: time, } return nil } // 同意邀请 -func (c *CatnipMod) Agree(Id, Uid int) ([]int, error) { - _, exists := c.BeInvitedList[Uid] +func (c *CatnipMod) Agree(id, uid int) ([]int, error) { + _, exists := c.BeInvitedList[uid] if !exists { - return nil, fmt.Errorf("user with ID %d is not invited to game ID %d", Uid, Id) + return nil, fmt.Errorf("user with ID %d is not invited to game ID %d", uid, id) } - delete(c.BeInvitedList, Uid) + delete(c.BeInvitedList, uid) for _, GameInfo := range c.Game { if GameInfo.Partner == 0 { - GameInfo.Partner = Uid + GameInfo.Partner = uid GameInfo.Status = GAME_STATUS_IN_PROGRESS return nil, nil } @@ -128,22 +128,22 @@ func (c *CatnipMod) Agree(Id, Uid int) ([]int, error) { } // 同意邀请-指定格子 -func (c *CatnipMod) BeAgree(Id, Uid int) ([]int, error) { - info, exists := c.InviteList[Uid] +func (c *CatnipMod) BeAgree(id, uid int) ([]int, error) { + info, exists := c.InviteList[uid] if !exists { - return nil, fmt.Errorf("user with ID %d is not invited to game ID %d", Uid, Id) + return nil, fmt.Errorf("user with ID %d is not invited to game ID %d", uid, id) } - delete(c.InviteList, Uid) + delete(c.InviteList, uid) GameInfo := c.Game[info.InviteId] if GameInfo.Partner == 0 { - GameInfo.Partner = Uid + GameInfo.Partner = uid GameInfo.Status = GAME_STATUS_IN_PROGRESS return nil, nil } // 目标格子已有伙伴,分配到第一个空闲格 for _, GameInfo := range c.Game { if GameInfo.Partner == 0 { - GameInfo.Partner = Uid + GameInfo.Partner = uid GameInfo.Status = GAME_STATUS_IN_PROGRESS return nil, nil } @@ -152,58 +152,58 @@ func (c *CatnipMod) BeAgree(Id, Uid int) ([]int, error) { } // 删除邀请 -func (c *CatnipMod) DelInvited(Id, Uid int) error { - delete(c.InviteList, Uid) +func (c *CatnipMod) DelInvited(id, uid int) error { + delete(c.InviteList, uid) return nil } // 设置倍数 -func (c *CatnipMod) Multiply(Mul int) error { - c.Mul = Mul +func (c *CatnipMod) Multiply(mul int) error { + c.Mul = mul return nil } // 拒绝邀请 -func (c *CatnipMod) Refuse(Id, Uid int) error { - delete(c.BeInvitedList, Uid) +func (c *CatnipMod) Refuse(id, uid int) error { + delete(c.BeInvitedList, uid) return nil } // 玩游戏 -func (c *CatnipMod) Play(Id int) (int, int, int, []*item.Item, []*item.Item, int, error) { - GameInfo, ok := c.Game[Id] +func (c *CatnipMod) Play(id int) (int, int, int, []*item.Item, []*item.Item, int, error) { + gameInfo, ok := c.Game[id] if !ok { - return 0, 0, 0, nil, nil, 0, fmt.Errorf("game with ID %d does not exist", Id) + return 0, 0, 0, nil, nil, 0, fmt.Errorf("game with ID %d does not exist", id) } - if GameInfo.Status != GAME_STATUS_IN_PROGRESS { - return 0, 0, 0, nil, nil, 0, fmt.Errorf("game with ID %d is not in progress", Id) + if gameInfo.Status != GAME_STATUS_IN_PROGRESS { + return 0, 0, 0, nil, nil, 0, fmt.Errorf("game with ID %d is not in progress", id) } - Id, Items, Growth, FriendItems := catnipCfg.GetJackpotItem(c.Mul) - Growth = Growth * c.Mul - if Growth > 0 { - c.Growth(Id, Growth) + id, items, growth, friendItems := catnipCfg.GetJackpotItem(c.Mul) + growth = growth * c.Mul + if growth > 0 { + c.Growth(id, growth) } ItemCost := catnipCfg.GetItemCost(c.Id, c.Mul) - GameInfo.Progress += Growth - return Id, Growth, GameInfo.Partner, Items, ItemCost, FriendItems, nil + gameInfo.Progress += growth + return id, growth, gameInfo.Partner, items, ItemCost, friendItems, nil } // 领取奖励 -func (c *CatnipMod) Reward(Id int) ([]*item.Item, *CatnipGame, error) { - GameInfo, ok := c.Game[Id] +func (c *CatnipMod) Reward(id int) ([]*item.Item, *CatnipGame, error) { + gameInfo, ok := c.Game[id] if !ok { - return nil, nil, fmt.Errorf("game with Progress %d does not exist", Id) + return nil, nil, fmt.Errorf("game with Progress %d does not exist", id) } - Items, Ids := catnipCfg.GetProgressReward(c.Id, GameInfo.Reward, GameInfo.Progress) - ProgressNum := catnipCfg.GetProgressNum(c.Id) - GameInfo.Reward = append(GameInfo.Reward, Ids...) - if len(GameInfo.Reward) == ProgressNum { - GameInfo.Status = GAME_STATUS_COMPLETED + items, ids := catnipCfg.GetProgressReward(c.Id, gameInfo.Reward, gameInfo.Progress) + progressNum := catnipCfg.GetProgressNum(c.Id) + gameInfo.Reward = append(gameInfo.Reward, ids...) + if len(gameInfo.Reward) == progressNum { + gameInfo.Status = GAME_STATUS_COMPLETED } - if Items == nil { - return nil, nil, fmt.Errorf("no reward found for progress %d in game ID %d", GameInfo.Progress, Id) + if items == nil { + return nil, nil, fmt.Errorf("no reward found for progress %d in game ID %d", gameInfo.Progress, id) } - return Items, GameInfo, nil + return items, gameInfo, nil } // 领取大奖励 @@ -221,26 +221,26 @@ func (c *CatnipMod) GrandReward() ([]*item.Item, error) { } // 进度增加 -func (c *CatnipMod) Growth(Id, Growth int) { - GameInfo, ok := c.Game[Id] +func (c *CatnipMod) Growth(id, growth int) { + gameInfo, ok := c.Game[id] if !ok { return // Game does not exist } - if GameInfo.Status != GAME_STATUS_IN_PROGRESS { + if gameInfo.Status != GAME_STATUS_IN_PROGRESS { return // Game is not in progress } - GameInfo.Progress += Growth - if GameInfo.Progress >= catnipCfg.GetGameMaxProgress(c.Id) { - GameInfo.Status = GAME_STATUS_COMPLETED + gameInfo.Progress += growth + if gameInfo.Progress >= catnipCfg.GetGameMaxProgress(c.Id) { + gameInfo.Status = GAME_STATUS_COMPLETED } } // 伙伴贡献增加 -func (c *CatnipMod) GrowthByUid(Uid, Growth int) { +func (c *CatnipMod) GrowthByUid(uid, growth int) { for _, v := range c.Game { - if v.Partner == Uid { - v.Progress += Growth - v.PartnerAdd += Growth + if v.Partner == uid { + v.Progress += growth + v.PartnerAdd += growth if v.Progress >= catnipCfg.GetGameMaxProgress(c.Id) { v.Status = GAME_STATUS_COMPLETED } @@ -250,10 +250,10 @@ func (c *CatnipMod) GrowthByUid(Uid, Growth int) { } // 设置表情 -func (c *CatnipMod) SetEmoji(Uid, EmojiId int) { +func (c *CatnipMod) SetEmoji(uid, emojiId int) { for _, v := range c.Game { - if v.Partner == Uid { - v.EmojiId = EmojiId + if v.Partner == uid { + v.EmojiId = emojiId return } } @@ -263,24 +263,24 @@ func (c *CatnipMod) GetMultiple() int { return c.Mul } -func (c *CatnipMod) GetGameInfo(Id int) *CatnipGame { - return c.Game[Id] +func (c *CatnipMod) GetGameInfo(id int) *CatnipGame { + return c.Game[id] } -func (c *CatnipMod) SetSendEmoji(Id, EmojiId int) { - c.Game[Id].SendEmoji = EmojiId +func (c *CatnipMod) SetSendEmoji(id, emojiId int) { + c.Game[id].SendEmoji = emojiId } // 获取未领取的奖励 func (c *CatnipMod) GetUnGetReward() []*item.Item { var rewards []*item.Item for _, v := range c.Game { - Items, _, _ := c.Reward(v.Id) - rewards = append(rewards, Items...) + items, _, _ := c.Reward(v.Id) + rewards = append(rewards, items...) } - BigReward, err := c.GrandReward() + bigReward, err := c.GrandReward() if err == nil { - rewards = append(rewards, BigReward...) + rewards = append(rewards, bigReward...) } return rewards } diff --git a/src/server/game/mod/champship/Champship.go b/src/server/game/mod/champship/Champship.go index 91154502..b04c86e1 100644 --- a/src/server/game/mod/champship/Champship.go +++ b/src/server/game/mod/champship/Champship.go @@ -43,12 +43,12 @@ func (c *ChampshipMod) GetRankReward(Rank, yesterdayActivityId int) ([]*item.Ite return champshipCfg.GetRankReward(Rank, yesterdayActivityId), nil } -func (c *ChampshipMod) AddScore(Chess []int) { +func (c *ChampshipMod) AddScore(chess []int) { if !c.isActive() { return } score := 0 - for _, v := range Chess { + for _, v := range chess { Lv := mergeDataCfg.GetLvById(v) ChessScore := champshipCfg.GetChessScore(Lv) score += ChessScore @@ -57,17 +57,17 @@ func (c *ChampshipMod) AddScore(Chess []int) { } func (c *ChampshipMod) GetReward(activityId, orderFactor int) []*item.Item { - Reward, Items := champshipCfg.GetReward(c.Reward, c.Score, activityId, orderFactor) - c.Reward = Reward + reward, items := champshipCfg.GetReward(c.Reward, c.Score, activityId, orderFactor) + c.Reward = reward c.Max = max(c.Max, c.Reward) - return Items + return items } -func (c *ChampshipMod) BackData(MyRank, MyPreRank, todayActivityId, yesterdayActivityId int) *msg.ResChampship { +func (c *ChampshipMod) BackData(myRank, myPreRank, todayActivityId, yesterdayActivityId int) *msg.ResChampship { rankReward := 0 if c.RankReward { rankReward = 2 - } else if MyPreRank > 0 { + } else if myPreRank > 0 { rankReward = 1 } status := 0 @@ -79,7 +79,7 @@ func (c *ChampshipMod) BackData(MyRank, MyPreRank, todayActivityId, yesterdayAct Reward: int32(c.Reward), EndTime: int32(GoUtil.ZeroTimestamp() + 86400), Period: int32(GoUtil.GetServerOpenDay()), - Rank: int32(MyRank), + Rank: int32(myRank), RankReward: int32(rankReward), Status: int32(status), TodayActivityId: int32(todayActivityId), diff --git a/src/server/game/mod/charge/Charge.go b/src/server/game/mod/charge/Charge.go index 876ca8e6..720afc33 100644 --- a/src/server/game/mod/charge/Charge.go +++ b/src/server/game/mod/charge/Charge.go @@ -112,8 +112,8 @@ func (c *ChargeMod) GetMaxCharge() float64 { return c.MaxCharge } -func (c *ChargeMod) Login(LogoutTime int64) { - c.LastWorkTime = min(LogoutTime, c.PetWorkTime) +func (c *ChargeMod) Login(logoutTime int64) { + c.LastWorkTime = min(logoutTime, c.PetWorkTime) c.PetWorkTime -= c.LastWorkTime } @@ -125,147 +125,147 @@ func (c *ChargeMod) resetSpecialChargeIfExpired(now int64) { } // 零点更新 -func (c *ChargeMod) ZeroUpdate(Emit []int) { - Now := GoUtil.Now() - c.resetSpecialChargeIfExpired(Now) +func (c *ChargeMod) ZeroUpdate(emit []int) { + now := GoUtil.Now() + c.resetSpecialChargeIfExpired(now) if GoUtil.IsFirstDayOfMonth() { c.MonthCharge = 0 } c.FreeShop = 0 - SpecialGrade := 1 + specialGrade := 1 c.TodayCharge = 0 c.AdWatch = 0 c.SpecialShop = make(map[int]*SepcialShop) - SpecialShopCount := chargeCfg.GetSpecialShopCount() + specialShopCount := chargeCfg.GetSpecialShopCount() for i := 1; i <= 2; i++ { if c.Total == 0 { - c.SpecialShop[i] = &SepcialShop{Grade: SpecialGrade, Count: 1} + c.SpecialShop[i] = &SepcialShop{Grade: specialGrade, Count: 1} continue } m := c.SpecialCharge M := chargeCfg.GetSpecialShopGrade(m, i) a := min(2, GoUtil.FullWeeksSince(c.LastSpecialCharge)) - SpecialGrade = max(1, M-a) - c.SpecialShop[i] = &SepcialShop{Grade: SpecialGrade, Count: SpecialShopCount} + specialGrade = max(1, M-a) + c.SpecialShop[i] = &SepcialShop{Grade: specialGrade, Count: specialShopCount} } if c.WishList != nil { c.WishList.SendList = nil } - if c.IsWeeklyDiscountDay() && c.WeeklyEndTime < Now { + if c.IsWeeklyDiscountDay() && c.WeeklyEndTime < now { c.WeeklyDiscount = make(map[int]int) c.WeeklyEndTime = GoUtil.ZeroTimestamp() + secondsIn7Days } - c.InitChessShop(Emit) + c.InitChessShop(emit) } // 十二点更新 重置商店 -func (c *ChargeMod) NoonUpdate(Emit []int) { - c.InitChessShop(Emit) +func (c *ChargeMod) NoonUpdate(emit []int) { + c.InitChessShop(emit) } -func (c *ChargeMod) FixBug(Emit []int) { +func (c *ChargeMod) FixBug(emit []int) { if len(c.ChessShop) < 5 { - c.InitChessShop(Emit) + c.InitChessShop(emit) } } // 充值 -func (c *ChargeMod) Fire(ChargeId int) (Item []*item.Item) { - Money := chargeCfg.GetMoneyCharge(ChargeId) - if Money == 0 { +func (c *ChargeMod) Fire(chargeId int) (Item []*item.Item) { + money := chargeCfg.GetMoneyCharge(chargeId) + if money == 0 { return } - c.Charge += Money - c.TodayCharge += Money - c.MonthCharge += Money + c.Charge += money + c.TodayCharge += money + c.MonthCharge += money c.Total++ - Now := GoUtil.Now() + now := GoUtil.Now() if c.FirstCharge == 0 { - c.FirstCharge = Now + c.FirstCharge = now } - c.resetSpecialChargeIfExpired(Now) - c.LastCharge = Now - if Money > c.MaxCharge { - c.MaxCharge = Money + c.resetSpecialChargeIfExpired(now) + c.LastCharge = now + if money > c.MaxCharge { + c.MaxCharge = money } - if Money > c.SpecialCharge { - c.LastSpecialCharge = Now - c.SpecialCharge = Money + if money > c.SpecialCharge { + c.LastSpecialCharge = now + c.SpecialCharge = money } - Item = c.FireDiamondShop(ChargeId) + Item = c.FireDiamondShop(chargeId) if Item != nil { return } - Item = c.FireEnergyShop(ChargeId) + Item = c.FireEnergyShop(chargeId) if Item != nil { return } - Item = c.FireSpecialShop(ChargeId) + Item = c.FireSpecialShop(chargeId) if Item != nil { return } - Item = c.FirePetCoinShop(ChargeId) + Item = c.FirePetCoinShop(chargeId) if Item != nil { return } - Item = c.FireGift(ChargeId) - c.FireAd(ChargeId) + Item = c.FireGift(chargeId) + c.FireAd(chargeId) return } // 钻石商店 -func (c *ChargeMod) FireDiamondShop(ChargeId int) []*item.Item { - return chargeCfg.GetDiamondShopReward(ChargeId) +func (c *ChargeMod) FireDiamondShop(chargeId int) []*item.Item { + return chargeCfg.GetDiamondShopReward(chargeId) } // 宠物币商店 -func (c *ChargeMod) FirePetCoinShop(ChargeId int) []*item.Item { - return chargeCfg.GetPetCoinShopReward(ChargeId) +func (c *ChargeMod) FirePetCoinShop(chargeId int) []*item.Item { + return chargeCfg.GetPetCoinShopReward(chargeId) } // 能量商店 -func (c *ChargeMod) FireEnergyShop(ChargeId int) []*item.Item { - id := chargeCfg.GetEnergyShopId(ChargeId) +func (c *ChargeMod) FireEnergyShop(chargeId int) []*item.Item { + id := chargeCfg.GetEnergyShopId(chargeId) _, ok := c.EnergyShop[id] c.EnergyShop[id] = struct{}{} - return chargeCfg.GetEnergyShopReward(ChargeId, ok) + return chargeCfg.GetEnergyShopReward(chargeId, ok) } // 特惠礼包 -func (c *ChargeMod) FireSpecialShop(ChargeId int) []*item.Item { - Type := chargeCfg.GetSpecialShopType(ChargeId) - if _, ok := c.SpecialShop[Type]; !ok { +func (c *ChargeMod) FireSpecialShop(chargeId int) []*item.Item { + cType := chargeCfg.GetSpecialShopType(chargeId) + if _, ok := c.SpecialShop[cType]; !ok { return nil } - if c.SpecialShop[Type].Count < 1 { - log.Debug("special shop recharge max, type: %d, charge id: %d", Type, ChargeId) + if c.SpecialShop[cType].Count < 1 { + log.Debug("special shop recharge max, type: %d, charge id: %d", cType, chargeId) return nil } - c.SpecialShop[Type].Count-- - return chargeCfg.GetSpecialShopReward(ChargeId) + c.SpecialShop[cType].Count-- + return chargeCfg.GetSpecialShopReward(chargeId) } // 通用礼包 -func (c *ChargeMod) FireGift(ChargeId int) []*item.Item { - Limit := chargeCfg.GetGiftLimit(ChargeId) - if Limit == 0 { +func (c *ChargeMod) FireGift(chargeId int) []*item.Item { + limit := chargeCfg.GetGiftLimit(chargeId) + if limit == 0 { return nil } - Id := chargeCfg.GetGiftId(ChargeId) + id := chargeCfg.GetGiftId(chargeId) - if v, ok := c.Gift[Id]; ok { - if v >= Limit { + if v, ok := c.Gift[id]; ok { + if v >= limit { return nil } } - c.Gift[Id]++ - return chargeCfg.GetGiftReward(ChargeId) + c.Gift[id]++ + return chargeCfg.GetGiftReward(chargeId) } // 免广告礼包 -func (c *ChargeMod) FireAd(ChargeId int) []*item.Item { - AdChargeId := chargeCfg.GetAdChargeId() - if ChargeId != AdChargeId { +func (c *ChargeMod) FireAd(chargeId int) []*item.Item { + adChargeId := chargeCfg.GetAdChargeId() + if chargeId != adChargeId { return nil } c.Ad = true @@ -273,30 +273,30 @@ func (c *ChargeMod) FireAd(ChargeId int) []*item.Item { } // 免广告礼包 -func (c *ChargeMod) FireAdReward(ChargeId int) []*item.Item { - Items, PetWorkDay := chargeCfg.GetADReward(ChargeId) - if PetWorkDay != 0 { - Now := GoUtil.Now() - if c.AdEndTime < Now { - c.AdEndTime = Now + int64(PetWorkDay*secondsIn1Day) +func (c *ChargeMod) FireAdReward(chargeId int) []*item.Item { + items, petWorkDay := chargeCfg.GetADReward(chargeId) + if petWorkDay != 0 { + now := GoUtil.Now() + if c.AdEndTime < now { + c.AdEndTime = now + int64(petWorkDay*secondsIn1Day) } else { - c.AdEndTime += int64(PetWorkDay * secondsIn1Day) + c.AdEndTime += int64(petWorkDay * secondsIn1Day) } - c.PetWorkTime += int64(PetWorkDay * secondsIn1Day) + c.PetWorkTime += int64(petWorkDay * secondsIn1Day) c.Ad = true } - return Items + return items } -func (c *ChargeMod) AddAdTime(PetWorkDay int) { - if PetWorkDay > 0 { - Now := GoUtil.Now() - if c.AdEndTime < Now { - c.AdEndTime = Now + int64(PetWorkDay*secondsIn1Day) +func (c *ChargeMod) AddAdTime(petWorkDay int) { + if petWorkDay > 0 { + now := GoUtil.Now() + if c.AdEndTime < now { + c.AdEndTime = now + int64(petWorkDay*secondsIn1Day) } else { - c.AdEndTime += int64(PetWorkDay * secondsIn1Day) + c.AdEndTime += int64(petWorkDay * secondsIn1Day) } - c.PetWorkTime += int64(PetWorkDay * secondsIn1Day) + c.PetWorkTime += int64(petWorkDay * secondsIn1Day) c.Ad = true } } @@ -323,53 +323,51 @@ func (c *ChargeMod) InitChessShop(Emit []int) { return } c.ChessShop = make(map[int]*ChessShop) - //ColorList := make([]string, 0) - RandList := make([]*Rand, 0) - + randList := make([]*Rand, 0) for _, v := range Emit { - ProduceList := mergeDataCfg.GetEmitProduceType(v) - for _, p := range ProduceList { - ChessList := order.GetChessByDiff(v, 1, order.DIFF_MID, p) - if len(ChessList) == 1 { - ChessList = append(ChessList, ChessList[0]-1) + produceList := mergeDataCfg.GetEmitProduceType(v) + for _, p := range produceList { + chessList := order.GetChessByDiff(v, 1, order.DIFF_MID, p) + if len(chessList) == 1 { + chessList = append(chessList, chessList[0]-1) } - for _, c := range ChessList { + for _, c := range chessList { if c == 0 { continue } - ChessLv := mergeDataCfg.GetLvById(c) - DynamicLv := mergeDataCfg.GetAdjust(v, p, 0) - ChessLv += DynamicLv - Diamond := math.Round(math.Pow(2, float64(ChessLv-1)) / 5) - Diamond = max(1, Diamond) - RandList = append(RandList, &Rand{ChessId: c, Diamond: int(Diamond)}) + chessLv := mergeDataCfg.GetLvById(c) + dynamicLv := mergeDataCfg.GetAdjust(v, p, 0) + chessLv += dynamicLv + diamond := math.Round(math.Pow(2, float64(chessLv-1)) / 5) + diamond = max(1, diamond) + randList = append(randList, &Rand{ChessId: c, Diamond: int(diamond)}) } } } - randList := make([]interface{}, len(RandList)) - for k, v := range RandList { - randList[k] = v + randList2 := make([]interface{}, len(randList)) + for k, v := range randList { + randList2[k] = v } - L := GoUtil.RandSliceNum2(randList, 5) - for k, v := range L { - Diamond := v.(*Rand).Diamond - ChessId := v.(*Rand).ChessId - if ChessId == 0 { + newList := GoUtil.RandSliceNum2(randList2, 5) + for k, v := range newList { + diamond := v.(*Rand).Diamond + chessId := v.(*Rand).ChessId + if chessId == 0 { continue } - c.ChessShop[k+1] = &ChessShop{Diamond: Diamond, Count: 5, Id: ChessId} + c.ChessShop[k+1] = &ChessShop{Diamond: diamond, Count: 5, Id: chessId} } } // 购买能量 -func (c *ChargeMod) BuyEnergy(IsWeeklyDiscount bool) ([]*item.Item, []*item.Item, int) { +func (c *ChargeMod) BuyEnergy(isWeeklyDiscount bool) ([]*item.Item, []*item.Item, int) { diamond := 40 - if IsWeeklyDiscount { - LimitNum := c.WeeklyDiscount[0] - Discount, WeeklyLimit := chargeCfg.GetWeeklyInfo(0) - if LimitNum < WeeklyLimit { - diamond = int(math.Ceil(float64(diamond) * float64(Discount) / 100.0)) - c.WeeklyDiscount[0] = LimitNum + 1 + if isWeeklyDiscount { + limitNum := c.WeeklyDiscount[0] + discount, weeklyLimit := chargeCfg.GetWeeklyInfo(0) + if limitNum < weeklyLimit { + diamond = int(math.Ceil(float64(diamond) * float64(discount) / 100.0)) + c.WeeklyDiscount[0] = limitNum + 1 } } return []*item.Item{ @@ -381,27 +379,27 @@ func (c *ChargeMod) BuyEnergy(IsWeeklyDiscount bool) ([]*item.Item, []*item.Item } // 购买棋子 -func (c *ChargeMod) BuyChess(Chess int, IsWeeklyDiscount bool) ([]*item.Item, []*item.Item, int, error) { - v, ok := c.ChessShop[Chess] +func (c *ChargeMod) BuyChess(chess int, isWeeklyDiscount bool) ([]*item.Item, []*item.Item, int, error) { + v, ok := c.ChessShop[chess] if !ok { - return nil, nil, 0, fmt.Errorf("BuyChess chess id not exist id:%d", Chess) + return nil, nil, 0, fmt.Errorf("BuyChess chess id not exist id:%d", chess) } if v.Count <= 0 { - return nil, nil, 0, fmt.Errorf("BuyChess chess count less zero id:%d", Chess) + return nil, nil, 0, fmt.Errorf("BuyChess chess count less zero id:%d", chess) } v.Count-- diamond := v.Diamond - if IsWeeklyDiscount { - LimitNum := c.WeeklyDiscount[Chess] - Discount, WeeklyLimit := chargeCfg.GetWeeklyInfo(Chess) - if LimitNum < WeeklyLimit { - diamond = int(math.Ceil(float64(diamond) * float64(Discount) / 100)) + if isWeeklyDiscount { + limitNum := c.WeeklyDiscount[chess] + discount, weeklyLimit := chargeCfg.GetWeeklyInfo(chess) + if limitNum < weeklyLimit { + diamond = int(math.Ceil(float64(diamond) * float64(discount) / 100)) if diamond == v.Diamond { diamond -= 1 } diamond = max(1, diamond) - c.WeeklyDiscount[Chess] = LimitNum + 1 + c.WeeklyDiscount[chess] = limitNum + 1 } } return []*item.Item{ @@ -412,30 +410,30 @@ func (c *ChargeMod) BuyChess(Chess int, IsWeeklyDiscount bool) ([]*item.Item, [] } // 棋子商店解锁 -func (c *ChargeMod) TriggerChargeUnlock(Lv int, Emit []int) { - c.InitChessShop(Emit) +func (c *ChargeMod) TriggerChargeUnlock(lv int, emit []int) { + c.InitChessShop(emit) } // 添加心愿单 -func (c *ChargeMod) AddWish(Id, Type int) ([]*item.Item, error) { - ItemId := 0 - switch Type { +func (c *ChargeMod) AddWish(id, wType int) ([]*item.Item, error) { + itemId := 0 + switch wType { case PLAYROOM_SHOP: - ItemId, _, _, _ = playroomCfg.GetShopItem(Id) + itemId, _, _, _ = playroomCfg.GetShopItem(id) } - if ItemId == 0 { - return nil, fmt.Errorf("AddWish itemid not exist id:%d", Id) + if itemId == 0 { + return nil, fmt.Errorf("AddWish itemid not exist id:%d", id) } - var Items []*item.Item + var items []*item.Item if c.WishList.ItemId != 0 { - if c.WishList.ItemId == ItemId { - return nil, fmt.Errorf("AddWish itemid already exist id:%d", Id) + if c.WishList.ItemId == itemId { + return nil, fmt.Errorf("AddWish itemid already exist id:%d", id) } - Items = append(Items, item.NewItem(item.ITEM_ENERGY_ID, c.WishList.Count)) + items = append(items, item.NewItem(item.ITEM_ENERGY_ID, c.WishList.Count)) c.WishList.Count = 0 } - c.WishList.ItemId = ItemId - return Items, nil + c.WishList.ItemId = itemId + return items, nil } // 获取心愿单奖励 @@ -443,8 +441,8 @@ func (c *ChargeMod) GetWish() ([]*item.Item, error) { if c.WishList.ItemId == 0 { return nil, fmt.Errorf("AddWishCount itemid not exist") } - Max := chargeCfg.GetWishCount(c.WishList.ItemId) - if c.WishList.Count < Max { + max := chargeCfg.GetWishCount(c.WishList.ItemId) + if c.WishList.Count < max { return nil, fmt.Errorf("AddWishCount count max") } rewardItemId := c.WishList.ItemId @@ -469,8 +467,8 @@ func (c *ChargeMod) AddWishCount() { if c.WishList.ItemId == 0 { return } - Max := chargeCfg.GetWishCount(c.WishList.ItemId) - if c.WishList.Count >= Max { + max := chargeCfg.GetWishCount(c.WishList.ItemId) + if c.WishList.Count >= max { return } c.WishList.Count++ @@ -478,12 +476,12 @@ func (c *ChargeMod) AddWishCount() { // 是否在每周折扣日 func (c *ChargeMod) IsWeeklyDiscountDay() bool { - Day := chargeCfg.GetWeeklyDiscountDay() - if Day == -1 { + day := chargeCfg.GetWeeklyDiscountDay() + if day == -1 { return false } Weekday, _ := GoUtil.GetWeekdayAndHour() - return Weekday == Day || c.WeeklyEndTime > GoUtil.Now() + return Weekday == day || c.WeeklyEndTime > GoUtil.Now() } // 重置每周折扣 diff --git a/src/server/game/mod/charge/charge_func.go b/src/server/game/mod/charge/charge_func.go index e0f552f9..c324d9f0 100644 --- a/src/server/game/mod/charge/charge_func.go +++ b/src/server/game/mod/charge/charge_func.go @@ -5,12 +5,12 @@ import ( ) // 弃用 -func GetChessDiamond(Lv, Type int) int { +func GetChessDiamond(lv, cType int) int { Diamond := 0.0 - if Type == 1 { - Diamond = 0.27 * math.Exp(float64(Lv)*0.56) + if cType == 1 { + Diamond = 0.27 * math.Exp(float64(lv)*0.56) } else { - Diamond = 2.64 * math.Pow(float64(Lv), 2.43) + Diamond = 2.64 * math.Pow(float64(lv), 2.43) } d := int(Diamond) if d > 10 { diff --git a/src/server/game/mod/chess/Chess.go b/src/server/game/mod/chess/Chess.go index c2fd7d3e..7dc97773 100644 --- a/src/server/game/mod/chess/Chess.go +++ b/src/server/game/mod/chess/Chess.go @@ -110,8 +110,8 @@ func (cb *ChessBorad) ver() { } if cb.ChessBag.List == nil { cb.ChessBag.List = make(map[int]ChessBagGrid) - InitNum := mergeDataCfg.GetChessBagInitNum() - for i := 1; i <= InitNum; i++ { + initNum := mergeDataCfg.GetChessBagInitNum() + for i := 1; i <= initNum; i++ { cb.ChessBag.List[i] = ChessBagGrid{} } } @@ -562,18 +562,18 @@ func (cb *ChessBorad) PutPartInBag(chessId int) error { if err != nil { return err } - ChessLv := mergeDataCfg.GetLvById(chessId) - ChessMaxLv := mergeDataCfg.GetMaxLvById(chessId) - if ChessLv != ChessMaxLv { // 零件只能放入满级棋子 + chessLv := mergeDataCfg.GetLvById(chessId) + chessMaxLv := mergeDataCfg.GetMaxLvById(chessId) + if chessLv != chessMaxLv { // 零件只能放入满级棋子 return errors.New("part Lv is not max") } if cb.PartBag.List == nil { cb.PartBag.List = make(map[int]PartBagGrid) } - Num := cb.PartBag.List[chessId].Num + num := cb.PartBag.List[chessId].Num cb.PartBag.List[chessId] = PartBagGrid{ PartId: chessId, - Num: Num + 1, + Num: num + 1, } return nil } @@ -585,15 +585,15 @@ func (cb *ChessBorad) TakeChessOutBag(grid int) (int, error) { cb.AddChess(-grid) return 0, nil } - GridInfo, ok := cb.ChessBag.List[grid] + gridInfo, ok := cb.ChessBag.List[grid] if !ok { return 0, errors.New("ChessBag Grid unlock") } - if GridInfo.ChessId == 0 { + if gridInfo.ChessId == 0 { return 0, errors.New("ChessBag Grid is empty") } cb.ChessBag.List[grid] = ChessBagGrid{} - return GridInfo.ChessId, cb.AddChess(GridInfo.ChessId) + return gridInfo.ChessId, cb.AddChess(gridInfo.ChessId) } func (cb *ChessBorad) GetOrderEmit() []int { @@ -652,11 +652,11 @@ func (cb *ChessBorad) RetireOrder(emitType string) error { return errors.New("chess has not been retired") } chess := make([]int, 0, len(cb.ChessMap)) - EmitProduct := mergeDataCfg.GetEmitOrderProduce(emitType) + emitProduct := mergeDataCfg.GetEmitOrderProduce(emitType) for k, v := range cb.ChessMap { arr := strings.Split(k, "@") - Color := mergeDataCfg.GetColorById(int(v)) - if arr[2] == "0" && GoUtil.InStringArray(Color, EmitProduct) { + color := mergeDataCfg.GetColorById(int(v)) + if arr[2] == "0" && GoUtil.InStringArray(color, emitProduct) { chess = append(chess, int(v)) } } diff --git a/src/server/game/mod/compensation/compensation.go b/src/server/game/mod/compensation/compensation.go index 45f55548..de52852a 100644 --- a/src/server/game/mod/compensation/compensation.go +++ b/src/server/game/mod/compensation/compensation.go @@ -21,12 +21,12 @@ func (c *Compensation) Set20250910() { c.C20250910 = true } -func (c *Compensation) Compensation20250910(UserName string) []*item.Item { +func (c *Compensation) Compensation20250910(userName string) []*item.Item { c.Set20250910() // 获取补偿物品 items := make([]*item.Item, 0, len(Compensation20250910_UserList)) for i := 1; i <= len(Compensation20250910_UserList); i++ { - if GoUtil.InStringArray(UserName, Compensation20250910_UserList[i]) { + if GoUtil.InStringArray(userName, Compensation20250910_UserList[i]) { return Compensation20250910_Mail_Item[i] } } diff --git a/src/server/game/mod/daily_task/DailyFunc.go b/src/server/game/mod/daily_task/DailyFunc.go index 55eb6092..34d68644 100644 --- a/src/server/game/mod/daily_task/DailyFunc.go +++ b/src/server/game/mod/daily_task/DailyFunc.go @@ -8,12 +8,11 @@ import ( "sort" ) -func getTaskReward(Id, AreaId, activityId int) []*item.Item { - - switch Id { +func getTaskReward(id, areaId, activityId int) []*item.Item { + switch id { case 2: - StarNum := int(50 * math.Pow(1.04, float64(AreaId))) - return []*item.Item{{Id: item.ITEM_STAR_ID, Num: StarNum}} + starNum := int(50 * math.Pow(1.04, float64(areaId))) + return []*item.Item{{Id: item.ITEM_STAR_ID, Num: starNum}} case 3: return []*item.Item{{Id: item.ITEM_ENERGY_ID, Num: 10}} default: // case 1 及其他 @@ -24,16 +23,16 @@ func getTaskReward(Id, AreaId, activityId int) []*item.Item { // randJackpot 随机选取 num 个奖池项,约束:不允许连续两个 is_card=1 的项相邻。 // 最多尝试 100 次,超时则返回最后一次结果。 func randJackpot(jackpot map[int]dailyTaskCfg.Jackpot, num int) map[int][]*item.Item { - Ids := GoUtil.GetMapKey(jackpot) + ids := GoUtil.GetMapKey(jackpot) var lastIds1 []int for t := 0; t <= 100; t++ { - Ids1 := GoUtil.RandSliceNum(Ids, num) - sort.Ints(Ids1) - lastIds1 = Ids1 + ids1 := GoUtil.RandSliceNum(ids, num) + sort.Ints(ids1) + lastIds1 = ids1 prevIsCard := 0 valid := true cardCount := 0 - for _, k := range Ids1 { + for _, k := range ids1 { curIsCard := jackpot[k].Is_card if prevIsCard == 1 && curIsCard == 1 { valid = false @@ -49,7 +48,7 @@ func randJackpot(jackpot map[int]dailyTaskCfg.Jackpot, num int) map[int][]*item. } if valid { r := make(map[int][]*item.Item, num) - for _, k := range Ids1 { + for _, k := range ids1 { r[k] = jackpot[k].Items } return r diff --git a/src/server/game/mod/decorate/Decorate.go b/src/server/game/mod/decorate/Decorate.go index e7eead07..b5bfac39 100644 --- a/src/server/game/mod/decorate/Decorate.go +++ b/src/server/game/mod/decorate/Decorate.go @@ -65,16 +65,16 @@ func (d *Decorate) Decorate(areaId int, decorateId int) ([]*item.Item, error) { if _, ok := d.FinishList[decorateId]; ok { return nil, fmt.Errorf("decorateId already finished") } - SortList := decorateCfg.GetAllSortIdByAreaId(areaId) - if !GoUtil.InArray(decorateId, SortList) { + sortList := decorateCfg.GetAllSortIdByAreaId(areaId) + if !GoUtil.InArray(decorateId, sortList) { return nil, fmt.Errorf("decorateId not in areaId") } d.FinishList[decorateId] = struct{}{} d.Progress++ - Item := decorateCfg.GetProgressReward(areaId, d.Progress) - Item1 := decorateCfg.GetDecoarteReward(areaId, decorateId) - Item = append(Item, Item1...) - if d.Progress >= len(SortList) { + items := decorateCfg.GetProgressReward(areaId, d.Progress) + items1 := decorateCfg.GetDecoarteReward(areaId, decorateId) + items = append(items, items1...) + if d.Progress >= len(sortList) { d.AreaId++ d.Progress = 0 d.FinishList = make(map[int]struct{}) @@ -82,31 +82,31 @@ func (d *Decorate) Decorate(areaId int, decorateId int) ([]*item.Item, error) { } d.DecorateNum++ - return Item, nil + return items, nil } // 获取装饰增加体力 func (d *Decorate) GetDecorateAddEnergy(cnt int) []*item.Item { - EnergyNum := decorateCfg.GetDecorateAddEnergy() - return []*item.Item{item.NewItem(item.ITEM_ENERGY_ID, EnergyNum*cnt)} + energyNum := decorateCfg.GetDecorateAddEnergy() + return []*item.Item{item.NewItem(item.ITEM_ENERGY_ID, energyNum*cnt)} } // 获取装饰消耗 -func (d *Decorate) GetDecorateCostItem(AreaId, DecorateId int, DecorateOffIsExist bool) ([]*item.Item, int, []*item.Item) { - Item := decorateCfg.GetStarCost(AreaId, DecorateId) - PetExp := decorateCfg.GetDecoratePExp(AreaId, DecorateId) - Id := decorateCfg.GetIdBySenceAndLv(AreaId, DecorateId) - if DecorateOffIsExist { - OffRate := limitedTimeEventCfg.GetDecorateOffDiscount(AreaId, DecorateId) - Item = int(math.Ceil(float64(Item) * float64(OffRate))) +func (d *Decorate) GetDecorateCostItem(areaId, decorateId int, decorateOffIsExist bool) ([]*item.Item, int, []*item.Item) { + itemNum := decorateCfg.GetStarCost(areaId, decorateId) + petExp := decorateCfg.GetDecoratePExp(areaId, decorateId) + id := decorateCfg.GetIdBySenceAndLv(areaId, decorateId) + if decorateOffIsExist { + offRate := limitedTimeEventCfg.GetDecorateOffDiscount(areaId, decorateId) + itemNum = int(math.Ceil(float64(itemNum) * float64(offRate))) } - Items := []*item.Item{item.NewItem(item.ITEM_STAR_ID, Item)} - PartItem := d.PartCost[Id] - PartItemList := make([]*item.Item, 0) - if PartItem != nil { - Items = append(Items, PartItem.Items...) - PartItemList = PartItem.Items - delete(d.PartCost, Id) + items := []*item.Item{item.NewItem(item.ITEM_STAR_ID, itemNum)} + partCostInfo := d.PartCost[id] + partItems := make([]*item.Item, 0) + if partCostInfo != nil { + items = append(items, partCostInfo.Items...) + partItems = partCostInfo.Items + delete(d.PartCost, id) } // 清理旧区域零件;若当前区域全部消耗完则预加载下一区域 for k := range d.PartCost { @@ -117,17 +117,17 @@ func (d *Decorate) GetDecorateCostItem(AreaId, DecorateId int, DecorateOffIsExis if len(d.PartCost) == 0 { d.initPartCost(d.AreaId + 1) } - return Items, PetExp, PartItemList + return items, petExp, partItems } func (d *Decorate) GetNextNeedStar() int { - DecorateAll := decorateCfg.GetAllSortIdByAreaId(d.AreaId) - SubAlice := GoUtil.SubSlices(DecorateAll, GoUtil.MapIntToIntSlice(d.FinishList)) + decorateAll := decorateCfg.GetAllSortIdByAreaId(d.AreaId) + subAlice := GoUtil.SubSlices(decorateAll, GoUtil.MapIntToIntSlice(d.FinishList)) orderFactor := orderCfg.GetOrderFactor(d.GetAreaId()) - sort.Ints(SubAlice) - if len(SubAlice) > 0 { - NeedStar := decorateCfg.GetStarCost(d.AreaId, SubAlice[0]) - return (NeedStar*orderFactor)/1000 + NeedStar + sort.Ints(subAlice) + if len(subAlice) > 0 { + needStar := decorateCfg.GetStarCost(d.AreaId, subAlice[0]) + return (needStar*orderFactor)/1000 + needStar } return 0 } @@ -137,73 +137,73 @@ func (d *Decorate) GetAreaCost() int { } // 一键装饰 -func (d *Decorate) DecorateAll(Star int, DecorateOffIsExist bool) ([]*item.Item, []*item.Item, int, []int, []interface{}, int) { - DecorateAll := decorateCfg.GetAllSortIdByAreaId(d.AreaId) - SubAlice := GoUtil.SubSlices(DecorateAll, GoUtil.MapIntToIntSlice(d.FinishList)) - sort.Ints(SubAlice) - SubItem := 0 - SubItems := make([]*item.Item, 0) - AddItem := make([]*item.Item, 0) - DecorateList := make([]int, 0) - Log := make([]interface{}, 0) - Num := 0 - PetExp := 0 - for _, v := range SubAlice { - Id := decorateCfg.GetIdBySenceAndLv(d.AreaId, v) - PartItem := d.PartCost[Id] - if PartItem != nil { +func (d *Decorate) DecorateAll(star int, decorateOffIsExist bool) ([]*item.Item, []*item.Item, int, []int, []interface{}, int) { + decorateAll := decorateCfg.GetAllSortIdByAreaId(d.AreaId) + subAlice := GoUtil.SubSlices(decorateAll, GoUtil.MapIntToIntSlice(d.FinishList)) + sort.Ints(subAlice) + subItem := 0 + subItems := make([]*item.Item, 0) + addItem := make([]*item.Item, 0) + decorateList := make([]int, 0) + logList := make([]interface{}, 0) + num := 0 + petExp := 0 + for _, v := range subAlice { + id := decorateCfg.GetIdBySenceAndLv(d.AreaId, v) + partItem := d.PartCost[id] + if partItem != nil { break } - NeedStar := decorateCfg.GetStarCost(d.AreaId, v) - if DecorateOffIsExist { - OffRate := limitedTimeEventCfg.GetDecorateOffDiscount(d.AreaId, v) - NeedStar = int(math.Ceil(float64(NeedStar) * float64(OffRate))) + needStar := decorateCfg.GetStarCost(d.AreaId, v) + if decorateOffIsExist { + offRate := limitedTimeEventCfg.GetDecorateOffDiscount(d.AreaId, v) + needStar = int(math.Ceil(float64(needStar) * float64(offRate))) } - if Star < NeedStar { + if star < needStar { break } - Star -= NeedStar - SubItem += NeedStar + star -= needStar + subItem += needStar d.FinishList[v] = struct{}{} d.Progress++ d.DecorateNum++ - Num++ - Item := decorateCfg.GetProgressReward(d.AreaId, d.Progress) - Item = append(Item, decorateCfg.GetDecoarteReward(d.AreaId, v)...) - if len(Item) > 0 { - if d.Progress >= len(DecorateAll) { - Log = append(Log, map[string]interface{}{ + num++ + items := decorateCfg.GetProgressReward(d.AreaId, d.Progress) + items = append(items, decorateCfg.GetDecoarteReward(d.AreaId, v)...) + if len(items) > 0 { + if d.Progress >= len(decorateAll) { + logList = append(logList, map[string]interface{}{ "deco_step_id": fmt.Sprintf("%d_%d", d.AreaId+1, 0), - "item_list": Item, + "item_list": items, }) } else { - Log = append(Log, map[string]interface{}{ + logList = append(logList, map[string]interface{}{ "deco_step_id": fmt.Sprintf("%d_%d", d.AreaId, d.Progress), - "item_list": Item, + "item_list": items, }) } } - PetExp += decorateCfg.GetDecoratePExp(d.AreaId, v) - AddItem = append(AddItem, Item...) - DecorateList = append(DecorateList, v) + petExp += decorateCfg.GetDecoratePExp(d.AreaId, v) + addItem = append(addItem, items...) + decorateList = append(decorateList, v) } - if d.Progress >= len(DecorateAll) { + if d.Progress >= len(decorateAll) { d.AreaId++ d.Progress = 0 d.FinishList = make(map[int]struct{}) d.prunePartCost() } - SubItems = append(SubItems, item.NewItem(item.ITEM_STAR_ID, SubItem)) - return SubItems, AddItem, Num, DecorateList, Log, PetExp + subItems = append(subItems, item.NewItem(item.ITEM_STAR_ID, subItem)) + return subItems, addItem, num, decorateList, logList, petExp } // 获取装饰信息 func (d *Decorate) BackData() *msg.ResDecorateInfo { - var PartRes []*msg.DecoratePart + var partRes []*msg.DecoratePart for k, v := range d.PartCost { - PartRes = append(PartRes, &msg.DecoratePart{ + partRes = append(partRes, &msg.DecoratePart{ Id: int32(k), Items: item.ItemToMsg(v.Items), }) @@ -212,7 +212,7 @@ func (d *Decorate) BackData() *msg.ResDecorateInfo { AreaId: int32(d.AreaId), MFinishList: GoUtil.MapIntToSlice(d.FinishList), RewardArea: GoUtil.IntToInt32(d.AreaReward), - Parts: PartRes, + Parts: partRes, } } @@ -238,49 +238,49 @@ func (d *Decorate) GetDecorateNum() int { } // 获取零件 -func (d *Decorate) GetPart(Num int) map[int]int { +func (d *Decorate) GetPart(num int) map[int]int { d.initPartPool() res := make(map[int]int) - ClassNum := min(Num, 3) - ClassList := d.GetPartClass(ClassNum) - NewClassList := d.sortClass(ClassList) - for i := range Num { - Class := NewClassList[i%ClassNum] - d.PartPool[Class]-- - res[Class]++ + classNum := min(num, 3) + classList := d.GetPartClass(classNum) + newClassList := d.sortClass(classList) + for i := range num { + class := newClassList[i%classNum] + d.PartPool[class]-- + res[class]++ } return res } -func (d *Decorate) sortClass(Class []int) []int { +func (d *Decorate) sortClass(class []int) []int { d.initPartPool() type sortItem struct { Id int Num int } - sortList := make([]sortItem, len(Class)) - for i, v := range Class { + sortList := make([]sortItem, len(class)) + for i, v := range class { sortList[i] = sortItem{Id: v, Num: d.PartPool[v]} } sort.Slice(sortList, func(i, j int) bool { return sortList[i].Num > sortList[j].Num }) - res := make([]int, len(Class)) + res := make([]int, len(class)) for i, v := range sortList { res[i] = v.Id } return res } -func (d *Decorate) GetPartClass(Num int) []int { - res := make([]int, 0, Num) - for range Num { +func (d *Decorate) GetPartClass(num int) []int { + res := make([]int, 0, num) + for i := 0; i < num; i++ { if len(d.PartClassPool) == 0 { d.initPartClassPool() } - Id, newPool := GoUtil.PopSlice(d.PartClassPool) + id, newPool := GoUtil.PopSlice(d.PartClassPool) d.PartClassPool = newPool - res = append(res, Id) + res = append(res, id) } return res } @@ -288,35 +288,35 @@ func (d *Decorate) GetPartClass(Num int) []int { // 初始化零件类别池,优先保证每个类别至少出现一次 func (d *Decorate) initPartClassPool() { if len(d.PartClassPool) == 0 { - ClassList := decorateCfg.GetAllPartId() - r1 := GoUtil.SubSlices(ClassList, d.LastPart) + classList := decorateCfg.GetAllPartId() + r1 := GoUtil.SubSlices(classList, d.LastPart) c1 := GoUtil.RandSlice(r1) - r2 := GoUtil.SubSlices(ClassList, []int{c1}) + r2 := GoUtil.SubSlices(classList, []int{c1}) r3 := GoUtil.ShuffleArray(r2) d.PartClassPool = append([]int{c1}, r3...) } } func (d *Decorate) initPartPool() { - IsEmpty := true + isEmpty := true for _, v := range d.PartPool { if v > 0 { - IsEmpty = false + isEmpty = false break } } - if IsEmpty { - PartList := decorateCfg.GetAllPartId() - for _, v := range PartList { + if isEmpty { + partList := decorateCfg.GetAllPartId() + for _, v := range partList { d.PartPool[v] = 7 } } } // 初始化零件消耗,预加载当前区域和下一区域的零件消耗,减少玩家装饰时的卡顿感 -func (d *Decorate) initPartCost(AreaId int) { - AllPartList := decorateCfg.GetPartNumByAreaId(AreaId) - for k, v := range AllPartList { +func (d *Decorate) initPartCost(areaId int) { + allPartList := decorateCfg.GetPartNumByAreaId(areaId) + for k, v := range allPartList { // 初始零件消耗写死 if k == 33 { d.PartCost[k] = &PartCostInfo{ @@ -336,13 +336,13 @@ func (d *Decorate) initPartCost(AreaId int) { } continue } - PartList := d.GetPart(v) - Items := make([]*item.Item, 0) - for k1, v1 := range PartList { - Items = append(Items, item.NewItem(k1, v1)) + partList := d.GetPart(v) + items := make([]*item.Item, 0) + for k1, v1 := range partList { + items = append(items, item.NewItem(k1, v1)) } d.PartCost[k] = &PartCostInfo{ - Items: Items, + Items: items, } } } diff --git a/src/server/game/mod/emoji/emoji.go b/src/server/game/mod/emoji/emoji.go index 9aa73243..f55a1669 100644 --- a/src/server/game/mod/emoji/emoji.go +++ b/src/server/game/mod/emoji/emoji.go @@ -45,31 +45,31 @@ func (e *EmojiMod) GetEmojiNum() int { } // 设置表情,Id为0表示清空该类型表情 -func (e *EmojiMod) SetEmoji(Id, Type int) error { - if Id == 0 { - e.Set[Type] = Id +func (e *EmojiMod) SetEmoji(id, eType int) error { + if id == 0 { + e.Set[eType] = id return nil } - if _, ok := e.List[Id]; !ok { + if _, ok := e.List[id]; !ok { return fmt.Errorf("emoji id not exist") } - e.Set[Type] = Id + e.Set[eType] = id return nil } // 解锁表情,Time为解锁时长,单位为秒 -func (e *EmojiMod) Unlock(Id, Time int) error { - v, ok := e.List[Id] +func (e *EmojiMod) Unlock(id, time int) error { + v, ok := e.List[id] if ok { if v.Ts == 0 { return nil } - v.Ts += int64(Time) + v.Ts += int64(time) return nil } now := GoUtil.Now() - e.List[Id] = &Emoji{ - Ts: now + int64(Time), + e.List[id] = &Emoji{ + Ts: now + int64(time), AddTime: now, } return nil diff --git a/src/server/game/mod/endless/Endless.go b/src/server/game/mod/endless/Endless.go index 994e3a89..7fcbd28a 100644 --- a/src/server/game/mod/endless/Endless.go +++ b/src/server/game/mod/endless/Endless.go @@ -35,19 +35,19 @@ func (e *EndlessMod) InitData() { } // 零点更新 重置礼包 -func (e *EndlessMod) ZeroUpdate(MaxMoney float64, Lv int) { +func (e *EndlessMod) ZeroUpdate(maxMoney float64, lv int) { e.List = make(map[int]*Endless) e.Auto = 1 - FirstMoney := 0.0 - if MaxMoney > 0 { - m := MaxMoney / 10 - GradeList := []float64{1.99, 3.99, 5.99, 7.99, 9.99} + firstMoney := 0.0 + if maxMoney > 0 { + m := maxMoney / 10 + gradeList := []float64{1.99, 3.99, 5.99, 7.99, 9.99} type duch struct { Grade float64 Num float64 } - duchList := make([]duch, 0, len(GradeList)) - for _, v := range GradeList { + duchList := make([]duch, 0, len(gradeList)) + for _, v := range gradeList { duchList = append(duchList, duch{ Grade: v, Num: math.Abs(v - m), @@ -57,23 +57,23 @@ func (e *EndlessMod) ZeroUpdate(MaxMoney float64, Lv int) { sort.Slice(duchList, func(i, j int) bool { return duchList[i].Num < duchList[j].Num }) - FirstMoney = duchList[0].Grade - if FirstMoney == 0 { - FirstMoney = 9.99 + firstMoney = duchList[0].Grade + if firstMoney == 0 { + firstMoney = 9.99 } } - money := FirstMoney + money := firstMoney for range 3 { - e.appendGrade(money, Lv) + e.appendGrade(money, lv) money = endlessCfg.NextMoney(money) } e.Id = 1 } // appendGrade 初始化一档礼包并合并到列表 -func (e *EndlessMod) appendGrade(money float64, Lv int) { - r, autoNext := initGrade(money, e.Auto, Lv) +func (e *EndlessMod) appendGrade(money float64, lv int) { + r, autoNext := initGrade(money, e.Auto, lv) e.Auto = autoNext for k, v := range r { e.List[k] = v @@ -82,7 +82,7 @@ func (e *EndlessMod) appendGrade(money float64, Lv int) { } // 领取免费礼包 -func (e *EndlessMod) GetReward(Lv int) ([]*item.Item, error) { +func (e *EndlessMod) GetReward(lv int) ([]*item.Item, error) { v, ok := e.List[e.Id] if !ok { return nil, fmt.Errorf("EndlessMod Reward Id:%d not found", e.Id) @@ -93,7 +93,7 @@ func (e *EndlessMod) GetReward(Lv int) ([]*item.Item, error) { delete(e.List, e.Id) e.Id++ if v1 := e.List[e.Id]; v1 != nil && v1.Type == ENDLESS_TYPE_CHARGE { //领完一阶段 随机新的一阶段 - e.appendGrade(endlessCfg.NextMoney(e.LastMoney), Lv) + e.appendGrade(endlessCfg.NextMoney(e.LastMoney), lv) } return v.Items, nil } @@ -114,12 +114,12 @@ func (e *EndlessMod) BackData() *msg.ResEndless { } // 处理充值礼包 -func (e *EndlessMod) Fire(ChargeId int) []*item.Item { +func (e *EndlessMod) Fire(chargeId int) []*item.Item { v, ok := e.List[e.Id] if !ok { return nil } - if v.ChargeId != ChargeId { + if v.ChargeId != chargeId { return nil } delete(e.List, e.Id) diff --git a/src/server/game/mod/endless/endless_func.go b/src/server/game/mod/endless/endless_func.go index 494f0353..d08a30c2 100644 --- a/src/server/game/mod/endless/endless_func.go +++ b/src/server/game/mod/endless/endless_func.go @@ -8,78 +8,78 @@ import ( ) // 初始化奖励 -func InitReward(Energy float64, Lv int) []*item.Item { +func InitReward(energy float64, lv int) []*item.Item { numRand := map[int]int{1: 30, 2: 60, 3: 10} - Num := Util.RandMap(numRand) - PerEnergy := endlessCfg.GetPerEnergy(item.ITEM_ENERGY_ID) - getNum := func(energy, preEnergy float64) int { - num := int(energy / preEnergy) + num := Util.RandMap(numRand) + perEnergy := endlessCfg.GetPerEnergy(item.ITEM_ENERGY_ID) + getNum := func(energy, perEnergy float64) int { + num := int(energy / perEnergy) num = int(math.Round(float64(num)/5.0) * 5) return max(num, 5) // 最少5个能量 } - if Num == 1 { - ItemNum := getNum(Energy, PerEnergy) - return []*item.Item{item.NewItem(item.ITEM_ENERGY_ID, ItemNum)} + if num == 1 { + itemNum := getNum(energy, perEnergy) + return []*item.Item{item.NewItem(item.ITEM_ENERGY_ID, itemNum)} } - if Num == 2 { - ItemId := endlessCfg.GetItemId(Energy, 0, Lv) - if len(ItemId) == 0 { - return []*item.Item{item.NewItem(item.ITEM_ENERGY_ID, getNum(Energy, PerEnergy))} + if num == 2 { + itemId := endlessCfg.GetItemId(energy, 0, lv) + if len(itemId) == 0 { + return []*item.Item{item.NewItem(item.ITEM_ENERGY_ID, getNum(energy, perEnergy))} } - RandItem := Util.RandSlice(ItemId) - ItemEnergy := endlessCfg.GetEnergyByItemId(RandItem) - LastEnergy := Energy - ItemEnergy - ItemNum := getNum(LastEnergy, PerEnergy) - return []*item.Item{item.NewItem(item.ITEM_ENERGY_ID, ItemNum), item.NewItem(RandItem, 1)} + randItem := Util.RandSlice(itemId) + itemEnergy := endlessCfg.GetEnergyByItemId(randItem) + lastEnergy := energy - itemEnergy + itemNum := getNum(lastEnergy, perEnergy) + return []*item.Item{item.NewItem(item.ITEM_ENERGY_ID, itemNum), item.NewItem(randItem, 1)} } - if Num == 3 { - ItemId := endlessCfg.GetItemId(Energy, 0, Lv) - if len(ItemId) == 0 { - return []*item.Item{item.NewItem(item.ITEM_ENERGY_ID, getNum(Energy, PerEnergy))} + if num == 3 { + itemId := endlessCfg.GetItemId(energy, 0, lv) + if len(itemId) == 0 { + return []*item.Item{item.NewItem(item.ITEM_ENERGY_ID, getNum(energy, perEnergy))} } - RandItem1 := Util.RandSlice(ItemId) - Type := endlessCfg.GetType(RandItem1) - ItemEnergy := endlessCfg.GetEnergyByItemId(RandItem1) - LastEnergy := Energy - ItemEnergy - ItemId = endlessCfg.GetItemId(LastEnergy, Type, Lv) - if len(ItemId) == 0 { - ItemNum := getNum(LastEnergy, PerEnergy) - return []*item.Item{item.NewItem(item.ITEM_ENERGY_ID, ItemNum), item.NewItem(RandItem1, 1)} + randItem1 := Util.RandSlice(itemId) + itemType := endlessCfg.GetType(randItem1) + itemEnergy := endlessCfg.GetEnergyByItemId(randItem1) + lastEnergy := energy - itemEnergy + itemId = endlessCfg.GetItemId(lastEnergy, itemType, lv) + if len(itemId) == 0 { + itemNum := getNum(lastEnergy, perEnergy) + return []*item.Item{item.NewItem(item.ITEM_ENERGY_ID, itemNum), item.NewItem(randItem1, 1)} } - RandItem2 := Util.RandSlice(ItemId) - ItemEnergy = endlessCfg.GetEnergyByItemId(RandItem2) - LastEnergy = LastEnergy - ItemEnergy - ItemNum := getNum(LastEnergy, PerEnergy) - return []*item.Item{item.NewItem(item.ITEM_ENERGY_ID, ItemNum), item.NewItem(RandItem1, 1), item.NewItem(RandItem2, 1)} + randItem2 := Util.RandSlice(itemId) + itemEnergy = endlessCfg.GetEnergyByItemId(randItem2) + lastEnergy = lastEnergy - itemEnergy + itemNum := getNum(lastEnergy, perEnergy) + return []*item.Item{item.NewItem(item.ITEM_ENERGY_ID, itemNum), item.NewItem(randItem1, 1), item.NewItem(randItem2, 1)} } return nil } // 初始化档次奖励 -func initGrade(Money float64, Auto, Lv int) (map[int]*Endless, int) { - Energy := endlessCfg.GetEnergy(Money) - Per := []float64{0.5, 0.3, 0.2, 0.1} +func initGrade(money float64, auto, lv int) (map[int]*Endless, int) { + energy := endlessCfg.GetEnergy(money) + per := []float64{0.5, 0.3, 0.2, 0.1} result := make(map[int]*Endless) for i := 1; i < 5; i++ { Type := ENDLESS_TYPE_FREE Charge := 0 if i == 1 { - if Money > 0 { + if money > 0 { Type = ENDLESS_TYPE_CHARGE - Charge = endlessCfg.GetChargeId(Money) + Charge = endlessCfg.GetChargeId(money) } else { Type = ENDLESS_TYPE_AD } } - result[Auto] = &Endless{ + result[auto] = &Endless{ ChargeId: Charge, Type: Type, - Items: InitReward(Energy*Per[i-1], Lv), + Items: InitReward(energy*per[i-1], lv), } - Auto++ + auto++ } - return result, Auto + return result, auto } diff --git a/src/server/game/mod/face/Face.go b/src/server/game/mod/face/Face.go index 546cfc97..91c8050d 100644 --- a/src/server/game/mod/face/Face.go +++ b/src/server/game/mod/face/Face.go @@ -17,10 +17,10 @@ type Face struct { AddTime int64 } -func (f *FaceMod) Login(RegisterTime int64) { +func (f *FaceMod) Login(registerTime int64) { for _, v := range f.List { if v.AddTime == 0 { - v.AddTime = RegisterTime + v.AddTime = registerTime } } } @@ -31,8 +31,8 @@ func (f *FaceMod) InitData() { f.List = make(map[int]*Face) f.SetId = 1 } - InitId := faceCfg.GetInitList() - for _, v := range InitId { + initId := faceCfg.GetInitList() + for _, v := range initId { if _, ok := f.List[v]; ok { continue } @@ -49,29 +49,29 @@ func (f *FaceMod) GetFaceNum() int { } // 设置表情,Id为0表示清空表情 -func (f *FaceMod) SetFace(Id int) error { - if Id != 0 { - if _, ok := f.List[Id]; !ok { +func (f *FaceMod) SetFace(id int) error { + if id != 0 { + if _, ok := f.List[id]; !ok { return fmt.Errorf("face id not exist") } } - f.SetId = Id + f.SetId = id return nil } // 解锁表情 -func (f *FaceMod) Unlock(Id, Time int) error { - v, ok := f.List[Id] +func (f *FaceMod) Unlock(id, time int) error { + v, ok := f.List[id] if ok { if v.Ts == 0 { return nil } - v.Ts += int64(Time) + v.Ts += int64(time) return nil } now := GoUtil.Now() - f.List[Id] = &Face{ - Ts: now + int64(Time), + f.List[id] = &Face{ + Ts: now + int64(time), AddTime: now, } return nil diff --git a/src/server/game/mod/friend/Friend.go b/src/server/game/mod/friend/Friend.go index b7636ab6..62cda8d1 100644 --- a/src/server/game/mod/friend/Friend.go +++ b/src/server/game/mod/friend/Friend.go @@ -189,7 +189,7 @@ type LogInfo struct { } // 初始化数据 -func (f *FriendMod) InitData(M_DwUin int64) { +func (f *FriendMod) InitData(m_DwUin int64) { if f.FriendList == nil { f.FriendList = make(map[int]struct{}) } @@ -225,11 +225,11 @@ func (f *FriendMod) InitData(M_DwUin int64) { f.NewApplyList = make(map[int]*ApplyInfo) } for k, v := range f.Card { - if v.AUid != 0 && !f.CheckFriend(v.AUid) && v.AUid != int(M_DwUin) { + if v.AUid != 0 && !f.CheckFriend(v.AUid) && v.AUid != int(m_DwUin) { delete(f.Card, k) continue } - if v.BUid != 0 && !f.CheckFriend(v.BUid) && v.BUid != int(M_DwUin) { + if v.BUid != 0 && !f.CheckFriend(v.BUid) && v.BUid != int(m_DwUin) { delete(f.Card, k) continue } @@ -259,16 +259,16 @@ func (f *FriendMod) version() { Uid int Time int64 } - PlayerList := make([]sortData, 0) + playerList := make([]sortData, 0) for k, v := range f.NewApplyList { - PlayerList = append(PlayerList, sortData{k, v.Time}) + playerList = append(playerList, sortData{k, v.Time}) } - sort.Slice(PlayerList, func(i, j int) bool { - return PlayerList[i].Time > PlayerList[j].Time + sort.Slice(playerList, func(i, j int) bool { + return playerList[i].Time > playerList[j].Time }) - for i := 0; i < len(PlayerList); i++ { + for i := 0; i < len(playerList); i++ { if i >= friendCfg.GetApplyListLimit() { - delete(f.NewApplyList, PlayerList[i].Uid) + delete(f.NewApplyList, playerList[i].Uid) } } } @@ -308,18 +308,18 @@ func (f *FriendMod) SetSyncId(Id int64) { } // 好友交互 -func (f *FriendMod) Interact(id, t int, T int64) { +func (f *FriendMod) Interact(id, t int, visitTime int64) { if _, ok := f.NewFriendList[id]; !ok { return } for _, v := range f.NewFriendList[id].Interact { - if v.Type == t && v.VisitTime < T { - v.VisitTime = T + if v.Type == t && v.VisitTime < visitTime { + v.VisitTime = visitTime return } } f.NewFriendList[id].Interact = append(f.NewFriendList[id].Interact, &Interact{ - VisitTime: T, + VisitTime: visitTime, Type: t, }) if len(f.NewFriendList[id].Interact) > 30 { @@ -332,14 +332,14 @@ func (f *FriendMod) GetInteractTime(id int) int64 { if _, ok := f.NewFriendList[id]; !ok { return 0 } - var LastTime int64 + var lastTime int64 // 获取最近一次拜访或点赞的时间 for _, v := range f.NewFriendList[id].Interact { - if v.VisitTime > LastTime { - LastTime = v.VisitTime + if v.VisitTime > lastTime { + lastTime = v.VisitTime } } - return LastTime + return lastTime } // 获取好友添加时间 @@ -368,13 +368,13 @@ func (f *FriendMod) GetCardInfo(Id string) *card.CardInfo { } // 设置卡牌交换信息 -func (f *FriendMod) SetCardInfo(CardInfo *card.CardInfo) { - f.Card[CardInfo.Id] = CardInfo +func (f *FriendMod) SetCardInfo(cardInfo *card.CardInfo) { + f.Card[cardInfo.Id] = cardInfo } // 删除卡牌交换信息 -func (f *FriendMod) DelCardInfo(Id string) { - delete(f.Card, Id) +func (f *FriendMod) DelCardInfo(id string) { + delete(f.Card, id) } // 删除好友 @@ -389,8 +389,8 @@ func (f *FriendMod) DelFriend(id int) { } // 检查是否好友 -func (f *FriendMod) CheckFriend(Uid int) bool { - v, ok := f.NewFriendList[Uid] +func (f *FriendMod) CheckFriend(uid int) bool { + v, ok := f.NewFriendList[uid] return ok && v.DelTime == 0 } @@ -433,14 +433,14 @@ func (f *FriendMod) GetFriendList() map[int]*FriendInfo { // 获取好友uid列表 func (f *FriendMod) GetSimpleFriendList() []int { - rs := make([]int, 0, len(f.NewFriendList)) + res := make([]int, 0, len(f.NewFriendList)) for k, v := range f.NewFriendList { if v.DelTime != 0 { continue } - rs = append(rs, k) + res = append(res, k) } - return rs + return res } // 检查是否有新的好友 @@ -450,7 +450,7 @@ func (f *FriendMod) CheckAddBefore(uid int) bool { } // 收到申请 -func (f *FriendMod) AddFriendApply(Uid, Type int, sendTime int64) bool { +func (f *FriendMod) AddFriendApply(uid, aType int, sendTime int64) bool { if f.DailyGetApply >= friendCfg.GetDailyGetApplyLimit() { return true } @@ -461,7 +461,7 @@ func (f *FriendMod) AddFriendApply(Uid, Type int, sendTime int64) bool { } } // 好友申请列表只保留十条,好友码申请不受数量限制 - if code_type >= friendCfg.GetApplyListLimit() && Type != APPLY_TYPE_FRIEND_CODE { + if code_type >= friendCfg.GetApplyListLimit() && aType != APPLY_TYPE_FRIEND_CODE { return true } var minTime int64 @@ -478,8 +478,8 @@ func (f *FriendMod) AddFriendApply(Uid, Type int, sendTime int64) bool { } } } - f.NewApplyList[Uid] = &ApplyInfo{ - Type: Type, + f.NewApplyList[uid] = &ApplyInfo{ + Type: aType, Time: sendTime, } f.DailyGetApply++ @@ -487,29 +487,29 @@ func (f *FriendMod) AddFriendApply(Uid, Type int, sendTime int64) bool { } // 发送申请 -func (f *FriendMod) AddSendApply(Uid int) bool { - f.SendApply[Uid] = GoUtil.Now() +func (f *FriendMod) AddSendApply(uid int) bool { + f.SendApply[uid] = GoUtil.Now() return false } -func (f *FriendMod) CheckSendApply(Id int) bool { - _, ok := f.SendApply[Id] +func (f *FriendMod) CheckSendApply(uid int) bool { + _, ok := f.SendApply[uid] return ok } // 获取发送申请时间 -func (f *FriendMod) GetSendApplyTime(Id int) int64 { - if t, ok := f.SendApply[Id]; ok { +func (f *FriendMod) GetSendApplyTime(uid int) int64 { + if t, ok := f.SendApply[uid]; ok { return t } return 0 } // 同意申请 -func (f *FriendMod) AgreeApply(UId int) { - f.AddFriend(UId) - delete(f.SendApply, UId) - delete(f.NewApplyList, UId) +func (f *FriendMod) AgreeApply(uid int) { + f.AddFriend(uid) + delete(f.SendApply, uid) + delete(f.NewApplyList, uid) } // 增加好友日志 @@ -526,9 +526,9 @@ func (f *FriendMod) AddLog(uid, ltype int, param string, send int64) int { case LOG_TYPE_HANDBOOK_UPVOTE, LOG_TYPE_PLAYROOM_UPVOTE: f.AddBubble(f.AutoId, ltype, nil) case LOG_TYPE_TREASURE_HELP: - ItemNum := GoUtil.RandNum(2, 5) - ItemList := []*item.Item{item.NewItem(item.ITEM_STAR_ID, ItemNum)} - f.AddBubble(f.AutoId, ltype, ItemList) + itemNum := GoUtil.RandNum(2, 5) + items := []*item.Item{item.NewItem(item.ITEM_STAR_ID, itemNum)} + f.AddBubble(f.AutoId, ltype, items) } if len(f.Log) > 30 { f.Log = f.Log[len(f.Log)-30:] @@ -537,18 +537,18 @@ func (f *FriendMod) AddLog(uid, ltype int, param string, send int64) int { } // 增加气泡 -func (f *FriendMod) AddBubble(Id, Type int, ItemList []*item.Item) { - f.Bubble[Id] = &BubbleInfo{ - Id: Id, +func (f *FriendMod) AddBubble(id, bType int, items []*item.Item) { + f.Bubble[id] = &BubbleInfo{ + Id: id, Time: GoUtil.Now(), - Type: Type, - ItemList: ItemList, + Type: bType, + ItemList: items, } } // 获取气泡信息 -func (f *FriendMod) GetBubble(Id int) *msg.FriendBubbleInfo { - if v, ok := f.Bubble[Id]; ok { +func (f *FriendMod) GetBubble(id int) *msg.FriendBubbleInfo { + if v, ok := f.Bubble[id]; ok { return &msg.FriendBubbleInfo{ Id: int32(v.Id), Type: int32(v.Type), @@ -559,16 +559,16 @@ func (f *FriendMod) GetBubble(Id int) *msg.FriendBubbleInfo { } func (f *FriendMod) BubbleBackData() *msg.ResFriendBubble { - rs := make([]*msg.FriendBubbleInfo, 0, len(f.Bubble)) + res := make([]*msg.FriendBubbleInfo, 0, len(f.Bubble)) for _, v := range f.Bubble { - rs = append(rs, &msg.FriendBubbleInfo{ + res = append(res, &msg.FriendBubbleInfo{ Id: int32(v.Id), Type: int32(v.Type), Items: item.ItemToMsg(v.ItemList), }) } return &msg.ResFriendBubble{ - Bubble: rs, + Bubble: res, } } @@ -582,11 +582,11 @@ func (f *FriendMod) ResetGoldCardEx() { } // 增加活动日志 -func (f *FriendMod) AddActLog(Type int, Param string) { +func (f *FriendMod) AddActLog(actType int, param string) { f.ActivityLog = append(f.ActivityLog, &ActLogInfo{ - Type: Type, + Type: actType, Time: GoUtil.Now(), - Param: Param, + Param: param, }) if len(f.ActivityLog) > 20 { f.ActivityLog = f.ActivityLog[len(f.ActivityLog)-20:] @@ -594,10 +594,10 @@ func (f *FriendMod) AddActLog(Type int, Param string) { } // 时间线点赞 -func (f *FriendMod) Upvote(Id int) ([]*item.Item, int, error) { +func (f *FriendMod) Upvote(id int) ([]*item.Item, int, error) { info := &LogInfo{} for _, v := range f.Log { - if v.Id == Id { + if v.Id == id { info = v break } @@ -613,8 +613,8 @@ func (f *FriendMod) Upvote(Id int) ([]*item.Item, int, error) { } // 获取时间线点赞奖励 -func (f *FriendMod) GetReward(Id int) ([]*item.Item, error) { - info, ok := f.Bubble[Id] +func (f *FriendMod) GetReward(id int) ([]*item.Item, error) { + info, ok := f.Bubble[id] if !ok { return nil, fmt.Errorf("bubble not exist") } @@ -627,13 +627,12 @@ func (f *FriendMod) GetReward(Id int) ([]*item.Item, error) { default: return nil, fmt.Errorf("log type not support") } - delete(f.Bubble, Id) + delete(f.Bubble, id) return reward, nil } // 增加心愿单申请 -func (f *FriendMod) AddWishApply(Uid int64) error { - +func (f *FriendMod) AddWishApply(uid int64) error { return nil } @@ -649,8 +648,7 @@ func (f *FriendMod) GetWishApply() []*ApplyInfo { } // 同意心愿单申请 -func (f *FriendMod) ApplyWish(Uid int64) error { - +func (f *FriendMod) ApplyWish(uid int64) error { return fmt.Errorf("wish apply not exist") } @@ -663,28 +661,28 @@ func (f *FriendMod) GetActLogLast() *ActLogInfo { } // 增加待回复请求 -func (f *FriendMod) AddReplyInfo(Uid int, Type int, Param string, EndTime int64, Items []*item.Item) *ReplyInfo { +func (f *FriendMod) AddReplyInfo(uid int, rType int, param string, endTime int64, items []*item.Item) *ReplyInfo { f.AutoId++ - Reply := &ReplyInfo{ + reply := &ReplyInfo{ Id: f.AutoId, - Uid: Uid, - Type: Type, - Param: Param, + Uid: uid, + Type: rType, + Param: param, AddTime: GoUtil.Now(), - EndTime: EndTime, - Items: Items, + EndTime: endTime, + Items: items, } - f.ReplyList = append(f.ReplyList, Reply) + f.ReplyList = append(f.ReplyList, reply) if len(f.ReplyList) > 20 { f.ReplyList = f.ReplyList[len(f.ReplyList)-20:] } - return Reply + return reply } // 回复请求 -func (f *FriendMod) ReplyFriend(LogId int) *ReplyInfo { +func (f *FriendMod) ReplyFriend(logId int) *ReplyInfo { for _, v := range f.ReplyList { - if v.Id == LogId { + if v.Id == logId { v.Status = 1 v.ReplyTime = GoUtil.Now() return v @@ -721,14 +719,14 @@ func (f *FriendMod) GetSponsorReward() ([]*item.Item, error) { } // 增加好友推荐记录 -func (f *FriendMod) AddRecommend(Uid int) { +func (f *FriendMod) AddRecommend(uid int) { now := GoUtil.Now() - if v, ok := f.RecommendList[Uid]; ok { + if v, ok := f.RecommendList[uid]; ok { v.Time = now return } - f.RecommendList[Uid] = &Recommend{ - Uid: Uid, + f.RecommendList[uid] = &Recommend{ + Uid: uid, Time: now, } } @@ -749,14 +747,14 @@ func (f *FriendMod) AddDailyRecommend() error { return nil } -func (f *FriendMod) GreetingFriend(Uid int) { - if v, ok := f.NewFriendList[Uid]; ok { +func (f *FriendMod) GreetingFriend(uid int) { + if v, ok := f.NewFriendList[uid]; ok { v.Greeting = true } } -func (f *FriendMod) CheckGreeting(Uid int) bool { - if v, ok := f.NewFriendList[Uid]; ok { +func (f *FriendMod) CheckGreeting(uid int) bool { + if v, ok := f.NewFriendList[uid]; ok { return v.Greeting } return false diff --git a/src/server/game/mod/friend_treasure.go/friend_treasure.go b/src/server/game/mod/friend_treasure.go/friend_treasure.go index eabdb71c..c1ee34b7 100644 --- a/src/server/game/mod/friend_treasure.go/friend_treasure.go +++ b/src/server/game/mod/friend_treasure.go/friend_treasure.go @@ -47,11 +47,11 @@ func (f *FriendTreasureMod) ZeroUpdate() { } // 初始化游戏数据 -func (f *FriendTreasureMod) InitGame(List []*msg.TreasureInfo, List2 []int32) { - for _, v := range List { +func (f *FriendTreasureMod) InitGame(list []*msg.TreasureInfo, list2 []int32) { + for _, v := range list { f.List[int(v.Pos)] = v } - f.List2 = List2 + f.List2 = list2 f.Status = GAME_STATUS_START } @@ -62,12 +62,12 @@ func (f *FriendTreasureMod) AddStar(star, factor int) { } // 翻牌 -func (f *FriendTreasureMod) Flip(Pos int) ([]*item.Item, int64, error) { +func (f *FriendTreasureMod) Flip(pos int) ([]*item.Item, int64, error) { if f.Status == GAME_STATUS_IDLE { return nil, 0, fmt.Errorf("game not start") } f.Shift++ - info, ok := f.List[Pos] + info, ok := f.List[pos] if !ok { return nil, 0, fmt.Errorf("invalid position") } diff --git a/src/server/game/mod/guess_color/guess_color.go b/src/server/game/mod/guess_color/guess_color.go index 6d0ca9bf..ee27c9e7 100644 --- a/src/server/game/mod/guess_color/guess_color.go +++ b/src/server/game/mod/guess_color/guess_color.go @@ -51,16 +51,16 @@ func (g *GuessColorMod) InitData() { } } -func (g *GuessColorMod) Login(Id int) int { - OldId := g.Id - if Id == 0 { +func (g *GuessColorMod) Login(id int) int { + oldId := g.Id + if id == 0 { g.Id = 0 return 0 } - if g.Id == Id { + if g.Id == id { return 0 } - g.Id = Id + g.Id = id g.Pass = 1 g.Opponent = simplePlayer{ Name: randnameCfg.GetRandName(), @@ -71,11 +71,11 @@ func (g *GuessColorMod) Login(Id int) int { g.MapList = nil g.OMap = nil g.WinTime = guesscolorCfg.GetWinTime(g.Pass) - return OldId + return oldId } -func (g *GuessColorMod) ZeroUpdate(Id int) { - g.Login(Id) +func (g *GuessColorMod) ZeroUpdate(id int) { + g.Login(id) } func (g *GuessColorMod) FirstIn() []*item.Item { @@ -87,27 +87,27 @@ func (g *GuessColorMod) FirstIn() []*item.Item { } // 进行猜色 -func (g *GuessColorMod) Take(Map map[int32]int32, OMap map[int32]int32) { - if len(Map) > 0 { - g.MapList = append(g.MapList, Map) +func (g *GuessColorMod) Take(guessMap map[int32]int32, oMap map[int32]int32) { + if len(guessMap) > 0 { + g.MapList = append(g.MapList, guessMap) g.Guess++ } - g.OMap = OMap + g.OMap = oMap } // 获取失败奖励 func (g *GuessColorMod) GetLoseItem() []*item.Item { - Items := guesscolorCfg.GetLoseItem(g.Id) - Num := guesscolorCfg.GetPassNum(g.Pass) + items := guesscolorCfg.GetLoseItem(g.Id) + num := guesscolorCfg.GetPassNum(g.Pass) if len(g.MapList) > 0 { - LastMap := g.MapList[len(g.MapList)-1] - for _, v := range LastMap { + lastMap := g.MapList[len(g.MapList)-1] + for _, v := range lastMap { if v > 10 { - Num-- + num-- } } } - return item.MutilItem(Items, Num) + return item.MutilItem(items, num) } // 获取奖励 @@ -118,15 +118,15 @@ func (g *GuessColorMod) GetReward() ([]*item.Item, error) { if g.Guess < g.WinTime { return nil, fmt.Errorf("guess process not finish") } - Type := GAME_STATUS_FAIL + gType := GAME_STATUS_FAIL if g.Guess == guesscolorCfg.GetPassNum(g.Pass) { - Type = GAME_STATUS_SUCCESS + gType = GAME_STATUS_SUCCESS } - Item := guesscolorCfg.GetRewardItem(g.Pass, Type) + items := guesscolorCfg.GetRewardItem(g.Pass, gType) g.Pass++ g.Guess = 0 g.WinTime = guesscolorCfg.GetWinTime(g.Pass) g.MapList = nil g.OMap = nil - return Item, nil + return items, nil } diff --git a/src/server/game/mod/guide/Guide.go b/src/server/game/mod/guide/Guide.go index 7e48ec0a..6a6c4785 100644 --- a/src/server/game/mod/guide/Guide.go +++ b/src/server/game/mod/guide/Guide.go @@ -22,14 +22,14 @@ func (g *Guide) InitData() { } } -func (g *Guide) GetReward(Id int) ([]*item.Item, error) { - Items, Num := guidecfg.GetGuideReward(Id) - n := g.Reward[Id] - if n >= Num { - return nil, fmt.Errorf("Guide GetReward Id:%v has been received", Id) +func (g *Guide) GetReward(id int) ([]*item.Item, error) { + items, num := guidecfg.GetGuideReward(id) + n := g.Reward[id] + if n >= num { + return nil, fmt.Errorf("Guide GetReward Id:%v has been received", id) } - g.Reward[Id]++ - return Items, nil + g.Reward[id]++ + return items, nil } func (g *Guide) BackData() *msg.ResGuideInfo { diff --git a/src/server/game/mod/guide_task/guide_task.go b/src/server/game/mod/guide_task/guide_task.go index cf9e0795..7df792f8 100644 --- a/src/server/game/mod/guide_task/guide_task.go +++ b/src/server/game/mod/guide_task/guide_task.go @@ -51,15 +51,15 @@ func (gt *GuideTaskMod) Login() { if gt.UnlockTime == 0 { return } - LoginDay := (GoUtil.Now()-gt.UnlockTime)/86400 + 1 - gt.LoginDay[int(LoginDay)] = struct{}{} + loginDay := (GoUtil.Now()-gt.UnlockTime)/86400 + 1 + gt.LoginDay[int(loginDay)] = struct{}{} gt.Trigger(&quest.Trigger{Label: quest.TRIGGER_LABEL_GUIDE_LOGIN, A: []interface{}{len(gt.LoginDay)}}) } // 解锁引导任务 func (gt *GuideTaskMod) Unlock(lv int) bool { - UnLockLv := GuideTaskCfg.GetUnlockLv() - if lv >= UnLockLv && gt.UnlockTime == 0 { + unLockLv := GuideTaskCfg.GetUnlockLv() + if lv >= unLockLv && gt.UnlockTime == 0 { gt.UnlockTime = GoUtil.Now() gt.Login() return true @@ -77,7 +77,7 @@ func (gt *GuideTaskMod) CheckOpen() bool { return GoUtil.Now()-gt.UnlockTime <= guideTaskOpenSeconds } -func (gt *GuideTaskMod) Trigger(Tr *quest.Trigger) bool { +func (gt *GuideTaskMod) Trigger(tr *quest.Trigger) bool { if !gt.CheckOpen() { return false } @@ -89,7 +89,7 @@ func (gt *GuideTaskMod) Trigger(Tr *quest.Trigger) bool { if v.Quest.Label == quest.TRIGGER_LABEL_GUIDE_LOGIN { v.Quest.A = []interface{}{gt.UnlockTime} } - update = quest.TriggerQuestProgress(&v.Quest, Tr) || update + update = quest.TriggerQuestProgress(&v.Quest, tr) || update if v.Quest.Status { v.Status = quest.QUEST_STATUS_FINISH } @@ -98,34 +98,34 @@ func (gt *GuideTaskMod) Trigger(Tr *quest.Trigger) bool { } // 获取任务奖励 -func (gt *GuideTaskMod) GetTaskReward(Id int) ([]*item.Item, error) { - task, ok := gt.Tasks[Id] +func (gt *GuideTaskMod) GetTaskReward(id int) ([]*item.Item, error) { + task, ok := gt.Tasks[id] if !ok { - return nil, fmt.Errorf("guide task %d not found", Id) + return nil, fmt.Errorf("guide task %d not found", id) } if task.Status != quest.QUEST_STATUS_FINISH { - return nil, fmt.Errorf("guide task %d not finished or already claimed", Id) + return nil, fmt.Errorf("guide task %d not finished or already claimed", id) } task.Status = quest.QUEST_STATUS_REWARD - gt.Active += GuideTaskCfg.GetTaskActive(Id) - return GuideTaskCfg.GetTaskRewardById(Id), nil + gt.Active += GuideTaskCfg.GetTaskActive(id) + return GuideTaskCfg.GetTaskRewardById(id), nil } // 获取活跃度奖励 -func (gt *GuideTaskMod) GetActiveReward(Id int) ([]*item.Item, error) { +func (gt *GuideTaskMod) GetActiveReward(id int) ([]*item.Item, error) { for _, v := range gt.Reward { - if v == Id { + if v == id { return nil, fmt.Errorf("active reward already got") } } - items, needActive := GuideTaskCfg.GetActiveReward(Id) + items, needActive := GuideTaskCfg.GetActiveReward(id) if items == nil { - return nil, fmt.Errorf("no active reward id %d", Id) + return nil, fmt.Errorf("no active reward id %d", id) } if gt.Active < needActive { return nil, fmt.Errorf("active not enough") } - gt.Reward = append(gt.Reward, Id) + gt.Reward = append(gt.Reward, id) return items, nil } diff --git a/src/server/game/mod/handbook/Handbook.go b/src/server/game/mod/handbook/Handbook.go index abdefa06..7bd3ee6c 100644 --- a/src/server/game/mod/handbook/Handbook.go +++ b/src/server/game/mod/handbook/Handbook.go @@ -33,62 +33,62 @@ func (h *Handbook) InitData() { } // 解锁图鉴 -func (h *Handbook) SetHandbook(Id int) bool { - if Id <= 0 { +func (h *Handbook) SetHandbook(id int) bool { + if id <= 0 { return false } - _, ok := h.BookList[Id] + _, ok := h.BookList[id] if ok { return false } - h.BookList[Id] = STATUS_IDLE + h.BookList[id] = STATUS_IDLE return true } // 领取图鉴奖励 -func (h *Handbook) GetHandbookReward(Id int) error { - status, ok := h.BookList[Id] +func (h *Handbook) GetHandbookReward(id int) error { + status, ok := h.BookList[id] if !ok { return errors.New("图鉴未解锁") } if status == STATUS_REWARD { return errors.New("图鉴奖励已领取") } - h.BookList[Id] = STATUS_REWARD + h.BookList[id] = STATUS_REWARD return nil } -func (h *Handbook) CollectItem(Id string, AllChess []int) ([]*item.Item, error) { +func (h *Handbook) CollectItem(id string, AllChess []int) ([]*item.Item, error) { for _, v := range AllChess { if _, ok := h.BookList[v]; !ok { return nil, fmt.Errorf("图鉴未解锁") } } - if _, ok := h.Collect[Id]; ok { + if _, ok := h.Collect[id]; ok { return nil, fmt.Errorf("已经领取过该奖励") } - Reward := handbookCfg.GetHandbookReward(Id) - if Reward == nil { + reward := handbookCfg.GetHandbookReward(id) + if reward == nil { return nil, fmt.Errorf("奖励不存在") } - h.Collect[Id] = struct{}{} - return Reward, nil + h.Collect[id] = struct{}{} + return reward, nil } func (h *Handbook) BackData() *msg.Handbook { - BookList := make([]*msg.HandbookInfo, 0, len(h.BookList)) + bookList := make([]*msg.HandbookInfo, 0, len(h.BookList)) for k, v := range h.BookList { - BookList = append(BookList, &msg.HandbookInfo{ + bookList = append(bookList, &msg.HandbookInfo{ ChessId: int32(k), Status: int32(v), }) } - Collect := make([]string, 0, len(h.Collect)) + collect := make([]string, 0, len(h.Collect)) for k := range h.Collect { - Collect = append(Collect, k) + collect = append(collect, k) } return &msg.Handbook{ - Handbooks: BookList, - Collect: Collect, + Handbooks: bookList, + Collect: collect, } } diff --git a/src/server/game/mod/invite/invite.go b/src/server/game/mod/invite/invite.go index 1cc26505..b737b9dc 100644 --- a/src/server/game/mod/invite/invite.go +++ b/src/server/game/mod/invite/invite.go @@ -27,25 +27,25 @@ func (i *InviteMod) AddInvite(id int) error { return nil } -func (i *InviteMod) GetReward(Index int) ([]*item.Item, error) { - if Index <= i.GetIndex { +func (i *InviteMod) GetReward(index int) ([]*item.Item, error) { + if index <= i.GetIndex { return nil, fmt.Errorf("index error") } - var Items []*item.Item + var items []*item.Item cur := i.GetIndex - for cur < Index { + for cur < index { cur++ - Need, Reward := inviteCfg.GetInviteReward(cur) - if Need == 0 { + need, reward := inviteCfg.GetInviteReward(cur) + if need == 0 { return nil, fmt.Errorf("invite reward not found") } - if len(i.InviteList) < Need { + if len(i.InviteList) < need { return nil, fmt.Errorf("invite not enough") } - Items = item.Merge(Items, Reward) + items = item.Merge(items, reward) } i.GetIndex = cur - return Items, nil + return items, nil } func (i *InviteMod) BackData() *msg.ResInviteFriendData { diff --git a/src/server/game/mod/item/Item.go b/src/server/game/mod/item/Item.go index 23eccc73..88f32cda 100644 --- a/src/server/game/mod/item/Item.go +++ b/src/server/game/mod/item/Item.go @@ -184,18 +184,18 @@ func ItemListToMsg(items []*Item) *msg.ItemList { } // 道具叠加 -func Merge(Item1, Item2 []*Item) []*Item { - if Item1 == nil { - return Item2 +func Merge(item1, item2 []*Item) []*Item { + if item1 == nil { + return item2 } - if Item2 == nil { - return Item1 + if item2 == nil { + return item1 } l := make(map[int]int) - for _, v := range Item1 { + for _, v := range item1 { l[v.Id] += v.Num } - for _, v := range Item2 { + for _, v := range item2 { l[v.Id] += v.Num } res := make([]*Item, 0, len(l)) @@ -207,12 +207,12 @@ func Merge(Item1, Item2 []*Item) []*Item { } return res } -func MutilItem(i []*Item, num int) []*Item { - if i == nil { +func MutilItem(item1 []*Item, num int) []*Item { + if item1 == nil { return nil } - res := make([]*Item, 0, len(i)) - for _, v := range i { + res := make([]*Item, 0, len(item1)) + for _, v := range item1 { res = append(res, &Item{ Id: v.Id, Num: v.Num * num, @@ -221,12 +221,12 @@ func MutilItem(i []*Item, num int) []*Item { return res } -func MutilItemFloat(i []*Item, num float64) []*Item { - if i == nil { +func MutilItemFloat(item1 []*Item, num float64) []*Item { + if item1 == nil { return nil } - res := make([]*Item, 0, len(i)) - for _, v := range i { + res := make([]*Item, 0, len(item1)) + for _, v := range item1 { res = append(res, &Item{ Id: v.Id, Num: int(math.Round(float64(v.Num) * num)), diff --git a/src/server/game/mod/limited_time_event/limited_time_event.go b/src/server/game/mod/limited_time_event/limited_time_event.go index 280652b4..3f69af04 100644 --- a/src/server/game/mod/limited_time_event/limited_time_event.go +++ b/src/server/game/mod/limited_time_event/limited_time_event.go @@ -85,7 +85,7 @@ type PaybackDay struct { Count int } -func (l *LimitedTimeEventMod) InitData(Lv int) { +func (l *LimitedTimeEventMod) InitData(lv int) { if l.EventList == nil { l.EventList = make(map[int]*LTEInfo) } @@ -98,8 +98,8 @@ func (l *LimitedTimeEventMod) InitData(Lv int) { } if l.ProgressMax == 0 { - l.Lv = Lv - l.ProgressMax = limitedTimeEventCfg.GetProgressMax(Lv, l.BonusNum) + l.Lv = lv + l.ProgressMax = limitedTimeEventCfg.GetProgressMax(lv, l.BonusNum) } if !l.First { l.First = true @@ -115,25 +115,25 @@ func (l *LimitedTimeEventMod) InitData(Lv int) { } if len(l.ProgressReward) == 0 { - SelectNum := limitedTimeEventCfg.GetProgressSelectNum(Lv) - BonusLv := limitedTimeEventCfg.GetBonusLv(Lv) + SelectNum := limitedTimeEventCfg.GetProgressSelectNum(lv) + BonusLv := limitedTimeEventCfg.GetBonusLv(lv) RandMap := limitedTimeEventCfg.GetProgressRewardRand(BonusLv) l.fillProgressReward(RandMap, SelectNum) } } -func (l *LimitedTimeEventMod) ZeroUpdate(Lv int) { +func (l *LimitedTimeEventMod) ZeroUpdate(lv int) { if !l.FirstReward { return } - l.Lv = Lv + l.Lv = lv l.BonusNum = 0 - l.ProgressMax = limitedTimeEventCfg.GetProgressMax(Lv, l.BonusNum) + l.ProgressMax = limitedTimeEventCfg.GetProgressMax(lv, l.BonusNum) } // 判断限时事件是否存在 -func (l *LimitedTimeEventMod) CheckExist(EventId int) bool { - info, ok := l.EventList[EventId] +func (l *LimitedTimeEventMod) CheckExist(eventId int) bool { + info, ok := l.EventList[eventId] if !ok { return false } @@ -142,16 +142,15 @@ func (l *LimitedTimeEventMod) CheckExist(EventId int) bool { } // 触发限时事件 -func (l *LimitedTimeEventMod) Trigger(Lv int) (int, []int, []int) { - if Lv < 4 { +func (l *LimitedTimeEventMod) Trigger(lv int) (int, []int, []int) { + if lv < 4 { return 0, nil, nil } - TriggerEvent := limitedTimeEventCfg.GetLimitedTimeEventCfg() - TimeoutEvent := make([]int, 0) - AddEvent := make([]int, 0) - Now := GoUtil.Now() - - for _, v := range TriggerEvent { + triggerEvent := limitedTimeEventCfg.GetLimitedTimeEventCfg() + timeoutEvent := make([]int, 0) + addEvent := make([]int, 0) + now := GoUtil.Now() + for _, v := range triggerEvent { if _, ok := l.Triggered[v.Id]; ok { //不重复触发 continue } @@ -159,57 +158,54 @@ func (l *LimitedTimeEventMod) Trigger(Lv int) (int, []int, []int) { info.Remian += int64(v.Duration) } else { LTEInfo := <EInfo{ - StartT: Now, + StartT: now, Remian: int64(v.Duration), } initEventInfo(LTEInfo, v.EventId) l.EventList[v.EventId] = LTEInfo - AddEvent = append(AddEvent, v.EventId) + addEvent = append(addEvent, v.EventId) } l.Triggered[v.Id] = struct{}{} } - Remain := 0 + remain := 0 //删除过期事件 for k, v := range l.EventList { - EndTime := v.StartT + v.Remian - // if k == EVENT_TYPE_CAT_TRICK { - // EndTime += 5 * 60 // 猫咪戏法事件显示时间为5分钟 - // } - if EndTime <= Now { + endTime := v.StartT + v.Remian + if endTime <= now { delete(l.EventList, k) - TimeoutEvent = append(TimeoutEvent, k) + timeoutEvent = append(timeoutEvent, k) continue } - NowRemain := (v.StartT + v.Remian) - Now - if Remain > 0 { - Remain = min(Remain, int(NowRemain)) + nowRemain := (v.StartT + v.Remian) - now + if remain > 0 { + remain = min(remain, int(nowRemain)) } else { - Remain = int(NowRemain) + remain = int(nowRemain) } } - return Remain, TimeoutEvent, AddEvent + return remain, timeoutEvent, addEvent } // 增加限时事件 -func (l *LimitedTimeEventMod) AddEvent(EventId, Duration int) int64 { - v, ok := l.EventList[EventId] - if EventId == EVENT_TYPE_CAT_DAY_SALE { +func (l *LimitedTimeEventMod) AddEvent(eventId, duration int) int64 { + v, ok := l.EventList[eventId] + if eventId == EVENT_TYPE_CAT_DAY_SALE { l.LastCatDaySale = GoUtil.Now() } if ok && v.StartT+v.Remian > GoUtil.Now() { // 事件未过期 - v.Remian += int64(Duration) - addEventInfo(v, EventId, Duration) + v.Remian += int64(duration) + addEventInfo(v, eventId, duration) } else { Event := <EInfo{ - Remian: int64(Duration), + Remian: int64(duration), StartT: GoUtil.Now(), } - initEventInfo(Event, EventId) - l.EventList[EventId] = Event + initEventInfo(Event, eventId) + l.EventList[eventId] = Event } - return l.EventList[EventId].Remian + l.EventList[EventId].StartT + return l.EventList[eventId].Remian + l.EventList[eventId].StartT } // 每周刷新 @@ -217,34 +213,35 @@ func (l *LimitedTimeEventMod) WeekUpdate() { l.Triggered = make(map[int]struct{}) } -func (l *LimitedTimeEventMod) GetMoneyCatReward(ChessList []int) []*item.Item { - L := l.EventList[EVENT_TYPE_MONEY_CAT] - if L == nil { +func (l *LimitedTimeEventMod) GetMoneyCatReward(chessList []int) []*item.Item { + eventInfo := l.EventList[EVENT_TYPE_MONEY_CAT] + if eventInfo == nil { + return nil + } + star := mergeDataCfg.GetMergeStar(chessList) + d, ok := eventInfo.D.(*MoneyCat) + if !ok { return nil } - Star := mergeDataCfg.GetMergeStar(ChessList) - d := L.D.(*MoneyCat) mul := d.Mul - - MaxId := limitedTimeEventCfg.GetMoneyCatMax() - NextId := min(d.Id+1, MaxId) - NextMul, Cd := limitedTimeEventCfg.GetMoneyCat(NextId) - d.Id = NextId - d.Mul = NextMul + maxId := limitedTimeEventCfg.GetMoneyCatMax() + nextId := min(d.Id+1, maxId) + nextMul, Cd := limitedTimeEventCfg.GetMoneyCat(nextId) + d.Id = nextId + d.Mul = nextMul d.EndTime = GoUtil.Now() + int64(Cd) - Star = int(math.Ceil(float64(Star) * (mul - 1))) - - return []*item.Item{{Id: item.ITEM_STAR_ID, Num: Star}} + star = int(math.Ceil(float64(star) * (mul - 1))) + return []*item.Item{{Id: item.ITEM_STAR_ID, Num: star}} } func (l *LimitedTimeEventMod) BackData() *msg.ResLimitEvent { - Res := &msg.ResLimitEvent{} - EventList := make(map[int32]*msg.LimitEvent) + res := &msg.ResLimitEvent{} + eventList := make(map[int32]*msg.LimitEvent) for k, v := range l.EventList { - EventList[int32(k)] = getLimitEventMsg(k, v) + eventList[int32(k)] = getLimitEventMsg(k, v) } - Res.LimitEventList = EventList - return Res + res.LimitEventList = eventList + return res } func (l *LimitedTimeEventMod) ProgressBackData() *msg.ResLimitEventProgress { @@ -260,15 +257,15 @@ func (l *LimitedTimeEventMod) ProgressBackData() *msg.ResLimitEventProgress { } // 获取流星雨奖励 -func (l *LimitedTimeEventMod) GetMeteorReward(MergeList, EmitList []int) []*item.Item { - energy := order.GetVirtualEnergy(MergeList, EmitList) - NewStar := int(max(math.Ceil(float64(energy)/0.36*0.1), 1)) - return []*item.Item{{Id: item.ITEM_STAR_ID, Num: NewStar}} +func (l *LimitedTimeEventMod) GetMeteorReward(mergeList, emitList []int) []*item.Item { + energy := order.GetVirtualEnergy(mergeList, emitList) + newStar := int(max(math.Ceil(float64(energy)/0.36*0.1), 1)) + return []*item.Item{{Id: item.ITEM_STAR_ID, Num: newStar}} } // 获取宝箱雨奖励 -func (l *LimitedTimeEventMod) GetChestReward(MergeList, EmitList []int) []*item.Item { - energy := order.GetVirtualEnergy(MergeList, EmitList) +func (l *LimitedTimeEventMod) GetChestReward(mergeList, emitList []int) []*item.Item { + energy := order.GetVirtualEnergy(mergeList, emitList) star := math.Ceil(float64(energy) / 10 / 2.5) return []*item.Item{item.NewItem(item.ITEM_DIAMOND_ID, int(star))} } @@ -287,116 +284,116 @@ func (l *LimitedTimeEventMod) GetSceneDashReward() (int, []*item.Item, error) { return 0, nil, fmt.Errorf("no dash times") } limitInfo.Info["Times"] = times - 1 - ProbList := limitedTimeEventCfg.GetSenceJackpotProb() - Id := GoUtil.RandMap(ProbList) - Items := limitedTimeEventCfg.GetSenceJackpotReward(Id) - if len(Items) > 1 { + probList := limitedTimeEventCfg.GetSenceJackpotProb() + id := GoUtil.RandMap(probList) + items := limitedTimeEventCfg.GetSenceJackpotReward(id) + if len(items) > 1 { // 多个奖励时,随机选择一个 - Items = []*item.Item{GoUtil.RandItem(Items)} + items = []*item.Item{GoUtil.RandItem(items)} } - return Id, Items, nil + return id, items, nil } // 获取连击快手奖励 func (l *LimitedTimeEventMod) GetFastProduceReward(Energy int) ([]*item.Item, error) { - Event, ok := l.EventList[EVENT_TYPE_FAST_PRODUCE] + event, ok := l.EventList[EVENT_TYPE_FAST_PRODUCE] if !ok { return nil, fmt.Errorf("FastProduce event not exist") } - Now := GoUtil.Now() - if Now < GoUtil.Int64(Event.Info["NextPlay"]) { + now := GoUtil.Now() + if now < GoUtil.Int64(event.Info["NextPlay"]) { return nil, fmt.Errorf("FastProduce CD") } return limitedTimeEventCfg.GetFastProduceReward(Energy), nil } func (l *LimitedTimeEventMod) ResetFastProduceCD() { - Event, ok := l.EventList[EVENT_TYPE_FAST_PRODUCE] + event, ok := l.EventList[EVENT_TYPE_FAST_PRODUCE] if !ok { return } - Event.Info["NextPlay"] = 0 + event.Info["NextPlay"] = 0 } func (l *LimitedTimeEventMod) GetFastProduceInfo() (int64, int) { - Event, ok := l.EventList[EVENT_TYPE_FAST_PRODUCE] + event, ok := l.EventList[EVENT_TYPE_FAST_PRODUCE] if !ok { return 0, 0 } - return GoUtil.Int64(Event.Info["NextPlay"]), GoUtil.Int(Event.Info["Times"]) + return GoUtil.Int64(event.Info["NextPlay"]), GoUtil.Int(event.Info["Times"]) } // 增加进度 -func (l *LimitedTimeEventMod) AddProgress(Lv int) { - UnlockLv := limitedTimeEventCfg.GetUnlockLv() - if Lv < UnlockLv { +func (l *LimitedTimeEventMod) AddProgress(lv int) { + unlockLv := limitedTimeEventCfg.GetUnlockLv() + if lv < unlockLv { return } l.Progress++ } // 选择进度奖励 -func (l *LimitedTimeEventMod) SelectProgressReward(Id, Lv, Energy int) ([]*item.Item, int, int, map[int]int, error) { - RewardId, ok := l.ProgressReward[Id] - RewardList := l.ProgressReward +func (l *LimitedTimeEventMod) SelectProgressReward(id, lv, energy int) ([]*item.Item, int, int, map[int]int, error) { + rewardId, ok := l.ProgressReward[id] + rewardList := l.ProgressReward if !ok { return nil, 0, 0, nil, fmt.Errorf("RewardId not exist") } - Item := limitedTimeEventCfg.GetProgressReward(RewardId) - OrderNum := l.ProgressMax - l.LastSelect = RewardId + items := limitedTimeEventCfg.GetProgressReward(rewardId) + orderNum := l.ProgressMax + l.LastSelect = rewardId l.ProgressReward = make(map[int]int) l.Progress = 0 l.BonusNum++ l.ProgressMax = limitedTimeEventCfg.GetProgressMax(l.Lv, l.BonusNum) // 重新生成进度奖励 - SelectNum := limitedTimeEventCfg.GetProgressSelectNum(Lv) - BonusLv := limitedTimeEventCfg.GetBonusLv(Lv) - RandMap := limitedTimeEventCfg.GetProgressRewardRand(BonusLv) + selectNum := limitedTimeEventCfg.GetProgressSelectNum(lv) + bonusLv := limitedTimeEventCfg.GetBonusLv(lv) + randMap := limitedTimeEventCfg.GetProgressRewardRand(bonusLv) // 体力小于200 high roller事件不进池子 - if Energy < limitedTimeEventCfg.GetHighRollerNeedEnergy() { - delete(RandMap, limitedTimeEventCfg.GetJackpotIdByType(EVENT_TYPE_HIGH_ROLLER)) + if energy < limitedTimeEventCfg.GetHighRollerNeedEnergy() { + delete(randMap, limitedTimeEventCfg.GetJackpotIdByType(EVENT_TYPE_HIGH_ROLLER)) } if GoUtil.Now()-l.LastCatDaySale < limitedTimeEventCfg.GetCatSaleCD() { // 参与猫咪大甩卖活动时,猫咪大甩卖事件不进池子 - delete(RandMap, limitedTimeEventCfg.GetJackpotIdByType(EVENT_TYPE_CAT_DAY_SALE)) + delete(randMap, limitedTimeEventCfg.GetJackpotIdByType(EVENT_TYPE_CAT_DAY_SALE)) } - l.fillProgressReward(RandMap, SelectNum) + l.fillProgressReward(randMap, selectNum) l.FirstReward = true - return Item, limitedTimeEventCfg.GetProgressRewardType(RewardId), OrderNum, RewardList, nil + return items, limitedTimeEventCfg.GetProgressRewardType(rewardId), orderNum, rewardList, nil } -func (l *LimitedTimeEventMod) DebugProgressRewardList(Lv, Energy int) map[int]int { +func (l *LimitedTimeEventMod) DebugProgressRewardList(lv, energy int) map[int]int { // 重新生成进度奖励 - SelectNum := limitedTimeEventCfg.GetProgressSelectNum(Lv) - BonusLv := limitedTimeEventCfg.GetBonusLv(Lv) - RandMap := limitedTimeEventCfg.GetProgressRewardRand(BonusLv) + selectNum := limitedTimeEventCfg.GetProgressSelectNum(lv) + bonusLv := limitedTimeEventCfg.GetBonusLv(lv) + randMap := limitedTimeEventCfg.GetProgressRewardRand(bonusLv) // 体力小于200 high roller事件不进池子 - if Energy < limitedTimeEventCfg.GetHighRollerNeedEnergy() { - delete(RandMap, limitedTimeEventCfg.GetJackpotIdByType(EVENT_TYPE_HIGH_ROLLER)) + if energy < limitedTimeEventCfg.GetHighRollerNeedEnergy() { + delete(randMap, limitedTimeEventCfg.GetJackpotIdByType(EVENT_TYPE_HIGH_ROLLER)) } if GoUtil.Now()-l.LastCatDaySale < limitedTimeEventCfg.GetCatSaleCD() { // 参与猫咪大甩卖活动时,猫咪大甩卖事件不进池子 - delete(RandMap, limitedTimeEventCfg.GetJackpotIdByType(EVENT_TYPE_CAT_DAY_SALE)) + delete(randMap, limitedTimeEventCfg.GetJackpotIdByType(EVENT_TYPE_CAT_DAY_SALE)) } - l.fillProgressReward(RandMap, SelectNum) + l.fillProgressReward(randMap, selectNum) return l.ProgressReward } // fillProgressReward 随机填充进度奖励(最多尝试10次避免与上次相同) -func (l *LimitedTimeEventMod) fillProgressReward(RandMap map[int]int, SelectNum int) { - LastOption := l.LastOption +func (l *LimitedTimeEventMod) fillProgressReward(randMap map[int]int, selectNum int) { + lastOption := l.LastOption var r []int for n := 0; n < 10; n++ { - r = GoUtil.RandMapNum(RandMap, SelectNum) + r = GoUtil.RandMapNum(randMap, selectNum) Id := 1 for _, v := range r { l.ProgressReward[Id] = v Id++ } - if !GoUtil.SliceEqual(LastOption, r) { + if !GoUtil.SliceEqual(lastOption, r) { break } } @@ -411,33 +408,39 @@ func (l *LimitedTimeEventMod) RemoveSuperOrder() bool { return false } -func (l *LimitedTimeEventMod) LuckyCat(ChessId int) error { +func (l *LimitedTimeEventMod) LuckyCat(chessId int) error { L := l.EventList[EVENT_TYPE_LUCKY_CAT] if L == nil { return fmt.Errorf("LuckyCat event not exist") } - MaxEarning := limitedTimeEventCfg.GetLuckyCatMaxEarning(int(L.Remian)) - d := L.D.(*LuckyCat) - Lv := mergeDataCfg.GetLvById(ChessId) - Earn := math.Pow(2, float64(Lv-1)) - d.Earnings += int(Earn) - if d.Earnings >= MaxEarning { + maxEarning := limitedTimeEventCfg.GetLuckyCatMaxEarning(int(L.Remian)) + d, ok := L.D.(*LuckyCat) + if !ok { + return fmt.Errorf("LuckyCat event data error") + } + lv := mergeDataCfg.GetLvById(chessId) + earn := math.Pow(2, float64(lv-1)) + d.Earnings += int(earn) + if d.Earnings >= maxEarning { delete(l.EventList, EVENT_TYPE_LUCKY_CAT) } return nil } -func (l *LimitedTimeEventMod) AddCatTrickEnergy(Energy int) { - Event, ok := l.EventList[EVENT_TYPE_CAT_TRICK] +func (l *LimitedTimeEventMod) AddCatTrickEnergy(energy int) { + event, ok := l.EventList[EVENT_TYPE_CAT_TRICK] if !ok { return } - if Event.Remian+Event.StartT <= GoUtil.Now() { + if event.Remian+event.StartT <= GoUtil.Now() { return } // 事件未过期 - d := Event.D.(*CatTrick) - d.Energy += Energy + d, ok := event.D.(*CatTrick) + if !ok { + return + } + d.Energy += energy } func (l *LimitedTimeEventMod) SubPaybackDay() error { @@ -445,11 +448,14 @@ func (l *LimitedTimeEventMod) SubPaybackDay() error { } func (l *LimitedTimeEventMod) GetCatTrickReward() ([]*item.Item, error) { - Event, ok := l.EventList[EVENT_TYPE_CAT_TRICK] + event, ok := l.EventList[EVENT_TYPE_CAT_TRICK] if !ok { return nil, fmt.Errorf("CatTrick event not exist") } - d := Event.D.(*CatTrick) + d, ok := event.D.(*CatTrick) + if !ok { + return nil, fmt.Errorf("CatTrick event data error") + } if d.Energy < 100 { return nil, fmt.Errorf("CatTrick energy not enough") } @@ -462,34 +468,34 @@ func (l *LimitedTimeEventMod) GetCatTrickReward() ([]*item.Item, error) { } // #region 事件信息初始化 -func initEventInfo(E *LTEInfo, EventType int) { - switch EventType { +func initEventInfo(event *LTEInfo, eventType int) { + switch eventType { case EVENT_TYPE_SENCE_DASH: - E.Info = map[string]interface{}{ + event.Info = map[string]interface{}{ "Times": 0, } case EVENT_TYPE_FAST_PRODUCE: - E.Info = map[string]interface{}{ + event.Info = map[string]interface{}{ "Times": 0, "NextPlay": 0, } case EVENT_TYPE_MONEY_CAT: - E.D = &MoneyCat{ + event.D = &MoneyCat{ Id: 1, Mul: 1.1, } case EVENT_TYPE_LUCKY_CAT: - MaxEarning := limitedTimeEventCfg.GetLuckyCatMaxEarning(int(E.Remian)) - E.D = &LuckyCat{ + MaxEarning := limitedTimeEventCfg.GetLuckyCatMaxEarning(int(event.Remian)) + event.D = &LuckyCat{ MaxEarings: MaxEarning, } case EVENT_TYPE_PAYBACK_DAY: - E.D = &PaybackDay{ + event.D = &PaybackDay{ Count: limitedTimeEventCfg.GetPaybackDay(), } case EVENT_TYPE_CAT_TRICK: - Type := limitedTimeEventCfg.GetCatTrickType(int(E.Remian)) - E.D = &CatTrick{ + Type := limitedTimeEventCfg.GetCatTrickType(int(event.Remian)) + event.D = &CatTrick{ List: []CatTrickInfo{ { Id: 1, @@ -500,66 +506,87 @@ func initEventInfo(E *LTEInfo, EventType int) { } } -func addEventInfo(E *LTEInfo, EventType, Duration int) { - switch EventType { +func addEventInfo(event *LTEInfo, eventType, duration int) { + switch eventType { case EVENT_TYPE_CAT_TRICK: - d := E.D.(*CatTrick) + d, ok := event.D.(*CatTrick) + if !ok { + return + } d.List = append(d.List, CatTrickInfo{ Id: len(d.List) + 1, - Type: limitedTimeEventCfg.GetCatTrickType(Duration), + Type: limitedTimeEventCfg.GetCatTrickType(duration), }) case EVENT_TYPE_LUCKY_CAT: - MaxEarning := limitedTimeEventCfg.GetLuckyCatMaxEarning(Duration) - d := E.D.(*LuckyCat) + MaxEarning := limitedTimeEventCfg.GetLuckyCatMaxEarning(duration) + d, ok := event.D.(*LuckyCat) + if !ok { + return + } d.MaxEarings += MaxEarning case EVENT_TYPE_PAYBACK_DAY: - d := E.D.(*PaybackDay) + d, ok := event.D.(*PaybackDay) + if !ok { + return + } d.Count += limitedTimeEventCfg.GetPaybackDay() } } -func getLimitEventMsg(t int, e *LTEInfo) *msg.LimitEvent { - Cd := 0 - Mul := 0.0 - Param := make(map[string]int32) - ShowTime := int32(e.StartT + e.Remian) - EndTime := int32(e.StartT + e.Remian) - switch t { +func getLimitEventMsg(eType int, event *LTEInfo) *msg.LimitEvent { + cd := 0 + mul := 0.0 + param := make(map[string]int32) + showTime := int32(event.StartT + event.Remian) + endTime := int32(event.StartT + event.Remian) + switch eType { case EVENT_TYPE_FAST_PRODUCE: - NextPlay := GoUtil.Int64(e.Info["NextPlay"]) - Cd = int(max(NextPlay-GoUtil.Now(), 0)) + nextPlay := GoUtil.Int64(event.Info["NextPlay"]) + cd = int(max(nextPlay-GoUtil.Now(), 0)) case EVENT_TYPE_MONEY_CAT: - d := e.D.(*MoneyCat) - Cd = int(d.EndTime) - Mul = d.Mul + d, ok := event.D.(*MoneyCat) + if !ok { + return nil + } + cd = int(d.EndTime) + mul = d.Mul case EVENT_TYPE_LUCKY_CAT: - d := e.D.(*LuckyCat) - Param[msg.LimitEventParam_LUCKY_CAT_EARNINGS.String()] = int32(d.MaxEarings) + d, ok := event.D.(*LuckyCat) + if !ok { + return nil + } + param[msg.LimitEventParam_LUCKY_CAT_EARNINGS.String()] = int32(d.MaxEarings) case EVENT_TYPE_CAT_TRICK: - d := e.D.(*CatTrick) - Energy := d.Energy - Param[msg.LimitEventParam_CAT_TRICK_ENERGY.String()] = int32(Energy) + d, ok := event.D.(*CatTrick) + if !ok { + return nil + } + energy := d.Energy + param[msg.LimitEventParam_CAT_TRICK_ENERGY.String()] = int32(energy) info := d.List[0] - Param[msg.LimitEventParam_CAT_TRICK_TYPE.String()] = int32(info.Type) - Diamon1, Energy1 := limitedTimeEventCfg.GetCatTrickDiamond(info.Type) - if d.Energy >= Diamon1*Energy1 { + param[msg.LimitEventParam_CAT_TRICK_TYPE.String()] = int32(info.Type) + diamond1, energy1 := limitedTimeEventCfg.GetCatTrickDiamond(info.Type) + if d.Energy >= diamond1*energy1 { // 进度条已满 - EndTime += 5 * 60 // 5分钟 + endTime += 5 * 60 // 5分钟 } case EVENT_TYPE_PAYBACK_DAY: - d := e.D.(*PaybackDay) - Param[msg.LimitEventParam_PAYBACK_DAY_COUNT.String()] = int32(d.Count) + d, ok := event.D.(*PaybackDay) + if !ok { + return nil + } + param[msg.LimitEventParam_PAYBACK_DAY_COUNT.String()] = int32(d.Count) case EVENT_TYPE_SENCE_DASH: - Times := GoUtil.Int(e.Info["Times"]) - Param[msg.LimitEventParam_SENCE_DASH_TIMES.String()] = int32(Times) + times := GoUtil.Int(event.Info["Times"]) + param[msg.LimitEventParam_SENCE_DASH_TIMES.String()] = int32(times) } return &msg.LimitEvent{ - EndTime: EndTime, - ShowTime: ShowTime, - Cd: int32(Cd), - Mul: float32(Mul), - StartTime: int32(e.StartT), - Param: Param, + EndTime: endTime, + ShowTime: showTime, + Cd: int32(cd), + Mul: float32(mul), + StartTime: int32(event.StartT), + Param: param, } } @@ -576,13 +603,13 @@ func (l *LimitedTimeEventMod) GetCatDaySaleEndTime() int64 { } func (l *LimitedTimeEventMod) AddSenceDashTimes() bool { - SenceInfo, ok := l.EventList[EVENT_TYPE_SENCE_DASH] + senceInfo, ok := l.EventList[EVENT_TYPE_SENCE_DASH] if !ok { return false } - if SenceInfo.Info == nil { + if senceInfo.Info == nil { return false } - SenceInfo.Info["Times"] = GoUtil.Int(SenceInfo.Info["Times"]) + 1 + senceInfo.Info["Times"] = GoUtil.Int(senceInfo.Info["Times"]) + 1 return true } diff --git a/src/server/game/mod/mining/mining.go b/src/server/game/mod/mining/mining.go index 1d63c060..253745c2 100644 --- a/src/server/game/mod/mining/mining.go +++ b/src/server/game/mod/mining/mining.go @@ -21,22 +21,22 @@ func (m *MiningMod) InitData() { } } -func (m *MiningMod) Login(Id int) int { - OldId := m.Id - if Id == 0 { +func (m *MiningMod) Login(id int) int { + oldId := m.Id + if id == 0 { m.Id = 0 - return OldId + return oldId } - if m.Id == Id { + if m.Id == id { return 0 } - m.Id = Id + m.Id = id m.Map = make(map[int32]string) m.Gem = nil m.Pass = 1 m.Mining = 0 m.InitItem = false - return OldId + return oldId } func (m *MiningMod) GetInitItem() []*item.Item { @@ -55,8 +55,8 @@ func (m *MiningMod) GetInitItem() []*item.Item { return nil } -func (m *MiningMod) ZeroUpdate(Id int) { - m.Login(Id) +func (m *MiningMod) ZeroUpdate(id int) { + m.Login(id) } func (m *MiningMod) GetMap() map[int32]string { @@ -75,7 +75,7 @@ func (m *MiningMod) GetMining() int { return m.Mining } -func (m *MiningMod) Take(Map map[int32]string, Gem int) ([]*item.Item, error) { +func (m *MiningMod) Take(miningMap map[int32]string, gem int) ([]*item.Item, error) { AreaNum := miningCfg.GetPassArea(m.Pass) if AreaNum == 0 { return nil, fmt.Errorf("pass is not exist") @@ -83,32 +83,32 @@ func (m *MiningMod) Take(Map map[int32]string, Gem int) ([]*item.Item, error) { if m.Mining+1 > AreaNum { return nil, fmt.Errorf("mining is full") } - if Gem > 0 { + if gem > 0 { GemList := miningCfg.GetPassGem(m.Pass) if len(m.Gem)+1 > len(GemList) { return nil, fmt.Errorf("gem is full") } - m.Map = Map + m.Map = miningMap m.Mining++ - m.Gem = append(m.Gem, Gem) + m.Gem = append(m.Gem, gem) return nil, nil } - m.Map = Map + m.Map = miningMap m.Mining++ - Items := miningCfg.GetRandItem() - return Items, nil + items := miningCfg.GetRandItem() + return items, nil } func (m *MiningMod) GetReward(orderFactor int) ([]*item.Item, int, error) { - GemList := miningCfg.GetPassGem(m.Pass) - if len(m.Gem) < len(GemList) { + gemList := miningCfg.GetPassGem(m.Pass) + if len(m.Gem) < len(gemList) { return nil, 0, fmt.Errorf("gem is not full") } - Items := miningCfg.GetPassItem(m.Pass, orderFactor) + items := miningCfg.GetPassItem(m.Pass, orderFactor) m.Pass++ - Ming := m.Mining + mining := m.Mining m.Mining = 0 m.Map = nil m.Gem = nil - return Items, Ming, nil + return items, mining, nil } diff --git a/src/server/game/mod/order/Order.go b/src/server/game/mod/order/Order.go index 163a98cc..f982cfa3 100644 --- a/src/server/game/mod/order/Order.go +++ b/src/server/game/mod/order/Order.go @@ -108,16 +108,16 @@ func (o *OrderMod) GetOrderList() map[int]Order { // 领取奖励 func (o *OrderMod) RewardOrder(id int) ([]*item.Item, []int, int, int, error) { - ItemList := make([]*item.Item, 0) - MergeList := make([]int, 0) + items := make([]*item.Item, 0) + mergeList := make([]int, 0) if v, ok := o.OrderList[id]; ok { o.LastOrder = v delete(o.OrderList, id) - Star := 0 + star := 0 for _, v := range v.MergeId { - Star += mergeDataCfg.GetStarById(v) + star += mergeDataCfg.GetStarById(v) } - ItemList = v.Items + items = v.Items if v.Type == Guide_type { return nil, v.MergeId, v.Type, 0, nil } @@ -130,9 +130,9 @@ func (o *OrderMod) RewardOrder(id int) ([]*item.Item, []int, int, int, error) { if GoUtil.InArray(79, o.FinishOrder) { o.AutoEmit, _ = GoUtil.PopStringElemSlice(o.AutoEmit, "I") } - return ItemList, v.MergeId, v.Type, Star, nil + return items, v.MergeId, v.Type, star, nil } - return ItemList, MergeList, 0, 0, fmt.Errorf("订单不存在, 订单id%d", id) + return items, mergeList, 0, 0, fmt.Errorf("订单不存在, 订单id%d", id) } func (o *OrderMod) CreateOrderSeed(Order *Order) error { for k, v := range o.OrderPool { @@ -145,41 +145,41 @@ func (o *OrderMod) CreateOrderSeed(Order *Order) error { return nil } -func (o *OrderMod) CreatOrderPool(lv int, Emit []int, EnergyMul int) error { +func (o *OrderMod) CreatOrderPool(lv int, emit []int, energyMul int) error { o.OrderPool = make(map[int]*Order) index := 1 for i := 0; i < 10; i++ { - ChessList := o.CreateNormalOrderSeed(lv, Emit, EnergyMul, DIFF_LOW) - if len(ChessList) == 0 { + chessList := o.CreateNormalOrderSeed(lv, emit, energyMul, DIFF_LOW) + if len(chessList) == 0 { continue } o.OrderPool[index] = &Order{ - MergeId: ChessList, + MergeId: chessList, Diff: DIFF_LOW, Timestamp: int64(index), } index++ } for i := 0; i < 10; i++ { - ChessList := o.CreateNormalOrderSeed(lv, Emit, EnergyMul, DIFF_MID) - if len(ChessList) == 0 { + chessList := o.CreateNormalOrderSeed(lv, emit, energyMul, DIFF_MID) + if len(chessList) == 0 { continue } o.OrderPool[index] = &Order{ - MergeId: ChessList, - Diff: DIFF_LOW, + MergeId: chessList, + Diff: DIFF_MID, Timestamp: int64(index), } index++ } for i := 0; i < 10; i++ { - ChessList := o.CreateNormalOrderSeed(lv, Emit, EnergyMul, DIFF_HIGH) - if len(ChessList) == 0 { + chessList := o.CreateNormalOrderSeed(lv, emit, energyMul, DIFF_HIGH) + if len(chessList) == 0 { continue } o.OrderPool[index] = &Order{ - MergeId: ChessList, - Diff: DIFF_LOW, + MergeId: chessList, + Diff: DIFF_HIGH, Timestamp: int64(index), } index++ @@ -188,45 +188,45 @@ func (o *OrderMod) CreatOrderPool(lv int, Emit []int, EnergyMul int) error { } // 触发生成新的固定订单 -func (o *OrderMod) TriggerOrder(lv int, Type string, Emit []int, EnergyMul int) error { - TriggerOrderList := orderCfg.GetStartOrderList() - FixedOrder := 0 +func (o *OrderMod) TriggerOrder(lv int, oType string, emit []int, energyMul int) error { + triggerOrderList := orderCfg.GetStartOrderList() + fixedOrder := 0 for _, v := range o.OrderList { if v.Type == Fixed_type { - FixedOrder++ + fixedOrder++ } } - OrderList := make(map[int]Order, len(o.OrderList)) + orderList := make(map[int]Order, len(o.OrderList)) for k, v := range o.OrderList { - OrderList[k] = v + orderList[k] = v } // 触发生成新的固定订单 - for _, v := range TriggerOrderList { + for _, v := range triggerOrderList { if GoUtil.InArray(v.Id, o.FinishOrder) { continue } - orderInfo, exists := OrderList[v.Id] + orderInfo, exists := orderList[v.Id] if exists && v.Preview == "" { continue } // 预览条件不为空且未存在且未完成 if v.Preview != "" && !exists && !GoUtil.InArray(v.Id, o.FinishOrder) { - if o.CheckCondition(lv, v.Preview, Type, Emit, FixedOrder, OrderList) { + if o.CheckCondition(lv, v.Preview, oType, emit, fixedOrder, orderList) { o.addFixOrder(v.Id, v.MergeList, Preview_type, v.Items) } } if v.Appear != "" { - if o.CheckCondition(lv, v.Appear, Type, Emit, FixedOrder, OrderList) { - Type := Fixed_type - OrderType := orderCfg.GetOrderType(v.Id) - if OrderType != 0 { - Type = OrderType + if o.CheckCondition(lv, v.Appear, oType, emit, fixedOrder, orderList) { + oType1 := Fixed_type + orderType := orderCfg.GetOrderType(v.Id) + if orderType != 0 { + oType1 = orderType } if exists { orderInfo.Type = Fixed_type o.OrderList[v.Id] = orderInfo } else { - o.addFixOrder(v.Id, v.MergeList, Type, v.Items) + o.addFixOrder(v.Id, v.MergeList, oType1, v.Items) if v.Id == 78 { o.Retire("D") o.AutoEmit = append(o.AutoEmit, "D") @@ -242,7 +242,7 @@ func (o *OrderMod) TriggerOrder(lv int, Type string, Emit []int, EnergyMul int) return nil } -func (o *OrderMod) CheckCondition(lv int, condition, Type string, Emit []int, FixedOrder int, OrderList map[int]Order) bool { +func (o *OrderMod) CheckCondition(lv int, condition, cType string, emit []int, fixedOrder int, orderList map[int]Order) bool { r1 := strings.Split(condition, "|") for _, v := range r1 { r2 := strings.Split(v, "=") @@ -252,7 +252,7 @@ func (o *OrderMod) CheckCondition(lv int, condition, Type string, Emit []int, Fi if !GoUtil.InArray(id, o.FinishOrder) && id != 0 { return false } - if id == 0 && Type != TRIGGER_TYPE_ORDER { + if id == 0 && cType != TRIGGER_TYPE_ORDER { return false } case "Lv": @@ -262,34 +262,34 @@ func (o *OrderMod) CheckCondition(lv int, condition, Type string, Emit []int, Fi } case "OrderNum": id := GoUtil.Int(r2[1]) - if FixedOrder != id { + if fixedOrder != id { return false } case "Order": id := GoUtil.Int(r2[1]) - _, ok := OrderList[id] + _, ok := orderList[id] if !GoUtil.InArray(id, o.FinishOrder) && !ok { return false } case "Emit": - Class := []string{} - for _, v := range Emit { - Class = append(Class, mergeDataCfg.GetEmitId(v)) + class := []string{} + for _, v := range emit { + class = append(class, mergeDataCfg.GetEmitId(v)) } - if !GoUtil.InStringArray(r2[1], Class) { + if !GoUtil.InStringArray(r2[1], class) { return false } case "EmitMax": - Class := []string{} - for _, v := range Emit { - EmitLv := mergeDataCfg.GetLvById(v) - MaxLv := mergeDataCfg.GetMaxLvById(v) - if EmitLv < MaxLv { + class := []string{} + for _, v := range emit { + emitLv := mergeDataCfg.GetLvById(v) + maxLv := mergeDataCfg.GetMaxLvById(v) + if emitLv < maxLv { continue } - Class = append(Class, mergeDataCfg.GetEmitId(v)) + class = append(class, mergeDataCfg.GetEmitId(v)) } - if !GoUtil.InStringArray(r2[1], Class) { + if !GoUtil.InStringArray(r2[1], class) { return false } } @@ -298,65 +298,65 @@ func (o *OrderMod) CheckCondition(lv int, condition, Type string, Emit []int, Fi } // 生成新订单 -func (o *OrderMod) CreateOrder(lv int, Emit []int, EnergyMul, OrderType int) error { - if len(Emit) == 0 { +func (o *OrderMod) CreateOrder(lv int, emit []int, energyMul, orderType int) error { + if len(emit) == 0 { return nil } /// 生成优先订单 - if o.CreatePriorityOrder(lv, Emit) { + if o.CreatePriorityOrder(lv, emit) { return nil } - err := o.CreateNormalOrder(lv, Emit, EnergyMul, OrderType) + err := o.CreateNormalOrder(lv, emit, energyMul, orderType) return err } -func (o *OrderMod) CreatePriorityOrder(lv int, Emit []int) bool { - if len(Emit) == 0 { +func (o *OrderMod) CreatePriorityOrder(lv int, emit []int) bool { + if len(emit) == 0 { return false } - ChessList := make(map[string]int) + chessList := make(map[string]int) for _, v := range o.OrderList { for _, vv := range v.MergeId { - Color := mergeDataCfg.GetColorById(vv) - if vvv, ok := ChessList[Color]; ok { - OldLv := mergeDataCfg.GetLvById(vvv) - NewLv := mergeDataCfg.GetLvById(vv) - if NewLv > OldLv { - ChessList[Color] = vv + color := mergeDataCfg.GetColorById(vv) + if vvv, ok := chessList[color]; ok { + oldLv := mergeDataCfg.GetLvById(vvv) + newLv := mergeDataCfg.GetLvById(vv) + if newLv > oldLv { + chessList[color] = vv } } else { - ChessList[Color] = vv + chessList[color] = vv } } } - for v := range Emit { - Produce := mergeDataCfg.GetEmitProduceChessType(v) - if len(Produce) < 2 { + for v := range emit { + produce := mergeDataCfg.GetEmitProduceChessType(v) + if len(produce) < 2 { continue } - for k, v := range ChessList { - if k == Produce[0] { - MaxLv := mergeDataCfg.GetMaxLvById(v) - DurLv := int((MaxLv - 3) * 1 / 3) - ChessLv := mergeDataCfg.GetLvById(v) - if ChessLv > (3 + DurLv*2) { + for k, v := range chessList { + if k == produce[0] { + maxLv := mergeDataCfg.GetMaxLvById(v) + durLv := int((maxLv - 3) * 1 / 3) + chessLv := mergeDataCfg.GetLvById(v) + if chessLv > (3 + durLv*2) { B := GoUtil.RandMap(map[int]int{0: 80, 1: 20}) if B == 1 { - NewColor := GoUtil.RandStringSlice(Produce[1:]) - DiffLv := GoUtil.RandMap(map[int]int{DIFF_LOW: 70, DIFF_MID: 30}) - NewChessId := 0 - switch DiffLv { + newColor := GoUtil.RandStringSlice(produce[1:]) + diffLv := GoUtil.RandMap(map[int]int{DIFF_LOW: 70, DIFF_MID: 30}) + newChessId := 0 + switch diffLv { case DIFF_LOW: - NewLv := GoUtil.RandNum(4, 3+DurLv) - NewChessId = mergeDataCfg.GetChessIdByLvAndColor(NewLv, NewColor) + newLv := GoUtil.RandNum(4, 3+durLv) + newChessId = mergeDataCfg.GetChessIdByLvAndColor(newLv, newColor) case DIFF_MID: - NewLv := GoUtil.RandNum(4+DurLv, 3+DurLv*2) - NewChessId = mergeDataCfg.GetChessIdByLvAndColor(NewLv, NewColor) + newLv := GoUtil.RandNum(4+durLv, 3+durLv*2) + newChessId = mergeDataCfg.GetChessIdByLvAndColor(newLv, newColor) } - if NewChessId == 0 { + if newChessId == 0 { continue } - o.addOrder([]int{NewChessId}, DiffLv, Common_type) + o.addOrder([]int{newChessId}, diffLv, Common_type) return true } } @@ -367,8 +367,8 @@ func (o *OrderMod) CreatePriorityOrder(lv int, Emit []int) bool { } // 生成新订单 -func (o *OrderMod) CreateNormalOrderSeed(lv int, Emit []int, EnergyMul int, Diff int) []int { - if len(Emit) == 0 { +func (o *OrderMod) CreateNormalOrderSeed(lv int, emit []int, energyMul int, diff int) []int { + if len(emit) == 0 { return nil } randNum := 0 @@ -379,7 +379,7 @@ func (o *OrderMod) CreateNormalOrderSeed(lv int, Emit []int, EnergyMul int, Diff break } randNum++ - mergeList, _, err = randOrderChessSeed(o, Emit, EnergyMul, Diff) + mergeList, _, err = randOrderChessSeed(o, emit, energyMul, diff) if err != nil { continue } @@ -400,8 +400,8 @@ func (o *OrderMod) CreateNormalOrderSeed(lv int, Emit []int, EnergyMul int, Diff } // 生成新订单 -func (o *OrderMod) CreateNormalOrder(lv int, Emit []int, EnergyMul, OrderType int) error { - if len(Emit) == 0 { +func (o *OrderMod) CreateNormalOrder(lv int, emit []int, energyMul, orderType int) error { + if len(emit) == 0 { return nil } randNum := 0 @@ -413,7 +413,7 @@ func (o *OrderMod) CreateNormalOrder(lv int, Emit []int, EnergyMul, OrderType in break } randNum++ - mergeList, OrderDiff, err = randOrderChess(o, lv, Emit, EnergyMul, OrderType) + mergeList, OrderDiff, err = randOrderChess(o, lv, emit, energyMul, orderType) if err != nil { continue } @@ -435,7 +435,7 @@ func (o *OrderMod) CreateNormalOrder(lv int, Emit []int, EnergyMul, OrderType in return nil } } - o.addOrder(mergeList, OrderDiff, OrderType) + o.addOrder(mergeList, OrderDiff, orderType) return nil } @@ -444,16 +444,16 @@ func (o *OrderMod) DeleteOrder(OrderId int) { } // 生成超级订单 -func (o *OrderMod) CreateSuperOrder(lv int, Emit []int, EnergyMul int) error { - if len(Emit) == 0 { +func (o *OrderMod) CreateSuperOrder(lv int, emit []int, energyMul int) error { + if len(emit) == 0 { return nil } randNum := 0 mergeList := make([]int, 0) // 忽视上一个订单的难度,生成此订单时,难度默认为50%概率的中难度、50%概率的高难度 - OrderDiff := DIFF_MID + orderDiff := DIFF_MID if GoUtil.RandNum(1, 100) <= 50 { - OrderDiff = DIFF_HIGH + orderDiff = DIFF_HIGH } var err error for { @@ -461,7 +461,7 @@ func (o *OrderMod) CreateSuperOrder(lv int, Emit []int, EnergyMul int) error { break } randNum++ - mergeList, OrderDiff, err = randSuperOrderChess(o, lv, Emit, EnergyMul, OrderDiff) + mergeList, orderDiff, err = randSuperOrderChess(o, lv, emit, energyMul, orderDiff) if err != nil { continue } @@ -478,92 +478,92 @@ func (o *OrderMod) CreateSuperOrder(lv int, Emit []int, EnergyMul int) error { } break } - o.addOrder(mergeList, OrderDiff, Super_type) + o.addOrder(mergeList, orderDiff, Super_type) return nil } -func (o *OrderMod) addOrder(ChessList []int, Diff int, Type int) int { +func (o *OrderMod) addOrder(chessList []int, diff int, oType int) int { o.Auto_id++ Order := Order{ - MergeId: ChessList, - Diff: Diff, - Type: Type, + MergeId: chessList, + Diff: diff, + Type: oType, Timestamp: time.Now().Unix(), Items: nil, } o.OrderList[o.Auto_id] = Order - if Type == Common_type { + if oType == Common_type { o.LastNormalOrder = Order } - o.LastDiff = Diff + o.LastDiff = diff return o.Auto_id } -func (o *OrderMod) AddExtraOrder(ChessList []int) { - o.addOrder(ChessList, DIFF_LOW, Extra_type) +func (o *OrderMod) AddExtraOrder(chessList []int) { + o.addOrder(chessList, DIFF_LOW, Extra_type) } -func (o *OrderMod) AddFixOrder(Id int, ChessList []int, Type int, Items []*item.Item) { - o.addFixOrder(Id, ChessList, Type, Items) +func (o *OrderMod) AddFixOrder(Id int, chessList []int, oType int, items []*item.Item) { + o.addFixOrder(Id, chessList, oType, items) } -func (o *OrderMod) addFixOrder(Id int, ChessList []int, Type int, Items []*item.Item) { +func (o *OrderMod) addFixOrder(Id int, chessList []int, oType int, items []*item.Item) { Order := Order{ - MergeId: ChessList, - Type: Type, + MergeId: chessList, + Type: oType, Timestamp: time.Now().Unix(), - Items: Items, + Items: items, } o.OrderList[Id] = Order } -func (o *OrderMod) AddPreheatOrder(ChessList []int, Diff int, Type int, Items []*item.Item) int { - return o.addPreheatOrder(ChessList, Diff, Type, Items) +func (o *OrderMod) AddPreheatOrder(chessList []int, diff int, oType int, items []*item.Item) int { + return o.addPreheatOrder(chessList, diff, oType, items) } -func (o *OrderMod) addPreheatOrder(ChessList []int, Diff int, Type int, Items []*item.Item) int { +func (o *OrderMod) addPreheatOrder(chessList []int, diff int, oType int, items []*item.Item) int { o.Auto_id++ Order := Order{ - MergeId: ChessList, - Diff: Diff, - Type: Type, + MergeId: chessList, + Diff: diff, + Type: oType, Timestamp: time.Now().Unix(), - Items: Items, + Items: items, } o.OrderList[o.Auto_id] = Order return o.Auto_id } -func (o *OrderMod) CreateCleanOrder(ChessList []int) bool { - o.addOrder(ChessList, DIFF_LOW, Clean_type) +func (o *OrderMod) CreateCleanOrder(chessList []int) bool { + o.addOrder(chessList, DIFF_LOW, Clean_type) return true } -func (o *OrderMod) CreateCleanOrder2(ChessList []int) bool { - o.addOrder(ChessList, DIFF_LOW, Clean_Order_type) +func (o *OrderMod) CreateCleanOrder2(chessList []int) bool { + o.addOrder(chessList, DIFF_LOW, Clean_Order_type) return true } -func (o *OrderMod) CreateExtraOrder(AddChess, AddNewEmit, ChessList []int, EnergyMul, Level int) bool { - BeginExtraEmitId := orderCfg.GetEmitExtraOrder() // 从发射器F系列开始 +func (o *OrderMod) CreateExtraOrder(addChess, addNewEmit, chessList []int, energyMul, level int) bool { + beginExtraEmitId := orderCfg.GetEmitExtraOrder() // 从发射器F系列开始 b1 := false - OrderEmit := 0 - MaxLvChess := make(map[int]int) - for _, v := range AddNewEmit { - Emit_Id := mergeDataCfg.GetEmitId(v) - ok := Emit_Id >= BeginExtraEmitId - _, ok1 := o.EimtOrder[Emit_Id] + orderEmit := 0 + maxLvChess := make(map[int]int) + for _, v := range addNewEmit { + emit_Id := mergeDataCfg.GetEmitId(v) + ok := emit_Id >= beginExtraEmitId + _, ok1 := o.EimtOrder[emit_Id] ChessColor := mergeDataCfg.GetEmitProduceChessType(v) if ok && !ok1 && len(ChessColor) > 0 { b1 = true - OrderEmit = v - o.EimtOrder[Emit_Id] = struct{}{} + orderEmit = v + o.EimtOrder[emit_Id] = struct{}{} break } } - for _, ChessId := range AddChess { - Lv := mergeDataCfg.GetLvById(ChessId) - Type := mergeDataCfg.GetTypeById(ChessId) - if Type != "Product" { + for _, ChessId := range addChess { + lv := mergeDataCfg.GetLvById(ChessId) + cType := mergeDataCfg.GetTypeById(ChessId) + if cType != "Product" { continue } - MaxLv := mergeDataCfg.GetMaxLvById(ChessId) - if Lv == MaxLv { - MaxLvChess[ChessId]++ + maxLv := mergeDataCfg.GetMaxLvById(ChessId) + if lv == maxLv { + maxLvChess[ChessId]++ } } b3 := false @@ -586,15 +586,15 @@ func (o *OrderMod) CreateExtraOrder(AddChess, AddNewEmit, ChessList []int, Energ // } //额外订单补充1;CDEG发射器首次合成时,生成其对应2及棋子订单,完成后生成3及,再完成生成4及的; if b1 { - ChessColor := mergeDataCfg.GetEmitProduceChessType(OrderEmit) - if len(ChessColor) == 0 { + chessColor := mergeDataCfg.GetEmitProduceChessType(orderEmit) + if len(chessColor) == 0 { return b1 } - ChessId := mergeDataCfg.GetChessIdByLvAndColor(EnergyMul+1, ChessColor[0]) - if ChessId != 0 { - o.PreheatStep[ChessColor[0]] = 1 + chessId := mergeDataCfg.GetChessIdByLvAndColor(energyMul+1, chessColor[0]) + if chessId != 0 { + o.PreheatStep[chessColor[0]] = 1 Items := PreheatItems[1] - o.addPreheatOrder([]int{ChessId}, DIFF_LOW, Preheat_type, Items) + o.addPreheatOrder([]int{chessId}, DIFF_LOW, Preheat_type, Items) } } return b1 || b3 @@ -602,19 +602,19 @@ func (o *OrderMod) CreateExtraOrder(AddChess, AddNewEmit, ChessList []int, Energ // 返回订单列表 func (o *OrderMod) BackData() *msg.ResOrderList { - OrderList := make([]*msg.Order, 0) + orderList := make([]*msg.Order, 0) for k, v := range o.OrderList { mergeList := GoUtil.IntToInt32(v.MergeId) - Order := &msg.Order{ + order := &msg.Order{ Id: int32(k), ChessId: mergeList, Type: int32(v.Type), Items: item.ItemToMsg(v.Items), } - OrderList = append(OrderList, Order) + orderList = append(orderList, order) } return &msg.ResOrderList{ - OrderList: OrderList, + OrderList: orderList, } } @@ -638,41 +638,41 @@ func (o *OrderMod) CheckSuperOrder() bool { /* * 根据能量倍数 调整订单 */ -func (o *OrderMod) ChangeEnergyMul(lv int, Emit []int, EnergyMul int, ChessList []int) { +func (o *OrderMod) ChangeEnergyMul(lv int, emit []int, energyMul int, chessList []int) { for k, v := range o.OrderList { if v.Type == Preheat_type { // 预热订单 修改倍数时修改棋子等级 - ChessId := v.MergeId[0] - ChessColor := mergeDataCfg.GetColorById(ChessId) - PreheatStep := o.PreheatStep[ChessColor] - NewChessId := mergeDataCfg.GetChessIdByLvAndColor(EnergyMul+PreheatStep, ChessColor) - if NewChessId == 0 { + chessId := v.MergeId[0] + chessColor := mergeDataCfg.GetColorById(chessId) + preheatStep := o.PreheatStep[chessColor] + newChessId := mergeDataCfg.GetChessIdByLvAndColor(energyMul+preheatStep, chessColor) + if newChessId == 0 { continue } delete(o.OrderList, k) - Items, ok := PreheatItems[PreheatStep] + items, ok := PreheatItems[preheatStep] if !ok { - Items = []*item.Item{item.NewItem(item.ITEM_STAR_ID, GetOrderStar([]int{NewChessId}, Emit))} + items = []*item.Item{item.NewItem(item.ITEM_STAR_ID, GetOrderStar([]int{newChessId}, emit))} } - o.addPreheatOrder([]int{NewChessId}, DIFF_LOW, Preheat_type, Items) + o.addPreheatOrder([]int{newChessId}, DIFF_LOW, Preheat_type, items) } } - MaxStep := orderCfg.GetMaxStep() - if o.Step < MaxStep { // 还在新手引导阶段 + maxStep := orderCfg.GetMaxStep() + if o.Step < maxStep { // 还在新手引导阶段 return } for k, v := range o.OrderList { - NeedTrigger := false + needTrigger := false for _, vv := range v.MergeId { - Lv := mergeDataCfg.GetLvById(vv) - Color := mergeDataCfg.GetColorById(vv) - EmitId := GetEmitByColor(Emit, Color) - _, Max := getChesslvRange(EmitId, EnergyMul, o.IsCharge) - Adjust := mergeDataCfg.GetAdjust(EmitId, Color, EnergyMul) - if Lv >= EnergyMul+1 && Lv <= Max-Adjust { + lv := mergeDataCfg.GetLvById(vv) + color := mergeDataCfg.GetColorById(vv) + emitId := GetEmitByColor(emit, color) + _, max := getChesslvRange(emitId, energyMul, o.IsCharge) + adjust := mergeDataCfg.GetAdjust(emitId, color, energyMul) + if lv >= energyMul+1 && lv <= max-adjust { continue } - NeedTrigger = true + needTrigger = true } if v.Type != Common_type && v.Type != Pet_type { @@ -684,41 +684,41 @@ func (o *OrderMod) ChangeEnergyMul(lv int, Emit []int, EnergyMul int, ChessList 订单棋子等级>n+11 且该棋子在棋盘上没有 则删除该订单,重新生成一个普通订单 */ - if NeedTrigger { + if needTrigger { delete(o.OrderList, k) - o.CreateNormalOrder(lv, Emit, EnergyMul, v.Type) + o.CreateNormalOrder(lv, emit, energyMul, v.Type) } } } -func (o *OrderMod) Retire(EmitId string) { - ChessPool := make([]int, 0) - Product := mergeDataCfg.GetEmitOrderProduce(EmitId) +func (o *OrderMod) Retire(emitId string) { + chessPool := make([]int, 0) + product := mergeDataCfg.GetEmitOrderProduce(emitId) for _, v := range o.ChessPool { - Color := mergeDataCfg.GetColorById(v) - if GoUtil.InStringArray(Color, Product) { + color := mergeDataCfg.GetColorById(v) + if GoUtil.InStringArray(color, product) { continue } - ChessPool = append(ChessPool, v) + chessPool = append(chessPool, v) } - o.ChessPool = ChessPool + o.ChessPool = chessPool o.ColorShuffle = nil } -func (o *OrderMod) DelOrder(OrderId int) (*Order, error) { - Order, ok := o.OrderList[OrderId] +func (o *OrderMod) DelOrder(orderId int) (*Order, error) { + order, ok := o.OrderList[orderId] if !ok { return nil, fmt.Errorf("order not exist") } - if Order.Type != Clean_Order_type { + if order.Type != Clean_Order_type { return nil, fmt.Errorf("order type wrong") } - delete(o.OrderList, OrderId) - return &Order, nil + delete(o.OrderList, orderId) + return &order, nil } -func (o *OrderMod) CreateComfortOrder(lv int, Emit []int, EnergyMul, Diff, ChessNum int) error { - if len(Emit) == 0 { +func (o *OrderMod) CreateComfortOrder(lv int, emit []int, energyMul, diff, chessNum int) error { + if len(emit) == 0 { return nil } randNum := 0 @@ -729,14 +729,14 @@ func (o *OrderMod) CreateComfortOrder(lv int, Emit []int, EnergyMul, Diff, Chess break } randNum++ - mergeList, _, err = randOrderChessWithDiff(o, Emit, EnergyMul, Diff, ChessNum) + mergeList, _, err = randOrderChessWithDiff(o, emit, energyMul, diff, chessNum) if err != nil { continue } break } - o.addOrder(mergeList, Diff, COMFORT_TYPE) + o.addOrder(mergeList, diff, COMFORT_TYPE) return nil } diff --git a/src/server/game/mod/order/order_func.go b/src/server/game/mod/order/order_func.go index 45955ffe..cdeb003a 100644 --- a/src/server/game/mod/order/order_func.go +++ b/src/server/game/mod/order/order_func.go @@ -130,42 +130,42 @@ func getOrderDiffRand(Lv, Diff int) map[int]int { return d } -func getChessByDiff(Lv, Diff, Type int) (int, int, int) { - if Type == Common_type { - switch Diff { +func getChessByDiff(lv, diff, cType int) (int, int, int) { + if cType == Common_type { + switch diff { case DIFF_MID: return 100, 600, GoUtil.RandMap(map[int]int{1: 50, 2: 50}) case DIFF_HIGH: return 500, 1200, GoUtil.RandMap(map[int]int{1: 33, 2: 67}) default: - if Lv < 23 { + if lv < 23 { return 15, 150, GoUtil.RandMap(map[int]int{1: 67, 2: 33}) } return 30, 200, GoUtil.RandMap(map[int]int{1: 67, 2: 33}) } } - if Type == Pet_type { + if cType == Pet_type { return 40, 200, GoUtil.RandMap(map[int]int{1: 50, 2: 50}) } - if Type == Part_type { + if cType == Part_type { return 100, 600, GoUtil.RandMap(map[int]int{1: 50, 2: 50}) } - if Type == COMFORT_TYPE { + if cType == COMFORT_TYPE { return 15, 150, GoUtil.RandMap(map[int]int{1: 33, 2: 67}) } return 100, 600, GoUtil.RandMap(map[int]int{1: 50, 2: 50}) } // 根据订单难度生成棋子难度 -func getChessDiff(ChessNum, OrderDiff int) map[int]int { +func getChessDiff(chessNum, orderDiff int) map[int]int { var rs map[int]int - switch ChessNum { + switch chessNum { case 1: rs = map[int]int{ - 1: OrderDiff, + 1: orderDiff, } case 2: - switch OrderDiff { + switch orderDiff { case DIFF_LOW: rand := map[int]int{ DIFF_LOW: 99, @@ -199,7 +199,7 @@ func getChessDiff(ChessNum, OrderDiff int) map[int]int { } } case 3: - switch OrderDiff { + switch orderDiff { case DIFF_LOW: rand := map[int]int{ DIFF_LOW: 95, @@ -254,146 +254,146 @@ func getChessDiff(ChessNum, OrderDiff int) map[int]int { } // 根据难度生成棋子等级 -func getChessLv(Min, Max, Diff int) int { - Start := Min - End := Max - if Max-Min >= 5 { - switch Diff { +func getChessLv(minNum, maxNum, diff int) int { + start := minNum + end := maxNum + if maxNum-minNum >= 5 { + switch diff { case DIFF_LOW: - End = Min + (Max-Min+1)/3 - 1 + end = minNum + (maxNum-minNum+1)/3 - 1 case DIFF_MID: - Start = Min + (Max-Min+1)/3 - End = Min + (Max-Min+1)/3*2 - 1 + start = minNum + (maxNum-minNum+1)/3 + end = minNum + (maxNum-minNum+1)/3*2 - 1 case DIFF_HIGH: - Start = Min + (Max-Min+1)/3*2 + start = minNum + (maxNum-minNum+1)/3*2 } } - if Max-Min == 2 { - Start = Max - Diff + 1 - End = Start + if maxNum-minNum == 2 { + start = maxNum - diff + 1 + end = start } - if Max-Min == 3 { - switch Diff { + if maxNum-minNum == 3 { + switch diff { case DIFF_LOW: - End = Min + 1 + end = minNum + 1 case DIFF_MID: - Start = Min + 2 - End = Min + 2 + start = minNum + 2 + end = minNum + 2 case DIFF_HIGH: - Start = Min + 3 - End = Min + 3 + start = minNum + 3 + end = minNum + 3 } } - if Max-Min == 4 { - switch Diff { + if maxNum-minNum == 4 { + switch diff { case DIFF_LOW: - End = Min + 1 + end = minNum + 1 case DIFF_MID: - Start = Min + 2 - End = Min + 3 + start = minNum + 2 + end = minNum + 3 case DIFF_HIGH: - Start = Min + 4 - End = Min + 4 + start = minNum + 4 + end = minNum + 4 } } - Start = max(Min, Start) - End = max(Start, End) - End = min(Max, End) - return GoUtil.RandNum(Start, End) + start = max(minNum, start) + end = max(start, end) + end = min(maxNum, end) + return GoUtil.RandNum(start, end) } -func getChessLvRange(Min, Max, Diff int) []int { - Start := Min - End := Max - if Max-Min >= 5 { - switch Diff { +func getChessLvRange(minNum, maxNum, diff int) []int { + start := minNum + end := maxNum + if maxNum-minNum >= 5 { + switch diff { case DIFF_LOW: - End = Min + (Max-Min+1)/3 - 1 + end = minNum + (maxNum-minNum+1)/3 - 1 case DIFF_MID: - Start = Min + (Max-Min+1)/3 - End = Min + (Max-Min+1)/3*2 - 1 + start = minNum + (maxNum-minNum+1)/3 + end = minNum + (maxNum-minNum+1)/3*2 - 1 case DIFF_HIGH: - Start = Min + (Max-Min+1)/3*2 + start = minNum + (maxNum-minNum+1)/3*2 } } - if Max-Min == 4 { - switch Diff { + if maxNum-minNum == 4 { + switch diff { case DIFF_LOW: - End = Min + 1 + end = minNum + 1 case DIFF_MID: - Start = Min + 2 - End = Min + 3 + start = minNum + 2 + end = minNum + 3 case DIFF_HIGH: - Start = Min + 4 + start = minNum + 4 } } - if Max-Min == 3 { - switch Diff { + if maxNum-minNum == 3 { + switch diff { case DIFF_LOW: - End = Min + 1 + end = minNum + 1 case DIFF_MID: - Start = Min + 2 - End = Min + 2 + start = minNum + 2 + end = minNum + 2 case DIFF_HIGH: - Start = Min + 3 + start = minNum + 3 } } - Start = max(Min, Start) - End = max(Start, End) - End = min(Max, End) + start = max(minNum, start) + end = max(start, end) + end = min(maxNum, end) r := make([]int, 0) - for i := Start; i <= End; i++ { + for i := start; i <= end; i++ { r = append(r, i) } return r } // 宝箱雨随机棋子类型 -func RandChessColor(Emit []int) string { +func RandChessColor(emit []int) string { r := make(map[string]int) - for _, v := range Emit { - Produce := mergeDataCfg.GetEmitProduceType(v) - if len(Produce) == 0 { + for _, v := range emit { + produce := mergeDataCfg.GetEmitProduceType(v) + if len(produce) == 0 { continue } - if len(Produce) == 1 { - if Produce[0] == "" { + if len(produce) == 1 { + if produce[0] == "" { continue } - r[Produce[0]] = 100 + r[produce[0]] = 100 continue } - r[Produce[0]] = 80 - r[Produce[1]] = 20 + r[produce[0]] = 80 + r[produce[1]] = 20 } return GoUtil.RandStringMap(r) } // 获取棋子等级范围 -func getChesslvRange(Emit int, EnergyMul int, IsCharge bool) (int, int) { - RandEmitLv := mergeDataCfg.GetLvById(Emit) - EmitId := mergeDataCfg.GetEmitId(Emit) - RandMaxLv := mergeDataCfg.GetMaxLvById(Emit) - RandEmitMinLv := mergeDataCfg.GetEmitMinLvById(EmitId) - Ratio := mergeDataCfg.GetEmitRatio(EmitId) - m := int(float64(1+RandEmitLv-RandEmitMinLv) / float64(1+RandMaxLv-RandEmitMinLv) / Ratio * 100) +func getChesslvRange(emit int, EnergyMul int, IsCharge bool) (int, int) { + randEmitLv := mergeDataCfg.GetLvById(emit) + emitId := mergeDataCfg.GetEmitId(emit) + randMaxLv := mergeDataCfg.GetMaxLvById(emit) + randEmitMinLv := mergeDataCfg.GetEmitMinLvById(emitId) + ratio := mergeDataCfg.GetEmitRatio(emitId) + m := int(float64(1+randEmitLv-randEmitMinLv) / float64(1+randMaxLv-randEmitMinLv) / ratio * 100) if IsCharge { m += 10 } m = max(1, m) m = min(100, m) - ChessMinLev := orderCfg.GetLvMin(EnergyMul) - ChessMaxLev := orderCfg.GetLvMax(EnergyMul, m) - return ChessMinLev, ChessMaxLev + chessMinLev := orderCfg.GetLvMin(EnergyMul) + chessMaxLev := orderCfg.GetLvMax(EnergyMul, m) + return chessMinLev, chessMaxLev } // 根据类型获取发射器id -func GetEmitByColor(Emit []int, color string) int { - sort.Ints(Emit) - for _, v := range Emit { - Produce := mergeDataCfg.GetEmitProduceChessType(v) - for _, c := range Produce { +func GetEmitByColor(emit []int, color string) int { + sort.Ints(emit) + for _, v := range emit { + produce := mergeDataCfg.GetEmitProduceChessType(v) + for _, c := range produce { if c == color { return v } @@ -402,109 +402,109 @@ func GetEmitByColor(Emit []int, color string) int { return 0 } -func GetVirtualEnergy(MergeList, EmitList []int) int { +func GetVirtualEnergy(mergeList, emitList []int) int { eneryg := 0 - for _, v := range MergeList { - ChessLv := mergeDataCfg.GetLvById(v) - Color := mergeDataCfg.GetColorById(v) - EmitId := GetEmitByColor(EmitList, Color) - if EmitId == 0 { + for _, v := range mergeList { + chessLv := mergeDataCfg.GetLvById(v) + color := mergeDataCfg.GetColorById(v) + emitId := GetEmitByColor(emitList, color) + if emitId == 0 { continue } - NewChessLv := mergeDataCfg.DynamicLevRev(ChessLv, EmitId, Color) - eneryg += int(math.Pow(2, float64(NewChessLv-1))) + newChessLv := mergeDataCfg.DynamicLevRev(chessLv, emitId, color) + eneryg += int(math.Pow(2, float64(newChessLv-1))) } return eneryg } // randSuperOrderChess 随机生成超级订单棋子 -func randSuperOrderChess(o *OrderMod, lv int, Emit []int, EnergyMul, OrderDiff int) ([]int, int, error) { - initReflectChess(Emit, EnergyMul) +func randSuperOrderChess(o *OrderMod, lv int, emit []int, energyMul, orderDiff int) ([]int, int, error) { + initReflectChess(emit, energyMul) filterPool(o) - OrderN, err := userCfg.GetOrderNByLv(lv) - RandChessNum := map[int]int{ - 2: 70 - OrderN, - 3: 30 + OrderN, + orderN, err := userCfg.GetOrderNByLv(lv) + randChessNum := map[int]int{ + 2: 70 - orderN, + 3: 30 + orderN, } if err != nil { return nil, DIFF_LOW, err } - ChessNum := GoUtil.RandMap(RandChessNum) - ChessDiff := getChessDiff(ChessNum, OrderDiff) - return buildMergeListFromDiff(o, ChessDiff, Emit, EnergyMul, OrderDiff) + chessNum := GoUtil.RandMap(randChessNum) + chessDiff := getChessDiff(chessNum, orderDiff) + return buildMergeListFromDiff(o, chessDiff, emit, energyMul, orderDiff) } // randOrderChessWithDiff 随机生成订单棋子 -func randOrderChessWithDiff(o *OrderMod, Emit []int, EnergyMul, OrderDiff, ChessNum int) ([]int, int, error) { - initReflectChess(Emit, EnergyMul) +func randOrderChessWithDiff(o *OrderMod, emit []int, energyMul, orderDiff, chessNum int) ([]int, int, error) { + initReflectChess(emit, energyMul) filterPool(o) - ChessDiff := getChessDiff(ChessNum, OrderDiff) - return buildMergeListFromDiff(o, ChessDiff, Emit, EnergyMul, OrderDiff) + chessDiff := getChessDiff(chessNum, orderDiff) + return buildMergeListFromDiff(o, chessDiff, emit, energyMul, orderDiff) } // 随机生成订单棋子 -func randOrderChess(o *OrderMod, lv int, Emit []int, EnergyMul, OrderType int) ([]int, int, error) { - initReflectChess(Emit, EnergyMul) +func randOrderChess(o *OrderMod, lv int, emit []int, energyMul, orderType int) ([]int, int, error) { + initReflectChess(emit, energyMul) filterPool(o) // 生成订单难度和棋子数量 - OrderDiffRand := getOrderDiffRand(lv, o.LastDiff) - OrderDiff := GoUtil.RandMap(OrderDiffRand) + orderDiffRand := getOrderDiffRand(lv, o.LastDiff) + orderDiff := GoUtil.RandMap(orderDiffRand) if o.NextDiff != 0 { - OrderDiff = o.NextDiff + orderDiff = o.NextDiff o.NextDiff = 0 } //获取订单体力范围和棋子数量 - MinEnergy, MaxEnergy, ChessNum := getChessByDiff(lv, OrderDiff, OrderType) - mergeList := getChessFromPoolByEnergy(o, MinEnergy, MaxEnergy, ChessNum, Emit, EnergyMul, OrderDiff, OrderType) - return mergeList, OrderDiff, nil + MinEnergy, MaxEnergy, ChessNum := getChessByDiff(lv, orderDiff, orderType) + mergeList := getChessFromPoolByEnergy(o, MinEnergy, MaxEnergy, ChessNum, emit, energyMul, orderDiff, orderType) + return mergeList, orderDiff, nil } -func randOrderChessSeed(o *OrderMod, Emit []int, EnergyMul, OrderDiff int) ([]int, int, error) { - initReflectChess(Emit, EnergyMul) +func randOrderChessSeed(o *OrderMod, emit []int, energyMul, orderDiff int) ([]int, int, error) { + initReflectChess(emit, energyMul) filterPool(o) - ChessDiff := getChessDiff(2, OrderDiff) - return buildMergeListFromDiff(o, ChessDiff, Emit, EnergyMul, OrderDiff) + chessDiff := getChessDiff(2, orderDiff) + return buildMergeListFromDiff(o, chessDiff, emit, energyMul, orderDiff) } // buildMergeListFromDiff 根据棋子难度映射表从池中取棋子(提取三处重复逻辑) -func buildMergeListFromDiff(o *OrderMod, ChessDiff map[int]int, Emit []int, EnergyMul, OrderDiff int) ([]int, int, error) { - mergeList := make([]int, 0, len(ChessDiff)) - for _, v := range ChessDiff { - ChessId := 0 +func buildMergeListFromDiff(o *OrderMod, chessDiff map[int]int, emit []int, energyMul, orderDiff int) ([]int, int, error) { + mergeList := make([]int, 0, len(chessDiff)) + for _, v := range chessDiff { + chessId := 0 for n := 0; n < 50; n++ { - ChessId = getChessFromPoolByDiff(o, v, Emit, EnergyMul) - if ChessId != 0 && !GoUtil.InArray(ChessId, mergeList) { + chessId = getChessFromPoolByDiff(o, v, emit, energyMul) + if chessId != 0 && !GoUtil.InArray(chessId, mergeList) { break } } - mergeList = append(mergeList, ChessId) + mergeList = append(mergeList, chessId) } - return mergeList, OrderDiff, nil + return mergeList, orderDiff, nil } // 筛选棋子池 从中剔除不符合难度的棋子 func filterPool(o *OrderMod) { - var NewPool []int + var newPool []int for _, v := range o.ChessPool { if _, ok := reflectChess[v]; ok { - NewPool = append(NewPool, v) + newPool = append(newPool, v) } } - o.ChessPool = NewPool + o.ChessPool = newPool } -func ShuffleColor(List []string, Last string) []string { - if len(List) <= 1 { - return List +func ShuffleColor(list []string, last string) []string { + if len(list) <= 1 { + return list } Break := 0 - var List2 []string - var List3 []string - for _, v := range List { + var list2 []string + var list3 []string + for _, v := range list { if mergeDataCfg.GetEmitProductNumByColor(v) == 1 { - List3 = append(List3, v) + list3 = append(list3, v) } else { - List2 = append(List2, v) + list2 = append(list2, v) } } @@ -514,7 +514,7 @@ func ShuffleColor(List []string, Last string) []string { break } Same := false - NewList := GoUtil.ShuffleStringArray(List2) + NewList := GoUtil.ShuffleStringArray(list2) for i := 1; i < len(NewList); i++ { BeforeSries := mergeDataCfg.GetEmitTypeByColor(NewList[i-1]) NowSries := mergeDataCfg.GetEmitTypeByColor(NewList[i]) @@ -523,9 +523,9 @@ func ShuffleColor(List []string, Last string) []string { break } } - // 将 List3 随机插入 NewList 中 - if len(List3) > 0 { - for _, v := range GoUtil.ShuffleStringArray(List3) { + // 将 list3 随机插入 NewList 中 + if len(list3) > 0 { + for _, v := range GoUtil.ShuffleStringArray(list3) { idx := GoUtil.RandNum(0, len(NewList)) if idx >= len(NewList) { NewList = append(NewList, v) @@ -535,7 +535,7 @@ func ShuffleColor(List []string, Last string) []string { } } } - if NewList[0] == Last { + if NewList[0] == last { continue } @@ -543,149 +543,148 @@ func ShuffleColor(List []string, Last string) []string { return NewList } } - L1 := make(map[string][]string, 0) - for _, v := range List { + sriesList := make(map[string][]string, 0) + for _, v := range list { Sries := mergeDataCfg.GetEmitTypeByColor(v) - L1[Sries] = append(L1[Sries], v) + sriesList[Sries] = append(sriesList[Sries], v) } - List = make([]string, 0) - for _, v := range L1 { - - List = append(List, v[0]) + list = make([]string, 0) + for _, v := range sriesList { + list = append(list, v[0]) } - for _, v := range L1 { + for _, v := range sriesList { if len(v) > 1 { - List = append(List, v[1]) + list = append(list, v[1]) } } - for _, v := range L1 { + for _, v := range sriesList { if len(v) > 2 { - List = append(List, v[2]) + list = append(list, v[2]) } } - if List[0] == Last { - List[0], List[1] = List[1], List[0] + if list[0] == last { + list[0], list[1] = list[1], list[0] } - return List + return list } // 获取发射器系列 -func getEmitSeries(o *OrderMod, Emit []int, OrderType int) string { - o.initColorShuffle(Emit) - PopEmitId := "" - NewSlice := make([]string, 0) - ChessColorNum := map[string]int{} +func getEmitSeries(o *OrderMod, emit []int, orderType int) string { + o.initColorShuffle(emit) + popEmitId := "" + newSlice := make([]string, 0) + chessColorNum := map[string]int{} for _, v := range o.OrderList { for _, c := range v.MergeId { - Color := mergeDataCfg.GetColorById(c) - ChessColorNum[Color]++ + color := mergeDataCfg.GetColorById(c) + chessColorNum[color]++ } } - Break := 0 + breakNum := 0 for { - if Break > 1000 { + if breakNum > 1000 { break } - Break++ - PopEmitId, NewSlice = GoUtil.PopStringArray(o.ColorShuffle) - o.ColorShuffle = NewSlice - if PopEmitId == "" { - o.initColorShuffle(Emit) + breakNum++ + popEmitId, newSlice = GoUtil.PopStringArray(o.ColorShuffle) + o.ColorShuffle = newSlice + if popEmitId == "" { + o.initColorShuffle(emit) continue } - if o.LastColor == PopEmitId { + if o.LastColor == popEmitId { continue } - if OrderType == Pet_type { - EmitId := getEmitBySeries(Emit, PopEmitId) - EmitInfo, _ := mergeDataCfg.GetOne(EmitId) - if EmitInfo.Emit_Type == "auto" { + if orderType == Pet_type { + emitId := getEmitBySeries(emit, popEmitId) + emitInfo, _ := mergeDataCfg.GetOne(emitId) + if emitInfo.Emit_Type == "auto" { continue } } - PopEmitIdProductNum := mergeDataCfg.GetEmitProductNumByColor(PopEmitId) - o.initColorShuffle(Emit) + popEmitIdProductNum := mergeDataCfg.GetEmitProductNumByColor(popEmitId) + o.initColorShuffle(emit) // 单链棋子 且订单中已有两个 跳过 - if PopEmitIdProductNum == 1 && ChessColorNum[PopEmitId] >= 2 { + if popEmitIdProductNum == 1 && chessColorNum[popEmitId] >= 2 { continue } else { break } } - o.ColorShuffle = NewSlice - o.LastColor = PopEmitId - o.initColorShuffle(Emit) - return PopEmitId + o.ColorShuffle = newSlice + o.LastColor = popEmitId + o.initColorShuffle(emit) + return popEmitId } -func (o *OrderMod) initColorShuffle(Emit []int) { +func (o *OrderMod) initColorShuffle(emit []int) { if len(o.ColorShuffle) == 0 { - ColorShuffle := make([]string, 0) - for _, v := range Emit { - EmitId := mergeDataCfg.GetEmitId(v) - if GoUtil.InStringArray(EmitId, o.AutoEmit) { + colorShuffle := make([]string, 0) + for _, v := range emit { + emitId := mergeDataCfg.GetEmitId(v) + if GoUtil.InStringArray(emitId, o.AutoEmit) { continue } - EmitProduct := mergeDataCfg.GetEmitProduceType(v) + emitProduct := mergeDataCfg.GetEmitProduceType(v) - if len(EmitProduct) == 0 || EmitProduct[0] == "" { + if len(emitProduct) == 0 || emitProduct[0] == "" { continue } - Preheat, ok := o.PreheatStep[EmitProduct[0]] + Preheat, ok := o.PreheatStep[emitProduct[0]] // 预热订单未全部完成 排除 if ok && Preheat < 5 { continue } - ColorShuffle = append(ColorShuffle, EmitProduct...) + colorShuffle = append(colorShuffle, emitProduct...) } - o.ColorShuffle = ShuffleColor(ColorShuffle, o.LastColor) + o.ColorShuffle = ShuffleColor(colorShuffle, o.LastColor) } } // 订单能获取的宠物币 -func GetOrderStar(ChessList []int, EmitList []int) int { - Star := 0 - for _, v := range ChessList { +func GetOrderStar(chessList []int, emitList []int) int { + star := 0 + for _, v := range chessList { ChessLv := mergeDataCfg.GetLvById(v) Color := mergeDataCfg.GetColorById(v) - EmitId := GetEmitByColor(EmitList, Color) + EmitId := GetEmitByColor(emitList, Color) if EmitId == 0 { continue } - NewChessLv := mergeDataCfg.DynamicLevRev(ChessLv, EmitId, Color) - n := orderCfg.GetOrderK(NewChessLv) - Star += n + newChessLv := mergeDataCfg.DynamicLevRev(ChessLv, EmitId, Color) + n := orderCfg.GetOrderK(newChessLv) + star += n } - return Star + return star } -func GetChessByDiff(EmitId, EnergyMul, Diff int, Color string) []int { - ChessMinLv, ChessMaxLv := getChesslvRange(EmitId, EnergyMul, false) - LvRange := getChessLvRange(ChessMinLv, ChessMaxLv, Diff) - var ChessIds []int - for _, v := range LvRange { - NewLev1 := mergeDataCfg.DynamicLev(v, EmitId, Color) - MaxLev := mergeDataCfg.GetMaxLvByColor(Color) - NewLev1 = min(NewLev1, MaxLev) - ChessId := mergeDataCfg.GetChessIdByLvAndColor(NewLev1, Color) - if ChessId == 0 { +func GetChessByDiff(emitId, energyMul, diff int, color string) []int { + chessMinLv, chessMaxLv := getChesslvRange(emitId, energyMul, false) + lvRange := getChessLvRange(chessMinLv, chessMaxLv, diff) + var chessIds []int + for _, v := range lvRange { + newLev1 := mergeDataCfg.DynamicLev(v, emitId, color) + maxLev := mergeDataCfg.GetMaxLvByColor(color) + newLev1 = min(newLev1, maxLev) + chessId := mergeDataCfg.GetChessIdByLvAndColor(newLev1, color) + if chessId == 0 { continue } - ChessIds = append(ChessIds, ChessId) + chessIds = append(chessIds, chessId) } - return GoUtil.UniqueInts(ChessIds) + return GoUtil.UniqueInts(chessIds) } -func (o *OrderMod) getChessLvFromConfig1(MinEnergy, MaxEnergy, MinLv, MaxLv, LastEnergy int) []int { +func (o *OrderMod) getChessLvFromConfig1(minEnergy, maxEnergy, minLv, maxLv, lastEnergy int) []int { var rand []int t := 0 - if LastEnergy > 0 { + if lastEnergy > 0 { t = 1 } for _, v := range orderCfgMap { - if MinEnergy >= v.Min && MaxEnergy <= v.Max { + if minEnergy >= v.Min && maxEnergy <= v.Max { for _, info := range v.Pool { - if MinLv <= info.lv && MaxLv >= info.lv && LastEnergy+info.energy <= MaxEnergy && LastEnergy+info.energy >= MinEnergy && t >= info.t { + if minLv <= info.lv && maxLv >= info.lv && lastEnergy+info.energy <= maxEnergy && lastEnergy+info.energy >= minEnergy && t >= info.t { rand = append(rand, info.lv) } } @@ -694,27 +693,27 @@ func (o *OrderMod) getChessLvFromConfig1(MinEnergy, MaxEnergy, MinLv, MaxLv, Las return rand } -func (o *OrderMod) ChessPoolChess(Color string, Lv int) bool { - for _, v := range o.ChessPool2[Color] { - if v > Lv { +func (o *OrderMod) ChessPoolChess(color string, lv int) bool { + for _, v := range o.ChessPool2[color] { + if v > lv { return true } } return false } -func (o *OrderMod) getFromPool(Emit int, Color string, Lv int) { - for i, v := range o.ChessPool2[Color] { - if v == Lv { - o.ChessPool2[Color] = append(o.ChessPool2[Color][:i], o.ChessPool2[Color][i+1:]...) +func (o *OrderMod) getFromPool(Emit int, color string, lv int) { + for i, v := range o.ChessPool2[color] { + if v == lv { + o.ChessPool2[color] = append(o.ChessPool2[color][:i], o.ChessPool2[color][i+1:]...) return } } - for i, v := range o.ChessPool2[Color] { - if v > Lv { - o.ChessPool2[Color] = append(o.ChessPool2[Color][:i], o.ChessPool2[Color][i+1:]...) - for k := Lv; k < v; k++ { - o.ChessPool2[Color] = append(o.ChessPool2[Color], k) + for i, v := range o.ChessPool2[color] { + if v > lv { + o.ChessPool2[color] = append(o.ChessPool2[color][:i], o.ChessPool2[color][i+1:]...) + for k := lv; k < v; k++ { + o.ChessPool2[color] = append(o.ChessPool2[color], k) } return } @@ -724,94 +723,92 @@ func (o *OrderMod) getFromPool(Emit int, Color string, Lv int) { return } for _, v := range Product { - if Color == v { + if color == v { continue } - o.ChessPool2[Color] = append(o.ChessPool2[Color], Lv) + o.ChessPool2[color] = append(o.ChessPool2[color], lv) } } -func (o *OrderMod) getChessIdPool(Emit []int, Color string, EnergyMul, MinEnergy, MaxEnergy, OrderDiff, LastEnergy int) (int, int) { - ChessLv := 0 - EmitChessId := getEmitBySeries(Emit, Color) - ChessMinLv, ChessMaxLv := getChesslvRange(EmitChessId, EnergyMul, o.IsCharge) - ChessLvRand := o.getChessLvFromConfig1(MinEnergy, MaxEnergy, ChessMinLv, ChessMaxLv, LastEnergy) - Pool := o.ChessPool2[Color] - ChessLvRand2 := make([]int, 0) - for _, v := range ChessLvRand { - if GoUtil.InArray(v, Pool) { - ChessLvRand2 = append(ChessLvRand2, v) +func (o *OrderMod) getChessIdPool(emit []int, color string, energyMul, minEnergy, maxEnergy, orderDiff, lastEnergy int) (int, int) { + chessLv := 0 + emitChessId := getEmitBySeries(emit, color) + chessMinLv, ChessMaxLv := getChesslvRange(emitChessId, energyMul, o.IsCharge) + chessLvRand := o.getChessLvFromConfig1(minEnergy, maxEnergy, chessMinLv, ChessMaxLv, lastEnergy) + pool := o.ChessPool2[color] + chessLvRand2 := make([]int, 0) + for _, v := range chessLvRand { + if GoUtil.InArray(v, pool) { + chessLvRand2 = append(chessLvRand2, v) } } - if len(ChessLvRand2) > 0 { - ChessLv = GoUtil.RandSlice(ChessLvRand2) + if len(chessLvRand2) > 0 { + chessLv = GoUtil.RandSlice(chessLvRand2) } - sort.Ints(ChessLvRand) - if len(ChessLvRand) > 0 && len(ChessLvRand2) == 0 && o.ChessPoolChess(Color, ChessLvRand[len(ChessLvRand)-1]) { - ChessLv = ChessLvRand[len(ChessLvRand)-1] + sort.Ints(chessLvRand) + if len(chessLvRand) > 0 && len(chessLvRand2) == 0 && o.ChessPoolChess(color, chessLvRand[len(chessLvRand)-1]) { + chessLv = chessLvRand[len(chessLvRand)-1] } - if len(ChessLvRand) > 0 && len(ChessLvRand2) == 0 && !o.ChessPoolChess(Color, ChessLvRand[len(ChessLvRand)-1]) && len(ChessLvRand) > 0 { - ChessLv = GoUtil.RandSlice(ChessLvRand) + if len(chessLvRand) > 0 && len(chessLvRand2) == 0 && !o.ChessPoolChess(color, chessLvRand[len(chessLvRand)-1]) && len(chessLvRand) > 0 { + chessLv = GoUtil.RandSlice(chessLvRand) } - if ChessLv == 0 { - ChessLv = 6 - o.NextDiff = OrderDiff + if chessLv == 0 { + chessLv = 6 + o.NextDiff = orderDiff } - o.getFromPool(EmitChessId, Color, ChessLv) - NewLev := mergeDataCfg.DynamicLev(ChessLv, EmitChessId, Color) - MaxLev := mergeDataCfg.GetMaxLvByColor(Color) - NewLev1 := adjustLev(NewLev, EnergyMul) - NewLev2 := min(NewLev1, MaxLev) - Chess := mergeDataCfg.GetChessIdByLvAndColor(NewLev2, Color) - if Chess == 0 { - Chess = mergeDataCfg.GetChessIdByLvAndColor(6, Color) + o.getFromPool(emitChessId, color, chessLv) + newLev := mergeDataCfg.DynamicLev(chessLv, emitChessId, color) + maxLev := mergeDataCfg.GetMaxLvByColor(color) + newLev1 := adjustLev(newLev, energyMul) + newLev2 := min(newLev1, maxLev) + chess := mergeDataCfg.GetChessIdByLvAndColor(newLev2, color) + if chess == 0 { + chess = mergeDataCfg.GetChessIdByLvAndColor(6, color) } - return Chess, ChessLv + return chess, chessLv } -func getChessFromPoolByEnergy(o *OrderMod, MinEnergy, MaxEnergy, ChessNum int, Emit []int, EnergyMul, OrderDiff, OrderType int) []int { - ColorArr := make([]string, 0) +func getChessFromPoolByEnergy(o *OrderMod, minEnergy, maxEnergy, ChessNum int, Emit []int, energyMul, orderDiff, orderType int) []int { + colorArr := make([]string, 0) for i := 0; i < ChessNum; i++ { - ColorArr = append(ColorArr, getEmitSeries(o, Emit, OrderType)) + colorArr = append(colorArr, getEmitSeries(o, Emit, orderType)) } - if len(ColorArr) == 2 && ColorArr[0] == ColorArr[1] { - } - if len(ColorArr) == 1 { - Chess, _ := o.getChessIdPool(Emit, ColorArr[0], EnergyMul, MinEnergy, MaxEnergy, OrderDiff, 0) - if Chess == 0 { - Chess = mergeDataCfg.GetChessIdByLvAndColor(6, ColorArr[0]) + if len(colorArr) == 1 { + chess, _ := o.getChessIdPool(Emit, colorArr[0], energyMul, minEnergy, maxEnergy, orderDiff, 0) + if chess == 0 { + chess = mergeDataCfg.GetChessIdByLvAndColor(6, colorArr[0]) } - return []int{Chess} + return []int{chess} } - if len(ColorArr) == 2 { - Chess1, Chess1Lv := o.getChessIdPool(Emit, ColorArr[0], EnergyMul, MinEnergy, MaxEnergy, OrderDiff, 0) - if Chess1 == 0 { - Chess1 = mergeDataCfg.GetChessIdByLvAndColor(6, ColorArr[0]) + if len(colorArr) == 2 { + chess1, chess1Lv := o.getChessIdPool(Emit, colorArr[0], energyMul, minEnergy, maxEnergy, orderDiff, 0) + if chess1 == 0 { + chess1 = mergeDataCfg.GetChessIdByLvAndColor(6, colorArr[0]) } - Energy := int(math.Pow(2, float64(Chess1Lv-1))) - Chess2, _ := o.getChessIdPool(Emit, ColorArr[1], EnergyMul, MinEnergy, MaxEnergy, OrderDiff, Energy) - return []int{Chess1, Chess2} + energy := int(math.Pow(2, float64(chess1Lv-1))) + chess2, _ := o.getChessIdPool(Emit, colorArr[1], energyMul, minEnergy, maxEnergy, orderDiff, energy) + return []int{chess1, chess2} } return nil } // 从棋子池中获取棋子 -func getChessFromPoolByDiff(o *OrderMod, Diff int, Emit []int, EnergyMul int) int { - Color := getEmitSeries(o, Emit, 0) - EmitChessId := getEmitBySeries(Emit, Color) +func getChessFromPoolByDiff(o *OrderMod, diff int, emit []int, energyMul int) int { + color := getEmitSeries(o, emit, 0) + emitChessId := getEmitBySeries(emit, color) //ColorRand := mergeDataCfg.GetEmitProduceType(EmitChessId) // 从棋子池中获取棋子 - MinChessId := 0 + minChessId := 0 for i, chess := range o.ChessPool { chessColor := mergeDataCfg.GetColorById(chess) - if Color != chessColor { + if color != chessColor { continue } - if reflectChess[chess] > Diff { - MinChessId = chess + if reflectChess[chess] > diff { + minChessId = chess } - ChessLv := mergeDataCfg.GetLvById(chess) - if reflectChess[chess] == Diff && ChessLv >= EnergyMul+1 && ChessLv <= EnergyMul+12 { + chessLv := mergeDataCfg.GetLvById(chess) + if reflectChess[chess] == diff && chessLv >= energyMul+1 && chessLv <= energyMul+12 { o.ChessPool = append(o.ChessPool[:i], o.ChessPool[i+1:]...) return chess } @@ -819,98 +816,98 @@ func getChessFromPoolByDiff(o *OrderMod, Diff int, Emit []int, EnergyMul int) in /** 获取不到时选最接近的棋子 * 1. 选取最接近的棋子 */ - if MinChessId != 0 { - ColorRand := mergeDataCfg.GetEmitProduceType(EmitChessId) - ChessMinLv, ChessMaxLv := getChesslvRange(EmitChessId, EnergyMul, o.IsCharge) - NewLev := getChessLv(ChessMinLv, ChessMaxLv, Diff) - MinChessLv := mergeDataCfg.GetLvById(MinChessId) - NewLev2 := mergeDataCfg.DynamicLev2(NewLev, EmitChessId, ColorRand[0], Color) - NewLev3 := adjustLev(NewLev2, EnergyMul) - o.ChessPool = GoUtil.DeleteEleByValue(o.ChessPool, MinChessId) - for i := NewLev3; i < MinChessLv; i++ { - ChessId2 := mergeDataCfg.GetChessIdByLvAndColor(i, Color) - if ChessId2 != 0 { - o.ChessPool = append(o.ChessPool, ChessId2) + if minChessId != 0 { + colorRand := mergeDataCfg.GetEmitProduceType(emitChessId) + chessMinLv, ChessMaxLv := getChesslvRange(emitChessId, energyMul, o.IsCharge) + newLev := getChessLv(chessMinLv, ChessMaxLv, diff) + minChessLv := mergeDataCfg.GetLvById(minChessId) + newLev2 := mergeDataCfg.DynamicLev2(newLev, emitChessId, colorRand[0], color) + newLev3 := adjustLev(newLev2, energyMul) + o.ChessPool = GoUtil.DeleteEleByValue(o.ChessPool, minChessId) + for i := newLev3; i < minChessLv; i++ { + chessId2 := mergeDataCfg.GetChessIdByLvAndColor(i, color) + if chessId2 != 0 { + o.ChessPool = append(o.ChessPool, chessId2) } } - Chess := mergeDataCfg.GetChessIdByLvAndColor(NewLev2, Color) - return Chess + chess := mergeDataCfg.GetChessIdByLvAndColor(newLev2, color) + return chess } - ChessMinLv, ChessMaxLv := getChesslvRange(EmitChessId, EnergyMul, o.IsCharge) - NewLev := getChessLv(ChessMinLv, ChessMaxLv, Diff) - NewLev1 := mergeDataCfg.DynamicLev(NewLev, EmitChessId, Color) - MaxLev := mergeDataCfg.GetMaxLvByColor(Color) - NewLev1 = min(NewLev1, MaxLev) - ChessId := mergeDataCfg.GetChessIdByLvAndColor(NewLev1, Color) - ProductColor := mergeDataCfg.GetEmitProduceType(EmitChessId) - for _, i := range ProductColor { - if i == Color { + chessMinLv, chessMaxLv := getChesslvRange(emitChessId, energyMul, o.IsCharge) + newLev := getChessLv(chessMinLv, chessMaxLv, diff) + newLev1 := mergeDataCfg.DynamicLev(newLev, emitChessId, color) + maxLev := mergeDataCfg.GetMaxLvByColor(color) + newLev1 = min(newLev1, maxLev) + chessId := mergeDataCfg.GetChessIdByLvAndColor(newLev1, color) + productColor := mergeDataCfg.GetEmitProduceType(emitChessId) + for _, i := range productColor { + if i == color { continue } - NewLev2 := mergeDataCfg.DynamicLev2(NewLev1, EmitChessId, Color, i) - NewLev2 = adjustLev(NewLev2, EnergyMul) - MaxLev := mergeDataCfg.GetMaxLvByColor(i) - NewLev2 = min(NewLev2, MaxLev) - ChessId2 := mergeDataCfg.GetChessIdByLvAndColor(NewLev2, i) - if ChessId2 != 0 { - o.ChessPool = append(o.ChessPool, ChessId2) + newLev2 := mergeDataCfg.DynamicLev2(newLev1, emitChessId, color, i) + newLev2 = adjustLev(newLev2, energyMul) + maxLev := mergeDataCfg.GetMaxLvByColor(i) + newLev2 = min(newLev2, maxLev) + chessId2 := mergeDataCfg.GetChessIdByLvAndColor(newLev2, i) + if chessId2 != 0 { + o.ChessPool = append(o.ChessPool, chessId2) } } o.ChessPool = GoUtil.ShuffleArray(o.ChessPool) if len(o.ChessPool) > 200 { o.ChessPool = o.ChessPool[:200] } - return ChessId + return chessId } // 初始化棋子难度映射表 -func initReflectChess(Emits []int, EnergyMul int) { +func initReflectChess(emits []int, energyMul int) { reflectChess = make(map[int]int) - Start, End := 0, 0 - for _, Emit := range Emits { - ProduceColor := mergeDataCfg.GetEmitProduceType(Emit) - if len(ProduceColor) == 0 || ProduceColor[0] == "" { + start, end := 0, 0 + for _, emit := range emits { + produceColor := mergeDataCfg.GetEmitProduceType(emit) + if len(produceColor) == 0 || produceColor[0] == "" { continue } - ChessMinLv, ChessMaxLv := getChesslvRange(Emit, EnergyMul, false) - Product := mergeDataCfg.GetEmitProduceChessType(Emit) - Start = ChessMinLv - End = ChessMinLv + (ChessMaxLv-ChessMinLv+1)/3 - 1 - for _, v := range Product { - Adjust := mergeDataCfg.DynamicAdjust(Emit, v, EnergyMul) - initReflectChess2(v, Start, End, DIFF_LOW, Adjust) + chessMinLv, chessMaxLv := getChesslvRange(emit, energyMul, false) + product := mergeDataCfg.GetEmitProduceChessType(emit) + start = chessMinLv + end = chessMinLv + (chessMaxLv-chessMinLv+1)/3 - 1 + for _, v := range product { + adjust := mergeDataCfg.DynamicAdjust(emit, v, energyMul) + initReflectChess2(v, start, end, DIFF_LOW, adjust) } - Start = ChessMinLv + (ChessMaxLv-ChessMinLv+1)/3 - End = ChessMinLv + (ChessMaxLv-ChessMinLv+1)/3*2 - 1 - for _, v := range Product { - Adjust := mergeDataCfg.DynamicAdjust(Emit, v, EnergyMul) - initReflectChess2(v, Start, End, DIFF_MID, Adjust) + start = chessMinLv + (chessMaxLv-chessMinLv+1)/3 + end = chessMinLv + (chessMaxLv-chessMinLv+1)/3*2 - 1 + for _, v := range product { + adjust := mergeDataCfg.DynamicAdjust(emit, v, energyMul) + initReflectChess2(v, start, end, DIFF_MID, adjust) } - Start = ChessMinLv + (ChessMaxLv-ChessMinLv+1)/3*2 - End = ChessMaxLv - for _, v := range Product { - Adjust := mergeDataCfg.DynamicAdjust(Emit, v, EnergyMul) - initReflectChess2(v, Start, End, DIFF_HIGH, Adjust) + start = chessMinLv + (chessMaxLv-chessMinLv+1)/3*2 + end = chessMaxLv + for _, v := range product { + adjust := mergeDataCfg.DynamicAdjust(emit, v, energyMul) + initReflectChess2(v, start, end, DIFF_HIGH, adjust) } } } -func initReflectChess2(Color string, Start, End, Diff, adjust int) { - for i := Start; i <= End; i++ { - Lv := max(i-adjust, 1) - ChessId := mergeDataCfg.GetChessIdByLvAndColor(Lv, Color) - if ChessId == 0 { +func initReflectChess2(color string, start, end, diff, adjust int) { + for i := start; i <= end; i++ { + lv := max(i-adjust, 1) + chessId := mergeDataCfg.GetChessIdByLvAndColor(lv, color) + if chessId == 0 { continue } - reflectChess[ChessId] = Diff + reflectChess[chessId] = diff } } -func AdjustLev(Lev, EnergyMul int) int { - return adjustLev(Lev, EnergyMul) +func AdjustLev(lev, energyMul int) int { + return adjustLev(lev, energyMul) } // 调整棋子等级 -func adjustLev(Lev, EnergyMul int) int { +func adjustLev(lev, energyMul int) int { randMapList := map[int]map[int]int{ 1: {}, 2: {0: 30, 1: 70}, @@ -924,20 +921,20 @@ func adjustLev(Lev, EnergyMul int) int { 10: {5: 40, 6: 60}, 11: {5: 20, 6: 70, 7: 10}, } - if v, ok := randMapList[EnergyMul]; ok { - Lev += GoUtil.RandMap(v) + if v, ok := randMapList[energyMul]; ok { + lev += GoUtil.RandMap(v) } - return Lev + return lev } // 获取发射器系列 -func getEmitBySeries(EmitList []int, EmitId string) int { - for _, v := range EmitList { - ProduceColor := mergeDataCfg.GetEmitProduceType(v) - if len(ProduceColor) == 0 || ProduceColor[0] == "" { +func getEmitBySeries(emitList []int, emitId string) int { + for _, v := range emitList { + produceColor := mergeDataCfg.GetEmitProduceType(v) + if len(produceColor) == 0 || produceColor[0] == "" { continue } - if GoUtil.InStringArray(EmitId, ProduceColor) { + if GoUtil.InStringArray(emitId, produceColor) { return v } } diff --git a/src/server/game/mod/pass/Pass.go b/src/server/game/mod/pass/Pass.go index 9a99524b..c3976112 100644 --- a/src/server/game/mod/pass/Pass.go +++ b/src/server/game/mod/pass/Pass.go @@ -17,71 +17,71 @@ type PassMod struct { func (p *PassMod) InitData() { } -func (p *PassMod) ZeroUpdate(Id int) { - p.Login(Id) +func (p *PassMod) ZeroUpdate(id int) { + p.Login(id) } func (p *PassMod) GetRewardItems() ([]*item.Item, []int) { template := passCfg.GetTemplate(p.Id) - NewLevel := passCfg.GetNewLevel(template, p.Num, p.Reward) - if len(NewLevel) == 0 { + newLevel := passCfg.GetNewLevel(template, p.Num, p.Reward) + if len(newLevel) == 0 { return nil, nil } - var Items []*item.Item - Items = append(Items, passCfg.GetFreeChargeItems(template, p.Reward)...) + var items []*item.Item + items = append(items, passCfg.GetFreeChargeItems(template, p.Reward)...) if p.LowPass != 0 { - Items = append(Items, passCfg.GetLowChargeItems(template, p.Reward)...) + items = append(items, passCfg.GetLowChargeItems(template, p.Reward)...) } if p.HighPass != 0 { - Items = append(Items, passCfg.GetHighChargeItems(template, p.Reward)...) + items = append(items, passCfg.GetHighChargeItems(template, p.Reward)...) } - p.Reward = append(p.Reward, NewLevel...) - return Items, NewLevel + p.Reward = append(p.Reward, newLevel...) + return items, newLevel } -func (p *PassMod) Login(Id int) int { - OldId := p.Id - if Id == 0 { +func (p *PassMod) Login(id int) int { + oldId := p.Id + if id == 0 { p.Id = 0 - return OldId + return oldId } - if p.Id == Id { + if p.Id == id { return 0 } - p.Id = Id + p.Id = id p.LowPass = 0 p.HighPass = 0 p.Num = 0 p.Reward = nil - return OldId + return oldId } func (p *PassMod) GetLowChargeItems() []*item.Item { if p.LowPass != 0 { return nil } - Template := passCfg.GetTemplate(p.Id) - if Template == 0 { + template := passCfg.GetTemplate(p.Id) + if template == 0 { return nil } - Items := passCfg.GetLowChargeItems(Template, p.Reward) + items := passCfg.GetLowChargeItems(template, p.Reward) p.LowPass = GoUtil.Now() - return Items + return items } func (p *PassMod) GetHighChargeItems() []*item.Item { if p.HighPass != 0 { return nil } - Template := passCfg.GetTemplate(p.Id) - if Template == 0 { + template := passCfg.GetTemplate(p.Id) + if template == 0 { return nil } - Items := passCfg.GetHighChargeItems(Template, p.Reward) + items := passCfg.GetHighChargeItems(template, p.Reward) p.HighPass = GoUtil.Now() - return Items + return items } -func (p *PassMod) AddExp(Score int) { - p.Num += Score +func (p *PassMod) AddExp(score int) { + p.Num += score } diff --git a/src/server/game/mod/piggy_bank/piggy_bank.go b/src/server/game/mod/piggy_bank/piggy_bank.go index 9e428c8e..32d40731 100644 --- a/src/server/game/mod/piggy_bank/piggy_bank.go +++ b/src/server/game/mod/piggy_bank/piggy_bank.go @@ -22,13 +22,13 @@ const ( func (p *PiggyBankMod) InitData() { } -func (p *PiggyBankMod) AddPiggyBank(Type int) { - p.List = append(p.List, Type) +func (p *PiggyBankMod) AddPiggyBank(pType int) { + p.List = append(p.List, pType) } -func (p *PiggyBankMod) Fire(ChargeId int) []*item.Item { - PiggyBankChargeId := chargeCfg.GetPiggyBankChargeId() - if ChargeId != PiggyBankChargeId && ChargeId != 0 { +func (p *PiggyBankMod) Fire(chargeId int) []*item.Item { + piggyBankChargeId := chargeCfg.GetPiggyBankChargeId() + if chargeId != piggyBankChargeId && chargeId != 0 { return nil } reward := []*item.Item{item.NewItem(item.ITEM_DIAMOND_ID, p.Diamond)} @@ -39,25 +39,25 @@ func (p *PiggyBankMod) Fire(ChargeId int) []*item.Item { } func (p *PiggyBankMod) TimeOut() int64 { - Now := GoUtil.Now() - Remain := p.EndTime - Now - if Remain > 0 { - return Remain + now := GoUtil.Now() + remain := p.EndTime - now + if remain > 0 { + return remain } if len(p.List) == 0 { return 0 } - var Type int - Type, p.List = GoUtil.PopSlice(p.List) - p.Type = Type - Duration := int64(chargeCfg.GetPiggyDuration()) - p.EndTime = Now + Duration - return Duration + var pType int + pType, p.List = GoUtil.PopSlice(p.List) + p.Type = pType + duration := int64(chargeCfg.GetPiggyDuration()) + p.EndTime = now + duration + return duration } func (p *PiggyBankMod) Trigger() { - Now := GoUtil.Now() - if p.EndTime < Now { + now := GoUtil.Now() + if p.EndTime < now { return } minDia, maxDia := chargeCfg.GetPiggyRandDia() diff --git a/src/server/game/mod/playroom/playroom.go b/src/server/game/mod/playroom/playroom.go index 95326368..c8c5eeaa 100644 --- a/src/server/game/mod/playroom/playroom.go +++ b/src/server/game/mod/playroom/playroom.go @@ -176,9 +176,9 @@ func (p *PlayroomMod) InitData() { if p.NewCollect == nil { p.NewCollect = make(map[int]*CollectInfo) } - InitCollect := playroomCfg.GetInitDecorate() + initCollect := playroomCfg.GetInitDecorate() if len(p.NewCollect) == 0 { - for _, v := range InitCollect { + for _, v := range initCollect { p.NewCollect[v] = &CollectInfo{ Id: v, AddTime: GoUtil.Now(), @@ -196,7 +196,7 @@ func (p *PlayroomMod) InitData() { } p.Collect = make(map[int]int) } - for _, v := range InitCollect { + for _, v := range initCollect { p.Collect[v] = 1 } if p.Room == nil { @@ -229,8 +229,8 @@ func (p *PlayroomMod) InitData() { } if len(p.NewPetAir) == 0 { p.NewPetAir = make(map[int]*PetAirInfo) - InitPetAir := playroomCfg.GetInitAirList() - for _, v := range InitPetAir { + initPetAir := playroomCfg.GetInitAirList() + for _, v := range initPetAir { p.NewPetAir[v] = &PetAirInfo{ Id: v, AddTime: GoUtil.Now(), @@ -253,12 +253,12 @@ func (p *PlayroomMod) InitData() { p.NewDress = make(map[int]*DressInfo) } if len(p.NewDress) == 0 { - InitDressList := playroomCfg.GetInitDressList() - for _, v := range InitDressList { - Part := playroomCfg.GetDressPart(v) + initDressList := playroomCfg.GetInitDressList() + for _, v := range initDressList { + part := playroomCfg.GetDressPart(v) p.NewDress[v] = &DressInfo{ Id: v, - Part: Part, + Part: part, AddTime: GoUtil.Now(), Num: 1, } @@ -268,10 +268,10 @@ func (p *PlayroomMod) InitData() { if len(p.Dress) != 0 { for _, v := range p.Dress { for _, id := range v { - Part := playroomCfg.GetDressPart(id) + part := playroomCfg.GetDressPart(id) p.NewDress[id] = &DressInfo{ Id: id, - Part: Part, + Part: part, AddTime: GoUtil.Now(), Num: 1, } @@ -300,34 +300,34 @@ func (p *PlayroomMod) ZeroUpdate() { func (p *PlayroomMod) InitDailyTask() { p.DailyTask = make(map[int]*DailyTask) - Index := 1 - TaskList1 := playroomCfg.GetDailyTask(DAILY_TASK_TYPE_ONE) - for k, v := range TaskList1 { - Items := playroomCfg.GetDailyTaskReward(Index) - Quest, _ := quest.ParseQuest(v) + index := 1 + taskList1 := playroomCfg.GetDailyTask(DAILY_TASK_TYPE_ONE) + for k, v := range taskList1 { + items := playroomCfg.GetDailyTaskReward(index) + quest, _ := quest.ParseQuest(v) p.DailyTask[k] = &DailyTask{ - Items: Items, - Quest: Quest, + Items: items, + Quest: quest, UnLock: true, - Index: Index, + Index: index, } - Index++ + index++ } - TaskList2 := playroomCfg.GetDailyTask(DAILY_TASK_TYPE_TWO) - for k, v := range TaskList2 { - Items := playroomCfg.GetDailyTaskReward(Index) - Quest, _ := quest.ParseQuest(v) + taskList2 := playroomCfg.GetDailyTask(DAILY_TASK_TYPE_TWO) + for k, v := range taskList2 { + items := playroomCfg.GetDailyTaskReward(index) + quest, _ := quest.ParseQuest(v) p.DailyTask[k] = &DailyTask{ - Items: Items, - Quest: Quest, + Items: items, + Quest: quest, UnLock: false, - Index: Index, + Index: index, } - Index++ + index++ } } -func (p *PlayroomMod) QuestTrigger(Tr *quest.Trigger) bool { +func (p *PlayroomMod) QuestTrigger(tr *quest.Trigger) bool { update := false unlock := true for k, v := range p.DailyTask { @@ -337,14 +337,14 @@ func (p *PlayroomMod) QuestTrigger(Tr *quest.Trigger) bool { if v.Status != quest.QUEST_STATUS_UNFINISH { continue } - update = quest.TriggerQuestProgress(&v.Quest, Tr) || update + update = quest.TriggerQuestProgress(&v.Quest, tr) || update if v.Quest.Status { v.Status = quest.QUEST_STATUS_FINISH } - Type := playroomCfg.GetDailyTaskType(k) - if Type == DAILY_TASK_TYPE_ONE && v.Status == quest.QUEST_STATUS_UNFINISH { + qType := playroomCfg.GetDailyTaskType(k) + if qType == DAILY_TASK_TYPE_ONE && v.Status == quest.QUEST_STATUS_UNFINISH { unlock = false } } @@ -356,9 +356,9 @@ func (p *PlayroomMod) QuestTrigger(Tr *quest.Trigger) bool { return update } -func (p *PlayroomMod) DailyTaskCanReward(Id int) bool { - IdList := playroomCfg.GetDailyTaskListById(Id) - for _, v := range IdList { +func (p *PlayroomMod) DailyTaskCanReward(id int) bool { + idList := playroomCfg.GetDailyTaskListById(id) + for _, v := range idList { v, ok := p.DailyTask[v] if !ok { return false @@ -370,8 +370,8 @@ func (p *PlayroomMod) DailyTaskCanReward(Id int) bool { return true } -func (p *PlayroomMod) GetDailyTaskReward(Id int) ([]*item.Item, error) { - v, ok := p.DailyTask[Id] +func (p *PlayroomMod) GetDailyTaskReward(id int) ([]*item.Item, error) { + v, ok := p.DailyTask[id] if !ok { return nil, fmt.Errorf("GetDailyTaskReward Id is not ok") } @@ -414,12 +414,12 @@ func (p *PlayroomMod) GetPhysiologyList() map[int]int { return Physiology } -func (p *PlayroomMod) GetMoodInfo(Id int) *Mood { - return p.MoodInfo[Id] +func (p *PlayroomMod) GetMoodInfo(id int) *Mood { + return p.MoodInfo[id] } -func (p *PlayroomMod) GetPhysiology(Id int) *Physiology { - return p.Physiology[Id] +func (p *PlayroomMod) GetPhysiology(id int) *Physiology { + return p.Physiology[id] } func (p *PlayroomMod) GetCollect() map[int]*CollectInfo { @@ -438,154 +438,154 @@ func (p *PlayroomMod) GetChip() int { return len(p.ChipList) } -func (p *PlayroomMod) AddChip(Uid int, Time int64, Emoji int) { +func (p *PlayroomMod) AddChip(uid int, time int64, emoji int) { if len(p.ChipList) >= playroomCfg.GetChipNum() { return } - p.ChipList = append(p.ChipList, &ChipInfo{Uid: Uid, Time: Time, Emoji: Emoji}) - p.RevengeUid = int64(Uid) + p.ChipList = append(p.ChipList, &ChipInfo{Uid: uid, Time: time, Emoji: emoji}) + p.RevengeUid = int64(uid) } -func (p *PlayroomMod) SetTarget(Target int) { - p.Target = Target +func (p *PlayroomMod) SetTarget(target int) { + p.Target = target p.Status = 1 - p.HasVisit[Target] = GoUtil.Now() + p.HasVisit[target] = GoUtil.Now() } -func (p *PlayroomMod) SetGameId(GameId int) { - p.GameId = GameId +func (p *PlayroomMod) SetGameId(gameId int) { + p.GameId = gameId } -func (p *PlayroomMod) CreateOrderReward(Star int, itemMod *item.ItemMod) { - if Star == 0 { +func (p *PlayroomMod) CreateOrderReward(star int, itemMod *item.ItemMod) { + if star == 0 { return } - FoodItem := playroomCfg.GetFoodItem() - CleanItem := playroomCfg.GetCleanItem() - ToyItem := playroomCfg.GetToyItem() - DailyItem := playroomCfg.GetDailyItem() + foodItem := playroomCfg.GetFoodItem() + cleanItem := playroomCfg.GetCleanItem() + toyItem := playroomCfg.GetToyItem() + dailyItem := playroomCfg.GetDailyItem() - FoodItemNum := itemMod.GetItemNumByList(FoodItem) - CleanItemNum := itemMod.GetItemNumByList(CleanItem) - ToyItemNum := itemMod.GetItemNumByList(ToyItem) - DailyItemNum := itemMod.GetItemNumByList(DailyItem) + foodItemNum := itemMod.GetItemNumByList(foodItem) + cleanItemNum := itemMod.GetItemNumByList(cleanItem) + toyItemNum := itemMod.GetItemNumByList(toyItem) + dailyItemNum := itemMod.GetItemNumByList(dailyItem) type d struct { Id []int Num int } sortList := []d{ - {Id: FoodItem, Num: FoodItemNum}, - {Id: CleanItem, Num: CleanItemNum}, - {Id: ToyItem, Num: ToyItemNum}, - {Id: DailyItem, Num: DailyItemNum}, + {Id: foodItem, Num: foodItemNum}, + {Id: cleanItem, Num: cleanItemNum}, + {Id: toyItem, Num: toyItemNum}, + {Id: dailyItem, Num: dailyItemNum}, } sort.Slice(sortList, func(i, j int) bool { return sortList[i].Num < sortList[j].Num }) - Prob := GoUtil.RandSlice(sortList[0].Id) - p.Reward = []*item.Item{{Id: Prob, Num: 1}} + prob := GoUtil.RandSlice(sortList[0].Id) + p.Reward = []*item.Item{{Id: prob, Num: 1}} } func (p *PlayroomMod) GetReward() []*item.Item { return p.Reward } -func (p *PlayroomMod) Interact(Id, Type int) ([]*item.Item, int, error) { - MoodType, ItemList, Effect := playroomCfg.GetInteract(Id, Type) - if MoodType == 0 { +func (p *PlayroomMod) Interact(id, iType int) ([]*item.Item, int, error) { + moodType, items, effect := playroomCfg.GetInteract(id, iType) + if moodType == 0 { return nil, 0, fmt.Errorf("Interact MoodType is 0") } - if Effect > 0 { + if effect > 0 { p.AllMood = min(100, p.AllMood+10) } - PType, PEffect := playroomCfg.GetInteractPhysiology(Id) - p.AddPhysiology(PType, PEffect) - p.AddMood(MoodType, Effect) - return ItemList, PType, nil + pType, pEffect := playroomCfg.GetInteractPhysiology(id) + p.AddPhysiology(pType, pEffect) + p.AddMood(moodType, effect) + return items, pType, nil } -func (p *PlayroomMod) AddInteractNum(Lv int) { - Unlock := playroomCfg.GetInteractUnlock() - if Lv < Unlock { +func (p *PlayroomMod) AddInteractNum(lv int) { + unlock := playroomCfg.GetInteractUnlock() + if lv < unlock { return } p.InteractNum++ p.InteractNum = min(p.InteractNum, playroomCfg.GetInteractNum()) } -func (p *PlayroomMod) AddMood(Id, Num int) { - _, ok := p.MoodInfo[Id] +func (p *PlayroomMod) AddMood(id, num int) { + _, ok := p.MoodInfo[id] if !ok { - p.MoodInfo[Id] = &Mood{Id: Id} + p.MoodInfo[id] = &Mood{Id: id} } - p.MoodInfo[Id].Num = max(0, min(p.MoodInfo[Id].Num+Num, 100)) - if p.MoodInfo[Id].Num != 0 && p.MoodInfo[Id].Time == 0 { - p.MoodInfo[Id].Time = GoUtil.Now() + p.MoodInfo[id].Num = max(0, min(p.MoodInfo[id].Num+num, 100)) + if p.MoodInfo[id].Num != 0 && p.MoodInfo[id].Time == 0 { + p.MoodInfo[id].Time = GoUtil.Now() } - if p.MoodInfo[Id].Num == 0 { - p.MoodInfo[Id].Time = 0 + if p.MoodInfo[id].Num == 0 { + p.MoodInfo[id].Time = 0 } } -func (p *PlayroomMod) GetMoodNum(MoodType int) int { - Mood, ok := p.MoodInfo[MoodType] +func (p *PlayroomMod) GetMoodNum(moodType int) int { + mood, ok := p.MoodInfo[moodType] if !ok { return 0 } - return Mood.Num + return mood.Num } -func (p *PlayroomMod) AddPhysiology(Id, Num int) { - Phy := p.GetPhysiology(Id) - if Phy == nil { - Phy = &Physiology{Id: Id} - p.Physiology[Id] = Phy +func (p *PlayroomMod) AddPhysiology(id, num int) { + phy := p.GetPhysiology(id) + if phy == nil { + phy = &Physiology{Id: id} + p.Physiology[id] = phy } - Max := playroomCfg.GetPhysiologyMax(Id) - Phy.Num = max(0, min(Phy.Num+Num, Max)) - Phy.Time = GoUtil.Now() - if Phy.Num == 0 { - Phy.Time = 0 + maxNum := playroomCfg.GetPhysiologyMax(id) + phy.Num = max(0, min(phy.Num+num, maxNum)) + phy.Time = GoUtil.Now() + if phy.Num == 0 { + phy.Time = 0 } } -func (p *PlayroomMod) AddVisitor(Id int, Time int64) { - v, ok := p.Visitor[Id] +func (p *PlayroomMod) AddVisitor(id int, time int64) { + v, ok := p.Visitor[id] if !ok { - p.Visitor[Id] = &Info{Time: Time, Times: 1} + p.Visitor[id] = &Info{Time: time, Times: 1} return } v.Times++ - v.Time = Time + v.Time = time } -func (p *PlayroomMod) SetRoom(Room map[int]int) (map[int]int, error) { - diff := GoUtil.DiffMap(p.Room, Room) - p.Room = Room +func (p *PlayroomMod) SetRoom(room map[int]int) (map[int]int, error) { + diff := GoUtil.DiffMap(p.Room, room) + p.Room = room return diff, nil } -func (p *PlayroomMod) AddCollect(Id int, Label string) { - p.NewCollect[Id] = &CollectInfo{ - Id: Id, +func (p *PlayroomMod) AddCollect(id int, label string) { + p.NewCollect[id] = &CollectInfo{ + Id: id, AddTime: GoUtil.Now(), - Label: Label, + Label: label, } } -func (p *PlayroomMod) AddDress(Id int, Label string) { - Part := playroomCfg.GetDressPart(Id) - if _, ok := p.NewDress[Id]; !ok { - p.NewDress[Id] = &DressInfo{ - Id: Id, - Part: Part, +func (p *PlayroomMod) AddDress(id int, label string) { + part := playroomCfg.GetDressPart(id) + if _, ok := p.NewDress[id]; !ok { + p.NewDress[id] = &DressInfo{ + Id: id, + Part: part, AddTime: GoUtil.Now(), - Label: Label, + Label: label, Num: 1, } } else { - p.NewDress[Id].Num++ + p.NewDress[id].Num++ } } @@ -606,44 +606,44 @@ func (p *PlayroomMod) ResetLose() { p.LoseItem = nil } -func (p *PlayroomMod) SetGameReward(Chess1, Chess2, Star int) { - p.GameReward[1] = &item.Item{Id: Chess1, Num: 1} - p.GameReward[2] = &item.Item{Id: Chess2, Num: 1} - p.GameReward[3] = &item.Item{Id: item.ITEM_STAR_ID, Num: Star} +func (p *PlayroomMod) SetGameReward(chess1, chess2, star int) { + p.GameReward[1] = &item.Item{Id: chess1, Num: 1} + p.GameReward[2] = &item.Item{Id: chess2, Num: 1} + p.GameReward[3] = &item.Item{Id: item.ITEM_STAR_ID, Num: star} } -func (p *PlayroomMod) SetGameReward2(Chess1, Star int) { - p.GameReward[1] = &item.Item{Id: Chess1, Num: 1} - p.GameReward[2] = &item.Item{Id: item.ITEM_STAR_ID, Num: Star} - p.GameReward[3] = &item.Item{Id: item.ITEM_STAR_ID, Num: Star} +func (p *PlayroomMod) SetGameReward2(chess1, star int) { + p.GameReward[1] = &item.Item{Id: chess1, Num: 1} + p.GameReward[2] = &item.Item{Id: item.ITEM_STAR_ID, Num: star} + p.GameReward[3] = &item.Item{Id: item.ITEM_STAR_ID, Num: star} } -func (p *PlayroomMod) SetGameReward3(Star int) { - p.GameReward[1] = &item.Item{Id: item.ITEM_STAR_ID, Num: Star} - p.GameReward[2] = &item.Item{Id: item.ITEM_STAR_ID, Num: Star} - p.GameReward[3] = &item.Item{Id: item.ITEM_STAR_ID, Num: Star} +func (p *PlayroomMod) SetGameReward3(star int) { + p.GameReward[1] = &item.Item{Id: item.ITEM_STAR_ID, Num: star} + p.GameReward[2] = &item.Item{Id: item.ITEM_STAR_ID, Num: star} + p.GameReward[3] = &item.Item{Id: item.ITEM_STAR_ID, Num: star} } // N1, N2, N3分别是铜、银、金翻牌的奖励数量,经过玩家的加成后再设置到GameReward中 -func (p *PlayroomMod) SetGameRewardFlip(N1, N2, N3 int) { - p.GameReward[1] = &item.Item{Id: item.ITEM_STAR_ID, Num: N1} - p.GameReward[2] = &item.Item{Id: item.ITEM_STAR_ID, Num: N2} - p.GameReward[3] = &item.Item{Id: item.ITEM_STAR_ID, Num: N3} +func (p *PlayroomMod) SetGameRewardFlip(n1, n2, n3 int) { + p.GameReward[1] = &item.Item{Id: item.ITEM_STAR_ID, Num: n1} + p.GameReward[2] = &item.Item{Id: item.ITEM_STAR_ID, Num: n2} + p.GameReward[3] = &item.Item{Id: item.ITEM_STAR_ID, Num: n3} } -func (p *PlayroomMod) SelectReward(Id int) []*item.Item { - v, ok := p.GameReward[Id] +func (p *PlayroomMod) SelectReward(id int) []*item.Item { + v, ok := p.GameReward[id] if !ok { return nil } - var Items []*item.Item - Items = append(Items, v) - if Id < 3 { - Items = append(Items, item.NewItem(item.ITEM_STAR_ID, 5)) + var items []*item.Item + items = append(items, v) + if id < 3 { + items = append(items, item.NewItem(item.ITEM_STAR_ID, 5)) } - return Items + return items } -func (p *PlayroomMod) Lose(Item []*item.Item) { - p.LoseItem = append(p.LoseItem, Item...) +func (p *PlayroomMod) Lose(items []*item.Item) { + p.LoseItem = append(p.LoseItem, items...) } func (p *PlayroomMod) Work() ([]*item.Item, error) { @@ -654,16 +654,19 @@ func (p *PlayroomMod) Work() ([]*item.Item, error) { p.Starttime = GoUtil.Now() p.Endtime = GoUtil.Now() + 86400 p.WorkStatus = 1 - ItemId := playroomCfg.GetWorkItem() - return []*item.Item{item.NewItem(ItemId, 1)}, nil + itemId := playroomCfg.GetWorkItem() + if itemId == 0 { + return nil, fmt.Errorf("Work ItemId is 0") + } + return []*item.Item{item.NewItem(itemId, 1)}, nil } func (p *PlayroomMod) Rest() { p.WorkStatus = 2 } -func (p *PlayroomMod) SetWorkOutline(Status int) { - p.WorkOutline = Status +func (p *PlayroomMod) SetWorkOutline(status int) { + p.WorkOutline = status } func (p *PlayroomMod) ResetWork() { @@ -675,16 +678,16 @@ func (p *PlayroomMod) Outline() { p.WorkOutline = 1 } -func (p *PlayroomMod) GetVisitorInfo(Id int) (int, int64) { - v, ok := p.Visitor[Id] +func (p *PlayroomMod) GetVisitorInfo(id int) (int, int64) { + v, ok := p.Visitor[id] if !ok { return 0, 0 } return v.Times, v.Time } -func (p *PlayroomMod) GetTaskReward(Type int) (int, []*item.Item, error) { - if GoUtil.InArray(Type, p.DailyTaskReward) { +func (p *PlayroomMod) GetTaskReward(taskType int) (int, []*item.Item, error) { + if GoUtil.InArray(taskType, p.DailyTaskReward) { return 0, nil, fmt.Errorf("GetTaskReward Type is already in DailyTaskReward") } finish := 0 @@ -693,42 +696,39 @@ func (p *PlayroomMod) GetTaskReward(Type int) (int, []*item.Item, error) { finish++ } } - if Type == DAILY_TASK_TYPE_ONE && finish < playroomCfg.GetPlayroomTaskDailyNum1() { + if taskType == DAILY_TASK_TYPE_ONE && finish < playroomCfg.GetPlayroomTaskDailyNum1() { return 0, nil, fmt.Errorf("GetTaskReward Type is DAILY_TASK_TYPE_ONE but finish is %d", finish) } - if Type == DAILY_TASK_TYPE_TWO && finish < playroomCfg.GetPlayroomTaskDailyNum1()+playroomCfg.GetPlayroomTaskDailyNum2() { + if taskType == DAILY_TASK_TYPE_TWO && finish < playroomCfg.GetPlayroomTaskDailyNum1()+playroomCfg.GetPlayroomTaskDailyNum2() { return 0, nil, fmt.Errorf("GetTaskReward Type is DAILY_TASK_TYPE_TWO but finish is %d", finish) } - p.DailyTaskReward = append(p.DailyTaskReward, Type) - Id := 0 - var Items []*item.Item - ProbList := playroomCfg.GetTaskJackpotProb() - Id = GoUtil.RandMap(ProbList) - Items = playroomCfg.GetTaskJackpotReward(Id) - if len(Items) > 1 { + p.DailyTaskReward = append(p.DailyTaskReward, taskType) + id := 0 + var items []*item.Item + probList := playroomCfg.GetTaskJackpotProb() + id = GoUtil.RandMap(probList) + items = playroomCfg.GetTaskJackpotReward(id) + if len(items) > 1 { // 多个奖励时,随机选择一个 - Items = []*item.Item{GoUtil.RandItem(Items)} + items = []*item.Item{GoUtil.RandItem(items)} } - return Id, Items, nil + return id, items, nil } func (p *PlayroomMod) Draw() (int, []*item.Item, error) { - // if p.AllMood < 100 { - // return 0, nil, fmt.Errorf("Draw AllMood < 100") - // } if p.JackpotNum == 0 { return 0, nil, fmt.Errorf("Draw JackpotNum is 0") } p.JackpotNum-- p.AllMood = 0 - ProbList := limitedTimeEventCfg.GetSenceJackpotProb() - Id := GoUtil.RandMap(ProbList) - Items := limitedTimeEventCfg.GetSenceJackpotReward(Id) - if len(Items) > 1 { + probList := limitedTimeEventCfg.GetSenceJackpotProb() + id := GoUtil.RandMap(probList) + items := limitedTimeEventCfg.GetSenceJackpotReward(id) + if len(items) > 1 { // 多个奖励时,随机选择一个 - Items = []*item.Item{GoUtil.RandItem(Items)} + items = []*item.Item{GoUtil.RandItem(items)} } - return Id, Items, nil + return id, items, nil } func (p *PlayroomMod) NotifyWork() *msg.NotifyPlayroomWork { @@ -739,25 +739,25 @@ func (p *PlayroomMod) NotifyWork() *msg.NotifyPlayroomWork { } func (p *PlayroomMod) NotifyLose() *msg.NotifyPlayroomLose { - ChipMessage := make([]*msg.ChipInfo, 0, len(p.ChipList)) + chipMessage := make([]*msg.ChipInfo, 0, len(p.ChipList)) for _, v := range p.ChipList { - ChipMessage = append(ChipMessage, &msg.ChipInfo{ + chipMessage = append(chipMessage, &msg.ChipInfo{ Uid: int64(v.Uid), }) } return &msg.NotifyPlayroomLose{ LoseItem: item.ItemToMsg(p.LoseItem), - Chip: ChipMessage, + Chip: chipMessage, Revenge: p.RevengeUid, } } func (p *PlayroomMod) ResetPhysiology(MoodType int) { - PhysiologyList := playroomCfg.GetPhysiologyList(MoodType) - for _, v := range PhysiologyList { - Phy := p.GetPhysiology(v) - if Phy != nil { - Phy.Num = 0 - Phy.Time = 0 + physiologyList := playroomCfg.GetPhysiologyList(MoodType) + for _, v := range physiologyList { + phy := p.GetPhysiology(v) + if phy != nil { + phy.Num = 0 + phy.Time = 0 } } } @@ -768,9 +768,9 @@ func (p *PlayroomMod) NotifyStatus() *msg.NofiPlayroomStatus { } func (p *PlayroomMod) NotifyMood() *msg.NotifyPlayroomMood { - Mood := make(map[int32]int32) + mood := make(map[int32]int32) for k, v := range p.MoodInfo { - Mood[int32(k)] = int32(v.Num) + mood[int32(k)] = int32(v.Num) } var resAdItems []*msg.AdItem for k, v := range p.ADItem { @@ -782,24 +782,24 @@ func (p *PlayroomMod) NotifyMood() *msg.NotifyPlayroomMood { } return &msg.NotifyPlayroomMood{ AllMood: int32(p.AllMood), - Mood: Mood, + Mood: mood, Physiology: GoUtil.MapIntToInt32(p.GetPhysiologyList()), AdItem: resAdItems, } } -func (p *PlayroomMod) Fire(ChargeId int) []*item.Item { - WorkChargeId := playroomCfg.GetWorkChargeId() - if ChargeId == WorkChargeId { - ItemId := playroomCfg.GetWorkItem() - return []*item.Item{item.NewItem(ItemId, 1)} +func (p *PlayroomMod) Fire(chargeId int) []*item.Item { + workChargeId := playroomCfg.GetWorkChargeId() + if chargeId == workChargeId { + itemId := playroomCfg.GetWorkItem() + return []*item.Item{item.NewItem(itemId, 1)} } return nil } -func (p *PlayroomMod) RemoveChip(Uids []int64) ([]*item.Item, int, error) { +func (p *PlayroomMod) RemoveChip(uids []int64) ([]*item.Item, int, error) { len1 := len(p.ChipList) - len2 := len(Uids) + len2 := len(uids) if len1 == 0 { return nil, 0, fmt.Errorf("RemoveChip Uids is 0") } @@ -807,7 +807,7 @@ func (p *PlayroomMod) RemoveChip(Uids []int64) ([]*item.Item, int, error) { p.ChipList = nil } else { uidCount := make(map[int64]int) - for _, uid := range Uids { + for _, uid := range uids { uidCount[uid]++ } @@ -824,16 +824,16 @@ func (p *PlayroomMod) RemoveChip(Uids []int64) ([]*item.Item, int, error) { return []*item.Item{item.NewItem(item.ITEM_STAR_ID, len2*25)}, len2, nil } -func (p *PlayroomMod) FlipCard(Pos int) (int, error) { +func (p *PlayroomMod) FlipCard(pos int) (int, error) { if p.Status != STATUS_VISIT { return 0, fmt.Errorf("FlipCard Status is not STATUS_VISIT") } - RandMap := map[int]int{ + randMap := map[int]int{ FLIP_TYPE_COPPER: 35, FLIP_TYPE_SILVER: 45, FLIP_TYPE_GOLD: 20, } - Prob := GoUtil.RandMap(RandMap) + Prob := GoUtil.RandMap(randMap) /** 若玩家同一天内上一次游玩猫猫小金库未能获得金币档位奖励,且当天还未获得过金币档位奖励 @@ -852,58 +852,57 @@ func (p *PlayroomMod) FlipCard(Pos int) (int, error) { Prob = FLIP_TYPE_GOLD } } - p.Flip[Pos] = Prob + p.Flip[pos] = Prob return Prob, nil } func (p *PlayroomMod) GetFlipReward() ([]*item.Item, int, int, error) { check := make(map[int]int) - var Items []*item.Item - T := p.Target - Result := FLIP_TYPE_COPPER + var items []*item.Item + result := FLIP_TYPE_COPPER for _, v := range p.Flip { check[v]++ if check[v] == 3 { switch v { case FLIP_TYPE_COPPER: p.NoFlip++ - Items = append(Items, p.GameReward[FLIP_TYPE_COPPER]) + items = append(items, p.GameReward[FLIP_TYPE_COPPER]) case FLIP_TYPE_SILVER: p.NoFlip++ - Result = FLIP_TYPE_SILVER - Items = append(Items, p.GameReward[FLIP_TYPE_SILVER]) + result = FLIP_TYPE_SILVER + items = append(items, p.GameReward[FLIP_TYPE_SILVER]) case FLIP_TYPE_GOLD: p.NoFlip = 0 p.TodayFlip = true - Result = FLIP_TYPE_GOLD - Items = append(Items, p.GameReward[FLIP_TYPE_GOLD]) + result = FLIP_TYPE_GOLD + items = append(items, p.GameReward[FLIP_TYPE_GOLD]) } p.LastFlip = v p.Flip = make(map[int]int) p.ResetGame() - return Items, T, Result, nil + return items, 0, result, nil } } - return Items, T, Result, fmt.Errorf("GetFlipReward check is not 3") + return items, p.Target, result, fmt.Errorf("GetFlipReward check is not 3") } -func (p *PlayroomMod) BuyItem(Id int) ([]*item.Item, []*item.Item) { - return playroomCfg.GetBuyItem(Id) +func (p *PlayroomMod) BuyItem(id int) ([]*item.Item, []*item.Item) { + return playroomCfg.GetBuyItem(id) } -func (p *PlayroomMod) UnLock(Lv int) bool { +func (p *PlayroomMod) UnLock(lv int) bool { UnlockLv := playroomCfg.GetUnLockLv() - if Lv < UnlockLv || len(p.Physiology) != 0 { + if lv < UnlockLv || len(p.Physiology) != 0 { return false } - Now := GoUtil.Now() + now := GoUtil.Now() p.Physiology = make(map[int]*Physiology) - TypeList := playroomCfg.GetPhysiologyTypeList() - for _, v := range TypeList { - Max := playroomCfg.GetPhysiologyMax(v) - p.Physiology[v] = &Physiology{Id: v, Num: Max, Time: Now} + typeList := playroomCfg.GetPhysiologyTypeList() + for _, v := range typeList { + max := playroomCfg.GetPhysiologyMax(v) + p.Physiology[v] = &Physiology{Id: v, Num: max, Time: now} } if len(p.MoodInfo) == 0 { p.MoodInfo = make(map[int]*Mood) @@ -914,17 +913,17 @@ func (p *PlayroomMod) UnLock(Lv int) bool { return true } -func (p *PlayroomMod) FixUnLock(Lv int) bool { - UnlockLv := playroomCfg.GetUnLockLv() - if Lv < UnlockLv || len(p.Physiology) != 0 { +func (p *PlayroomMod) FixUnLock(lv int) bool { + unlockLv := playroomCfg.GetUnLockLv() + if lv < unlockLv || len(p.Physiology) != 0 { return false } - Now := GoUtil.Now() + now := GoUtil.Now() p.Physiology = make(map[int]*Physiology) - TypeList := playroomCfg.GetPhysiologyTypeList() - for _, v := range TypeList { - Max := playroomCfg.GetPhysiologyMax(v) - p.Physiology[v] = &Physiology{Id: v, Num: Max, Time: Now} + typeList := playroomCfg.GetPhysiologyTypeList() + for _, v := range typeList { + max := playroomCfg.GetPhysiologyMax(v) + p.Physiology[v] = &Physiology{Id: v, Num: max, Time: now} } if len(p.MoodInfo) == 0 { p.MoodInfo = make(map[int]*Mood) @@ -936,27 +935,30 @@ func (p *PlayroomMod) FixUnLock(Lv int) bool { } // shop -func (p *PlayroomMod) ShopBuy(Id, Num int, WeeklyDiscount bool) ([]*item.Item, []*item.Item, error) { - AddItemId, CostItem, Discount, Limit := playroomCfg.GetShopItem(Id) - if AddItemId == 0 { +func (p *PlayroomMod) ShopBuy(id, num int, weeklyDiscount bool) ([]*item.Item, []*item.Item, error) { + addItemId, costItem, discount, limit := playroomCfg.GetShopItem(id) + if addItemId == 0 { return nil, nil, fmt.Errorf("ShopBuy AddItemId is 0") } - NewCostItem := CostItem[0].Num * Num - if WeeklyDiscount { - LimitNum := p.WeeklyDiscount[Id] - if LimitNum < Limit { - NewCostItem = int(math.Ceil(float64(NewCostItem) * float64(Discount) / 100)) - } - p.WeeklyDiscount[Id] = LimitNum + Num + if costItem == nil || len(costItem) == 0 { + return nil, nil, fmt.Errorf("ShopBuy CostItem is nil or length is 0") } - CostItem[0].Num = NewCostItem - return []*item.Item{item.NewItem(AddItemId, Num)}, CostItem, nil + newCostItem := costItem[0].Num * num + if weeklyDiscount { + limitNum := p.WeeklyDiscount[id] + if limitNum < limit { + newCostItem = int(math.Ceil(float64(newCostItem) * float64(discount) / 100)) + } + p.WeeklyDiscount[id] = limitNum + num + } + costItem[0].Num = newCostItem + return []*item.Item{item.NewItem(addItemId, num)}, costItem, nil } -func (p *PlayroomMod) UnlockDress(Type, Id int) error { - p.NewDress[Id] = &DressInfo{ - Id: Id, - Part: Type, +func (p *PlayroomMod) UnlockDress(dType, id int) error { + p.NewDress[id] = &DressInfo{ + Id: id, + Part: dType, AddTime: GoUtil.Now(), Num: 1, } @@ -967,42 +969,42 @@ func (p *PlayroomMod) RandGameType() int { return GoUtil.RandMap(map[int]int{1: 50, 3: 50}) } -func (p *PlayroomMod) UnlockPetAir(Id int) { - p.NewPetAir[Id] = &PetAirInfo{ - Id: Id, +func (p *PlayroomMod) UnlockPetAir(id int) { + p.NewPetAir[id] = &PetAirInfo{ + Id: id, AddTime: GoUtil.Now(), Num: 1, } } -func (p *PlayroomMod) PlayroomDressSet(DressSet map[int]int) ([]int, map[int]int, error) { +func (p *PlayroomMod) PlayroomDressSet(dressSet map[int]int) ([]int, map[int]int, error) { // 判断服装是否存在 var Part []int - Diff := GoUtil.DiffMap(DressSet, p.DressSet) - for Type, Id := range DressSet { - if Id == 0 { + diff := GoUtil.DiffMap(dressSet, p.DressSet) + for dType, id := range dressSet { + if id == 0 { continue } - dressInfo, ok := p.NewDress[Id] + dressInfo, ok := p.NewDress[id] if !ok { return nil, nil, fmt.Errorf("dress type not found") } if dressInfo.EndTime < GoUtil.Now() && dressInfo.EndTime != 0 { return nil, nil, fmt.Errorf("dress timeout") } - if p.DressSet[Type] != Id && Id != 0 { - Part = append(Part, Type) + if p.DressSet[dType] != id && id != 0 { + Part = append(Part, dType) } } - p.DressSet = DressSet - return Part, Diff, nil + p.DressSet = dressSet + return Part, diff, nil } -func (p *PlayroomMod) GiveUpvote(Uid int) ([]*item.Item, error) { - if GoUtil.InArray(Uid, p.UpvoteList) { +func (p *PlayroomMod) GiveUpvote(uid int) ([]*item.Item, error) { + if GoUtil.InArray(uid, p.UpvoteList) { return nil, fmt.Errorf("upvote already") } - p.UpvoteList = append(p.UpvoteList, Uid) + p.UpvoteList = append(p.UpvoteList, uid) return []*item.Item{item.NewItem(item.ITEM_ENERGY_ID, 5)}, nil } @@ -1010,29 +1012,29 @@ func (p *PlayroomMod) AddUpvote() { p.Upvote++ } -func (p *PlayroomMod) PlayroomPetAirSet(Id int) error { - if _, ok := p.NewPetAir[Id]; !ok { +func (p *PlayroomMod) PlayroomPetAirSet(id int) error { + if _, ok := p.NewPetAir[id]; !ok { return fmt.Errorf("PlayroomPetAirSet Id is not ok") } - p.PetAirSet = Id + p.PetAirSet = id return nil } -func (p *PlayroomMod) Unlock(Id int) error { - Need := playroomCfg.GetUnlockNeed(Id) - if Need == 0 || Need > p.RoomPoint { +func (p *PlayroomMod) Unlock(id int) error { + need := playroomCfg.GetUnlockNeed(id) + if need == 0 || need > p.RoomPoint { return fmt.Errorf("unlock need is 0 or need > RoomPoint") } - p.UnlockList[Id] = GoUtil.Now() + p.UnlockList[id] = GoUtil.Now() return nil } func (p *PlayroomMod) GetUnlockIds() []int32 { - UnlockIds := make([]int32, 0, len(p.UnlockList)) + unlockIds := make([]int32, 0, len(p.UnlockList)) for k := range p.UnlockList { - UnlockIds = append(UnlockIds, int32(k)) + unlockIds = append(unlockIds, int32(k)) } - return UnlockIds + return unlockIds } func (p *PlayroomMod) GetDressSet() map[int]int { @@ -1052,9 +1054,9 @@ func (p *PlayroomMod) GetPetAir() map[int]*PetAirInfo { } func (p *PlayroomMod) BackDataTask() []*msg.DailyTask { - DailyTask := make([]*msg.DailyTask, 0, len(p.DailyTask)) + dailyTask := make([]*msg.DailyTask, 0, len(p.DailyTask)) for k, v := range p.DailyTask { - DailyTask = append(DailyTask, &msg.DailyTask{ + dailyTask = append(dailyTask, &msg.DailyTask{ Status: int32(v.Status), UnLock: v.UnLock, Progress: quest.QuestProgressToMsg(&v.Quest), @@ -1063,10 +1065,10 @@ func (p *PlayroomMod) BackDataTask() []*msg.DailyTask { Id: int32(k), }) } - sort.Slice(DailyTask, func(i, j int) bool { - return DailyTask[i].Index < DailyTask[j].Index + sort.Slice(dailyTask, func(i, j int) bool { + return dailyTask[i].Index < dailyTask[j].Index }) - return DailyTask + return dailyTask } func (p *PlayroomMod) Guide(Type int) error { diff --git a/src/server/game/mod/quest/Quest.go b/src/server/game/mod/quest/Quest.go index 07bbdee0..a3226e80 100644 --- a/src/server/game/mod/quest/Quest.go +++ b/src/server/game/mod/quest/Quest.go @@ -68,8 +68,8 @@ func ParseQuest(s string) (QuestProgress, error) { }, nil } -func TriggerQuestProgress(q *QuestProgress, Tr *Trigger) bool { - if q.Label != Tr.Label { +func TriggerQuestProgress(q *QuestProgress, tr *Trigger) bool { + if q.Label != tr.Label { return false } if q.Status { @@ -81,23 +81,23 @@ func TriggerQuestProgress(q *QuestProgress, Tr *Trigger) bool { TRIGGER_LABEL_STAR, TRIGGER_LABEL_DIAMOND, TRIGGER_LABEL_DECORATE: // 消耗x能量 - AddNum := GoUtil.Int(Tr.A[0]) + AddNum := GoUtil.Int(tr.A[0]) q.Num += AddNum case TRIGGER_LABEL_MERGELVTIME: // 合成x级棋子y次 - Lv := GoUtil.Int(Tr.A[0]) + Lv := GoUtil.Int(tr.A[0]) TargetLv, _ := strconv.Atoi(q.A[0].(string)) if TargetLv == Lv { q.Num++ } case TRIGGER_LABEL_GUIDE_LOGIN: // 引导任务登录 - LoginDay := GoUtil.Int(Tr.A[0]) + LoginDay := GoUtil.Int(tr.A[0]) q.Num = LoginDay case TRIGGER_LABEL_MERGETIME, // 合成x次 TRIGGER_LABEL_FINISHORDER, TRIGGER_LABEL_BUBBLE: // 完成x次订单 q.Num++ case TRIGGER_LABEL_INTERACT: // 互动x类型y次 - InteractId := GoUtil.Int(Tr.A[0]) + InteractId := GoUtil.Int(tr.A[0]) Ids := GoUtil.IntSliceInterface(q.A) if GoUtil.InArray(InteractId, Ids) { q.Num++ @@ -106,11 +106,11 @@ func TriggerQuestProgress(q *QuestProgress, Tr *Trigger) bool { if len(q.A) == 0 { return false } - if len(Tr.A) == 0 { + if len(tr.A) == 0 { return false } Ids := GoUtil.IntSliceInterface(q.A) - arg := GoUtil.IntSlice(Tr.A[0]) + arg := GoUtil.IntSlice(tr.A[0]) for _, t := range arg { if GoUtil.InArray(t, Ids) { q.Num++ @@ -127,15 +127,15 @@ func TriggerQuestProgress(q *QuestProgress, Tr *Trigger) bool { } func QuestProgressToMsg(quest *QuestProgress) *msg.QuestProgress { - Param := 0 + param := 0 if len(quest.A) > 0 { - Param = GoUtil.Int(quest.A[0]) + param = GoUtil.Int(quest.A[0]) } return &msg.QuestProgress{ Label: quest.Label, Num: int32(quest.Num), Target: int32(quest.Target), Status: quest.Status, - Param: int32(Param), + Param: int32(param), } } diff --git a/src/server/game/mod/race/race.go b/src/server/game/mod/race/race.go index 474af1c6..dbed7c57 100644 --- a/src/server/game/mod/race/race.go +++ b/src/server/game/mod/race/race.go @@ -27,28 +27,28 @@ type Opponent struct { Progress int } -func (r *RaceMod) Login(Id int) int { - OldId := r.Id - if Id == 0 { +func (r *RaceMod) Login(id int) int { + oldId := r.Id + if id == 0 { r.Id = 0 - return OldId + return oldId } - if r.Id == Id { + if r.Id == id { return 0 } - r.Id = Id + r.Id = id r.Pass = 1 r.StartTime = 0 r.EndTime = 0 r.Progress = 0 r.Rank = 0 r.Opponent = nil - return OldId + return oldId } // TODO 剩余AI逻辑未开发 -func (r *RaceMod) ZeroUpdate(Id int) { - r.Login(Id) +func (r *RaceMod) ZeroUpdate(id int) { + r.Login(id) } func (r *RaceMod) StartGame() error { @@ -56,66 +56,66 @@ func (r *RaceMod) StartGame() error { return fmt.Errorf("the game has started") } r.StartTime = GoUtil.Now() - OpponentNum := raceCfg.GetRaceNum(r.Pass) + opponentNum := raceCfg.GetRaceNum(r.Pass) r.EndTime = r.StartTime + int64(raceCfg.GetCD(r.Id)) - r.Opponent = randOpponents(OpponentNum) + r.Opponent = randOpponents(opponentNum) r.Rank = 1 return nil } -func (r *RaceMod) AddCoin(Num int) { +func (r *RaceMod) AddCoin(num int) { if r.StartTime == 0 { return } - r.Progress += Num + r.Progress += num } func (r *RaceMod) GetReward() ([]*item.Item, error) { if r.EndTime == 0 { return nil, fmt.Errorf("the game is not over") } - Need := raceCfg.GetRaceNeed(r.Pass) - if r.Progress < Need { + need := raceCfg.GetRaceNeed(r.Pass) + if r.Progress < need { return nil, fmt.Errorf("not enough progress") } if r.Rank != 1 { return nil, fmt.Errorf("you are not the first") } - var Items []*item.Item - Items = append(Items, raceCfg.GetReward(r.Pass)...) - Now := GoUtil.Now() - if Now <= r.EndTime { - Items = append(Items, raceCfg.GetExtraReward(r.Pass)...) + var items []*item.Item + items = append(items, raceCfg.GetReward(r.Pass)...) + now := GoUtil.Now() + if now <= r.EndTime { + items = append(items, raceCfg.GetExtraReward(r.Pass)...) } r.Pass++ - r.Progress -= Need - MaxPass := raceCfg.GetMaxPass(r.Id) - if r.Pass > MaxPass { + r.Progress -= need + maxPass := raceCfg.GetMaxPass(r.Id) + if r.Pass > maxPass { r.Pass = 1 r.StartTime = 0 r.EndTime = 0 r.Opponent = nil r.Progress = 0 } else { - r.StartTime = Now - r.EndTime = Now + int64(raceCfg.GetCD(r.Id)) + r.StartTime = now + r.EndTime = now + int64(raceCfg.GetCD(r.Id)) r.Opponent = randOpponents(raceCfg.GetRaceNum(r.Pass)) } - return Items, nil + return items, nil } -func randOpponents(OpponentNum int) []*Opponent { - opponents := make([]*Opponent, 0, OpponentNum-1) - names := randnameCfg.GetRandNames(OpponentNum) - for i := 1; i < OpponentNum; i++ { +func randOpponents(opponentNum int) []*Opponent { + opponents := make([]*Opponent, 0, opponentNum-1) + names := randnameCfg.GetRandNames(opponentNum) + for i := 1; i < opponentNum; i++ { opponents = append(opponents, randOpponent(i, names[i])) } return opponents } -func randOpponent(Id int, name string) *Opponent { +func randOpponent(id int, name string) *Opponent { return &Opponent{ - Id: Id, + Id: id, Name: name, Face: rand.Intn(10), Avatar: rand.Intn(10), diff --git a/src/server/game/mod/seven_login/seven_login.go b/src/server/game/mod/seven_login/seven_login.go index 234ccbba..e07bfb3d 100644 --- a/src/server/game/mod/seven_login/seven_login.go +++ b/src/server/game/mod/seven_login/seven_login.go @@ -30,15 +30,15 @@ func (s *SevenLoginMod) InitData() { } -func (s *SevenLoginMod) ZeroUpdate(Add, LastLoginTime, factor, level int) { - WeekZeroTimestamp := GoUtil.WeekZeroTimestamp() - Now := GoUtil.Now() - if WeekZeroTimestamp > s.WeekResetTime { - RewardType := GoUtil.IfTrue(Now-int64(LastLoginTime) > GoUtil.SEVENDAYS && LastLoginTime > 0, BACK_REWARD, DEFAULT_REWARD).(int) - s.IsBack = RewardType == BACK_REWARD - s.LoginReward = randWeekReward(Add, RewardType, level) +func (s *SevenLoginMod) ZeroUpdate(add, lastLoginTime, factor, level int) { + weekZeroTimestamp := GoUtil.WeekZeroTimestamp() + now := GoUtil.Now() + if weekZeroTimestamp > s.WeekResetTime { + rewardType := GoUtil.IfTrue(now-int64(lastLoginTime) > GoUtil.SEVENDAYS && lastLoginTime > 0, BACK_REWARD, DEFAULT_REWARD).(int) + s.IsBack = rewardType == BACK_REWARD + s.LoginReward = randWeekReward(add, rewardType, level) s.LoginReward = formatSevenReward(s.LoginReward, factor) - s.WeekResetTime = WeekZeroTimestamp + s.WeekResetTime = weekZeroTimestamp s.DayR = 0 } monthZeroTimestamp := GoUtil.MonthZeroTimestamp() @@ -51,53 +51,53 @@ func (s *SevenLoginMod) ZeroUpdate(Add, LastLoginTime, factor, level int) { s.DayR++ } -func (s *SevenLoginMod) GetReward(Id int) ([]*item.Item, error) { - if Id > s.DayR { +func (s *SevenLoginMod) GetReward(id int) ([]*item.Item, error) { + if id > s.DayR { return nil, fmt.Errorf("id greater than login days") } - Reward := s.LoginReward[Id] - if Reward.Status { + reward := s.LoginReward[id] + if reward.Status { return nil, fmt.Errorf("reward already received") } - Reward.Status = true - s.LoginReward[Id] = Reward + reward.Status = true + s.LoginReward[id] = reward s.Active++ item := make([]*item.Item, 0) - item = append(item, Reward.Item1...) - item = append(item, Reward.Item2...) - item = append(item, Reward.Item3...) + item = append(item, reward.Item1...) + item = append(item, reward.Item2...) + item = append(item, reward.Item3...) return item, nil } -func (s *SevenLoginMod) GetMonthReward(Id int) ([]*item.Item, error) { - NeedActive := sevenLoginCfg.GetMonthActive(Id) - if NeedActive > s.Active { +func (s *SevenLoginMod) GetMonthReward(id int) ([]*item.Item, error) { + needActive := sevenLoginCfg.GetMonthActive(id) + if needActive > s.Active { return nil, fmt.Errorf("id greater than active") } - Reward := s.MonthReward[Id] - if Reward.Status { + reward := s.MonthReward[id] + if reward.Status { return nil, fmt.Errorf("reward already received") } - Reward.Status = true - s.MonthReward[Id] = Reward + reward.Status = true + s.MonthReward[id] = reward item := make([]*item.Item, 0) - item = append(item, Reward.Item1...) - item = append(item, Reward.Item2...) - item = append(item, Reward.Item3...) + item = append(item, reward.Item1...) + item = append(item, reward.Item2...) + item = append(item, reward.Item3...) return item, nil } func (s *SevenLoginMod) BackData() *msg.ResSevenLogin { - WeekReward := make([]*msg.SevenLoginReward, 0) - MonthReward := make([]*msg.SevenLoginReward, 0) + weekReward := make([]*msg.SevenLoginReward, 0) + monthReward := make([]*msg.SevenLoginReward, 0) for k, v := range s.LoginReward { - Status := GoUtil.IfTrue(!v.Status && s.DayR >= k, 1, 0).(int) - Status = GoUtil.IfTrue(v.Status, 2, Status).(int) - WeekReward = append(WeekReward, &msg.SevenLoginReward{ + status := GoUtil.IfTrue(!v.Status && s.DayR >= k, 1, 0).(int) + status = GoUtil.IfTrue(v.Status, 2, status).(int) + weekReward = append(weekReward, &msg.SevenLoginReward{ Item1: item.ItemToMsg(v.Item1), Item2: item.ItemToMsg(v.Item2), Item3: item.ItemToMsg(v.Item3), - Status: int32(Status), + Status: int32(status), Id: int32(k), }) } @@ -106,22 +106,22 @@ func (s *SevenLoginMod) BackData() *msg.ResSevenLogin { if k < 0 { continue } - Active := sevenLoginCfg.GetMonthActive(k) - Status := GoUtil.IfTrue(!v.Status && s.Active >= Active, 1, 0).(int) - Status = GoUtil.IfTrue(v.Status, 2, Status).(int) - MonthReward = append(MonthReward, &msg.SevenLoginReward{ + active := sevenLoginCfg.GetMonthActive(k) + status := GoUtil.IfTrue(!v.Status && s.Active >= active, 1, 0).(int) + status = GoUtil.IfTrue(v.Status, 2, status).(int) + monthReward = append(monthReward, &msg.SevenLoginReward{ Item1: item.ItemToMsg(v.Item1), Item2: item.ItemToMsg(v.Item2), Item3: item.ItemToMsg(v.Item3), - Status: int32(Status), + Status: int32(status), Id: int32(k), - NeedActive: int32(Active), + NeedActive: int32(active), }) } return &msg.ResSevenLogin{ - WeekReward: WeekReward, - MonthReward: MonthReward, + WeekReward: weekReward, + MonthReward: monthReward, Active: int32(s.Active), IsBack: s.IsBack, } diff --git a/src/server/game/player_back.go b/src/server/game/player_back.go index 73666247..ead838fc 100644 --- a/src/server/game/player_back.go +++ b/src/server/game/player_back.go @@ -25,19 +25,19 @@ func (p *Player) PlayroomBackData() { r.Status = int32(PlayroomMod.Status) r.Items = item.ItemToMsg(PlayroomMod.Reward) - Opponent := make([]*proto.RoomOpponent, 0, len(PlayroomMod.Visitor)) + opponent := make([]*proto.RoomOpponent, 0, len(PlayroomMod.Visitor)) FriendList := make([]*proto.FriendRoom, 0, len(FriendMod.GetFriendList())) if PlayroomMod.Target == 0 { PlayroomMod.SetTarget(p.GetVisitorPlayer()) } - TargerRoom := &proto.FriendRoom{} + targetRoom := &proto.FriendRoom{} if PlayroomMod.Target != 0 { - PlayerData := G_GameLogicPtr.GetSimplePlayerByUid(PlayroomMod.Target) - if PlayerData != nil { - TargerRoom.Uid = int64(PlayerData.Uid) - TargerRoom.Name = PlayerData.Name - TargerRoom.Face = int32(PlayerData.Face) - TargerRoom.Avatar = int32(PlayerData.Avatar) + playerData := G_GameLogicPtr.GetSimplePlayerByUid(PlayroomMod.Target) + if playerData != nil { + targetRoom.Uid = int64(playerData.Uid) + targetRoom.Name = playerData.Name + targetRoom.Face = int32(playerData.Face) + targetRoom.Avatar = int32(playerData.Avatar) } else { PlayroomMod.Target = 0 } @@ -48,7 +48,7 @@ func (p *Player) PlayroomBackData() { continue } if !FriendMod.CheckFriend(k) { - Opponent = append(Opponent, &proto.RoomOpponent{ + opponent = append(opponent, &proto.RoomOpponent{ Uid: int64(k), Name: ps.Name, Face: int32(ps.Face), @@ -57,8 +57,8 @@ func (p *Player) PlayroomBackData() { }) } } - Friend := FriendMod.GetFriendList() - for k := range Friend { + friend := FriendMod.GetFriendList() + for k := range friend { ps := G_GameLogicPtr.GetSimplePlayerByUid(k) if ps == nil { continue @@ -72,24 +72,24 @@ func (p *Player) PlayroomBackData() { Times: int32(Times), }) } - r.Opponent = Opponent + r.Opponent = opponent r.Friend = FriendList - r.Target = TargerRoom + r.Target = targetRoom collectList := PlayroomMod.GetCollect() - Collect := make([]*proto.PlayroomCollectInfo, 0, len(collectList)) + collect := make([]*proto.PlayroomCollectInfo, 0, len(collectList)) for _, v := range collectList { - Collect = append(Collect, &proto.PlayroomCollectInfo{ + collect = append(collect, &proto.PlayroomCollectInfo{ Id: int32(v.Id), AddTime: v.AddTime, EndTime: v.EndTime, Label: v.Label, }) } - r.Collect = Collect - Dress := make(map[int32]*proto.PlayroomDress) + r.Collect = collect + dress := make(map[int32]*proto.PlayroomDress) for _, v := range PlayroomMod.GetDress() { - PlayroomDress, ok := Dress[int32(v.Part)] + PlayroomDress, ok := dress[int32(v.Part)] if !ok { PlayroomDress = &proto.PlayroomDress{} } @@ -99,25 +99,25 @@ func (p *Player) PlayroomBackData() { EndTime: int64(v.EndTime), Label: v.Label, }) - Dress[int32(v.Part)] = PlayroomDress + dress[int32(v.Part)] = PlayroomDress } - ChipMessage := make([]*proto.ChipInfo, 0, len(PlayroomMod.ChipList)) + chipMessage := make([]*proto.ChipInfo, 0, len(PlayroomMod.ChipList)) for _, v := range PlayroomMod.ChipList { - ChipMessage = append(ChipMessage, &proto.ChipInfo{ + chipMessage = append(chipMessage, &proto.ChipInfo{ Uid: int64(v.Uid), EmojiId: int32(v.Emoji), }) } - AdWatch := make([]*proto.AdItem, 0, len(PlayroomMod.ADItem)) + adWatch := make([]*proto.AdItem, 0, len(PlayroomMod.ADItem)) for k, v := range PlayroomMod.ADItem { - AdWatch = append(AdWatch, &proto.AdItem{ + adWatch = append(adWatch, &proto.AdItem{ Watch: int32(v.Watch), LastWatch: int32(v.LastTime), ItemId: int32(k), }) } - r.Dress = Dress + r.Dress = dress r.DressSet = GoUtil.MapIntToInt32(PlayroomMod.GetDressSet()) petAirList := PlayroomMod.GetPetAir() PetAir := make([]*proto.PlayroomAirInfo, 0, len(petAirList)) @@ -146,7 +146,7 @@ func (p *Player) PlayroomBackData() { r.WeeklyDiscount = weeklyDiscount r.PetAir = PetAir r.PetAirSet = int32(PlayroomMod.GetPetAirSet()) - r.Chip = ChipMessage + r.Chip = chipMessage r.StartTime = int32(PlayroomMod.Starttime) r.WorkStatus = int32(PlayroomMod.WorkStatus) r.Playroom = GoUtil.MapIntToInt32(PlayroomMod.GetRoom()) @@ -162,34 +162,34 @@ func (p *Player) PlayroomBackData() { r.Kiss = int32(p.GetPlayroomKiss(int(p.M_DwUin))) r.Revenge = PlayroomMod.RevengeUid r.InteractNum = int32(PlayroomMod.InteractNum) - r.AdItem = AdWatch + r.AdItem = adWatch p.PushClientRes(r) } -func (p *Player) PlayroomVisit(Uid int) { - if Uid == 0 { +func (p *Player) PlayroomVisit(uid int) { + if uid == 0 { p.PushClientRes(&proto.ResPlayroomInfo{}) return } PlayroomMod := p.PlayMod.getPlayroomMod() r := &proto.ResPlayroomInfo{} - PlayerData := G_GameLogicPtr.GetSimplePlayerByUid(Uid) + PlayerData := G_GameLogicPtr.GetSimplePlayerByUid(uid) if PlayerData == nil { p.PushClientRes(&proto.ResPlayroomInfo{}) return } - Now := GoUtil.Now() - Work := false - if PlayerData.WorkStart > 0 && PlayerData.WorkStart+86400 > Now { - Work = true + now := GoUtil.Now() + work := false + if PlayerData.WorkStart > 0 && PlayerData.WorkStart+86400 > now { + work = true } - r.Uid = int64(Uid) + r.Uid = int64(uid) r.Name = PlayerData.Name r.Face = int32(PlayerData.Face) r.Avatar = int32(PlayerData.Avatar) r.Playroom = GoUtil.MapIntToInt32(PlayerData.Playroom) r.GameId = int32(PlayroomMod.GameId) - r.Defense = Work + r.Defense = work r.Emoji = GoUtil.MapIntToInt32(PlayerData.Emoji) r.PetName = PlayerData.PetName Items := make(map[int32]*proto.ItemInfo) @@ -199,12 +199,12 @@ func (p *Player) PlayroomVisit(Uid int) { Num: int32(v.Num), } } - r.Upvote = GoUtil.InArray(Uid, PlayroomMod.UpvoteList) + r.Upvote = GoUtil.InArray(uid, PlayroomMod.UpvoteList) r.Items = Items r.Status = int32(PlayroomMod.GameStatus) - r.UpvoteCount = int32(p.GetPlayroomUpvote(Uid)) - r.Chip = int32(p.GetPlayroomChip(Uid)) - r.Kiss = int32(p.GetPlayroomKiss(Uid)) + r.UpvoteCount = int32(p.GetPlayroomUpvote(uid)) + r.Chip = int32(p.GetPlayroomChip(uid)) + r.Kiss = int32(p.GetPlayroomKiss(uid)) r.DressSet = GoUtil.MapIntToInt32(PlayerData.DressSet) r.Fur = int32(PlayerData.PetFur) p.PushClientRes(r) @@ -242,17 +242,17 @@ func (p *Player) BackUserInfo() { func (p *Player) ChargeBackData() { c := p.PlayMod.getChargeMod() LimitedEventMod := p.PlayMod.getLimitedTimeEventMod() - SpecialShop := make(map[int32]*proto.ResSpecialShop) - ChessShop := make(map[int32]*proto.ResChessShop) + specialShop := make(map[int32]*proto.ResSpecialShop) + chessShop := make(map[int32]*proto.ResChessShop) for k, v := range c.SpecialShop { - SpecialShop[int32(k)] = &proto.ResSpecialShop{ + specialShop[int32(k)] = &proto.ResSpecialShop{ Grade: int32(v.Grade), Count: int32(v.Count), } } for k, v := range c.ChessShop { - ChessShop[int32(k)] = &proto.ResChessShop{ + chessShop[int32(k)] = &proto.ResChessShop{ Diamond: int32(v.Diamond), Count: int32(v.Count), ChessId: int32(v.Id), @@ -266,20 +266,20 @@ func (p *Player) ChargeBackData() { Uid: c.WishList.SendList, } } - WeeklyDiscount := make(map[int32]*proto.WeeklyDiscountInfo) - WeeklyDiscountInfo := chargeCfg.GetWeeklyInfoAll() + weeklyDiscount := make(map[int32]*proto.WeeklyDiscountInfo) + weeklyDiscountInfo := chargeCfg.GetWeeklyInfoAll() // 优惠日开启或者猫咪闪促开启 if c.IsWeeklyDiscountDay() || LimitedEventMod.CheckExist(limitedTimeEvent.EVENT_TYPE_CAT_DAY_SALE) { - for k, v := range WeeklyDiscountInfo { + for k, v := range weeklyDiscountInfo { LimitNum := c.WeeklyDiscount[k] - WeeklyDiscount[int32(k)] = &proto.WeeklyDiscountInfo{ + weeklyDiscount[int32(k)] = &proto.WeeklyDiscountInfo{ Discount: int32(v.Discount), Count: int32(v.WeeklyLimit - LimitNum), Id: int32(k), } } } - CatDaySaleEndTime := LimitedEventMod.GetCatDaySaleEndTime() + catDaySaleEndTime := LimitedEventMod.GetCatDaySaleEndTime() var specialChargeWeek int32 if c.LastSpecialCharge != 0 { specialChargeWeek = int32(GoUtil.FullWeeksSince(c.LastSpecialCharge)) @@ -288,9 +288,9 @@ func (p *Player) ChargeBackData() { Charge: float32(c.Charge), Total: int32(c.Total), First: GoUtil.MapIntToSlice(c.EnergyShop), - SpecialShop: SpecialShop, + SpecialShop: specialShop, FreeShop: int32(c.FreeShop), - ChessShop: ChessShop, + ChessShop: chessShop, Gift: GoUtil.MapIntToInt32(c.Gift), Ad: c.Ad, SpecialCharge: float32(c.SpecialCharge), @@ -299,9 +299,9 @@ func (p *Player) ChargeBackData() { MonthCharge: float32(c.MonthCharge), Wish: resWish, AdEndTime: c.AdEndTime, - WeeklyDiscount: WeeklyDiscount, + WeeklyDiscount: weeklyDiscount, PetWorkRemainTime: c.PetWorkTime, - WeeklyEndTime: max(c.WeeklyEndTime, CatDaySaleEndTime), + WeeklyEndTime: max(c.WeeklyEndTime, catDaySaleEndTime), }) } @@ -335,16 +335,16 @@ func (p *Player) FriendListBackData() { } } now := GoUtil.Now() - ReqFriendList := make([]int64, 0, len(FriendMod.SendApply)) + reqFriendList := make([]int64, 0, len(FriendMod.SendApply)) for k, v := range FriendMod.SendApply { if now-v > oneday { continue } - ReqFriendList = append(ReqFriendList, int64(k)) + reqFriendList = append(reqFriendList, int64(k)) } p.PushClientRes(&proto.ResFriendList{ FriendList: fl, - ReqApplyList: ReqFriendList, + ReqApplyList: reqFriendList, Npc: GoUtil.IntToInt32(FriendMod.GetNpc()), Sponsor: int32(FriendMod.GetSponsor()), }) diff --git a/src/server/game/player_base_mod.go b/src/server/game/player_base_mod.go index 6a3eca24..8313b354 100644 --- a/src/server/game/player_base_mod.go +++ b/src/server/game/player_base_mod.go @@ -85,10 +85,10 @@ func (p *PlayerBaseData) Recover(old *PlayerBaseData) *PlayerBaseData { return old } -func (p *PlayerBaseData) LoadDataFromDB(UserName interface{}) bool { +func (p *PlayerBaseData) LoadDataFromDB(userName interface{}) bool { sqlStr := "SELECT * FROM t_player_baseinfo WHERE user_name = ?" sqlStruck := db.ResPlayerBaseInfo{} - if err := db.SqlDb.Get(&sqlStruck, sqlStr, UserName); err != nil { + if err := db.SqlDb.Get(&sqlStruck, sqlStr, userName); err != nil { log.Debug("PlayerBaseData get data failed, err:%v\n", err) return false } @@ -118,10 +118,10 @@ func (p *PlayerBaseData) LoadDataFromDB(UserName interface{}) bool { return true } -func (p *PlayerBaseData) LoadDataFromDBByUid(Uid int) bool { +func (p *PlayerBaseData) LoadDataFromDBByUid(uid int) bool { sqlStr := "SELECT * FROM t_player_baseinfo WHERE DwUin = ?" sqlStruck := db.ResPlayerBaseInfo{} - if err := db.SqlDb.Get(&sqlStruck, sqlStr, Uid); err != nil { + if err := db.SqlDb.Get(&sqlStruck, sqlStr, uid); err != nil { log.Debug("PlayerBaseData get data failed, err:%v\n", err) return false } @@ -151,7 +151,7 @@ func (p *PlayerBaseData) LoadDataFromDBByUid(Uid int) bool { return true } -func (p *PlayerBaseData) SaveDataFromDB(Key interface{}) bool { +func (p *PlayerBaseData) SaveDataFromDB(key interface{}) bool { BaseMod := p.p.PlayMod.getBaseMod() sqlStruck := db.ResPlayerBaseInfo{} sqlStruck.Diamond = int32(BaseMod.Diamond) @@ -178,17 +178,16 @@ func (p *PlayerBaseData) SaveDataFromDB(Key interface{}) bool { sqlStruck.FaceBookId = p.Data.FaceBookId sqlStruck.NickName = BaseMod.NickName db.FormatAllMemUpdateDb(&sqlStruck, "t_player_baseinfo", "dwUin") - return true } func (p *PlayerBaseData) GetMaxEnergyMul(player *Player) int { BaseMod := player.PlayMod.getBaseMod() - MaxEnergyMul := baseCfg.GetMaxEnergyMul(BaseMod.GetLevel(), BaseMod.GetEnergy()) + maxEnergyMul := baseCfg.GetMaxEnergyMul(BaseMod.GetLevel(), BaseMod.GetEnergy()) if player.PlayMod.getLimitedTimeEventMod().CheckExist(limitedTimeEvent.EVENT_TYPE_HIGH_ROLLER) { - MaxEnergyMul = 11 + maxEnergyMul = 11 } - return MaxEnergyMul + return maxEnergyMul } func (p *PlayerBaseData) GetMaxEnergy() int { @@ -276,7 +275,6 @@ func (p *PlayerBaseData) ReqUnBindFacebook(player *Player, buf []byte) { if err != nil { return } - res.ResultCode = 0 res.BindAccountId = req.BindAccountId p.Data.FaceBookId = "" @@ -298,7 +296,6 @@ func (p *PlayerBaseData) ReqOnlyBindFacebook(player *Player, buf []byte) { if err != nil { return } - sqlStr := "SELECT * FROM t_player_baseinfo WHERE FaceBookId = ?" sqlStruck := db.ResPlayerBaseInfo{} isHaveOther := false @@ -313,7 +310,6 @@ func (p *PlayerBaseData) ReqOnlyBindFacebook(player *Player, buf []byte) { res.ResultCode = MergeConst.Protocol_FaceBook_Binded } else { sqlStruck.FaceBookId = "" - // 修改双方的faceBookId ctx := context.Background() txOptions := &sql.TxOptions{} @@ -365,11 +361,9 @@ func (p *PlayerBaseData) ReqSynGameData(player *Player, buf []byte) { if err != nil { return } - sqlStr := "SELECT * FROM t_player_baseinfo WHERE FaceBookId = ?" sqlStruck := db.ResPlayerBaseInfo{} isHaveOther := false - if err := db.SqlDb.Get(&sqlStruck, sqlStr, req.NewFBId); err != nil { isHaveOther = false } else { @@ -378,16 +372,16 @@ func (p *PlayerBaseData) ReqSynGameData(player *Player, buf []byte) { if sqlStruck.DwUin == player.M_DwUin { return } - OldPlayer := G_GameLogicPtr.GetPlayer(sqlStruck.DwUin) - if OldPlayer != nil { - agent := OldPlayer.GetAgentByPlayer() + oldPlayer := G_GameLogicPtr.GetPlayer(sqlStruck.DwUin) + if oldPlayer != nil { + agent := oldPlayer.GetAgentByPlayer() // notify := &msg.ForceKickOut{} notify := &msg.ResSynGameData{} data, _ := proto.Marshal(notify) if agent != nil { G_getGameLogic().PackResInfo(agent, "ResSynGameData", data) } - OldPlayer.ClearData() + oldPlayer.ClearData() G_GameLogicPtr.M_Players.Delete(sqlStruck.DwUin) } @@ -395,8 +389,8 @@ func (p *PlayerBaseData) ReqSynGameData(player *Player, buf []byte) { if sqlStruck.DwUin == p.Data.DwUin { res.ResultCode = MergeConst.Protocol_FaceBook_Binded } else { - ReplaceName := sqlStruck.UserName - UserName := p.Data.UserName + replaceName := sqlStruck.UserName + userName := p.Data.UserName res.ResultCode = 0 // 修改双方的账号 ctx := context.Background() @@ -404,7 +398,7 @@ func (p *PlayerBaseData) ReqSynGameData(player *Player, buf []byte) { tx, _ := db.SqlDb.BeginTx(ctx, txOptions) sqlStr1 := "SELECT * FROM t_account WHERE user_name = ?" sqlAccStruck1 := db.Db_Account{} - err2 := db.SqlDb.Get(&sqlAccStruck1, sqlStr1, UserName) + err2 := db.SqlDb.Get(&sqlAccStruck1, sqlStr1, userName) if err2 == nil { sqlAccStruck1.UserName = "" _, err := db.SqlDb.Exec("update t_account set user_name = ? where auto_id = ?", sqlAccStruck1.UserName, sqlAccStruck1.AutoId) @@ -421,8 +415,8 @@ func (p *PlayerBaseData) ReqSynGameData(player *Player, buf []byte) { } sqlStruck.FaceBookId = req.NewFBId - sqlStruck.UserName = UserName - _, err = db.SqlDb.Exec("update t_player_baseinfo set user_name = ?, FaceBookId = ? where dwUin = ?", UserName, req.NewFBId, sqlStruck.DwUin) + sqlStruck.UserName = userName + _, err = db.SqlDb.Exec("update t_player_baseinfo set user_name = ?, FaceBookId = ? where dwUin = ?", userName, req.NewFBId, sqlStruck.DwUin) if err != nil { tx.Rollback() return @@ -430,9 +424,9 @@ func (p *PlayerBaseData) ReqSynGameData(player *Player, buf []byte) { sqlStr := "SELECT * FROM t_account WHERE user_name = ?" sqlAccStruck := db.Db_Account{} - err2 = db.SqlDb.Get(&sqlAccStruck, sqlStr, ReplaceName) + err2 = db.SqlDb.Get(&sqlAccStruck, sqlStr, replaceName) if err2 == nil { - sqlAccStruck.UserName = UserName + sqlAccStruck.UserName = userName _, err := db.SqlDb.Exec("update t_account set user_name = ? where auto_id = ?", sqlAccStruck.UserName, sqlAccStruck.AutoId) if err != nil { tx.Rollback() @@ -468,16 +462,16 @@ func (p *PlayerBaseData) GetRegisterTime() int64 { // 增加减少体力 func (p *PlayerBaseData) AddEnergy(player *Player, cnt int) error { BaseMod := p.p.PlayMod.getBaseMod() - NewEnergy := BaseMod.Energy + cnt - if NewEnergy < 0 { + newEnergy := BaseMod.Energy + cnt + if newEnergy < 0 { return errors.New("能量不足") } if cnt < 0 { player.QuestTrigger(&quest.Trigger{Label: quest.TRIGGER_LABEL_ENERGY, A: []interface{}{-cnt}}) - // BaseMod.FormatEnergyMul(NewEnergy) + // BaseMod.FormatEnergyMul(newEnergy) p.p.PushClientRes(BaseMod.BackData()) } - if BaseMod.Energy >= p.GetMaxEnergy() && NewEnergy < p.GetMaxEnergy() { + if BaseMod.Energy >= p.GetMaxEnergy() && newEnergy < p.GetMaxEnergy() { Recover := userCfg.GetRecover(int(BaseMod.Level)) player.CallEvent(time.Duration(Recover)*time.Second, func() { player.lock.Lock() @@ -486,21 +480,21 @@ func (p *PlayerBaseData) AddEnergy(player *Player, cnt int) error { }, "AddEnergy") BaseMod.RecoverTime = time.Now().Unix() } - BaseMod.Energy = NewEnergy + BaseMod.Energy = newEnergy return nil } // 增加减少星星 func (p *PlayerBaseData) AddStar(player *Player, cnt int) error { BaseMod := p.p.PlayMod.getBaseMod() - NewStar := BaseMod.Star + cnt - if NewStar < 0 { + newStar := BaseMod.Star + cnt + if newStar < 0 { return errors.New("星星不足") } if cnt > 0 { player.QuestTrigger(&quest.Trigger{Label: quest.TRIGGER_LABEL_STAR, A: []interface{}{cnt}}) } - BaseMod.Star = NewStar + BaseMod.Star = newStar player.UpdateUserInfo() return nil } @@ -508,11 +502,11 @@ func (p *PlayerBaseData) AddStar(player *Player, cnt int) error { // 增加减少钻石 func (p *PlayerBaseData) AddDiamond(cnt int) error { BaseMod := p.p.PlayMod.getBaseMod() - NewDiamond := BaseMod.Diamond + cnt - if NewDiamond < 0 { + newDiamond := BaseMod.Diamond + cnt + if newDiamond < 0 { return errors.New("钻石不足") } - BaseMod.Diamond = NewDiamond + BaseMod.Diamond = newDiamond return nil } @@ -523,13 +517,13 @@ func (p *PlayerBaseData) AddExp(player *Player, exp int, pexp int) (int, error) BaseMod.PExp += pexp upLv := 0 upExp, upPExp := userCfg.GetLevUpExp(BaseMod.Level) - Num := 0 - UpLevelItem := make([]*item.Item, 0) + num := 0 + upLevelItem := make([]*item.Item, 0) for BaseMod.Exp >= upExp && BaseMod.PExp >= upPExp { - if Num > 100 { + if num > 100 { break } - Num++ + num++ BaseMod.Level++ BaseMod.Exp -= upExp BaseMod.PExp -= upPExp @@ -541,8 +535,8 @@ func (p *PlayerBaseData) AddExp(player *Player, exp int, pexp int) (int, error) player.PushClientRes(DailyTaskMod.BackData()) } upLv = BaseMod.Level - Items := userCfg.GetLevUpReward(upLv) - UpLevelItem = item.Merge(UpLevelItem, Items) + items := userCfg.GetLevUpReward(upLv) + upLevelItem = item.Merge(upLevelItem, items) // 棋盘背包解锁 player.PushClientRes(p.BackAsset()) ChessMod := player.PlayMod.getChessMod() @@ -577,8 +571,8 @@ func (p *PlayerBaseData) AddExp(player *Player, exp int, pexp int) (int, error) }) player.HandleInUserRank() } - if len(UpLevelItem) > 0 { - err := player.HandleItem(UpLevelItem, msg.ITEM_POP_LABEL_LevUpReward.String()) + if len(upLevelItem) > 0 { + err := player.HandleItem(upLevelItem, msg.ITEM_POP_LABEL_LevUpReward.String()) if err != nil { return 0, err } @@ -658,10 +652,10 @@ func (p *PlayerBaseData) GetLoginTime() int64 { return int64(BaseMod.LoginTime) } -func (p *PlayerBaseData) GetDataByUid(Uid interface{}) bool { +func (p *PlayerBaseData) GetDataByUid(uid interface{}) bool { sqlStr := "SELECT * FROM t_player_baseinfo WHERE dwUin = ?" sqlStruck := db.ResPlayerBaseInfo{} - if err := db.SqlDb.Get(&sqlStruck, sqlStr, Uid); err != nil { + if err := db.SqlDb.Get(&sqlStruck, sqlStr, uid); err != nil { // log.Debug("get data failed, err:%v\n", err) return false } diff --git a/src/server/game/player_chess_mod.go b/src/server/game/player_chess_mod.go index 9e2b8ed5..11726229 100644 --- a/src/server/game/player_chess_mod.go +++ b/src/server/game/player_chess_mod.go @@ -24,26 +24,22 @@ type PlayerChessData struct { } func (p *PlayerChessData) LoadDataFromDB(dwUin interface{}) bool { - return true } -func (p *PlayerChessData) Reconnect(b bool) { - -} - -func (p *PlayerChessData) SaveDataFromDB(Key interface{}) bool { +func (p *PlayerChessData) Reconnect(b bool) {} +func (p *PlayerChessData) SaveDataFromDB(key interface{}) bool { return true } func (p *PlayerChessData) ResPlayerChessData(player *Player) { agent := player.GetAgentByPlayer() - Msg := &p.Data + res := &p.Data ChessMod := player.PlayMod.getChessMod() - Msg.ChessList = ChessMod.BackData().ChessList - Msg.MChessData = ChessMod.ChessMap - data, _ := proto.Marshal(Msg) + res.ChessList = ChessMod.BackData().ChessList + res.MChessData = ChessMod.ChessMap + data, _ := proto.Marshal(res) G_getGameLogic().PackResInfo(agent, "ResPlayerChessData", data) } @@ -57,22 +53,21 @@ func (p *PlayerChessData) ResChessColorData(player *Player) { func (p *PlayerChessData) UpdatePlayerChessData(player *Player, buf []byte) error { update := &msg.UpdatePlayerChessData{} proto.Unmarshal(buf, update) - LastMap := player.PlayMod.getChessMod().ChessMap - AddChessList, AddNewEmit, err := p.HandleChess(player, update.MChessHandle) - + lastMap := player.PlayMod.getChessMod().ChessMap + addChessList, addNewEmit, err := p.HandleChess(player, update.MChessHandle) if err != nil { res := &msg.ResUpdatePlayerChessData{ Code: msg.RES_CODE_FAIL, Msg: err.Error(), } - HandleStr := "" + handleStr := "" sort.Slice(update.MChessHandle, func(i, j int) bool { return update.MChessHandle[i].Id < update.MChessHandle[j].Id }) for _, v := range update.MChessHandle { - HandleStr += fmt.Sprintf("%v-%v-%v,", v.Id, v.ChessId, v.Type) + handleStr += fmt.Sprintf("%v-%v-%v,", v.Id, v.ChessId, v.Type) } - log.Debug("棋子操作队列错误, %v===%v===%v===%v", HandleStr, LastMap, update.MChessData, player.PlayMod.getChessMod().GetChessList()) + log.Debug("棋子操作队列错误, %v===%v===%v===%v", handleStr, lastMap, update.MChessData, player.PlayMod.getChessMod().GetChessList()) player.SendErrClienRes(res) return err } @@ -85,14 +80,14 @@ func (p *PlayerChessData) UpdatePlayerChessData(player *Player, buf []byte) erro Code: msg.RES_CODE_FAIL, Msg: "棋子数据不一致", } - HandleStr := "" + handleStr := "" sort.Slice(update.MChessHandle, func(i, j int) bool { return update.MChessHandle[i].Id < update.MChessHandle[j].Id }) for _, v := range update.MChessHandle { - HandleStr += fmt.Sprintf("%v-%v-%v,", v.Id, v.ChessId, v.Type) + handleStr += fmt.Sprintf("%v-%v-%v,", v.Id, v.ChessId, v.Type) } - log.Debug("棋子数据不一致地图, %v===%v===%v===%v", HandleStr, LastMap, update.MChessData, player.PlayMod.getChessMod().GetChessList()) + log.Debug("棋子数据不一致地图, %v===%v===%v===%v", handleStr, lastMap, update.MChessData, player.PlayMod.getChessMod().GetChessList()) player.SendErrClienRes(res) player.TeLog("outsync_event", map[string]interface{}{ "outsync_event": "UpdatePlayerChessDataFunc", @@ -103,7 +98,7 @@ func (p *PlayerChessData) UpdatePlayerChessData(player *Player, buf []byte) erro BaseMod := player.PlayMod.getBaseMod() OrderMod := player.PlayMod.getOrderMod() ChessMod.ChessMap = update.MChessData - Update := OrderMod.CreateExtraOrder(AddChessList, AddNewEmit, ChessMod.GetUnlockChessList(), BaseMod.GetEnergyMul(), BaseMod.GetLevel()) + Update := OrderMod.CreateExtraOrder(addChessList, addNewEmit, ChessMod.GetUnlockChessList(), BaseMod.GetEnergyMul(), BaseMod.GetLevel()) if Update { player.InitOrderItem() player.PushClientRes(OrderMod.BackData()) @@ -111,8 +106,8 @@ func (p *PlayerChessData) UpdatePlayerChessData(player *Player, buf []byte) erro return nil } -func (p *PlayerChessData) UpdateChessData(player *Player, MChessData map[string]int32) error { - p.Data.MChessData = MChessData +func (p *PlayerChessData) UpdateChessData(player *Player, mChessData map[string]int32) error { + p.Data.MChessData = mChessData if !p.checkChessEqual(player) { res := &msg.ResUpdatePlayerChessData{ Code: msg.RES_CODE_FAIL, @@ -125,7 +120,7 @@ func (p *PlayerChessData) UpdateChessData(player *Player, MChessData map[string] }) return fmt.Errorf("棋子数据不一致") } - player.PlayMod.getChessMod().ChessMap = MChessData + player.PlayMod.getChessMod().ChessMap = mChessData return nil } @@ -134,21 +129,19 @@ func (p *PlayerChessData) checkChessEqual(player *Player) bool { if len(p.Data.MChessData) == 0 && conf.Server.GameName == "Merge_Pet_Local" { return true } - ChessList := player.PlayMod.getChessMod().GetChessList() - if len(ChessList) != len(p.Data.MChessData) { + chessList := player.PlayMod.getChessMod().GetChessList() + if len(chessList) != len(p.Data.MChessData) { return false } - aCopy := make([]int, 0, len(ChessList)) + aCopy := make([]int, 0, len(chessList)) bCopy := make([]int, 0, len(p.Data.MChessData)) - for _, v := range ChessList { + for _, v := range chessList { aCopy = append(aCopy, int(v)) } for _, v := range p.Data.MChessData { bCopy = append(bCopy, int(v)) } - isEqual := SlicesEqual(aCopy, bCopy) - - if isEqual { + if SlicesEqual(aCopy, bCopy) { return true } // 找出aCopy多的元素和少的元素 @@ -199,75 +192,75 @@ func (p *PlayerChessData) HandleChess(player *Player, handle_list []*msg.ChessHa HandbookMod := player.PlayMod.getHandbookMod() var addChessCostEnergy int var buyChess int - LimitPush := false // 限时事件推送 + limitPush := false // 限时事件推送 var TriggerList []*quest.Trigger var itemList []*item.Item - var AddChessList []int - var AddNewEmit []int - EmitList := ChessMod.GetEmitList() + var addChessList []int + var addNewEmit []int + emitList := ChessMod.GetEmitList() for _, v := range handle_list { - ChessId := int(v.ChessId) - EmitId := int(v.Emit) + chessId := int(v.ChessId) + emitId := int(v.Emit) switch v.Type { case msg.HANDLE_TYPE_ADD: //增加棋子 - err := ChessMod.AddChess(ChessId) + err := ChessMod.AddChess(chessId) if err != nil { return nil, nil, err } - Type := mergeDataCfg.GetTypeById(ChessId) - AddChessList = append(AddChessList, ChessId) - if !GoUtil.InArray(EmitId, []int{561, 562, 563, 564, 701, 702, 703, 704, 705, 706, 0}) && Type != "Resource" { // 宝箱生成的棋子不扣体力 + chessType := mergeDataCfg.GetTypeById(chessId) + addChessList = append(addChessList, chessId) + if !GoUtil.InArray(emitId, []int{561, 562, 563, 564, 701, 702, 703, 704, 705, 706, 0}) && chessType != "Resource" { // 宝箱生成的棋子不扣体力 addChessCostEnergy++ } - b := HandbookMod.SetHandbook(ChessId) // 添加图鉴 + b := HandbookMod.SetHandbook(chessId) // 添加图鉴 if b { player.TeLog("collection_add", map[string]interface{}{ - "item_id": ChessId, - "item_name": mergeDataCfg.GetNameById(ChessId), + "item_id": chessId, + "item_name": mergeDataCfg.GetNameById(chessId), }) - AddNewEmit = append(AddNewEmit, ChessId) + addNewEmit = append(addNewEmit, chessId) } player.PushClientRes(HandbookMod.BackData()) case msg.HANDLE_TYPE_COMPOSE: //合成棋子 - NewChessId, err := ChessMod.ComposeChess(ChessId) + newChessId, err := ChessMod.ComposeChess(chessId) if err != nil { return nil, nil, err } - b := HandbookMod.SetHandbook(NewChessId) // 添加图鉴 + b := HandbookMod.SetHandbook(newChessId) // 添加图鉴 if b { - AddNewEmit = append(AddNewEmit, NewChessId) + addNewEmit = append(addNewEmit, newChessId) } - AddChessList = append(AddChessList, NewChessId) - NewChessIdLv := mergeDataCfg.GetLvById(NewChessId) - TriggerList = append(TriggerList, &quest.Trigger{Label: quest.TRIGGER_LABEL_MERGELVTIME, A: []interface{}{NewChessIdLv}}) + addChessList = append(addChessList, newChessId) + newChessIdLv := mergeDataCfg.GetLvById(newChessId) + TriggerList = append(TriggerList, &quest.Trigger{Label: quest.TRIGGER_LABEL_MERGELVTIME, A: []interface{}{newChessIdLv}}) TriggerList = append(TriggerList, &quest.Trigger{Label: quest.TRIGGER_LABEL_MERGETIME}) player.PushClientRes(HandbookMod.BackData()) - triggerComposeChess(player, NewChessId, player.PlayMod.getBaseMod().EnergyMul, player.PlayMod.getChessMod().GetEmitList()) + triggerComposeChess(player, newChessId, player.PlayMod.getBaseMod().EnergyMul, player.PlayMod.getChessMod().GetEmitList()) // 获取活动道具 ActItem := player.GetActivityItem(GoUtil.Int32ToInt(v.ActType)) itemList = item.Merge(itemList, ActItem) case msg.HANDLE_TYPE_BUY: //购买棋子 - loseGold, err := ChessMod.BuyChess(ChessId) + loseGold, err := ChessMod.BuyChess(chessId) if err != nil { return nil, nil, err } - AddChessList = append(AddChessList, ChessId) + addChessList = append(addChessList, chessId) buyChess += loseGold itemList = append(itemList, &item.Item{Id: item.ITEM_STAR_ID, Num: int(-loseGold)}) case msg.HANDLE_TYPE_SELL: //出售棋子 - items, err := ChessMod.SellChess(ChessId) - if checkChess(ChessId, BaseMod.GetEnergyMul(), ChessMod.GetEmitList()) { // 在订单中无法生成的棋子 出售获得原价宠物币 - items = []*item.Item{{Id: item.ITEM_STAR_ID, Num: mergeDataCfg.GetStarById(ChessId)}} + items, err := ChessMod.SellChess(chessId) + if checkChess(chessId, BaseMod.GetEnergyMul(), ChessMod.GetEmitList()) { // 在订单中无法生成的棋子 出售获得原价宠物币 + items = []*item.Item{{Id: item.ITEM_STAR_ID, Num: mergeDataCfg.GetStarById(chessId)}} } LimitedTimeEventMod := player.PlayMod.getLimitedTimeEventMod() - ChessType := mergeDataCfg.GetTypeById(ChessId) - if LimitedTimeEventMod.CheckExist(limitedTimeEvent.EVENT_TYPE_PAYBACK_DAY) && ChessType == "Product" { // 限时活动 返利日 + chessType := mergeDataCfg.GetTypeById(chessId) + if LimitedTimeEventMod.CheckExist(limitedTimeEvent.EVENT_TYPE_PAYBACK_DAY) && chessType == "Product" { // 限时活动 返利日 err = LimitedTimeEventMod.SubPaybackDay() if err == nil { - items = []*item.Item{{Id: item.ITEM_STAR_ID, Num: mergeDataCfg.GetStarById(ChessId)}} + items = []*item.Item{{Id: item.ITEM_STAR_ID, Num: mergeDataCfg.GetStarById(chessId)}} } - LimitPush = true + limitPush = true } if err != nil { return nil, nil, err @@ -277,8 +270,8 @@ func (p *PlayerChessData) HandleChess(player *Player, handle_list []*msg.ChessHa get_star_num = items[0].Num } player.TeLog("sell_item", map[string]interface{}{ - "merge_item_id": ChessId, - "product_name": mergeDataCfg.GetNameById(ChessId), + "merge_item_id": chessId, + "product_name": mergeDataCfg.GetNameById(chessId), "get_star_num": get_star_num, }) itemList = item.Merge(itemList, items) @@ -286,34 +279,34 @@ func (p *PlayerChessData) HandleChess(player *Player, handle_list []*msg.ChessHa ActItem := player.GetActivityItem(GoUtil.Int32ToInt(v.ActType)) itemList = item.Merge(itemList, ActItem) case msg.HANDLE_TYPE_REMOVE: //移除棋子 - ChessMod.RemoveChess(ChessId) + ChessMod.RemoveChess(chessId) } } //扣除体力 - EnergyPow := BaseMod.GetEnergyMul() - ReduceEneny := 0 + energyPow := BaseMod.GetEnergyMul() + reduceEneny := 0 if addChessCostEnergy > 0 { - ReduceEneny = int(math.Pow(2, float64(EnergyPow))) * addChessCostEnergy - itemList = append(itemList, &item.Item{Id: item.ITEM_ENERGY_ID, Num: -ReduceEneny}) + reduceEneny = int(math.Pow(2, float64(energyPow))) * addChessCostEnergy + itemList = append(itemList, &item.Item{Id: item.ITEM_ENERGY_ID, Num: -reduceEneny}) } err := player.HandleItem(itemList, msg.ITEM_POP_LABEL_HandleChess.String()) if err != nil { return nil, nil, err } - NewEmitList := ChessMod.GetEmitList() - var EmitProductList []string - for _, v := range EmitList { + newEmitList := ChessMod.GetEmitList() + var emitProductList []string + for _, v := range emitList { ColorList := mergeDataCfg.GetEmitProduceType(v) - EmitProductList = append(EmitProductList, ColorList...) + emitProductList = append(emitProductList, ColorList...) } - var NewEmitProductList []string - for _, v := range NewEmitList { + var newEmitProductList []string + for _, v := range newEmitList { ColorList := mergeDataCfg.GetEmitProduceType(v) - NewEmitProductList = append(NewEmitProductList, ColorList...) + newEmitProductList = append(newEmitProductList, ColorList...) } OrderMod := player.PlayMod.getOrderMod() - if !GoUtil.SlicesEqualString(EmitProductList, NewEmitProductList) { + if !GoUtil.SlicesEqualString(emitProductList, newEmitProductList) { // 发射器系列变化,重新洗牌 OrderMod.ResetChessPool() } @@ -321,10 +314,10 @@ func (p *PlayerChessData) HandleChess(player *Player, handle_list []*msg.ChessHa // 限时事件 小猫戏法 LimitedTimeEventMod := player.PlayMod.getLimitedTimeEventMod() if LimitedTimeEventMod.CheckExist(limitedTimeEvent.EVENT_TYPE_CAT_TRICK) { - LimitedTimeEventMod.AddCatTrickEnergy(ReduceEneny) - LimitPush = true + LimitedTimeEventMod.AddCatTrickEnergy(reduceEneny) + limitPush = true } - if LimitPush { + if limitPush { player.PushClientRes(LimitedTimeEventMod.BackData()) } player.QuestTriggerList(TriggerList) @@ -332,80 +325,80 @@ func (p *PlayerChessData) HandleChess(player *Player, handle_list []*msg.ChessHa player.InitOrderItem() player.PushClientRes(ChessMod.BackData()) player.PlayMod.save() - return AddChessList, AddNewEmit, nil + return addChessList, addNewEmit, nil } func (p *PlayerChessData) ClearData() bool { return true } -func checkChess(ChessId, EnergyMul int, Emit []int) bool { - if len(Emit) == 0 { +func checkChess(chessId, energyMul int, emit []int) bool { + if len(emit) == 0 { return false } - ChessIdLv := mergeDataCfg.GetLvById(ChessId) - ChessIdType := mergeDataCfg.GetTypeById(ChessId) - if ChessIdType != "Product" { + chessIdLv := mergeDataCfg.GetLvById(chessId) + chessIdType := mergeDataCfg.GetTypeById(chessId) + if chessIdType != "Product" { return false } - ChessIdColor := mergeDataCfg.GetColorById(ChessId) - if ChessIdColor == "Star" || ChessIdColor == "Energy" || ChessIdColor == "Diamond" { + chessIdColor := mergeDataCfg.GetColorById(chessId) + if chessIdColor == "Star" || chessIdColor == "Energy" || chessIdColor == "Diamond" { return false } - EmitId := 0 - for _, v := range Emit { + emitId := 0 + for _, v := range emit { ProduceColor := mergeDataCfg.GetEmitProduceType(v) - if GoUtil.InStringArray(ChessIdColor, ProduceColor) { - EmitId = v + if GoUtil.InStringArray(chessIdColor, ProduceColor) { + emitId = v break } } - _, Max := getChesslvRange(EmitId, EnergyMul, false) - Adjust := mergeDataCfg.GetAdjust(EmitId, ChessIdColor, EnergyMul) - return ChessIdLv > Max-Adjust + _, max := getChesslvRange(emitId, energyMul, false) + adjust := mergeDataCfg.GetAdjust(emitId, chessIdColor, energyMul) + return chessIdLv > max-adjust } -func getChesslvRange(Emit int, EnergyMul int, IsCharge bool) (int, int) { - RandEmitLv := mergeDataCfg.GetLvById(Emit) - EmitId := mergeDataCfg.GetEmitId(Emit) - RandMaxLv := mergeDataCfg.GetMaxLvById(Emit) - RandEmitMinLv := mergeDataCfg.GetEmitMinLvById(EmitId) - Ratio := mergeDataCfg.GetEmitRatio(EmitId) - m := int(float64(1+RandEmitLv-RandEmitMinLv) / float64(1+RandMaxLv-RandEmitMinLv) / Ratio * 100) - if IsCharge { +func getChesslvRange(emit int, energyMul int, isCharge bool) (int, int) { + randEmitLv := mergeDataCfg.GetLvById(emit) + emitId := mergeDataCfg.GetEmitId(emit) + randMaxLv := mergeDataCfg.GetMaxLvById(emit) + randEmitMinLv := mergeDataCfg.GetEmitMinLvById(emitId) + ratio := mergeDataCfg.GetEmitRatio(emitId) + m := int(float64(1+randEmitLv-randEmitMinLv) / float64(1+randMaxLv-randEmitMinLv) / ratio * 100) + if isCharge { m += 10 } m = max(1, m) m = min(100, m) - ChessMinLev := orderCfg.GetLvMin(EnergyMul) - ChessMaxLev := orderCfg.GetLvMax(EnergyMul, m) + ChessMinLev := orderCfg.GetLvMin(energyMul) + ChessMaxLev := orderCfg.GetLvMax(energyMul, m) return ChessMinLev, ChessMaxLev } -func triggerComposeChess(player *Player, ChessId, EnergyMul int, Emit []int) { +func triggerComposeChess(player *Player, chessId, energyMul int, emit []int) { OrderMod := player.PlayMod.getOrderMod() if OrderMod.Step < 12 { return } - if !checkChess(ChessId, EnergyMul, Emit) { + if !checkChess(chessId, energyMul, emit) { return } ChessMod := player.PlayMod.getChessMod() ChessList := ChessMod.GetUnlockChessList() - ChessNum := 0 + chessNum := 0 for _, v := range ChessList { - if v == ChessId { - ChessNum++ + if v == chessId { + chessNum++ } } - OrderNum := 0 + orderNum := 0 for _, v := range OrderMod.GetOrderList() { - if v.Type == order.Clean_Order_type && v.MergeId[0] == ChessId { - OrderNum++ + if v.Type == order.Clean_Order_type && v.MergeId[0] == chessId { + orderNum++ } } - if OrderNum >= ChessNum { + if orderNum >= chessNum { return } - OrderMod.CreateCleanOrder2([]int{ChessId}) + OrderMod.CreateCleanOrder2([]int{chessId}) player.PushClientRes(OrderMod.BackData()) } From c090807cb38f22e581b3325905c527e5e819c1f9 Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Tue, 24 Mar 2026 20:03:54 +0800 Subject: [PATCH 34/52] =?UTF-8?q?=E8=AE=A2=E5=8D=95bug=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/server/game/message_handler.go | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/server/game/message_handler.go b/src/server/game/message_handler.go index 8d37373b..d4cd7775 100644 --- a/src/server/game/message_handler.go +++ b/src/server/game/message_handler.go @@ -1253,6 +1253,9 @@ func (p *Player) AddHighOrder() { OrderMod := p.PlayMod.getOrderMod() BaseMod := p.PlayMod.getBaseMod() ChessMod := p.PlayMod.getChessMod() + if len(OrderMod.LastOrder.MergeId) == 0 { + return + } lastChess := OrderMod.LastOrder.MergeId[len(OrderMod.LastOrder.MergeId)-1] maxId := 0 for k := range OrderMod.GetOrderList() { From 1b54ab5f43fbc215777a612e5b74b4dcf36eb1bf Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Wed, 25 Mar 2026 11:19:45 +0800 Subject: [PATCH 35/52] =?UTF-8?q?=E9=AB=98=E7=BA=A7=E8=AE=A2=E5=8D=95?= =?UTF-8?q?=E5=A2=9E=E5=8A=A012=E7=BA=A7=E8=A7=A3=E9=94=81=E9=99=90?= =?UTF-8?q?=E5=88=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/server/game/message_handler.go | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/server/game/message_handler.go b/src/server/game/message_handler.go index d4cd7775..9e340ff4 100644 --- a/src/server/game/message_handler.go +++ b/src/server/game/message_handler.go @@ -1323,6 +1323,10 @@ func (p *Player) AddHighOrder() { 注意:当现有订单(无论是自动或固定订单)中已有两个或三个最高等级产物订单的时候,不执行此逻辑 */ func (p *Player) AddHighOrder2() { + BaseMod := p.PlayMod.getBaseMod() + if BaseMod.GetLevel() < 12 { + return + } OrderMod := p.PlayMod.getOrderMod() ChessMod := p.PlayMod.getChessMod() chessList := ChessMod.GetUnlockChessList() From 5a04b66a1c9f25f27d58b427be63c0eb8345fcd0 Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Wed, 25 Mar 2026 11:42:19 +0800 Subject: [PATCH 36/52] =?UTF-8?q?=E4=BC=98=E5=8C=96=E5=A4=87=E4=BB=BD?= =?UTF-8?q?=E5=AF=B9=E8=B1=A1=E7=9A=84=E5=9B=9E=E6=94=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/server/game/external.go | 1 + src/server/game/message_handler.go | 3 ++- src/server/game/player_data.go | 7 +++++-- 3 files changed, 8 insertions(+), 3 deletions(-) diff --git a/src/server/game/external.go b/src/server/game/external.go index d43b7dae..de31aa75 100644 --- a/src/server/game/external.go +++ b/src/server/game/external.go @@ -215,6 +215,7 @@ func HandleClientReq(args []interface{}) { } p.(*Player).Recover(backup) //还原Player的数据 } + backup.Reclaim() // 回收备份对象 p.(*Player).lock.Unlock() //解锁 }() p.(*Player).args = make(map[string]interface{}) diff --git a/src/server/game/message_handler.go b/src/server/game/message_handler.go index 9e340ff4..9b5fa356 100644 --- a/src/server/game/message_handler.go +++ b/src/server/game/message_handler.go @@ -38,7 +38,8 @@ func (p *Player) HandleMsg(m *msg.Msg) { log.Error("Handle msg uid : %d, msg : %v, fatal : %s", p.M_DwUin, m, r) p.Recover(backup) //还原Player的数据 } - p.lock.Unlock() //解锁 + backup.Reclaim() // 回收备份对象 + p.lock.Unlock() //解锁 }() p.args = make(map[string]interface{}) err := p.handle(m) diff --git a/src/server/game/player_data.go b/src/server/game/player_data.go index 065517f7..430a9fd9 100644 --- a/src/server/game/player_data.go +++ b/src/server/game/player_data.go @@ -93,6 +93,11 @@ func (pd *PlayerBackUp) Reset() { pd.PlayMod = nil } +func (pd *PlayerBackUp) Reclaim() { + pd.Reset() + playerDataPool.Put(pd) +} + func (p *Player) Stop() { p.wg.Wait() p.signalDispatcherStop() @@ -223,8 +228,6 @@ func (p *Player) Recover(backUp *PlayerBackUp) { // p.GetPlayerBaseMod().Data = backUp.Data p.PlayMod.Recover(backUp) p.Msg = make([]PlayerMsg, 0) - backUp.Reset() - playerDataPool.Put(backUp) } func (p *Player) InitPlayer(UserName string) error { From 820ae5bbfacd1032056d08ce6518aab1af0ed68f Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Wed, 25 Mar 2026 18:30:22 +0800 Subject: [PATCH 37/52] =?UTF-8?q?=E9=AB=98=E7=BA=A7=E8=AE=A2=E5=8D=95?= =?UTF-8?q?=E4=BC=98=E5=8C=96=E9=80=80=E5=BD=B9=E6=A3=8B=E5=AD=90=E7=9A=84?= =?UTF-8?q?=E7=94=9F=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/server/game/message_handler.go | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/src/server/game/message_handler.go b/src/server/game/message_handler.go index 9b5fa356..8e894464 100644 --- a/src/server/game/message_handler.go +++ b/src/server/game/message_handler.go @@ -1249,7 +1249,7 @@ func (p *Player) GetPetThiefReward(target int) error { return nil } -// 高级产物订单 +// 高级产物订单 回收订单中不会生成的棋子 func (p *Player) AddHighOrder() { OrderMod := p.PlayMod.getOrderMod() BaseMod := p.PlayMod.getBaseMod() @@ -1291,8 +1291,12 @@ func (p *Player) AddHighOrder() { } } RetireProduceColor := ChessMod.GetRetireProduceColor() + emitList := ChessMod.GetEmitList() for Color, ChessId := range chessMap { - emitId := order.GetEmitByColor(ChessMod.GetOrderEmit(), Color) + emitId := order.GetEmitByColor(emitList, Color) + if emitId == 0 { + continue + } _, ChessMaxLv := getChesslvRange(emitId, BaseMod.GetEnergyMul(), OrderMod.IsCharge) newLev2 := mergeDataCfg.DynamicLev(ChessMaxLv, emitId, Color) newLev3 := order.AdjustLev(newLev2, BaseMod.GetEnergyMul()) @@ -1310,6 +1314,13 @@ func (p *Player) AddHighOrder() { if GoUtil.InArray(ChessId, v.MergeId) { add = false } + // 增加当订单中已有同类型且等级大于等于该棋子的订单时,不生成订单 + for _, v1 := range v.MergeId { + if mergeDataCfg.GetColorById(v1) == Color && mergeDataCfg.GetLvById(v1) >= chessLv { + add = false + break + } + } } if add { OrderMod.AddExtraOrder([]int{ChessId}) From f62cd62952204f0030594bba30d2cace4d3c8be3 Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Thu, 26 Mar 2026 15:10:50 +0800 Subject: [PATCH 38/52] =?UTF-8?q?=E8=99=9A=E6=8B=9F=E4=BD=93=E5=8A=9B?= =?UTF-8?q?=E6=89=93=E7=82=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/server/game/message_handler.go | 9 ++++---- .../limited_time_event/limited_time_event.go | 11 ++++----- src/server/game/register_network_func.go | 23 ++++++++++--------- 3 files changed, 21 insertions(+), 22 deletions(-) diff --git a/src/server/game/message_handler.go b/src/server/game/message_handler.go index 8e894464..7a9dc2e0 100644 --- a/src/server/game/message_handler.go +++ b/src/server/game/message_handler.go @@ -865,10 +865,11 @@ func (player *Player) TriggerOrder(lv int, Type string, Emit []int, EnergyMul in vType = orderType } player.TeLog("preset_order_birth", map[string]interface{}{ - "order_id": v.Id, - "order_item_id": v.MergeList, - "preset_order_group": v.Group, - "preset_order_step": v.Step, + "order_id": v.Id, + "order_item_id": v.MergeList, + "preset_order_group": v.Group, + "preset_order_step": v.Step, + "order_virtual_energy": order.GetVirtualEnergy(v.MergeList, player.GetChessMod().GetStarEmitList()), }) if exists { orderInfo.Type = order.Fixed_type diff --git a/src/server/game/mod/limited_time_event/limited_time_event.go b/src/server/game/mod/limited_time_event/limited_time_event.go index 3f69af04..797ba55d 100644 --- a/src/server/game/mod/limited_time_event/limited_time_event.go +++ b/src/server/game/mod/limited_time_event/limited_time_event.go @@ -6,7 +6,6 @@ import ( limitedTimeEventCfg "server/conf/limited_time_event" mergeDataCfg "server/conf/merge_data" "server/game/mod/item" - "server/game/mod/order" GoUtil "server/game_util" "server/msg" ) @@ -257,16 +256,14 @@ func (l *LimitedTimeEventMod) ProgressBackData() *msg.ResLimitEventProgress { } // 获取流星雨奖励 -func (l *LimitedTimeEventMod) GetMeteorReward(mergeList, emitList []int) []*item.Item { - energy := order.GetVirtualEnergy(mergeList, emitList) - newStar := int(max(math.Ceil(float64(energy)/0.36*0.1), 1)) +func (l *LimitedTimeEventMod) GetMeteorReward(virtualEnergy int) []*item.Item { + newStar := int(max(math.Ceil(float64(virtualEnergy)/0.36*0.1), 1)) return []*item.Item{{Id: item.ITEM_STAR_ID, Num: newStar}} } // 获取宝箱雨奖励 -func (l *LimitedTimeEventMod) GetChestReward(mergeList, emitList []int) []*item.Item { - energy := order.GetVirtualEnergy(mergeList, emitList) - star := math.Ceil(float64(energy) / 10 / 2.5) +func (l *LimitedTimeEventMod) GetChestReward(virtualEnergy int) []*item.Item { + star := math.Ceil(float64(virtualEnergy) / 10 / 2.5) return []*item.Item{item.NewItem(item.ITEM_DIAMOND_ID, int(star))} } diff --git a/src/server/game/register_network_func.go b/src/server/game/register_network_func.go index 8adad8b3..6def0a0c 100644 --- a/src/server/game/register_network_func.go +++ b/src/server/game/register_network_func.go @@ -277,8 +277,8 @@ func ReqRewardOrder(player *Player, buf []byte) error { if orderType == order.Pet_type { items = player.FormatPetOrderItem(items) } + virtualEnergy := order.GetVirtualEnergy(mergeList, ChessMod.GetStarEmitList()) if orderType == order.Super_type { - virtualEnergy := order.GetVirtualEnergy(mergeList, ChessMod.GetStarEmitList()) superOrderItem := limitedTimeEventCfg.GetSuperOrderReward(virtualEnergy) items = item.Merge(items, superOrderItem) } @@ -293,7 +293,7 @@ func ReqRewardOrder(player *Player, buf []byte) error { } } if LimitedTimeEventMod.CheckExist(limitedTimeEvent.EVENT_TYPE_METEOR_SHOW) { //流星雨活动 - addItem := LimitedTimeEventMod.GetMeteorReward(mergeList, ChessMod.GetStarEmitList()) + addItem := LimitedTimeEventMod.GetMeteorReward(virtualEnergy) if len(addItem) > 0 { player.TeLog("time_limited_event_action", map[string]interface{}{ "event_type": limitedTimeEventCfg.GetEventName(limitedTimeEvent.EVENT_TYPE_METEOR_SHOW), @@ -341,7 +341,7 @@ func ReqRewardOrder(player *Player, buf []byte) error { } if LimitedTimeEventMod.CheckExist(limitedTimeEvent.EVENT_TYPE_CHEST_RAIN) { //宝箱雨活动 - chestRainItems := LimitedTimeEventMod.GetChestReward(mergeList, ChessMod.GetStarEmitList()) + chestRainItems := LimitedTimeEventMod.GetChestReward(virtualEnergy) player.args["ResItemPopId"] = req.OrderId err = player.HandleItem(chestRainItems, msg.ITEM_POP_LABEL_LimitEventChestRain.String()) if err != nil { @@ -390,14 +390,15 @@ func ReqRewardOrder(player *Player, buf []byte) error { } preset_order_group, preset_order_step := orderCfg.GetStartOrderInfo(int(req.OrderId)) player.TeLog("order_finish", map[string]interface{}{ - "order_id": int(req.OrderId), - "order_item_id": mergeList, - "order_type": orderType, - "order_star_reward": order_star_reward, - "order_item_reward": order_item_reward, - "order_star_value": star, - "preset_order_group": preset_order_group, - "preset_order_step": preset_order_step, + "order_id": int(req.OrderId), + "order_item_id": mergeList, + "order_type": orderType, + "order_star_reward": order_star_reward, + "order_item_reward": order_item_reward, + "order_star_value": star, + "preset_order_group": preset_order_group, + "preset_order_step": preset_order_step, + "order_virtual_energy": virtualEnergy, }) player.PetItemGetLog(items, nil, "Order") player.EmitRetireTrigger2() From 2ba880d86990fb174a6819601f8f3d04631707f2 Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Thu, 26 Mar 2026 17:17:49 +0800 Subject: [PATCH 39/52] =?UTF-8?q?=E8=B0=83=E8=AF=95=E5=B7=A5=E5=85=B7?= =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/server/game/gm_handler.go | 11 +++++++++++ src/server/game/unit_test.go | 9 --------- src/server/test/limit_test.go | 10 ---------- src/server/test/order_test.go | 9 --------- 4 files changed, 11 insertions(+), 28 deletions(-) diff --git a/src/server/game/gm_handler.go b/src/server/game/gm_handler.go index 593ddb3c..d02c51c8 100644 --- a/src/server/game/gm_handler.go +++ b/src/server/game/gm_handler.go @@ -662,6 +662,17 @@ func ReqGmCommand_(player *Player, Command string) error { From: uid, Extra: []int{2, 145}, }) + case "debugBeckmarkMsg": + for i := 0; i < 1000000; i++ { + for j := 0; j < 10; j++ { + FriendMgrSend(&MsgMod.Msg{ + Type: MsgMod.HANDLE_TYPE_APPLY, + SendT: GoUtil.ZeroTimestamp(), + To: 10000 + i, + From: 10000 + j, + }) + } + } case "debugLogoutMsg": ToUid, _ := strconv.Atoi(arg[1]) uidList, err := db.GetDebugPlayer(ToUid) diff --git a/src/server/game/unit_test.go b/src/server/game/unit_test.go index ffa0d114..2e97bac0 100644 --- a/src/server/game/unit_test.go +++ b/src/server/game/unit_test.go @@ -183,15 +183,6 @@ func UnitLimitProgress(p *Player) error { return nil } -func UnitLimitedTimeEvent(p *Player) error { - LimitedTimeEventMod := p.PlayMod.getLimitedTimeEventMod() - ChessMod := p.PlayMod.getChessMod() - mergeList := []int{246, 15} - AddItem := LimitedTimeEventMod.GetChestReward(mergeList, ChessMod.GetStarEmitList()) - fmt.Print(AddItem) - return nil -} - func UnitCard(p *Player) error { CardMod := p.PlayMod.getCardMod() for i := 0; i < 10000; i++ { diff --git a/src/server/test/limit_test.go b/src/server/test/limit_test.go index 7e815878..002b7418 100644 --- a/src/server/test/limit_test.go +++ b/src/server/test/limit_test.go @@ -7,16 +7,6 @@ import ( "testing" ) -func TestMetroRain(t *testing.T) { - // 3625212 - p := new(game.Player) - p.InitPlayer("3625212") - ChessMod := p.GetChessMod() - LimitEventMod := p.GetLimitEventMod() - rewards := LimitEventMod.GetMeteorReward([]int{1, 22, 3}, ChessMod.GetStarEmitList()) - t.Logf("rewards: %v", rewards) -} - func TestFast(t *testing.T) { p := new(game.Player) p.InitPlayer("3625212") diff --git a/src/server/test/order_test.go b/src/server/test/order_test.go index a273a00a..4f8ffc8c 100644 --- a/src/server/test/order_test.go +++ b/src/server/test/order_test.go @@ -32,15 +32,6 @@ func TestOrderFinish(t *testing.T) { } } -func TestChestRain(t *testing.T) { - p1 := new(game.Player) - p1.InitPlayer("3625212") - ChessMod := p1.GetChessMod() - LimitEventMod := p1.GetLimitEventMod() - f := LimitEventMod.GetMeteorReward([]int{226}, ChessMod.GetStarEmitList()) - fmt.Printf("chest rain reward:%v", f) -} - func TestInitOrderItem(t *testing.T) { p1 := new(game.Player) p1.InitPlayer("3625212") From 420d0d6d9e289be9fba2c648322d6438d43e1762 Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Fri, 27 Mar 2026 10:44:21 +0800 Subject: [PATCH 40/52] =?UTF-8?q?=E8=AE=A2=E5=8D=95=E6=95=B0=E5=80=BC?= =?UTF-8?q?=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/server/game/mod/order/order_func.go | 2 +- src/server/test/order_test.go | 17 +++++++++++++++++ 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/src/server/game/mod/order/order_func.go b/src/server/game/mod/order/order_func.go index cdeb003a..7349be3c 100644 --- a/src/server/game/mod/order/order_func.go +++ b/src/server/game/mod/order/order_func.go @@ -148,7 +148,7 @@ func getChessByDiff(lv, diff, cType int) (int, int, int) { return 40, 200, GoUtil.RandMap(map[int]int{1: 50, 2: 50}) } if cType == Part_type { - return 100, 600, GoUtil.RandMap(map[int]int{1: 50, 2: 50}) + return 40, 400, GoUtil.RandMap(map[int]int{1: 50, 2: 50}) } if cType == COMFORT_TYPE { return 15, 150, GoUtil.RandMap(map[int]int{1: 33, 2: 67}) diff --git a/src/server/test/order_test.go b/src/server/test/order_test.go index 4f8ffc8c..67effdb8 100644 --- a/src/server/test/order_test.go +++ b/src/server/test/order_test.go @@ -65,3 +65,20 @@ func TestAddPetOrder(t *testing.T) { emitList := ChessMod.GetOrderPartEmit() fmt.Printf("emit list:%v", emitList) } + +func TestAddNormalOrder(t *testing.T) { + p1 := new(game.Player) + p1.InitPlayer("3625212") + p1.CreateNormalOrder() +} + +func TestAddPartOrder(t *testing.T) { + p1 := new(game.Player) + p1.InitPlayer("3625212") + OrderMod := p1.GetOrderMod() + BaseMod := p1.GetBaseMod() + ChessMod := p1.GetChessMod() + for i := 0; i < 10; i++ { + OrderMod.CreateOrder(BaseMod.GetLevel(), ChessMod.GetOrderPartEmit(), BaseMod.GetEnergyMul(), order.Part_type) + } +} From dab7c252b49cc82733df87a306a10fa929e445cb Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Fri, 27 Mar 2026 11:25:57 +0800 Subject: [PATCH 41/52] =?UTF-8?q?=E8=AE=A2=E5=8D=95=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/server/game/mod/order/Order.go | 23 ----------------------- src/server/game/mod/order/order_func.go | 14 +++----------- 2 files changed, 3 insertions(+), 34 deletions(-) diff --git a/src/server/game/mod/order/Order.go b/src/server/game/mod/order/Order.go index f982cfa3..711df51b 100644 --- a/src/server/game/mod/order/Order.go +++ b/src/server/game/mod/order/Order.go @@ -717,29 +717,6 @@ func (o *OrderMod) DelOrder(orderId int) (*Order, error) { return &order, nil } -func (o *OrderMod) CreateComfortOrder(lv int, emit []int, energyMul, diff, chessNum int) error { - if len(emit) == 0 { - return nil - } - randNum := 0 - mergeList := make([]int, 0) - var err error - for { - if randNum > 50 { - break - } - randNum++ - mergeList, _, err = randOrderChessWithDiff(o, emit, energyMul, diff, chessNum) - if err != nil { - continue - } - - break - } - o.addOrder(mergeList, diff, COMFORT_TYPE) - return nil -} - func (o *OrderMod) ResetChessPool() { // o.ChessPool = make([]int, 0) // o.EmitShuffle = nil diff --git a/src/server/game/mod/order/order_func.go b/src/server/game/mod/order/order_func.go index 7349be3c..a3da2d1c 100644 --- a/src/server/game/mod/order/order_func.go +++ b/src/server/game/mod/order/order_func.go @@ -69,8 +69,8 @@ var orderCfgMap = map[int]orderConfig{ Pool: map[int]orderConfigInfo{ 1: {lv: 6, energy: 32, t: 1}, 2: {lv: 7, energy: 64, t: 1}, - 3: {lv: 8, energy: 128, t: 0}, - 4: {lv: 9, energy: 256, t: 0}, + 3: {lv: 8, energy: 128, t: 1}, + 4: {lv: 9, energy: 256, t: 1}, 5: {lv: 10, energy: 512, t: 0}, 6: {lv: 11, energy: 1024, t: 0}, }, @@ -434,14 +434,6 @@ func randSuperOrderChess(o *OrderMod, lv int, emit []int, energyMul, orderDiff i return buildMergeListFromDiff(o, chessDiff, emit, energyMul, orderDiff) } -// randOrderChessWithDiff 随机生成订单棋子 -func randOrderChessWithDiff(o *OrderMod, emit []int, energyMul, orderDiff, chessNum int) ([]int, int, error) { - initReflectChess(emit, energyMul) - filterPool(o) - chessDiff := getChessDiff(chessNum, orderDiff) - return buildMergeListFromDiff(o, chessDiff, emit, energyMul, orderDiff) -} - // 随机生成订单棋子 func randOrderChess(o *OrderMod, lv int, emit []int, energyMul, orderType int) ([]int, int, error) { initReflectChess(emit, energyMul) @@ -749,7 +741,7 @@ func (o *OrderMod) getChessIdPool(emit []int, color string, energyMul, minEnergy if len(chessLvRand) > 0 && len(chessLvRand2) == 0 && o.ChessPoolChess(color, chessLvRand[len(chessLvRand)-1]) { chessLv = chessLvRand[len(chessLvRand)-1] } - if len(chessLvRand) > 0 && len(chessLvRand2) == 0 && !o.ChessPoolChess(color, chessLvRand[len(chessLvRand)-1]) && len(chessLvRand) > 0 { + if len(chessLvRand) > 0 && len(chessLvRand2) == 0 && !o.ChessPoolChess(color, chessLvRand[len(chessLvRand)-1]) { chessLv = GoUtil.RandSlice(chessLvRand) } if chessLv == 0 { From 4c966b46c44471628bfa10fe08f531883339e79c Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Fri, 27 Mar 2026 14:28:31 +0800 Subject: [PATCH 42/52] =?UTF-8?q?=E8=AE=A2=E5=8D=95=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/server/game/message_handler.go | 8 +++++++- src/server/game/mod/order/order_func.go | 2 +- src/server/game/register_network_func.go | 5 +---- 3 files changed, 9 insertions(+), 6 deletions(-) diff --git a/src/server/game/message_handler.go b/src/server/game/message_handler.go index 7a9dc2e0..59ec28f7 100644 --- a/src/server/game/message_handler.go +++ b/src/server/game/message_handler.go @@ -1250,7 +1250,13 @@ func (p *Player) GetPetThiefReward(target int) error { return nil } -// 高级产物订单 回收订单中不会生成的棋子 +/* + 高级产物订单 + +当玩家完成一个订单时,扫描棋盘上的产物,剔除:1)刚完成的订单的最后一个棋子所属发射器的所有产物链产物,2)下一个订单的第一个棋子所属发射器的所有产物链产物 +剩下的棋盘产物中,是否有棋子等级等级>pLvmax(适配翻倍和动态难度)的,如有,则生成一个订单,将等级最高的那个收走 +注意:当现有订单(无论是自动或固定订单)中有此棋子,则不执行此逻辑 +*/ func (p *Player) AddHighOrder() { OrderMod := p.PlayMod.getOrderMod() BaseMod := p.PlayMod.getBaseMod() diff --git a/src/server/game/mod/order/order_func.go b/src/server/game/mod/order/order_func.go index a3da2d1c..3e685608 100644 --- a/src/server/game/mod/order/order_func.go +++ b/src/server/game/mod/order/order_func.go @@ -911,7 +911,7 @@ func adjustLev(lev, energyMul int) int { 8: {4: 40, 5: 60}, 9: {4: 20, 5: 40, 6: 40}, 10: {5: 40, 6: 60}, - 11: {5: 20, 6: 70, 7: 10}, + 11: {6: 80, 7: 20}, } if v, ok := randMapList[energyMul]; ok { lev += GoUtil.RandMap(v) diff --git a/src/server/game/register_network_func.go b/src/server/game/register_network_func.go index 6def0a0c..c4fba6f5 100644 --- a/src/server/game/register_network_func.go +++ b/src/server/game/register_network_func.go @@ -410,8 +410,7 @@ func ReqRewardOrder(player *Player, buf []byte) error { player.AddOrder() player.AddHighOrder() player.AddHighOrder2() - // 删除无法完成的回收订单 TODO 需前端配合开发 - // player.DeleteHighOrder() + player.DeleteHighOrder() player.InitOrderItem() // 存钱罐增加钻石 PiggyBankMod := player.PlayMod.getPiggyBankMod() @@ -697,7 +696,6 @@ func ReqAreaReward(player *Player, buf []byte) error { func UpdatePlayerChessDataFunc(player *Player, buf []byte) error { data := &PlayerChessData{} err := data.UpdatePlayerChessData(player, buf) - player.AddHighOrder() player.AddHighOrder2() player.InitOrderItem() player.PushClientRes(player.PlayMod.getOrderMod().BackData()) @@ -747,7 +745,6 @@ func ReqGetChessFromBuff(player *Player, buf []byte) error { update = OrderMod.CreateExtraOrder([]int{chessId}, AddNewEmit, ChessMod.GetUnlockChessList(), BaseMod.GetEnergyMul(), BaseMod.GetLevel()) triggerComposeChess(player, chessId, player.PlayMod.getBaseMod().EnergyMul, player.PlayMod.getChessMod().GetEmitList()) player.EmitRetireTrigger1() - player.AddHighOrder() player.AddHighOrder2() player.InitOrderItem() player.PlayMod.save() From ae558370d5a536705e18b272683044f4aee19616 Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Fri, 27 Mar 2026 14:44:46 +0800 Subject: [PATCH 43/52] =?UTF-8?q?=E7=8C=AB=E5=92=AA=E6=88=8F=E6=B3=95?= =?UTF-8?q?=E9=85=8D=E7=BD=AE=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../limited_time_event_cfg.go | 28 ++++++--------- src/server/game/message_handler.go | 3 +- .../limited_time_event/limited_time_event.go | 36 ++++--------------- src/server/test/limit_test.go | 17 +++++++++ 4 files changed, 35 insertions(+), 49 deletions(-) diff --git a/src/server/conf/limited_time_event/limited_time_event_cfg.go b/src/server/conf/limited_time_event/limited_time_event_cfg.go index b410aa4d..640c17fa 100644 --- a/src/server/conf/limited_time_event/limited_time_event_cfg.go +++ b/src/server/conf/limited_time_event/limited_time_event_cfg.go @@ -24,7 +24,6 @@ const ( CFG_LIMITED_TIME_EVENT_BONUS = "LimitedTimeEventBonus" CFG_LIMITED_TIME_EVENT_MONEY = "LimitedTimeEventMoney" CFG_LIMITED_TIME_EVENT_LUCKY = "LimitedTimeEventLucky" - CFG_LIMITED_TIME_EVENT_CAT_TRICK = "LimitedTimeEventCatTrick" CFG_LIMTTED_TIME_EVENT_DECORATE_OFF = "LimitedTimeEventDecorateOff" ) @@ -42,7 +41,6 @@ func init() { gamedata.InitCfg(CFG_LIMITED_TIME_EVENT_CHEST_JACKPOT) gamedata.InitCfg(CFG_LIMITED_TIME_EVENT_MONEY) gamedata.InitCfg(CFG_LIMITED_TIME_EVENT_LUCKY) - gamedata.InitCfg(CFG_LIMITED_TIME_EVENT_CAT_TRICK) gamedata.InitCfg(CFG_LIMTTED_TIME_EVENT_DECORATE_OFF) } @@ -421,28 +419,22 @@ func GetLuckyCatMaxEarning(Remain int) int { return 0 } -func GetCatTrickType(Duartion int) int { - data, err := gamedata.GetData(CFG_LIMITED_TIME_EVENT_CAT_TRICK) +func GetCatTrickEnergy() int { + data, err := gamedata.GetDataByKey(CFG_LIMITED_TIME_EVENT_CONST, "CatTrick_ConsumeEnergy") if err != nil { - log.Debug("GetCatTrickType err:%v, Duartion=%d", err, Duartion) - return 1 + log.Debug("GetCatTrickEnergy err:%v", err) + return 0 } - for k, v := range data { - D := gamedata.GetIntValue(v, "Duration") - if Duartion == D { - return GoUtil.Int(k) - } - } - return gamedata.GetIntValue(data, "Type") + return gamedata.GetIntValue(data, "Value") } -func GetCatTrickDiamond(Type int) (int, int) { - data, err := gamedata.GetDataByIntKey(CFG_LIMITED_TIME_EVENT_CAT_TRICK, Type) +func GetCatTrickDiamond() int { + data, err := gamedata.GetDataByKey(CFG_LIMITED_TIME_EVENT_CONST, "CatTrick_RewardDiamond") if err != nil { - log.Debug("GetCatTrickDiamond err:%v, Type=%d", err, Type) - return 0, 0 + log.Debug("GetCatTrickDiamond err:%v", err) + return 0 } - return gamedata.GetIntValue(data, "Diamond"), gamedata.GetIntValue(data, "Energy") + return gamedata.GetIntValue(data, "Value") } func GetDecorateOffDiscount(AreaId, StepId int) int { diff --git a/src/server/game/message_handler.go b/src/server/game/message_handler.go index 59ec28f7..5209fb54 100644 --- a/src/server/game/message_handler.go +++ b/src/server/game/message_handler.go @@ -1251,8 +1251,7 @@ func (p *Player) GetPetThiefReward(target int) error { } /* - 高级产物订单 - +高级产物订单 当玩家完成一个订单时,扫描棋盘上的产物,剔除:1)刚完成的订单的最后一个棋子所属发射器的所有产物链产物,2)下一个订单的第一个棋子所属发射器的所有产物链产物 剩下的棋盘产物中,是否有棋子等级等级>pLvmax(适配翻倍和动态难度)的,如有,则生成一个订单,将等级最高的那个收走 注意:当现有订单(无论是自动或固定订单)中有此棋子,则不执行此逻辑 diff --git a/src/server/game/mod/limited_time_event/limited_time_event.go b/src/server/game/mod/limited_time_event/limited_time_event.go index 797ba55d..2d8f7423 100644 --- a/src/server/game/mod/limited_time_event/limited_time_event.go +++ b/src/server/game/mod/limited_time_event/limited_time_event.go @@ -453,14 +453,16 @@ func (l *LimitedTimeEventMod) GetCatTrickReward() ([]*item.Item, error) { if !ok { return nil, fmt.Errorf("CatTrick event data error") } - if d.Energy < 100 { + energy := limitedTimeEventCfg.GetCatTrickEnergy() + diamond := limitedTimeEventCfg.GetCatTrickDiamond() + if d.Energy < energy { return nil, fmt.Errorf("CatTrick energy not enough") } - count := d.Energy / 100 - d.Energy = d.Energy % 100 + count := d.Energy / energy + d.Energy = d.Energy % energy // TODO 放到配置中 return []*item.Item{ - {Id: item.ITEM_DIAMOND_ID, Num: 5 * count}, + {Id: item.ITEM_DIAMOND_ID, Num: diamond * count}, }, nil } @@ -491,29 +493,12 @@ func initEventInfo(event *LTEInfo, eventType int) { Count: limitedTimeEventCfg.GetPaybackDay(), } case EVENT_TYPE_CAT_TRICK: - Type := limitedTimeEventCfg.GetCatTrickType(int(event.Remian)) - event.D = &CatTrick{ - List: []CatTrickInfo{ - { - Id: 1, - Type: Type, - }, - }, - } + event.D = &CatTrick{} } } func addEventInfo(event *LTEInfo, eventType, duration int) { switch eventType { - case EVENT_TYPE_CAT_TRICK: - d, ok := event.D.(*CatTrick) - if !ok { - return - } - d.List = append(d.List, CatTrickInfo{ - Id: len(d.List) + 1, - Type: limitedTimeEventCfg.GetCatTrickType(duration), - }) case EVENT_TYPE_LUCKY_CAT: MaxEarning := limitedTimeEventCfg.GetLuckyCatMaxEarning(duration) d, ok := event.D.(*LuckyCat) @@ -560,13 +545,6 @@ func getLimitEventMsg(eType int, event *LTEInfo) *msg.LimitEvent { } energy := d.Energy param[msg.LimitEventParam_CAT_TRICK_ENERGY.String()] = int32(energy) - info := d.List[0] - param[msg.LimitEventParam_CAT_TRICK_TYPE.String()] = int32(info.Type) - diamond1, energy1 := limitedTimeEventCfg.GetCatTrickDiamond(info.Type) - if d.Energy >= diamond1*energy1 { - // 进度条已满 - endTime += 5 * 60 // 5分钟 - } case EVENT_TYPE_PAYBACK_DAY: d, ok := event.D.(*PaybackDay) if !ok { diff --git a/src/server/test/limit_test.go b/src/server/test/limit_test.go index 002b7418..96116336 100644 --- a/src/server/test/limit_test.go +++ b/src/server/test/limit_test.go @@ -2,7 +2,9 @@ package test import ( "fmt" + limitedTimeEventCfg "server/conf/limited_time_event" "server/game" + "server/game/mod/item" limitedTimeEvent "server/game/mod/limited_time_event" "testing" ) @@ -44,3 +46,18 @@ func TestProgressReward(t *testing.T) { fmt.Printf("Current progress reward list: %v\n", res) } } + +func TestCatTrick(t *testing.T) { + p := new(game.Player) + p.InitPlayer("3625212") + items := []*item.Item{ + {Id: 101191, Num: 1}, + } + err := p.HandleItem(items, "") + if err != nil { + t.Fatal(err) + } + energy := limitedTimeEventCfg.GetCatTrickEnergy() + diamond := limitedTimeEventCfg.GetCatTrickDiamond() + t.Log(energy, diamond) +} From 47de734e177cc325e1d2c78618ebd66bd86faa69 Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Fri, 27 Mar 2026 16:54:35 +0800 Subject: [PATCH 44/52] =?UTF-8?q?=E9=80=80=E5=BD=B9=E6=B8=85=E7=90=86?= =?UTF-8?q?=E8=AE=A2=E5=8D=95=E4=B8=8D=E5=88=A4=E6=96=AD=E6=A3=8B=E5=AD=90?= =?UTF-8?q?=E6=98=AF=E5=90=A6=E8=A7=A3=E9=94=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/server/game/mod/chess/Chess.go | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/server/game/mod/chess/Chess.go b/src/server/game/mod/chess/Chess.go index 7dc97773..05d29c48 100644 --- a/src/server/game/mod/chess/Chess.go +++ b/src/server/game/mod/chess/Chess.go @@ -653,10 +653,9 @@ func (cb *ChessBorad) RetireOrder(emitType string) error { } chess := make([]int, 0, len(cb.ChessMap)) emitProduct := mergeDataCfg.GetEmitOrderProduce(emitType) - for k, v := range cb.ChessMap { - arr := strings.Split(k, "@") + for _, v := range cb.ChessMap { color := mergeDataCfg.GetColorById(int(v)) - if arr[2] == "0" && GoUtil.InStringArray(color, emitProduct) { + if GoUtil.InStringArray(color, emitProduct) { chess = append(chess, int(v)) } } From 2cbc354cb3e68e62a5afc4658d814c22ef7b4c2b Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Fri, 27 Mar 2026 18:54:45 +0800 Subject: [PATCH 45/52] =?UTF-8?q?=E4=BC=98=E5=8C=96=E6=89=93=E7=82=B9?= =?UTF-8?q?=E6=97=A5=E5=BF=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../game/mod/friend_treasure.go/friend_treasure.go | 2 -- src/server/test/friend_test.go | 9 +++++++++ 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/src/server/game/mod/friend_treasure.go/friend_treasure.go b/src/server/game/mod/friend_treasure.go/friend_treasure.go index c1ee34b7..6f7e086d 100644 --- a/src/server/game/mod/friend_treasure.go/friend_treasure.go +++ b/src/server/game/mod/friend_treasure.go/friend_treasure.go @@ -6,7 +6,6 @@ import ( "server/game/mod/item" GoUtil "server/game_util" "server/msg" - "server/pkg/github.com/name5566/leaf/log" ) type FriendTreasureMod struct { @@ -73,7 +72,6 @@ func (f *FriendTreasureMod) Flip(pos int) ([]*item.Item, int64, error) { } info.Status = GAME_STATUS_START if info.Uid != 0 { - log.Debug("uid:%v", info.Uid) f.Uids = append(f.Uids, info.Uid) } if info.Type == FRIEND_TYPE_ALIVE { diff --git a/src/server/test/friend_test.go b/src/server/test/friend_test.go index 866a2b67..de6f65b4 100644 --- a/src/server/test/friend_test.go +++ b/src/server/test/friend_test.go @@ -2,7 +2,9 @@ package test import ( "fmt" + friendTreasureCfg "server/conf/friend_treasure" "server/game" + GoUtil "server/game_util" "server/msg" "testing" @@ -54,3 +56,10 @@ func TestFriendBackData(t *testing.T) { p1.FriendLogBackData() p1.FriendCardBackData() } + +func TestFriendTreasureInit(t *testing.T) { + probMap := friendTreasureCfg.GetChestProb() + prob := GoUtil.RandMap(probMap) + items := friendTreasureCfg.GetChestItems(prob) + fmt.Printf("Prob: %v, Items: %v\n", prob, items) +} From 19e4c292c7a25928a6b41aac31675bc10fa90891 Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Mon, 30 Mar 2026 10:47:43 +0800 Subject: [PATCH 46/52] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E6=A3=8B=E5=AD=90?= =?UTF-8?q?=E4=BB=8E=E8=83=8C=E5=8C=85=E6=94=BE=E5=85=A5=E8=8D=A3=E8=AA=89?= =?UTF-8?q?=E5=AE=A4=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/server/game/mod/chess/Chess.go | 14 +++++++++++ src/server/game/register_network_func.go | 30 ++++++++++++++++++++++++ 2 files changed, 44 insertions(+) diff --git a/src/server/game/mod/chess/Chess.go b/src/server/game/mod/chess/Chess.go index 05d29c48..a89b1d57 100644 --- a/src/server/game/mod/chess/Chess.go +++ b/src/server/game/mod/chess/Chess.go @@ -596,6 +596,20 @@ func (cb *ChessBorad) TakeChessOutBag(grid int) (int, error) { return gridInfo.ChessId, cb.AddChess(gridInfo.ChessId) } +// 将棋子从背包放入荣誉室 +func (cb *ChessBorad) TakeChessOutBagToHonor(grid int) (int, error) { + gridInfo, ok := cb.ChessBag.List[grid] + if !ok { + return 0, errors.New("ChessBag Grid unlock") + } + if gridInfo.ChessId == 0 { + return 0, errors.New("ChessBag Grid is empty") + } + cb.ChessBag.List[grid] = ChessBagGrid{} + cb.AddHonor(gridInfo.ChessId) + return gridInfo.ChessId, nil +} + func (cb *ChessBorad) GetOrderEmit() []int { return cb.GetEmitList() } diff --git a/src/server/game/register_network_func.go b/src/server/game/register_network_func.go index c4fba6f5..1fde9b69 100644 --- a/src/server/game/register_network_func.go +++ b/src/server/game/register_network_func.go @@ -877,6 +877,36 @@ func ReqTakeChessOutBag(player *Player, buf []byte) error { return nil } +func ReqTakeChessOutBagToHonor(player *Player, buf []byte) error { + req := &msg.ReqTakeChessOutBagToHonor{} + err := proto.Unmarshal(buf, req) + if err != nil { + return err + } + ChessMod := player.PlayMod.getChessMod() + chessId, err := ChessMod.TakeChessOutBagToHonor(int(req.BagId)) + if err != nil { + player.SendErrClienRes(&msg.ResTakeChessOutBagToHonor{ + Code: msg.RES_CODE_FAIL, + Msg: err.Error(), + }) + return err + } + + player.TeLog("ReqTakeChessOutBagToHonor", map[string]interface{}{ + "bag_id": req.BagId, + "chess_id": chessId, + }) + player.InitOrderItem() + player.PlayMod.save() + player.PushClientRes(ChessMod.BackData()) + player.PushClientRes(&msg.ResTakeChessOutBagToHonor{ + Code: msg.RES_CODE_SUCCESS, + }) + player.UpdateUserInfo() + return nil +} + func ReqBuyChessBagGrid(player *Player, buf []byte) error { req := &msg.ReqBuyChessBagGrid{} err := proto.Unmarshal(buf, req) From 34099258a7bd59f0669bba9da5b23bdd2a99a98e Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Mon, 30 Mar 2026 11:07:58 +0800 Subject: [PATCH 47/52] =?UTF-8?q?=E4=BC=98=E5=8C=96=E8=AE=A2=E5=8D=95?= =?UTF-8?q?=E9=80=BB=E8=BE=91=EF=BC=8C=E7=9B=B4=E6=8E=A5=E7=94=9F=E6=88=90?= =?UTF-8?q?=E8=AE=A2=E5=8D=95=E7=9A=84=E4=BB=B7=E5=80=BC=E5=A4=A7=E4=BA=8E?= =?UTF-8?q?75?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/server/game/message_handler.go | 2 +- src/server/game/mod/order/Order.go | 49 +++++++++++++++++++++++++++++- src/server/test/chess_test.go | 8 +++++ src/server/test/order_test.go | 11 +++++++ 4 files changed, 68 insertions(+), 2 deletions(-) diff --git a/src/server/game/message_handler.go b/src/server/game/message_handler.go index 5209fb54..cb8a791a 100644 --- a/src/server/game/message_handler.go +++ b/src/server/game/message_handler.go @@ -1030,7 +1030,7 @@ func (player *Player) CreatePetOrder() { } } if petTrigger && BaseMod.GetLevel() >= 17 { - OrderMod.CreateOrder(BaseMod.GetLevel(), ChessMod.GetOrderEmit(), BaseMod.GetEnergyMul(), order.Pet_type) + OrderMod.CreatePetOrder(BaseMod.GetLevel(), ChessMod.GetOrderEmit(), BaseMod.GetEnergyMul(), order.Pet_type) for k, v := range OrderMod.GetOrderList() { if len(v.Items) != 0 { continue diff --git a/src/server/game/mod/order/Order.go b/src/server/game/mod/order/Order.go index 711df51b..970b846b 100644 --- a/src/server/game/mod/order/Order.go +++ b/src/server/game/mod/order/Order.go @@ -302,7 +302,7 @@ func (o *OrderMod) CreateOrder(lv int, emit []int, energyMul, orderType int) err if len(emit) == 0 { return nil } - /// 生成优先订单 + // 生成优先订单 if o.CreatePriorityOrder(lv, emit) { return nil } @@ -439,6 +439,53 @@ func (o *OrderMod) CreateNormalOrder(lv int, emit []int, energyMul, orderType in return nil } +// 直接生成生成宠物订单 宠物币订单价值大于75 +func (o *OrderMod) CreatePetOrder(lv int, emit []int, energyMul, orderType int) error { + if len(emit) == 0 { + return nil + } + randNum := 0 + mergeList := make([]int, 0) + OrderDiff := DIFF_LOW + var err error + for { + if randNum > 50 { + break + } + randNum++ + mergeList, OrderDiff, err = randOrderChess(o, lv, emit, energyMul, orderType) + if err != nil { + continue + } + lastMergelist := o.LastNormalOrder.MergeId + conbine := false + star := 0 + for _, v := range mergeList { + star += mergeDataCfg.GetStarById(v) + } + if star < 75 { + continue + } + for _, v := range mergeList { + if GoUtil.InArray(v, lastMergelist) { + conbine = true + break + } + } + if conbine { + continue + } + break + } + for _, v := range mergeList { + if v == 0 { + return nil + } + } + o.addOrder(mergeList, OrderDiff, orderType) + return nil +} + func (o *OrderMod) DeleteOrder(OrderId int) { delete(o.OrderList, OrderId) } diff --git a/src/server/test/chess_test.go b/src/server/test/chess_test.go index f960504c..587353d3 100644 --- a/src/server/test/chess_test.go +++ b/src/server/test/chess_test.go @@ -21,3 +21,11 @@ func TestGetStarEmitList(t *testing.T) { p1.InitOrderItem() fmt.Printf("%v\n", EM) } + +func TestTakeChessOutBagToHonor(t *testing.T) { + p1 := new(game.Player) + p1.InitPlayer("3625212") + ChessMod := p1.GetChessMod() + ChessMod.TakeChessOutBagToHonor(3) + fmt.Printf("%v\n", ChessMod.Honor) +} diff --git a/src/server/test/order_test.go b/src/server/test/order_test.go index 67effdb8..d938b93d 100644 --- a/src/server/test/order_test.go +++ b/src/server/test/order_test.go @@ -82,3 +82,14 @@ func TestAddPartOrder(t *testing.T) { OrderMod.CreateOrder(BaseMod.GetLevel(), ChessMod.GetOrderPartEmit(), BaseMod.GetEnergyMul(), order.Part_type) } } + +func TestCreatePetOrder(t *testing.T) { + p1 := new(game.Player) + p1.InitPlayer("3625212") + OrderMod := p1.GetOrderMod() + BaseMod := p1.GetBaseMod() + ChessMod := p1.GetChessMod() + for i := 0; i < 10; i++ { + OrderMod.CreatePetOrder(BaseMod.GetLevel(), ChessMod.GetOrderEmit(), BaseMod.GetEnergyMul(), order.Pet_type) + } +} From 7a0446351790cd450b990a71d2ecb3c7da92272c Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Mon, 30 Mar 2026 11:23:42 +0800 Subject: [PATCH 48/52] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E7=8C=AB=E5=92=AA?= =?UTF-8?q?=E5=AE=9D=E8=97=8F=E6=95=B0=E5=80=BC=E4=B8=BA=E5=9B=9B=E8=88=8D?= =?UTF-8?q?=E4=BA=94=E5=85=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/server/game/GameLogic.go | 2 +- src/server/game/register_network_func.go | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/server/game/GameLogic.go b/src/server/game/GameLogic.go index ccb218a1..28707b3c 100644 --- a/src/server/game/GameLogic.go +++ b/src/server/game/GameLogic.go @@ -856,7 +856,7 @@ func (ad *GameLogic) RegisterNetWorkFunc() { RegisterMsgProcessFunc("ReqPlayroomGuide", ReqPlayroomGuide) // 展示游戏结果数据 RegisterMsgProcessFunc("ReqPetFur", ReqPetFur) // 宠物毛皮信息 RegisterMsgProcessFunc("ReqPetFurBuy", ReqPetFurBuy) // 宠物毛皮商店购买 - RegisterMsgProcessFunc("ReqFurSet", ReqFurSet) //宠物毛皮设置 + RegisterMsgProcessFunc("ReqFurSet", ReqFurSet) // 宠物毛皮设置 // 宠物宝藏 RegisterMsgProcessFunc("ReqFriendTreasure", ReqFriendTreasure) // 请求好友宝藏数据 RegisterMsgProcessFunc("ReqFriendTreasureStart", ReqFriendTreasureStart) // 开始游戏 diff --git a/src/server/game/register_network_func.go b/src/server/game/register_network_func.go index 1fde9b69..028c7b70 100644 --- a/src/server/game/register_network_func.go +++ b/src/server/game/register_network_func.go @@ -3498,7 +3498,7 @@ func ReqPlayroomInfo(player *Player, buf []byte) error { PlayroomMod.SetGameId(playroom.GAME_TYPE_FILP) addNumFunc := func(num int) int { factor := player.GetOrderFactor() - return int(float64(num)*float64(factor)/100) / 100 * 100 + return int(math.Round(float64(num)*float64(factor)/100)) / 100 * 100 } PlayroomMod.SetGameRewardFlip(addNumFunc(100), addNumFunc(500), addNumFunc(2000)) } From ed7cd0d962f2694d4f041188cec479decbaa1aff Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Mon, 30 Mar 2026 11:26:57 +0800 Subject: [PATCH 49/52] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E6=B8=B8=E6=88=8F?= =?UTF-8?q?=E7=89=88=E6=9C=AC=E5=8F=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/server/MergeConst/system.go | 1 + src/server/pkg/github.com/name5566/leaf/leaf.go | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/src/server/MergeConst/system.go b/src/server/MergeConst/system.go index 05dae9c4..9ea5ac44 100644 --- a/src/server/MergeConst/system.go +++ b/src/server/MergeConst/system.go @@ -3,4 +3,5 @@ package MergeConst const ( Go_gc_percent = 200 Go_gc_memory_limit = 1024 << 20 + Go_game_version = "1.0.3" // 游戏版本号,格式为 "主版本号.次版本号.修订号",每次发布新版本时需要更新 ) diff --git a/src/server/pkg/github.com/name5566/leaf/leaf.go b/src/server/pkg/github.com/name5566/leaf/leaf.go index 8fdc725e..bb4b8583 100644 --- a/src/server/pkg/github.com/name5566/leaf/leaf.go +++ b/src/server/pkg/github.com/name5566/leaf/leaf.go @@ -3,6 +3,7 @@ package leaf import ( "os" "os/signal" + "server/MergeConst" "server/backend" mergeCluster "server/cluster" sconf "server/conf" @@ -31,7 +32,7 @@ func Run(mods ...module.Module) { panic(err) } } - log.Release("服务器版本: %s", "1.0.02") + log.Release("服务器版本: %s", MergeConst.Go_game_version) log.Release("%s 启动, 节点类型: %s, 区服id: %d", sconf.Server.GameName, sconf.Server.ServerType, sconf.Server.ServerID) go backend.Start() // module From b79cb08aca929627adbfe19dc701d1f0574102c2 Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Mon, 30 Mar 2026 11:46:03 +0800 Subject: [PATCH 50/52] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E8=B6=85=E7=BA=A7?= =?UTF-8?q?=E8=AE=A2=E5=8D=95=E6=95=B0=E5=80=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/server/game/mod/order/order_func.go | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/src/server/game/mod/order/order_func.go b/src/server/game/mod/order/order_func.go index 3e685608..c159f64c 100644 --- a/src/server/game/mod/order/order_func.go +++ b/src/server/game/mod/order/order_func.go @@ -90,10 +90,10 @@ type orderConfigInfo struct { } // 根据上一个订单难度和系数 生成订单难度 -func getOrderDiffRand(Lv, Diff int) map[int]int { +func getOrderDiffRand(lv, diff int) map[int]int { var d map[int]int - if Lv < 24 { - switch Diff { + if lv < 24 { + switch diff { case DIFF_MID: d = map[int]int{ DIFF_LOW: 50, @@ -107,7 +107,7 @@ func getOrderDiffRand(Lv, Diff int) map[int]int { } return d } - switch Diff { + switch diff { case DIFF_MID: d = map[int]int{ DIFF_LOW: 21, @@ -131,7 +131,7 @@ func getOrderDiffRand(Lv, Diff int) map[int]int { } func getChessByDiff(lv, diff, cType int) (int, int, int) { - if cType == Common_type { + if cType == Common_type || cType == Super_type { switch diff { case DIFF_MID: return 100, 600, GoUtil.RandMap(map[int]int{1: 50, 2: 50}) @@ -430,8 +430,9 @@ func randSuperOrderChess(o *OrderMod, lv int, emit []int, energyMul, orderDiff i return nil, DIFF_LOW, err } chessNum := GoUtil.RandMap(randChessNum) - chessDiff := getChessDiff(chessNum, orderDiff) - return buildMergeListFromDiff(o, chessDiff, emit, energyMul, orderDiff) + minEnergy, maxEnergy, _ := getChessByDiff(lv, orderDiff, Super_type) + mergeList := getChessFromPoolByEnergy(o, minEnergy, maxEnergy, chessNum, emit, energyMul, orderDiff, Super_type) + return mergeList, orderDiff, nil } // 随机生成订单棋子 @@ -446,8 +447,8 @@ func randOrderChess(o *OrderMod, lv int, emit []int, energyMul, orderType int) ( o.NextDiff = 0 } //获取订单体力范围和棋子数量 - MinEnergy, MaxEnergy, ChessNum := getChessByDiff(lv, orderDiff, orderType) - mergeList := getChessFromPoolByEnergy(o, MinEnergy, MaxEnergy, ChessNum, emit, energyMul, orderDiff, orderType) + minEnergy, maxEnergy, chessNum := getChessByDiff(lv, orderDiff, orderType) + mergeList := getChessFromPoolByEnergy(o, minEnergy, maxEnergy, chessNum, emit, energyMul, orderDiff, orderType) return mergeList, orderDiff, nil } From 57b242556950c3faeb8a2789407d89226e5b03d1 Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Mon, 30 Mar 2026 12:17:24 +0800 Subject: [PATCH 51/52] =?UTF-8?q?=E8=B6=85=E7=BA=A7=E8=AE=A2=E5=8D=95?= =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/server/game/mod/order/order_func.go | 12 +----------- src/server/test/order_test.go | 11 +++++++++++ 2 files changed, 12 insertions(+), 11 deletions(-) diff --git a/src/server/game/mod/order/order_func.go b/src/server/game/mod/order/order_func.go index c159f64c..f20b4a46 100644 --- a/src/server/game/mod/order/order_func.go +++ b/src/server/game/mod/order/order_func.go @@ -4,7 +4,6 @@ import ( "math" mergeDataCfg "server/conf/merge_data" orderCfg "server/conf/order" - userCfg "server/conf/user" GoUtil "server/game_util" "sort" ) @@ -421,16 +420,7 @@ func GetVirtualEnergy(mergeList, emitList []int) int { func randSuperOrderChess(o *OrderMod, lv int, emit []int, energyMul, orderDiff int) ([]int, int, error) { initReflectChess(emit, energyMul) filterPool(o) - orderN, err := userCfg.GetOrderNByLv(lv) - randChessNum := map[int]int{ - 2: 70 - orderN, - 3: 30 + orderN, - } - if err != nil { - return nil, DIFF_LOW, err - } - chessNum := GoUtil.RandMap(randChessNum) - minEnergy, maxEnergy, _ := getChessByDiff(lv, orderDiff, Super_type) + minEnergy, maxEnergy, chessNum := getChessByDiff(lv, orderDiff, Super_type) mergeList := getChessFromPoolByEnergy(o, minEnergy, maxEnergy, chessNum, emit, energyMul, orderDiff, Super_type) return mergeList, orderDiff, nil } diff --git a/src/server/test/order_test.go b/src/server/test/order_test.go index d938b93d..c7cbddbb 100644 --- a/src/server/test/order_test.go +++ b/src/server/test/order_test.go @@ -93,3 +93,14 @@ func TestCreatePetOrder(t *testing.T) { OrderMod.CreatePetOrder(BaseMod.GetLevel(), ChessMod.GetOrderEmit(), BaseMod.GetEnergyMul(), order.Pet_type) } } + +func TestCreateSuperOrder(t *testing.T) { + p1 := new(game.Player) + p1.InitPlayer("3625212") + OrderMod := p1.GetOrderMod() + BaseMod := p1.GetBaseMod() + ChessMod := p1.GetChessMod() + for i := 0; i < 10; i++ { + OrderMod.CreateSuperOrder(BaseMod.GetLevel(), ChessMod.GetOrderEmit(), BaseMod.GetEnergyMul()) + } +} From c0fe7338ef199e30e0ba45a820aaa4aeb13e133a Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Mon, 30 Mar 2026 13:09:35 +0800 Subject: [PATCH 52/52] =?UTF-8?q?=E6=8E=A5=E5=8F=A3=E6=B3=A8=E5=86=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/server/game/GameLogic.go | 27 ++++++++++++++------------- 1 file changed, 14 insertions(+), 13 deletions(-) diff --git a/src/server/game/GameLogic.go b/src/server/game/GameLogic.go index 28707b3c..de0853a3 100644 --- a/src/server/game/GameLogic.go +++ b/src/server/game/GameLogic.go @@ -655,19 +655,20 @@ func (ad *GameLogic) RegisterNetWorkFunc() { RegisterMsgProcessFunc("ReqAdWatch", ReqAdWatch) // 观看广告 // #region 棋盘 RegisterMsgProcessFunc("ReqPlayerChessData", ReqPlayerChessDataFunc) - RegisterMsgProcessFunc("UpdatePlayerChessData", UpdatePlayerChessDataFunc) // 更新棋盘数据 - RegisterMsgProcessFunc("ReqSetEnergyMul", RegSetEneryFunc) //设置能量倍数 - RegisterMsgProcessFunc("ReqChessEx", ReqChessEx) // 转换棋子 - RegisterMsgProcessFunc("ReqGetChessFromBuff", ReqGetChessFromBuff) // 从buff中获取棋子 - RegisterMsgProcessFunc("ReqPutPartInBag", ReqPutPartInBag) // 把零件放入背包 - RegisterMsgProcessFunc("ReqPutChessInBag", ReqPutChessInBag) // 把棋子放入背包 - RegisterMsgProcessFunc("ReqTakeChessOutBag", ReqTakeChessOutBag) // 从背包中取出棋子 - RegisterMsgProcessFunc("ReqBuyChessBagGrid", ReqBuyChessBagGrid) // 解锁背包格子 - RegisterMsgProcessFunc("ReqSourceChest", ReqSourceChest) // 开宝箱 - RegisterMsgProcessFunc("ReqSeparateChess", ReqSeparateChess) // 分解棋子 - RegisterMsgProcessFunc("ReqUpgradeChess", ReqUpgradeChess) // 升级棋子 - RegisterMsgProcessFunc("ReqSellChessNum", ReqSellChessNum) //购买能量 - RegisterMsgProcessFunc("ReqGetChessRetireReward", ReqGetChessRetireReward) //领取棋子退役奖励 + RegisterMsgProcessFunc("UpdatePlayerChessData", UpdatePlayerChessDataFunc) // 更新棋盘数据 + RegisterMsgProcessFunc("ReqSetEnergyMul", RegSetEneryFunc) //设置能量倍数 + RegisterMsgProcessFunc("ReqChessEx", ReqChessEx) // 转换棋子 + RegisterMsgProcessFunc("ReqGetChessFromBuff", ReqGetChessFromBuff) // 从buff中获取棋子 + RegisterMsgProcessFunc("ReqPutPartInBag", ReqPutPartInBag) // 把零件放入背包 + RegisterMsgProcessFunc("ReqPutChessInBag", ReqPutChessInBag) // 把棋子放入背包 + RegisterMsgProcessFunc("ReqTakeChessOutBag", ReqTakeChessOutBag) // 从背包中取出棋子 + RegisterMsgProcessFunc("ReqTakeChessOutBagToHonor", ReqTakeChessOutBagToHonor) // 从背包中取出棋子 + RegisterMsgProcessFunc("ReqBuyChessBagGrid", ReqBuyChessBagGrid) // 解锁背包格子 + RegisterMsgProcessFunc("ReqSourceChest", ReqSourceChest) // 开宝箱 + RegisterMsgProcessFunc("ReqSeparateChess", ReqSeparateChess) // 分解棋子 + RegisterMsgProcessFunc("ReqUpgradeChess", ReqUpgradeChess) // 升级棋子 + RegisterMsgProcessFunc("ReqSellChessNum", ReqSellChessNum) //购买能量 + RegisterMsgProcessFunc("ReqGetChessRetireReward", ReqGetChessRetireReward) //领取棋子退役奖励 //领取图鉴奖励 RegisterMsgProcessFunc("ReqGetHandbookReward", ReqGetHandbookReward) //领取图鉴奖励