创建公会消耗道具 Bag.createGuildConsume

This commit is contained in:
殷勇 2023-11-13 14:30:56 +08:00
parent 083cf00b02
commit feba3f571d
2 changed files with 38 additions and 16 deletions

View File

@ -58,7 +58,7 @@ func (gm *GuildMgr) loadFromDB() {
}
// CreateGuild 创建公会
func (gm *GuildMgr) CreateGuild(avatar int32, name *string, leaderId string,
func (gm *GuildMgr) CreateGuild(p *Player, avatar int32, name *string, leaderId string,
cb func(errCode int32, errMsg string, guild *Guild)) {
if gm.CheckJoinGuild(leaderId) {
cb(ERR_CODE_JOINED_GUILD, "Joined guild", nil)
@ -74,6 +74,25 @@ func (gm *GuildMgr) CreateGuild(avatar int32, name *string, leaderId string,
return
}
params := map[string]string{
"c": "Bag",
"a": "createGuildConsume",
"account_id": p.GetAccountId(),
"session_id": p.GetSessionId(),
}
gm.SendRequest(params, func(errCode int32, errMsg string) {
if errCode != 0 {
cb(ERR_CODE_CREATE_GUILD_DB_FAIL, "create guild consume error ", nil)
return
}
// Bag.createGuildConsume 道具使用成功,继续创建公会
gm.createGuildInternal(guildId, avatar, name, leaderId, cb)
})
}
func (gm *GuildMgr) createGuildInternal(guildId int64, avatar int32, name *string, leaderId string,
cb func(errCode int32, errMsg string, guild *Guild)) {
unixSec := time.Now().Unix()
fields := [][]string{
{"guild_id", q5.ToString(guildId)},
@ -84,6 +103,7 @@ func (gm *GuildMgr) CreateGuild(avatar int32, name *string, leaderId string,
{"createtime", q5.ToString(unixSec)},
{"modifytime", q5.ToString(unixSec)},
}
f5.GetJsStyleDb().Insert(
FRIEND_DB,
"t_guild",
@ -136,6 +156,7 @@ func (gm *GuildMgr) CreateGuild(avatar int32, name *string, leaderId string,
EVENT_GUILD_CREATE,
prop,
)
cb(ERR_CODE_OK, "Create OK", guild)
})
})
@ -716,7 +737,15 @@ func (gm *GuildMgr) SetName(player *Player, name *string, itemId, itemNum int32,
}
// 扣消耗
gm.SetNameConsume(player, itemId, itemNum, func(errCode int32, errMsg string) {
params := map[string]string{
"c": "Bag",
"a": "useItem",
"account_id": player.GetAccountId(),
"session_id": player.GetSessionId(),
"item_id": q5.ToString(itemId),
"item_num": q5.ToString(itemNum),
}
gm.SendRequest(params, func(errCode int32, errMsg string) {
if errCode != 0 {
cb(errCode, errMsg)
return
@ -752,17 +781,9 @@ func (gm *GuildMgr) SetName(player *Player, name *string, itemId, itemNum int32,
})
}
func (gm *GuildMgr) SetNameConsume(player *Player, itemId, itemNum int32, cb func(errCode int32, errMsg string)) {
params := map[string]string{
"c": "Bag",
"a": "useItem",
"account_id": player.GetAccountId(),
"session_id": player.GetSessionId(),
"item_id": q5.ToString(itemId),
"item_num": q5.ToString(itemNum),
}
url := fmt.Sprintf("%s/webapp/index.php", mt.Table.Config.GetById(0).GetGameapiUrl())
f5.GetSysLog().Info("SetNameConsume url:%s, params:%+v\n", url, params)
func (gm *GuildMgr) SendRequest(params map[string]string, cb func(errCode int32, errMsg string)) {
url := mt.Table.Config.GetById(0).GetGameapiUrl() + "/webapp/index.php"
f5.GetSysLog().Info("UseItem url:%s, params:%+v\n", url, params)
f5.GetHttpCliMgr().SendJsStyleRequest(
url,
params,
@ -773,8 +794,8 @@ func (gm *GuildMgr) SetNameConsume(player *Player, itemId, itemNum int32, cb fun
}{}
err := json.Unmarshal([]byte(rsp.GetRawData()), &resObj)
if err != nil {
cb(ERR_CODE_GUILD_SETNAME_API_ERROR, "SetNameConsume Api服务器JSON解析错误")
f5.GetSysLog().Info("SetNameConsume Api服务器JSON解析错误:%s\n", err)
cb(ERR_CODE_GUILD_SETNAME_API_ERROR, "SendRequest Api服务器JSON解析错误")
f5.GetSysLog().Info("SendRequest Api服务器JSON解析错误:%s\n", err)
return
}
cb(resObj.ErrCode, resObj.ErrMsg)

View File

@ -374,7 +374,8 @@ func (p *Player) CMGetTopGuildsByTotalStars(hdr *f5.MsgHdr, msg *cs.CMGetTopGuil
// CMCreateGuild 创建公会
func (p *Player) CMCreateGuild(hdr *f5.MsgHdr, msg *cs.CMCreateGuild) {
avatar := msg.GetAvatar()
guildMgr.CreateGuild(avatar, msg.Name, p.accountId,
guildMgr.CreateGuild(
p, avatar, msg.Name, p.accountId,
func(errCode int32, errMsg string, guild *Guild) {
rspMsg := new(cs.SMCreateGuild)
if errCode != 0 {