表情功能开发
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),
|
Decorate: int32(player.Decorate),
|
||||||
Login: int32(player.Login),
|
Login: int32(player.Login),
|
||||||
Loginout: int32(player.Loginout),
|
Loginout: int32(player.Loginout),
|
||||||
|
Emoji: GoUtil.MapIntToInt32(player.Emoji),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -717,6 +718,8 @@ func (ad *GameLogic) RegisterNetWorkFunc() {
|
|||||||
RegisterMsgProcessFunc("ReqSetFace", ReqSetFace) // 设置头像
|
RegisterMsgProcessFunc("ReqSetFace", ReqSetFace) // 设置头像
|
||||||
// 头像框
|
// 头像框
|
||||||
RegisterMsgProcessFunc("ReqSetAvatar", ReqSetAvatar) // 设置头像框
|
RegisterMsgProcessFunc("ReqSetAvatar", ReqSetAvatar) // 设置头像框
|
||||||
|
// 表情
|
||||||
|
RegisterMsgProcessFunc("ReqSetEmoji", ReqSetEmoji) // 设置表情
|
||||||
|
|
||||||
// 七日签到
|
// 七日签到
|
||||||
RegisterMsgProcessFunc("ReqGetSevenLoginReward", ReqGetSevenLoginReward) // 领取七日签到奖励
|
RegisterMsgProcessFunc("ReqGetSevenLoginReward", ReqGetSevenLoginReward) // 领取七日签到奖励
|
||||||
|
|||||||
@ -719,6 +719,7 @@ func (p *Player) GetSimpleData(Uid int, simple *PlayerSimpleData) error {
|
|||||||
simple.WorkStart = p.PlayMod.getPlayroomMod().Starttime
|
simple.WorkStart = p.PlayMod.getPlayroomMod().Starttime
|
||||||
simple.Chip = p.PlayMod.getPlayroomMod().Chip
|
simple.Chip = p.PlayMod.getPlayroomMod().Chip
|
||||||
simple.PetName = p.PlayMod.getBaseMod().PetName
|
simple.PetName = p.PlayMod.getBaseMod().PetName
|
||||||
|
simple.Emoji = p.PlayMod.getEmojiMod().Set
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -742,6 +743,7 @@ func (p *Player) UpdateUserInfo() {
|
|||||||
simple.WorkStart = p.PlayMod.getPlayroomMod().Starttime
|
simple.WorkStart = p.PlayMod.getPlayroomMod().Starttime
|
||||||
simple.Chip = p.PlayMod.getPlayroomMod().Chip
|
simple.Chip = p.PlayMod.getPlayroomMod().Chip
|
||||||
simple.PetName = p.PlayMod.getBaseMod().PetName
|
simple.PetName = p.PlayMod.getBaseMod().PetName
|
||||||
|
simple.Emoji = p.PlayMod.getEmojiMod().Set
|
||||||
value, _ := json.Marshal(simple)
|
value, _ := json.Marshal(simple)
|
||||||
IdStr := strconv.Itoa(int(p.M_DwUin))
|
IdStr := strconv.Itoa(int(p.M_DwUin))
|
||||||
db.RedisSetKey(IdStr, string(value), 0)
|
db.RedisSetKey(IdStr, string(value), 0)
|
||||||
|
|||||||
@ -491,6 +491,7 @@ func BackUserInfo(p *Player) {
|
|||||||
DecorateCnt: int32(DecorateMod.DecorateNum),
|
DecorateCnt: int32(DecorateMod.DecorateNum),
|
||||||
AvatarList: AvatarMod.BackData(),
|
AvatarList: AvatarMod.BackData(),
|
||||||
FaceList: FaceMod.BackData(),
|
FaceList: FaceMod.BackData(),
|
||||||
|
EmojiList: p.PlayMod.getEmojiMod().BackData(),
|
||||||
Login: int32(BaseMod.GetLoginTime()),
|
Login: int32(BaseMod.GetLoginTime()),
|
||||||
PetName: BaseMod.PetName,
|
PetName: BaseMod.PetName,
|
||||||
})
|
})
|
||||||
@ -644,6 +645,7 @@ func PlayroomVisit(p *Player, Uid int) {
|
|||||||
r.Playroom = GoUtil.MapIntToInt32(PlayerData.Playroom)
|
r.Playroom = GoUtil.MapIntToInt32(PlayerData.Playroom)
|
||||||
r.GameId = int32(PlayroomMod.GameId)
|
r.GameId = int32(PlayroomMod.GameId)
|
||||||
r.Defense = Work
|
r.Defense = Work
|
||||||
|
r.Emoji = GoUtil.MapIntToInt32(PlayerData.Emoji)
|
||||||
r.Chip = int32(PlayerData.Chip)
|
r.Chip = int32(PlayerData.Chip)
|
||||||
r.PetName = p.PlayMod.getBaseMod().GetPetName()
|
r.PetName = p.PlayMod.getBaseMod().GetPetName()
|
||||||
Items := make(map[int32]*proto.ItemInfo, 0)
|
Items := make(map[int32]*proto.ItemInfo, 0)
|
||||||
|
|||||||
@ -13,6 +13,7 @@ import (
|
|||||||
"server/game/mod/chess"
|
"server/game/mod/chess"
|
||||||
"server/game/mod/dailyTask"
|
"server/game/mod/dailyTask"
|
||||||
"server/game/mod/decorate"
|
"server/game/mod/decorate"
|
||||||
|
"server/game/mod/emoji"
|
||||||
"server/game/mod/endless"
|
"server/game/mod/endless"
|
||||||
"server/game/mod/face"
|
"server/game/mod/face"
|
||||||
"server/game/mod/friend"
|
"server/game/mod/friend"
|
||||||
@ -71,6 +72,7 @@ type PlayerModList struct {
|
|||||||
Race race.RaceMod // 竞赛活动
|
Race race.RaceMod // 竞赛活动
|
||||||
Playroom playroom.PlayroomMod // 玩家小屋
|
Playroom playroom.PlayroomMod // 玩家小屋
|
||||||
FriendTreasure friendTreasure.FriendTreasureMod // 好友宝藏
|
FriendTreasure friendTreasure.FriendTreasureMod // 好友宝藏
|
||||||
|
Emoji emoji.EmojiMod // 表情
|
||||||
}
|
}
|
||||||
|
|
||||||
func (p *PlayerModData) LoadDataFromDB(dwUin interface{}) bool {
|
func (p *PlayerModData) LoadDataFromDB(dwUin interface{}) bool {
|
||||||
@ -344,3 +346,7 @@ func (p *PlayerMod) getPlayroomMod() *playroom.PlayroomMod {
|
|||||||
func (p *PlayerMod) getFriendTreasureMod() *friendTreasure.FriendTreasureMod {
|
func (p *PlayerMod) getFriendTreasureMod() *friendTreasure.FriendTreasureMod {
|
||||||
return &p.mod_list.FriendTreasure
|
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
|
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
|
WorkStart int64
|
||||||
Chip int
|
Chip int
|
||||||
PetName string
|
PetName string
|
||||||
|
Emoji map[int]int
|
||||||
}
|
}
|
||||||
|
|
||||||
type VarGoldCard struct {
|
type VarGoldCard struct {
|
||||||
|
|||||||
@ -14,14 +14,18 @@ type AvatarMod struct {
|
|||||||
|
|
||||||
type Avatar struct {
|
type Avatar struct {
|
||||||
Ts int64 // 过期时间 0表示永久
|
Ts int64 // 过期时间 0表示永久
|
||||||
|
AddTime int64
|
||||||
}
|
}
|
||||||
|
|
||||||
func (a *AvatarMod) InitData() {
|
func (a *AvatarMod) InitData() {
|
||||||
|
now := GoUtil.Now()
|
||||||
if a.List == nil {
|
if a.List == nil {
|
||||||
a.List = make(map[int]Avatar)
|
a.List = make(map[int]Avatar)
|
||||||
InitId := avatarCfg.GetInitList()
|
InitId := avatarCfg.GetInitList()
|
||||||
for _, v := range InitId {
|
for _, v := range InitId {
|
||||||
a.List[v] = Avatar{}
|
a.List[v] = Avatar{
|
||||||
|
AddTime: now,
|
||||||
|
}
|
||||||
}
|
}
|
||||||
a.SetId = 1
|
a.SetId = 1
|
||||||
}
|
}
|
||||||
@ -44,8 +48,10 @@ func (a *AvatarMod) Unlock(Id, Time int) error {
|
|||||||
v.Ts += int64(Time)
|
v.Ts += int64(Time)
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
now := GoUtil.Now()
|
||||||
a.List[Id] = Avatar{
|
a.List[Id] = Avatar{
|
||||||
Ts: GoUtil.Now() + int64(Time),
|
Ts: now + int64(Time),
|
||||||
|
AddTime: now,
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
@ -56,6 +62,7 @@ func (a *AvatarMod) BackData() []*msg.AvatarInfo {
|
|||||||
l = append(l, &msg.AvatarInfo{
|
l = append(l, &msg.AvatarInfo{
|
||||||
Id: int32(k),
|
Id: int32(k),
|
||||||
EndTime: v.Ts,
|
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 (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
|
"server/GoUtil"
|
||||||
faceCfg "server/conf/face"
|
faceCfg "server/conf/face"
|
||||||
"server/msg"
|
"server/msg"
|
||||||
)
|
)
|
||||||
@ -13,14 +14,18 @@ type FaceMod struct {
|
|||||||
|
|
||||||
type Face struct {
|
type Face struct {
|
||||||
Ts int64 // 过期时间 0表示永久
|
Ts int64 // 过期时间 0表示永久
|
||||||
|
AddTime int64
|
||||||
}
|
}
|
||||||
|
|
||||||
func (f *FaceMod) InitData() {
|
func (f *FaceMod) InitData() {
|
||||||
|
now := GoUtil.Now()
|
||||||
if f.List == nil {
|
if f.List == nil {
|
||||||
f.List = make(map[int]Face)
|
f.List = make(map[int]Face)
|
||||||
InitId := faceCfg.GetInitList()
|
InitId := faceCfg.GetInitList()
|
||||||
for _, v := range InitId {
|
for _, v := range InitId {
|
||||||
f.List[v] = Face{}
|
f.List[v] = Face{
|
||||||
|
AddTime: now,
|
||||||
|
}
|
||||||
}
|
}
|
||||||
f.SetId = 1
|
f.SetId = 1
|
||||||
}
|
}
|
||||||
@ -38,12 +43,30 @@ func (f *FaceMod) SetFace(Id int) error {
|
|||||||
return nil
|
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 {
|
func (f *FaceMod) BackData() []*msg.FaceInfo {
|
||||||
l := make([]*msg.FaceInfo, 0)
|
l := make([]*msg.FaceInfo, 0)
|
||||||
for k, v := range f.List {
|
for k, v := range f.List {
|
||||||
l = append(l, &msg.FaceInfo{
|
l = append(l, &msg.FaceInfo{
|
||||||
Id: int32(k),
|
Id: int32(k),
|
||||||
EndTime: v.Ts,
|
EndTime: v.Ts,
|
||||||
|
AddTime: v.AddTime,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
return l
|
return l
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue
Block a user