QuadXeon
Участник
- Сообщения
- 8
- Реакции
- 1
Здравствуйте.
Ищу плагин на авто-бхоп, который не будет конфликтовать с двойным прыжком.
Прошу Вас подсказать название такого плагина, если кто сталкивался с проблемой, или знает как ее решить.
Вот также пример с которым конфликтует (автоматического бхопа)
Я так понимаю проблема в:
if(waterCheck(client) < WATER_LIMIT)
buttons &= ~IN_JUMP;
Прошу помощи с решением данной проблемы.
Ищу плагин на авто-бхоп, который не будет конфликтовать с двойным прыжком.
public Action:OnPlayerRunCmd(client, &buttons, &impulse, Float:vel[3], Float:angles[3], &weapon)
{
if (IsPlayerAlive(client) && VIP_IsClientVIP(client) && VIP_IsClientFeatureUse(client, VIP_DJUMP))
{
DoubleJump(client);
}
}
stock DoubleJump(const any:client) {
new fCurFlags = GetEntityFlags(client), fCurButtons = GetClientButtons(client);
if (g_fLastFlags[client] & FL_ONGROUND) {
if (!(fCurFlags & FL_ONGROUND) && !(g_fLastButtons[client] & IN_JUMP) && fCurButtons & IN_JUMP)
{
OriginalJump(client);
}
}
else if (fCurFlags & FL_ONGROUND)
{
Landed(client);
}
else if (!(g_fLastButtons[client] & IN_JUMP) && fCurButtons & IN_JUMP)
{
ReJump(client);
}
g_fLastFlags[client] = fCurFlags;
g_fLastButtons[client] = fCurButtons;
}
stock OriginalJump(const any:client) {
g_iJumps[client]++;
}
stock Landed(const any:client) {
g_iJumps[client] = 0;
}
stock ReJump(const any:client) {
if (1 <= g_iJumps[client] <= g_iJumpMax)
{
g_iJumps[client]++;
decl Float:vVel[3];
GetEntPropVector(client, Prop_Data, "m_vecVelocity", vVel);
vVel[2] = g_flBoost;
TeleportEntity(client, NULL_VECTOR, NULL_VECTOR, vVel);
}
}
{
if (IsPlayerAlive(client) && VIP_IsClientVIP(client) && VIP_IsClientFeatureUse(client, VIP_DJUMP))
{
DoubleJump(client);
}
}
stock DoubleJump(const any:client) {
new fCurFlags = GetEntityFlags(client), fCurButtons = GetClientButtons(client);
if (g_fLastFlags[client] & FL_ONGROUND) {
if (!(fCurFlags & FL_ONGROUND) && !(g_fLastButtons[client] & IN_JUMP) && fCurButtons & IN_JUMP)
{
OriginalJump(client);
}
}
else if (fCurFlags & FL_ONGROUND)
{
Landed(client);
}
else if (!(g_fLastButtons[client] & IN_JUMP) && fCurButtons & IN_JUMP)
{
ReJump(client);
}
g_fLastFlags[client] = fCurFlags;
g_fLastButtons[client] = fCurButtons;
}
stock OriginalJump(const any:client) {
g_iJumps[client]++;
}
stock Landed(const any:client) {
g_iJumps[client] = 0;
}
stock ReJump(const any:client) {
if (1 <= g_iJumps[client] <= g_iJumpMax)
{
g_iJumps[client]++;
decl Float:vVel[3];
GetEntPropVector(client, Prop_Data, "m_vecVelocity", vVel);
vVel[2] = g_flBoost;
TeleportEntity(client, NULL_VECTOR, NULL_VECTOR, vVel);
}
}
Вот также пример с которым конфликтует (автоматического бхопа)
void BhopOn()
{
if(!CSGO)
{
SetCvar("sv_enablebunnyhopping", "1");
SetCvar("sv_airaccelerate", "2000");
}
else
{
SetCvar("sv_enablebunnyhopping", "1");
SetCvar("sv_staminamax", "0");
SetCvar("sv_airaccelerate", "2000");
SetCvar("sv_staminajumpcost", "0");
SetCvar("sv_staminalandcost", "0");
}
}
stock void SetCvar(char[] scvar, char[] svalue)
{
Handle cvar = FindConVar(scvar);
SetConVarString(cvar, svalue, true);
}
public Action OnPlayerRunCmd(int client, int &buttons, int &impulse, float vel[3], float angles[3], int &weapon)
{
if(GetConVarInt(hBhop) == 1 && GetConVarInt(hAutoBhop) == 1) //Check if plugin and autobhop is enabled
if (IsPlayerAlive(client) && buttons & IN_JUMP) //Check if player is alive and is in pressing space
if(!(GetEntityMoveType(client) & MOVETYPE_LADDER) && !(GetEntityFlags(client) & FL_ONGROUND)) //Check if is not in ladder and is in air
if(waterCheck(client) < WATER_LIMIT)
buttons &= ~IN_JUMP;
return Plugin_Continue;
}
int waterCheck(int client)
{
return GetEntProp(client, Prop_Data, "m_nWaterLevel");
}
stock bool IsValidClient(int client)
{
if(client <= 0 ) return false;
if(client > MaxClients) return false;
if(!IsClientConnected(client)) return false;
return IsClientInGame(client);
}
{
if(!CSGO)
{
SetCvar("sv_enablebunnyhopping", "1");
SetCvar("sv_airaccelerate", "2000");
}
else
{
SetCvar("sv_enablebunnyhopping", "1");
SetCvar("sv_staminamax", "0");
SetCvar("sv_airaccelerate", "2000");
SetCvar("sv_staminajumpcost", "0");
SetCvar("sv_staminalandcost", "0");
}
}
stock void SetCvar(char[] scvar, char[] svalue)
{
Handle cvar = FindConVar(scvar);
SetConVarString(cvar, svalue, true);
}
public Action OnPlayerRunCmd(int client, int &buttons, int &impulse, float vel[3], float angles[3], int &weapon)
{
if(GetConVarInt(hBhop) == 1 && GetConVarInt(hAutoBhop) == 1) //Check if plugin and autobhop is enabled
if (IsPlayerAlive(client) && buttons & IN_JUMP) //Check if player is alive and is in pressing space
if(!(GetEntityMoveType(client) & MOVETYPE_LADDER) && !(GetEntityFlags(client) & FL_ONGROUND)) //Check if is not in ladder and is in air
if(waterCheck(client) < WATER_LIMIT)
buttons &= ~IN_JUMP;
return Plugin_Continue;
}
int waterCheck(int client)
{
return GetEntProp(client, Prop_Data, "m_nWaterLevel");
}
stock bool IsValidClient(int client)
{
if(client <= 0 ) return false;
if(client > MaxClients) return false;
if(!IsClientConnected(client)) return false;
return IsClientInGame(client);
}
Я так понимаю проблема в:
if(waterCheck(client) < WATER_LIMIT)
buttons &= ~IN_JUMP;
Прошу помощи с решением данной проблемы.