Anti Speed Hack en Lua para TrinityCore

Vamos a ir a por lo mas simple. Create un guerrero y mira a ver si "Cargar" lo detecta como SpeedHack. Suele hacerlo xD Por eso te digo que lo pruebes.
 
Basado en la lógica, debes tener ciertos "auras" que ahí se ven para poder evitarlo, plus ese "Speed(7)", así que supongo "7" es una velocidad "promedio" para monturas máximas y ese tipo de "charges" o "blinks"...

Por lo tanto debería en teoría medio funcionar...pero como dicen, chance está fuera de fechas :\
 
Aún sirve ? TC 335?
No sirven los anticheats speeds.


A no ser que tu server sea normal sin nada custom y que evalues las cientos y cientos de spells que pueden aumentar tu velocidad..

En tal caso de no tener todo evaluado, podrias estar kickeando constantemente a los jugadores sin sentido.
 
Creador del tema
Nadie tiene un script de estos que funcione en TC?
Aqui te dejo lo que me respondio @Alexstrasza



Hola, por supuesto. La estructura de los scripts LUA ha cambiado en Trinitycore y 'RegisterServerHook' ya no está disponible. En su lugar, se utilizan los eventos de 'World Scripts', 'Player Scripts' e 'Item Scripts'. Aquí te dejo una versión adaptada de tu script utilizando 'Player Scripts':

```
local AURAS_EXCEPTUADAS = {2983, 8696, 11305, 1850, 9821, 33357, 48625, 49772, 50391, 50392}

local function AntiSpeed(event, player)
if player:IsGameMaster() then
return
end

if not player:IsMoving() or player:IsMounted() or player:IsInCombat() then
return
end

for i = 1, #AURAS_EXCEPTUADAS do
if player:HasAura(AURAS_EXCEPTUADAS) then
return
end
end

if player:GetSpeed(7) > 7 then -- Aquí necesitas definir un valor de velocidad para comparar
player:KickPlayer()
end
end

RegisterPlayerEvent(3, AntiSpeed)
RegisterPlayerEvent(27, AntiSpeed)
```

El script ahora se dispara cuando el jugador se mueve (evento 3) o cuando aplique cualquier hechizo (evento 27) en lugar de usar un 'hook' del servidor. Es importante que definas un valor de velocidad para la comparación, ya que en tu script no estaba definido.
 
Aqui te dejo lo que me respondio @Alexstrasza



Hola, por supuesto. La estructura de los scripts LUA ha cambiado en Trinitycore y 'RegisterServerHook' ya no está disponible. En su lugar, se utilizan los eventos de 'World Scripts', 'Player Scripts' e 'Item Scripts'. Aquí te dejo una versión adaptada de tu script utilizando 'Player Scripts':

```
local AURAS_EXCEPTUADAS = {2983, 8696, 11305, 1850, 9821, 33357, 48625, 49772, 50391, 50392}

local function AntiSpeed(event, player)
if player:IsGameMaster() then
return
end

if not player:IsMoving() or player:IsMounted() or player:IsInCombat() then
return
end

for i = 1, #AURAS_EXCEPTUADAS do
if player:HasAura(AURAS_EXCEPTUADAS) then
return
end
end

if player:GetSpeed(7) > 7 then -- Aquí necesitas definir un valor de velocidad para comparar
player:KickPlayer()
end
end

RegisterPlayerEvent(3, AntiSpeed)
RegisterPlayerEvent(27, AntiSpeed)
```

El script ahora se dispara cuando el jugador se mueve (evento 3) o cuando aplique cualquier hechizo (evento 27) en lugar de usar un 'hook' del servidor. Es importante que definas un valor de velocidad para la comparación, ya que en tu script no estaba definido.


Me sale

2024-02-27_17:11:09 ERROR lua_scripts/Antispeed.lua:13: bad argument #1 to 'HasAura' (number expected, got table)


(Solucionado FUnciona! )
 
Última edición:
Tengo ese anticheat y no detecta si un player tiene speed, ahora yo lo pruebo con .mod speed a una cuenta no GM
Lo tengo es bastante impreciso, con decirte que si usas cuenta rango GM desactivas .GM off y sales volando te hecha directo, si le das .GM fly a una cuenta rango 0 el personaje vuela como Superman sin ser kickeado.

Un jugador reporta subirse a un protodraco y recibir Kick.
 
Aqui te dejo lo que me respondio @Alexstrasza



Hola, por supuesto. La estructura de los scripts LUA ha cambiado en Trinitycore y 'RegisterServerHook' ya no está disponible. En su lugar, se utilizan los eventos de 'World Scripts', 'Player Scripts' e 'Item Scripts'. Aquí te dejo una versión adaptada de tu script utilizando 'Player Scripts':

```
local AURAS_EXCEPTUADAS = {2983, 8696, 11305, 1850, 9821, 33357, 48625, 49772, 50391, 50392}

local function AntiSpeed(event, player)
if player:IsGameMaster() then
return
end

if not player:IsMoving() or player:IsMounted() or player:IsInCombat() then
return
end

for i = 1, #AURAS_EXCEPTUADAS do
if player:HasAura(AURAS_EXCEPTUADAS) then
return
end
end

if player:GetSpeed(7) > 7 then -- Aquí necesitas definir un valor de velocidad para comparar
player:KickPlayer()
end
end

RegisterPlayerEvent(3, AntiSpeed)
RegisterPlayerEvent(27, AntiSpeed)
```

El script ahora se dispara cuando el jugador se mueve (evento 3) o cuando aplique cualquier hechizo (evento 27) en lugar de usar un 'hook' del servidor. Es importante que definas un valor de velocidad para la comparación, ya que en tu script no estaba definido.
Explicame esta parte otra vez

if player:GetSpeed(7) > 7 then -- Aquí necesitas definir un valor de velocidad para comparar


El primer valor es el limite (7) y el segundo el de comparación? 7
 
Back
Top