You'll need to create that weaponKB array yourself again, but the plugin itself is straight forward.
PHP Code:
new PlVers:__version = 5;
new Float:NULL_VECTOR[3];
new String:NULL_STRING[1];
new Extension:__ext_core = 68;
new MaxClients;
new Extension:__ext_sdktools = 184;
public Plugin:myinfo =
{
name = "KnockBack",
description = "Weapon Knock Back",
author = "ıı¿ııı",
version = "1.0",
url = ""
};
new String:weaponKB[28][2][64] =
{
{
"knife",
"0.0"
},
{
"glock",
"1000.0"
},
{
"usp",
"1000.0"
}
}
public __ext_core_SetNTVOptional()
{
MarkNativeAsOptional("GetFeatureStatus");
MarkNativeAsOptional("RequireFeature");
MarkNativeAsOptional("AddCommandListener");
MarkNativeAsOptional("RemoveCommandListener");
VerifyCoreVersion();
return 0;
}
ScaleVector(Float:vec[3], Float:scale)
{
new var1 = vec;
var1[0] = FloatMul(var1[0], scale);
new var2 = vec[4];
var2 = FloatMul(var2, scale);
new var3 = vec[8];
var3 = FloatMul(var3, scale);
return 0;
}
MakeVectorFromPoints(Float:pt1[3], Float:pt2[3], Float:output[3])
{
output[0] = FloatSub(pt2[0], pt1[0]);
output[4] = FloatSub(pt2[4], pt1[4]);
output[8] = FloatSub(pt2[8], pt1[8]);
return 0;
}
bool:StrEqual(String:str1[], String:str2[], bool:caseSensitive)
{
return strcmp(str1, str2, caseSensitive) == 0;
}
public OnPluginStart()
{
CreateConVar("knockback_version", "1.0", "knockback plugin info cvar", 8448, false, 0.0, false, 0.0);
HookEvent("player_hurt", EventHook:5, EventHookMode:1);
return 0;
}
public Action:Player_Hurt(Handle:event, String:name[], bool:dontBroadcast)
{
new Client = GetClientOfUserId(GetEventInt(event, "userid"));
new Attacker = GetClientOfUserId(GetEventInt(event, "Attacker"));
new var1;
if (AliveCheck(Client) == 1) {
decl String:k_weapon[32];
GetEventString(event, "weapon", k_weapon, 32);
new i = 0;
while (i < 28) {
new var2 = weaponKB[i][0][0];
if (StrEqual(var2[0][var2], k_weapon, true)) {
decl Float:Clientposition[3];
decl Float:targetposition[3];
decl Float:vector[3];
GetClientEyePosition(Attacker, Clientposition);
GetClientEyePosition(Client, targetposition);
MakeVectorFromPoints(Clientposition, targetposition, vector);
NormalizeVector(vector, vector);
ScaleVector(vector, StringToFloat(weaponKB[i][0][0][4]));
TeleportEntity(Client, NULL_VECTOR, NULL_VECTOR, vector);
}
i++;
}
}
return Action:0;
}
public bool:AliveCheck(Client)
{
new var1;
if (Client > 0) {
if (IsClientConnected(Client) == 1) {
if (IsClientInGame(Client) == 1) {
if (IsPlayerAlive(Client) == 1) {
return true;
}
return false;
}
return false;
}
return false;
}
return false;
}
__________________