AntiGodMod
#1

Короче, сделал я этот античит и заметил, что опять разработчик сампа нам преподнёс ф-ию, про которую из-за своей баганутости можно забыть.
Речь пойдёт про новые ф-ии OnPlayerGiveDamag и OnPlayerTakeDamage.

Выкладываю весь античит, т.к. есть ложные срабатывания. Может общими мозгами получится доработать.
pawn Код:
public OnPlayerGiveDamage(playerid, damagedid, Float:amount, weaponid)
{   //вызывается когда игрок playerid наносит урон игроку damagedid

    if(playerid == INVALID_PLAYER_ID) return 1;//исключения на всякий случай
    if(damagedid == INVALID_PLAYER_ID) return 1;//исключения на всякий случай
    if(!ANTIGODMOD) return 1;//отбрасываем проверку кода, если Античит выключен
    if(GetPVarInt(damagedid, "IsPlayerControllable") != 0 ) return 1;//отбрасываем случаи  если игрок был замарожен
    if(amount < 2.0) return 1;//отбрасываем случаи ударов кулаком
    if(AFK_IdleTime[damagedid] >= 3) return 1;//отбрасываем случаи  если игрок был АФК

    //ИНФОРМИРОВАНИЕ
    new string[MAX_STRING];
    new Float:health; GetPlayerHealth(damagedid, health);
    format(string, sizeof(string), "%s give %.1f damage to %s, weapon: %s (LastHealth:%.1f)",
        PlayerName(playerid), amount, PlayerName(damagedid), WeaponName(weaponid),
        health);
    SendClientMessageToAll(COLOR_GREEN, string);

    WaitDetected[damagedid] = 2;//сделали задержку на 2 срабатывания проверки античита
    DetectedGiveDamage[damagedid] = floatround(amount);
    return 1;
}

public OnPlayerTakeDamage(playerid, issuerid, Float:amount, weaponid) //при год моде и АФК не вызывается
{  //вызывается когда игрок playerid получает урон от игрока issuerid
//всегда вызывается после OnPlayerGiveDamage
    if(playerid == INVALID_PLAYER_ID) return 1;
    if(issuerid == INVALID_PLAYER_ID) return 1;
    if(!ANTIGODMOD) return 1;
    if(amount < 2.0) return 1;
    //if(GetPVarInt(playerid, "IsPlayerControllable") != 0 ) return 1;//при замарозке не вызывается
    //if(AFK_IdleTime[playerid] >= 3) return 1;//при АФК не вызывается
   
    DetectedGiveDamage[playerid] = 0;//обнулили, проверка закончена. Игрок чист.

    //ИНФОРМИРОВАНИЕ
    new string[MAX_STRING];
    new Float:health; GetPlayerHealth(playerid, health);
    format(string, sizeof(string), "%s take %.1f damage from %s, weapon: %s (LastHealth:%.1f)",
        PlayerName(playerid), amount, PlayerName(issuerid), WeaponName(weaponid),
        health);
    SendClientMessageToAll(COLOR_RED, string);
    return 1;
}

//САМ АНТИЧИТ
public OnPlayerUpdate(playerid)
{
    WaitDetected[playerid]--;
    if(DetectedGiveDamage[playerid] != 0 && WaitDetected[playerid] <= 0)
    {
        new string[MAX_STRING];
        format(string, sizeof(string), "AdmWarning: %s[%d]. Подозрение на бессмертие (GiveDamage:%d)",
            PlayerName(playerid), playerid, DetectedGiveDamage[playerid]);
        SendAdminMessage(ADMINS_MESSAGE_COLOR, string, 3);
        DetectedGiveDamage[playerid] = 0;//останавливаем флуд в чат
        WaitDetected[playerid] = 0;
    }
    return 1;
}
Какие будут предложения?
Reply


Messages In This Thread
AntiGodMod - by DANGER1979 - 08.12.2011, 06:06
Re: AntiGodMod - by Stepashka - 08.12.2011, 06:14
Re: AntiGodMod - by DANGER1979 - 08.12.2011, 06:16
Re: AntiGodMod - by Stepashka - 08.12.2011, 06:29
Re: AntiGodMod - by DANGER1979 - 08.12.2011, 06:44
Re: AntiGodMod - by White_116 - 08.12.2011, 07:29
Re: AntiGodMod - by Stepashka - 08.12.2011, 08:09
Re: AntiGodMod - by DANGER1979 - 08.12.2011, 08:23
Re: AntiGodMod - by Jon_De - 08.12.2011, 09:17
Re: AntiGodMod - by DANGER1979 - 08.12.2011, 09:27
Re: AntiGodMod - by Mutha_X - 08.12.2011, 09:38
Re: AntiGodMod - by Stepashka - 08.12.2011, 09:40
Re: AntiGodMod - by Geryy - 08.12.2011, 09:47
Re: AntiGodMod - by DANGER1979 - 08.12.2011, 10:17
Re: AntiGodMod - by DANGER1979 - 27.12.2011, 10:26
Re: AntiGodMod - by CKA3KuH - 27.12.2011, 11:08
Re: AntiGodMod - by DANGER1979 - 27.12.2011, 11:52
Re: AntiGodMod - by anonim15 - 27.12.2011, 14:33
Re: AntiGodMod - by CKA3KuH - 27.12.2011, 16:38
Re: AntiGodMod - by Jon_De - 27.12.2011, 19:33
Re: AntiGodMod - by Geryy - 27.12.2011, 23:09
Re: AntiGodMod - by DANGER1979 - 28.12.2011, 04:45
Re: AntiGodMod - by anonim15 - 28.12.2011, 06:16
Re: AntiGodMod - by anonim15 - 28.12.2011, 06:19
Re: AntiGodMod - by Riko - 30.12.2011, 14:12
Re: AntiGodMod - by anonim15 - 30.12.2011, 14:38

Forum Jump:


Users browsing this thread: 6 Guest(s)