function receiveApproval(address _sender, uint256 _value,
    address _tokenContract, bytes _extraData) public{
        
        require(_tokenContract == arina_contract);
          
        bytes1 action = _extraData[0];
    
    
        if (action == 0x0){ 
              
            _payRent_ARINA(_sender, _value);
        }
      
        else if(action == 0x1){ 
          
            _buyLand_ARINA(_sender, _value);
        } 
       
        else if(action == 0x2){ 
            require(_value == 100*10**8);
            uint16 _city = uint16(_extraData[1]);
             
            
            address[] memory checkPlayer;
            checkPlayer = checkBuildingPlayer(player_info[_sender].city,17);  
           
            if(checkPlayer.length != 0){
                for(uint8 i=0;i<checkPlayer.length;i++){
                    require(ERC20_interface(arina_contract).transferFrom(_sender, checkPlayer[i], _value.div(checkPlayer.length)),"交易失敗");
                } 
            }else{
                require(ERC20_interface(arina_contract).transferFrom(_sender, trade_address, _value),"交易失敗");
                trade(trade_address).set_city_pool(_value,player_info[_sender].city);
            }
            
             
            change_city(_sender, _city);
            
        }
      
        else if(action == 0x3){ 
         
            uint8 _building = uint8(_extraData[1]);
            
              
            uint build_value = inquire_type_price(_building);
    		
    		require(_value == build_value,"金額不對"); 
             
            require(ERC20_interface(arina_contract).transferFrom(_sender, trade_address, _value),"交易失敗");
            trade(trade_address).set_city_pool(_value,player_info[_sender].city);
            
            _build(_sender, _building,_value);
        }
        else{revert();}

    }