Im writing plugin to control rocket speed and exploding force (without damage).
my code is turn off damage and make fake Rocket Jump
Need change rocket speed.
PHP Code:
#pragma semicolon 1
#include <sourcemod>
#include <sdktools>
#include <tf2_stocks>
#include <dukehacks>
#define PLUGIN_VERSION "1.0"
new Handle:cvRPower = INVALID_HANDLE;
new gRPower = 40000;
public Plugin:myinfo =
{
name = "Rjump no damage",
author = "NNM",
description = "",
version = PLUGIN_VERSION,
url = ""
}
public OnPluginStart()
{
dhAddClientHook(CHK_TakeDamage, TakeDamageHook);
cvRPower = CreateConVar("ow_midair_rpower", "40000", "power of RJump");
HookConVarChange(cvRPower, cvChanged);
}
public Action:TakeDamageHook(client, attacker, inflictor, Float:damage, &Float:multiplier, damagetype)
{
if (damagetype & DMG_BLAST)
{
new Float:IOrigin[3];
new Float:COrigin[3];
new Float:FOrigin[3];
GetEntPropVector(inflictor, Prop_Send, "m_vecOrigin",IOrigin);
GetEntPropVector(client, Prop_Send, "m_vecOrigin", COrigin);
COrigin[2] += 50;
SubtractVectors(COrigin, IOrigin,FOrigin);
new Float:distance=GetVectorLength(FOrigin);
if(distance>gRPower || distance==0) return Plugin_Stop;
distance=distance*distance;
ScaleVector(FOrigin, gRPower/distance);
for(new n=0;n<3;n++)
if(FOrigin[n]>800.0)
FOrigin[n] = 800.0;
new Float:speed[3];
GetEntPropVector(client, Prop_Data, "m_vecVelocity", speed);
AddVectors(FOrigin, speed,speed);
TeleportEntity(client, NULL_VECTOR, NULL_VECTOR, speed);
}
return Plugin_Stop;
}
public cvChanged(Handle:convar, const String:oldValue[], const String:newValue[])
{
gRPower=StringToInt(newValue);
}