上传接口
This commit is contained in:
parent
6983411410
commit
dee39299e2
@ -62,7 +62,9 @@ type (
|
||||
RecoverTicket(session IUserSession) (errdata *pb.ErrorData)
|
||||
//出售道具
|
||||
SellItem(session IUserSession, items map[string]int32, bPush bool) (errdata *pb.ErrorData, atno []*pb.UserAtno)
|
||||
|
||||
//使用物品
|
||||
UseItem(session IUserSession, gid string, amount int32) (errdata *pb.ErrorData)
|
||||
//清理物品
|
||||
CleanItemById(session IUserSession, t string) (errdata *pb.ErrorData)
|
||||
}
|
||||
|
||||
@ -514,7 +516,7 @@ type (
|
||||
CheckCondition(uid string, condiIds ...int32) (condis []*pb.ConIProgress, err error)
|
||||
//激活条件
|
||||
ActiveCondition(uid string, condiIds ...int32) (err error)
|
||||
//校验的同时激活条件 废弃
|
||||
// CheckAndActiveCondition(uid string, condiIds ...int32) (condIds []int32, err error)
|
||||
//完成任务并校验接口
|
||||
FinishConditionAndCheck(uid string, finishcondiIds []int32, condiIds ...int32) (condis []*pb.ConIProgress, err error)
|
||||
}
|
||||
)
|
||||
|
@ -184,6 +184,133 @@ func (this *Buried) CheckCondition(uid string, condiIds ...int32) (condis []*pb.
|
||||
return
|
||||
}
|
||||
|
||||
//设置任务完成状态并校验
|
||||
func (this *Buried) FinishConditionAndCheck(uid string, finishcondiIds []int32, condiIds ...int32) (condis []*pb.ConIProgress, err error) {
|
||||
var (
|
||||
bdatas *pb.DBBuried
|
||||
bitem *pb.DBBuriedConItem
|
||||
conf *cfg.GameBuriedCondiData
|
||||
ok bool
|
||||
chanage bool
|
||||
bdata *pb.DBBuriedItem
|
||||
)
|
||||
if bdatas, err = this.modelBuried.getUserBurieds(uid); err != nil {
|
||||
return
|
||||
}
|
||||
condis = make([]*pb.ConIProgress, 0)
|
||||
|
||||
for _, v := range finishcondiIds {
|
||||
if conf, err = this.configure.getburiedcondidata(v); err != nil {
|
||||
return
|
||||
}
|
||||
if bdata, ok = bdatas.Items[conf.Type]; ok {
|
||||
ok = false
|
||||
for _, v1 := range bdata.Condi {
|
||||
if v1.Conid == v {
|
||||
ok = true
|
||||
if v1.Finish != pb.BuriedItemFinishState_buried_finish {
|
||||
if conf.Ctype == ctype_once { //完成后自动锁定
|
||||
v1.State = pb.BuriedItemState_Freeze
|
||||
} else if conf.Ctype == ctype_repeat {
|
||||
v1.State = pb.BuriedItemState_Sleep
|
||||
} else if conf.Ctype == ctype_daily {
|
||||
v1.State = pb.BuriedItemState_Sleep
|
||||
} else if conf.Ctype == ctype_weekly {
|
||||
v1.State = pb.BuriedItemState_Sleep
|
||||
}
|
||||
v1.Value = conf.Value
|
||||
v1.Finish = pb.BuriedItemFinishState_buried_finish
|
||||
chanage = true
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if !ok { //未找到 初始化一个
|
||||
bitem = &pb.DBBuriedConItem{
|
||||
Conid: v,
|
||||
State: pb.BuriedItemState_Activated,
|
||||
Value: conf.Value,
|
||||
Statistics: make([]string, 0),
|
||||
Timestamp: time.Now().Unix(),
|
||||
Finish: pb.BuriedItemFinishState_buried_finish,
|
||||
}
|
||||
if conf.Ctype == ctype_once { //完成后自动锁定
|
||||
bitem.State = pb.BuriedItemState_Freeze
|
||||
} else if conf.Ctype == ctype_repeat {
|
||||
bitem.State = pb.BuriedItemState_Sleep
|
||||
} else if conf.Ctype == ctype_daily {
|
||||
bitem.State = pb.BuriedItemState_Sleep
|
||||
} else if conf.Ctype == ctype_weekly {
|
||||
bitem.State = pb.BuriedItemState_Sleep
|
||||
}
|
||||
bdata.Condi = append(bdata.Condi, bitem)
|
||||
}
|
||||
}
|
||||
|
||||
for _, v := range condiIds {
|
||||
if conf, err = this.configure.getburiedcondidata(v); err != nil {
|
||||
return
|
||||
}
|
||||
if bdata, ok := bdatas.Items[conf.Type]; ok {
|
||||
ok = false
|
||||
for _, v1 := range bdata.Condi {
|
||||
if v1.Conid == v {
|
||||
ok = true
|
||||
//状态等于休眠
|
||||
if v1.State == pb.BuriedItemState_Sleep {
|
||||
if conf.Ctype == ctype_daily { //日常
|
||||
if !utils.IsToday(v1.Timestamp) { //不是同一天 可以重置数据
|
||||
v1.State = pb.BuriedItemState_Activated
|
||||
v1.Value = 0
|
||||
v1.Finish = pb.BuriedItemFinishState_buried_unfinish
|
||||
}
|
||||
} else if conf.Ctype == ctype_weekly { //周常
|
||||
if !utils.IsSameWeek(v1.Timestamp) { //不是同一周
|
||||
v1.State = pb.BuriedItemState_Activated
|
||||
v1.Value = 0
|
||||
v1.Finish = pb.BuriedItemFinishState_buried_unfinish
|
||||
}
|
||||
}
|
||||
}
|
||||
condis = append(condis, &pb.ConIProgress{
|
||||
Btype: conf.Type,
|
||||
Conid: v1.Conid,
|
||||
Value: v1.Value,
|
||||
Target: conf.Value,
|
||||
State: v1.Finish,
|
||||
})
|
||||
}
|
||||
}
|
||||
if !ok { //未找到 初始化一个
|
||||
condis = append(condis, &pb.ConIProgress{
|
||||
Btype: conf.Type,
|
||||
Conid: v,
|
||||
Value: 0,
|
||||
Target: conf.Value,
|
||||
State: pb.BuriedItemFinishState_buried_unfinish,
|
||||
})
|
||||
}
|
||||
} else { //未找到 初始化一个
|
||||
condis = append(condis, &pb.ConIProgress{
|
||||
Btype: conf.Type,
|
||||
Conid: v,
|
||||
Value: 0,
|
||||
Target: conf.Value,
|
||||
State: pb.BuriedItemFinishState_buried_unfinish,
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
if chanage {
|
||||
if err = this.modelBuried.updateUserBurieds(uid, bdatas); err != nil {
|
||||
this.Error("更新用户埋点数据错误!", log.Field{Key: "err", Value: err.Error()})
|
||||
return
|
||||
}
|
||||
}
|
||||
|
||||
return
|
||||
}
|
||||
|
||||
//触发埋点
|
||||
func (this *Buried) TriggerBuried(uid string, burieds ...*pb.BuriedParam) {
|
||||
|
||||
|
@ -1,10 +1,8 @@
|
||||
package items
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"go_dreamfactory/comm"
|
||||
"go_dreamfactory/pb"
|
||||
cfg "go_dreamfactory/sys/configure/structs"
|
||||
)
|
||||
|
||||
//参数校验
|
||||
@ -20,198 +18,13 @@ func (this *apiComp) UseitemCheck(session comm.IUserSession, req *pb.ItemsUseIte
|
||||
|
||||
//使用道具
|
||||
func (this *apiComp) Useitem(session comm.IUserSession, req *pb.ItemsUseItemReq) (errdata *pb.ErrorData) {
|
||||
var (
|
||||
err error
|
||||
item *pb.DB_UserItemData
|
||||
itemcf *cfg.GameItemData
|
||||
prop []*cfg.GameDropData
|
||||
)
|
||||
|
||||
if errdata = this.UseitemCheck(session, req); errdata != nil {
|
||||
return
|
||||
}
|
||||
if item, err = this.module.modelItems.QueryUserPackByGridId(session.GetUserId(), req.GridId); err != nil {
|
||||
errdata = &pb.ErrorData{
|
||||
Code: pb.ErrorCode_ReqParameterError,
|
||||
Title: pb.ErrorCode_ReqParameterError.ToString(),
|
||||
}
|
||||
return
|
||||
}
|
||||
if itemcf, err = this.module.configure.GetItemConfigure(item.ItemId); err != nil {
|
||||
errdata = &pb.ErrorData{
|
||||
Code: pb.ErrorCode_ConfigurationException,
|
||||
Title: pb.ErrorCode_ConfigurationException.ToString(),
|
||||
}
|
||||
return
|
||||
}
|
||||
switch itemcf.Usetype {
|
||||
case itemuse_exchange: //分解(体力,兑换
|
||||
sale := make([]*cfg.Gameatn, 0, len(prop))
|
||||
for _, v := range itemcf.DecomposeDeplete {
|
||||
sale = append(sale, &cfg.Gameatn{
|
||||
A: v.A,
|
||||
T: v.T,
|
||||
N: v.N * int32(req.Amount),
|
||||
})
|
||||
if errdata = this.module.modelItems.useitem(session, req.GridId, int32(req.Amount), req.Select); errdata != nil {
|
||||
|
||||
}
|
||||
if errdata = this.module.AddItemforGrid(session, req.GridId, -1*int32(req.Amount), true); errdata != nil {
|
||||
return
|
||||
}
|
||||
if errdata = this.module.DispenseRes(session, sale, true); errdata != nil {
|
||||
return
|
||||
}
|
||||
break
|
||||
case itemuse_optionalbox: //自选宝箱
|
||||
if prop = this.module.configure.GetDropData(itemcf.BoxId); prop == nil {
|
||||
errdata = &pb.ErrorData{
|
||||
Code: pb.ErrorCode_ConfigNoFound,
|
||||
Title: pb.ErrorCode_ConfigNoFound.ToString(),
|
||||
Message: fmt.Sprintf("掉落组未找到:%d", itemcf.BoxId),
|
||||
}
|
||||
return
|
||||
}
|
||||
if errdata = this.module.AddItemforGrid(session, req.GridId, -1*int32(req.Amount), true); errdata != nil {
|
||||
return
|
||||
}
|
||||
var sale []*cfg.Gameatn
|
||||
for _, v := range prop {
|
||||
if v.Id == req.Select {
|
||||
for _, v1 := range v.Prize {
|
||||
sale = append(sale, &cfg.Gameatn{
|
||||
A: v1.A,
|
||||
T: v1.T,
|
||||
N: v1.N * int32(req.Amount),
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
if sale == nil {
|
||||
this.module.Errorf("no found target sale:%v", req.Select)
|
||||
errdata = &pb.ErrorData{
|
||||
Code: pb.ErrorCode_ReqParameterError,
|
||||
Title: pb.ErrorCode_ReqParameterError.ToString(),
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
if errdata = this.module.DispenseRes(session, sale, true); errdata != nil {
|
||||
return
|
||||
}
|
||||
case itemuse_randombox: //宝箱
|
||||
if prop = this.module.configure.GetDropData(itemcf.BoxId); prop == nil {
|
||||
errdata = &pb.ErrorData{
|
||||
Code: pb.ErrorCode_ConfigNoFound,
|
||||
Title: pb.ErrorCode_ConfigNoFound.ToString(),
|
||||
Message: fmt.Sprintf("掉落组未找到:%d", itemcf.BoxId),
|
||||
}
|
||||
return
|
||||
}
|
||||
sale := make([]*cfg.Gameatn, 0)
|
||||
for i := uint32(0); i < req.Amount; i++ {
|
||||
sale = append(sale, RandomProps(prop).Prize...)
|
||||
}
|
||||
if errdata = this.module.AddItemforGrid(session, req.GridId, -1*int32(req.Amount), true); errdata != nil {
|
||||
return
|
||||
}
|
||||
if errdata = this.module.DispenseRes(session, sale, true); errdata != nil {
|
||||
return
|
||||
}
|
||||
case itemuse_synthesis: //合成/分解
|
||||
if req.Select == 0 { // 合成
|
||||
if itemcf.SynthetizeGet == nil || len(itemcf.SynthetizeGet) == 0 {
|
||||
errdata = &pb.ErrorData{
|
||||
Code: pb.ErrorCode_ConfigNoFound,
|
||||
Title: pb.ErrorCode_ConfigNoFound.ToString(),
|
||||
Message: fmt.Sprintf("道具合成未配置! 道具id:%s ", itemcf.Id),
|
||||
}
|
||||
return
|
||||
}
|
||||
if itemcf.SynthetizeNum*int32(req.Amount) > int32(item.Amount) { //碎片数量不够
|
||||
errdata = &pb.ErrorData{
|
||||
Code: pb.ErrorCode_ItemsNoEnough,
|
||||
Title: pb.ErrorCode_ItemsNoEnough.ToString(),
|
||||
Message: fmt.Sprintf("道具Id:%s", itemcf.Id),
|
||||
}
|
||||
return
|
||||
}
|
||||
sale := make([]*cfg.Gameatn, 0, len(itemcf.SynthetizeDeplete))
|
||||
for _, v := range itemcf.SynthetizeDeplete {
|
||||
sale = append(sale, &cfg.Gameatn{
|
||||
A: v.A,
|
||||
T: v.T,
|
||||
N: v.N * int32(req.Amount),
|
||||
})
|
||||
}
|
||||
if errdata = this.module.ConsumeRes(session, sale, true); errdata != nil {
|
||||
return
|
||||
}
|
||||
|
||||
if errdata = this.module.AddItemforGrid(session, req.GridId, -1*itemcf.SynthetizeNum*int32(req.Amount), true); errdata != nil {
|
||||
return
|
||||
}
|
||||
sale = make([]*cfg.Gameatn, 0, len(prop))
|
||||
for _, v1 := range itemcf.SynthetizeGet {
|
||||
sale = append(sale, &cfg.Gameatn{
|
||||
A: v1.A,
|
||||
T: v1.T,
|
||||
N: v1.N * int32(req.Amount),
|
||||
})
|
||||
}
|
||||
if errdata = this.module.DispenseRes(session, sale, true); errdata != nil {
|
||||
return
|
||||
}
|
||||
} else {
|
||||
if itemcf.DecomposeGet == nil || len(itemcf.DecomposeGet) == 0 {
|
||||
errdata = &pb.ErrorData{
|
||||
Code: pb.ErrorCode_ConfigNoFound,
|
||||
Title: pb.ErrorCode_ConfigNoFound.ToString(),
|
||||
Message: fmt.Sprintf("道具分解未配置! 道具id:%s ", itemcf.Id),
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
if itemcf.SynthetizeNum*int32(req.Amount) > int32(item.Amount) { //碎片数量不够
|
||||
errdata = &pb.ErrorData{
|
||||
Code: pb.ErrorCode_ItemsNoEnough,
|
||||
Title: pb.ErrorCode_ItemsNoEnough.ToString(),
|
||||
Message: fmt.Sprintf("道具Id:%s", itemcf.Id),
|
||||
}
|
||||
return
|
||||
}
|
||||
sale := make([]*cfg.Gameatn, 0, len(itemcf.DecomposeDeplete))
|
||||
for _, v := range itemcf.DecomposeDeplete {
|
||||
sale = append(sale, &cfg.Gameatn{
|
||||
A: v.A,
|
||||
T: v.T,
|
||||
N: v.N * int32(req.Amount),
|
||||
})
|
||||
}
|
||||
if errdata = this.module.ConsumeRes(session, sale, true); errdata != nil {
|
||||
return
|
||||
}
|
||||
|
||||
if errdata = this.module.AddItemforGrid(session, req.GridId, -1*int32(req.Amount), true); errdata != nil {
|
||||
return
|
||||
}
|
||||
|
||||
sale = make([]*cfg.Gameatn, len(itemcf.Sale))
|
||||
for i, v := range itemcf.DecomposeGet {
|
||||
temp := *v
|
||||
sale[i] = &temp
|
||||
sale[i].N = v.N * int32(req.Amount)
|
||||
}
|
||||
if errdata = this.module.DispenseRes(session, sale, true); errdata != nil {
|
||||
return
|
||||
}
|
||||
}
|
||||
default:
|
||||
errdata = &pb.ErrorData{
|
||||
Code: pb.ErrorCode_ItemsUseNotSupported,
|
||||
Title: pb.ErrorCode_ItemsUseNotSupported.ToString(),
|
||||
Message: fmt.Sprintf("道具使用类型:%d", itemcf.Usetype),
|
||||
}
|
||||
return
|
||||
}
|
||||
session.SendMsg(string(this.module.GetType()), "useitem", &pb.ItemsUseItemResp{GridId: req.GridId, Amount: req.Amount, Issucc: true})
|
||||
return
|
||||
}
|
||||
|
@ -22,10 +22,9 @@ const (
|
||||
const (
|
||||
itemuse_nouse int32 = 1 //不可使用
|
||||
itemuse_jump int32 = 2 //跳转
|
||||
itemuse_exchange int32 = 3 //分解(体力,兑换)
|
||||
itemuse_exchange int32 = 3 //合成/分解(体力,兑换)
|
||||
itemuse_optionalbox int32 = 4 //自选宝箱
|
||||
itemuse_randombox int32 = 5 //随机宝箱
|
||||
itemuse_synthesis int32 = 6 //合成(英雄,觉醒)
|
||||
)
|
||||
|
||||
var (
|
||||
|
@ -598,3 +598,180 @@ func (this *ModelItemsComp) recoverTicket(session comm.IUserSession) (errdata *p
|
||||
})
|
||||
return
|
||||
}
|
||||
|
||||
///使用道具
|
||||
func (this *ModelItemsComp) useitem(session comm.IUserSession, gid string, amount int32, slt int32) (errdata *pb.ErrorData) {
|
||||
var (
|
||||
item *pb.DB_UserItemData
|
||||
itemcf *cfg.GameItemData
|
||||
prop []*cfg.GameDropData
|
||||
err error
|
||||
)
|
||||
if item, err = this.module.modelItems.QueryUserPackByGridId(session.GetUserId(), gid); err != nil {
|
||||
errdata = &pb.ErrorData{
|
||||
Code: pb.ErrorCode_ReqParameterError,
|
||||
Title: pb.ErrorCode_ReqParameterError.ToString(),
|
||||
}
|
||||
return
|
||||
}
|
||||
if itemcf, err = this.module.configure.GetItemConfigure(item.ItemId); err != nil {
|
||||
errdata = &pb.ErrorData{
|
||||
Code: pb.ErrorCode_ConfigurationException,
|
||||
Title: pb.ErrorCode_ConfigurationException.ToString(),
|
||||
}
|
||||
return
|
||||
}
|
||||
switch itemcf.Usetype {
|
||||
case itemuse_exchange: //合成/分解
|
||||
if slt == 0 { // 合成
|
||||
if itemcf.SynthetizeGet == nil || len(itemcf.SynthetizeGet) == 0 {
|
||||
errdata = &pb.ErrorData{
|
||||
Code: pb.ErrorCode_ConfigNoFound,
|
||||
Title: pb.ErrorCode_ConfigNoFound.ToString(),
|
||||
Message: fmt.Sprintf("道具合成未配置! 道具id:%s ", itemcf.Id),
|
||||
}
|
||||
return
|
||||
}
|
||||
if itemcf.SynthetizeNum*int32(amount) > int32(item.Amount) { //碎片数量不够
|
||||
errdata = &pb.ErrorData{
|
||||
Code: pb.ErrorCode_ItemsNoEnough,
|
||||
Title: pb.ErrorCode_ItemsNoEnough.ToString(),
|
||||
Message: fmt.Sprintf("道具Id:%s", itemcf.Id),
|
||||
}
|
||||
return
|
||||
}
|
||||
sale := make([]*cfg.Gameatn, 0, len(itemcf.SynthetizeDeplete))
|
||||
for _, v := range itemcf.SynthetizeDeplete {
|
||||
sale = append(sale, &cfg.Gameatn{
|
||||
A: v.A,
|
||||
T: v.T,
|
||||
N: v.N * int32(amount),
|
||||
})
|
||||
}
|
||||
if errdata = this.module.ConsumeRes(session, sale, true); errdata != nil {
|
||||
return
|
||||
}
|
||||
|
||||
if errdata = this.module.AddItemforGrid(session, gid, -1*itemcf.SynthetizeNum*int32(amount), true); errdata != nil {
|
||||
return
|
||||
}
|
||||
sale = make([]*cfg.Gameatn, 0, len(itemcf.SynthetizeGet))
|
||||
for _, v1 := range itemcf.SynthetizeGet {
|
||||
sale = append(sale, &cfg.Gameatn{
|
||||
A: v1.A,
|
||||
T: v1.T,
|
||||
N: v1.N * int32(amount),
|
||||
})
|
||||
}
|
||||
if errdata = this.module.DispenseRes(session, sale, true); errdata != nil {
|
||||
return
|
||||
}
|
||||
} else {
|
||||
if itemcf.DecomposeGet == nil || len(itemcf.DecomposeGet) == 0 {
|
||||
errdata = &pb.ErrorData{
|
||||
Code: pb.ErrorCode_ConfigNoFound,
|
||||
Title: pb.ErrorCode_ConfigNoFound.ToString(),
|
||||
Message: fmt.Sprintf("道具分解未配置! 道具id:%s ", itemcf.Id),
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
if itemcf.SynthetizeNum*int32(amount) > int32(item.Amount) { //碎片数量不够
|
||||
errdata = &pb.ErrorData{
|
||||
Code: pb.ErrorCode_ItemsNoEnough,
|
||||
Title: pb.ErrorCode_ItemsNoEnough.ToString(),
|
||||
Message: fmt.Sprintf("道具Id:%s", itemcf.Id),
|
||||
}
|
||||
return
|
||||
}
|
||||
sale := make([]*cfg.Gameatn, 0, len(itemcf.DecomposeDeplete))
|
||||
for _, v := range itemcf.DecomposeDeplete {
|
||||
sale = append(sale, &cfg.Gameatn{
|
||||
A: v.A,
|
||||
T: v.T,
|
||||
N: v.N * int32(amount),
|
||||
})
|
||||
}
|
||||
if errdata = this.module.ConsumeRes(session, sale, true); errdata != nil {
|
||||
return
|
||||
}
|
||||
|
||||
if errdata = this.module.AddItemforGrid(session, gid, -1*int32(amount), true); errdata != nil {
|
||||
return
|
||||
}
|
||||
|
||||
sale = make([]*cfg.Gameatn, len(itemcf.Sale))
|
||||
for i, v := range itemcf.DecomposeGet {
|
||||
temp := *v
|
||||
sale[i] = &temp
|
||||
sale[i].N = v.N * int32(amount)
|
||||
}
|
||||
if errdata = this.module.DispenseRes(session, sale, true); errdata != nil {
|
||||
return
|
||||
}
|
||||
}
|
||||
case itemuse_optionalbox: //自选宝箱
|
||||
if prop = this.module.configure.GetDropData(itemcf.BoxId); prop == nil {
|
||||
errdata = &pb.ErrorData{
|
||||
Code: pb.ErrorCode_ConfigNoFound,
|
||||
Title: pb.ErrorCode_ConfigNoFound.ToString(),
|
||||
Message: fmt.Sprintf("掉落组未找到:%d", itemcf.BoxId),
|
||||
}
|
||||
return
|
||||
}
|
||||
if errdata = this.module.AddItemforGrid(session, gid, -1*int32(amount), true); errdata != nil {
|
||||
return
|
||||
}
|
||||
var sale []*cfg.Gameatn
|
||||
for _, v := range prop {
|
||||
if v.Id == slt {
|
||||
for _, v1 := range v.Prize {
|
||||
sale = append(sale, &cfg.Gameatn{
|
||||
A: v1.A,
|
||||
T: v1.T,
|
||||
N: v1.N * int32(amount),
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
if sale == nil {
|
||||
this.module.Errorf("no found target sale:%v", slt)
|
||||
errdata = &pb.ErrorData{
|
||||
Code: pb.ErrorCode_ReqParameterError,
|
||||
Title: pb.ErrorCode_ReqParameterError.ToString(),
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
if errdata = this.module.DispenseRes(session, sale, true); errdata != nil {
|
||||
return
|
||||
}
|
||||
case itemuse_randombox: //宝箱
|
||||
if prop = this.module.configure.GetDropData(itemcf.BoxId); prop == nil {
|
||||
errdata = &pb.ErrorData{
|
||||
Code: pb.ErrorCode_ConfigNoFound,
|
||||
Title: pb.ErrorCode_ConfigNoFound.ToString(),
|
||||
Message: fmt.Sprintf("掉落组未找到:%d", itemcf.BoxId),
|
||||
}
|
||||
return
|
||||
}
|
||||
sale := make([]*cfg.Gameatn, 0)
|
||||
for i := int32(0); i < amount; i++ {
|
||||
sale = append(sale, RandomProps(prop).Prize...)
|
||||
}
|
||||
if errdata = this.module.AddItemforGrid(session, gid, -1*int32(amount), true); errdata != nil {
|
||||
return
|
||||
}
|
||||
if errdata = this.module.DispenseRes(session, sale, true); errdata != nil {
|
||||
return
|
||||
}
|
||||
default:
|
||||
errdata = &pb.ErrorData{
|
||||
Code: pb.ErrorCode_ItemsUseNotSupported,
|
||||
Title: pb.ErrorCode_ItemsUseNotSupported.ToString(),
|
||||
Message: fmt.Sprintf("道具使用类型:%d", itemcf.Usetype),
|
||||
}
|
||||
return
|
||||
}
|
||||
return
|
||||
}
|
||||
|
@ -213,6 +213,12 @@ func (this *Items) AddItems(session comm.IUserSession, items map[string]int32, b
|
||||
return
|
||||
}
|
||||
|
||||
//使用物品
|
||||
func (this *Items) UseItem(session comm.IUserSession, gid string, amount int32, slt int32) (errdata *pb.ErrorData) {
|
||||
|
||||
return
|
||||
}
|
||||
|
||||
//清理背包
|
||||
func (this *Items) CleanItems(session comm.IUserSession) (errdata *pb.ErrorData) {
|
||||
var (
|
||||
|
Loading…
Reference in New Issue
Block a user