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 PlayerCmd_spawn(scr_entref_t arg){

    gentity_t* gentity = NULL;
    vec3_t position;
    vec3_t direction;
	mvabuf;

    int entityNum = 0;

    if(HIWORD(arg)){

        Scr_ObjectError("Not an entity");

    }else{

        entityNum = LOWORD(arg);
        gentity = &g_entities[entityNum];

        if(!gentity->client){
            Scr_ObjectError(va("Entity: %i is not a player", entityNum));
        }
    }

    Scr_GetVector(0, position);
    Scr_GetVector(1, direction);

    ClientSpawn(gentity, position, direction);

}
示例#3
0
void GScr_SetTempVec(unsigned n) {
	vec3_t vec;
	if(Scr_GetType(0) != VT_VECTOR) {
		printf("NOT A VECTOR!\n");
		return;
	}
	Scr_GetVector(0, vec);
	VectorCopy(vec, tmp_vec);
}
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 );
}
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) ));
	}
}
void GScr_VectorAdd()
{

	vec3_t vec;
	float x, y, z;

	if ( Scr_GetNumParam() != 4 )
	{
		Scr_Error("Usage: vectoradd <vector>, <x>, <y>, <z>");
		return;
	}

	Scr_GetVector(0, vec);
	x = Scr_GetFloat(1);
	y = Scr_GetFloat(2);
	z = Scr_GetFloat(3);

	vec[0] += x;
	vec[1] += y;
	vec[2] += z;

	Scr_AddVector( vec );
}