心愿单
This commit is contained in:
parent
0084b32f0f
commit
80d0aa0996
@ -177,6 +177,15 @@ func InArray(Id int, s []int) bool {
|
||||
return false
|
||||
}
|
||||
|
||||
func InArray64(Id int64, s []int64) bool {
|
||||
for _, v := range s {
|
||||
if v == Id {
|
||||
return true
|
||||
}
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
func InStringArray(Id string, s []string) bool {
|
||||
for _, v := range s {
|
||||
if v == Id {
|
||||
|
||||
@ -206,6 +206,14 @@ func GetPiggyBankChargeId() int {
|
||||
return gamedata.GetIntValue(data, "Value")
|
||||
}
|
||||
|
||||
func GetWishCount() int {
|
||||
data, err := gamedata.GetDataByKey(CFG_CHARGE_CONST, "wish_count")
|
||||
if err != nil {
|
||||
return 0
|
||||
}
|
||||
return gamedata.GetIntValue(data, "Value")
|
||||
}
|
||||
|
||||
func GetGiftReward(ChargeId int) []*item.Item {
|
||||
data, err := gamedata.GetData(CFG_CHARGE_GIFT)
|
||||
if err != nil {
|
||||
|
||||
@ -90,12 +90,12 @@ func GetChargeSendMail(Lang int, PlayerName string) (string, string) {
|
||||
return mt, fmt.Sprintf(mc, PlayerName)
|
||||
}
|
||||
|
||||
func GetChargeReceiveMail(Lang int, PlayerName string) (string, string) {
|
||||
func GetChargeReceiveMail(Lang int, PlayerName string, Content string) (string, string) {
|
||||
data, err := gamedata.GetDataByIntKey(CFG_MAIL, MAIL_CHARGE_RECEIVE_ID)
|
||||
if err != nil {
|
||||
return "", ""
|
||||
}
|
||||
mt := languageCfg.GetLanguage(Lang, gamedata.GetStringValue(data, "Title"))
|
||||
mc := languageCfg.GetLanguage(Lang, gamedata.GetStringValue(data, "Content"))
|
||||
return mt, fmt.Sprintf(mc, PlayerName)
|
||||
return fmt.Sprintf(mt, PlayerName), fmt.Sprintf(mc, Content)
|
||||
}
|
||||
|
||||
@ -67,6 +67,8 @@ func (f *FriendMgr) Init() {
|
||||
f.RegisterHandler(msg.HANDLE_TYPE_HANDBOOK_UPVOTE, f.sendToPlayer)
|
||||
f.RegisterHandler(msg.HANDLE_TYPE_SEND_CHARGE, f.sendToPlayer)
|
||||
f.RegisterHandler(msg.HANDLE_TYPE_CHARGE_RECEIVE, f.sendToPlayer)
|
||||
f.RegisterHandler(msg.HANDLE_TYPE_WISHLIST_SEND, f.sendToPlayer)
|
||||
f.RegisterHandler(msg.HANDLE_TYPE_WISHLIST_AGREE, f.sendToPlayer)
|
||||
}
|
||||
|
||||
func (f *FriendMgr) getData() *FirendData {
|
||||
|
||||
@ -737,7 +737,9 @@ func (ad *GameLogic) RegisterNetWorkFunc() {
|
||||
RegisterMsgProcessFunc("ReqBuyChessShop", ReqBuyChessShop) // 购买商店棋子
|
||||
RegisterMsgProcessFunc("ReqBuyChessShop2", ReqBuyChessShop2) // 购买商店棋子直接加入棋盘
|
||||
RegisterMsgProcessFunc("ReqRefreshChessShop", ReqRefreshChessShop) // 刷新棋子商店
|
||||
|
||||
RegisterMsgProcessFunc("ReqAddWish", ReqAddWish) // 添加心愿单
|
||||
RegisterMsgProcessFunc("ReqGetWish", ReqGetWish) // 领取心愿单奖励
|
||||
RegisterMsgProcessFunc("ReqSendWishBeg", ReqSendWishBeg) // 发送心愿单请求
|
||||
// 无尽礼包
|
||||
RegisterMsgProcessFunc("ReqEndless", ReqEndless) // 请求无尽礼包数据
|
||||
RegisterMsgProcessFunc("ReqEndlessReward", ReqEndlessReward) // 领取无尽礼包免费奖励
|
||||
|
||||
@ -234,7 +234,6 @@ func handle(p *Player, m *msg.Msg) error {
|
||||
C = m.Extra.(*ChargeExtra)
|
||||
}
|
||||
PlayerSimpleData := G_GameLogicPtr.GetResSimplePlayerByUid(m.From)
|
||||
|
||||
MailMod := p.PlayMod.getMailMod()
|
||||
BaseMod := p.PlayMod.getBaseMod()
|
||||
mt, mc := mailCfg.GetChargeSendMail(BaseMod.GetLang(), PlayerSimpleData.Name)
|
||||
@ -247,12 +246,16 @@ func handle(p *Player, m *msg.Msg) error {
|
||||
if m.Extra != nil {
|
||||
Content = m.Extra.(string)
|
||||
}
|
||||
PlayerSimpleData := G_GameLogicPtr.GetResSimplePlayerByUid(m.From)
|
||||
MailMod := p.PlayMod.getMailMod()
|
||||
BaseMod := p.PlayMod.getBaseMod()
|
||||
mt, mc := mailCfg.GetChargeSendMail(BaseMod.GetLang(), Content)
|
||||
mt, mc := mailCfg.GetChargeReceiveMail(BaseMod.GetLang(), PlayerSimpleData.Name, Content)
|
||||
MailId := MailMod.Send(mt, mc, nil, mail.MAIL_TYPE_NORMAL)
|
||||
p.AddLog(m.From, friend.LOG_TYPE_CHARGE_RECEIVE, fmt.Sprintf("%d", MailId))
|
||||
p.PushClientRes(MailMod.BackData())
|
||||
case msg.HANDLE_TYPE_WISHLIST_SEND: // 发送愿望单请求
|
||||
FriendMod := p.PlayMod.getFriendMod()
|
||||
FriendMod.AddWishApply(int64(m.From))
|
||||
default:
|
||||
log.Debug("uid : %d, handle msg type : %d not exist", p.M_DwUin, m.Type)
|
||||
}
|
||||
@ -365,12 +368,13 @@ func SyncMailMsg(p *Player) {
|
||||
func FriendListBackData(p *Player) {
|
||||
FriendMod := p.PlayMod.getFriendMod()
|
||||
var fl []*proto.ResPlayerSimple
|
||||
for k := range FriendMod.GetFriendList() {
|
||||
for k, v := range FriendMod.GetFriendList() {
|
||||
if k == int(p.M_DwUin) {
|
||||
continue
|
||||
}
|
||||
ps := G_GameLogicPtr.GetResSimplePlayerByUid(k)
|
||||
if ps != nil {
|
||||
ps.AddTime = v.AddTime
|
||||
fl = append(fl, ps)
|
||||
}
|
||||
}
|
||||
@ -638,14 +642,14 @@ func PlayroomBackData(p *Player) {
|
||||
}
|
||||
}
|
||||
Friend := FriendMod.GetFriendList()
|
||||
for _, v := range Friend {
|
||||
ps := G_GameLogicPtr.GetSimplePlayerByUid(v)
|
||||
for k := range Friend {
|
||||
ps := G_GameLogicPtr.GetSimplePlayerByUid(k)
|
||||
if ps == nil {
|
||||
continue
|
||||
}
|
||||
Times, _ := PlayroomMod.GetVisitorInfo(v)
|
||||
Times, _ := PlayroomMod.GetVisitorInfo(k)
|
||||
FriendList = append(FriendList, &proto.FriendRoom{
|
||||
Uid: int64(v),
|
||||
Uid: int64(k),
|
||||
Name: ps.Name,
|
||||
Face: int32(ps.Face),
|
||||
Avatar: int32(ps.Avatar),
|
||||
|
||||
@ -4005,3 +4005,88 @@ func ReqChargeReceive(player *Player, buf []byte) error {
|
||||
})
|
||||
return nil
|
||||
}
|
||||
|
||||
func ReqAddWish(player *Player, buf []byte) error {
|
||||
req := &msg.ReqAddWish{}
|
||||
proto.Unmarshal(buf, req)
|
||||
ChargeMod := player.PlayMod.getChargeMod()
|
||||
Items, err := ChargeMod.AddWish(int(req.Id))
|
||||
if err != nil {
|
||||
player.SendErrClienRes(&msg.ResAddWish{
|
||||
Code: msg.RES_CODE_FAIL,
|
||||
Msg: err.Error(),
|
||||
})
|
||||
return err
|
||||
}
|
||||
if Items != nil {
|
||||
err = player.HandleItem(Items, msg.ITEM_POP_LABEL_AddWish.String())
|
||||
if err != nil {
|
||||
player.SendErrClienRes(&msg.ResAddWish{
|
||||
Code: msg.RES_CODE_FAIL,
|
||||
Msg: err.Error(),
|
||||
})
|
||||
return err
|
||||
}
|
||||
}
|
||||
player.PlayMod.save()
|
||||
player.PushClientRes(&msg.ResAddWish{
|
||||
Code: msg.RES_CODE_SUCCESS,
|
||||
})
|
||||
return nil
|
||||
}
|
||||
|
||||
func ReqGetWish(player *Player, buf []byte) error {
|
||||
req := &msg.ReqGetWish{}
|
||||
proto.Unmarshal(buf, req)
|
||||
ChargeMod := player.PlayMod.getChargeMod()
|
||||
Items, err := ChargeMod.GetWish()
|
||||
if err != nil {
|
||||
player.SendErrClienRes(&msg.ResGetWish{
|
||||
Code: msg.RES_CODE_FAIL,
|
||||
Msg: err.Error(),
|
||||
})
|
||||
return err
|
||||
}
|
||||
if Items != nil {
|
||||
err = player.HandleItem(Items, msg.ITEM_POP_LABEL_GetWish.String())
|
||||
if err != nil {
|
||||
player.SendErrClienRes(&msg.ResGetWish{
|
||||
Code: msg.RES_CODE_FAIL,
|
||||
Msg: err.Error(),
|
||||
})
|
||||
return err
|
||||
}
|
||||
}
|
||||
player.PlayMod.save()
|
||||
player.PushClientRes(&msg.ResGetWish{
|
||||
Code: msg.RES_CODE_SUCCESS,
|
||||
})
|
||||
return nil
|
||||
}
|
||||
|
||||
func ReqSendWishBeg(player *Player, buf []byte) error {
|
||||
req := &msg.ReqSendWishBeg{}
|
||||
proto.Unmarshal(buf, req)
|
||||
ChargeMod := player.PlayMod.getChargeMod()
|
||||
err := ChargeMod.SendWishBeg(req.Uid)
|
||||
if err != nil {
|
||||
player.SendErrClienRes(&msg.ResSendWishBeg{
|
||||
Code: msg.RES_CODE_FAIL,
|
||||
Msg: err.Error(),
|
||||
})
|
||||
return err
|
||||
}
|
||||
for _, v := range req.Uid {
|
||||
FriendMgrSend(&MsqMod.Msg{
|
||||
From: int(player.M_DwUin),
|
||||
To: int(v),
|
||||
Type: MsqMod.HANDLE_TYPE_WISHLIST_SEND,
|
||||
SendT: GoUtil.Now(),
|
||||
})
|
||||
}
|
||||
player.PlayMod.save()
|
||||
player.PushClientRes(&msg.ResSendWishBeg{
|
||||
Code: msg.RES_CODE_SUCCESS,
|
||||
})
|
||||
return nil
|
||||
}
|
||||
|
||||
@ -111,7 +111,7 @@ func TriggerShippingOrder(player *Player, req *msg.ReqShippingOrder) {
|
||||
|
||||
}
|
||||
if OrderData == nil {
|
||||
log.Debug("[order data nil] Uid:%d;OrderSn:%s;PayOrder:%s; OrderStatus:%d;", player.M_DwUin, OrderSn, req.ProduceId, OrderData.PayStatus)
|
||||
log.Debug("[order data nil] Uid:%d;OrderSn:%s;PayOrder:%s;", player.M_DwUin, OrderSn, req.ProduceId)
|
||||
return
|
||||
}
|
||||
log.Debug("[order verify success] Uid:%d;OrderSn:%s;PayOrder:%s;", player.M_DwUin, OrderData.OrderId, OrderData.PayChannelOrderId)
|
||||
|
||||
@ -5,6 +5,7 @@ import (
|
||||
"server/GoUtil"
|
||||
chargeCfg "server/conf/charge"
|
||||
mergeDataCfg "server/conf/mergeData"
|
||||
playroomCfg "server/conf/playroom"
|
||||
"server/game/mod/item"
|
||||
"server/msg"
|
||||
"server/pkg/github.com/name5566/leaf/log"
|
||||
@ -27,6 +28,14 @@ type ChargeMod struct {
|
||||
Gift map[int]int // 礼包
|
||||
|
||||
Ad bool // 是否购买免广告
|
||||
|
||||
WishList *WishList
|
||||
}
|
||||
|
||||
type WishList struct {
|
||||
Count int
|
||||
ItemId int
|
||||
SendList []int64
|
||||
}
|
||||
type Rand struct {
|
||||
ChessId int
|
||||
@ -66,6 +75,13 @@ func (c *ChargeMod) InitData() {
|
||||
if c.Gift == nil {
|
||||
c.Gift = make(map[int]int)
|
||||
}
|
||||
if c.WishList == nil {
|
||||
c.WishList = &WishList{
|
||||
Count: 0,
|
||||
ItemId: 0,
|
||||
SendList: make([]int64, 0),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func (c *ChargeMod) GetMaxCharge() float64 {
|
||||
@ -93,6 +109,7 @@ func (c *ChargeMod) ZeroUpdate(Emit []int) {
|
||||
SpecialGrade = max(1, M-a)
|
||||
c.SpecialShop[i] = &SepcialShop{Grade: SpecialGrade, Count: SpecialShopCount}
|
||||
}
|
||||
c.WishList.SendList = make([]int64, 0)
|
||||
c.InitChessShop(Emit)
|
||||
}
|
||||
|
||||
@ -230,6 +247,11 @@ func (c *ChargeMod) BackData() *msg.ResCharge {
|
||||
ChessShop: ChessShop,
|
||||
Gift: GoUtil.MapIntToInt32(c.Gift),
|
||||
Ad: c.Ad,
|
||||
Wish: &msg.WishList{
|
||||
Id: int32(c.WishList.ItemId),
|
||||
Count: int32(c.WishList.Count),
|
||||
Uid: c.WishList.SendList,
|
||||
},
|
||||
}
|
||||
}
|
||||
|
||||
@ -293,3 +315,43 @@ func (c *ChargeMod) TriggerChargeUnlock(Lv int, Emit []int) {
|
||||
}
|
||||
c.InitChessShop(Emit)
|
||||
}
|
||||
|
||||
func (c *ChargeMod) AddWish(Id int) ([]*item.Item, error) {
|
||||
ItemId, _ := playroomCfg.GetShopItem(Id)
|
||||
if ItemId == 0 {
|
||||
return nil, fmt.Errorf("AddWish itemid not exist id:%d", Id)
|
||||
}
|
||||
Items := []*item.Item{}
|
||||
if c.WishList.ItemId != 0 {
|
||||
if c.WishList.ItemId == ItemId {
|
||||
return nil, fmt.Errorf("AddWish itemid already exist id:%d", Id)
|
||||
}
|
||||
Items = append(Items, item.NewItem(item.ITEM_ENERGY_ID, c.WishList.Count))
|
||||
c.WishList.Count = 0
|
||||
}
|
||||
c.WishList.ItemId = ItemId
|
||||
return Items, nil
|
||||
}
|
||||
|
||||
func (c *ChargeMod) GetWish() ([]*item.Item, error) {
|
||||
if c.WishList.ItemId == 0 {
|
||||
return nil, fmt.Errorf("AddWishCount itemid not exist")
|
||||
}
|
||||
Max := chargeCfg.GetWishCount()
|
||||
if c.WishList.Count < Max {
|
||||
return nil, fmt.Errorf("AddWishCount count max")
|
||||
}
|
||||
c.WishList.Count = 0
|
||||
c.WishList.ItemId = 0
|
||||
return []*item.Item{item.NewItem(c.WishList.ItemId, 1)}, nil
|
||||
}
|
||||
|
||||
func (c *ChargeMod) SendWishBeg(Uids []int64) error {
|
||||
for _, v := range Uids {
|
||||
if GoUtil.InArray64(v, c.WishList.SendList) {
|
||||
return fmt.Errorf("SendWishBeg uid already exist uid:%d", v)
|
||||
}
|
||||
}
|
||||
c.WishList.SendList = append(c.WishList.SendList, Uids...)
|
||||
return nil
|
||||
}
|
||||
|
||||
@ -11,8 +11,9 @@ import (
|
||||
type FriendMod struct {
|
||||
FriendList map[int]struct{} // 好友列表
|
||||
NewFriendList map[int]*FriendInfo // 好友列表
|
||||
ApplyList map[int]int64 // 请求列表
|
||||
ApplyList map[int]int64 // 好友请求列表
|
||||
SendApply map[int]int64 // 发送的申请
|
||||
Apply []*ApplyInfo // 其他请求列表
|
||||
Card map[string]*card.CardInfo // 收到的申请交换
|
||||
Log []*LogInfo // 日志
|
||||
AutoId int
|
||||
@ -24,6 +25,12 @@ type FriendInfo struct {
|
||||
AddTime int64
|
||||
}
|
||||
|
||||
type ApplyInfo struct {
|
||||
Type int // 1:申请 2:同意 3:拒绝 4:删除
|
||||
Time int64
|
||||
Uid int64
|
||||
}
|
||||
|
||||
const (
|
||||
LOG_TYPE_FRIEND_APPLY = 1 // 收到申请好友
|
||||
LOG_TYPE_FRIEND_BECOME = 2 // 成为好友
|
||||
@ -51,6 +58,10 @@ const (
|
||||
FRIEND_NOTIFY_DEL = 4
|
||||
)
|
||||
|
||||
const (
|
||||
APPLY_TYPE_WISH = 1 // 心愿单请求
|
||||
)
|
||||
|
||||
type LogInfo struct {
|
||||
Id int
|
||||
Uid int
|
||||
@ -144,12 +155,8 @@ func (f *FriendMod) CheckApply(id int) bool {
|
||||
func (f *FriendMod) GetFriendNum() int {
|
||||
return len(f.NewFriendList)
|
||||
}
|
||||
func (f *FriendMod) GetFriendList() []int {
|
||||
var list []int
|
||||
for k := range f.NewFriendList {
|
||||
list = append(list, k)
|
||||
}
|
||||
return list
|
||||
func (f *FriendMod) GetFriendList() map[int]*FriendInfo {
|
||||
return f.NewFriendList
|
||||
}
|
||||
|
||||
// 收到申请
|
||||
@ -214,3 +221,17 @@ func (f *FriendMod) Upvote(Id int) ([]*item.Item, int, error) {
|
||||
info.Upvote = true
|
||||
return []*item.Item{item.NewItem(item.ITEM_ENERGY_ID, 1)}, info.Uid, nil
|
||||
}
|
||||
|
||||
func (f *FriendMod) AddWishApply(Uid int64) error {
|
||||
for _, v := range f.Apply {
|
||||
if v.Type == APPLY_TYPE_WISH && v.Uid == Uid {
|
||||
return fmt.Errorf("wish apply already exist")
|
||||
}
|
||||
}
|
||||
f.Apply = append(f.Apply, &ApplyInfo{
|
||||
Type: APPLY_TYPE_WISH,
|
||||
Uid: Uid,
|
||||
Time: GoUtil.Now(),
|
||||
})
|
||||
return nil
|
||||
}
|
||||
|
||||
@ -77,6 +77,9 @@ const (
|
||||
|
||||
HANDLE_TYPE_SEND_CHARGE //赠送充值礼包
|
||||
HANDLE_TYPE_CHARGE_RECEIVE //充值礼包领取
|
||||
|
||||
HANDLE_TYPE_WISHLIST_SEND // 发送愿望单请求
|
||||
HANDLE_TYPE_WISHLIST_AGREE // 收到愿望单请求同意
|
||||
)
|
||||
|
||||
const (
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue
Block a user