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); }
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 ); }