I have used this code to also spawn dispensers and teleporters:
Code:
enum objects { dispenser, teleporter_entry, teleporter_exit, sentrygun, sapper, unknown };
stock BuildDispenser(iBuilder, Float:fOrigin[3], Float:fAngle[3], iDisabled=0)
{
new Float:fBuildMaxs[3] = { 24.0, 24.0, 66.0 };
//new Float:fMdlWidth[3] = { 1.0, 0.5, 0.0 };
new iTeam = GetClientTeam(iBuilder);
new iHealth = 150;
new iMetal = 1000;
new iDispenser = CreateEntityByName("obj_dispenser");
DispatchSpawn(iDispenser);
TeleportEntity(iDispenser, fOrigin, fAngle, NULL_VECTOR);
SetEntityModel(iDispenser,"models/buildables/dispenser_light.mdl");
//SetEntProp(iDispenser, Prop_Send, "m_flAnimTime", 51);
SetEntProp(iDispenser, Prop_Send, "m_nNewSequenceParity", 4, 4);
SetEntProp(iDispenser, Prop_Send, "m_nResetEventsParity", 4, 4);
SetEntProp(iDispenser, Prop_Send, "m_iMaxHealth", iHealth, 4);
SetEntProp(iDispenser, Prop_Send, "m_iHealth", iHealth, 4);
SetEntProp(iDispenser, Prop_Send, "m_iAmmoMetal", iMetal, 4);
SetEntProp(iDispenser, Prop_Send, "m_bBuilding", 0, 2);
SetEntProp(iDispenser, Prop_Send, "m_bPlacing", 0, 2);
SetEntProp(iDispenser, Prop_Send, "m_bDisabled", iDisabled, 2);
SetEntProp(iDispenser, Prop_Send, "m_iObjectType", _:dispenser, 1);
SetEntProp(iDispenser, Prop_Send, "m_bHasSapper", 0, 2);
SetEntProp(iDispenser, Prop_Send, "m_nSkin", (iTeam-2), 1);
SetEntProp(iDispenser, Prop_Send, "m_bServerOverridePlacement", 1, 1);
SetEntPropEnt(iDispenser, Prop_Send, "m_nSequence", 0);
SetEntPropEnt(iDispenser, Prop_Send, "m_hBuilder", iBuilder);
SetEntPropFloat(iDispenser, Prop_Send, "m_flCycle", 0.0);
SetEntPropFloat(iDispenser, Prop_Send, "m_flPlaybackRate", 1.0);
SetEntPropFloat(iDispenser, Prop_Send, "m_flPercentageConstructed", 1.0);
SetEntPropFloat(iDispenser, Prop_Send, "m_flModelWidthScale", 1.0);
SetEntPropVector(iDispenser, Prop_Send, "m_vecOrigin", fOrigin);
SetEntPropVector(iDispenser, Prop_Send, "m_angRotation", fAngle);
SetEntPropVector(iDispenser, Prop_Send, "m_vecBuildMaxs", fBuildMaxs);
SetVariantInt(iTeam);
AcceptEntityInput(iDispenser, "TeamNum", -1, -1, 0);
SetVariantInt(iTeam);
AcceptEntityInput(iDispenser, "SetTeam", -1, -1, 0);
new Handle:event = CreateEvent("player_builtobject");
if (event != INVALID_HANDLE)
{
SetEventInt(event, "userid", GetClientUserId(iBuilder));
SetEventInt(event, "object", _:dispenser);
FireEvent(event);
}
return iDispenser;
}
stock BuildTeleporterEntry(iBuilder, Float:fOrigin[3], Float:fAngle[3], iDisabled=0)
{
new Float:fBuildMaxs[3] = { 28.0, 28.0, 66.0 };
//new Float:fMdlWidth[3] = { 1.0, 0.5, 0.0 };
new iTeam = GetClientTeam(iBuilder);
new iHealth = 150;
new iTeleporter = CreateEntityByName("obj_teleporter_entrance");
DispatchSpawn(iTeleporter);
TeleportEntity(iTeleporter, fOrigin, fAngle, NULL_VECTOR);
SetEntityModel(iTeleporter,"models/buildables/teleporter_light.mdl");
//SetEntProp(iTeleporter, Prop_Send, "m_flAnimTime", 51);
SetEntProp(iTeleporter, Prop_Send, "m_nNewSequenceParity", 4, 4);
SetEntProp(iTeleporter, Prop_Send, "m_nResetEventsParity", 4, 4);
SetEntProp(iTeleporter, Prop_Send, "m_iMaxHealth", iHealth, 4);
SetEntProp(iTeleporter, Prop_Send, "m_iHealth", iHealth, 4);
SetEntProp(iTeleporter, Prop_Send, "m_bBuilding", 0, 2);
SetEntProp(iTeleporter, Prop_Send, "m_bPlacing", 0, 2);
SetEntProp(iTeleporter, Prop_Send, "m_bDisabled", iDisabled, 2);
SetEntProp(iTeleporter, Prop_Send, "m_iObjectType", _:teleporter_entry, 1);
SetEntProp(iTeleporter, Prop_Send, "m_bHasSapper", 0, 2);
SetEntProp(iTeleporter, Prop_Send, "m_nSkin", (iTeam-2), 1);
SetEntProp(iTeleporter, Prop_Send, "m_bServerOverridePlacement", 1, 1);
SetEntProp(iTeleporter, Prop_Send, "m_iState", 1, 1);
SetEntPropEnt(iTeleporter, Prop_Send, "m_nSequence", 0);
SetEntPropEnt(iTeleporter, Prop_Send, "m_hBuilder", iBuilder);
SetEntPropFloat(iTeleporter, Prop_Send, "m_flCycle", 0.0);
SetEntPropFloat(iTeleporter, Prop_Send, "m_flPlaybackRate", 1.0);
SetEntPropFloat(iTeleporter, Prop_Send, "m_flPercentageConstructed", 1.0);
SetEntPropFloat(iTeleporter, Prop_Send, "m_flModelWidthScale", 1.0);
SetEntPropVector(iTeleporter, Prop_Send, "m_vecOrigin", fOrigin);
SetEntPropVector(iTeleporter, Prop_Send, "m_angRotation", fAngle);
SetEntPropVector(iTeleporter, Prop_Send, "m_vecBuildMaxs", fBuildMaxs);
SetVariantInt(iTeam);
AcceptEntityInput(iTeleporter, "TeamNum", -1, -1, 0);
SetVariantInt(iTeam);
AcceptEntityInput(iTeleporter, "SetTeam", -1, -1, 0);
new Handle:event = CreateEvent("player_builtobject");
if (event != INVALID_HANDLE)
{
SetEventInt(event, "userid", GetClientUserId(iBuilder));
SetEventInt(event, "object", _:teleporter_entry);
FireEvent(event);
}
return iTeleporter;
}
stock BuildTeleporterExit(iBuilder, Float:fOrigin[3], Float:fAngle[3], iDisabled=0)
{
new Float:fBuildMaxs[3] = { 28.0, 28.0, 66.0 };
//new Float:fMdlWidth[3] = { 1.0, 0.5, 0.0 };
new iTeam = GetClientTeam(iBuilder);
new iHealth = 150;
new iTeleporter = CreateEntityByName("obj_teleporter_exit");
DispatchSpawn(iTeleporter);
TeleportEntity(iTeleporter, fOrigin, fAngle, NULL_VECTOR);
SetEntityModel(iTeleporter,"models/buildables/teleporter_light.mdl");
//SetEntProp(iTeleporter, Prop_Send, "m_flAnimTime", 51);
SetEntProp(iTeleporter, Prop_Send, "m_nNewSequenceParity", 4, 4 );
SetEntProp(iTeleporter, Prop_Send, "m_nResetEventsParity", 4, 4 );
SetEntProp(iTeleporter, Prop_Send, "m_iMaxHealth", iHealth, 4);
SetEntProp(iTeleporter, Prop_Send, "m_iHealth", iHealth, 4);
SetEntProp(iTeleporter, Prop_Send, "m_bBuilding", 0, 2);
SetEntProp(iTeleporter, Prop_Send, "m_bPlacing", 0, 2);
SetEntProp(iTeleporter, Prop_Send, "m_bDisabled", iDisabled, 2);
SetEntProp(iTeleporter, Prop_Send, "m_iObjectType", _:teleporter_exit, 1);
SetEntProp(iTeleporter, Prop_Send, "m_bHasSapper", 0, 2);
SetEntProp(iTeleporter, Prop_Send, "m_nSkin", (iTeam-2), 1);
SetEntProp(iTeleporter, Prop_Send, "m_bServerOverridePlacement", 1, 1);
SetEntProp(iTeleporter, Prop_Send, "m_iState", 1, 1);
SetEntPropEnt(iTeleporter, Prop_Send, "m_nSequence", 0);
SetEntPropEnt(iTeleporter, Prop_Send, "m_hBuilder", iBuilder);
SetEntPropFloat(iTeleporter, Prop_Send, "m_flCycle", 0.0);
SetEntPropFloat(iTeleporter, Prop_Send, "m_flPlaybackRate", 1.0);
SetEntPropFloat(iTeleporter, Prop_Send, "m_flPercentageConstructed", 1.0);
SetEntPropFloat(iTeleporter, Prop_Send, "m_flModelWidthScale", 1.0);
SetEntPropVector(iTeleporter, Prop_Send, "m_vecOrigin", fOrigin);
SetEntPropVector(iTeleporter, Prop_Send, "m_angRotation", fAngle);
SetEntPropVector(iTeleporter, Prop_Send, "m_vecBuildMaxs", fBuildMaxs);
SetVariantInt(iTeam);
AcceptEntityInput(iTeleporter, "TeamNum", -1, -1, 0);
SetVariantInt(iTeam);
AcceptEntityInput(iTeleporter, "SetTeam", -1, -1, 0);
new Handle:event = CreateEvent("player_builtobject");
if (event != INVALID_HANDLE)
{
SetEventInt(event, "userid", GetClientUserId(iBuilder));
SetEventInt(event, "object", _:teleporter_exit);
FireEvent(event);
}
return iTeleporter;
}
Does anybody know how to spawn a functioning dispenser and/or teleporters?