心愿单

This commit is contained in:
hahwu 2025-04-01 17:19:40 +08:00
parent f5995941af
commit bd5176db26
8 changed files with 2286 additions and 1988 deletions

View File

@ -206,14 +206,6 @@ 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 {

View File

@ -36,6 +36,14 @@ func GetShopItem(Id int) (int, []*item.Item) {
return gamedata.GetIntValue(data, "ItemId"), gamedata.GetItemList(data, "Cost")
}
func GetShopWish(Id int) int {
data, err := gamedata.GetDataByIntKey(CFG_PLAYROOM_SHOP, Id)
if err != nil {
return 0
}
return gamedata.GetIntValue(data, "Wish")
}
func GetUnLockLv() int {
data, err := gamedata.GetDataByKey(CFG_PLAYROOM_CONST, "Lv")
if err != nil {

View File

@ -701,10 +701,12 @@ func (ad *GameLogic) RegisterNetWorkFunc() {
RegisterMsgProcessFunc("ReqFriendList", ReqFriendList) // 请求好友列表
RegisterMsgProcessFunc("ReqFriendApply", ReqFriendApply) // 请求申请好友列表
RegisterMsgProcessFunc("ReqFriendCardMsg", ReqFriendCardMsg) // 请求好友卡牌申请列表
RegisterMsgProcessFunc("ReqWishApplyList", ReqWishApplyList) // 请求好友心愿单申请列表
RegisterMsgProcessFunc("ReqFriendTimeLine", ReqFriendTimeLine) // 请求好友时间线
RegisterMsgProcessFunc("ReqFriendRecommend", ReqFriendRecommend) // 获取推荐好友
RegisterMsgProcessFunc("ReqFriendTLUpvote", ReqFriendTLUpvote) // 请求时间线点赞
RegisterMsgProcessFunc("ReqAddNpc", ReqAddNpc) // 增加npc
RegisterMsgProcessFunc("ReqWishApply", ReqWishApply) // 同意好友心愿单请求
RegisterMsgProcessFunc("ReqSearchPlayer", ReqSearchPlayer) // 搜索好友
RegisterMsgProcessFunc("ReqApplyFriend", ReqApplyFriend) // 申请好友

View File

@ -256,6 +256,11 @@ func handle(p *Player, m *msg.Msg) error {
case msg.HANDLE_TYPE_WISHLIST_SEND: // 发送愿望单请求
FriendMod := p.PlayMod.getFriendMod()
FriendMod.AddWishApply(int64(m.From))
case msg.HANDLE_TYPE_WISHLIST_AGREE:
ChargeMod := p.PlayMod.getChargeMod()
ChargeMod.AddWishCount()
p.AddLog(m.From, friend.LOG_TYPE_WISH, "")
p.PushClientRes(ChargeMod.BackData())
default:
log.Debug("uid : %d, handle msg type : %d not exist", p.M_DwUin, m.Type)
}

View File

@ -4097,3 +4097,53 @@ func ReqSendWishBeg(player *Player, buf []byte) error {
})
return nil
}
func ReqWishApplyList(player *Player, buf []byte) error {
req := &msg.ReqWishApplyList{}
proto.Unmarshal(buf, req)
FriendMod := player.PlayMod.getFriendMod()
List := FriendMod.GetWishApply()
rs := make([]*msg.ResFriendApplyInfo, 0)
for _, v := range List {
PD := G_GameLogicPtr.GetResSimplePlayerByUid(int(v.Uid))
if PD == nil {
continue
}
rs = append(rs, &msg.ResFriendApplyInfo{
Player: PD,
Time: int32(v.Time),
})
}
player.PlayMod.save()
player.PushClientRes(&msg.ResWishApplyList{
ApplyList: rs,
})
return nil
}
func ReqWishApply(player *Player, buf []byte) error {
req := &msg.ReqWishApply{}
proto.Unmarshal(buf, req)
FriendMod := player.PlayMod.getFriendMod()
err := FriendMod.ApplyWish(req.Uid)
if err != nil {
player.SendErrClienRes(&msg.ResWishApply{
Code: msg.RES_CODE_FAIL,
Msg: err.Error(),
})
return err
}
FriendMgrSend(&MsqMod.Msg{
From: int(player.M_DwUin),
To: int(req.Uid),
Type: MsqMod.HANDLE_TYPE_WISHLIST_AGREE,
SendT: GoUtil.Now(),
})
player.PlayMod.save()
player.PushClientRes(&msg.ResWishApply{
Code: msg.RES_CODE_SUCCESS,
Uid: req.Uid,
})
return nil
}

View File

@ -337,7 +337,7 @@ func (c *ChargeMod) GetWish() ([]*item.Item, error) {
if c.WishList.ItemId == 0 {
return nil, fmt.Errorf("AddWishCount itemid not exist")
}
Max := chargeCfg.GetWishCount()
Max := playroomCfg.GetShopWish(c.WishList.ItemId)
if c.WishList.Count < Max {
return nil, fmt.Errorf("AddWishCount count max")
}
@ -355,3 +355,14 @@ func (c *ChargeMod) SendWishBeg(Uids []int64) error {
c.WishList.SendList = append(c.WishList.SendList, Uids...)
return nil
}
func (c *ChargeMod) AddWishCount() {
if c.WishList.ItemId == 0 {
return
}
Max := playroomCfg.GetShopWish(c.WishList.ItemId)
if c.WishList.Count >= Max {
return
}
c.WishList.Count++
}

View File

@ -49,6 +49,7 @@ const (
LOG_TYPE_HANDBOOK_UPVOTE = 17 // 图鉴点赞
LOG_TYPE_CHARGE_SEND = 18 // 赠送充值礼物
LOG_TYPE_CHARGE_RECEIVE = 19 // 收到充值礼物
LOG_TYPE_WISH = 20 // 心愿单请求
)
const (
@ -235,3 +236,25 @@ func (f *FriendMod) AddWishApply(Uid int64) error {
})
return nil
}
func (f *FriendMod) GetWishApply() []*ApplyInfo {
rs := []*ApplyInfo{}
for _, v := range f.Apply {
if v.Type == APPLY_TYPE_WISH {
rs = append(rs, v)
}
}
return rs
}
func (f *FriendMod) ApplyWish(Uid int64) error {
for k, v := range f.Apply {
if v.Type == APPLY_TYPE_WISH && v.Uid == Uid {
r := make([]*ApplyInfo, len(f.Apply)-1)
copy(r, f.Apply[:k])
f.Apply = append(r, f.Apply[k+1:]...)
return nil
}
}
return fmt.Errorf("wish apply not exist")
}

File diff suppressed because it is too large Load Diff