package rtask import ( "fmt" "go_dreamfactory/pb" cfg "go_dreamfactory/sys/configure/structs" "github.com/pkg/errors" ) func verifyParam(cfg *cfg.GameRdtaskCondiData, vals ...int32) (n int, err error) { // if cfg.Data1 != 0 && cfg.Data2 != 0 && cfg.Data3 != 0 { // if len(vals) != 3 { // err = errors.New(fmt.Sprintf("参数个数不一致,期望3实际是%v", len(vals))) // return // } else { // n = len(vals) // } // } if cfg.Data1 != 0 && cfg.Data2 != 0 && cfg.Data3 != 0 { if len(vals) != 3 { err = errors.New(fmt.Sprintf("参数个数不一致,期望3实际是%v", len(vals))) return } else { n = len(vals) } } if cfg.Data1 != 0 && cfg.Data2 != 0 { if len(vals) != 2 { err = errors.New(fmt.Sprintf("参数个数不一致,期望2实际是%v", len(vals))) return } else { n = len(vals) } } if cfg.Data1 != 0 { if len(vals) != 1 { err = errors.New(fmt.Sprintf("参数个数不一致,期望1实际是%v", len(vals))) return } else { n = len(vals) } } return } func toMap(vals ...int32) map[int32]int32 { d := make(map[int32]int32, len(vals)) for i, v := range vals { d[int32(i)] = v } return d } func toArr(m map[int32]int32) (params []int32) { for _, v := range m { params = append(params, v) } return } func isEqual(len int, data *pb.RtaskData, cfg *cfg.GameRdtaskCondiData, vals ...int32) map[int32]int32 { if data == nil || len == 0 { return nil } res := make(map[int32]int32) if len == 1 { if data.Data[0] != cfg.Data1 { res[0] = vals[0] } } if len == 2 { if data.Data[0] != cfg.Data1 || data.Data[1] != cfg.Data2 { res[0] = vals[0] res[1] = vals[1] } } if len == 3 { if data.Data[0] != cfg.Data1 || data.Data[1] != cfg.Data2 || data.Data[2] != cfg.Data3 { res[0] = vals[0] res[1] = vals[1] res[2] = vals[2] } } return res }