Сообщение от
Rick
SendAdminMessage, мне кажется это более легкий способ?
Это вам всего лишь предоставили функцию, которая отправляет сообщение админам сервера, которое вы укажете во втором параметре.
Также она будет работать только у тех, кто использует инклюд foreach. И на сколько я помню вам нужно построить само сообщение, а не только функцию. Вот примерно так это всё должно выглядеть:
PHP код:
new
Float: veh_health_now,
Float: veh_speed = GetPlayerSpeed(playerid);
GetVehicleHealth(player_vehicle[playerid], veh_health_now);
if(veh_speed - speed_player[playerid] > 20 && veh_health_now - vehicle_health[playerid] == 0)
{
new
str[67],
i = GetMaxPlayers();
GetPlayerName(playerid, str, sizeof(str));
format(str, 67, "Игрок %s был кикнут по подозрению на Speed Hack.", str);
do
{
--i;
if(IsPlayerConnected(i) && IsPlayerAdmin(i))
SendClientMessage(i, -1, str);
}
while(i);
Kick(playerid);
return 1;
}
speed_player[playerid] = veh_speed;
- - - Добавлено - - -
Также могу посоветовать функцию, чтобы каждый раз не писать повторяющийся код:
PHP код:
stock SendToAdminsCheaterText(const playerid, const is_kick = 1, const text[])
{
new
str[80],
i = GetMaxPlayers();
GetPlayerName(playerid, str, sizeof(str));
format(str, 80, "Игрок %s был %s по подозрению на %s.", str, is_kick ? ("кикнут") : ("забанен"), text);
do
{
--i;
if(IsPlayerConnected(i) && IsPlayerAdmin(i))
SendClientMessage(i, -1, str);
}
while(i);
}
Использование такое:
PHP код:
SendToAdminsCheaterText(playerid, 1, "Speed Hack");
Выведет в чат ( допустим ):
Код:
Игрок Londlem был кикнут по подозрению на Speed Hack.
Второй аргумент ( который в примере принимает значение 1 ) даёт понять, что игрок кикнут, если поставить 0, будет вместо слова 'кикнут' заменено на 'забанен'.
Для вашего примера можно сделать так:
PHP код:
if(veh_speed - speed_player[playerid] > 20 && veh_health_now - vehicle_health[playerid] == 0)
{
SendToAdminsCheaterText(playerid, 1, "Speed Hack");
Kick(playerid);
return 1;
}