function expressBuyNums(uint256 _affID, uint256[] _nums)
        public
        isActivated()
        isHuman()
        isWithinLimits(msg.value)
        inSufficient(msg.value, _nums)
        payable
    {
        uint256 compressData = checkRoundAndDraw(msg.sender);
        buyCore(msg.sender, _affID, msg.value);
        convertCore(msg.sender, _nums.length, TicketCompressor.encode(_nums));

        emit onEndTx(
            rID_,
            msg.sender,
            compressData,
            msg.value,
            round_[rID_].pot,
            playerTickets_[msg.sender],
            block.timestamp
        );
    }