void spawnscreen(void vName, float fX, float fZ, int iDirection, char Alias)
{
//spawnscreen (Generic spawner with alias and relative to screen)
//Spawns entity next to caller.
//vName: Model name of entity to be spawned in.
//fX: X location adjustment.
//fZ: Y location adjustment.
//fY: Z location adjustment.
void vSpawn; //Spawn object.
clearspawnentry(); //Clear current spawn entry.
setspawnentry("name",vName); //Acquire spawn entity by name.
vSpawn = spawn(); //Spawn in entity.
changeentityproperty(vSpawn, "position",openborvariant("xpos")+fX,openborvariant("ypos")+fZ, 0); //Set spawn location.
if(iDirection){changeentityproperty(vSpawn, "direction", iDirection);} //Set direction.
if(Alias){changeentityproperty(vSpawn, "name", Alias);} //Set Alias to spawned entity
return vSpawn; //Return spawn.
}
void eSpawn(char branch, char name, int limitE, float limitX )
{//kung fu master style enemy spawner by msmalik681
char branchC = openborvariant("current_branch"); //current branch name
if(branchC != NULL() )
{
if(branch==branchC) //the set brach has to match current level branch name
{
float x;
int dir;
int stop = 0; //stop flag
int iEntity; //loop number
for(iEntity=0; iEntity<openborvariant("ent_max"); iEntity++){
if(getentityproperty(getentity(iEntity),"name")!=name && getentityproperty(getentity(iEntity),"type")==openborconstant("TYPE_ENEMY")){stop=1;break;} //if enemy is not set enemy
}
int ec = openborvariant("count_enemies"); //count how many enemies on screen
int random = (openborvariant("elapsed_time")/ec)%2; //random number 1 or 0
float playerX = getentityproperty(getlocalvar("self"),"x"); //get player x location
if(ec<limitE && stop==0 && playerX<limitX)
{
if(random==0){x=-20; dir=1;} else {x=(openborvariant("hresolution")+40); dir=0;}
spawnscreen(name,x,openborvariant("levelheight"),dir);
}
}
}
}