Question

Maxwell
Новичок

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

Share this post


Link to post

2 answers to this question

  • 0
Maxwell
Новичок

@Web Спасибо, чекну вечером и отпишу результат

Share this post


Link to post
  • 0
Web
¯\_(ツ)_/¯

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


#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;
}

 

Share this post


Link to post
Guest
This topic is now closed to further replies.
Sign in to follow this  
Followers 0
  • Recently Browsing   0 members

    No registered users viewing this page.

  • Similar Content

    • снайк
      By снайк
      Проект Meridian Project (CR:MP) выходит на стадию активного расширения. Мы серьезно обновили основу мода и теперь ищем талантливых разработчиков, готовых вместе с нами дополнять и улучшать игровой мир.
       
      Важное уточнение по условиям: На текущем этапе мы работаем на энтузиазме и долгосрочную перспективу. В данный момент все средства уходят на техническую разработку и поддержание серверной инфраструктуры, поэтому сразу оплачивать работу мы не сможем.
       
      Как только сервер будет успешно запущен и начнет функционировать в штатном режиме, мы перейдем на оплату труда. Со своей стороны гарантируем честность и различные «плюшки» на сервере для членов команды.
       
      Что мы предлагаем:
      Работа над структурированным и оптимизированным модом.
      Четкие ТЗ и адекватное руководство.
      Возможность стать частью ключевого состава на старте.
       
      Наши требования:
      Уверенное владение языком PAWN.
      Знание MySQL и основ оптимизации.
      Желание развивать качественный проект, а не просто «накидать код».
      Ответственность: взялись за задачу — довели до конца.
       
      Ваши задачи:
      Разработка и внедрение новых систем (работы, функционал фракций и др.).
      Исправление багов и доработка текущего функционала.
       
      Убедительная просьба: если вас не устраивают условия работы на перспективу или вам не интересен сам процесс создания качественного продукта — пожалуйста, не тратьте наше и своё время. Мы ищем единомышленников, которые готовы расти вместе с проектом, а не тех, кто ищет легкой и быстрой наживы здесь и сейчас.
       
      Связаться с нами: 
      Telegram: https://t.me/escape_log
      ВКонтакте: https://vk.com/oskar_novicc
    • tamikmod
      By tamikmod
      проблема на фото указана, прошу помочь