Isto é uma pré-visualização de um tema em Hitskin.com
Instalar o tema • Voltar para a ficha do tema
[EO 2.0] Limitando SpeedHack
Página 1 de 1
[EO 2.0] Limitando SpeedHack
Aqui vamos limitar um pouco melhor principalmente quem abusa de SpeedHack no eclipse origins. Já existe um tutorial aqui quem mexe no 'IncomingData", mas mesmo que sutil, ainda dá para o jogador mexer no cliente e fazer um MovementSpeed maior que o permitido.
A parte boa é que ainda "buga a posição" do jogador caso ele ande mais que o permitido (ou seja, adiciona timer e só relogando ou esperando parado no mesmo lugar por mais tempo).
Se tiver aquela dúvida: "Ahh mas e se o server der lag?", bem, se você seguiu o primeiro tutorial do fórum de "IncomingData" que inclusive protege seu servidor de um flood, se der "Lag" o Incoming vai fazer o trabalho. O melhor é que não tenha Lag, senão vai acontecer igual um EEB, excesso de pacotes, é melhor o jogador cair que o servidor inteiro.
Sem mais delongas, abra seu "Server.Vbp" e em "ModTypes" , procure pelo tipo "TempPlayerRec" e descendo, logo antes do PRIMEIRO:
Adicione acima isto:
Agora, em "ModHandleData" , procure pela "Sub HandlePlayerMove" e abaixo de:
Adicione isto:
Agora, no final de "ModConstants" declare isso:
Agora é bem simples, tudo que você prcisa se atentar é:
Walk_Speed e Run_Speed que você deseja no cliente, coloque o mesmo no servidor para que ele faça a checagem correta.
Caso você não sincronize, não crasha seu servidor nem nada, mas impede o jogador de andar em efeitos visuais do "SendXY" mais feios como se o jogador estivesse bugado.
Caso você queira que o jogador que for pego no "vá de base" , só adicionar um "Call AlertMsg" que ele é kickado com uma mensagem que você seleciona.
(Talvez mais tarde eu poste a correção do movimento do cliente em mudanças de FPS(<32) fazendo que ele sempre encoste no Running do server. Na E02.0 ele encosta, na corrigida ele faz certinho -> 1~240 FPS, apesar que 1 de FPSencoste o pc )
Até onde Testei, tudo certinho, qualquer erro, dúvida ou sugestão, exponha aí! Valeu!
A parte boa é que ainda "buga a posição" do jogador caso ele ande mais que o permitido (ou seja, adiciona timer e só relogando ou esperando parado no mesmo lugar por mais tempo).
Se tiver aquela dúvida: "Ahh mas e se o server der lag?", bem, se você seguiu o primeiro tutorial do fórum de "IncomingData" que inclusive protege seu servidor de um flood, se der "Lag" o Incoming vai fazer o trabalho. O melhor é que não tenha Lag, senão vai acontecer igual um EEB, excesso de pacotes, é melhor o jogador cair que o servidor inteiro.
Sem mais delongas, abra seu "Server.Vbp" e em "ModTypes" , procure pelo tipo "TempPlayerRec" e descendo, logo antes do PRIMEIRO:
- Código:
End Type
Adicione acima isto:
- Código:
MovingTimer As Long
Agora, em "ModHandleData" , procure pela "Sub HandlePlayerMove" e abaixo de:
- Código:
' Prevent hacking
If Movement < 1 Or Movement > 2 Then
Exit Sub
End If
Adicione isto:
- Código:
'Check for excessive movement requeriment
If Movement = 1 Then 'Moving walking
If TempPlayer(Index).movingTimer + WALK_SPEED * 32 > GetTickCount Then
SendPlayerXY Index
Exit Sub
End If
ElseIf Movement = 2 Then 'Moving Running
If TempPlayer(Index).movingTimer + RUN_SPEED * 32 > GetTickCount Then
SendPlayerXY Index
Exit Sub
End If
End If
'Set Timer
TempPlayer(Index).movingTimer = GetTickCount
Agora, no final de "ModConstants" declare isso:
- Código:
' Speed moving vars
Public Const WALK_SPEED As Byte = 4
Public Const RUN_SPEED As Byte = 6
Agora é bem simples, tudo que você prcisa se atentar é:
Walk_Speed e Run_Speed que você deseja no cliente, coloque o mesmo no servidor para que ele faça a checagem correta.
Caso você não sincronize, não crasha seu servidor nem nada, mas impede o jogador de andar em efeitos visuais do "SendXY" mais feios como se o jogador estivesse bugado.
Caso você queira que o jogador que for pego no "vá de base" , só adicionar um "Call AlertMsg" que ele é kickado com uma mensagem que você seleciona.
(Talvez mais tarde eu poste a correção do movimento do cliente em mudanças de FPS(<32) fazendo que ele sempre encoste no Running do server. Na E02.0 ele encosta, na corrigida ele faz certinho -> 1~240 FPS, apesar que 1 de FPS
Até onde Testei, tudo certinho, qualquer erro, dúvida ou sugestão, exponha aí! Valeu!
Kotol- Moderador Local
- Mensagens : 77
Créditos : 17
Valentine e Nando Moura gostam desta mensagem
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos