Merge branch 'sdk' into online
This commit is contained in:
commit
e4ec8d930a
@ -1,6 +1,7 @@
|
||||
package baseCfg
|
||||
|
||||
import (
|
||||
"server/game/mod/item"
|
||||
"server/gamedata"
|
||||
"server/pkg/github.com/name5566/leaf/log"
|
||||
"strconv"
|
||||
@ -39,6 +40,15 @@ func GetEnergyByMul(T int) float64 {
|
||||
}
|
||||
}
|
||||
|
||||
func GetFriendReplyReward() []*item.Item {
|
||||
data, err := gamedata.GetDataByKey(CFG_BASE, "friend_reply")
|
||||
if err != nil {
|
||||
log.Debug("GetFriendReplyReward err:%v", err)
|
||||
return nil
|
||||
}
|
||||
return gamedata.GetItemList(data, "Value")
|
||||
}
|
||||
|
||||
func GetMaxEnergyMul(Lv int, Energy int) int {
|
||||
Mul := 0
|
||||
for i := 1; i < 999; i++ {
|
||||
|
||||
@ -139,7 +139,7 @@ func GetChessIdByLvAndColor(Lv int, Color string) int {
|
||||
func GetLvById(Id int) int {
|
||||
data, err := gamedata.GetDataByIntKey(CFG_NAME, Id)
|
||||
if err != nil {
|
||||
log.Debug("GetLvById GetOne Id:%v not found", Id)
|
||||
//log.Debug("GetLvById GetOne Id:%v not found", Id)
|
||||
return 0
|
||||
}
|
||||
return gamedata.ParseInt(data["Lv"])
|
||||
@ -149,7 +149,7 @@ func GetLvById(Id int) int {
|
||||
func GetMaxLvById(Id int) int {
|
||||
data, err := gamedata.GetDataByIntKey(CFG_NAME, Id)
|
||||
if err != nil {
|
||||
log.Debug("GetMaxLvById GetOne Id:%v not found", Id)
|
||||
// log.Debug("GetMaxLvById GetOne Id:%v not found", Id)
|
||||
return 0
|
||||
}
|
||||
return gamedata.ParseInt(data["MaxLv"])
|
||||
@ -169,7 +169,7 @@ func GetMaxLvByColor(Color string) int {
|
||||
func GetEmitMinLvById(Id string) int {
|
||||
data, err := gamedata.GetDataByKey(CFG_MERGE_EMIT, Id)
|
||||
if err != nil {
|
||||
log.Debug("GetEmitMinLvById GetOne Id:%v not found", Id)
|
||||
// log.Debug("GetEmitMinLvById GetOne Id:%v not found", Id)
|
||||
return 0
|
||||
}
|
||||
return gamedata.GetIntValue(data, "Emit_Min_Lv")
|
||||
@ -179,7 +179,7 @@ func GetEmitMinLvById(Id string) int {
|
||||
func GetEmitRatio(Id string) float64 {
|
||||
data, err := gamedata.GetDataByKey(CFG_MERGE_EMIT, Id)
|
||||
if err != nil {
|
||||
log.Debug("GetEmitRatio GetOne Id:%v not found", Id)
|
||||
// log.Debug("GetEmitRatio GetOne Id:%v not found", Id)
|
||||
return 0
|
||||
}
|
||||
return gamedata.GetFloatValue(data, "Ratio")
|
||||
@ -267,7 +267,7 @@ func GetEmitProduceChessType(Id int) []string {
|
||||
func GetEmitId(Id int) string {
|
||||
data, err := gamedata.GetDataByIntKey(CFG_NAME, Id)
|
||||
if err != nil {
|
||||
log.Debug("GetEmitId GetOne Id:%v not found", Id)
|
||||
// log.Debug("GetEmitId GetOne Id:%v not found", Id)
|
||||
return ""
|
||||
}
|
||||
return gamedata.ParseString(data["Emit_ID"])
|
||||
@ -392,10 +392,20 @@ func GetHighSourceChestItem() []*item.Item {
|
||||
r = append(r, item.NewItem(item.ITEM_ENERGY_ID, B4))
|
||||
return r
|
||||
}
|
||||
|
||||
func GetRetireReward() []*item.Item {
|
||||
data, err := gamedata.GetDataByKey(CONST_NAME, "retire_reward")
|
||||
if err != nil {
|
||||
log.Debug("GetRetireReward GetOne not found")
|
||||
return nil
|
||||
}
|
||||
return gamedata.GetItemList(data, "Value")
|
||||
}
|
||||
|
||||
func DynamicLevRev(Lv int, EmitId int, Color string) int {
|
||||
data, err := gamedata.GetDataByIntKey(CFG_NAME, EmitId)
|
||||
if err != nil {
|
||||
log.Debug("DynamicLev GetOne EmitId:%v not found", EmitId)
|
||||
// log.Debug("DynamicLev GetOne EmitId:%v not found", EmitId)
|
||||
return Lv
|
||||
}
|
||||
DynamicLv := gamedata.GetStringValue(data, "Dynamic")
|
||||
|
||||
@ -5,6 +5,7 @@ import (
|
||||
"fmt"
|
||||
"reflect"
|
||||
"server/GoUtil"
|
||||
"server/MergeConst"
|
||||
"server/conf"
|
||||
"server/pkg/github.com/name5566/leaf/log"
|
||||
"strings"
|
||||
@ -223,6 +224,12 @@ func GetPlayerBaseInfoFromDbByName(name string) *ResPlayerBaseInfo {
|
||||
return &res
|
||||
}
|
||||
|
||||
func UpdatePlayerBaseInfoName(oldName, newName string) error {
|
||||
sqlStr := "UPDATE t_player_baseinfo SET user_name = ? WHERE user_name = ?"
|
||||
_, err := SqlDb.Exec(sqlStr, newName, oldName)
|
||||
return err
|
||||
}
|
||||
|
||||
func GetPlayerBaseInfoFromDbById(id int32) *ResPlayerBaseInfo {
|
||||
sqlStr := "SELECT * FROM t_player_baseinfo WHERE dwUin = ?"
|
||||
var res ResPlayerBaseInfo
|
||||
@ -237,7 +244,7 @@ func GetAccountInfoFromDb(name string) *Db_Account {
|
||||
sqlStr := "SELECT * FROM t_account WHERE user_name = ?"
|
||||
var res Db_Account
|
||||
if err := SqlDb.Get(&res, sqlStr, name); err != nil {
|
||||
log.Debug("table: %s, sql :%s, exec failed, err:%v\n", "account", sqlStr, err)
|
||||
log.Debug("登录的账号不存在:%s", name)
|
||||
return nil
|
||||
}
|
||||
return &res
|
||||
@ -248,6 +255,11 @@ func UpdateAccountInfoToDb(account *Db_Account) (err error) {
|
||||
return
|
||||
}
|
||||
|
||||
func UpdateAccountInfoName(account *Db_Account, newName string) (err error) {
|
||||
_, err = SqlDb.Exec("UPDATE t_account SET user_name = ? WHERE user_name = ?", newName, account.UserName)
|
||||
return
|
||||
}
|
||||
|
||||
func UpdateAccountInfoDeviceToDb(account *Db_Account) (err error) {
|
||||
_, err = SqlDb.Exec("UPDATE t_account SET device_id = ? WHERE user_name = ?", account.DeviceId, account.UserName)
|
||||
return
|
||||
@ -458,6 +470,13 @@ func GetPlayerChargeData(OrderSn string) (*SqlChargeOrderStruct, error) {
|
||||
return data, err
|
||||
}
|
||||
|
||||
func GetPlayerChargeDataList(Uid int) ([]*SqlChargeOrderStruct, error) {
|
||||
sql := "select * from t_player_charge where Uid = ? and PayStatus = ?"
|
||||
data := &[]*SqlChargeOrderStruct{}
|
||||
err := SqlDb.Select(data, sql, Uid, MergeConst.ORDER_STATUS_PAY)
|
||||
return *data, err
|
||||
}
|
||||
|
||||
func GetPlayerPayChannelOrderId(OrderSn string) (*SqlChargeOrderStruct, error) {
|
||||
sql := "select * from t_player_charge where PayChannelOrderId = ?"
|
||||
data := &SqlChargeOrderStruct{}
|
||||
|
||||
@ -49,6 +49,8 @@ func (f *FriendMgr) Init() {
|
||||
f.RegisterHandler(msg.HANDLE_TYPE_REFUSE, f.sendToPlayer)
|
||||
f.RegisterHandler(msg.HANDLE_TYPE_INVITE_ADD_FRIEND, f.sendToPlayer)
|
||||
f.RegisterHandler(msg.HANDLE_TYPE_INVITE_FRIEND, f.sendToPlayer)
|
||||
f.RegisterHandler(msg.HANDLE_TYPE_FRIEND_GREETING_REPLY, f.sendToPlayer)
|
||||
f.RegisterHandler(msg.HANDLE_TYPE_FRIEND_SPONSOER, f.sendToPlayer)
|
||||
|
||||
// 卡牌消息
|
||||
f.RegisterHandler(msg.HANDLE_TYPE_REQ_CARD, f.sendToPlayer)
|
||||
|
||||
@ -735,6 +735,7 @@ func (ad *GameLogic) RegisterNetWorkFunc() {
|
||||
RegisterMsgProcessFunc("ReqSeparateChess", ReqSeparateChess) // 分解棋子
|
||||
RegisterMsgProcessFunc("ReqUpgradeChess", ReqUpgradeChess) // 升级棋子
|
||||
RegisterMsgProcessFunc("ReqSellChessNum", ReqSellChessNum) //购买能量
|
||||
RegisterMsgProcessFunc("ReqGetChessRetireReward", ReqGetChessRetireReward) //领取棋子退役奖励
|
||||
|
||||
//领取图鉴奖励
|
||||
RegisterMsgProcessFunc("ReqGetHandbookReward", ReqGetHandbookReward) //领取图鉴奖励
|
||||
@ -742,6 +743,7 @@ func (ad *GameLogic) RegisterNetWorkFunc() {
|
||||
//领取订单奖励
|
||||
RegisterMsgProcessFunc("ReqRewardOrder", ReqRewardOrder) // 领取订单奖励
|
||||
RegisterMsgProcessFunc("ReqDelOrder", ReqDelOrder) // 删除订单
|
||||
RegisterMsgProcessFunc("ReqCreatePetOrder", ReqCreatePetOrder) // 生成消耗品订单
|
||||
|
||||
//装饰
|
||||
RegisterMsgProcessFunc("ReqDecorate", ReqDecorate) // 装饰
|
||||
@ -817,6 +819,7 @@ func (ad *GameLogic) RegisterNetWorkFunc() {
|
||||
RegisterMsgProcessFunc("ReqAddNpc", ReqAddNpc) // 增加npc
|
||||
RegisterMsgProcessFunc("ReqWishApply", ReqWishApply) // 同意好友心愿单请求
|
||||
RegisterMsgProcessFunc("ReqFriendByCode", ReqFriendByCode) // 根据邀请码查询好友
|
||||
RegisterMsgProcessFunc("ReqFriendReplyHandle", ReqFriendReplyHandle) // 回复好友信息
|
||||
|
||||
RegisterMsgProcessFunc("ReqSearchPlayer", ReqSearchPlayer) // 搜索好友
|
||||
RegisterMsgProcessFunc("ReqApplyFriend", ReqApplyFriend) // 申请好友
|
||||
|
||||
@ -275,6 +275,7 @@ func (p *Player) InitPlayer(UserName string) error {
|
||||
p.Login()
|
||||
// GoUtil.RegisterEvent(MergeConst.Notify_Daily_Renew, p.ZeroUpdate, p)
|
||||
// GoUtil.RegisterEvent(MergeConst.Notify_Midday_Renew, p.ZeroUpdate, p)
|
||||
p.OrderShip()
|
||||
SyncFriendMsg(p)
|
||||
p.UpdateUserInfo()
|
||||
// fix bug
|
||||
@ -286,8 +287,16 @@ func (p *Player) InitPlayer(UserName string) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
func (p *Player) Test() {
|
||||
p.PlayMod.getBaseMod().EnergyMul = 100
|
||||
func (p *Player) OrderShip() {
|
||||
OrderList, err := db.GetPlayerChargeDataList(int(p.M_DwUin))
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
for _, OrderInfo := range OrderList {
|
||||
go TriggerShippingOrderOrigin(p, &msg.ReqShippingOrder{
|
||||
OrderSn: OrderInfo.OrderId,
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
// 零点更新
|
||||
@ -330,7 +339,8 @@ func (p *Player) ZeroUpdate(a []interface{}) {
|
||||
p.PlayMod.getFriendTreasureMod().ZeroUpdate()
|
||||
// p.PushClientRes(p.PlayMod.getFriendTreasureMod().BackData())
|
||||
|
||||
// 限时事件
|
||||
// 好友功能
|
||||
p.PlayMod.getFriendMod().ZeroUpdate()
|
||||
|
||||
p.PlayMod.getLimitedTimeEventMod().ZeroUpdate(p.GetPlayerBaseMod().GetLevel())
|
||||
// playroom
|
||||
|
||||
@ -375,6 +375,14 @@ func handle(p *Player, m *msg.Msg) error {
|
||||
return nil
|
||||
}
|
||||
CatnipMod.Growth(CatnipGrowthInfo.GameId, CatnipGrowthInfo.Growth)
|
||||
case msg.HANDLE_TYPE_FRIEND_GREETING_REPLY:
|
||||
FriendMod := p.PlayMod.getFriendMod()
|
||||
if v, ok := m.Extra.(friend.ReplyInfo); ok {
|
||||
FriendMod.AddReplyInfo(v.Uid, v.Type, v.Param)
|
||||
FriendLogBackData(p)
|
||||
}
|
||||
case msg.HANDLE_TYPE_FRIEND_SPONSOER:
|
||||
p.AddLog(m.From, friend.LOG_TYPE_FRIEND_SPONSOR_GET, "", m.SendT)
|
||||
default:
|
||||
log.Debug("uid : %d, handle msg type : %d not exist", p.M_DwUin, m.Type)
|
||||
}
|
||||
@ -517,6 +525,7 @@ func FriendListBackData(p *Player) {
|
||||
FriendList: fl,
|
||||
ReqApplyList: ReqFriendList,
|
||||
Npc: GoUtil.IntToInt32(FriendMod.GetNpc()),
|
||||
Sponsor: int32(FriendMod.GetSponsor()),
|
||||
})
|
||||
}
|
||||
|
||||
@ -542,6 +551,11 @@ func FriendLogBackData(p *Player) {
|
||||
var log []*proto.ResFriendLog
|
||||
for _, v := range FriendMod.Log {
|
||||
ps := G_GameLogicPtr.GetResSimplePlayerByUid(v.Uid)
|
||||
if ps == nil {
|
||||
ps = &proto.ResPlayerSimple{
|
||||
Uid: int64(v.Uid),
|
||||
}
|
||||
}
|
||||
log = append(log, &proto.ResFriendLog{
|
||||
Player: ps,
|
||||
Type: int32(v.Type),
|
||||
@ -551,8 +565,27 @@ func FriendLogBackData(p *Player) {
|
||||
Upvote: v.Upvote,
|
||||
})
|
||||
}
|
||||
var reply []*proto.ResFriendReply
|
||||
for _, v := range FriendMod.ReplyList {
|
||||
ps := G_GameLogicPtr.GetResSimplePlayerByUid(v.Uid)
|
||||
if ps == nil {
|
||||
ps = &proto.ResPlayerSimple{
|
||||
Uid: int64(v.Uid),
|
||||
}
|
||||
}
|
||||
reply = append(reply, &proto.ResFriendReply{
|
||||
Player: ps,
|
||||
Type: int32(v.Type),
|
||||
Param: v.Param,
|
||||
Id: int32(v.Id),
|
||||
Status: int32(v.Status),
|
||||
AddTime: v.AddTime,
|
||||
EndTime: v.EndTime,
|
||||
})
|
||||
}
|
||||
p.PushClientRes(&proto.ResFriendTimeLine{
|
||||
Log: log,
|
||||
Reply: reply,
|
||||
})
|
||||
}
|
||||
|
||||
@ -1120,6 +1153,42 @@ func (player *Player) FixOrderBug() {
|
||||
}
|
||||
}
|
||||
|
||||
func (player *Player) CreatePetOrder() {
|
||||
BaseMod := player.PlayMod.getBaseMod()
|
||||
ChessMod := player.PlayMod.getChessMod()
|
||||
OrderMod := player.PlayMod.getOrderMod()
|
||||
PetTrigger := true
|
||||
for _, v := range OrderMod.GetOrderList() {
|
||||
if v.Type == order.Pet_type {
|
||||
PetTrigger = false
|
||||
break
|
||||
}
|
||||
}
|
||||
if PetTrigger && BaseMod.GetLevel() >= 17 {
|
||||
OrderMod.CreateOrder(BaseMod.GetLevel(), ChessMod.GetOrderEmit(), BaseMod.GetEnergyMul(), order.Pet_type)
|
||||
for k, v := range OrderMod.GetOrderList() {
|
||||
if len(v.Items) != 0 {
|
||||
continue
|
||||
}
|
||||
if v.Type != order.Pet_type {
|
||||
continue
|
||||
}
|
||||
Items := make([]*item.Item, 0)
|
||||
Star := order.GetOrderStar(v.MergeId, ChessMod.GetStarEmitList())
|
||||
// Star = int(float64(Star)*float64(OrderFactor)/1000) * 10
|
||||
Items = player.GetPetOrderReward(Star, Items)
|
||||
if len(Items) == 1 && Items[0].Id == item.ITEM_STAR_ID {
|
||||
v.Type = order.Common_type
|
||||
} else {
|
||||
v.Type = order.Pet_type
|
||||
}
|
||||
v.Items = Items
|
||||
OrderMod.OrderList[k] = v
|
||||
}
|
||||
return
|
||||
}
|
||||
}
|
||||
|
||||
func (player *Player) CreateNormalOrder() {
|
||||
Exp, PExp := userCfg.GetLevUpExp(player.GetPlayerBaseMod().GetLevel())
|
||||
BaseMod := player.PlayMod.getBaseMod()
|
||||
@ -1181,43 +1250,6 @@ func (player *Player) CreateNormalOrder() {
|
||||
}
|
||||
return
|
||||
}
|
||||
// if ExpCoin > PExpCoin || BaseMod.GetLevel() < 17 {
|
||||
// for k, v := range OrderMod.GetOrderList() {
|
||||
// if len(v.Items) != 0 {
|
||||
// continue
|
||||
// }
|
||||
// if v.Type != order.Common_type {
|
||||
// continue
|
||||
// }
|
||||
// Star := order.GetOrderStar(v.MergeId)
|
||||
// Star = int(float64(Star)*float64(OrderFactor)/10) * 10
|
||||
// v.Items = append(v.Items, &item.Item{
|
||||
// Id: item.ITEM_STAR_ID,
|
||||
// Num: Star,
|
||||
// })
|
||||
// OrderMod.OrderList[k] = v
|
||||
// }
|
||||
// } else {
|
||||
// for k, v := range OrderMod.GetOrderList() {
|
||||
// if len(v.Items) != 0 {
|
||||
// continue
|
||||
// }
|
||||
// if v.Type != order.Common_type {
|
||||
// continue
|
||||
// }
|
||||
// Items := make([]*item.Item, 0)
|
||||
// Star := order.GetOrderStar(v.MergeId)
|
||||
// Star = int(float64(Star)*float64(OrderFactor)/10) * 10
|
||||
// Items = player.GetPetOrderReward(Star, Items)
|
||||
// if len(Items) == 1 && Items[0].Id == item.ITEM_STAR_ID {
|
||||
// v.Type = order.Common_type
|
||||
// } else {
|
||||
// v.Type = order.Pet_type
|
||||
// }
|
||||
// v.Items = Items
|
||||
// OrderMod.OrderList[k] = v
|
||||
// }
|
||||
// }
|
||||
|
||||
// 触发式订单 满足条件生成零件订单
|
||||
PartCost := DecorateMod.GetPartCost()
|
||||
|
||||
@ -6,6 +6,7 @@ import (
|
||||
"math"
|
||||
"server/GoUtil"
|
||||
"server/conf"
|
||||
baseCfg "server/conf/base"
|
||||
cardCfg "server/conf/card"
|
||||
champshipCfg "server/conf/champship"
|
||||
collectCfg "server/conf/collect"
|
||||
@ -433,6 +434,13 @@ func ReqRewardOrder(player *Player, buf []byte) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
func ReqCreatePetOrder(player *Player, buf []byte) error {
|
||||
player.CreatePetOrder()
|
||||
OrderMod := player.PlayMod.getOrderMod()
|
||||
player.PushClientRes(OrderMod.BackData())
|
||||
return nil
|
||||
}
|
||||
|
||||
func ReqDelOrder(player *Player, buf []byte) error {
|
||||
req := &msg.ReqDelOrder{}
|
||||
proto.Unmarshal(buf, req)
|
||||
@ -1480,6 +1488,7 @@ func ReqBuyEnergy(player *Player, buf []byte) error {
|
||||
player.PushClientRes(&msg.ResBuyEnergy{
|
||||
Code: msg.RES_CODE_SUCCESS,
|
||||
})
|
||||
player.PushClientRes(ChargeMod.BackData())
|
||||
player.TeLog("buy_energy_diamond", map[string]interface{}{
|
||||
"diamond_cost": Diamond,
|
||||
"energy_num": Energy,
|
||||
@ -1751,6 +1760,34 @@ func ReqApplyFriend(player *Player, buf []byte) error {
|
||||
})
|
||||
return fmt.Errorf("already apply")
|
||||
}
|
||||
if req.Type == 1 {
|
||||
Items, err := FriendMod.GetSponsorReward()
|
||||
if err != nil {
|
||||
player.SendErrClienRes(&msg.ResApplyFriend{
|
||||
Code: msg.RES_CODE_FAIL,
|
||||
Msg: err.Error(),
|
||||
})
|
||||
return err
|
||||
}
|
||||
err = player.HandleItem(Items, msg.ITEM_POP_LABEL_ApplyFriendSponsor.String())
|
||||
if err != nil {
|
||||
player.SendErrClienRes(&msg.ResApplyFriend{
|
||||
Code: msg.RES_CODE_FAIL,
|
||||
Msg: err.Error(),
|
||||
})
|
||||
return err
|
||||
}
|
||||
player.AddLog(int(req.Uid), friend.LOG_TYPE_FRIEND_SPONSOR, "", GoUtil.Now())
|
||||
FriendMgrSend(&MsqMod.Msg{
|
||||
Type: MsqMod.HANDLE_TYPE_FRIEND_SPONSOER,
|
||||
From: int(player.M_DwUin),
|
||||
To: Uid,
|
||||
SendT: GoUtil.Now(),
|
||||
})
|
||||
player.TeLog("friend_invite_reward", map[string]interface{}{
|
||||
"item_list": Items,
|
||||
})
|
||||
}
|
||||
m := &MsqMod.Msg{
|
||||
Type: MsqMod.HANDLE_TYPE_APPLY,
|
||||
From: int(player.M_DwUin),
|
||||
@ -1790,6 +1827,7 @@ func ReqAgreeFriend(player *Player, buf []byte) error {
|
||||
}
|
||||
FriendMgrSend(m)
|
||||
FriendMod.AddFriend(Uid)
|
||||
FriendMod.AddReplyInfo(Uid, friend.REPLY_TYPE_GREETING, "")
|
||||
player.PushClientRes(&msg.ResAgreeFriend{
|
||||
Code: msg.RES_CODE_SUCCESS,
|
||||
Uid: req.Uid,
|
||||
@ -1801,6 +1839,7 @@ func ReqAgreeFriend(player *Player, buf []byte) error {
|
||||
})
|
||||
player.AddLog(Uid, friend.LOG_TYPE_FRIEND_BECOME, "", GoUtil.Now())
|
||||
FriendApplyBackData(player)
|
||||
FriendLogBackData(player)
|
||||
PlayroomMod := player.PlayMod.getPlayroomMod()
|
||||
BaseMod := player.PlayMod.getBaseMod()
|
||||
PlayroomMod.AddRoomPointAdd(BaseMod.GetLevel())
|
||||
@ -4642,6 +4681,8 @@ func ReqAddNpc(player *Player, buf []byte) error {
|
||||
player.TeLog("add_npc", map[string]interface{}{
|
||||
"NpcId": int(req.NpcId),
|
||||
})
|
||||
FriendMod.AddReplyInfo(int(req.NpcId), friend.REPLY_TYPE_GREETING, "")
|
||||
FriendMod.AddReplyInfo(int(req.NpcId), friend.REPLY_TYPE_GREETING_Get, "")
|
||||
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,
|
||||
@ -5227,3 +5268,82 @@ func ReqActPassReward(player *Player, buf []byte) error {
|
||||
})
|
||||
return nil
|
||||
}
|
||||
|
||||
func ReqFriendReplyHandle(player *Player, buf []byte) error {
|
||||
req := &msg.ReqFriendReplyHandle{}
|
||||
proto.Unmarshal(buf, req)
|
||||
FriendMod := player.PlayMod.getFriendMod()
|
||||
ReplyInfo := FriendMod.ReplyFriend(int(req.LogId))
|
||||
if ReplyInfo == nil {
|
||||
player.SendErrClienRes(&msg.ResFriendReplyHandle{
|
||||
Code: msg.RES_CODE_FAIL,
|
||||
Msg: "reply info not exist",
|
||||
})
|
||||
return fmt.Errorf("reply info not exist")
|
||||
}
|
||||
if req.Type == 1 && ReplyInfo.Uid > 10000 {
|
||||
switch ReplyInfo.Type {
|
||||
case friend.REPLY_TYPE_GREETING:
|
||||
ReplyData := friend.ReplyInfo{
|
||||
Uid: int(player.M_DwUin),
|
||||
Type: friend.REPLY_TYPE_GREETING_Get,
|
||||
Param: req.Param,
|
||||
}
|
||||
FriendMgrSend(&MsqMod.Msg{
|
||||
From: int(player.M_DwUin),
|
||||
To: int(ReplyInfo.Uid),
|
||||
Type: MsqMod.HANDLE_TYPE_FRIEND_GREETING_REPLY,
|
||||
SendT: GoUtil.Now(),
|
||||
Extra: ReplyData,
|
||||
})
|
||||
}
|
||||
}
|
||||
Items := baseCfg.GetFriendReplyReward()
|
||||
err := player.HandleItem(Items, msg.ITEM_POP_LABEL_FriendReplyHandle.String())
|
||||
if err != nil {
|
||||
player.SendErrClienRes(&msg.ResFriendReplyHandle{
|
||||
Code: msg.RES_CODE_FAIL,
|
||||
Msg: err.Error(),
|
||||
})
|
||||
return err
|
||||
}
|
||||
FriendLogBackData(player)
|
||||
player.PushClientRes(&msg.ResFriendReplyHandle{
|
||||
Code: msg.RES_CODE_SUCCESS,
|
||||
LogId: req.LogId,
|
||||
})
|
||||
return nil
|
||||
}
|
||||
|
||||
func ReqGetChessRetireReward(player *Player, buf []byte) error {
|
||||
req := &msg.ReqGetChessRetireReward{}
|
||||
proto.Unmarshal(buf, req)
|
||||
ChessMod := player.PlayMod.getChessMod()
|
||||
Items, err := ChessMod.GetRetireReward(req.Id)
|
||||
if err != nil {
|
||||
player.SendErrClienRes(&msg.ResGetChessRetireReward{
|
||||
Code: msg.RES_CODE_FAIL,
|
||||
Msg: err.Error(),
|
||||
})
|
||||
return err
|
||||
}
|
||||
err = player.HandleItem(Items, msg.ITEM_POP_LABEL_GetChessRetireReward.String())
|
||||
if err != nil {
|
||||
player.SendErrClienRes(&msg.ResGetChessRetireReward{
|
||||
Code: msg.RES_CODE_FAIL,
|
||||
Msg: err.Error(),
|
||||
})
|
||||
return err
|
||||
}
|
||||
player.TeLog("get_chess_retire_reward", map[string]interface{}{
|
||||
"EmitSerise": req.Id,
|
||||
"Items": Items,
|
||||
})
|
||||
player.PushClientRes(ChessMod.BackData())
|
||||
player.PlayMod.save()
|
||||
player.PushClientRes(&msg.ResGetChessRetireReward{
|
||||
Code: msg.RES_CODE_SUCCESS,
|
||||
Id: req.Id,
|
||||
})
|
||||
return nil
|
||||
}
|
||||
|
||||
@ -76,6 +76,71 @@ func checkTriggerCondition(player *Player, Trigger []string) bool {
|
||||
}
|
||||
}
|
||||
|
||||
func TriggerShippingOrderOrigin(player *Player, req *msg.ReqShippingOrder) {
|
||||
OrderSn := req.OrderSn
|
||||
Status := int(req.Status)
|
||||
if Status == MergeConst.ORDER_STATUS_CANCEL { // 取消支付
|
||||
CancelOrder(player, OrderSn)
|
||||
player.PushClientRes(&msg.ResShippingOrder{
|
||||
Code: msg.RES_CODE_SUCCESS,
|
||||
Msg: "cancel success",
|
||||
})
|
||||
return
|
||||
}
|
||||
var err error
|
||||
OrderData, err := db.GetPlayerChargeData(OrderSn)
|
||||
if err != nil {
|
||||
log.Debug("charge shipping GetPlayerChargeData err:%v", err)
|
||||
return
|
||||
}
|
||||
if OrderData.PayStatus == MergeConst.ORDER_STATUS_SHIP {
|
||||
log.Debug("charge shipping order already shipped OrderSn:%s", OrderSn)
|
||||
return
|
||||
}
|
||||
// if !conf.Server.GoogleVerify {
|
||||
// Order.PayStatus = MergeConst.ORDER_STATUS_PAY
|
||||
// return
|
||||
// }
|
||||
if conf.Server.GameName == "Merge_Pet_online" {
|
||||
GoUtil.SendFeishuOrder(int(player.M_DwUin), OrderData.PayChannelOrderId, OrderData.Price, req.ProduceId, OrderData.PayTime, GoUtil.Now())
|
||||
}
|
||||
log.Debug("[order verify success] Uid:%d;OrderSn:%s;PayOrder:%s;Token:%s", player.M_DwUin, OrderData.OrderId, OrderData.PayChannelOrderId, req.Token)
|
||||
player.lock.Lock()
|
||||
defer player.lock.Unlock()
|
||||
OrderExtraData := &ChargeExtra{}
|
||||
if OrderData.PayChannelExtra != "" {
|
||||
err = json.Unmarshal([]byte(OrderData.PayChannelExtra), OrderExtraData)
|
||||
if err != nil {
|
||||
log.Debug("GoogleVerify err:%v", err)
|
||||
return
|
||||
}
|
||||
OrderExtraData.ChargeId = OrderData.ProductId
|
||||
}
|
||||
if OrderExtraData.Type == 0 {
|
||||
Charge(player, int(OrderData.ProductId))
|
||||
} else {
|
||||
SendCharge(player, OrderExtraData)
|
||||
}
|
||||
OrderData.PayStatus = MergeConst.ORDER_STATUS_SHIP
|
||||
OrderData.ProductName = req.ProduceId
|
||||
db.UpdatePlayerChargeData(OrderData)
|
||||
player.PlayMod.save()
|
||||
orderDataMap := map[string]interface{}{
|
||||
"AppId": conf.Server.AppID,
|
||||
"ServerId": conf.Server.ServerID,
|
||||
"OrderId": OrderData.OrderId,
|
||||
"PayChannelOrderId": OrderData.PayChannelOrderId,
|
||||
"ProductId": OrderData.ProductId,
|
||||
"CreateTime": OrderData.CreateTime,
|
||||
"PayTime": OrderData.PayTime,
|
||||
"Token": req.Token,
|
||||
"Price": OrderData.Price,
|
||||
"PayType": OrderData.PayType,
|
||||
}
|
||||
player.Kafka("pay", orderDataMap)
|
||||
player.SendClientRes()
|
||||
}
|
||||
|
||||
func TriggerShippingOrder(player *Player, req *msg.ReqShippingOrder) {
|
||||
OrderSn := req.OrderSn
|
||||
Status := int(req.Status)
|
||||
|
||||
@ -27,6 +27,7 @@ var AdminFuncMap = map[string]func([]interface{}) error{
|
||||
"ReqReload": ReqReload,
|
||||
"ReqAdminGm": ReqAdminGm,
|
||||
"ReqAdminBan": ReqAdminBan,
|
||||
"ReqAdminShipping": ReqAdminShipping,
|
||||
}
|
||||
|
||||
func AdminProcess(Func string, args []interface{}) {
|
||||
@ -45,7 +46,7 @@ func AdminProcess(Func string, args []interface{}) {
|
||||
log.Debug("AdminProcess error: %v", "Func not found")
|
||||
}
|
||||
|
||||
func VerifyUser(accountInfo *db.Db_Account, detail *msg.ReqLogin) (ResLogin *msg.ResLogin) {
|
||||
func VerifyUser(accountInfo *db.Db_Account, detail *msg.ReqLogin) (ResLogin *msg.ResLogin, accountInfoOut *db.Db_Account) {
|
||||
if detail.Type == msg.LOGIN_TYPE_CODE_LOGIN {
|
||||
err := VerifyCode(detail.UserName, detail.Code)
|
||||
if err != nil {
|
||||
@ -56,6 +57,16 @@ func VerifyUser(accountInfo *db.Db_Account, detail *msg.ReqLogin) (ResLogin *msg
|
||||
return
|
||||
}
|
||||
}
|
||||
if detail.Type == msg.LOGIN_TYPE_SDK_LOGIN {
|
||||
if accountInfo == nil {
|
||||
accountInfo = db.GetAccountInfoFromDb(detail.Device)
|
||||
}
|
||||
if accountInfo != nil {
|
||||
db.UpdateAccountInfoName(accountInfo, detail.UserName)
|
||||
accountInfo.UserName = detail.UserName
|
||||
db.UpdatePlayerBaseInfoName(detail.Device, detail.UserName)
|
||||
}
|
||||
}
|
||||
if accountInfo == nil {
|
||||
ResLogin = &msg.ResLogin{
|
||||
ResultCode: MergeConst.Protocol_Error_Account_NoExsit,
|
||||
@ -79,6 +90,7 @@ func VerifyUser(accountInfo *db.Db_Account, detail *msg.ReqLogin) (ResLogin *msg
|
||||
return
|
||||
}
|
||||
}
|
||||
|
||||
playerbaseinfo := db.GetPlayerBaseInfoFromDbByName(detail.UserName)
|
||||
if playerbaseinfo == nil {
|
||||
ResLogin = &msg.ResLogin{
|
||||
@ -95,7 +107,7 @@ func VerifyUser(accountInfo *db.Db_Account, detail *msg.ReqLogin) (ResLogin *msg
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
accountInfoOut = accountInfo
|
||||
ResLogin = &msg.ResLogin{
|
||||
ResultCode: 0,
|
||||
DwUin: playerbaseinfo.DwUin,
|
||||
@ -104,6 +116,36 @@ func VerifyUser(accountInfo *db.Db_Account, detail *msg.ReqLogin) (ResLogin *msg
|
||||
}
|
||||
return
|
||||
}
|
||||
func ReqAdminShipping(args []interface{}) error {
|
||||
a, buf := ParseAdminArgs(args)
|
||||
req := &msg.ReqAdminShipping{}
|
||||
proto.Unmarshal(buf, req)
|
||||
res := make(map[string]interface{})
|
||||
res["Code"] = 0
|
||||
OrderInfo, err := db.GetPlayerChargeData(req.OrderSn)
|
||||
if err != nil {
|
||||
res["Code"] = 1
|
||||
res["Msg"] = "order not found"
|
||||
AdminPlayerBack(a, res)
|
||||
}
|
||||
if OrderInfo.PayStatus == MergeConst.ORDER_STATUS_SHIP {
|
||||
res["Msg"] = "order already shipped"
|
||||
AdminPlayerBack(a, res)
|
||||
}
|
||||
Player := G_GameLogicPtr.GetPlayer(int64(OrderInfo.Uid))
|
||||
if Player != nil {
|
||||
go TriggerShippingOrderOrigin(Player, &msg.ReqShippingOrder{
|
||||
OrderSn: req.OrderSn,
|
||||
})
|
||||
res["Msg"] = "player online,triggered sync"
|
||||
AdminPlayerBack(a, res)
|
||||
} else {
|
||||
OrderInfo.PayStatus = MergeConst.ORDER_STATUS_PAY
|
||||
OrderInfo.PayChannelOrderId = req.ChannelOrderSn
|
||||
db.UpdatePlayerChargeData(OrderInfo)
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func AdminPlayerInfo(args []interface{}) error {
|
||||
a, buf := ParseAdminArgs(args)
|
||||
|
||||
@ -163,7 +163,7 @@ func HandleClientReq(args []interface{}) {
|
||||
log.Error("uid : %d, func : %s, fatal : %s", 0, m.GetFunc(), r)
|
||||
}
|
||||
}()
|
||||
ResLogin := VerifyUser(accountInfo, detail)
|
||||
ResLogin, accountInfo := VerifyUser(accountInfo, detail)
|
||||
if ResLogin.ResultCode != 0 {
|
||||
G_GameLogicPtr.PackLoginResInfo(a, ResLogin)
|
||||
return
|
||||
|
||||
@ -312,6 +312,7 @@ func (c *ChargeMod) BackData() *msg.ResCharge {
|
||||
}
|
||||
WeeklyDiscount := make(map[int32]*msg.WeeklyDiscountInfo)
|
||||
WeeklyDiscountInfo := chargeCfg.GetWeeklyInfoAll()
|
||||
if c.IsWeeklyDiscountDay() {
|
||||
for k, v := range WeeklyDiscountInfo {
|
||||
LimitNum := c.WeeklyDiscount[k]
|
||||
WeeklyDiscount[int32(k)] = &msg.WeeklyDiscountInfo{
|
||||
@ -320,7 +321,7 @@ func (c *ChargeMod) BackData() *msg.ResCharge {
|
||||
Id: int32(k),
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
return &msg.ResCharge{
|
||||
Charge: float32(c.Charge),
|
||||
Total: int32(c.Total),
|
||||
|
||||
@ -44,6 +44,7 @@ type ChessBorad struct {
|
||||
ChessMap map[string]int32
|
||||
Honor map[int]int // 荣誉室
|
||||
Retire map[string]int // 退役发射器系列
|
||||
RetireReward map[string]bool
|
||||
RetireChessMap map[string][]int
|
||||
}
|
||||
|
||||
@ -96,6 +97,9 @@ func (cb *ChessBorad) ver() {
|
||||
cb.ChessBag.List[i] = ChessBagGrid{}
|
||||
}
|
||||
}
|
||||
if cb.RetireReward == nil {
|
||||
cb.RetireReward = make(map[string]bool)
|
||||
}
|
||||
if cb.PartBag.List == nil {
|
||||
cb.PartBag.List = make(map[int]PartBagGrid)
|
||||
}
|
||||
@ -418,10 +422,17 @@ func (cb *ChessBorad) BackData() *msg.ResPlayerChessInfo {
|
||||
for k := range cb.Honor {
|
||||
Ho = append(Ho, int32(k))
|
||||
}
|
||||
Rw := make([]string, 0)
|
||||
for k, v := range cb.RetireReward {
|
||||
if v == true {
|
||||
Rw = append(Rw, k)
|
||||
}
|
||||
}
|
||||
return &msg.ResPlayerChessInfo{
|
||||
ChessList: GoUtil.SliceIntToInt32(cb.ChessList),
|
||||
ChessBuff: GoUtil.SliceIntToInt32(cb.ChessBuff),
|
||||
RetireEmit: Re,
|
||||
RetireReward: Rw,
|
||||
Honor: Ho,
|
||||
ChessBag: &msg.ChessBag{
|
||||
ChessBagGrids: ChessBagGrids,
|
||||
@ -671,3 +682,14 @@ func (cb *ChessBorad) GetPartBag() map[int]int {
|
||||
}
|
||||
return res
|
||||
}
|
||||
|
||||
func (cb *ChessBorad) GetRetireReward(Id string) ([]*item.Item, error) {
|
||||
if cb.RetireReward[Id] == true {
|
||||
return nil, errors.New("emit retire reward has been get")
|
||||
}
|
||||
if cb.Retire[Id] != EMIT_RETIRE_END {
|
||||
return nil, errors.New("emit not finish retire")
|
||||
}
|
||||
cb.RetireReward[Id] = true
|
||||
return mergeDataCfg.GetRetireReward(), nil
|
||||
}
|
||||
|
||||
@ -22,6 +22,19 @@ type FriendMod struct {
|
||||
Npc []int // npc id
|
||||
Bubble map[int]*BubbleInfo // 气泡
|
||||
ActivityLog []*ActLogInfo // 活动日志
|
||||
ReplyList []*ReplyInfo // 好友回复列表
|
||||
DailySponsor int // 好友赞助次数
|
||||
}
|
||||
|
||||
type ReplyInfo struct {
|
||||
Id int
|
||||
Uid int
|
||||
Type int
|
||||
Param string
|
||||
Status int
|
||||
AddTime int64
|
||||
ReplyTime int64
|
||||
EndTime int64
|
||||
}
|
||||
|
||||
type ActLogInfo struct {
|
||||
@ -53,6 +66,11 @@ type ApplyInfo struct {
|
||||
Uid int64
|
||||
}
|
||||
|
||||
const (
|
||||
REPLY_TYPE_GREETING = 1 // 问候
|
||||
REPLY_TYPE_GREETING_Get = 2 // 收到问候
|
||||
)
|
||||
|
||||
// 24小时内与玩家进行过以下互动的用户,若被选中参加本次宠物宝藏,在其头像旁添加礼物盒
|
||||
const (
|
||||
INTERACT_TYPE_VISIT = 1 // 拜访过玩家的Pet Playroom并进行过小游戏或点赞的用户
|
||||
@ -91,6 +109,8 @@ const (
|
||||
LOG_TYPE_CARD_GIVE_ACCEPT = 28 // 接受卡牌请求
|
||||
LOG_TYPE_FRIEND_INVITE = 29 // 邀请注册
|
||||
LOG_TYPE_TREASURE_HELP = 30 // 好友宝藏帮助
|
||||
LOG_TYPE_FRIEND_SPONSOR = 31 // 好友赞助体力
|
||||
LOG_TYPE_FRIEND_SPONSOR_GET = 32 // 获得好友赞助体力
|
||||
)
|
||||
|
||||
const (
|
||||
@ -183,6 +203,10 @@ func (f *FriendMod) InitData() {
|
||||
}
|
||||
}
|
||||
|
||||
func (f *FriendMod) ZeroUpdate() {
|
||||
f.DailySponsor = f.GetDailySponsorLimit()
|
||||
}
|
||||
|
||||
func (f *FriendMod) GetNpc() []int {
|
||||
return f.Npc
|
||||
}
|
||||
@ -474,3 +498,51 @@ func (f *FriendMod) GetActLogLast() *ActLogInfo {
|
||||
}
|
||||
return f.ActivityLog[len(f.ActivityLog)-1]
|
||||
}
|
||||
|
||||
func (f *FriendMod) AddReplyInfo(Uid int, Type int, Param string) {
|
||||
f.AutoId++
|
||||
EndTime := GoUtil.Now() + 24*3600
|
||||
f.ReplyList = append(f.ReplyList, &ReplyInfo{
|
||||
Id: f.AutoId,
|
||||
Uid: Uid,
|
||||
Type: Type,
|
||||
Param: Param,
|
||||
Status: 0,
|
||||
AddTime: GoUtil.Now(),
|
||||
EndTime: EndTime,
|
||||
})
|
||||
}
|
||||
|
||||
func (f *FriendMod) ReplyFriend(LogId int) *ReplyInfo {
|
||||
for _, v := range f.ReplyList {
|
||||
if v.Id == LogId {
|
||||
v.Status = 1
|
||||
v.ReplyTime = GoUtil.Now()
|
||||
return v
|
||||
}
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func (f *FriendMod) GetSponsor() int {
|
||||
return f.DailySponsor
|
||||
}
|
||||
|
||||
func (f *FriendMod) GetDailySponsorLimit() int {
|
||||
len := len(f.FriendList)
|
||||
if len < 5 {
|
||||
return 3
|
||||
}
|
||||
if len <= 30 {
|
||||
return 2
|
||||
}
|
||||
return 1
|
||||
}
|
||||
|
||||
func (f *FriendMod) GetSponsorReward() ([]*item.Item, error) {
|
||||
if f.DailySponsor <= 0 {
|
||||
return nil, fmt.Errorf("no sponsor left")
|
||||
}
|
||||
f.DailySponsor--
|
||||
return []*item.Item{item.NewItem(item.ITEM_ENERGY_ID, 25)}, nil
|
||||
}
|
||||
|
||||
@ -104,6 +104,9 @@ const (
|
||||
|
||||
HANDLE_TYPE_VAR_EXPIRE_SET // 设置全服过期数据
|
||||
HANDLE_TYPE_VAR_EXPIRE_GET // 获取全服过期数据
|
||||
|
||||
HANDLE_TYPE_FRIEND_GREETING_REPLY // 好友问候回复
|
||||
HANDLE_TYPE_FRIEND_SPONSOER // 好友赞助体力
|
||||
)
|
||||
|
||||
const (
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue
Block a user