#pragma semicolon 1
#pragma newdecls required
#include <sourcemod>
#include <duck_speed>
#include <vip_core>
int g_bDuckSpeedState[MAXPLAYERS + 1] = {0, ...};
static const char g_sFeature[] = "DuckSpeed";
public Plugin myinfo =
{
name = "[VIP] Duck Speed",
author = "Wend4r",
version = "1.0.0",
url = "Discord: Wend4r#0001 | VK: vk.com/wend4r"
}
public APLRes AskPluginLoad2(Handle hMySelf, bool bLate, char[] sError, int iErrorSize)
{
if(GetEngineVersion() != Engine_CSGO)
{
strcopy(sError, iErrorSize, "This plugin works only on CS:GO");
return APLRes_SilentFailure;
}
return APLRes_Success;
}
public void OnPluginStart()
{
if(VIP_IsVIPLoaded())
{
VIP_OnVIPLoaded();
}
}
public void VIP_OnVIPLoaded()
{
VIP_RegisterFeature(g_sFeature, BOOL);
}
public void OnPluginEnd()
{
if(CanTestFeatures() && GetFeatureStatus(FeatureType_Native, "VIP_UnregisterFeature") == FeatureStatus_Available)
{
VIP_UnregisterFeature(g_sFeature);
}
}
public void OnClientDisconnect(int iClient)
{
g_bDuckSpeedState[iClient] = 0;
}
public void VIP_OnVIPClientLoaded(int iClient)
{
g_bDuckSpeedState[iClient] = view_as<int>(VIP_GetClientFeatureStatus(iClient, g_sFeature));
}
public Action VIP_OnFeatureToggle(int iClient, const char[] szFeature, VIP_ToggleState eOldStatus, VIP_ToggleState &eNewStatus)
{
if(StrContains(szFeature, g_sFeature) != -1)
{
g_bDuckSpeedState[iClient] = view_as<int>(eNewStatus);
}
return Plugin_Continue;
}
public Action OnPlayerDuck(int iClient, float &flSpeed)
{
if(!VIP_IsClientVIP(iClient) || g_bDuckSpeedState[iClient] == 0)
{
return Plugin_Handled;
}
return Plugin_Continue;
}