Добро пожаловать!

Зарегистрировавшись у нас, вы сможете обсуждать, делиться и отправлять личные сообщения другим участникам нашего сообщества.

Зарегистрироваться!
  • Если Вы желаете помогать развитию проекта, готовы заполнять раздел(-ы) и подсказывать другим пользователям на портале, есть возможность попасть в команду редакторов. Для этого следует обратиться в техническую поддержку
Пользователь
Регистрация
19 Сен 2023
Сообщения
12
У меня есть система экс. машин и им присвоена система ускорения, но я не понимаю что за что там отвечает, если кто-то знает помогите!

Вот код самой системы:

Pawn:
new vehicleid = GetPlayerVehicleID(playerid);
        new Float:_coord[3];
        GetVehicleVelocity(vehicleid,_coord[0],_coord[1],_coord[2]);

        new Float:v_speed = floatsqroot(floatpower(floatabs(_coord[0]), 2.0)+ floatpower(floatabs(_coord[1]), 2.0)+ floatpower(floatabs(_coord[2]), 2.0))* 100.3 ;
        GetVehicleRotation(vehicleid, _coord[0],_coord[1],_coord[2]);

        if(IsValidDynamicObject ( rolls [ vehicleid ] [ 0 ] ) && player_accelerating[playerid] || IsValidDynamicObject ( bmwi8 [ vehicleid ] [ 0 ] ) && player_accelerating[playerid] || IsValidDynamicObject ( bmwM5 [ vehicleid ] [ 0 ] ) && player_accelerating[playerid] || IsValidDynamicObject ( bmwVIS [ vehicleid ] [ 0 ] ) && player_accelerating[playerid] || IsValidDynamicObject ( kovsh [ vehicleid ] [ 0 ] ) && player_accelerating[playerid] || IsValidDynamicObject ( amg [ vehicleid ] [ 0 ] ) && player_accelerating[playerid])
        {
            if(v_speed > 15 && ! IsVehicleDrivingBackwards(vehicleid) &&(_coord[2] - VEHICLE[vehicleid - 1][v_old_zangle] < 1 && _coord[2] - VEHICLE[vehicleid - 1][v_old_zangle] > - 1))
            {
                if(GetVehicleSpeed(vehicleid) < max_veh_speed[GetVehicleModel(vehicleid)- 400] && 30 > _coord[0] > - 30 && 15 > _coord[1] > - 15)
                {
                    if(v_speed - VEHICLE[vehicleid - 1][v_old_speed] < 3 && v_speed - VEHICLE[vehicleid - 1][v_old_speed] > 0.6)
                    {
                        SetVehicleSpeed(vehicleid, v_speed + 0.349999 * 5);
                        VEHICLE[vehicleid - 1][v_old_zangle] = _coord[2];
                    }
                }
                else
                {
                    if(v_speed - VEHICLE[vehicleid - 1][v_old_speed] < 3 && v_speed - VEHICLE[vehicleid - 1][v_old_speed] >= -1.5 && GetVehicleSpeed(vehicleid) < max_veh_speed[GetVehicleModel(vehicleid)- 400] - 50 + 0.349999 * 180)
                    {
                        if(30 > _coord[0] > - 30 && 15 > _coord[1] > - 15)
                        {
                            SetVehicleSpeed(vehicleid, v_speed + 0.349999 * 2);
                            VEHICLE[vehicleid - 1][v_old_zangle] = _coord[2];
                        }
                    }
                }
            }
        }
        VEHICLE[veh-1][v_X] = X;
        VEHICLE[veh-1][v_Y] = Y;
        VEHICLE[veh-1][v_Z] = Z;
        VEHICLE[vehicleid - 1][v_old_zangle] = _coord[2];
        VEHICLE[vehicleid - 1][v_old_speed] = v_speed;

        if ( ! IsPlayerMobile ( playerid ) )
        {
        Update_Speedometr ( playerid );
        }
 
Пользователь
Регистрация
14 Апр 2023
Сообщения
50
У меня есть система экс. машин и им присвоена система ускорения, но я не понимаю что за что там отвечает, если кто-то знает помогите!

Вот код самой системы:

