[Off] Como evitar Weapon Hacker em servidores RPG ( minha lуgica ).
#1

Olб caro usuбrios, hoje irei compartilhar com vocкs uma pequena lуgica que montei, e que poderб ser muito ъtil na diminuiзгo de Weapon Hacker.

Pois bem, todos sabemos que o sorvets incomodam bastante, porйm, com um pouco de esforзo conseguimos evitar esses filhos de Lъcifer.

Para iniciar, iremos criar uma espйcie de verificaзгo que vocк pode decidir o que vai ser, no meu caso, como й um servidor RPG irei utilizar um Porte de Armas.

Irei utilizar os cуdigos com salvamento em DOF2.

Vamos aos cуdigos:

Digamos que um jogador compre o tal Porte de Armas, com isso setarб а 1 no arquivo do mesmo.
PHP код:
DOF2_SetInt(diretorio(playerid), "PorteArmas"1), DOF2_SaveFile(); 
Mas isso nгo й o suficiente, vamos precisar de rigor se quisermos evitar o mal. Portanto quando o jogador tentar comprar o porte de armas, colocaremos uma verificaзгo.
PHP код:
if(GetPlayerScore(playerid) < 5) return SendClientMessage(playerid, -1,"Vocк precisa de nнvel acima de 5 para obter esse pertence."); 
Ou seja, se o jogador nгo tiver score acima de 5, ele nгo conseguirб obter um Porte de Armas, todos sabemos que um Hacker nгo tem paciкncia, eles sу querem entrar para zoar o game, entгo a estratйgia й Paciкncia x Hacker.

Baseado no Porte de Armas, nos iremos criar uma segunda verificaзгo, definiremos que TODAS as armas sу poderгo ser utilizadas por jogadores com nнvel acima de 5 e que para utiliza-las precise um Porte de Armas.

Farei um comando simples em ZCMD para demostraзгo:
PHP код:
CMD:arma(playerid)
{
    if(
GetPlayerScore(playerid) < 5) return SendClientMessage(playerid, -1,"Vocк sу poderб obter armamento com nнvel superior a 5."); // Verificaзгo do score do jogador.
    
else if(DOF2_GetInt(diretorio(playerid), "PorteArmas") != 1) return SendClientMessage(playerid, -1,"Vocк precisa de um porte de armas para obter um armamento."); // Verificaзгo se o jogador tem ou nгo um Porte de Armas.
    
GivePlayerWeapon(playerid2420);
    return 
1;

Pronto, agora que jб fizemos isso, poderemos ir para a parte onde irб acontecer a "mбgica", criaremos uma terceira verificaзгo e com isso, uma puniзгo na verificaзгo de DANO a um jogador secundбrio:
PHP код:
public OnPlayerGiveDamage(playeriddamagedidFloatamountweaponid)
{
    if(
GetPlayerScore(playerid) < 5) && DOF2_GetInt(diretorio(playerid), "PorteArmas") != 1) && weaponid != 0)
    {
        
// Puniзгo que serб aplicada ao jogador.
        
ResetPlayerWeapons(playerid);
    }
    return 
1;

O que fizemos ali й simples, verificamos as duas verificaзхes que utilizamos. Se o jogador tiver o score abaixo de 5 e nгo houver um porte de armas, ele serб punido caso ele cause dano ao jogador secundбrio com armamento diferente do ID 0 (soco).

E pronto, nosso pequeno Anti Hacker Weapons estб pronto. Aceito crнticas construtivas para melhoria, podem criticar se for realmente necessбrio .

Infelizmente a quantidade de hackers nos servidores vem aumentando, e precisamos "combater" esses jogadores que nгo querem nada alйm do mal para nуs.
Feliz ano novo para todos.
Reply
#2

faz um hook na funcao original de dar a arma, e faz para detetar se a arma foi dada pela funcao original.

caso tenha sido, kick ou ban, caso tenha sido a sua funcao, ta de boa rs.


acho que esta logica podera funcionar.
Reply
#3

a minha logica e a seguinte.
new bool:armas[MAX_PLAYERS][47];
o player ao comprar seta a variavel para verdadeiro, acaba a muniзao da arma fica falso.
simples eficaz e voces fazem uma tempestade por isso.
Reply
#4

hum..., Uma lуgica simples й conferir os valores armazenados em variбveis e conferir os dados do Jogador se sгo realmente iguais aos dados que foram atribuнdos por meio das variбveis.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)