Merge branch 'sdk' into online
This commit is contained in:
commit
48f6ab1e1e
@ -98,6 +98,6 @@ const G_Champion_People_Cnt = 50
|
|||||||
const (
|
const (
|
||||||
ORDER_STATUS_IDLE = 0 // 订单未完成
|
ORDER_STATUS_IDLE = 0 // 订单未完成
|
||||||
ORDER_STATUS_PAY = 1 // 订单已支付
|
ORDER_STATUS_PAY = 1 // 订单已支付
|
||||||
ORDER_STATUS_CANCLE = 2 // 订单取消
|
ORDER_STATUS_CANCEL = 2 // 订单取消
|
||||||
ORDER_STATUS_SHIP = 3 // 订单已发货
|
ORDER_STATUS_SHIP = 3 // 订单已发货
|
||||||
)
|
)
|
||||||
|
|||||||
@ -45,6 +45,7 @@ var Server struct {
|
|||||||
RemoteAddr string
|
RemoteAddr string
|
||||||
GameConfPath string
|
GameConfPath string
|
||||||
TELOGDIR string
|
TELOGDIR string
|
||||||
|
GoogleVerify bool
|
||||||
}
|
}
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
|
|||||||
@ -125,3 +125,11 @@ func GetDecorateList() []int {
|
|||||||
}
|
}
|
||||||
return r
|
return r
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func GetBuyItem(Id int) ([]*item.Item, []*item.Item) {
|
||||||
|
data, err := gamedata.GetDataByIntKey(CFG_PLAYROOM_MOOD, Id)
|
||||||
|
if err != nil {
|
||||||
|
return nil, nil
|
||||||
|
}
|
||||||
|
return gamedata.GetItemList(data, "Cost2"), gamedata.GetItemList(data, "Buy")
|
||||||
|
}
|
||||||
|
|||||||
@ -613,7 +613,7 @@ func (ad *GameLogic) RegisterNetWorkFunc() {
|
|||||||
RegisterMsgProcessFunc("ReqRemoveAd", ReqRemoveAdFunc)
|
RegisterMsgProcessFunc("ReqRemoveAd", ReqRemoveAdFunc)
|
||||||
RegisterMsgProcessFunc("ReqPlayerBriefProfileData", ReqPlayerBriefProfileDataFunc)
|
RegisterMsgProcessFunc("ReqPlayerBriefProfileData", ReqPlayerBriefProfileDataFunc)
|
||||||
RegisterMsgProcessFunc("ReqOfflineReconnect", ReqOfflineReconnectFunc)
|
RegisterMsgProcessFunc("ReqOfflineReconnect", ReqOfflineReconnectFunc)
|
||||||
|
RegisterMsgProcessFunc("ReqPlayerAsset", ReqPlayerAsset)
|
||||||
// 玩家
|
// 玩家
|
||||||
RegisterMsgProcessFunc("ReqUserInfo", ReqUserInfo)
|
RegisterMsgProcessFunc("ReqUserInfo", ReqUserInfo)
|
||||||
RegisterMsgProcessFunc("ReqSetName", ReqSetName) // 设置名字
|
RegisterMsgProcessFunc("ReqSetName", ReqSetName) // 设置名字
|
||||||
@ -778,6 +778,7 @@ func (ad *GameLogic) RegisterNetWorkFunc() {
|
|||||||
RegisterMsgProcessFunc("ReqFriendTreasureStart", ReqFriendTreasureStart) // 开始游戏
|
RegisterMsgProcessFunc("ReqFriendTreasureStart", ReqFriendTreasureStart) // 开始游戏
|
||||||
RegisterMsgProcessFunc("ReqFriendTreasureFilp", ReqFriendTreasureFilp) // 翻牌
|
RegisterMsgProcessFunc("ReqFriendTreasureFilp", ReqFriendTreasureFilp) // 翻牌
|
||||||
RegisterMsgProcessFunc("ReqFriendTreasureEnd", ReqFriendTreasureEnd) // 结束游戏
|
RegisterMsgProcessFunc("ReqFriendTreasureEnd", ReqFriendTreasureEnd) // 结束游戏
|
||||||
|
RegisterMsgProcessFunc("ReqPlayroomBuyItem", ReqPlayroomBuyItem) // 购买playroom物品
|
||||||
|
|
||||||
RegisterMsgProcessFunc("ReqKafkaLog", ReqKafkaLog) // 客户端日志
|
RegisterMsgProcessFunc("ReqKafkaLog", ReqKafkaLog) // 客户端日志
|
||||||
RegisterMsgProcessFunc("ReqCreateOrderSn", ReqCreateOrderSn) // 创建订单号
|
RegisterMsgProcessFunc("ReqCreateOrderSn", ReqCreateOrderSn) // 创建订单号
|
||||||
@ -816,6 +817,19 @@ func (ad *GameLogic) NotifyAll(m *MsgMod.Msg) {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (ad *GameLogic) GetPlayerNum() int {
|
||||||
|
length := 0
|
||||||
|
ad.M_Players.Range(func(_, _ interface{}) bool {
|
||||||
|
length++
|
||||||
|
return true
|
||||||
|
})
|
||||||
|
return length
|
||||||
|
}
|
||||||
|
|
||||||
|
func (ad *GameLogic) GetStartTime() int64 {
|
||||||
|
return ad.StartTime
|
||||||
|
}
|
||||||
|
|
||||||
func NotifyPlayer(Uid int, m *MsgMod.Msg) {
|
func NotifyPlayer(Uid int, m *MsgMod.Msg) {
|
||||||
p := G_GameLogicPtr.GetPlayer(int64(Uid))
|
p := G_GameLogicPtr.GetPlayer(int64(Uid))
|
||||||
if p == nil || p.stop {
|
if p == nil || p.stop {
|
||||||
|
|||||||
@ -1,10 +1,14 @@
|
|||||||
package game
|
package game
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"encoding/json"
|
||||||
"fmt"
|
"fmt"
|
||||||
|
"io"
|
||||||
|
"net/http"
|
||||||
"server/GoUtil"
|
"server/GoUtil"
|
||||||
"server/MergeConst"
|
"server/MergeConst"
|
||||||
mergeCluster "server/cluster"
|
mergeCluster "server/cluster"
|
||||||
|
"server/conf"
|
||||||
cardCfg "server/conf/card"
|
cardCfg "server/conf/card"
|
||||||
chargeCfg "server/conf/charge"
|
chargeCfg "server/conf/charge"
|
||||||
mailCfg "server/conf/mail"
|
mailCfg "server/conf/mail"
|
||||||
@ -398,18 +402,46 @@ func CreateOrderSn(p *Player, ChargeId int, Platform, Channel string) (string, e
|
|||||||
return OrderSn, nil
|
return OrderSn, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func GoogleVerify(p *Player, OrderSn, PayOrderSn string, Status int) (*db.SqlChargeOrderStruct, error) {
|
func GoogleVerify(p *Player, OrderSn, ProduceId, Token string) (*db.SqlChargeOrderStruct, error) {
|
||||||
Order, err := db.GetPlayerChargeData(OrderSn)
|
Order, err := db.GetPlayerChargeData(OrderSn)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
if !conf.Server.GoogleVerify {
|
||||||
|
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("订单已经支付")
|
return nil, fmt.Errorf("订单已经支付")
|
||||||
}
|
}
|
||||||
// TODO 验证订单
|
PackageName := "com.DefaultCompany.PetHomeMergeStory"
|
||||||
|
accessToken := "ya29.a0ARW5m75hnUnTbdLYAMW_0GTZSC1JY0GkPZ2fVqXGexVnPoDLoTviRTMtGVUmkG18F9tf2mmLeaRh7gPYYRAm145rtifW_J8_WUn0rhdOEpqU23vAsdCo1v2aArMsjw2dPHBf5ZCYBPirW_3ckL3MC1VzI4akvY3gt3EMz7U0aCgYKAR0SARISFQHGX2MipUmvPZgSya_iDJWbczKpnA0175"
|
||||||
|
url := fmt.Sprintf("https://www.googleapis.com/androidpublisher/v3/applications/%s/purchases/products/%s/tokens/%s?access_token=%s",
|
||||||
|
PackageName, ProduceId, Token, accessToken)
|
||||||
|
resp, err := http.Get(url)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
defer resp.Body.Close()
|
||||||
|
|
||||||
|
if resp.StatusCode != http.StatusOK {
|
||||||
|
return nil, fmt.Errorf("failed to get data: %s", resp.Status)
|
||||||
|
}
|
||||||
|
|
||||||
|
body, err := io.ReadAll(resp.Body)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
res := make(map[string]interface{})
|
||||||
|
log.Debug(string(body))
|
||||||
|
err = json.Unmarshal(body, &res)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
Order.PayTime = GoUtil.Now()
|
Order.PayTime = GoUtil.Now()
|
||||||
Order.PayChannelOrderId = PayOrderSn
|
Order.PayChannelOrderId = res["orderId"].(string)
|
||||||
Order.PayStatus = Status
|
Order.PayStatus = res["consumptionState"].(int)
|
||||||
|
Order.ProductName = ProduceId
|
||||||
err = db.UpdatePlayerChargeData(Order)
|
err = db.UpdatePlayerChargeData(Order)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
@ -417,6 +449,22 @@ func GoogleVerify(p *Player, OrderSn, PayOrderSn string, Status int) (*db.SqlCha
|
|||||||
return Order, nil
|
return Order, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func CancelOrder(p *Player, OrderSn string) error {
|
||||||
|
Order, err := db.GetPlayerChargeData(OrderSn)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
if Order.PayStatus != MergeConst.ORDER_STATUS_PAY {
|
||||||
|
return fmt.Errorf("订单未支付")
|
||||||
|
}
|
||||||
|
Order.PayStatus = MergeConst.ORDER_STATUS_CANCEL
|
||||||
|
err = db.UpdatePlayerChargeData(Order)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
func BackUserInfo(p *Player) {
|
func BackUserInfo(p *Player) {
|
||||||
BaseMod := p.PlayMod.getBaseMod()
|
BaseMod := p.PlayMod.getBaseMod()
|
||||||
FaceMod := p.PlayMod.getFaceMod()
|
FaceMod := p.PlayMod.getFaceMod()
|
||||||
|
|||||||
@ -31,6 +31,12 @@ import (
|
|||||||
"google.golang.org/protobuf/proto"
|
"google.golang.org/protobuf/proto"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
func ReqPlayerAsset(args []interface{}) error {
|
||||||
|
_, player, _ := ParseArgs(args)
|
||||||
|
player.PushClientRes(player.PlayerBaseMod.BackAsset())
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
// 请求玩家基础信息
|
// 请求玩家基础信息
|
||||||
func ReqPlayerBaseInfofunction(args []interface{}) error {
|
func ReqPlayerBaseInfofunction(args []interface{}) error {
|
||||||
// 消息的发送者
|
// 消息的发送者
|
||||||
@ -2186,9 +2192,15 @@ func ReqShippingOrder(args []interface{}) error {
|
|||||||
req := &msg.ReqShippingOrder{}
|
req := &msg.ReqShippingOrder{}
|
||||||
proto.Unmarshal(buf, req)
|
proto.Unmarshal(buf, req)
|
||||||
OrderSn := req.OrderSn
|
OrderSn := req.OrderSn
|
||||||
PayOrderSn := req.PayOrderSn
|
|
||||||
Status := int(req.Status)
|
Status := int(req.Status)
|
||||||
OrderData, err := GoogleVerify(player, OrderSn, PayOrderSn, Status)
|
if Status != MergeConst.ORDER_STATUS_CANCEL { // 取消支付
|
||||||
|
CancelOrder(player, OrderSn)
|
||||||
|
player.PushClientRes(&msg.ResShippingOrder{
|
||||||
|
Code: msg.RES_CODE_SUCCESS,
|
||||||
|
})
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
OrderData, err := GoogleVerify(player, OrderSn, req.ProduceId, req.Token)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
@ -3171,6 +3183,44 @@ func ReqPlayroomFlipReward(args []interface{}) error {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func ReqPlayroomBuyItem(args []interface{}) error {
|
||||||
|
_, player, buf := ParseArgs(args)
|
||||||
|
req := &msg.ReqPlayroomBuyItem{}
|
||||||
|
proto.Unmarshal(buf, req)
|
||||||
|
PlayroomMod := player.PlayMod.getPlayroomMod()
|
||||||
|
AddItems, CostItem := PlayroomMod.BuyItem(int(req.Id))
|
||||||
|
if CostItem == nil {
|
||||||
|
err := fmt.Errorf("can not buy item")
|
||||||
|
player.SendErrClienRes(&msg.ResPlayroomBuyItem{
|
||||||
|
Code: msg.RES_CODE_FAIL,
|
||||||
|
Msg: err.Error(),
|
||||||
|
})
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
err := player.HandleLoseItem(CostItem, msg.ITEM_POP_LABEL_PlayroomBuyItem.String())
|
||||||
|
if err != nil {
|
||||||
|
player.SendErrClienRes(&msg.ResPlayroomBuyItem{
|
||||||
|
Code: msg.RES_CODE_FAIL,
|
||||||
|
Msg: err.Error(),
|
||||||
|
})
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
err = player.HandleItem(AddItems, msg.ITEM_POP_LABEL_PlayroomBuyItem.String())
|
||||||
|
if err != nil {
|
||||||
|
player.SendErrClienRes(&msg.ResPlayroomBuyItem{
|
||||||
|
Code: msg.RES_CODE_FAIL,
|
||||||
|
Msg: err.Error(),
|
||||||
|
})
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
player.PlayMod.save()
|
||||||
|
// PlayroomBackData(player)
|
||||||
|
player.PushClientRes(&msg.ResPlayroomBuyItem{
|
||||||
|
Code: msg.RES_CODE_SUCCESS,
|
||||||
|
})
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
func ReqOfflineReconnectFunc(args []interface{}) error {
|
func ReqOfflineReconnectFunc(args []interface{}) error {
|
||||||
a := args[0].(gate.Agent)
|
a := args[0].(gate.Agent)
|
||||||
|
|
||||||
|
|||||||
@ -11,7 +11,8 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
var AdminFuncMap = map[string]func([]interface{}) error{
|
var AdminFuncMap = map[string]func([]interface{}) error{
|
||||||
"ReqAdminInfo": AdminPlayerInfo,
|
"ReqAdminInfo": AdminPlayerInfo,
|
||||||
|
"ReqServerInfo": ReqServerInfo,
|
||||||
}
|
}
|
||||||
|
|
||||||
func AdminProcess(Func string, args []interface{}) {
|
func AdminProcess(Func string, args []interface{}) {
|
||||||
@ -78,3 +79,16 @@ func AdminPlayerBack(a gate.Agent, buf []byte) {
|
|||||||
response.Info = buf
|
response.Info = buf
|
||||||
a.WriteMsg(response)
|
a.WriteMsg(response)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func ReqServerInfo(args []interface{}) error {
|
||||||
|
a, _ := ParseAdminArgs(args)
|
||||||
|
res := make(map[string]interface{})
|
||||||
|
res["PlayerNum"] = G_GameLogicPtr.GetPlayerNum()
|
||||||
|
res["StartTime"] = G_GameLogicPtr.GetStartTime()
|
||||||
|
JsonBuff, err := json.Marshal(res)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
AdminPlayerBack(a, JsonBuff)
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|||||||
@ -424,7 +424,7 @@ func (o *OrderMod) CreateExtraOrder(AddChess, AddNewEmit, ChessList []int, Energ
|
|||||||
//额外订单补充1;CDEG发射器首次合成时,生成其对应2及棋子订单,完成后生成3及,再完成生成4及的;
|
//额外订单补充1;CDEG发射器首次合成时,生成其对应2及棋子订单,完成后生成3及,再完成生成4及的;
|
||||||
if b1 {
|
if b1 {
|
||||||
ChessColor := mergeDataCfg.GetEmitProduceChessType(OrderEmit)
|
ChessColor := mergeDataCfg.GetEmitProduceChessType(OrderEmit)
|
||||||
ChessId := mergeDataCfg.GetChessIdByLvAndColor(EnergyMul, ChessColor[0])
|
ChessId := mergeDataCfg.GetChessIdByLvAndColor(EnergyMul+1, ChessColor[0])
|
||||||
if ChessId != 0 {
|
if ChessId != 0 {
|
||||||
o.PreheatStep[ChessColor[0]] = 1
|
o.PreheatStep[ChessColor[0]] = 1
|
||||||
o.addOrder([]int{ChessId}, diff_low, Preheat_type)
|
o.addOrder([]int{ChessId}, diff_low, Preheat_type)
|
||||||
|
|||||||
@ -455,3 +455,7 @@ func (p *PlayroomMod) GetFlipReward() ([]*item.Item, error) {
|
|||||||
}
|
}
|
||||||
return Items, fmt.Errorf("GetFlipReward check is not 3")
|
return Items, fmt.Errorf("GetFlipReward check is not 3")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (p *PlayroomMod) BuyItem(Id int) ([]*item.Item, []*item.Item) {
|
||||||
|
return playroomCfg.GetBuyItem(Id)
|
||||||
|
}
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue
Block a user