Pawn:
new vehicleid = GetPlayerVehicleID(playerid);
        new Float:_coord[3];
        GetVehicleVelocity(vehicleid,_coord[0],_coord[1],_coord[2]);

        new Float:v_speed = floatsqroot(floatpower(floatabs(_coord[0]), 2.0)+ floatpower(floatabs(_coord[1]), 2.0)+ floatpower(floatabs(_coord[2]), 2.0))* 100.3 ;
        GetVehicleRotation(vehicleid, _coord[0],_coord[1],_coord[2]);

        if(IsValidDynamicObject ( rolls [ vehicleid ] [ 0 ] ) && player_accelerating[playerid] || IsValidDynamicObject ( bmwi8 [ vehicleid ] [ 0 ] ) && player_accelerating[playerid] || IsValidDynamicObject ( bmwM5 [ vehicleid ] [ 0 ] ) && player_accelerating[playerid] || IsValidDynamicObject ( bmwVIS [ vehicleid ] [ 0 ] ) && player_accelerating[playerid] || IsValidDynamicObject ( kovsh [ vehicleid ] [ 0 ] ) && player_accelerating[playerid] || IsValidDynamicObject ( amg [ vehicleid ] [ 0 ] ) && player_accelerating[playerid])
        {
            if(v_speed > 15 && ! IsVehicleDrivingBackwards(vehicleid) &&(_coord[2] - VEHICLE[vehicleid - 1][v_old_zangle] < 1 && _coord[2] - VEHICLE[vehicleid - 1][v_old_zangle] > - 1))
            {
                if(GetVehicleSpeed(vehicleid) < max_veh_speed[GetVehicleModel(vehicleid)- 400] && 30 > _coord[0] > - 30 && 15 > _coord[1] > - 15)
                {
                    if(v_speed - VEHICLE[vehicleid - 1][v_old_speed] < 3 && v_speed - VEHICLE[vehicleid - 1][v_old_speed] > 0.6)
                    {
                        SetVehicleSpeed(vehicleid, v_speed + 0.349999 * 5);
                        VEHICLE[vehicleid - 1][v_old_zangle] = _coord[2];
                    }
                }
                else
                {
                    if(v_speed - VEHICLE[vehicleid - 1][v_old_speed] < 3 && v_speed - VEHICLE[vehicleid - 1][v_old_speed] >= -1.5 && GetVehicleSpeed(vehicleid) < max_veh_speed[GetVehicleModel(vehicleid)- 400] - 50 + 0.349999 * 180)
                    {
                        if(30 > _coord[0] > - 30 && 15 > _coord[1] > - 15)
                        {
                            SetVehicleSpeed(vehicleid, v_speed + 0.349999 * 2);
                            VEHICLE[vehicleid - 1][v_old_zangle] = _coord[2];
                        }
                    }
                }
            }
        }
        VEHICLE[veh-1][v_X] = X;
        VEHICLE[veh-1][v_Y] = Y;
        VEHICLE[veh-1][v_Z] = Z;
        VEHICLE[vehicleid - 1][v_old_zangle] = _coord[2];
        VEHICLE[vehicleid - 1][v_old_speed] = v_speed;

        if ( ! IsPlayerMobile ( playerid ) )
        {
        Update_Speedometr ( playerid );
        }
Сейчас расскажу,этот код отвечает за управление скоростью транспортного средства в игре. В нем определяется текущая скорость транспортного средства, проверяются условия для увеличения скорости и применяются соответствующие изменения. Также записываются координаты и углы поворота транспортного средства для последующего использования. Кроме того, происходит обновление информации на спидометре у игрока.

Разберем данный код:
`new vehicleid = GetPlayerVehicleID(playerid);`: Получаем идентификатор транспортного средства, в котором сейчас находится игрок.

`new Float:_coord[3]; GetVehicleVelocity(vehicleid,_coord[0],_coord[1],_coord[2]);`: Получаем текущую скорость транспортного средства по трём координатам.

`new Float:v_speed = floatsqroot(floatpower(floatabs(_coord[0]), 2.0)+ floatpower(floatabs(_coord[1]), 2.0)+ floatpower(floatabs(_coord[2]), 2.0))* 100.3;`: Вычисляем общую скорость транспортного средства по формуле sqrt(x^2 + y^2 + z^2) * 100.3.

Далее идет проверка наличия различных динамических объектов (rolls, bmwi8, bmwM5, bmwVIS, kovsh, amg) вокруг транспортного средства, а также проверка активации ускорения игрока.

Если все условия (в том числе текущая скорость, направление движения, отклонение угла) выполняются, то происходит увеличение скорости транспортного средства в зависимости от заданных параметров.

Данные о координатах, угле поворота, старой скорости записываются для дальнейшего использования.

Последний блок кода выполняет проверку на подвижность игрока и, если игрок стоит на месте, обновляет информацию на спидометре.
 
Пользователь
Регистрация
19 Сен 2023
Сообщения
12
Сейчас расскажу,этот код отвечает за управление скоростью транспортного средства в игре. В нем определяется текущая скорость транспортного средства, проверяются условия для увеличения скорости и применяются соответствующие изменения. Также записываются координаты и углы поворота транспортного средства для последующего использования. Кроме того, происходит обновление информации на спидометре у игрока.

Разберем данный код:
`new vehicleid = GetPlayerVehicleID(playerid);`: Получаем идентификатор транспортного средства, в котором сейчас находится игрок.

`new Float:_coord[3]; GetVehicleVelocity(vehicleid,_coord[0],_coord[1],_coord[2]);`: Получаем текущую скорость транспортного средства по трём координатам.

`new Float:v_speed = floatsqroot(floatpower(floatabs(_coord[0]), 2.0)+ floatpower(floatabs(_coord[1]), 2.0)+ floatpower(floatabs(_coord[2]), 2.0))* 100.3;`: Вычисляем общую скорость транспортного средства по формуле sqrt(x^2 + y^2 + z^2) * 100.3.

Далее идет проверка наличия различных динамических объектов (rolls, bmwi8, bmwM5, bmwVIS, kovsh, amg) вокруг транспортного средства, а также проверка активации ускорения игрока.

Если все условия (в том числе текущая скорость, направление движения, отклонение угла) выполняются, то происходит увеличение скорости транспортного средства в зависимости от заданных параметров.

Данные о координатах, угле поворота, старой скорости записываются для дальнейшего использования.

Последний блок кода выполняет проверку на подвижность игрока и, если игрок стоит на месте, обновляет информацию на спидометре.
А если вам не сложно можете настроить систему так, чтобы машина ехaла до 140?
 
Сверху