I dont think you need to check if the player was removed, level_load already removes all entities, so all you can run the same function every time you load a level;
You could have a function like:
function init_newLevel()
{
// create player
player= ent_create("player.mdl", spawnENT.x, playerFunc);
//reset vars
playerGotPistol =OFF;
playerGotShield =OFF;
}
now when you load a level, do:
level_load(newMap);
wait(3);
init_newLevel();