function newAuction(uint256 _tokenId, uint64 _pricePlat) 
        external
        whenNotPaused
    {
        require(tokenContract.ownerOf(_tokenId) == msg.sender);
        require(!equipContract.isEquiped(msg.sender, _tokenId));
        require(_pricePlat >= 1 && _pricePlat <= 999999);

        uint16[12] memory fashion = tokenContract.getFashion(_tokenId);
        require(fashion[1] > 1);

        uint64 tmNow = uint64(block.timestamp);
        uint256 lastIndex = latestAction[_tokenId];
        if (lastIndex > 0) {
            Auction memory oldOrder = auctionArray[lastIndex];
            require((oldOrder.tmStart + auctionDuration) <= tmNow || oldOrder.tmSell > 0);
        }

        if (address(ethAuction) != address(0)) {
            require(!ethAuction.isOnSale(_tokenId));
        }

        uint256 newAuctionIndex = auctionArray.length;
        auctionArray.length += 1;
        Auction storage order = auctionArray[newAuctionIndex];
        order.seller = msg.sender;
        order.tokenId = uint64(_tokenId);
        order.price = _pricePlat;
        uint64 lastActionStart = auctionArray[newAuctionIndex - 1].tmStart;
        if (tmNow >= lastActionStart) {
            order.tmStart = tmNow;
        } else {
            order.tmStart = lastActionStart;
        }
        
        latestAction[_tokenId] = newAuctionIndex;

        AuctionPlatCreate(newAuctionIndex, msg.sender, _tokenId);
    }