优化图鉴收集功能

This commit is contained in:
hahwu 2025-03-18 11:14:32 +08:00
parent 5d160f71ef
commit 6e0d3a2709
3 changed files with 33 additions and 2 deletions

View File

@ -518,3 +518,28 @@ func GetMergeStar(MergeList []int) int {
} }
return Star return Star
} }
func GetAllChessBySeries(Series string) []int {
data, err := gamedata.GetData(CFG_NAME)
ProductList := GetEmitProduce(Series)
if err != nil {
return []int{}
}
var r []int
for k, v := range data {
Type := gamedata.GetStringValue(v, "Type")
if Type == "Emitter" {
EmitId := gamedata.GetStringValue(v, "Emit_ID")
if EmitId == Series {
r = append(r, GoUtil.Int(k))
}
}
if Type == "Product" {
Color := gamedata.GetStringValue(v, "Color")
if GoUtil.InStringArray(Color, ProductList) {
r = append(r, GoUtil.Int(k))
}
}
}
return r
}

View File

@ -171,7 +171,8 @@ func ReqGetHandbookReward(player *Player, buf []byte) error {
func RegHandbookAllReward(player *Player, buf []byte) error { func RegHandbookAllReward(player *Player, buf []byte) error {
req := &msg.RegHandbookAllReward{} req := &msg.RegHandbookAllReward{}
proto.Unmarshal(buf, req) proto.Unmarshal(buf, req)
Items, err := player.PlayMod.getHandbookMod().CollectItem(req.Type) AllChess := mergeDataCfg.GetAllChessBySeries(req.Type)
Items, err := player.PlayMod.getHandbookMod().CollectItem(req.Type, AllChess)
if err != nil { if err != nil {
player.SendErrClienRes(&msg.ResHandbookAllReward{ player.SendErrClienRes(&msg.ResHandbookAllReward{
Code: msg.RES_CODE_FAIL, Code: msg.RES_CODE_FAIL,

View File

@ -58,7 +58,12 @@ func (h *Handbook) GetHandbookReward(Id int) error {
return nil return nil
} }
func (h *Handbook) CollectItem(Id string) ([]*item.Item, error) { func (h *Handbook) CollectItem(Id string, AllChess []int) ([]*item.Item, error) {
for _, v := range AllChess {
if _, ok := h.BookList[v]; !ok {
return nil, fmt.Errorf("图鉴未解锁")
}
}
if _, ok := h.Collect[Id]; ok { if _, ok := h.Collect[Id]; ok {
return nil, fmt.Errorf("已经领取过该奖励") return nil, fmt.Errorf("已经领取过该奖励")
} }