Помогите с плагином двойного прыжка

QuadXeon

Участник
Сообщения
8
Реакции
1
#include <sourcemod>
#include <sdktools>
#include <vip>

#define PLUGIN_VERSION "1.0"

public Plugin:myinfo = {
name = "exi.double.jump",
author = "XeonQuad",
description = "double.jump",
version = PLUGIN_VERSION,
url = "Existance :: Главная"
}

new
Handle:g_cvJumpBoost = INVALID_HANDLE,
Handle:g_cvJumpEnable = INVALID_HANDLE,
Handle:g_cvJumpMax = INVALID_HANDLE,
Float:g_flBoost = 250.0,
bool:g_bDoubleJump = true,
g_fLastButtons[MAXPLAYERS+1],
g_fLastFlags[MAXPLAYERS+1],
g_iJumps[MAXPLAYERS+1],
g_iJumpMax

public OnPluginStart() {
CreateConVar(
"sm_doublejump_version", PLUGIN_VERSION,
"Double Jump Version",
FCVAR_PLUGIN|FCVAR_NOTIFY
)

g_cvJumpEnable = CreateConVar(
"sm_doublejump_enabled", "1",
"Enables double-jumping.",
FCVAR_PLUGIN|FCVAR_NOTIFY
)

g_cvJumpBoost = CreateConVar(
"sm_doublejump_boost", "250.0",
"The amount of vertical boost to apply to double jumps.",
FCVAR_PLUGIN|FCVAR_NOTIFY
)

g_cvJumpMax = CreateConVar(
"sm_doublejump_max", "1",
"The maximum number of re-jumps allowed while already jumping.",
FCVAR_PLUGIN|FCVAR_NOTIFY
)

HookConVarChange(g_cvJumpBoost, convar_ChangeBoost)
HookConVarChange(g_cvJumpEnable, convar_ChangeEnable)
HookConVarChange(g_cvJumpMax, convar_ChangeMax)

g_bDoubleJump = GetConVarBool(g_cvJumpEnable)
g_flBoost = GetConVarFloat(g_cvJumpBoost)
g_iJumpMax = GetConVarInt(g_cvJumpMax)
}

public convar_ChangeBoost(Handle:convar, const String:oldVal[], const String:newVal[]) {
g_flBoost = StringToFloat(newVal)
}

public convar_ChangeEnable(Handle:convar, const String:oldVal[], const String:newVal[]) {
if (StringToInt(newVal) >= 1) {
g_bDoubleJump = true
} else {
g_bDoubleJump = false
}
}

public convar_ChangeMax(Handle:convar, const String:oldVal[], const String:newVal[]) {
g_iJumpMax = StringToInt(newVal)
}

public OnGameFrame() {
if (g_bDoubleJump) {
for (new i = 1; i <= MaxClients; i++) {
decl String:group[64];
VIP_GetGroupName(i, group, 64);
if (strcmp(group, "platinum", true) == 0)
{
if (IsClientInGame(i) && IsPlayerAlive(i))
{
DoubleJump(i)
}
}
}
}
}

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)
}
}

После обновления CS:GO перестал работать и родной аддон к VIP'у от ws, и прочие решения в сети.
Прошу помочь с данным плагином.
Компилируется нормально.
Второй прыжок в воздухе попросту не происходит.
 

Drumanid

Нестандартное звание
Сообщения
1,862
Реакции
1,748
У тебя bhop на сервере стоит?
 

QuadXeon

Участник
Сообщения
8
Реакции
1
Самописный плагин deathrun, да, стоит bhop отдельным плагином для всех.
 

QuadXeon

Участник
Сообщения
8
Реакции
1
Двойной прыжок не работает с bhop(ом).
Раньше работал?
Да, раньше работал =)
Сейчас проверю.
--- Добавлено позже ---
Двойной прыжок не работает с bhop(ом).
Раньше работал?
А серьезно, проблема решена, огромное спасибо!
--- Добавлено позже ---
@QuadXeon, что-то мне подсказывает, что данный Double jump плагин - не твой.
не мой, адаптация под вип плагин.
 

Drumanid

Нестандартное звание
Сообщения
1,862
Реакции
1,748
Да, раньше работал =)
Сейчас проверю.
--- Добавлено позже ---

А серьезно, проблема решена, огромное спасибо!
--- Добавлено позже ---

не мой, адаптация под вип плагин.
Оффтоп
 
Сверху Снизу