package logic //func (this *Player) CheckFunctionOpen(moduelId, subModuleId uint32) error { // var functionOpen = this.manager.tables.FunctionOpenExtend.Get(int(moduelId), int(subModuleId)) // if functionOpen == nil { // return nil // } // // var unlocked = true // for i := range functionOpen.UnlockType { // switch functionOpen.UnlockType[i] { // case 0: // if functionOpen.UnlockValue[i] > 0 && this.Role.Level < uint32(functionOpen.UnlockValue[i]) { // unlocked = false // } // case 1: // if functionOpen.UnlockValue[i] > 0 { // var task = this.Task[uint32(functionOpen.UnlockValue[i])] // if task == nil { // if this.GetCounterTotal(proto.CounterTypeTaskCompleted, uint32(functionOpen.UnlockValue[i])) == 0 { // unlocked = false // } // } else { // if proto.TaskStatus(task.Status) < proto.TaskStatusCompleted { // unlocked = false // } // } // } // case 2: // if functionOpen.UnlockValue[i] > 0 { // var copyStatus = this.GetCopyStatus(proto.CopyTypeMainline, 0, 0, 0) // if copyStatus == nil || copyStatus.IndexId < uint32(functionOpen.UnlockValue[i]) { // unlocked = false // } // } // case 3: // // default: // return proto.ErrDataTablesError // } // } // // if unlocked { // return nil // } // // return proto.ErrFunctionNotUnlocked //}