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