Merge branch 'thrift' into develop
This commit is contained in:
commit
00a30d9f13
1
.gitignore
vendored
1
.gitignore
vendored
@ -25,3 +25,4 @@ src/server/test/GeoLite2-Country
|
||||
src/server/msg/Gameapi_grpc.pb.go
|
||||
src/server/unit_test/*.exe*
|
||||
src/server/unit_test/log*
|
||||
src/server/msg/meowmentnet
|
||||
|
||||
@ -3,7 +3,7 @@ package itemCfg
|
||||
import (
|
||||
languageCfg "server/conf/language"
|
||||
"server/gamedata"
|
||||
"server/msg"
|
||||
"server/msg/meowmentnet"
|
||||
"strconv"
|
||||
"strings"
|
||||
|
||||
@ -61,5 +61,5 @@ func GetItemName(Id int) (string, string) {
|
||||
return "", ""
|
||||
}
|
||||
name := gamedata.GetStringValue(data, "Name")
|
||||
return languageCfg.GetLanguage(msg.LANG_TYPE_LANG_CN, name), languageCfg.GetLanguage(msg.LANG_TYPE_LANG_EN, name)
|
||||
return languageCfg.GetLanguage(meowmentnet.LANG_TYPE_LangCn, name), languageCfg.GetLanguage(meowmentnet.LANG_TYPE_LangEn, name)
|
||||
}
|
||||
|
||||
@ -2,7 +2,7 @@ package languageCfg
|
||||
|
||||
import (
|
||||
"server/gamedata"
|
||||
"server/msg"
|
||||
msg "server/msg/meowmentnet"
|
||||
)
|
||||
|
||||
const (
|
||||
@ -31,13 +31,13 @@ func _GetClientLanguage(lang msg.LANG_TYPE, key string) string {
|
||||
return key
|
||||
}
|
||||
switch lang {
|
||||
case msg.LANG_TYPE_LANG_EN:
|
||||
case msg.LANG_TYPE_LangEn:
|
||||
return gamedata.GetStringValue(data, "en_US")
|
||||
case msg.LANG_TYPE_LANG_PTBR:
|
||||
case msg.LANG_TYPE_LangPtbr:
|
||||
return gamedata.GetStringValue(data, "pt_BR")
|
||||
case msg.LANG_TYPE_LANG_CN:
|
||||
case msg.LANG_TYPE_LangCn:
|
||||
return gamedata.GetStringValue(data, "zh_CN")
|
||||
case msg.LANG_TYPE_LANG_ES_LATAM:
|
||||
case msg.LANG_TYPE_LangEsLatam:
|
||||
return gamedata.GetStringValue(data, "es_LATAM")
|
||||
default:
|
||||
return key
|
||||
@ -50,13 +50,13 @@ func _GetBackendLanguage(lang msg.LANG_TYPE, key string) string {
|
||||
return key
|
||||
}
|
||||
switch lang {
|
||||
case msg.LANG_TYPE_LANG_EN:
|
||||
case msg.LANG_TYPE_LangEn:
|
||||
return gamedata.GetStringValue(data, "en_US")
|
||||
case msg.LANG_TYPE_LANG_PTBR:
|
||||
case msg.LANG_TYPE_LangPtbr:
|
||||
return gamedata.GetStringValue(data, "pt_BR")
|
||||
case msg.LANG_TYPE_LANG_CN:
|
||||
case msg.LANG_TYPE_LangCn:
|
||||
return gamedata.GetStringValue(data, "zh_CN")
|
||||
case msg.LANG_TYPE_LANG_ES_LATAM:
|
||||
case msg.LANG_TYPE_LangEsLatam:
|
||||
return gamedata.GetStringValue(data, "es_LATAM")
|
||||
default:
|
||||
return key
|
||||
|
||||
@ -6,7 +6,7 @@ import (
|
||||
"server/game/mod/item"
|
||||
GoUtil "server/game_util"
|
||||
"server/gamedata"
|
||||
"server/msg"
|
||||
"server/msg/meowmentnet"
|
||||
"strings"
|
||||
)
|
||||
|
||||
@ -80,10 +80,10 @@ func GetRecallMail(Title, ItemName, TitleEn, ItemNameEn string) (string, string,
|
||||
if err != nil {
|
||||
return "", "", "", ""
|
||||
}
|
||||
mt := languageCfg.GetLanguage(msg.LANG_TYPE_LANG_CN, gamedata.GetStringValue(data, "Title"))
|
||||
mc := languageCfg.GetLanguage(msg.LANG_TYPE_LANG_CN, gamedata.GetStringValue(data, "Content"))
|
||||
mt_en := languageCfg.GetLanguage(msg.LANG_TYPE_LANG_EN, gamedata.GetStringValue(data, "Title"))
|
||||
mc_en := languageCfg.GetLanguage(msg.LANG_TYPE_LANG_EN, gamedata.GetStringValue(data, "Content"))
|
||||
mt := languageCfg.GetLanguage(meowmentnet.LANG_TYPE_LangCn, gamedata.GetStringValue(data, "Title"))
|
||||
mc := languageCfg.GetLanguage(meowmentnet.LANG_TYPE_LangCn, gamedata.GetStringValue(data, "Content"))
|
||||
mt_en := languageCfg.GetLanguage(meowmentnet.LANG_TYPE_LangEn, gamedata.GetStringValue(data, "Title"))
|
||||
mc_en := languageCfg.GetLanguage(meowmentnet.LANG_TYPE_LangEn, gamedata.GetStringValue(data, "Content"))
|
||||
return fmt.Sprintf(mt, Title), fmt.Sprintf(mc, Title, ItemName), fmt.Sprintf(mt_en, TitleEn), fmt.Sprintf(mc_en, Title, ItemNameEn)
|
||||
}
|
||||
|
||||
@ -92,10 +92,10 @@ func GetChargeSendMail(PlayerName string) (string, string, string, string) {
|
||||
if err != nil {
|
||||
return "", "", "", ""
|
||||
}
|
||||
mt := languageCfg.GetLanguage(msg.LANG_TYPE_LANG_CN, gamedata.GetStringValue(data, "Title"))
|
||||
mc := languageCfg.GetLanguage(msg.LANG_TYPE_LANG_CN, gamedata.GetStringValue(data, "Content"))
|
||||
mt_en := languageCfg.GetLanguage(msg.LANG_TYPE_LANG_EN, gamedata.GetStringValue(data, "Title"))
|
||||
mc_en := languageCfg.GetLanguage(msg.LANG_TYPE_LANG_EN, gamedata.GetStringValue(data, "Content"))
|
||||
mt := languageCfg.GetLanguage(meowmentnet.LANG_TYPE_LangCn, gamedata.GetStringValue(data, "Title"))
|
||||
mc := languageCfg.GetLanguage(meowmentnet.LANG_TYPE_LangCn, gamedata.GetStringValue(data, "Content"))
|
||||
mt_en := languageCfg.GetLanguage(meowmentnet.LANG_TYPE_LangEn, gamedata.GetStringValue(data, "Title"))
|
||||
mc_en := languageCfg.GetLanguage(meowmentnet.LANG_TYPE_LangEn, gamedata.GetStringValue(data, "Content"))
|
||||
return mt, fmt.Sprintf(mc, PlayerName), mt_en, fmt.Sprintf(mc_en, PlayerName)
|
||||
}
|
||||
|
||||
@ -104,9 +104,9 @@ func GetChargeReceiveMail(PlayerName string, Content string) (string, string, st
|
||||
if err != nil {
|
||||
return "", "", "", ""
|
||||
}
|
||||
mt := languageCfg.GetLanguage(msg.LANG_TYPE_LANG_CN, gamedata.GetStringValue(data, "Title"))
|
||||
mc := languageCfg.GetLanguage(msg.LANG_TYPE_LANG_CN, gamedata.GetStringValue(data, "Content"))
|
||||
mt_en := languageCfg.GetLanguage(msg.LANG_TYPE_LANG_EN, gamedata.GetStringValue(data, "Title"))
|
||||
mc_en := languageCfg.GetLanguage(msg.LANG_TYPE_LANG_EN, gamedata.GetStringValue(data, "Content"))
|
||||
mt := languageCfg.GetLanguage(meowmentnet.LANG_TYPE_LangCn, gamedata.GetStringValue(data, "Title"))
|
||||
mc := languageCfg.GetLanguage(meowmentnet.LANG_TYPE_LangCn, gamedata.GetStringValue(data, "Content"))
|
||||
mt_en := languageCfg.GetLanguage(meowmentnet.LANG_TYPE_LangEn, gamedata.GetStringValue(data, "Title"))
|
||||
mc_en := languageCfg.GetLanguage(meowmentnet.LANG_TYPE_LangEn, gamedata.GetStringValue(data, "Content"))
|
||||
return fmt.Sprintf(mt, PlayerName), fmt.Sprintf(mc, Content), fmt.Sprintf(mt_en, PlayerName), fmt.Sprintf(mc_en, Content)
|
||||
}
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
"AppID": 0,
|
||||
"LogLevel": "debug",
|
||||
"LogPath": "./log",
|
||||
"TCPAddr": ":3602",
|
||||
"TCPAddr": ":3601",
|
||||
"WSAddr": ":3567",
|
||||
"RPCAddr": ":50051",
|
||||
"MySqlAddr": "127.0.0.1",
|
||||
|
||||
@ -19,13 +19,12 @@ import (
|
||||
"server/game/internal"
|
||||
|
||||
MsgMod "server/game/mod/msg"
|
||||
"server/msg"
|
||||
msg "server/msg/meowmentnet"
|
||||
"time"
|
||||
|
||||
"github.com/apache/thrift/lib/go/thrift"
|
||||
"github.com/robfig/cron/v3"
|
||||
|
||||
"google.golang.org/protobuf/proto"
|
||||
|
||||
"gitea.bywaystudios.com/pet_home/leaf/gate"
|
||||
"gitea.bywaystudios.com/pet_home/leaf/timer"
|
||||
|
||||
@ -38,7 +37,7 @@ var (
|
||||
|
||||
var isInitGameLogic = false
|
||||
var RegisterNetWorkFunc = make(map[string]interface{})
|
||||
var NewRegisterNetWorkFunc = make(map[string]func(*Player, *proto.Message) error)
|
||||
var NewRegisterNetWorkFunc = make(map[string]func(*Player, *thrift.TStruct) error)
|
||||
|
||||
const (
|
||||
SERVER_STATUS_OPEN = 1 // 服务器状态 开放
|
||||
@ -59,8 +58,8 @@ func RegisterNewMsgProcessFunc(key string, value interface{}) {
|
||||
NewRegisterNetWorkFunc[key] = handler
|
||||
}
|
||||
|
||||
func buildNewMsgHandlerAdapter(value interface{}) (func(*Player, *proto.Message) error, error) {
|
||||
if fn, ok := value.(func(*Player, *proto.Message) error); ok {
|
||||
func buildNewMsgHandlerAdapter(value interface{}) (func(*Player, *thrift.TStruct) error, error) {
|
||||
if fn, ok := value.(func(*Player, *thrift.TStruct) error); ok {
|
||||
return fn, nil
|
||||
}
|
||||
|
||||
@ -84,10 +83,10 @@ func buildNewMsgHandlerAdapter(value interface{}) (func(*Player, *proto.Message)
|
||||
return nil, fmt.Errorf("return type must be error")
|
||||
}
|
||||
|
||||
msgIfaceType := reflect.TypeOf((*proto.Message)(nil)).Elem()
|
||||
msgIfaceType := reflect.TypeOf((*thrift.TStruct)(nil)).Elem()
|
||||
msgArgType := rt.In(1)
|
||||
if msgArgType == reflect.TypeOf((*proto.Message)(nil)) {
|
||||
return func(player *Player, msg *proto.Message) error {
|
||||
if msgArgType == reflect.TypeOf((*thrift.TStruct)(nil)) {
|
||||
return func(player *Player, msg *thrift.TStruct) error {
|
||||
results := rv.Call([]reflect.Value{reflect.ValueOf(player), reflect.ValueOf(msg)})
|
||||
if results[0].IsNil() {
|
||||
return nil
|
||||
@ -96,12 +95,15 @@ func buildNewMsgHandlerAdapter(value interface{}) (func(*Player, *proto.Message)
|
||||
}, nil
|
||||
}
|
||||
if msgArgType.Kind() != reflect.Ptr || !msgArgType.Implements(msgIfaceType) {
|
||||
return nil, fmt.Errorf("second arg must be *proto.Message or pointer type implementing proto.Message")
|
||||
return nil, fmt.Errorf("second arg must be *thrift.TStruct or pointer type implementing thrift.TStruct")
|
||||
}
|
||||
|
||||
return func(player *Player, msg *proto.Message) error {
|
||||
// 注册具体的 thrift 消息类型到全局缓存
|
||||
registerThriftType(msgArgType)
|
||||
|
||||
return func(player *Player, msg *thrift.TStruct) error {
|
||||
if msg == nil || *msg == nil {
|
||||
return fmt.Errorf("nil proto message")
|
||||
return fmt.Errorf("nil thrift message")
|
||||
}
|
||||
|
||||
raw := *msg
|
||||
@ -118,7 +120,7 @@ func buildNewMsgHandlerAdapter(value interface{}) (func(*Player, *proto.Message)
|
||||
}, nil
|
||||
}
|
||||
|
||||
func RunNewNetProcessByKey(key string, player *Player, msg *proto.Message) error {
|
||||
func RunNewNetProcessByKey(key string, player *Player, msg *thrift.TStruct) error {
|
||||
fun, ok := NewRegisterNetWorkFunc[key]
|
||||
if ok {
|
||||
err := fun(player, msg)
|
||||
@ -300,8 +302,8 @@ func (ad *GameLogic) NewAccountInsertDataToDB() bool {
|
||||
}
|
||||
|
||||
func (ad *GameLogic) PackLoginResInfo(a gate.Agent, ResLogin *msg.ResLogin) {
|
||||
resBuff, _ := proto.Marshal(ResLogin)
|
||||
ad.PackResInfo(a, "ResLogin", resBuff)
|
||||
data := GoUtil.Marshal(ResLogin)
|
||||
ad.PackResInfo(a, "ResLogin", data)
|
||||
}
|
||||
|
||||
func (ad *GameLogic) PackResInfo(a gate.Agent, Func string, data []byte) {
|
||||
@ -322,7 +324,7 @@ func (ad *GameLogic) CreateNewPlayer(a gate.Agent, UserName string) *Player {
|
||||
player.agent = a
|
||||
err := player.InitPlayer(UserName)
|
||||
if err != nil {
|
||||
data, _ := proto.Marshal(&msg.ResLogin{ResultCode: MergeConst.Protocol_Error_Account_Fail})
|
||||
data := GoUtil.Marshal(&msg.ResLogin{ResultCode: MergeConst.Protocol_Error_Account_Fail})
|
||||
G_GameLogicPtr.PackResInfo(a, "ResLogin", data)
|
||||
panic(err)
|
||||
}
|
||||
@ -594,7 +596,7 @@ func (ad *GameLogic) InitServerInfo() {
|
||||
func (ad *GameLogic) SendServerVersion(a gate.Agent) {
|
||||
res := &msg.ResServerVersion{}
|
||||
res.Version = G_GameLogicPtr.Version
|
||||
data, _ := proto.Marshal(res)
|
||||
data := GoUtil.Marshal(res)
|
||||
G_getGameLogic().PackResInfo(a, "ResServerVersion", data)
|
||||
}
|
||||
|
||||
@ -641,7 +643,7 @@ func (ad *GameLogic) ReplaceExistPlayerAndAgent(a gate.Agent, player *Player) er
|
||||
}
|
||||
agent := player.GetAgentByPlayer()
|
||||
notify := &msg.ForceKickOut{}
|
||||
data, _ := proto.Marshal(notify)
|
||||
data := GoUtil.Marshal(notify)
|
||||
if agent != nil && a != agent {
|
||||
G_getGameLogic().PackResInfo(agent, "ForceKickOut", data)
|
||||
internal.AsignPlayerToAgents(agent, ad.NotInitPlayer)
|
||||
|
||||
@ -15,7 +15,7 @@ import (
|
||||
"server/game/mod/item"
|
||||
"server/game/mod/mail"
|
||||
GoUtil "server/game_util"
|
||||
"server/msg"
|
||||
msg "server/msg/meowmentnet"
|
||||
"sort"
|
||||
|
||||
"gitea.bywaystudios.com/pet_home/leaf/log"
|
||||
@ -65,14 +65,14 @@ func (p *Player) ActivityLogin() {
|
||||
// 清空猫草大作战数据无需发邮件
|
||||
MailMod := p.PlayMod.getMailMod()
|
||||
MailMod.SendMail(&mail.MailStruct{
|
||||
Title: languageCfg.GetLanguage(msg.LANG_TYPE_LANG_CN, "backend_gardenend_mail_title"),
|
||||
TitleEn: languageCfg.GetLanguage(msg.LANG_TYPE_LANG_EN, "backend_gardenend_mail_title"),
|
||||
Content: languageCfg.GetLanguage(msg.LANG_TYPE_LANG_CN, "backend_gardenend_mail_content"),
|
||||
ContentEn: languageCfg.GetLanguage(msg.LANG_TYPE_LANG_EN, "backend_gardenend_mail_content"),
|
||||
TitlePtBr: languageCfg.GetLanguage(msg.LANG_TYPE_LANG_PTBR, "backend_gardenend_mail_title"),
|
||||
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"),
|
||||
Title: languageCfg.GetLanguage(msg.LANG_TYPE_LangCn, "backend_gardenend_mail_title"),
|
||||
TitleEn: languageCfg.GetLanguage(msg.LANG_TYPE_LangEn, "backend_gardenend_mail_title"),
|
||||
Content: languageCfg.GetLanguage(msg.LANG_TYPE_LangCn, "backend_gardenend_mail_content"),
|
||||
ContentEn: languageCfg.GetLanguage(msg.LANG_TYPE_LangEn, "backend_gardenend_mail_content"),
|
||||
TitlePtBr: languageCfg.GetLanguage(msg.LANG_TYPE_LangPtbr, "backend_gardenend_mail_title"),
|
||||
ContentPtBr: languageCfg.GetLanguage(msg.LANG_TYPE_LangPtbr, "backend_gardenend_mail_content"),
|
||||
TitleEsLatam: languageCfg.GetLanguage(msg.LANG_TYPE_LangEsLatam, "backend_gardenend_mail_title"),
|
||||
ContentEsLatam: languageCfg.GetLanguage(msg.LANG_TYPE_LangEsLatam, "backend_gardenend_mail_content"),
|
||||
Items: catnipUnReward,
|
||||
Type: mail.MAIL_TYPE_NORMAL,
|
||||
})
|
||||
@ -108,18 +108,18 @@ func (p *Player) ActivityLogin() {
|
||||
func (p *Player) SendActivityMail(ItemId, ItemNum, ActivityId int, RewardItems []*item.Item) {
|
||||
MailMod := p.PlayMod.getMailMod()
|
||||
activity_title_key, mail_title_key, mail_content_key := activityCfg.GetActivityRecycleMail(ActivityId)
|
||||
activity_title_zh := languageCfg.GetLanguage(msg.LANG_TYPE_LANG_CN, activity_title_key)
|
||||
activity_title_en := languageCfg.GetLanguage(msg.LANG_TYPE_LANG_EN, activity_title_key)
|
||||
activity_title_pt := languageCfg.GetLanguage(msg.LANG_TYPE_LANG_PTBR, activity_title_key)
|
||||
activity_title_es := languageCfg.GetLanguage(msg.LANG_TYPE_LANG_ES_LATAM, activity_title_key)
|
||||
mt_zh := languageCfg.GetLanguage(msg.LANG_TYPE_LANG_CN, mail_title_key)
|
||||
mc_zh := languageCfg.GetLanguage(msg.LANG_TYPE_LANG_CN, mail_content_key)
|
||||
mt_en := languageCfg.GetLanguage(msg.LANG_TYPE_LANG_EN, mail_title_key)
|
||||
mc_en := languageCfg.GetLanguage(msg.LANG_TYPE_LANG_EN, mail_content_key)
|
||||
mt_pt := languageCfg.GetLanguage(msg.LANG_TYPE_LANG_PTBR, mail_title_key)
|
||||
mc_pt := languageCfg.GetLanguage(msg.LANG_TYPE_LANG_PTBR, mail_content_key)
|
||||
mt_es := languageCfg.GetLanguage(msg.LANG_TYPE_LANG_ES_LATAM, mail_title_key)
|
||||
mc_es := languageCfg.GetLanguage(msg.LANG_TYPE_LANG_ES_LATAM, mail_content_key)
|
||||
activity_title_zh := languageCfg.GetLanguage(msg.LANG_TYPE_LangCn, activity_title_key)
|
||||
activity_title_en := languageCfg.GetLanguage(msg.LANG_TYPE_LangEn, activity_title_key)
|
||||
activity_title_pt := languageCfg.GetLanguage(msg.LANG_TYPE_LangPtbr, activity_title_key)
|
||||
activity_title_es := languageCfg.GetLanguage(msg.LANG_TYPE_LangEsLatam, activity_title_key)
|
||||
mt_zh := languageCfg.GetLanguage(msg.LANG_TYPE_LangCn, mail_title_key)
|
||||
mc_zh := languageCfg.GetLanguage(msg.LANG_TYPE_LangCn, mail_content_key)
|
||||
mt_en := languageCfg.GetLanguage(msg.LANG_TYPE_LangEn, mail_title_key)
|
||||
mc_en := languageCfg.GetLanguage(msg.LANG_TYPE_LangEn, mail_content_key)
|
||||
mt_pt := languageCfg.GetLanguage(msg.LANG_TYPE_LangPtbr, mail_title_key)
|
||||
mc_pt := languageCfg.GetLanguage(msg.LANG_TYPE_LangPtbr, mail_content_key)
|
||||
mt_es := languageCfg.GetLanguage(msg.LANG_TYPE_LangEsLatam, mail_title_key)
|
||||
mc_es := languageCfg.GetLanguage(msg.LANG_TYPE_LangEsLatam, mail_content_key)
|
||||
Items := []*item.Item{item.NewItem(ItemId, ItemNum)}
|
||||
Items = append(Items, RewardItems...)
|
||||
MailMod.SendMail(&mail.MailStruct{
|
||||
@ -139,14 +139,14 @@ func (p *Player) SendActivityMail(ItemId, ItemNum, ActivityId int, RewardItems [
|
||||
// 发送活动邮件
|
||||
func (p *Player) SendActivityMail2(items []*item.Item, mail_title, mail_content string) {
|
||||
MailMod := p.PlayMod.getMailMod()
|
||||
mt_zh := languageCfg.GetLanguage(msg.LANG_TYPE_LANG_CN, mail_title)
|
||||
mc_zh := languageCfg.GetLanguage(msg.LANG_TYPE_LANG_CN, mail_content)
|
||||
mt_en := languageCfg.GetLanguage(msg.LANG_TYPE_LANG_EN, mail_title)
|
||||
mc_en := languageCfg.GetLanguage(msg.LANG_TYPE_LANG_EN, mail_content)
|
||||
mt_pt := languageCfg.GetLanguage(msg.LANG_TYPE_LANG_PTBR, mail_title)
|
||||
mc_pt := languageCfg.GetLanguage(msg.LANG_TYPE_LANG_PTBR, mail_content)
|
||||
mt_es := languageCfg.GetLanguage(msg.LANG_TYPE_LANG_ES_LATAM, mail_title)
|
||||
mc_es := languageCfg.GetLanguage(msg.LANG_TYPE_LANG_ES_LATAM, mail_content)
|
||||
mt_zh := languageCfg.GetLanguage(msg.LANG_TYPE_LangCn, mail_title)
|
||||
mc_zh := languageCfg.GetLanguage(msg.LANG_TYPE_LangCn, mail_content)
|
||||
mt_en := languageCfg.GetLanguage(msg.LANG_TYPE_LangEn, mail_title)
|
||||
mc_en := languageCfg.GetLanguage(msg.LANG_TYPE_LangEn, mail_content)
|
||||
mt_pt := languageCfg.GetLanguage(msg.LANG_TYPE_LangPtbr, mail_title)
|
||||
mc_pt := languageCfg.GetLanguage(msg.LANG_TYPE_LangPtbr, mail_content)
|
||||
mt_es := languageCfg.GetLanguage(msg.LANG_TYPE_LangEsLatam, mail_title)
|
||||
mc_es := languageCfg.GetLanguage(msg.LANG_TYPE_LangEsLatam, mail_content)
|
||||
MailMod.SendMail(&mail.MailStruct{
|
||||
Title: mt_zh,
|
||||
Content: mc_zh,
|
||||
|
||||
@ -1,18 +1,17 @@
|
||||
package game
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"server/db"
|
||||
"server/game/mod/activity"
|
||||
"server/game/mod/msg"
|
||||
Msg "server/game/mod/msg"
|
||||
GoUtil "server/game_util"
|
||||
protoMsg "server/msg"
|
||||
protoMsg "server/msg/meowmentnet"
|
||||
"sync"
|
||||
|
||||
"gitea.bywaystudios.com/pet_home/leaf/log"
|
||||
|
||||
"google.golang.org/protobuf/encoding/protojson"
|
||||
)
|
||||
|
||||
type ActivityMgr struct {
|
||||
@ -171,21 +170,21 @@ func unmarshalActivityCfg(atype int, buf []byte) (interface{}, error) {
|
||||
switch atype {
|
||||
case 1:
|
||||
cfg := &protoMsg.MiningCfg{}
|
||||
err := protojson.Unmarshal(buf, cfg)
|
||||
err := json.Unmarshal(buf, cfg)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return cfg, nil
|
||||
case 9:
|
||||
cfg := &protoMsg.ChampionshipCfg{}
|
||||
err := protojson.Unmarshal(buf, cfg)
|
||||
err := json.Unmarshal(buf, cfg)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return cfg, nil
|
||||
case 10:
|
||||
cfg := &protoMsg.CatReturnGiftCfg{}
|
||||
err := protojson.Unmarshal(buf, cfg)
|
||||
err := json.Unmarshal(buf, cfg)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
@ -11,6 +11,7 @@ import (
|
||||
GoUtil "server/game_util"
|
||||
"server/gamedata"
|
||||
"server/msg"
|
||||
"server/msg/meowmentnet"
|
||||
"time"
|
||||
|
||||
"gitea.bywaystudios.com/pet_home/leaf/gate"
|
||||
@ -49,18 +50,18 @@ func AdminProcess(funcName string, args []interface{}) {
|
||||
log.Debug("AdminProcess error: %v", "Func not found")
|
||||
}
|
||||
|
||||
func VerifyUser(accountInfo *db.Db_Account, detail *msg.ReqLogin) (ResLogin *msg.ResLogin, accountInfoOut *db.Db_Account) {
|
||||
if detail.Type == msg.LOGIN_TYPE_CODE_LOGIN {
|
||||
func VerifyUser(accountInfo *db.Db_Account, detail *meowmentnet.ReqLogin) (ResLogin *meowmentnet.ResLogin, accountInfoOut *db.Db_Account) {
|
||||
if detail.Type == meowmentnet.LOGIN_TYPE(meowmentnet.LOGIN_TYPE_CodeLogin) {
|
||||
err := VerifyCode(detail.UserName, detail.Code)
|
||||
if err != nil {
|
||||
ResLogin = &msg.ResLogin{
|
||||
ResLogin = &meowmentnet.ResLogin{
|
||||
ResultCode: MergeConst.Protocol_Error_Account_Code_Error,
|
||||
DwUin: 0,
|
||||
}
|
||||
return
|
||||
}
|
||||
}
|
||||
if detail.Type == msg.LOGIN_TYPE_SDK_LOGIN {
|
||||
if detail.Type == meowmentnet.LOGIN_TYPE(meowmentnet.LOGIN_TYPE_SdkLogin) {
|
||||
if accountInfo == nil {
|
||||
accountInfo = db.GetAccountInfoFromDb(detail.Device)
|
||||
}
|
||||
@ -71,22 +72,22 @@ func VerifyUser(accountInfo *db.Db_Account, detail *msg.ReqLogin) (ResLogin *msg
|
||||
}
|
||||
}
|
||||
if accountInfo == nil {
|
||||
ResLogin = &msg.ResLogin{
|
||||
ResLogin = &meowmentnet.ResLogin{
|
||||
ResultCode: MergeConst.Protocol_Error_Account_NoExsit,
|
||||
DwUin: 0,
|
||||
}
|
||||
return
|
||||
}
|
||||
if detail.Type == msg.LOGIN_TYPE_ACCOUNT_LOGIN && accountInfo.UserPassword != detail.UserPwd {
|
||||
ResLogin = &msg.ResLogin{
|
||||
if detail.Type == meowmentnet.LOGIN_TYPE(meowmentnet.LOGIN_TYPE_AccountLogin) && accountInfo.UserPassword != detail.UserPwd {
|
||||
ResLogin = &meowmentnet.ResLogin{
|
||||
ResultCode: MergeConst.Protocol_Error_Account_OR_PWD_ERROR,
|
||||
DwUin: 0,
|
||||
}
|
||||
return
|
||||
}
|
||||
if detail.Type == msg.LOGIN_TYPE_DEVICE_LOGIN {
|
||||
if detail.Type == meowmentnet.LOGIN_TYPE(meowmentnet.LOGIN_TYPE_DeviceLogin) {
|
||||
if detail.Device != accountInfo.DeviceId {
|
||||
ResLogin = &msg.ResLogin{
|
||||
ResLogin = &meowmentnet.ResLogin{
|
||||
ResultCode: MergeConst.Protocol_Error_Account_Device_Error,
|
||||
DwUin: 0,
|
||||
}
|
||||
@ -96,7 +97,7 @@ func VerifyUser(accountInfo *db.Db_Account, detail *msg.ReqLogin) (ResLogin *msg
|
||||
|
||||
playerbaseinfo := db.GetPlayerBaseInfoFromDbByName(detail.UserName)
|
||||
if playerbaseinfo == nil {
|
||||
ResLogin = &msg.ResLogin{
|
||||
ResLogin = &meowmentnet.ResLogin{
|
||||
ResultCode: MergeConst.Protocol_Error_Account_NoExsit,
|
||||
DwUin: 0,
|
||||
}
|
||||
@ -104,14 +105,14 @@ func VerifyUser(accountInfo *db.Db_Account, detail *msg.ReqLogin) (ResLogin *msg
|
||||
}
|
||||
|
||||
if playerbaseinfo.Ban > GoUtil.Now() || playerbaseinfo.Ban == -1 {
|
||||
ResLogin = &msg.ResLogin{
|
||||
ResLogin = &meowmentnet.ResLogin{
|
||||
ResultCode: MergeConst.Protocol_Error_Account_Ban,
|
||||
DwUin: 0,
|
||||
}
|
||||
return
|
||||
}
|
||||
accountInfoOut = accountInfo
|
||||
ResLogin = &msg.ResLogin{
|
||||
ResLogin = &meowmentnet.ResLogin{
|
||||
ResultCode: 0,
|
||||
DwUin: playerbaseinfo.DwUin,
|
||||
FaceBookId: playerbaseinfo.FaceBookId,
|
||||
@ -137,7 +138,7 @@ func ReqAdminShipping(args []interface{}) error {
|
||||
}
|
||||
player := G_GameLogicPtr.GetPlayer(int64(orderInfo.Uid))
|
||||
if player != nil {
|
||||
go player.TriggerShippingOrderOrigin(&msg.ReqShippingOrder{
|
||||
go player.TriggerShippingOrderOrigin(&meowmentnet.ReqShippingOrder{
|
||||
OrderSn: req.OrderSn,
|
||||
})
|
||||
res["Msg"] = "player online,triggered sync"
|
||||
@ -343,7 +344,7 @@ func AdminShipping(req *msg.ReqOrderShipping) (*msg.ResOrderShipping, error) {
|
||||
// 玩家在线,通知发货
|
||||
player := G_GameLogicPtr.GetPlayer(int64(orderInfo.Uid))
|
||||
if player != nil {
|
||||
go player.TriggerShippingOrderOrigin(&msg.ReqShippingOrder{
|
||||
go player.TriggerShippingOrderOrigin(&meowmentnet.ReqShippingOrder{
|
||||
OrderSn: req.OrderSn,
|
||||
})
|
||||
res.Msg = "player online,triggered sync"
|
||||
|
||||
@ -16,7 +16,7 @@ import (
|
||||
piggyBank "server/game/mod/piggy_bank"
|
||||
"server/game/mod/quest"
|
||||
GoUtil "server/game_util"
|
||||
proto "server/msg"
|
||||
proto "server/msg/meowmentnet"
|
||||
"strings"
|
||||
"time"
|
||||
|
||||
|
||||
@ -1,6 +1,7 @@
|
||||
package game
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"reflect"
|
||||
"server/MergeConst"
|
||||
@ -10,15 +11,12 @@ import (
|
||||
"strings"
|
||||
"time"
|
||||
|
||||
"server/msg"
|
||||
msg "server/msg/meowmentnet"
|
||||
|
||||
"gitea.bywaystudios.com/pet_home/leaf/gate"
|
||||
|
||||
"gitea.bywaystudios.com/pet_home/leaf/log"
|
||||
|
||||
"google.golang.org/protobuf/encoding/protojson"
|
||||
"google.golang.org/protobuf/proto"
|
||||
|
||||
"server/db"
|
||||
)
|
||||
|
||||
@ -73,46 +71,46 @@ func HandleClientReq(args []interface{}) {
|
||||
case "ClientTick":
|
||||
case "ReqChangePassword":
|
||||
detail := &msg.ReqChangePassword{}
|
||||
proto.Unmarshal(buf, detail)
|
||||
GoUtil.Unmarshal(buf, detail)
|
||||
accountInfo := db.GetAccountInfoFromDb(detail.UserName)
|
||||
if accountInfo == nil {
|
||||
ResChangePassword := &msg.ResChangePassword{}
|
||||
ResChangePassword.ResultCode = MergeConst.Protocol_Error_Account_NoExsit
|
||||
data, _ := proto.Marshal(ResChangePassword)
|
||||
data := GoUtil.Marshal(ResChangePassword)
|
||||
G_GameLogicPtr.PackResInfo(a, "ResChangePassword", data)
|
||||
return
|
||||
}
|
||||
if accountInfo.UserPassword != detail.OldPwd && detail.OldPwd != "-1" {
|
||||
ResChangePassword := &msg.ResChangePassword{}
|
||||
ResChangePassword.ResultCode = MergeConst.Protocol_Error_Account_OR_PWD_ERROR
|
||||
data, _ := proto.Marshal(ResChangePassword)
|
||||
data := GoUtil.Marshal(ResChangePassword)
|
||||
G_GameLogicPtr.PackResInfo(a, "ResChangePassword", data)
|
||||
return
|
||||
}
|
||||
if strings.Count(detail.NewPwd, "")-1 < 6 {
|
||||
if strings.Count(detail.NewPwd_, "")-1 < 6 {
|
||||
ResChangePassword := &msg.ResChangePassword{}
|
||||
ResChangePassword.ResultCode = MergeConst.Protocol_Error_Account_OR_PWD_Short
|
||||
data, _ := proto.Marshal(ResChangePassword)
|
||||
data := GoUtil.Marshal(ResChangePassword)
|
||||
G_GameLogicPtr.PackResInfo(a, "ResChangePassword", data)
|
||||
return
|
||||
}
|
||||
accountInfo.UserPassword = detail.NewPwd
|
||||
accountInfo.UserPassword = detail.NewPwd_
|
||||
err := db.UpdateAccountInfoToDb(accountInfo)
|
||||
if err != nil {
|
||||
ResChangePassword := &msg.ResChangePassword{}
|
||||
ResChangePassword.ResultCode = MergeConst.Protocol_Error_Account_Fail
|
||||
data, _ := proto.Marshal(ResChangePassword)
|
||||
data := GoUtil.Marshal(ResChangePassword)
|
||||
G_GameLogicPtr.PackResInfo(a, "ResChangePassword", data)
|
||||
return
|
||||
}
|
||||
ResChangePassword := &msg.ResChangePassword{}
|
||||
ResChangePassword.ResultCode = 0
|
||||
data, _ := proto.Marshal(ResChangePassword)
|
||||
data := GoUtil.Marshal(ResChangePassword)
|
||||
G_GameLogicPtr.PackResInfo(a, "ResChangePassword", data)
|
||||
case "ReqAdminInfo": // 后台接口
|
||||
AdminProcess(m.GetFunc(), []interface{}{a, buf})
|
||||
case "ReqLoginCode":
|
||||
detailMsg, err := UnmarshalProtoMessageByName(m.GetFunc(), buf)
|
||||
detailMsg, err := UnmarshalThriftMessageByName(m.GetFunc(), buf)
|
||||
if err != nil {
|
||||
log.Error("unmarshal %s failed: %v", m.GetFunc(), err)
|
||||
return
|
||||
@ -125,13 +123,13 @@ func HandleClientReq(args []interface{}) {
|
||||
ResLoginCode.Msg = err.Error()
|
||||
}
|
||||
ResLoginCode.Code = Code
|
||||
data, _ := proto.Marshal(ResLoginCode)
|
||||
data := GoUtil.Marshal(ResLoginCode)
|
||||
G_GameLogicPtr.PackResInfo(a, "ResLoginCode", data)
|
||||
case "ReqServerVersion":
|
||||
G_GameLogicPtr.SendServerVersion(a)
|
||||
case "ReqRegisterAccount":
|
||||
detail := &msg.ReqRegisterAccount{}
|
||||
proto.Unmarshal(buf, detail)
|
||||
GoUtil.Unmarshal(buf, detail)
|
||||
log.Debug("player %s start register", detail.UserName)
|
||||
gl := G_getGameLogic()
|
||||
defer func() {
|
||||
@ -143,7 +141,7 @@ func HandleClientReq(args []interface{}) {
|
||||
if gl.IsExsitAccount(detail.UserName) {
|
||||
ResRegisterAccount := &msg.ResRegisterAccount{}
|
||||
ResRegisterAccount.ResultCode = MergeConst.Protocol_Error_Account_Exist
|
||||
data, _ := proto.Marshal(ResRegisterAccount)
|
||||
data := GoUtil.Marshal(ResRegisterAccount)
|
||||
gl.PackResInfo(a, "ResRegisterAccount", data)
|
||||
break
|
||||
}
|
||||
@ -152,17 +150,17 @@ func HandleClientReq(args []interface{}) {
|
||||
if !gl.NewAccountInsertDataToDB() {
|
||||
ResRegisterAccount := &msg.ResRegisterAccount{}
|
||||
ResRegisterAccount.ResultCode = MergeConst.Protocol_Error_Account_Fail
|
||||
data, _ := proto.Marshal(ResRegisterAccount)
|
||||
data := GoUtil.Marshal(ResRegisterAccount)
|
||||
gl.PackResInfo(a, "ResRegisterAccount", data)
|
||||
break
|
||||
}
|
||||
ResRegisterAccount := &msg.ResRegisterAccount{}
|
||||
ResRegisterAccount.ResultCode = 0
|
||||
data, _ := proto.Marshal(ResRegisterAccount)
|
||||
data := GoUtil.Marshal(ResRegisterAccount)
|
||||
gl.PackResInfo(a, "ResRegisterAccount", data)
|
||||
case "ReqLogin": // 登录请求
|
||||
detail := &msg.ReqLogin{}
|
||||
proto.Unmarshal(buf, detail)
|
||||
GoUtil.Unmarshal(buf, detail)
|
||||
accountInfo := db.GetAccountInfoFromDb(detail.UserName)
|
||||
log.Debug("player %s start login", detail.UserName)
|
||||
defer func() {
|
||||
@ -206,10 +204,10 @@ func HandleClientReq(args []interface{}) {
|
||||
log.Debug("uid : %d, init user process : %s, execTime : %v , isNew: %v", p.(*Player).M_DwUin, m.GetFunc(), time.Since(start), newPlayer)
|
||||
case "ReqServerTime": // 获取服务器时间
|
||||
detail := &msg.ReqServerTime{}
|
||||
proto.Unmarshal(buf, detail)
|
||||
GoUtil.Unmarshal(buf, detail)
|
||||
res := &msg.ResServerTime{}
|
||||
res.ServerTime = (int32)(time.Now().Unix())
|
||||
data, _ := proto.Marshal(res)
|
||||
data := GoUtil.Marshal(res)
|
||||
G_getGameLogic().PackResInfo(a, "ResServerTime", data)
|
||||
case "ReqOfflineReconnect": // 断线重连
|
||||
ReqOfflineReconnectFunc(a, buf)
|
||||
@ -232,7 +230,7 @@ func HandleClientReq(args []interface{}) {
|
||||
p.(*Player).args = make(map[string]interface{})
|
||||
p.(*Player).args["func"] = m
|
||||
p.(*Player).args["agent"] = a
|
||||
detailMsg, err := UnmarshalProtoMessageByName(m.GetFunc(), buf)
|
||||
detailMsg, err := UnmarshalThriftMessageByName(m.GetFunc(), buf)
|
||||
if err != nil {
|
||||
log.Error("uid : %d, func : %s, unmarshal error : %s", p.(*Player).M_DwUin, m.GetFunc(), err)
|
||||
p.(*Player).TeLog("func_unmarshal_error", map[string]interface{}{
|
||||
@ -244,8 +242,12 @@ func HandleClientReq(args []interface{}) {
|
||||
err = RunNewNetProcessByKey(m.GetFunc(), p.(*Player), &detailMsg)
|
||||
str := ""
|
||||
if conf.Server.GameName == "pet_home" || conf.Server.GameName == "merge_pet_sdk" {
|
||||
strbuf, _ := protojson.Marshal(detailMsg)
|
||||
str = string(strbuf)
|
||||
jsonBuf, err := json.Marshal(detailMsg)
|
||||
if err != nil {
|
||||
log.Error("marshal %s to json failed: %v", m.GetFunc(), err)
|
||||
return
|
||||
}
|
||||
str = string(jsonBuf)
|
||||
}
|
||||
if err != nil {
|
||||
log.Error("uid : %d, func : %s, err : %s", p.(*Player).M_DwUin, m.GetFunc(), err)
|
||||
|
||||
@ -30,7 +30,7 @@ import (
|
||||
"server/game/mod/order"
|
||||
"server/game/mod/playroom"
|
||||
GoUtil "server/game_util"
|
||||
"server/msg"
|
||||
msg "server/msg/meowmentnet"
|
||||
"strconv"
|
||||
"strings"
|
||||
"time"
|
||||
@ -58,11 +58,11 @@ func ReqGmCommand_(player *Player, Command string) error {
|
||||
case "additem":
|
||||
id, _ := strconv.Atoi(arg[1])
|
||||
num, _ := strconv.Atoi(arg[2])
|
||||
player.HandleItem([]*item.Item{item.NewItem(id, num)}, msg.ITEM_POP_LABEL_GM.String())
|
||||
player.HandleItem([]*item.Item{item.NewItem(id, num)}, msg.ITEM_POP_LABEL_Gm.String())
|
||||
case "subitem":
|
||||
id, _ := strconv.Atoi(arg[1])
|
||||
num, _ := strconv.Atoi(arg[2])
|
||||
player.HandleItem([]*item.Item{item.NewItem(id, -num)}, msg.ITEM_POP_LABEL_GM.String())
|
||||
player.HandleItem([]*item.Item{item.NewItem(id, -num)}, msg.ITEM_POP_LABEL_Gm.String())
|
||||
case "reset_order":
|
||||
player.PlayMod.mod_list.Order.Step = 0
|
||||
player.PlayMod.mod_list.Order.InitData()
|
||||
@ -566,7 +566,7 @@ func ReqGmCommand_(player *Player, Command string) error {
|
||||
})
|
||||
}
|
||||
}
|
||||
player.HandleItem(items, msg.ITEM_POP_LABEL_GM.String())
|
||||
player.HandleItem(items, msg.ITEM_POP_LABEL_Gm.String())
|
||||
case "resetCompensation":
|
||||
compensationMod := player.PlayMod.getCompensationMod()
|
||||
compensationMod.C20250910 = false
|
||||
|
||||
@ -11,7 +11,7 @@ import (
|
||||
MsgMod "server/game/mod/msg"
|
||||
"server/game/mod/playroom"
|
||||
GoUtil "server/game_util"
|
||||
"server/msg"
|
||||
msg "server/msg/meowmentnet"
|
||||
"time"
|
||||
)
|
||||
|
||||
|
||||
@ -24,7 +24,7 @@ import (
|
||||
"server/game/mod/order"
|
||||
"server/game/mod/playroom"
|
||||
GoUtil "server/game_util"
|
||||
proto "server/msg"
|
||||
proto "server/msg/meowmentnet"
|
||||
"sort"
|
||||
|
||||
"gitea.bywaystudios.com/pet_home/leaf/log"
|
||||
@ -915,12 +915,12 @@ func (player *Player) AddOrder() {
|
||||
preheatStep := OrderMod.PreheatStep[chessColor]
|
||||
OrderMod.PreheatStep[chessColor]++
|
||||
if preheatStep < 4 {
|
||||
newChessId := mergeDataCfg.GetChessIdByLvAndColor(BaseMod.GetEnergyMul()+preheatStep+1, chessColor)
|
||||
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 {
|
||||
@ -956,13 +956,13 @@ func (player *Player) FixOrderBug() {
|
||||
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]]
|
||||
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)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -4,7 +4,7 @@ import (
|
||||
"fmt"
|
||||
avatarCfg "server/conf/avatar"
|
||||
GoUtil "server/game_util"
|
||||
"server/msg"
|
||||
msg "server/msg/meowmentnet"
|
||||
)
|
||||
|
||||
type AvatarMod struct {
|
||||
|
||||
@ -6,7 +6,7 @@ import (
|
||||
baseCfg "server/conf/base"
|
||||
"server/game/mod/item"
|
||||
GoUtil "server/game_util"
|
||||
"server/msg"
|
||||
msg "server/msg/meowmentnet"
|
||||
)
|
||||
|
||||
const (
|
||||
|
||||
@ -5,7 +5,7 @@ import (
|
||||
cardCfg "server/conf/card"
|
||||
"server/game/mod/item"
|
||||
GoUtil "server/game_util"
|
||||
"server/msg"
|
||||
msg "server/msg/meowmentnet"
|
||||
|
||||
"gitea.bywaystudios.com/pet_home/leaf/log"
|
||||
)
|
||||
|
||||
@ -6,7 +6,7 @@ import (
|
||||
mergeDataCfg "server/conf/merge_data"
|
||||
"server/game/mod/item"
|
||||
GoUtil "server/game_util"
|
||||
"server/msg"
|
||||
msg "server/msg/meowmentnet"
|
||||
)
|
||||
|
||||
type ChampshipMod struct {
|
||||
|
||||
@ -9,7 +9,7 @@ import (
|
||||
"server/game/mod/item"
|
||||
"server/game/mod/order"
|
||||
GoUtil "server/game_util"
|
||||
"server/msg"
|
||||
msg "server/msg/meowmentnet"
|
||||
|
||||
"gitea.bywaystudios.com/pet_home/leaf/log"
|
||||
)
|
||||
|
||||
@ -8,7 +8,7 @@ import (
|
||||
userCfg "server/conf/user"
|
||||
"server/game/mod/item"
|
||||
GoUtil "server/game_util"
|
||||
"server/msg"
|
||||
msg "server/msg/meowmentnet"
|
||||
"sort"
|
||||
"strings"
|
||||
)
|
||||
@ -401,7 +401,7 @@ func (cb *ChessBorad) FinishOrderChessByBag(chess int) error {
|
||||
}
|
||||
|
||||
// 棋子转换
|
||||
func (cb *ChessBorad) ExChess(oldChessId, newChessId int) error {
|
||||
func (cb *ChessBorad) ExChess(oldChessId, NewChessId_ int) error {
|
||||
if oldChessId > 0 {
|
||||
newList, b := GoUtil.PopElemSlice(cb.ChessList, oldChessId)
|
||||
if !b {
|
||||
@ -409,7 +409,7 @@ func (cb *ChessBorad) ExChess(oldChessId, newChessId int) error {
|
||||
}
|
||||
cb.ChessList = newList
|
||||
}
|
||||
return cb.AddChess(newChessId)
|
||||
return cb.AddChess(NewChessId_)
|
||||
}
|
||||
|
||||
// 增加棋盘缓冲器
|
||||
|
||||
@ -5,7 +5,7 @@ import (
|
||||
collectCfg "server/conf/collect"
|
||||
"server/game/mod/item"
|
||||
GoUtil "server/game_util"
|
||||
"server/msg"
|
||||
msg "server/msg/meowmentnet"
|
||||
)
|
||||
|
||||
type Collect struct {
|
||||
|
||||
@ -6,7 +6,7 @@ import (
|
||||
"server/game/mod/item"
|
||||
"server/game/mod/quest"
|
||||
GoUtil "server/game_util"
|
||||
"server/msg"
|
||||
msg "server/msg/meowmentnet"
|
||||
"sort"
|
||||
|
||||
"gitea.bywaystudios.com/pet_home/leaf/log"
|
||||
|
||||
@ -8,7 +8,7 @@ import (
|
||||
orderCfg "server/conf/order"
|
||||
"server/game/mod/item"
|
||||
GoUtil "server/game_util"
|
||||
"server/msg"
|
||||
msg "server/msg/meowmentnet"
|
||||
"sort"
|
||||
)
|
||||
|
||||
|
||||
@ -4,7 +4,7 @@ import (
|
||||
"fmt"
|
||||
emojiCfg "server/conf/emoji"
|
||||
GoUtil "server/game_util"
|
||||
"server/msg"
|
||||
msg "server/msg/meowmentnet"
|
||||
)
|
||||
|
||||
type EmojiMod struct {
|
||||
|
||||
@ -5,7 +5,7 @@ import (
|
||||
"math"
|
||||
endlessCfg "server/conf/endless"
|
||||
"server/game/mod/item"
|
||||
"server/msg"
|
||||
msg "server/msg/meowmentnet"
|
||||
"sort"
|
||||
)
|
||||
|
||||
|
||||
@ -4,7 +4,7 @@ import (
|
||||
"fmt"
|
||||
faceCfg "server/conf/face"
|
||||
GoUtil "server/game_util"
|
||||
"server/msg"
|
||||
msg "server/msg/meowmentnet"
|
||||
)
|
||||
|
||||
type FaceMod struct {
|
||||
|
||||
@ -7,7 +7,7 @@ import (
|
||||
"server/game/mod/card"
|
||||
"server/game/mod/item"
|
||||
GoUtil "server/game_util"
|
||||
"server/msg"
|
||||
msg "server/msg/meowmentnet"
|
||||
"sort"
|
||||
)
|
||||
|
||||
|
||||
@ -5,7 +5,7 @@ import (
|
||||
friendTreasureCfg "server/conf/friend_treasure"
|
||||
"server/game/mod/item"
|
||||
GoUtil "server/game_util"
|
||||
"server/msg"
|
||||
msg "server/msg/meowmentnet"
|
||||
)
|
||||
|
||||
type FriendTreasureMod struct {
|
||||
|
||||
@ -4,7 +4,7 @@ import (
|
||||
"fmt"
|
||||
fur_cfg "server/conf/fur"
|
||||
"server/game/mod/item"
|
||||
"server/msg"
|
||||
msg "server/msg/meowmentnet"
|
||||
)
|
||||
|
||||
type FurMod struct {
|
||||
|
||||
@ -5,7 +5,7 @@ import (
|
||||
guidecfg "server/conf/guide"
|
||||
"server/game/mod/item"
|
||||
GoUtil "server/game_util"
|
||||
"server/msg"
|
||||
msg "server/msg/meowmentnet"
|
||||
)
|
||||
|
||||
type Guide struct {
|
||||
|
||||
@ -6,7 +6,7 @@ import (
|
||||
"server/game/mod/item"
|
||||
"server/game/mod/quest"
|
||||
GoUtil "server/game_util"
|
||||
"server/msg"
|
||||
msg "server/msg/meowmentnet"
|
||||
)
|
||||
|
||||
type GuideTaskMod struct {
|
||||
|
||||
@ -6,7 +6,7 @@ import (
|
||||
handbookCfg "server/conf/handbook"
|
||||
startMergeCfg "server/conf/start_merge"
|
||||
"server/game/mod/item"
|
||||
"server/msg"
|
||||
msg "server/msg/meowmentnet"
|
||||
)
|
||||
|
||||
type Handbook struct {
|
||||
|
||||
@ -5,7 +5,7 @@ import (
|
||||
inviteCfg "server/conf/invite"
|
||||
"server/game/mod/item"
|
||||
GoUtil "server/game_util"
|
||||
"server/msg"
|
||||
msg "server/msg/meowmentnet"
|
||||
)
|
||||
|
||||
type InviteMod struct {
|
||||
|
||||
@ -3,7 +3,7 @@ package item
|
||||
import (
|
||||
"fmt"
|
||||
"math"
|
||||
"server/msg"
|
||||
msg "server/msg/meowmentnet"
|
||||
)
|
||||
|
||||
type Item struct {
|
||||
|
||||
@ -2,7 +2,7 @@ package kv
|
||||
|
||||
import (
|
||||
GoUtil "server/game_util"
|
||||
"server/msg"
|
||||
msg "server/msg/meowmentnet"
|
||||
)
|
||||
|
||||
type KvMod struct {
|
||||
|
||||
@ -7,7 +7,7 @@ import (
|
||||
mergeDataCfg "server/conf/merge_data"
|
||||
"server/game/mod/item"
|
||||
GoUtil "server/game_util"
|
||||
"server/msg"
|
||||
msg "server/msg/meowmentnet"
|
||||
)
|
||||
|
||||
const (
|
||||
@ -537,29 +537,29 @@ func getLimitEventMsg(eType int, event *LTEInfo) *msg.LimitEvent {
|
||||
if !ok {
|
||||
return nil
|
||||
}
|
||||
param[msg.LimitEventParam_LUCKY_CAT_EARNINGS.String()] = int32(d.MaxEarings)
|
||||
param[msg.LimitEventParam_LuckyCatEarnings.String()] = int32(d.MaxEarings)
|
||||
case EVENT_TYPE_CAT_TRICK:
|
||||
d, ok := event.D.(*CatTrick)
|
||||
if !ok {
|
||||
return nil
|
||||
}
|
||||
energy := d.Energy
|
||||
param[msg.LimitEventParam_CAT_TRICK_ENERGY.String()] = int32(energy)
|
||||
param[msg.LimitEventParam_CatTrickEnergy.String()] = int32(energy)
|
||||
case EVENT_TYPE_PAYBACK_DAY:
|
||||
d, ok := event.D.(*PaybackDay)
|
||||
if !ok {
|
||||
return nil
|
||||
}
|
||||
param[msg.LimitEventParam_PAYBACK_DAY_COUNT.String()] = int32(d.Count)
|
||||
param[msg.LimitEventParam_PaybackDayCount.String()] = int32(d.Count)
|
||||
case EVENT_TYPE_SENCE_DASH:
|
||||
times := GoUtil.Int(event.Info["Times"])
|
||||
param[msg.LimitEventParam_SENCE_DASH_TIMES.String()] = int32(times)
|
||||
param[msg.LimitEventParam_SenceDashTimes.String()] = int32(times)
|
||||
}
|
||||
return &msg.LimitEvent{
|
||||
EndTime: endTime,
|
||||
ShowTime: showTime,
|
||||
Cd: int32(cd),
|
||||
Mul: float32(mul),
|
||||
Mul: float64(mul),
|
||||
StartTime: int32(event.StartT),
|
||||
Param: param,
|
||||
}
|
||||
|
||||
@ -4,7 +4,7 @@ import (
|
||||
"fmt"
|
||||
"server/game/mod/item"
|
||||
GoUtil "server/game_util"
|
||||
"server/msg"
|
||||
msg "server/msg/meowmentnet"
|
||||
)
|
||||
|
||||
type MailMod struct {
|
||||
|
||||
@ -6,7 +6,7 @@ import (
|
||||
orderCfg "server/conf/order"
|
||||
"server/game/mod/item"
|
||||
GoUtil "server/game_util"
|
||||
"server/msg"
|
||||
msg "server/msg/meowmentnet"
|
||||
"strings"
|
||||
"time"
|
||||
)
|
||||
@ -344,19 +344,19 @@ func (o *OrderMod) CreatePriorityOrder(lv int, emit []int) bool {
|
||||
if B == 1 {
|
||||
newColor := GoUtil.RandStringSlice(produce[1:])
|
||||
diffLv := GoUtil.RandMap(map[int]int{DIFF_LOW: 70, DIFF_MID: 30})
|
||||
newChessId := 0
|
||||
NewChessId_ := 0
|
||||
switch diffLv {
|
||||
case DIFF_LOW:
|
||||
newLv := GoUtil.RandNum(4, 3+durLv)
|
||||
newChessId = mergeDataCfg.GetChessIdByLvAndColor(newLv, newColor)
|
||||
NewChessId_ = mergeDataCfg.GetChessIdByLvAndColor(newLv, newColor)
|
||||
case DIFF_MID:
|
||||
newLv := GoUtil.RandNum(4+durLv, 3+durLv*2)
|
||||
newChessId = mergeDataCfg.GetChessIdByLvAndColor(newLv, newColor)
|
||||
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
|
||||
}
|
||||
}
|
||||
@ -701,16 +701,16 @@ func (o *OrderMod) ChangeEnergyMul(lv int, emit []int, energyMul int, chessList
|
||||
chessId := v.MergeId[0]
|
||||
chessColor := mergeDataCfg.GetColorById(chessId)
|
||||
preheatStep := o.PreheatStep[chessColor]
|
||||
newChessId := mergeDataCfg.GetChessIdByLvAndColor(energyMul+preheatStep, chessColor)
|
||||
if newChessId == 0 {
|
||||
NewChessId_ := mergeDataCfg.GetChessIdByLvAndColor(energyMul+preheatStep, chessColor)
|
||||
if NewChessId_ == 0 {
|
||||
continue
|
||||
}
|
||||
delete(o.OrderList, k)
|
||||
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)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -4,7 +4,7 @@ import (
|
||||
chargeCfg "server/conf/charge"
|
||||
"server/game/mod/item"
|
||||
GoUtil "server/game_util"
|
||||
"server/msg"
|
||||
msg "server/msg/meowmentnet"
|
||||
)
|
||||
|
||||
type PiggyBankMod struct {
|
||||
|
||||
@ -8,7 +8,7 @@ import (
|
||||
"server/game/mod/item"
|
||||
"server/game/mod/quest"
|
||||
GoUtil "server/game_util"
|
||||
"server/msg"
|
||||
msg "server/msg/meowmentnet"
|
||||
"sort"
|
||||
|
||||
"gitea.bywaystudios.com/pet_home/leaf/log"
|
||||
|
||||
@ -3,7 +3,7 @@ package quest
|
||||
import (
|
||||
"fmt"
|
||||
GoUtil "server/game_util"
|
||||
"server/msg"
|
||||
msg "server/msg/meowmentnet"
|
||||
"strconv"
|
||||
"strings"
|
||||
)
|
||||
|
||||
@ -5,7 +5,7 @@ import (
|
||||
sevenLoginCfg "server/conf/seven_login"
|
||||
"server/game/mod/item"
|
||||
GoUtil "server/game_util"
|
||||
"server/msg"
|
||||
msg "server/msg/meowmentnet"
|
||||
)
|
||||
|
||||
type SevenLoginMod struct {
|
||||
|
||||
@ -5,7 +5,7 @@ import (
|
||||
languageCfg "server/conf/language"
|
||||
notification_cfg "server/conf/notification"
|
||||
GoUtil "server/game_util"
|
||||
"server/msg"
|
||||
msg "server/msg/meowmentnet"
|
||||
)
|
||||
|
||||
const (
|
||||
|
||||
@ -7,7 +7,7 @@ import (
|
||||
"server/game/mod/item"
|
||||
limitedTimeEvent "server/game/mod/limited_time_event"
|
||||
GoUtil "server/game_util"
|
||||
proto "server/msg"
|
||||
proto "server/msg/meowmentnet"
|
||||
)
|
||||
|
||||
func (p *Player) NotifyPlayroomTask() {
|
||||
@ -287,7 +287,7 @@ func (p *Player) ChargeBackData() {
|
||||
specialChargeWeek = int32(GoUtil.FullWeeksSince(c.LastSpecialCharge))
|
||||
}
|
||||
p.PushClientRes(&proto.ResCharge{
|
||||
Charge: float32(c.Charge),
|
||||
Charge: float64(c.Charge),
|
||||
Total: int32(c.Total),
|
||||
First: GoUtil.MapIntToSlice(c.EnergyShop),
|
||||
SpecialShop: specialShop,
|
||||
@ -295,10 +295,10 @@ func (p *Player) ChargeBackData() {
|
||||
ChessShop: chessShop,
|
||||
Gift: GoUtil.MapIntToInt32(c.Gift),
|
||||
Ad: c.Ad,
|
||||
SpecialCharge: float32(c.SpecialCharge),
|
||||
SpecialCharge: float64(c.SpecialCharge),
|
||||
SpecialChargeWeek: specialChargeWeek,
|
||||
TodayCharge: float32(c.TodayCharge),
|
||||
MonthCharge: float32(c.MonthCharge),
|
||||
TodayCharge: float64(c.TodayCharge),
|
||||
MonthCharge: float64(c.MonthCharge),
|
||||
Wish: resWish,
|
||||
AdEndTime: c.AdEndTime,
|
||||
WeeklyDiscount: weeklyDiscount,
|
||||
|
||||
@ -14,12 +14,10 @@ import (
|
||||
Msg "server/game/mod/msg"
|
||||
"server/game/mod/order"
|
||||
"server/game/mod/quest"
|
||||
"server/msg"
|
||||
msg "server/msg/meowmentnet"
|
||||
"time"
|
||||
|
||||
"gitea.bywaystudios.com/pet_home/leaf/log"
|
||||
|
||||
"google.golang.org/protobuf/proto"
|
||||
)
|
||||
|
||||
type PlayerBaseData struct {
|
||||
@ -203,10 +201,7 @@ func (p *PlayerBaseData) ReqRemoveAd(player *Player, req *msg.ReqRemoveAd) {
|
||||
res := &msg.ResRemoveAd{}
|
||||
p.Data.NoAd = 1
|
||||
res.ResultCode = 0
|
||||
|
||||
agent := player.GetAgentByPlayer()
|
||||
data, _ := proto.Marshal(res)
|
||||
G_getGameLogic().PackResInfo(agent, "ResRemoveAd", data)
|
||||
player.PushClientRes(res)
|
||||
}
|
||||
|
||||
func (p *PlayerBaseData) ResPlayerBaseInfo(player *Player) {
|
||||
@ -255,10 +250,8 @@ func (p *PlayerBaseData) ReqBindFacebookAccount(player *Player, req *msg.ReqBind
|
||||
}
|
||||
BaseMod := player.PlayMod.getBaseMod()
|
||||
BaseMod.FackBookId = req.BindAccountId
|
||||
agent := player.GetAgentByPlayer()
|
||||
data, _ := proto.Marshal(res)
|
||||
p.SaveDataFromDB("")
|
||||
G_getGameLogic().PackResInfo(agent, "ResBindFacebookAccount", data)
|
||||
player.PushAndSendClienRes(res)
|
||||
}
|
||||
|
||||
func (p *PlayerBaseData) ReqUnBindFacebook(player *Player, req *msg.ReqUnBindFacebook) {
|
||||
@ -268,10 +261,8 @@ func (p *PlayerBaseData) ReqUnBindFacebook(player *Player, req *msg.ReqUnBindFac
|
||||
p.Data.FaceBookId = ""
|
||||
BaseMod := player.PlayMod.getBaseMod()
|
||||
BaseMod.FackBookId = ""
|
||||
agent := player.GetAgentByPlayer()
|
||||
data, _ := proto.Marshal(res)
|
||||
G_getGameLogic().PackResInfo(agent, "ResUnBindFacebook", data)
|
||||
p.SaveDataFromDB("")
|
||||
player.PushAndSendClienRes(res)
|
||||
player.TeLog("platform_disconnect", map[string]interface{}{
|
||||
"platform_type": "Facebook",
|
||||
"platform_id": req.BindAccountId,
|
||||
@ -332,9 +323,7 @@ func (p *PlayerBaseData) ReqOnlyBindFacebook(player *Player, req *msg.ReqOnlyBin
|
||||
BaseMod := player.PlayMod.getBaseMod()
|
||||
BaseMod.FackBookId = req.BindAccountId
|
||||
p.SaveDataFromDB("")
|
||||
agent := player.GetAgentByPlayer()
|
||||
data, _ := proto.Marshal(res)
|
||||
G_getGameLogic().PackResInfo(agent, "ResOnlyBindFacebook", data)
|
||||
player.PushAndSendClienRes(res)
|
||||
}
|
||||
|
||||
func (p *PlayerBaseData) ReqSynGameData(player *Player, req *msg.ReqSynGameData) {
|
||||
@ -342,7 +331,7 @@ func (p *PlayerBaseData) ReqSynGameData(player *Player, req *msg.ReqSynGameData)
|
||||
sqlStr := "SELECT * FROM t_player_baseinfo WHERE FaceBookId = ?"
|
||||
sqlStruck := db.ResPlayerBaseInfo{}
|
||||
isHaveOther := false
|
||||
if err := db.SqlDb.Get(&sqlStruck, sqlStr, req.NewFBId); err != nil {
|
||||
if err := db.SqlDb.Get(&sqlStruck, sqlStr, req.NewFBId_); err != nil {
|
||||
isHaveOther = false
|
||||
} else {
|
||||
isHaveOther = true
|
||||
@ -352,13 +341,9 @@ func (p *PlayerBaseData) ReqSynGameData(player *Player, req *msg.ReqSynGameData)
|
||||
}
|
||||
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.PushAndSendClienRes(notify)
|
||||
oldPlayer.ClearData()
|
||||
G_GameLogicPtr.M_Players.Delete(sqlStruck.DwUin)
|
||||
}
|
||||
@ -392,9 +377,9 @@ func (p *PlayerBaseData) ReqSynGameData(player *Player, req *msg.ReqSynGameData)
|
||||
return
|
||||
}
|
||||
|
||||
sqlStruck.FaceBookId = req.NewFBId
|
||||
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)
|
||||
_, 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
|
||||
@ -421,9 +406,7 @@ func (p *PlayerBaseData) ReqSynGameData(player *Player, req *msg.ReqSynGameData)
|
||||
"platform_type": "facebook",
|
||||
})
|
||||
p.SaveDataFromDB("")
|
||||
agent := player.GetAgentByPlayer()
|
||||
data, _ := proto.Marshal(res)
|
||||
G_getGameLogic().PackResInfo(agent, "ResSynGameData", data)
|
||||
player.PushAndSendClienRes(res)
|
||||
}
|
||||
|
||||
func (p *PlayerBaseData) ClearData() bool {
|
||||
|
||||
@ -11,12 +11,10 @@ import (
|
||||
"server/game/mod/order"
|
||||
"server/game/mod/quest"
|
||||
GoUtil "server/game_util"
|
||||
"server/msg"
|
||||
msg "server/msg/meowmentnet"
|
||||
"sort"
|
||||
|
||||
"gitea.bywaystudios.com/pet_home/leaf/log"
|
||||
|
||||
"google.golang.org/protobuf/proto"
|
||||
)
|
||||
|
||||
type PlayerChessData struct {
|
||||
@ -35,19 +33,15 @@ func (p *PlayerChessData) SaveDataFromDB(key interface{}) bool {
|
||||
}
|
||||
|
||||
func (p *PlayerChessData) ResPlayerChessData(player *Player) {
|
||||
agent := player.GetAgentByPlayer()
|
||||
res := &p.Data
|
||||
ChessMod := player.PlayMod.getChessMod()
|
||||
res.ChessList = ChessMod.BackData().ChessList
|
||||
res.MChessData = ChessMod.ChessMap
|
||||
data, _ := proto.Marshal(res)
|
||||
G_getGameLogic().PackResInfo(agent, "ResPlayerChessData", data)
|
||||
player.PushClientRes(res)
|
||||
}
|
||||
|
||||
func (p *PlayerChessData) ResChessColorData(player *Player) {
|
||||
agent := player.GetAgentByPlayer()
|
||||
data, _ := proto.Marshal(&p.ColorData)
|
||||
G_getGameLogic().PackResInfo(agent, "ResChessColorData", data)
|
||||
player.PushClientRes(&p.ColorData)
|
||||
}
|
||||
|
||||
// 同步棋盘数据
|
||||
@ -57,7 +51,7 @@ func (p *PlayerChessData) UpdatePlayerChessData(player *Player, req *msg.UpdateP
|
||||
addChessList, addNewEmit, err := p.HandleChess(player, update.MChessHandle)
|
||||
if err != nil {
|
||||
res := &msg.ResUpdatePlayerChessData{
|
||||
Code: msg.RES_CODE_FAIL,
|
||||
Code: msg.RES_CODE_Fail,
|
||||
Msg: err.Error(),
|
||||
}
|
||||
handleStr := ""
|
||||
@ -72,12 +66,12 @@ func (p *PlayerChessData) UpdatePlayerChessData(player *Player, req *msg.UpdateP
|
||||
return err
|
||||
}
|
||||
player.PushClientRes(&msg.ResUpdatePlayerChessData{
|
||||
Code: msg.RES_CODE_SUCCESS,
|
||||
Code: msg.RES_CODE_Success,
|
||||
})
|
||||
p.Data.MChessData = update.MChessData
|
||||
if !p.checkChessEqual(player) {
|
||||
res := &msg.ResUpdatePlayerChessData{
|
||||
Code: msg.RES_CODE_FAIL,
|
||||
Code: msg.RES_CODE_Fail,
|
||||
Msg: "棋子数据不一致",
|
||||
}
|
||||
handleStr := ""
|
||||
@ -110,7 +104,7 @@ func (p *PlayerChessData) UpdateChessData(player *Player, mChessData map[string]
|
||||
p.Data.MChessData = mChessData
|
||||
if !p.checkChessEqual(player) {
|
||||
res := &msg.ResUpdatePlayerChessData{
|
||||
Code: msg.RES_CODE_FAIL,
|
||||
Code: msg.RES_CODE_Fail,
|
||||
Msg: "棋子数据不一致",
|
||||
}
|
||||
log.Debug("棋子数据不一致地图, %v---%v---%v", player.PlayMod.getChessMod().ChessMap, p.Data.MChessData, player.PlayMod.getChessMod().GetChessList())
|
||||
@ -202,7 +196,7 @@ func (p *PlayerChessData) HandleChess(player *Player, handle_list []*msg.ChessHa
|
||||
chessId := int(v.ChessId)
|
||||
emitId := int(v.Emit)
|
||||
switch v.Type {
|
||||
case msg.HANDLE_TYPE_ADD: //增加棋子
|
||||
case msg.HANDLE_TYPE_Add: //增加棋子
|
||||
err := ChessMod.AddChess(chessId)
|
||||
if err != nil {
|
||||
return nil, nil, err
|
||||
@ -222,25 +216,25 @@ func (p *PlayerChessData) HandleChess(player *Player, handle_list []*msg.ChessHa
|
||||
addNewEmit = append(addNewEmit, chessId)
|
||||
}
|
||||
player.PushClientRes(HandbookMod.BackData())
|
||||
case msg.HANDLE_TYPE_COMPOSE: //合成棋子
|
||||
newChessId, err := ChessMod.ComposeChess(chessId)
|
||||
case msg.HANDLE_TYPE_Compose: //合成棋子
|
||||
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_)
|
||||
NewChessId_Lv := mergeDataCfg.GetLvById(NewChessId_)
|
||||
TriggerList = append(TriggerList, &quest.Trigger{Label: quest.TRIGGER_LABEL_MERGELVTIME, A: []interface{}{NewChessId_Lv}})
|
||||
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: //购买棋子
|
||||
case msg.HANDLE_TYPE_Buy: //购买棋子
|
||||
loseGold, err := ChessMod.BuyChess(chessId)
|
||||
if err != nil {
|
||||
return nil, nil, err
|
||||
@ -248,7 +242,7 @@ func (p *PlayerChessData) HandleChess(player *Player, handle_list []*msg.ChessHa
|
||||
addChessList = append(addChessList, chessId)
|
||||
buyChess += loseGold
|
||||
itemList = append(itemList, &item.Item{Id: item.ITEM_STAR_ID, Num: int(-loseGold)})
|
||||
case msg.HANDLE_TYPE_SELL: //出售棋子
|
||||
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)}}
|
||||
@ -278,7 +272,7 @@ 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: //移除棋子
|
||||
case msg.HANDLE_TYPE_Remove: //移除棋子
|
||||
ChessMod.RemoveChess(chessId)
|
||||
}
|
||||
|
||||
|
||||
@ -28,7 +28,7 @@ import (
|
||||
"server/game/mod/playroom"
|
||||
"server/game/mod/quest"
|
||||
GoUtil "server/game_util"
|
||||
"server/msg"
|
||||
msg "server/msg/meowmentnet"
|
||||
"strconv"
|
||||
"sync"
|
||||
"time"
|
||||
@ -38,9 +38,8 @@ import (
|
||||
|
||||
"gitea.bywaystudios.com/pet_home/leaf/log"
|
||||
|
||||
"github.com/apache/thrift/lib/go/thrift"
|
||||
"github.com/robfig/cron/v3"
|
||||
|
||||
"google.golang.org/protobuf/proto"
|
||||
)
|
||||
|
||||
// import "reflect"
|
||||
@ -147,25 +146,25 @@ func (p *Player) SendClientRes() {
|
||||
p.Msg = make([]PlayerMsg, 0)
|
||||
}
|
||||
|
||||
func (p *Player) PushClientRes(m proto.Message) {
|
||||
func (p *Player) PushClientRes(m thrift.TStruct) {
|
||||
key := GetStructName(m)
|
||||
buff, _ := proto.Marshal(m)
|
||||
data := GoUtil.Marshal(m)
|
||||
p.Msg = append(p.Msg, PlayerMsg{
|
||||
F: key,
|
||||
B: buff,
|
||||
B: data,
|
||||
})
|
||||
}
|
||||
|
||||
func (p *Player) PushAndSendClienRes(m proto.Message) {
|
||||
func (p *Player) PushAndSendClienRes(m thrift.TStruct) {
|
||||
key := GetStructName(m)
|
||||
buff, _ := proto.Marshal(m)
|
||||
G_GameLogicPtr.PackResInfo(p.GetAgent(), key, buff)
|
||||
data := GoUtil.Marshal(m)
|
||||
G_GameLogicPtr.PackResInfo(p.GetAgent(), key, data)
|
||||
}
|
||||
|
||||
func (p *Player) SendErrClienRes(m proto.Message) {
|
||||
func (p *Player) SendErrClienRes(m thrift.TStruct) {
|
||||
key := GetStructName(m)
|
||||
buff, _ := proto.Marshal(m)
|
||||
G_GameLogicPtr.PackResInfo(p.GetAgent(), key, buff)
|
||||
data := GoUtil.Marshal(m)
|
||||
G_GameLogicPtr.PackResInfo(p.GetAgent(), key, data)
|
||||
}
|
||||
|
||||
func (p *Player) QuestTrigger(tr *quest.Trigger) {
|
||||
|
||||
@ -2,16 +2,22 @@ package game
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"reflect"
|
||||
GoUtil "server/game_util"
|
||||
"server/msg"
|
||||
"sync"
|
||||
|
||||
thrift "github.com/apache/thrift/lib/go/thrift"
|
||||
"google.golang.org/protobuf/proto"
|
||||
"google.golang.org/protobuf/reflect/protoreflect"
|
||||
"google.golang.org/protobuf/reflect/protoregistry"
|
||||
)
|
||||
|
||||
var (
|
||||
protoMessageTypeCacheOnce sync.Once
|
||||
protoMessageTypeByName sync.Map
|
||||
protoMessageTypeCacheOnce sync.Once
|
||||
protoMessageTypeByName sync.Map
|
||||
thriftMessageTypeCacheOnce sync.Once
|
||||
thriftMessageTypeByName sync.Map
|
||||
)
|
||||
|
||||
func buildProtoMessageTypeCache() {
|
||||
@ -26,6 +32,27 @@ func buildProtoMessageTypeCache() {
|
||||
})
|
||||
}
|
||||
|
||||
func registerThriftType(msgType reflect.Type) {
|
||||
if msgType == nil || msgType.Kind() != reflect.Ptr {
|
||||
return
|
||||
}
|
||||
elemType := msgType.Elem()
|
||||
if elemType.Name() != "" {
|
||||
thriftMessageTypeByName.Store(elemType.Name(), msgType)
|
||||
}
|
||||
thriftMessageTypeByName.Store(msgType.String(), msgType)
|
||||
thriftMessageTypeByName.Store(elemType.String(), msgType)
|
||||
if elemType.PkgPath() != "" && elemType.Name() != "" {
|
||||
thriftMessageTypeByName.Store(elemType.PkgPath()+"."+elemType.Name(), msgType)
|
||||
}
|
||||
}
|
||||
|
||||
func buildThriftMessageTypeCache() {
|
||||
msg.Processor.Range(func(_ uint16, msgType reflect.Type) {
|
||||
registerThriftType(msgType)
|
||||
})
|
||||
}
|
||||
|
||||
func FindProtoMessageTypeByName(name string) (protoreflect.MessageType, error) {
|
||||
messageType, err := protoregistry.GlobalTypes.FindMessageByName(protoreflect.FullName(name))
|
||||
if err == nil {
|
||||
@ -40,6 +67,15 @@ func FindProtoMessageTypeByName(name string) (protoreflect.MessageType, error) {
|
||||
return nil, fmt.Errorf("protobuf message type not found: %s", name)
|
||||
}
|
||||
|
||||
func FindThriftMessageTypeByName(name string) (reflect.Type, error) {
|
||||
thriftMessageTypeCacheOnce.Do(buildThriftMessageTypeCache)
|
||||
if cachedType, ok := thriftMessageTypeByName.Load(name); ok {
|
||||
return cachedType.(reflect.Type), nil
|
||||
}
|
||||
|
||||
return nil, fmt.Errorf("thrift message type not found: %s", name)
|
||||
}
|
||||
|
||||
func NewProtoMessageByName(name string) (proto.Message, error) {
|
||||
messageType, err := FindProtoMessageTypeByName(name)
|
||||
if err != nil {
|
||||
@ -49,6 +85,21 @@ func NewProtoMessageByName(name string) (proto.Message, error) {
|
||||
return messageType.New().Interface(), nil
|
||||
}
|
||||
|
||||
func NewThriftMessageByName(name string) (thrift.TStruct, error) {
|
||||
messageType, err := FindThriftMessageTypeByName(name)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
message := reflect.New(messageType.Elem()).Interface()
|
||||
thriftMessage, ok := message.(thrift.TStruct)
|
||||
if !ok {
|
||||
return nil, fmt.Errorf("thrift message type %s does not implement thrift.TStruct", messageType)
|
||||
}
|
||||
|
||||
return thriftMessage, nil
|
||||
}
|
||||
|
||||
func UnmarshalProtoMessageByName(name string, data []byte) (proto.Message, error) {
|
||||
message, err := NewProtoMessageByName(name)
|
||||
if err != nil {
|
||||
@ -61,3 +112,14 @@ func UnmarshalProtoMessageByName(name string, data []byte) (proto.Message, error
|
||||
|
||||
return message, nil
|
||||
}
|
||||
|
||||
func UnmarshalThriftMessageByName(name string, data []byte) (thrift.TStruct, error) {
|
||||
message, err := NewThriftMessageByName(name)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if err := GoUtil.Unmarshal(data, message); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return message, nil
|
||||
}
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@ -11,7 +11,7 @@ import (
|
||||
"server/game/mod/item"
|
||||
MsqMod "server/game/mod/msg"
|
||||
GoUtil "server/game_util"
|
||||
"server/msg"
|
||||
msg "server/msg/meowmentnet"
|
||||
"strconv"
|
||||
)
|
||||
|
||||
@ -100,14 +100,14 @@ func ReqApplyFriend(player *Player, req *msg.ReqApplyFriend) error {
|
||||
FriendMod := player.PlayMod.getFriendMod()
|
||||
if Uid == int(player.M_DwUin) {
|
||||
player.SendErrClienRes(&msg.ResApplyFriend{
|
||||
Code: msg.RES_CODE_FAIL,
|
||||
Code: msg.RES_CODE_Fail,
|
||||
Msg: "cannot apply yourself",
|
||||
})
|
||||
return fmt.Errorf("cannot apply yourself")
|
||||
}
|
||||
if FriendMod.CheckFriend(Uid) {
|
||||
player.SendErrClienRes(&msg.ResApplyFriend{
|
||||
Code: msg.RES_CODE_FAIL,
|
||||
Code: msg.RES_CODE_Fail,
|
||||
Msg: "already friend",
|
||||
})
|
||||
return fmt.Errorf("already friend")
|
||||
@ -115,7 +115,7 @@ func ReqApplyFriend(player *Player, req *msg.ReqApplyFriend) error {
|
||||
// 好友人数到达上限(2000人)时,玩家将无法再发送好友申请
|
||||
if FriendMod.GetFriendLen() >= friendCfg.GetFriendLimitNum() {
|
||||
player.SendErrClienRes(&msg.ResApplyFriend{
|
||||
Code: msg.RES_CODE_FAIL,
|
||||
Code: msg.RES_CODE_Fail,
|
||||
Msg: "friend list full",
|
||||
})
|
||||
return fmt.Errorf("friend list full")
|
||||
@ -124,7 +124,7 @@ func ReqApplyFriend(player *Player, req *msg.ReqApplyFriend) error {
|
||||
sendApplyTime := FriendMod.GetSendApplyTime(Uid)
|
||||
if sendApplyTime != 0 && GoUtil.Now()-sendApplyTime < oneday {
|
||||
player.PushClientRes(&msg.ResApplyFriend{
|
||||
Code: msg.RES_CODE_FAIL,
|
||||
Code: msg.RES_CODE_Fail,
|
||||
Uid: req.Uid,
|
||||
Msg: "already applied",
|
||||
})
|
||||
@ -136,7 +136,7 @@ func ReqApplyFriend(player *Player, req *msg.ReqApplyFriend) error {
|
||||
Items, err := FriendMod.GetSponsorReward()
|
||||
if err != nil {
|
||||
player.SendErrClienRes(&msg.ResApplyFriend{
|
||||
Code: msg.RES_CODE_FAIL,
|
||||
Code: msg.RES_CODE_Fail,
|
||||
Msg: err.Error(),
|
||||
})
|
||||
return err
|
||||
@ -146,7 +146,7 @@ func ReqApplyFriend(player *Player, req *msg.ReqApplyFriend) error {
|
||||
err = player.HandleItem(Items, msg.ITEM_POP_LABEL_ApplyFriendSponsor.String())
|
||||
if err != nil {
|
||||
player.SendErrClienRes(&msg.ResApplyFriend{
|
||||
Code: msg.RES_CODE_FAIL,
|
||||
Code: msg.RES_CODE_Fail,
|
||||
Msg: err.Error(),
|
||||
})
|
||||
return err
|
||||
@ -176,7 +176,7 @@ func ReqApplyFriend(player *Player, req *msg.ReqApplyFriend) error {
|
||||
}
|
||||
FriendMgrSend(m)
|
||||
player.PushClientRes(&msg.ResApplyFriend{
|
||||
Code: msg.RES_CODE_SUCCESS,
|
||||
Code: msg.RES_CODE_Success,
|
||||
Uid: req.Uid,
|
||||
})
|
||||
return nil
|
||||
@ -188,7 +188,7 @@ func ReqAgreeFriend(player *Player, req *msg.ReqAgreeFriend) error {
|
||||
FriendMod := player.PlayMod.getFriendMod()
|
||||
if !FriendMod.CheckApply(Uid) {
|
||||
player.SendErrClienRes(&msg.ResAgreeFriend{
|
||||
Code: msg.RES_CODE_FAIL,
|
||||
Code: msg.RES_CODE_Fail,
|
||||
Msg: "apply uid not exist",
|
||||
})
|
||||
return fmt.Errorf("apply uid not exist")
|
||||
@ -196,7 +196,7 @@ func ReqAgreeFriend(player *Player, req *msg.ReqAgreeFriend) error {
|
||||
// 好友人数到达上限(2000人)时,玩家将无法再同意好友申请
|
||||
if FriendMod.GetFriendLen() >= friendCfg.GetFriendLimitNum() {
|
||||
player.SendErrClienRes(&msg.ResAgreeFriend{
|
||||
Code: msg.RES_CODE_FAIL,
|
||||
Code: msg.RES_CODE_Fail,
|
||||
Msg: "friend list full",
|
||||
})
|
||||
return fmt.Errorf("friend list full")
|
||||
@ -207,7 +207,7 @@ func ReqAgreeFriend(player *Player, req *msg.ReqAgreeFriend) error {
|
||||
}
|
||||
FriendMod.AddFriend(Uid)
|
||||
player.PushClientRes(&msg.ResAgreeFriend{
|
||||
Code: msg.RES_CODE_SUCCESS,
|
||||
Code: msg.RES_CODE_Success,
|
||||
Uid: req.Uid,
|
||||
Player: G_GameLogicPtr.GetResSimplePlayerByUid(int(req.Uid)),
|
||||
})
|
||||
@ -243,7 +243,7 @@ func ReqDelFriend(player *Player, req *msg.ReqDelFriend) error {
|
||||
FriendMod.DelFriend(Uid)
|
||||
player.PlayMod.save()
|
||||
player.PushClientRes(&msg.ResDelFriend{
|
||||
Code: msg.RES_CODE_SUCCESS,
|
||||
Code: msg.RES_CODE_Success,
|
||||
Uid: req.Uid,
|
||||
})
|
||||
player.AddLog(Uid, friend.LOG_TYPE_FRIEND_DELETE, "", GoUtil.Now())
|
||||
@ -261,7 +261,7 @@ func ReqRefuseFriend(player *Player, req *msg.ReqRefuseFriend) error {
|
||||
FriendMod.RefuseApply(Uid)
|
||||
player.PlayMod.save()
|
||||
player.PushClientRes(&msg.ResRefuseFriend{
|
||||
Code: msg.RES_CODE_SUCCESS,
|
||||
Code: msg.RES_CODE_Success,
|
||||
Uid: req.Uid,
|
||||
})
|
||||
now := GoUtil.Now()
|
||||
@ -302,7 +302,7 @@ func ReqFriendTLUpvote(player *Player, req *msg.ReqFriendTLUpvote) error {
|
||||
Items, FUid, err := FriendMod.Upvote(int(req.Id))
|
||||
if err != nil {
|
||||
player.SendErrClienRes(&msg.ResFriendTLUpvote{
|
||||
Code: msg.RES_CODE_FAIL,
|
||||
Code: msg.RES_CODE_Fail,
|
||||
Msg: err.Error(),
|
||||
})
|
||||
return err
|
||||
@ -310,7 +310,7 @@ func ReqFriendTLUpvote(player *Player, req *msg.ReqFriendTLUpvote) error {
|
||||
err = player.HandleItem(Items, msg.ITEM_POP_LABEL_TLUpvote.String())
|
||||
if err != nil {
|
||||
player.SendErrClienRes(&msg.ResFriendTLUpvote{
|
||||
Code: msg.RES_CODE_FAIL,
|
||||
Code: msg.RES_CODE_Fail,
|
||||
Msg: err.Error(),
|
||||
})
|
||||
return err
|
||||
@ -329,7 +329,7 @@ func ReqFriendTLUpvote(player *Player, req *msg.ReqFriendTLUpvote) error {
|
||||
FriendMgrSend(m)
|
||||
player.PlayMod.save()
|
||||
player.PushClientRes(&msg.ResFriendTLUpvote{
|
||||
Code: msg.RES_CODE_SUCCESS,
|
||||
Code: msg.RES_CODE_Success,
|
||||
Id: req.Id,
|
||||
})
|
||||
player.TeLog("friend_upvote", map[string]interface{}{
|
||||
@ -343,7 +343,7 @@ func ReqFriendTReward(player *Player, req *msg.ReqFriendTReward) error {
|
||||
Items, err := FriendMod.GetReward(int(req.Id))
|
||||
if err != nil {
|
||||
player.SendErrClienRes(&msg.ResFriendTReward{
|
||||
Code: msg.RES_CODE_FAIL,
|
||||
Code: msg.RES_CODE_Fail,
|
||||
Msg: err.Error(),
|
||||
})
|
||||
return err
|
||||
@ -351,14 +351,14 @@ func ReqFriendTReward(player *Player, req *msg.ReqFriendTReward) error {
|
||||
err = player.HandleItem(Items, msg.ITEM_POP_LABEL_FriendTReward.String())
|
||||
if err != nil {
|
||||
player.SendErrClienRes(&msg.ResFriendTReward{
|
||||
Code: msg.RES_CODE_FAIL,
|
||||
Code: msg.RES_CODE_Fail,
|
||||
Msg: err.Error(),
|
||||
})
|
||||
return err
|
||||
}
|
||||
player.PlayMod.save()
|
||||
player.PushClientRes(&msg.ResFriendTReward{
|
||||
Code: msg.RES_CODE_SUCCESS,
|
||||
Code: msg.RES_CODE_Success,
|
||||
Id: req.Id,
|
||||
})
|
||||
return nil
|
||||
@ -369,12 +369,12 @@ func ReqFriendReplyHandle(player *Player, req *msg.ReqFriendReplyHandle) error {
|
||||
ReplyInfo := FriendMod.ReplyFriend(int(req.LogId))
|
||||
if ReplyInfo == nil {
|
||||
player.SendErrClienRes(&msg.ResFriendReplyHandle{
|
||||
Code: msg.RES_CODE_FAIL,
|
||||
Code: msg.RES_CODE_Fail,
|
||||
Msg: "reply info not exist",
|
||||
})
|
||||
return fmt.Errorf("reply info not exist")
|
||||
}
|
||||
ErrType := msg.FRIEND_REPLY_HANDLE_ERR_TYPE_NONE
|
||||
ErrType := msg.FRIEND_REPLY_HANDLE_ERR_TYPE_None
|
||||
now := GoUtil.Now()
|
||||
items := make([]*item.Item, 0)
|
||||
if ReplyInfo.Type == friend.REPLY_TYPE_GREETING_Get {
|
||||
@ -439,7 +439,7 @@ func ReqFriendReplyHandle(player *Player, req *msg.ReqFriendReplyHandle) error {
|
||||
}
|
||||
player.CatnipBackData()
|
||||
} else {
|
||||
ErrType = msg.FRIEND_REPLY_HANDLE_ERR_TYPE_CATNIP
|
||||
ErrType = msg.FRIEND_REPLY_HANDLE_ERR_TYPE_Catnip
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -447,7 +447,7 @@ func ReqFriendReplyHandle(player *Player, req *msg.ReqFriendReplyHandle) error {
|
||||
err := player.HandleItem(items, msg.ITEM_POP_LABEL_FriendReplyHandle.String())
|
||||
if err != nil {
|
||||
player.SendErrClienRes(&msg.ResFriendReplyHandle{
|
||||
Code: msg.RES_CODE_FAIL,
|
||||
Code: msg.RES_CODE_Fail,
|
||||
Msg: err.Error(),
|
||||
})
|
||||
return err
|
||||
@ -455,7 +455,7 @@ func ReqFriendReplyHandle(player *Player, req *msg.ReqFriendReplyHandle) error {
|
||||
}
|
||||
player.FriendLogBackData()
|
||||
player.PushClientRes(&msg.ResFriendReplyHandle{
|
||||
Code: msg.RES_CODE_SUCCESS,
|
||||
Code: msg.RES_CODE_Success,
|
||||
LogId: req.LogId,
|
||||
Type: req.Type,
|
||||
ErrType: ErrType,
|
||||
@ -466,7 +466,7 @@ func ReqFriendReplyHandle(player *Player, req *msg.ReqFriendReplyHandle) error {
|
||||
func ReqFriendByCode(player *Player, req *msg.ReqFriendByCode) error {
|
||||
if req.Code == "" {
|
||||
player.SendErrClienRes(&msg.ResFriendByCode{
|
||||
Code: msg.RES_CODE_FAIL,
|
||||
Code: msg.RES_CODE_Fail,
|
||||
Msg: "code is empty",
|
||||
})
|
||||
return fmt.Errorf("code is empty")
|
||||
@ -474,7 +474,7 @@ func ReqFriendByCode(player *Player, req *msg.ReqFriendByCode) error {
|
||||
CodeNum := GoUtil.ParseUniqueStringToInt(req.Code)
|
||||
if CodeNum <= 0 {
|
||||
player.SendErrClienRes(&msg.ResFriendByCode{
|
||||
Code: msg.RES_CODE_FAIL,
|
||||
Code: msg.RES_CODE_Fail,
|
||||
Msg: "code is invalid",
|
||||
})
|
||||
return fmt.Errorf("code is invalid")
|
||||
@ -482,7 +482,7 @@ func ReqFriendByCode(player *Player, req *msg.ReqFriendByCode) error {
|
||||
Uid := int64(CodeNum) + int64(100000) + int64(conf.Server.AppID*100000000)
|
||||
if Uid == player.M_DwUin {
|
||||
player.SendErrClienRes(&msg.ResFriendByCode{
|
||||
Code: msg.RES_CODE_FAIL,
|
||||
Code: msg.RES_CODE_Fail,
|
||||
Msg: "can not add yourself",
|
||||
})
|
||||
return fmt.Errorf("can not add yourself")
|
||||
@ -491,13 +491,13 @@ func ReqFriendByCode(player *Player, req *msg.ReqFriendByCode) error {
|
||||
PlayerSimpleData := G_GameLogicPtr.GetResSimplePlayerByUid(int(Uid))
|
||||
if PlayerSimpleData == nil {
|
||||
player.SendErrClienRes(&msg.ResFriendByCode{
|
||||
Code: msg.RES_CODE_FAIL,
|
||||
Code: msg.RES_CODE_Fail,
|
||||
Msg: "player not exist",
|
||||
})
|
||||
return fmt.Errorf("player not exist")
|
||||
}
|
||||
player.PushClientRes(&msg.ResFriendByCode{
|
||||
Code: msg.RES_CODE_SUCCESS,
|
||||
Code: msg.RES_CODE_Success,
|
||||
Player: PlayerSimpleData,
|
||||
})
|
||||
return nil
|
||||
@ -508,7 +508,7 @@ func ReqAddNpc(player *Player, req *msg.ReqAddNpc) error {
|
||||
err := FriendMod.SetNpc(int(req.NpcId))
|
||||
if err != nil {
|
||||
player.SendErrClienRes(&msg.ResAddNpc{
|
||||
Code: msg.RES_CODE_FAIL,
|
||||
Code: msg.RES_CODE_Fail,
|
||||
Msg: err.Error(),
|
||||
})
|
||||
return err
|
||||
@ -526,7 +526,7 @@ func ReqAddNpc(player *Player, req *msg.ReqAddNpc) error {
|
||||
FriendMod.AddReplyInfo(int(req.NpcId), friend.REPLY_TYPE_GREETING_Get, "", GoUtil.Now()+oneday, nil)
|
||||
player.AddLog(int(req.NpcId), friend.LOG_TYPE_FRIEND_BECOME_NPC, GoUtil.String(req.NpcId), GoUtil.Now())
|
||||
player.PushClientRes(&msg.ResAddNpc{
|
||||
Code: msg.RES_CODE_SUCCESS,
|
||||
Code: msg.RES_CODE_Success,
|
||||
NpcId: req.NpcId,
|
||||
})
|
||||
return nil
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
package game
|
||||
|
||||
import (
|
||||
"server/msg"
|
||||
msg "server/msg/meowmentnet"
|
||||
)
|
||||
|
||||
func ReqPetFur(player *Player, req *msg.ReqPetFur) error {
|
||||
|
||||
@ -17,7 +17,7 @@ import (
|
||||
"server/game/mod/order"
|
||||
"server/game/mod/quest"
|
||||
GoUtil "server/game_util"
|
||||
"server/msg"
|
||||
msg "server/msg/meowmentnet"
|
||||
"sort"
|
||||
|
||||
"gitea.bywaystudios.com/pet_home/leaf/log"
|
||||
@ -47,14 +47,14 @@ func (player *Player) MailTrigger(Tr *quest.Trigger) bool {
|
||||
tr := false
|
||||
for _, v := range t {
|
||||
if player.checkTriggerCondition(v.Trigger) {
|
||||
Title := languageCfg.GetLanguage(msg.LANG_TYPE_LANG_CN, v.Title)
|
||||
Content := languageCfg.GetLanguage(msg.LANG_TYPE_LANG_CN, v.Content)
|
||||
TitleEn := languageCfg.GetLanguage(msg.LANG_TYPE_LANG_EN, v.Title)
|
||||
ContentEn := languageCfg.GetLanguage(msg.LANG_TYPE_LANG_EN, v.Content)
|
||||
TitlePtBr := languageCfg.GetLanguage(msg.LANG_TYPE_LANG_PTBR, v.Title)
|
||||
ContentPtBr := languageCfg.GetLanguage(msg.LANG_TYPE_LANG_PTBR, v.Content)
|
||||
TitleEsLatam := languageCfg.GetLanguage(msg.LANG_TYPE_LANG_ES_LATAM, v.Title)
|
||||
ContentEsLatam := languageCfg.GetLanguage(msg.LANG_TYPE_LANG_ES_LATAM, v.Content)
|
||||
Title := languageCfg.GetLanguage(msg.LANG_TYPE_LangCn, v.Title)
|
||||
Content := languageCfg.GetLanguage(msg.LANG_TYPE_LangCn, v.Content)
|
||||
TitleEn := languageCfg.GetLanguage(msg.LANG_TYPE_LangEn, v.Title)
|
||||
ContentEn := languageCfg.GetLanguage(msg.LANG_TYPE_LangEn, v.Content)
|
||||
TitlePtBr := languageCfg.GetLanguage(msg.LANG_TYPE_LangPtbr, v.Title)
|
||||
ContentPtBr := languageCfg.GetLanguage(msg.LANG_TYPE_LangPtbr, v.Content)
|
||||
TitleEsLatam := languageCfg.GetLanguage(msg.LANG_TYPE_LangEsLatam, v.Title)
|
||||
ContentEsLatam := languageCfg.GetLanguage(msg.LANG_TYPE_LangEsLatam, v.Content)
|
||||
MailMod.SendMail(&mail.MailStruct{
|
||||
Title: Title,
|
||||
SubTitle: "",
|
||||
@ -102,7 +102,7 @@ func (player *Player) TriggerShippingOrderOrigin(req *msg.ReqShippingOrder) {
|
||||
if Status == MergeConst.ORDER_STATUS_CANCEL { // 取消支付
|
||||
player.CancelOrder(OrderSn)
|
||||
player.PushClientRes(&msg.ResShippingOrder{
|
||||
Code: msg.RES_CODE_SUCCESS,
|
||||
Code: msg.RES_CODE_Success,
|
||||
Msg: "cancel success",
|
||||
})
|
||||
return
|
||||
@ -161,7 +161,7 @@ func (player *Player) TriggerShippingOrderOrigin(req *msg.ReqShippingOrder) {
|
||||
}
|
||||
player.TeLog("pay", orderDataMap)
|
||||
player.PushClientRes(&msg.ResShippingOrder{
|
||||
Code: msg.RES_CODE_SUCCESS,
|
||||
Code: msg.RES_CODE_Success,
|
||||
})
|
||||
player.SendClientRes()
|
||||
}
|
||||
|
||||
@ -11,7 +11,7 @@ import (
|
||||
"server/game/mod/item"
|
||||
"server/game/mod/order"
|
||||
"server/game/mod/quest"
|
||||
"server/msg"
|
||||
msg "server/msg/meowmentnet"
|
||||
"time"
|
||||
|
||||
"gitea.bywaystudios.com/pet_home/leaf/log"
|
||||
|
||||
@ -2,6 +2,7 @@ package GoUtil
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"context"
|
||||
"crypto/aes"
|
||||
"crypto/cipher"
|
||||
"crypto/md5"
|
||||
@ -26,6 +27,7 @@ import (
|
||||
|
||||
"gitea.bywaystudios.com/pet_home/leaf/log"
|
||||
|
||||
"github.com/apache/thrift/lib/go/thrift"
|
||||
"github.com/oschwald/geoip2-golang"
|
||||
)
|
||||
|
||||
@ -965,3 +967,35 @@ func FormatStarItemNum(num, factor int) int {
|
||||
Num := math.Round(float64(num) * float64(factor) / 100)
|
||||
return int(Num) / 5 * 5
|
||||
}
|
||||
|
||||
func newCompactSerializer() *thrift.TSerializer {
|
||||
transport := thrift.NewTMemoryBufferLen(1024)
|
||||
protocol := thrift.NewTCompactProtocolFactoryConf(nil).GetProtocol(transport)
|
||||
return &thrift.TSerializer{Transport: transport, Protocol: protocol}
|
||||
}
|
||||
|
||||
func newCompactDeserializer() *thrift.TDeserializer {
|
||||
transport := thrift.NewTMemoryBufferLen(1024)
|
||||
protocol := thrift.NewTCompactProtocolFactoryConf(nil).GetProtocol(transport)
|
||||
return &thrift.TDeserializer{Transport: transport, Protocol: protocol}
|
||||
}
|
||||
|
||||
func Marshal(m thrift.TStruct) []byte {
|
||||
serializer := newCompactSerializer()
|
||||
data, err := serializer.Write(context.Background(), m)
|
||||
if err != nil {
|
||||
log.Debug("thrift Marshal error:", err)
|
||||
return nil
|
||||
}
|
||||
return data
|
||||
}
|
||||
|
||||
func Unmarshal(data []byte, m thrift.TStruct) error {
|
||||
deserializer := newCompactDeserializer()
|
||||
err := deserializer.Read(context.Background(), m, data)
|
||||
if err != nil {
|
||||
log.Debug("thrift Unmarshal error:", err)
|
||||
return err
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
@ -2,13 +2,14 @@ package gate
|
||||
|
||||
import (
|
||||
"server/game"
|
||||
"server/msg"
|
||||
msg "server/msg"
|
||||
"server/msg/meowmentnet"
|
||||
)
|
||||
|
||||
func init() {
|
||||
// 这里指定消息 Hello 路由到 game 模块
|
||||
// 模块间使用 ChanRPC 通讯,消息路由也不例外
|
||||
msg.Processor.SetRouter(&msg.ClientReq{}, game.ChanRPC)
|
||||
msg.Processor.SetRouter(&msg.ClientRes{}, game.ChanRPC)
|
||||
msg.Processor.SetRouter(&msg.AdminReq{}, game.ChanRPC)
|
||||
msg.Processor.SetRouter(&meowmentnet.ClientReq{}, game.ChanRPC)
|
||||
msg.Processor.SetRouter(&meowmentnet.ClientRes{}, game.ChanRPC)
|
||||
msg.Processor.SetRouter(&meowmentnet.AdminReq{}, game.ChanRPC)
|
||||
}
|
||||
|
||||
@ -4,7 +4,7 @@ go 1.25.5
|
||||
|
||||
require (
|
||||
gitea.bywaystudios.com/pet_home/galog v0.0.0-20260313081346-5689712d8f74
|
||||
gitea.bywaystudios.com/pet_home/leaf v0.0.0-20260313092348-57448df16cd8
|
||||
gitea.bywaystudios.com/pet_home/leaf v0.0.0-20260409104501-67c163ff07c2
|
||||
gitea.bywaystudios.com/pet_home/thinkdata v0.0.0-20260401014936-68c5994be89c
|
||||
github.com/alibabacloud-go/cloudauth-20190307/v4 v4.9.2
|
||||
github.com/alibabacloud-go/darabonba-openapi/v2 v2.0.11
|
||||
@ -57,6 +57,7 @@ require (
|
||||
|
||||
require (
|
||||
filippo.io/edwards25519 v1.1.0 // indirect
|
||||
github.com/apache/thrift v0.22.0 // indirect
|
||||
github.com/cespare/xxhash/v2 v2.3.0 // indirect
|
||||
github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f // indirect
|
||||
github.com/google/uuid v1.6.0 // indirect
|
||||
|
||||
@ -5,6 +5,10 @@ gitea.bywaystudios.com/pet_home/galog v0.0.0-20260313081346-5689712d8f74 h1:Z2tn
|
||||
gitea.bywaystudios.com/pet_home/galog v0.0.0-20260313081346-5689712d8f74/go.mod h1:Sj45tVreK2AFDH+k03Q0uy8paaF6TINOT6vqWIFG4sg=
|
||||
gitea.bywaystudios.com/pet_home/leaf v0.0.0-20260313092348-57448df16cd8 h1:qs0cKcOE/uI8ABumwubKR9TKMFa3u9jUR9hQ4SThq4Q=
|
||||
gitea.bywaystudios.com/pet_home/leaf v0.0.0-20260313092348-57448df16cd8/go.mod h1:9rWUv5SNj6indAuM2dAT76uO34a/C2FGptEDKkyg21U=
|
||||
gitea.bywaystudios.com/pet_home/leaf v0.0.0-20260409020159-53d700ade952 h1:z3vtUEQTdzm5LqH9jwLaLUwU5WYwobwvSpboUu8kpSY=
|
||||
gitea.bywaystudios.com/pet_home/leaf v0.0.0-20260409020159-53d700ade952/go.mod h1:v2aZGGOhLPUWCtgtwMztLucxBmk85qsnOuR8X+wDmdQ=
|
||||
gitea.bywaystudios.com/pet_home/leaf v0.0.0-20260409104501-67c163ff07c2 h1:EnuWeend4oN/VAjzHcZYibQg5Ksuw9UTG0XJGEJzL6M=
|
||||
gitea.bywaystudios.com/pet_home/leaf v0.0.0-20260409104501-67c163ff07c2/go.mod h1:v2aZGGOhLPUWCtgtwMztLucxBmk85qsnOuR8X+wDmdQ=
|
||||
gitea.bywaystudios.com/pet_home/thinkdata v0.0.0-20260401014936-68c5994be89c h1:FjL8acgHxp1CMi+JSMwD1GXWIe7WIo1h8LoFVaLI87A=
|
||||
gitea.bywaystudios.com/pet_home/thinkdata v0.0.0-20260401014936-68c5994be89c/go.mod h1:VNNASaG7YCk+7We0m+SQ6/fMacEjx+TTFvcS/1Rp+6Q=
|
||||
github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
|
||||
@ -79,6 +83,8 @@ 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=
|
||||
|
||||
@ -1,14 +1,16 @@
|
||||
package msg
|
||||
|
||||
import (
|
||||
"gitea.bywaystudios.com/pet_home/leaf/network/protobuf"
|
||||
"server/msg/meowmentnet"
|
||||
|
||||
"gitea.bywaystudios.com/pet_home/leaf/network/thrift"
|
||||
)
|
||||
|
||||
var Processor = protobuf.NewProcessor()
|
||||
var Processor = thrift.NewProcessor()
|
||||
|
||||
func init() {
|
||||
Processor.Register(&ClientReq{})
|
||||
Processor.Register(&ClientRes{})
|
||||
Processor.Register(&AdminReq{})
|
||||
Processor.Register(&AdminRes{})
|
||||
Processor.Register(&meowmentnet.ClientReq{})
|
||||
Processor.Register(&meowmentnet.ClientRes{})
|
||||
Processor.Register(&meowmentnet.AdminReq{})
|
||||
Processor.Register(&meowmentnet.AdminRes{})
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user