23:32
ОбновитьСмайлыУправление мини-чатом
МИНИ-ЧАТ
Главная страница!

 



 
          





Рекомендуем:





Последние Файлы GTA 4 Последние Файлы GTA-MP Реклама
Скрипт GTA 4 элементы Watch... 07.09.2014
Ferrari 360 Spider [EPM con... 13.12.2013
Porsche Cayenne Turbo 2012 ... 13.12.2013
Shelby Terlingua Mustang v1... 13.12.2013
Hamann Lamborghini Gallardo... 27.10.2013
[GM] The Big PEN1:LS v2.00 ... 04.12.2017
Dgun (AvnanceRP,SampRP,Dimo... 19.03.2016
SAMP скрипт SX Events (MySQ... 03.03.2016
Карта ASL мэрия для SAMP се... 03.03.2016
AIM для SA-MP 0.3.7 22.02.2016
  • Страница 1 из 1
  • 1
Модератор форума: Dima-kun  
Урок по созданию анти-чита на броню
Fus1Дата: Пятница, 07.05.2010, 23:19 | Сообщение # 1
Группа: Продвинутые
Сообщений: 2704
Награды: 121
Город: Melbourne Australia
Репутация: 3103
Замечания: 0%
Статус:
В начало мода к forward's добавляем

forward ServerGivePlayerArmour(playerid, Float:armour);
forward anticheats();

В начало мода к new's добавляем

new ArmourTime[MAX_PLAYERS];
new Float:PlayerArmour[MAX_PLAYERS];


в public OnPlayerConnect

PlayerArmour[playerid] = 0;
ArmourTime[playerid] = 0;


в public SetPlayerUnjail

if(ArmourTime[i] > 0)
{
ArmourTime[i] -=1;
}

в public OnPlayerUpdate

new i = playerid;
if(ArmourTime[i] == 0)
{
new Float:b;
GetPlayerArmour(i,b);
if(b != PlayerArmour[i])
{
if(b < PlayerArmour[i])
{
PlayerArmour[i] = b;
}
else
{
ServerGivePlayerArmour(i,0);
}
}
}


Создаём свой паблик

public ServerGivePlayerArmour(playerid,Float:armour)
{
ArmourTime[playerid] = 10;
PlayerArmour[playerid] = armour;
SetPlayerArmour(playerid,armour);
return 1;
}

И создаём ещё 1 паблик

public anticheats()
{
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i) && !IsPlayerNPC(i))
{
if(ArmourTime[i] == 0)
{
new Float:b;
GetPlayerArmour(i,b);
if(b != PlayerArmour[i])
{
if(b < PlayerArmour[i])
{
PlayerArmour[i] = b;
}
else
{
ServerGivePlayerArmour(i,0);
}
}
}
}
}
return 1;
}

xSLiMxДата: Суббота, 08.05.2010, 07:24 | Сообщение # 2
Мастер джэдай
Группа: I'm V.I.P.
Сообщений: 2163
Награды: 34
Город: Ростов - на - Дону
Репутация: 1429
Замечания: 80%
Статус:
Fus1, а разве таймера не должно быть на
Quote (Fus1)
public anticheats()
? в любом случии спасибо +)

[RGS]JAGUARДата: Суббота, 08.05.2010, 08:23 | Сообщение # 3
Советчик
Группа: Продвинутые
Сообщений: 1154
Награды: 25
Город: FloatX,FloatY,FloatZ
Репутация: 291
Замечания: 40%
Статус:
Fus1, попытался сделал всё норм читерю... убралось опять читерю и всё равно даёт броню 2-3 минуты пройдёт и отнимает!


[/url]
Новая ICQ: 593922
[krik]Дата: Суббота, 08.05.2010, 08:35 | Сообщение # 4
Постоялец
Группа: I'm V.I.P.
Сообщений: 434
Награды: 20
Город: Самара
Репутация: 438
Замечания: 0%
Статус:
[off] [RGS]JAGUAR, таймер нужен[/off]


