Страница 1 из 2 12 ПоследняяПоследняя
Показано с 1 по 10 из 11

Тема: ANTI-GM

  1. #1
    Активный пользователь Аватар для willpower
    Регистрация
    17.06.2014
    Возраст
    23
    Сообщений
    278
    Репутация: 25

    Звание: на пути к лучшему

    ANTI-GM

    Напечатал за полчасика проверку на гм. Дерзайте
    Ложные срабатывания бывают если у игрока слишком большой пинг либо пакетлосс или здоровья у него 9999 здоровья (SetPlayerHealth(playerid,9999)
    Код:
    #include <a_samp>
    #define COLOR_ORANGE 0xFF8000FF
    #define COLOR_GREY   0xC0C0C0FF
    #define dcmd(%1,%2,%3) if(!strcmp((%3)[1], #%1, true, (%2)) && ((((%3)[(%2) + 1] == '\0') && (dcmd_%1(playerid, " "))) || (((%3)[(%2) + 1] == ' ') && (dcmd_%1(playerid, (%3)[(%2) + 2]))))) return 1
    new Float:OldHealth[MAX_PLAYERS];
    new bool:Checking[MAX_PLAYERS];
    forward BlowUpPlayer(playerid);
    forward CheckHealth(playerid);
    forward ReturnHealth(playerid);
    forward CheckLimit(playerid);
    public CheckLimit(playerid)return Checking[playerid]=false;
    public OnPlayerConnect(playerid)
    {
    	Checking[playerid]=false;
    	return 1;
    }
    public OnPlayerDisconnect(playerid)
    {
    	Checking[playerid]=false;
    	return 1;
    }
    public OnPlayerCommandText(playerid, cmdtext[])
    {
        dcmd(godmode,7,cmdtext);
    	return 0;
    }
    dcmd_godmode(playerid,params[])
    {
        new tmp[255],giveplayerid,idx;
        tmp = strtok(params, idx);
        giveplayerid=strval(tmp);
    	GetPlayerHealth(giveplayerid,OldHealth[giveplayerid]);
    	if(!IsPlayerAdmin(playerid))
    	    return SendClientMessage(playerid,COLOR_GREY,"Ты не админ ёптанах");
        if(!strlen(tmp))
            return SendClientMessage(playerid,COLOR_GREY,"/Godmode [ид игрока]");
        if(!IsPlayerConnected(giveplayerid))
    		return SendClientMessage(playerid,COLOR_GREY,"Такого игрока не существует");
    	if(Checking[giveplayerid]==true)
        	return SendClientMessage(playerid,COLOR_GREY,"Это процедуру можно проделывать раз в полторы секунды");
        if(GetPlayerAnimationIndex(playerid))
        {
    	    new animlib[32],animname[32];
    	    GetAnimationName(GetPlayerAnimationIndex(giveplayerid),animlib,32,animname,32);
    	    if((!strcmp(animlib, "SWIM", true)) || (!strcmp(animlib, "PED") && !strcmp(animname, "FALL_FALL") || !strcmp(animname, "factalk") && !IsPlayerInAnyVehicle(giveplayerid)))
    		return SendClientMessage(playerid,COLOR_GREY,"Вы не можете проверять этого игрока в данный момент");
        }
    	Checking[giveplayerid]=true;
    	SetPlayerHealth(giveplayerid,100);
    	SetPlayerArmour(giveplayerid,0);
    	SetTimerEx("BlowUpPlayer",150,false,"d",giveplayerid);
        return 1;
    }
    public BlowUpPlayer(playerid)
    {
    	new Float:POS[3];
        GetPlayerPos(playerid, POS[0], POS[1], POS[2]);
        CreateExplosionForPlayer(playerid, POS[0], POS[1], POS[2], 4, 5);
        SetTimerEx("CheckHealth",200,false,"d",playerid);
    }
    public CheckHealth(playerid)
    {
        new PlayerName[MAX_PLAYER_NAME],str[256],Float:Health;
        GetPlayerName(playerid,PlayerName,sizeof(PlayerName));
        GetPlayerHealth(playerid,Health);
        if(Health>=100)
        {
            format(str,sizeof(str),"Игрок %s подозревается в использовании Год Мод'а (Packetloss: %f | Ping: %d)",PlayerName,NetStats_PacketLossPercent(playerid),GetPlayerPing(playerid));
            SendClientMessageToAll(COLOR_ORANGE,str);
            if(NetStats_PacketLossPercent(playerid)>0.6 || GetPlayerPing(playerid)>160)SendClientMessageToAll(COLOR_ORANGE,"Данные неточные т.к. игрок имеет слишком большой пинг либо пакетлосс");
            SendClientMessage(playerid,COLOR_ORANGE,"Ты чё  падла ты чё ты чё");
        }
        else if(Health<100)
        {
            SendClientMessage(playerid,COLOR_ORANGE,"Вы были проверены на Год Мод");
            format(str,sizeof(str),"%s не использует Год Мод",PlayerName);
            for(new i=0;i<MAX_PLAYERS;i++)if(IsPlayerAdmin(i))SendClientMessage(i,COLOR_ORANGE,str);
        }
        SetTimerEx("ReturnHealth",200,false,"d",playerid);
    }
    public ReturnHealth(playerid)
    {
    	new str[256];
    	format(str,sizeof(str),"Вам вернулись ваши жалкие %d хп",floatround(OldHealth[playerid]));
    	SendClientMessage(playerid,COLOR_ORANGE,str);
    	SetPlayerHealth(playerid,OldHealth[playerid]);
    	SetTimerEx("CheckLimit",1500,false,"d",playerid);
    }
    strtok(const string[], &index)
    {
    	new length = strlen(string);
    	while ((index < length) && (string[index] <= ' '))
    	{
    		index++;
    	}
    	new offset = index;
    	new result[20];
    	while ((index < length) && (string[index] > ' ') && ((index - offset) < (sizeof(result) - 1)))
    	{
    		result[index - offset] = string[index];
    		index++;
    	}
    	result[index - offset] = EOS;
    	return result;
    }

  2. #2
    Ясно, понятно. Аватар для Jekazzz
    Регистрация
    08.01.2011
    Сообщений
    1,830
    Репутация: 188

    Звание: - весьма и весьма положительная личность

    Re: ANTI-GM

    При год-моде просто выключается урон.
    Зайди в игру с собейтом, установи себе 1 ХП (/sethp) и включи ГМ.

  3. #3
    Проверенный Аватар для georJik
    Регистрация
    07.07.2013
    Сообщений
    1,370
    Репутация: 427

    Звание: - очень-очень хороший человек

    Re: ANTI-GM

    PHP код:
    public OnPlayerWeaponShot(playeridweaponidhittypehitidFloat:fXFloat:fYFloat:fZ) {
        if(
    hittype == BULLET_HIT_TYPE_PLAYER) {
            new 
    Float:healthGetPlayerHealth(hitid,health);
            switch(
    weaponid) {
                case 
    22..25,33: { SetPlayerHealth(hitidhealth-20); return false; }
                case 
    29: { SetPlayerHealth(hitidhealth-11); return false; }
                case 
    30,31: { SetPlayerHealth(hitidhealth-12); return false; }
                 default: return 
    true;
        }   }
        return 
    true;

    i vse, оружие сам допишешь. Зачем столько чепухи?

  4. 1 пользователь сказал cпасибо georJik за это полезное сообщение:

    Argument (26.06.2014)

  5. #4
    Активный пользователь Аватар для willpower
    Регистрация
    17.06.2014
    Возраст
    23
    Сообщений
    278
    Репутация: 25

    Звание: на пути к лучшему

    Re: ANTI-GM

    Цитата Сообщение от Jekazzz Посмотреть сообщение
    При год-моде просто выключается урон.
    Зайди в игру с собейтом, установи себе 1 ХП (/sethp) и включи ГМ.
    В собейте при годмоде включаются НОП'ы, которые не позволяют серверу отнять здоровье игроку. Смотрим старые хп, Ставим 100 хп, взрываем игрока, сверяем нынешнее хп игрока и сто , если они равны то юзает, если нет то нет , и через 200(или 100)мс игроку возвращается хп, что мы брали в самом начале.

  6. #5
    Активный пользователь Аватар для willpower
    Регистрация
    17.06.2014
    Возраст
    23
    Сообщений
    278
    Репутация: 25

    Звание: на пути к лучшему

    Re: ANTI-GM

    Цитата Сообщение от georJik Посмотреть сообщение
    PHP код:
    public OnPlayerWeaponShot(playeridweaponidhittypehitidFloat:fXFloat:fYFloat:fZ) {
        if(
    hittype == BULLET_HIT_TYPE_PLAYER) {
            new 
    Float:healthGetPlayerHealth(hitid,health);
            switch(
    weaponid) {
                case 
    22..25,33: { SetPlayerHealth(hitidhealth-20); return false; }
                case 
    29: { SetPlayerHealth(hitidhealth-11); return false; }
                case 
    30,31: { SetPlayerHealth(hitidhealth-12); return false; }
                 default: return 
    true;
        }   }
        return 
    true;

    i vse, оружие сам допишешь. Зачем столько чепухи?
    А это уже, антилагшот, и делают его через OnPlayerGiveDamage, или ты думаешь что все игроки сампа играют на скине?

  7. #6
    Перевыпроверенный Аватар для LINKINPARK
    Регистрация
    29.08.2011
    Сообщений
    1,732
    Репутация: 210

    Звание: - весьма и весьма положительная личность

    Re: ANTI-GM

    Цитата Сообщение от georJik Посмотреть сообщение
    PHP код:
    public OnPlayerWeaponShot(playeridweaponidhittypehitidFloat:fXFloat:fYFloat:fZ) {
        if(
    hittype == BULLET_HIT_TYPE_PLAYER) {
            new 
    Float:healthGetPlayerHealth(hitid,health);
            switch(
    weaponid) {
                case 
    22..25,33: { SetPlayerHealth(hitidhealth-20); return false; }
                case 
    29: { SetPlayerHealth(hitidhealth-11); return false; }
                case 
    30,31: { SetPlayerHealth(hitidhealth-12); return false; }
                 default: return 
    true;
        }   }
        return 
    true;

    i vse, оружие сам допишешь. Зачем столько чепухи?
    я тоже думал все настолько просто с OnPlayerWeaponShot, но есть ГМ что даже SetPlayerHealth фантики, убить никак невозможн, только банить/кикать
    админка 100 уровней(1-модер, 2 крутой модер, 3 главный модер, 4 пздц главный модер, 5 создатель модеров, 6 младший админ, 7 так себе админ, 8 админ, 9-злой одмин, 10 старший админ, 11 пздц какой админ, 12 главный админ, 13 пздец какой главный админ, 14 ну просто пиздец какой глаынй, 15 создатель скрипта, 16 создатель второго скрипта) - не помню кто ©
    [Начинающий скриптер]
    Сообщение от free1715
    Ну я вот как сделал слил все входы и выходы в пикапы которы были на сервере,и начало все норм работать,но не знаю все же таки как мне делать так что бы они не конфликтовали.И беда в том что если я удаляю полицейских а оставляю другие то оно меня кидало в бар в первом городе на улицу.

  8. #7
    Проверенный Аватар для georJik
    Регистрация
    07.07.2013
    Сообщений
    1,370
    Репутация: 427

    Звание: - очень-очень хороший человек

    Re: ANTI-GM

    Цитата Сообщение от LINKINPARK Посмотреть сообщение
    я тоже думал все настолько просто с OnPlayerWeaponShot, но есть ГМ что даже SetPlayerHealth фантики, убить никак невозможн, только банить/кикать
    Кинь мне его, посмотрю

  9. #8
    Проверенный Аватар для georJik
    Регистрация
    07.07.2013
    Сообщений
    1,370
    Репутация: 427

    Звание: - очень-очень хороший человек

    Re: ANTI-GM

    Цитата Сообщение от willpower Посмотреть сообщение
    А это уже, антилагшот, и делают его через OnPlayerGiveDamage, или ты думаешь что все игроки сампа играют на скине?
    Да

  10. #9
    Перевыпроверенный Аватар для LINKINPARK
    Регистрация
    29.08.2011
    Сообщений
    1,732
    Репутация: 210

    Звание: - весьма и весьма положительная личность

    Re: ANTI-GM

    Цитата Сообщение от georJik Посмотреть сообщение
    Да
    я его не качал, знакомый заходил на сервер
    админка 100 уровней(1-модер, 2 крутой модер, 3 главный модер, 4 пздц главный модер, 5 создатель модеров, 6 младший админ, 7 так себе админ, 8 админ, 9-злой одмин, 10 старший админ, 11 пздц какой админ, 12 главный админ, 13 пздец какой главный админ, 14 ну просто пиздец какой глаынй, 15 создатель скрипта, 16 создатель второго скрипта) - не помню кто ©
    [Начинающий скриптер]
    Сообщение от free1715
    Ну я вот как сделал слил все входы и выходы в пикапы которы были на сервере,и начало все норм работать,но не знаю все же таки как мне делать так что бы они не конфликтовали.И беда в том что если я удаляю полицейских а оставляю другие то оно меня кидало в бар в первом городе на улицу.

  11. #10
    Ясно, понятно. Аватар для Jekazzz
    Регистрация
    08.01.2011
    Сообщений
    1,830
    Репутация: 188

    Звание: - весьма и весьма положительная личность

    Re: ANTI-GM

    Цитата Сообщение от willpower Посмотреть сообщение
    В собейте при годмоде включаются НОП'ы, которые не позволяют серверу отнять здоровье игроку. Смотрим старые хп, Ставим 100 хп, взрываем игрока, сверяем нынешнее хп игрока и сто , если они равны то юзает, если нет то нет , и через 200(или 100)мс игроку возвращается хп, что мы брали в самом начале.
    Никаких нопов, запрещающих СЕРВЕРУ менять здоровье игрока не включается.

    Я не смотрел код при первом посте, я думал, что в данном АЧ просто проверяется ХП. Если более 100, то кик/бан.

Страница 1 из 2 12 ПоследняяПоследняя

Похожие темы

  1. Anti GOC
    от Seregamil в разделе Античиты (AntiCheats)
    Ответов: 36
    Последнее сообщение: 13.07.2014, 13:09
  2. [scr][all] Anti Doublegun
    от Johurt в разделе Античиты (AntiCheats)
    Ответов: 4
    Последнее сообщение: 16.06.2014, 19:59
  3. [ scr ][ all ][ Anti-db helicopter ]
    от Games в разделе Античиты (AntiCheats)
    Ответов: 10
    Последнее сообщение: 12.12.2011, 17:11
  4. Anti DummyBot
    от OKStyle в разделе Скрипты для любого мода
    Ответов: 11
    Последнее сообщение: 28.10.2011, 19:17

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •