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:

Code:
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:

Code:
level_load(newMap);
wait(3);
init_newLevel();