Я не говорю, что я изменю мир, но я обещаю, что найду такие слова, которые действительно изменят мир, так что выше нос!
©2pac
Fus1Дата: Суббота, 08.05.2010, 09:43 | Сообщение # 5
Группа: Продвинутые
Сообщений: 2704
Награды: 121
Город: Melbourne Australia
Репутация: 3103
Замечания: 0%
Статус:
Вот вам таймер , но я его убрал, т.к у меня когда в 1 паблике стояло много античитов, то из-за таймера можно было читирить пушку и деньги, просто сразу выкидывать на землю или что нибудь делать.

в OnGameModeInit

Anti = SetTimer("anticheats", 1000, 1);

в начало мода

new Anti;

в GameModeExitFunc

KillTimer(Anti);


Сообщение отредактировал Fus1 - Суббота, 08.05.2010, 09:43
MorozzzkoДата: Суббота, 08.05.2010, 11:19 | Сообщение # 6
Мастер джэдай
Группа: Продвинутые
Сообщений: 2179
Награды: 40
Город: Moscow
Репутация: 590
Замечания: 0%
Статус:
епт код убог. куча лишних операций

new Float:PArmor[MAX_PLAYERS];

stock SetPlayerArmorEx(playerid, Float:armor)
{
if(!IsPlayerConnected(playerid)) return;
PArmor[playerid] = armor;
SetPlayerArmor(playerid, armor);
return;
}

public OnPlayerUpdate(playerid)
{
...
new Float:armor;
GetPlayerArmor(playerid, armor);
if(armor > PArmor[playerid]) SetPlayerArmorEx(playerid, 0.0);
else PArmor[playerid] = armor;
...
}


Главный программист в Malefic Entertainment.
Aleksey_KovshovДата: Четверг, 20.05.2010, 13:31 | Сообщение # 7
Новенький
Группа: Пользователи
Сообщений: 3
Награды: 1
Город: Топки
Репутация: 0
Замечания: 0%
Статус:
Ребят не подскажите,можно как-нить сделать античит для ремонта авто?
ZiGGiДата: Четверг, 20.05.2010, 15:29 | Сообщение # 8
Мастер джэдай
Группа: Продвинутые
Сообщений: 2652
Награды: 34
Город: St. Petersburg
Репутация: 2102
Замечания: 20%
Статус:
Quote (Morozzzko)
епт код убог. куча лишних операций

согласен
Quote (Morozzzko)
new Float:armor;
GetPlayerArmor(playerid, armor);
if(armor > PArmor[playerid]) SetPlayerArmorEx(playerid, 0.0);
else PArmor[playerid] = armor;

if(armor > PArmor[playerid]) SetPlayerArmorEx(playerid,PArmor[playerid]);
else PArmor[playerid] = armor
;)



Бложе
[indent]Мой блог
Уроки по Pawn
[/indent]

Open-GTO
[indent]Блог разработчиков
GitHub: https://github.com/Open-GTO/Open-GTO
Сборки мода с сервером тут
[/indent]
tony113Дата: Суббота, 28.08.2010, 20:32 | Сообщение # 9
Новенький
Группа: Пользователи
Сообщений: 10
Награды: 1
Город: Tallinn
Репутация: -20
Замечания: 0%
Статус:
спс)) как смогу +поставить обязательно поставлю
Stasyn99Дата: Четверг, 23.09.2010, 13:13 | Сообщение # 10
Новенький
Группа: Пользователи
Сообщений: 19
Награды: 0
Город: Саранск
Репутация: -11
Замечания: 0%
Статус:
кульный урок cool cool
-SNap-Дата: Четверг, 30.09.2010, 15:46 | Сообщение # 11
Новенький
Группа: Пользователи
Сообщений: 28
Награды: 0
Город: Hrodna
Репутация: 0
Замечания: 0%
Статус:
Quote (Morozzzko)
new Float:PArmor[MAX_PLAYERS];

stock SetPlayerArmorEx(playerid, Float:armor)
{
if(!IsPlayerConnected(playerid)) return;
PArmor[playerid] = armor;
SetPlayerArmor(playerid, armor);
return;
}

public OnPlayerUpdate(playerid)
{
...
new Float:armor;
GetPlayerArmor(playerid, armor);
if(armor > PArmor[playerid]) SetPlayerArmorEx(playerid, 0.0);
else PArmor[playerid] = armor;
...
}

Обьясните плз что здесь что

  • Страница 1 из 1
  • 1
Поиск:





 


 


 
Хостинг от uCoz samp.at.ua