Просмотр полной версии : [Вопрос] Проверка
Помогите с проверкой: если игрок летит с горы, то чтобы античит на него не орал
Float:GetPlayerSpeedXY(playerid)
{
new
Float:float_data[3]
;
if(IsPlayerInAnyVehicle(playerid))
{
GetVehicleVelocity(GetPlayerVehicleID(playerid), float_data[0], float_data[1], float_data[2]);
}
else
{
GetPlayerVelocity(playerid, float_data[0], float_data[1], float_data[2]);
}
return floatmul(floatsqroot(floatadd(floatpower(float_data[0],2.0),floatpower(float_data[1],2.0))),200.0);
}
new getanim[32], getanim2[32];
GetAnimationName(GetPlayerAnimationIndex(playerid), getanim, sizeof(getanim), getanim2, sizeof(getanim2));
if(GetPlayerSpeedXY(playerid) > 40 && strcmp(getanim, "SWIM", true) == 0 && strcmp(getanim2, "SWIM_crawl", true) == 0)
Как-то так. Дальше выполняй свои действия кикай бань, что угодно.
Могу ещё предложить такой вариант, почти такой-же как выше был предложен:
if(GetPlayerSpeedXY(playerid) > 40)
{
switch(GetPlayerAnimationIndex(playerid))
{
case 1130, 1134: { }
default:
{
// обнаружение чита
}
}
}
Можно ещё банально проверять в каком направлении идёт ускорение по оси Z. Если отрицательное - игрок падает и значит можно не подозревать его в читерстве
Можно ещё банально проверять в каком направлении идёт ускорение по оси Z. Если отрицательное - игрок падает и значит можно не подозревать его в читерстве
Вот, именно это мне и нужно, подскажите как сделать, а то я что то не так делаю(
Эмм, ну
Float:GetPlayerSpeedXY(playerid)
{
new
Float:float_data[3]
;
if(IsPlayerInAnyVehicle(playerid))
{
GetVehicleVelocity(GetPlayerVehicleID(playerid), float_data[0], float_data[1], float_data[2]);
}
else
{
GetPlayerVelocity(playerid, float_data[0], float_data[1], float_data[2]);
}
if(float_data[2] < 0) return 1.0;
return floatmul(floatsqroot(floatadd(floatpower(float_data[0],2.0),floatpower(float_data[1],2.0))),200.0);
}
как-то так
Эмм, ну
Float:GetPlayerSpeedXY(playerid)
{
new
Float:float_data[3]
;
if(IsPlayerInAnyVehicle(playerid))
{
GetVehicleVelocity(GetPlayerVehicleID(playerid), float_data[0], float_data[1], float_data[2]);
}
else
{
GetPlayerVelocity(playerid, float_data[0], float_data[1], float_data[2]);
}
if(float_data[2] < 0) return 1;
return floatmul(floatsqroot(floatadd(floatpower(float_data[0],2.0),floatpower(float_data[1],2.0))),200.0);
}
как-то так
До этого делал типо такого, но опять эта ошибка: warning 213: tag mismatch
строка:
if(float_data[2] < 0) return 1;
if(float_data[2] < 0) return 1.0;
Возвращаем же вещественное число.
↓↓↓
Спасибо, теперь всё норм)
Powered by vBulletin® Version 4.2.0 Copyright © 2024 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot