Вопросы

Maxwell
Новичок

Ребята привет, как создать движущиеся ворота на H? У кого-то код есть? Если да, то можете скинуть пожалуйста?

Поделиться сообщением


Ссылка на сообщение

2 ответа на этот вопрос

  • 0

Поищи в поисковых системах или сделай по аналогии:


#include <a_samp>

// Координаты и повороты ворот (замените на свои!)
#define GATE_MODEL 980 // Модель обычных ворот (можно изменить)

new Float:GateClosedPos[3] = {2458.34, -1678.9213.45};
new Float:GateClosedRot[3] = {0.00.0270.0};

new Float:GateOpenPos[3]  = {2458.34, -1665.0013.45}; // Сдвинуты в сторону
new Float:GateOpenRot[3]  = {0.00.0270.0};

new gateObj;
new gateState = 0// 0 = закрыто, 1 = открыто
new bool:playerCooldown[MAX_PLAYERS] = {false, ...};

public OnGameModeInit()
{
    // Создаём ворота
    gateObj = CreateObject(GATE_MODEL, GateClosedPos[0], GateClosedPos[1], GateClosedPos[2],
                           GateClosedRot[0], GateClosedRot[1], GateClosedRot[2]);
    return 1;
}

public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
    // Проверяем нажатие H (KEY_HANDBRAKE)
    if ((newkeys & KEY_HANDBRAKE) && !(oldkeys & KEY_HANDBRAKE))
    {
        // Только пешком + проверка кулдауна
        if (GetPlayerState(playerid) == PLAYER_STATE_ONFOOT && !playerCooldown[playerid])
        {
            new Float:px, Float:py, Float:pz;
            GetPlayerPos(playerid, px, py, pz);
            
            // Проверяем дистанцию до центра ворот (5.0 метров)
            if (IsPlayerInRangeOfPoint(playerid, 5.0, GateClosedPos[0], GateClosedPos[1], GateClosedPos[2]))
            {
                playerCooldown[playerid] = true;
                SetTimerEx("ResetGateCooldown"1500false"d", playerid);
                
                if (gateState == 0// Закрыто → Открываем
                {
                    MoveObject(gateObj, GateOpenPos[0], GateOpenPos[1], GateOpenPos[2], 2.5,
                               GateOpenRot[0], GateOpenRot[1], GateOpenRot[2]);
                    gateState = 1;
                }
                else // Открыто → Закрываем
                {
                    MoveObject(gateObj, GateClosedPos[0], GateClosedPos[1], GateClosedPos[2], 2.5,
                               GateClosedRot[0], GateClosedRot[1], GateClosedRot[2]);
                    gateState = 0;
                }
            }
        }
    }
    return 1;
}

forward ResetGateCooldown(playerid);
public ResetGateCooldown(playerid)
{
    playerCooldown[playerid] = false;
    return 1;
}

 

Поделиться сообщением


Ссылка на сообщение

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!


Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.


Войти
  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

  • Похожий контент

    • Maxwell
      От Maxwell
      Ребята, мб есть у кого код на /rec, реконект то есть.