sm-plugins/_ItemSpawn/scripting/items/earth.inc
DoganGFL b9efc06bba Rename of unused plugins
either not used at all or in disabled
2019-07-25 00:44:32 +02:00

175 lines
7.4 KiB
PHP

//----------------------------------------------------------------------------------------------------
// Purpose:
//----------------------------------------------------------------------------------------------------
public Action Command_Earth(int client, int argc)
{
float fOrigin[3];
if (argc < 1)
{
GetClientEyePosition(client, fOrigin);
SpawnEarthStaff(fOrigin);
LogAction(client, -1, "\"%L\" spawned Earth-Staff at <%f><%f><%f>.", client, fOrigin[0], fOrigin[1], fOrigin[2]);
return Plugin_Handled;
}
char sArgs[64];
char sTargetName[MAX_TARGET_LENGTH];
int iTargets[MAXPLAYERS];
int iTargetCount;
bool bIsML;
GetCmdArg(1, sArgs, sizeof(sArgs));
if ((iTargetCount = ProcessTargetString(sArgs, client, iTargets, MAXPLAYERS, COMMAND_FILTER_CONNECTED, sTargetName, sizeof(sTargetName), bIsML)) <= 0)
{
ReplyToTargetError(client, iTargetCount);
return Plugin_Handled;
}
for (int i = 0; i < iTargetCount; i++)
{
if(IsClientInGame(iTargets[i]) && IsPlayerAlive(iTargets[i]) && (ZR_IsClientHuman(iTargets[i])))
{
GetClientEyePosition(iTargets[i], fOrigin);
SpawnEarthStaff(fOrigin, iTargets[i]);
LogAction(client, -1, "\"%L\" gave Earth-Staff to \"%L\".", client, iTargets[i]);
}
}
return Plugin_Handled;
}
//----------------------------------------------------------------------------------------------------
// Purpose:
//----------------------------------------------------------------------------------------------------
void SpawnEarthStaff(float fOrigin[3], int client = -1)
{
float fOriginTemp[3];
// weapon_knife.
int iPistol = CreateEntityAtOrigin("weapon_elite", fOrigin);
DispatchKeyFormat(iPistol, "targetname", "item_earth_staff_pistol_%d", g_iCounter);
DispatchKeyFormat(iPistol, "hammerid", "11051995%d", g_iCounter);
DispatchKeyFormat(iPistol, "spawnflags", "1");
DispatchKeyFormat(iPistol, "angles", "0 0 0");
DispatchKeyFormat(iPistol, "ammo", "999");
DispatchKeyFormat(iPistol, "OnPlayerPickup", "item_earth_staff_controls_%d,Activate,,0,1", g_iCounter);
SpawnAndActivate(iPistol);
HookSingleEntityOutput(iPistol, "OnPlayerPickup", EarthStaffPickup, false);
// model origin.
fOriginTemp[0] = fOrigin[0] + 24.0;
fOriginTemp[1] = fOrigin[1] - 16.0;
fOriginTemp[2] = fOrigin[2] - 32.0;
// prop_dynamic model.
int iModel = CreateEntityAtOrigin("prop_dynamic", fOriginTemp);
DispatchKeyFormat(iModel, "targetname", "item_earth_staff_model_%d", g_iCounter);
DispatchKeyFormat(iModel, "model", "models/staff/staff.mdl");
DispatchKeyFormat(iModel, "disablebonefollowers", "1");
DispatchKeyFormat(iModel, "defaultanim", "idle");
DispatchKeyFormat(iModel, "angles", "0 270 0");
DispatchKeyFormat(iModel, "solid", "0");
SpawnAndActivate(iModel);
ParentToEntity(iModel, iPistol);
// ambient_generic earth.
int iSoundEarth = CreateEntityAtOrigin("ambient_generic", fOrigin);
DispatchKeyFormat(iSoundEarth, "targetname", "item_earth_staff_sound_%d", g_iCounter);
DispatchKeyFormat(iSoundEarth, "spawnflags", "48");
DispatchKeyFormat(iSoundEarth, "radius", "1250");
DispatchKeyFormat(iSoundEarth, "sourceentityname", "item_earth_staff_model_%d", g_iCounter);
DispatchKeyFormat(iSoundEarth, "message", "physics/concrete/boulder_impact_hard1.wav");
DispatchKeyFormat(iSoundEarth, "volume", "10");
DispatchKeyFormat(iSoundEarth, "health", "10");
DispatchKeyFormat(iSoundEarth, "pitch", "100");
DispatchKeyFormat(iSoundEarth, "pitchstart", "100");
SpawnAndActivate(iSoundEarth);
ParentToEntity(iSoundEarth, iPistol);
// logic_relay earth.
int iRelayEarth = CreateEntityAtOrigin("logic_relay", fOrigin);
DispatchKeyFormat(iRelayEarth, "targetname", "item_earth_staff_relay_%d", g_iCounter);
DispatchKeyFormat(iRelayEarth, "spawnflags", "0");
DispatchKeyFormat(iRelayEarth, "OnTrigger", "!self,Disable,,0,-1");
DispatchKeyFormat(iRelayEarth, "OnTrigger", "!self,Enable,,5,-1");
DispatchKeyFormat(iRelayEarth, "OnTrigger", "item_earth_staff_sound_%d,PlaySound,,0.75,-1", g_iCounter);
DispatchKeyFormat(iRelayEarth, "OnTrigger", "item_earth_staff_model_%d,SetAnimation,Earth,0,-1", g_iCounter);
SpawnAndActivate(iRelayEarth);
ParentToEntity(iRelayEarth, iPistol);
HookSingleEntityOutput(iRelayEarth, "OnTrigger", EarthStaffUse, false);
// game_ui.
int iControls = CreateEntityAtOrigin("game_ui", fOrigin);
DispatchKeyFormat(iControls, "targetname", "item_earth_staff_controls_%d", g_iCounter);
DispatchKeyFormat(iControls, "spawnflags", "0");
DispatchKeyFormat(iControls, "fieldofview", "-1.0");
DispatchKeyFormat(iControls, "PressedAttack2", "item_earth_staff_relay_%d,Trigger,,0,-1", g_iCounter);
SpawnAndActivate(iControls);
ParentToEntity(iControls, iPistol);
g_iCounter++;
if (client > 0)
{
int iWeaponSlot = SDKCall(g_hGetSlot, iPistol);
int WeaponInSlot = GetPlayerWeaponSlot(client, iWeaponSlot);
if(WeaponInSlot != -1)
CS_DropWeapon(client, WeaponInSlot, false);
if(SDKCall(g_hBumpWeapon, client, iPistol))
SDKCall(g_hOnPickedUp, iPistol, client);
}
}
//----------------------------------------------------------------------------------------------------
// Purpose:
//----------------------------------------------------------------------------------------------------
public void EarthStaffPickup(const char[] output, int caller, int activator, float delay)
{
ServerCommand("say ** %N has picked up the Earth-Staff **", activator);
PrintToChat(activator, "Right Click with Knife = Use.");
}
//----------------------------------------------------------------------------------------------------
// Purpose:
//----------------------------------------------------------------------------------------------------
public void EarthStaffUse(const char[] output, int caller, int activator, float delay)
{
CreateTimer(0.75, SpawnEarth, GetClientUserId(activator), TIMER_FLAG_NO_MAPCHANGE);
}
//----------------------------------------------------------------------------------------------------
// Purpose:
//----------------------------------------------------------------------------------------------------
public Action SpawnEarth(Handle timer, any userid)
{
int activator = GetClientOfUserId(userid);
float fOrigin[3];
float fAngles[3];
GetClientEyeAngles(activator, fAngles);
GetClientEyePosition(activator, fOrigin);
fAngles[0] = 0.0;
fAngles[2] = 0.0;
fOrigin[0] = fOrigin[0] + Cosine(DegToRad(fAngles[1])) * 334.0;
fOrigin[1] = fOrigin[1] + Sine(DegToRad(fAngles[1])) * 334.0;
fOrigin[2] = fOrigin[2] - 23.00;
// prop_dynamic model.
int iModel = CreateEntityAtOrigin("prop_dynamic", fOrigin);
DispatchKeyFormat(iModel, "targetname", "item_earth_prop_%d", g_iCounter);
DispatchKeyFormat(iModel, "model", "models/ffxii/earthmodel1.mdl");
DispatchKeyFormat(iModel, "spawnflags", "0");
DispatchKeyFormat(iModel, "PerformanceMode", "0");
DispatchKeyFormat(iModel, "solid", "6");
DispatchKeyFormat(iModel, "OnUser1", "!self,Break,,6,-1");
DispatchKeyFormat(iModel, "OnUser1", "!self,Kill,,6,-1");
SpawnAndActivate(iModel);
AcceptEntityInput(iModel, "FireUser1");
g_iCounter ++;
}