SA-MP Forums

Go Back   SA-MP Forums > Non-English > Languages > Русский/Russian

Reply
 
Thread Tools Display Modes
Old 07/09/2012, 08:18 PM   #1
stabker
High-roller
 
Join Date: Mar 2012
Posts: 1,311
Reputation: 86
Default GetVehicleVelocity

Здравствуйте!

Пишу античит на изменение позиции транспорта читами и встретился с проблемой. Для проверки на нормальное перемещение транспорта я использую GetVehicleVelocity. 0,0,0 мы получаем если транспорт не перемещается. Но если разогнаться на машине и выпрыгнуть, а она будет продолжать двигаться, то при дальнейшем использовании GetVehicleVelocity мы будем получать предыдущие данные, даже если машина уже стоит на месте(без водителя). Пробывал проверять изменение координат и устанавливать SetVehicleVelocity на 0,0,0 но это не помогло.

Скажите, как это можно "профиксить"?

Спасибо
stabker is offline   Reply With Quote
Old 07/09/2012, 08:31 PM   #2
Stepashka
Godfather
 
Stepashka's Avatar
 
Join Date: Jul 2008
Location: near PC
Posts: 5,761
Reputation: 142
Default Re: GetVehicleVelocity

никак.
Но собственно зачем тебе проверять машины без водителя?
А если уж так надо, то для этого есть специальное событие OnUnoccupiedVehicleUpdate.
__________________
Клятва Страуструпа: "Я обязуюсь прилежно комментировать свой код, не использовать goto и следить за состоянием своих потоков и выделяемой памяти. Я обязуюсь не оставлять мусора в системе и избегать однобуквенных переменных. Ресет." © Куч
M&M GM
Status: ON HOLD

Stepashka is offline   Reply With Quote
Old 07/09/2012, 08:42 PM   #3
stabker
High-roller
 
Join Date: Mar 2012
Posts: 1,311
Reputation: 86
Default Re: GetVehicleVelocity

Quote:
Originally Posted by Stepashka View Post
никак.
Но собственно зачем тебе проверять машины без водителя?
А если уж так надо, то для этого есть специальное событие OnUnoccupiedVehicleUpdate.
А какие машины проверять?

Машину которая с водителем телепортнуть нельзя читом. Также читы типо Car Shot'a которые разгоняют машину без изменения Velocity и работают лишь без водителя в ней.

OnUnoccupiedVehicleUpdate - не буду использовать, заменяю таймером+циклом.

pawn Code:
CheckVehicle(i)
{
    new Float:v1[3];
    if(GetVehicleDistanceFromPoint(i,Veh[i][XYZA][0],Veh[i][XYZA][1],Veh[i][XYZA][2]) > 5.0)
    {
        GetVehiclePos(i,v1[0],v1[1],v1[2]);
        for(new p=0;p<GetMaxPlayers();p++) if(IsPlayerConnected(p)) if(GetPlayerVehicleID(p) == i && GetPlayerState(p) != PLAYER_STATE_DRIVER) SetPlayerPos(p,v1[0]+(random(2)/5-random(2)/5),v1[1]+(random(2)/5-random(2)/5),v1[2]+1);
        SetVehiclePos(i,Veh[i][XYZA][0],Veh[i][XYZA][1],Veh[i][XYZA][2]);
        SetVehicleZAngle(i,Veh[i][XYZA][3]);
    }
}

public CheckVehicles()
{
    new Float:v[6];
    for(new i=0;i<MAX_VEHICLES;i++)
    {
        if(Veh[i][Spawned])
        {
            if(Veh[i][Updating] <= 0)
            {
                GetVehicleVelocity(i,v[0],v[1],v[2]);
                GetVehiclePos(i,v[3],v[4],v[5]);
                if(v[0] != 0 && Veh[i][LastVelocity][0] != v[0] || v[1] != 0 && Veh[i][LastVelocity][1] != v[1] || v[2] != 0 && Veh[i][LastVelocity][2] != v[2])
                {
                    Veh[i][LastVelocity][0] = v[0],Veh[i][LastVelocity][1] = v[1],Veh[i][LastVelocity][2] = v[2];
                    Veh[i][XYZA][0] = v[3], Veh[i][XYZA][1] = v[4], Veh[i][XYZA][2] = v[5];
                    GetVehicleZAngle(i,Veh[i][XYZA][3]);
                }
                else CheckVehicle(i);
            }
            else Veh[i][Updating]--;
        }
    }
    return SetTimer("CheckVehicles",1000,false);
}

Вот часть кода, именно та, которая проверяет позицию машины и наличие телепортации/лишнего изменения позиции. Ну тут одна проблема, если разогнаться и выпрыгнуть, то из-за вот этой проверки

pawn Code:
if(v[0] != 0 && Veh[i][LastVelocity][0] != v[0] || v[1] != 0 && Veh[i][LastVelocity][1] != v[1] || v[2] != 0 && Veh[i][LastVelocity][2] != v[2])

античит думает что машина телепортнута и вернет ее на последнюю сохраненную позицию. Ее конечно можно убрать, но после 1го такого запуска машины, античит уже не будет работать на ней, если сразу подхватит читер.
stabker is offline   Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
GetVehicleVelocity help Metallica502 Scripting Help 5 13/10/2011 09:58 PM
GetVehicleVelocity pantelimonfl Help Archive 2 17/12/2010 01:18 PM
GetVehicleVelocity ScottCFR Help Archive 3 15/07/2010 03:17 PM
GetVehicleVelocity... AiVAMAN Help Archive 6 03/09/2009 05:53 PM


All times are GMT. The time now is 01:21 AM.


Powered by vBulletin® Version 3.8.6
Copyright ©2000 - 2020, Jelsoft Enterprises Ltd.