表情功能开发
This commit is contained in:
parent
caa096e79c
commit
a2e79d0962
@ -410,6 +410,7 @@ func (ad *GameLogic) GetResSimplePlayerByUid(Id int) *msg.ResPlayerSimple {
|
||||
Decorate: int32(player.Decorate),
|
||||
Login: int32(player.Login),
|
||||
Loginout: int32(player.Loginout),
|
||||
Emoji: GoUtil.MapIntToInt32(player.Emoji),
|
||||
}
|
||||
}
|
||||
|
||||
@ -717,6 +718,8 @@ func (ad *GameLogic) RegisterNetWorkFunc() {
|
||||
RegisterMsgProcessFunc("ReqSetFace", ReqSetFace) // 设置头像
|
||||
// 头像框
|
||||
RegisterMsgProcessFunc("ReqSetAvatar", ReqSetAvatar) // 设置头像框
|
||||
// 表情
|
||||
RegisterMsgProcessFunc("ReqSetEmoji", ReqSetEmoji) // 设置表情
|
||||
|
||||
// 七日签到
|
||||
RegisterMsgProcessFunc("ReqGetSevenLoginReward", ReqGetSevenLoginReward) // 领取七日签到奖励
|
||||
|
||||
@ -719,6 +719,7 @@ func (p *Player) GetSimpleData(Uid int, simple *PlayerSimpleData) error {
|
||||
simple.WorkStart = p.PlayMod.getPlayroomMod().Starttime
|
||||
simple.Chip = p.PlayMod.getPlayroomMod().Chip
|
||||
simple.PetName = p.PlayMod.getBaseMod().PetName
|
||||
simple.Emoji = p.PlayMod.getEmojiMod().Set
|
||||
return nil
|
||||
}
|
||||
|
||||
@ -742,6 +743,7 @@ func (p *Player) UpdateUserInfo() {
|
||||
simple.WorkStart = p.PlayMod.getPlayroomMod().Starttime
|
||||
simple.Chip = p.PlayMod.getPlayroomMod().Chip
|
||||
simple.PetName = p.PlayMod.getBaseMod().PetName
|
||||
simple.Emoji = p.PlayMod.getEmojiMod().Set
|
||||
value, _ := json.Marshal(simple)
|
||||
IdStr := strconv.Itoa(int(p.M_DwUin))
|
||||
db.RedisSetKey(IdStr, string(value), 0)
|
||||
|
||||
@ -491,6 +491,7 @@ func BackUserInfo(p *Player) {
|
||||
DecorateCnt: int32(DecorateMod.DecorateNum),
|
||||
AvatarList: AvatarMod.BackData(),
|
||||
FaceList: FaceMod.BackData(),
|
||||
EmojiList: p.PlayMod.getEmojiMod().BackData(),
|
||||
Login: int32(BaseMod.GetLoginTime()),
|
||||
PetName: BaseMod.PetName,
|
||||
})
|
||||
@ -644,6 +645,7 @@ func PlayroomVisit(p *Player, Uid int) {
|
||||
r.Playroom = GoUtil.MapIntToInt32(PlayerData.Playroom)
|
||||
r.GameId = int32(PlayroomMod.GameId)
|
||||
r.Defense = Work
|
||||
r.Emoji = GoUtil.MapIntToInt32(PlayerData.Emoji)
|
||||
r.Chip = int32(PlayerData.Chip)
|
||||
r.PetName = p.PlayMod.getBaseMod().GetPetName()
|
||||
Items := make(map[int32]*proto.ItemInfo, 0)
|
||||
|
||||
@ -13,6 +13,7 @@ import (
|
||||
"server/game/mod/chess"
|
||||
"server/game/mod/dailyTask"
|
||||
"server/game/mod/decorate"
|
||||
"server/game/mod/emoji"
|
||||
"server/game/mod/endless"
|
||||
"server/game/mod/face"
|
||||
"server/game/mod/friend"
|
||||
@ -71,6 +72,7 @@ type PlayerModList struct {
|
||||
Race race.RaceMod // 竞赛活动
|
||||
Playroom playroom.PlayroomMod // 玩家小屋
|
||||
FriendTreasure friendTreasure.FriendTreasureMod // 好友宝藏
|
||||
Emoji emoji.EmojiMod // 表情
|
||||
}
|
||||
|
||||
func (p *PlayerModData) LoadDataFromDB(dwUin interface{}) bool {
|
||||
@ -344,3 +346,7 @@ func (p *PlayerMod) getPlayroomMod() *playroom.PlayroomMod {
|
||||
func (p *PlayerMod) getFriendTreasureMod() *friendTreasure.FriendTreasureMod {
|
||||
return &p.mod_list.FriendTreasure
|
||||
}
|
||||
|
||||
func (p *PlayerMod) getEmojiMod() *emoji.EmojiMod {
|
||||
return &p.mod_list.Emoji
|
||||
}
|
||||
|
||||
@ -3504,3 +3504,23 @@ func ReqCardHandbookReward(player *Player, buf []byte) error {
|
||||
})
|
||||
return nil
|
||||
}
|
||||
|
||||
// 设置表情
|
||||
func ReqSetEmoji(player *Player, buf []byte) error {
|
||||
req := &msg.ReqSetEmoji{}
|
||||
proto.Unmarshal(buf, req)
|
||||
EmojiMod := player.PlayMod.getEmojiMod()
|
||||
err := EmojiMod.SetEmoji(int(req.Id), int(req.Type))
|
||||
if err != nil {
|
||||
player.SendErrClienRes(&msg.ResSetEmoji{
|
||||
Code: msg.RES_CODE_FAIL,
|
||||
Msg: err.Error(),
|
||||
})
|
||||
return err
|
||||
}
|
||||
player.PlayMod.save()
|
||||
player.PushClientRes(&msg.ResSetEmoji{
|
||||
Code: msg.RES_CODE_SUCCESS,
|
||||
})
|
||||
return nil
|
||||
}
|
||||
|
||||
@ -17,6 +17,7 @@ type PlayerSimpleData struct {
|
||||
WorkStart int64
|
||||
Chip int
|
||||
PetName string
|
||||
Emoji map[int]int
|
||||
}
|
||||
|
||||
type VarGoldCard struct {
|
||||
|
||||
@ -14,14 +14,18 @@ type AvatarMod struct {
|
||||
|
||||
type Avatar struct {
|
||||
Ts int64 // 过期时间 0表示永久
|
||||
AddTime int64
|
||||
}
|
||||
|
||||
func (a *AvatarMod) InitData() {
|
||||
now := GoUtil.Now()
|
||||
if a.List == nil {
|
||||
a.List = make(map[int]Avatar)
|
||||
InitId := avatarCfg.GetInitList()
|
||||
for _, v := range InitId {
|
||||
a.List[v] = Avatar{}
|
||||
a.List[v] = Avatar{
|
||||
AddTime: now,
|
||||
}
|
||||
}
|
||||
a.SetId = 1
|
||||
}
|
||||
@ -44,8 +48,10 @@ func (a *AvatarMod) Unlock(Id, Time int) error {
|
||||
v.Ts += int64(Time)
|
||||
return nil
|
||||
}
|
||||
now := GoUtil.Now()
|
||||
a.List[Id] = Avatar{
|
||||
Ts: GoUtil.Now() + int64(Time),
|
||||
Ts: now + int64(Time),
|
||||
AddTime: now,
|
||||
}
|
||||
return nil
|
||||
}
|
||||
@ -56,6 +62,7 @@ func (a *AvatarMod) BackData() []*msg.AvatarInfo {
|
||||
l = append(l, &msg.AvatarInfo{
|
||||
Id: int32(k),
|
||||
EndTime: v.Ts,
|
||||
AddTime: v.AddTime,
|
||||
})
|
||||
}
|
||||
// 返回数据
|
||||
|
||||
80
src/server/game/mod/emoji/emoji.go
Normal file
80
src/server/game/mod/emoji/emoji.go
Normal file
@ -0,0 +1,80 @@
|
||||
package emoji
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"server/GoUtil"
|
||||
avatarCfg "server/conf/avatar"
|
||||
"server/msg"
|
||||
)
|
||||
|
||||
type EmojiMod struct {
|
||||
List map[int]Emoji
|
||||
Set map[int]int
|
||||
}
|
||||
|
||||
type Emoji struct {
|
||||
Ts int64 // 过期时间 0表示永久
|
||||
AddTime int64
|
||||
}
|
||||
|
||||
const (
|
||||
EMOJI_TYPE_GREETING = iota
|
||||
EMOJI_TYPE_HAPPY
|
||||
EMOJI_TYPE_TAUNT
|
||||
EMOJI_TYPE_FAIL
|
||||
)
|
||||
|
||||
func (e *EmojiMod) InitData() {
|
||||
now := GoUtil.Now()
|
||||
if e.List == nil {
|
||||
e.List = make(map[int]Emoji)
|
||||
InitId := avatarCfg.GetInitList()
|
||||
for _, v := range InitId {
|
||||
e.List[v] = Emoji{
|
||||
AddTime: now,
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
func (e *EmojiMod) SetEmoji(Id, Type int) error {
|
||||
if Id == 0 {
|
||||
e.Set[Type] = Id
|
||||
return nil
|
||||
}
|
||||
if _, ok := e.List[Id]; !ok {
|
||||
return fmt.Errorf("emoji id not exist")
|
||||
}
|
||||
e.Set[Type] = Id
|
||||
return nil
|
||||
}
|
||||
|
||||
func (e *EmojiMod) Unlock(Id, Time int) error {
|
||||
v, ok := e.List[Id]
|
||||
if ok {
|
||||
if v.Ts == 0 {
|
||||
return nil
|
||||
}
|
||||
v.Ts += int64(Time)
|
||||
return nil
|
||||
}
|
||||
now := GoUtil.Now()
|
||||
e.List[Id] = Emoji{
|
||||
Ts: now + int64(Time),
|
||||
AddTime: now,
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func (e *EmojiMod) BackData() []*msg.EmojiInfo {
|
||||
l := make([]*msg.EmojiInfo, 0)
|
||||
for k, v := range e.List {
|
||||
l = append(l, &msg.EmojiInfo{
|
||||
Id: int32(k),
|
||||
EndTime: v.Ts,
|
||||
AddTime: v.AddTime,
|
||||
})
|
||||
}
|
||||
return l
|
||||
}
|
||||
@ -2,6 +2,7 @@ package face
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"server/GoUtil"
|
||||
faceCfg "server/conf/face"
|
||||
"server/msg"
|
||||
)
|
||||
@ -13,14 +14,18 @@ type FaceMod struct {
|
||||
|
||||
type Face struct {
|
||||
Ts int64 // 过期时间 0表示永久
|
||||
AddTime int64
|
||||
}
|
||||
|
||||
func (f *FaceMod) InitData() {
|
||||
now := GoUtil.Now()
|
||||
if f.List == nil {
|
||||
f.List = make(map[int]Face)
|
||||
InitId := faceCfg.GetInitList()
|
||||
for _, v := range InitId {
|
||||
f.List[v] = Face{}
|
||||
f.List[v] = Face{
|
||||
AddTime: now,
|
||||
}
|
||||
}
|
||||
f.SetId = 1
|
||||
}
|
||||
@ -38,12 +43,30 @@ func (f *FaceMod) SetFace(Id int) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
func (a *FaceMod) Unlock(Id, Time int) error {
|
||||
v, ok := a.List[Id]
|
||||
if ok {
|
||||
if v.Ts == 0 {
|
||||
return nil
|
||||
}
|
||||
v.Ts += int64(Time)
|
||||
return nil
|
||||
}
|
||||
now := GoUtil.Now()
|
||||
a.List[Id] = Face{
|
||||
Ts: now + int64(Time),
|
||||
AddTime: now,
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func (f *FaceMod) BackData() []*msg.FaceInfo {
|
||||
l := make([]*msg.FaceInfo, 0)
|
||||
for k, v := range f.List {
|
||||
l = append(l, &msg.FaceInfo{
|
||||
Id: int32(k),
|
||||
EndTime: v.Ts,
|
||||
AddTime: v.AddTime,
|
||||
})
|
||||
}
|
||||
return l
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue
Block a user