From feba3f571d7cc64ba2c5f9641cd441b9ae45445d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=AE=B7=E5=8B=87?= Date: Mon, 13 Nov 2023 14:30:56 +0800 Subject: [PATCH] =?UTF-8?q?=E5=88=9B=E5=BB=BA=E5=85=AC=E4=BC=9A=E6=B6=88?= =?UTF-8?q?=E8=80=97=E9=81=93=E5=85=B7=20Bag.createGuildConsume?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- server/imserver/guildmgr.go | 51 ++++++++++++++++++++++++++----------- server/imserver/player.go | 3 ++- 2 files changed, 38 insertions(+), 16 deletions(-) diff --git a/server/imserver/guildmgr.go b/server/imserver/guildmgr.go index ea94fdff..997f030d 100644 --- a/server/imserver/guildmgr.go +++ b/server/imserver/guildmgr.go @@ -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) diff --git a/server/imserver/player.go b/server/imserver/player.go index 094f0b76..02d8378d 100644 --- a/server/imserver/player.go +++ b/server/imserver/player.go @@ -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 {