I just realized i used different kind of rewriting which didn't require @Jacob's codes (using add_rewrite_endpoint)
add_action('init', 'wpse42279_add_endpoints');
function wpse42279_add_endpoints()
{
add_rewrite_endpoint('play', EP_PERMALINK);
}
And then i used this conditionals on the single page:
global $post;
$pid = $post->ID;
$var = get_query_var( 'play' );
if( !empty($var) and $var == $pid) :
// do stuff
endif;
Now here's the working pretty link:
example.com/custompostype/post-title/play/123/
Instead of:
example.com/custompostype/post-title/?play=123
However the problem now is that the old url still exist (example.com/custompostype/post-title/?play=123) and still accessible/visible. Is it possible to make it work like how this code works:
example.com/?custompostype=321
(It redirects to the pretty link: example.com/custompostype/post-title/)