示例#1
0
gentity_s* spawnPlane(gentity_s* owner, ScriptString classname, const vec3_t startpoint)
{
	gentity_s* plane = G_Spawn();
	Scr_SetString(&plane->classname, classname);
	VectorCopy(startpoint, plane->r.currentOrigin);
	plane->s.eType = ET_PLANE;
	plane->spawnflags = 0;
	plane->s.lerp.faction.teamAndOwnerIndex = owner->client->sess.cs.team | (owner->s.number << 11);
	int ret = G_CallSpawnEntity(plane);
	DBGPRINTF("G_CallSpawnEntity(): %d\n", ret);
	Scr_AddEntity(SCRIPTINSTANCE_SERVER, plane);
	return plane;
}
示例#2
0
gentity_s* spawnEnt(ScriptString script, const vec3_t origin)
{
	FUNCTION;
	gentity_s* ent = G_Spawn();
	Scr_SetString(&ent->classname, script);
	if (origin != 0)
		VectorCopy(origin, ent->r.currentOrigin);
	ent->spawnflags = 0;
	if (!G_CallSpawnEntity(ent))
	{
		TTY_Write("G_CallSpawnEntity fail\n");
		G_FreeEntity(ent);
		return 0;
	}
	Scr_AddEntity(SCRIPTINSTANCE_SERVER, ent);
	return ent;
}
void GScr_Spawn()
{

	int spawnflags;
	int strindex;
	gentity_t *gentity;
	vec3_t origin;
	mvabuf;

	strindex = Scr_GetConstString( 0 );

	Scr_GetVector(1, origin);

	if ( Scr_GetNumParam() > 2 )
		spawnflags = Scr_GetInt(2);
	else
		spawnflags = 0;

	gentity = G_Spawn();

	Scr_SetString((unsigned short*)&gentity->constClassname, (unsigned short)strindex);

	gentity->r.currentOrigin[0] = origin[0];
	gentity->r.currentOrigin[1] = origin[1];
	gentity->r.currentOrigin[2] = origin[2];

	gentity->spawnflags = spawnflags;

	if ( G_CallSpawnEntity( gentity ) )
	{
		Scr_AddEntity( gentity );
	}
	else
	{

		Scr_Error( va("unable to spawn \"%s\" entity", SL_ConvertToString(strindex) ));
	}
}