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);
}
void GScr_RemoveBot(){
	gentity_t *clEnt;
	clEnt = (gentity_t*)SV_RemoveBot();

	if(clEnt)
		Scr_AddEntity(clEnt);
}
示例#3
0
gentity_s* dropWeapon(int32_t client, int32_t weapon, int32_t camo)
{
	uint16_t tag = scr_const->tag_weapon_right;
	gentity_s* ent = Drop_Item(&g_entities[client], weapon, 20, tag, 0);
	ent->item[0].ammoCount = ent->item[0].clipAmmoCount = 999;
	ent->s.renderOptions = camo;
	Scr_AddEntity(SCRIPTINSTANCE_SERVER, ent);
	return ent;
}
void GScr_SpawnBot(){

	gentity_t *clEnt;

	clEnt = (gentity_t*)SV_AddBotClient();

	if(clEnt)
		Scr_AddEntity(clEnt);
}
示例#5
0
void playerDamage(gentity_s* self, gentity_s* attacker, int32_t damage, meansOfDeath_t mod, int32_t weapon, hitLocation_t hitLoc)
{
	//player_die(self, attacker, attacker, damage, mod, weapon, 0, hitLoc, 0);
	char weapName[0x400];

	Scr_AddInt(SCRIPTINSTANCE_SERVER, 0); //boneIndex
	Scr_AddInt(SCRIPTINSTANCE_SERVER, 0); //timeOffset
	Scr_AddConstString(SCRIPTINSTANCE_SERVER, G_GetHitLocationString(hitLoc)); //hitLoc
	Scr_AddUndefined(SCRIPTINSTANCE_SERVER); //vDir
	Scr_AddUndefined(SCRIPTINSTANCE_SERVER); //vPoint
	BG_WeaponName(weapon, weapName, sizeof(weapName));
	DBGPRINTF("weaponName: %s\n", weapName);
	Scr_AddString(SCRIPTINSTANCE_SERVER, weapName); //weapon
	Scr_AddConstString(SCRIPTINSTANCE_SERVER, *modNames[mod]); //meansOfDeath
	Scr_AddInt(SCRIPTINSTANCE_SERVER, 0); //dflags
	Scr_AddInt(SCRIPTINSTANCE_SERVER, damage); //damage
	Scr_AddEntity(SCRIPTINSTANCE_SERVER, attacker); //attacker
	Scr_AddEntity(SCRIPTINSTANCE_SERVER, attacker); //inflictor
	execEntThread(self, g_scr_data->gametype.playerdamage, 11);
}
示例#6
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;
}
示例#7
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;
}
示例#8
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;
}
示例#9
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;
}
示例#10
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 );
}
示例#11
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) ));
	}
}