revisar codigo antimoneyhack
#1

buena amigos, estube intentando hacer un anti money hack , un amigo lo testeo y dijo que si le quito el dinero hackeado, pero es un codigo que creo que podria bugearse facilmente, y quiero pedirles ayuda para que me ayuden a revisar y asi evitar problemas futuros.

Codigo:
pawn Код:
forward GivePlayerCash(playerid,dinero);
public GivePlayerCash(playerid,dinero)
{
    SetPVarInt(playerid, "MoneyP", GetPlayerMoney(playerid)+dinero);
return GivePlayerMoney(playerid,dinero);
}

public OnPlayerMoneyChange(playerid, amount, totalamount)
{
    if(GetPlayerMoney(playerid) >= GetPVarInt(playerid, "MoneyP"))
    {
        ResetPlayerMoney(playerid);
        GivePlayerCash(playerid,GetPVarInt(playerid, "MoneyP"));
    }
    return 1;
}
quiero aclarar que use el include OnPlayerMoneyChange, para no complicarme tanto.

gracias.
Reply
#2

Sin include serнa asн:
pawn Код:
public OnGameModeInit()
{
    SetTimer("Anticheat",1000,true);
    return 1;
}



forward GivePlayerCash(playerid,dinero);
public GivePlayerCash(playerid,dinero)
{
    SetPVarInt(playerid, "MoneyP", GetPlayerMoney(playerid)+dinero);
    GetPVarInt(playerid,"MoneyP");
return GivePlayerMoney(playerid,dinero);
}

forward Anticheat();
public Anticheat()
{
    for(new Todos = 0; Todos < 500; Todos++)
    {
        if(IsPlayerConnected(playerid))
        {
            if(GetPlayerMoney(Todos) != GetPVarInt(playerid, "MoneyP"))
            {
                ResetPlayerMoney(playerid);
                GivePlayerCash(playerid,GetPVarInt(playerid, "MoneyP"));
            }
        }
    }
    return 1;
}
Reply
#3

la verdad pregunto por que yo nose mucho de pawn, quiero evitar bugs, ї crees que esta bien el codigo ?.
Reply
#4

Quote:
Originally Posted by mcreed
Посмотреть сообщение
la verdad pregunto por que yo nose mucho de pawn, quiero evitar bugs, ї crees que esta bien el codigo ?.
No lo he probado pero en teoria si debe funcionar. Pruebalo y si tienes problemas entonces avisanos para ayudarte.
Reply
#5

El cуdigo estб bien, pero no es necesario utilizar el include OnPlayerMoneyChange, de todos modos utiliza OnPlayerUpdate.

pawn Код:
public OnPlayerUpdate(playerid)
{
    if(!IsPlayerConnected(playerid) || !IsPlayerNPC(playerid)) return 0;
    if (GetPlayerMoney(playerid) != GetPVarInt(playerid, "MoneyP"))
    {
        ResetPlayerMoney(playerid);
        GivePlayerMoney(playerid,GetPVarInt(playerid, "MoneyP"));
    }
    return 1;
}
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)