增加NPC校验
This commit is contained in:
parent
9512b7b0e0
commit
8348e26ac4
19
src/server/conf/friend/friendCfg.go
Normal file
19
src/server/conf/friend/friendCfg.go
Normal file
@ -0,0 +1,19 @@
|
||||
package friendCfg
|
||||
|
||||
import "server/gamedata"
|
||||
|
||||
const (
|
||||
CFG_NPC_FRIENDS = "NPCFriends"
|
||||
)
|
||||
|
||||
func init() {
|
||||
gamedata.InitCfg(CFG_NPC_FRIENDS)
|
||||
}
|
||||
|
||||
func IsNpcFriend(Id int) bool {
|
||||
_, err := gamedata.GetDataByIntKey(CFG_NPC_FRIENDS, Id)
|
||||
if err != nil {
|
||||
return false
|
||||
}
|
||||
return true
|
||||
}
|
||||
@ -5004,7 +5004,14 @@ func ReqAddNpc(player *Player, buf []byte) error {
|
||||
return err
|
||||
}
|
||||
FriendMod := player.PlayMod.getFriendMod()
|
||||
FriendMod.SetNpc(int(req.NpcId))
|
||||
err = FriendMod.SetNpc(int(req.NpcId))
|
||||
if err != nil {
|
||||
player.SendErrClienRes(&msg.ResAddNpc{
|
||||
Code: msg.RES_CODE_FAIL,
|
||||
Msg: err.Error(),
|
||||
})
|
||||
return err
|
||||
}
|
||||
if len(FriendMod.Npc) == 1 { // 首次添加NPC 视为邀请好友成功
|
||||
InviteMod := player.PlayMod.getInviteMod()
|
||||
InviteMod.AddInvite(int(req.NpcId))
|
||||
|
||||
@ -4,6 +4,7 @@ import (
|
||||
"fmt"
|
||||
"server/GoUtil"
|
||||
cardCfg "server/conf/card"
|
||||
friendCfg "server/conf/friend"
|
||||
"server/game/mod/card"
|
||||
"server/game/mod/item"
|
||||
"server/msg"
|
||||
@ -214,8 +215,12 @@ func (f *FriendMod) GetNpc() []int {
|
||||
return f.Npc
|
||||
}
|
||||
|
||||
func (f *FriendMod) SetNpc(id int) {
|
||||
func (f *FriendMod) SetNpc(id int) error {
|
||||
if !friendCfg.IsNpcFriend(id) {
|
||||
return fmt.Errorf("not npc friend")
|
||||
}
|
||||
f.Npc = append(f.Npc, id)
|
||||
return nil
|
||||
}
|
||||
|
||||
func (f *FriendMod) GetSyncId() int64 {
|
||||
|
||||
Loading…
Reference in New Issue
Block a user