Exemplo n.º 1
0
gentity_s* spawnVehicle(const char* model, uint16_t targetname, const char* vehicleType, const vec3_t origin, const vec3_t angles)
{
	gentity_s* vehicle = G_SpawnStaticEntity(0x3E, 0x10, "vehicle");
	Scr_SetString(&vehicle->classname, scr_const->script_vehicle);
	G_SetModel(vehicle, model);
	Scr_SetString(&vehicle->targetname, targetname);
	VectorCopy(origin, vehicle->r.currentOrigin);
	VectorCopy(angles, vehicle->r.currentAngles);
	G_SpawnVehicle(vehicle, vehicleType, 0);
	Scr_AddEntity(SCRIPTINSTANCE_SERVER, vehicle);
	G_MakeVehicleUsable(vehicle, true);
	return vehicle;
}
Exemplo n.º 2
0
void GScr_SpawnHelicopter()
{
  const char *type;
  const char *model;
  gentity_t *newent;
  gentity_t *ownerent;
  vec3_t rotation;
  vec3_t position;

  ownerent = Scr_GetEntity(0);

  if ( !ownerent->client )
  {
    Scr_ParamError(0, "Owner entity is not a player");
  }
  Scr_GetVector(1, position);
  Scr_GetVector(2, rotation);
  type = Scr_GetString(3);
  model = Scr_GetString(4);

  newent = G_Spawn();

  Scr_SetString((unsigned short*)&newent->constClassname, (unsigned short)stringIndex.script_vehicle);

  newent->r.currentOrigin[0] = position[0];
  newent->r.currentOrigin[1] = position[1];
  newent->r.currentOrigin[2] = position[2];
  newent->r.currentAngles[0] = rotation[0];
  newent->r.currentAngles[1] = rotation[1];
  newent->r.currentAngles[2] = rotation[2];

  G_SpawnHelicopter(newent, ownerent, type, model);

  Scr_AddEntity(newent);
}
Exemplo n.º 3
0
void _Scr_FreeEntity(gentity_t *ent) {
	scr_entityfield_t *fields = (scr_entityfield_t*)( GAME("vmMain") + 0x28094 );
	for(int i = 0; fields[i].name; i++) {
		if(fields[i].type == 3)
			Scr_SetString((int*)((unsigned)ent + fields[i].offset), 0);
	}
	
	int i;
	for(i = 0; i < 6; i++) {
		*(unsigned char*)(i + (unsigned)ent + 748) = 0;
		Scr_SetString((int*)((unsigned)ent + (i*2) + 754), 0);
	}
	
	void (*FreeEntityNum)(int, int) = (void(*)(int,int isHudElem))GAME("Scr_FreeEntityNum");
	FreeEntityNum(ent->s.number, 0);
}
Exemplo n.º 4
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;
}
Exemplo n.º 5
0
gentity_s* spawnHelicopter(gentity_s* owner, const vec3_t origin, const vec3_t angles, const char* type, const char* model)
{
	FUNCTION;
	TTY_Write("G_SpawnStaticEntity\n");
	gentity_s* vehicle = G_SpawnStaticEntity(0x3E, 0x10, "vehicle");
	VectorCopy(origin, vehicle->r.currentOrigin);
	VectorCopy(angles, vehicle->r.currentAngles);
	TTY_Write("Scr_SetString\n");
	Scr_SetString(&vehicle->classname, scr_const->script_vehicle);
	TTY_Write("G_SpawnHelicopter\n");
	G_SpawnHelicopter(vehicle, owner, type, model);
	Scr_AddEntity(SCRIPTINSTANCE_SERVER, vehicle);
	return vehicle;
}
Exemplo n.º 6
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;
}
Exemplo n.º 7
0
void GScr_SpawnVehicle()
{

	int spawnflags;
	gentity_t *gentity;
	vec3_t origin;
	char vehTypeStr[MAX_QPATH];
	char vehModel[MAX_QPATH];

	Scr_GetVector(0, origin);

	if ( Scr_GetNumParam() != 4 )
	{
		Scr_Error("Usage: spawnvehicle <origin>, <spawnflags>, <vehicletype>, <xmodel>");
		return;
	}

	spawnflags = Scr_GetInt(1);

	gentity = G_Spawn();

	Scr_SetString((unsigned short*)&gentity->constClassname, (unsigned short)stringIndex.script_vehicle);

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

	gentity->spawnflags = spawnflags;

        Q_strncpyz(vehTypeStr, Scr_GetString(2), sizeof(vehTypeStr));
        Q_strncpyz(vehModel, Scr_GetString(3), sizeof(vehModel));

        G_SetModel(gentity, vehModel);

	SpawnVehicle( gentity, vehTypeStr );
	G_VehCollmapSpawner( gentity );
	Scr_AddEntity( gentity );
}
Exemplo n.º 8
0
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) ));
	}
}