Доступ к готовым решениям

Переход в группу "Пользователь"

300.00 ₽
Одноразовый платёж
Быстрый переход в группу "Пользователи", без надобности написания постов и ожидания.

Покупка дает возможность:
Быть полноправным участником форума
Нормальное копирование кода
Создавать темы
Скачивать файлы
Доступ к архиву Pawno-Info

AntiWallHack

Danik.

Новичок
Античит на WallHack​

Изначально делал это для hz.by, но там это не пригодилось. Т.к. многие сервера сейчас не могу справиться с такой проблемой как чит WallHack, я решил выложить урок.


В public OnGameModeInit():
ShowNameTags(false);

Ко все new:
//AnitWallHack by Danik
new Text3D:AntiWallHackName[MAX_PLAYERS];

В начало public OnPlayerConnect(playerid):
new pname[MAX_PLAYER_NAME+6];
format(pname, sizeof pname, "%s (%d)",PlayerName(playerid), playerid);
AntiWallHackName[playerid] = Create3DTextLabel(pname, 0xFFFFFFFF, 0, 0, 0, 10, 0, 1 );
Attach3DTextLabelToPlayer(AntiWallHackName[playerid], playerid, 0.0, 0.0, 0.1);

В public OnPlayerDisconnect(playerid, reason):
Delete3DTextLabel(AntiWallHackName[playerid]);
Могу сказать одно, для того чтобы скрыть ник, вам просто нужно будет использовать Update3DTextLabelText.
Например:
Для того чтобы скрыть ник вам нужно использовать:

Update3DTextLabelText(AntiWallHackName[playerid], 0xFFFFFFFF, " ");
Чтобы открыть ник для этого нужно узнать ник игрока и просто обновить 3DText:

format(pname, sizeof pname, "%s (%d)",PlayerName(playerid), playerid);
Update3DTextLabelText(AntiWallHackName[playerid], 0xFFFFFFFF, pname);
Т.к. большинство модов используют AFK System, чтобы вам было легче я покажу это на примере.
Я думаю будет нормально, если во время АФК, у него вместо игрового NickName будет надпись сколько он находится в AFK:

format(string,sizeof string, "{AAAAAA}%s[%d] Offline %d seconds", PlayerName(playerid), playerid, AFK_IdleTime[playerid]);
Update3DTextLabelText(AntiWallHackName[playerid], 0xFFFFFFFF, string);
Если у игрока скрыт ник и он выходит с АФК у него ника не должно бать:

if(Если ник не скрыт) {
format(loginmsg, sizeof loginmsg, "%s (%d)",PlayerName(playerid), playerid);
Update3DTextLabelText(AntiWallHackName[playerid], 0xFFFFFFFF, loginmsg);
} else {
Update3DTextLabelText(AntiWallHackName[playerid], 0xFFFFFFFF, " ");
}

Автор данного античита: Danik
Офф. сылка:
При копировании материала ссылка на сайт sa-mp.by обязательна.
 
Сверху Снизу