Русское сообщество по скриптингу

Ограничение по времени

Все вопросы по скриптингу для AMXX, помощь в редактировании плагинов.

Модераторы: Subb98, liFe iS GoOD

Правила форума
1. Запрещено материться и оскорблять других участников форума.
2. Запрещен флуд, оффтоп, дабл постинг во всех разделах форума, кроме раздела "Болтовня".
3. Запрещено взламывать сайт/форум или наносить любой вред проекту.
4. Запрещено рекламировать другие ресурсы.
5. Запрещено создавать темы без информативного названия. Название темы должно отображать ее смысл.

В данном разделе форума разрешено создавать темы, касающие только скриптинга для AMX Mod X.

Правила при создании новой темы:
1. При вставке кода плагина необходимо использовать тег [code=php].
2. Любые изображения должны быть загружены, как вложения к вашему сообщению.
3. При описании проблемы или запросе на помощь в редактировании плагина обязательно выкладывайте исходник sma плагина.

Ограничение по времени

Сообщение Rento » 13 апр 2019, 07:18

Здравствуйте, помогите пожалуйста.

Есть плагин на полет, что-то подобное паутинки. Я бы хотел сделать чтобы этот полет работал 35 секунд, нажав на кнопку полета у меня на экране шел обратный отчет "Осталось полета: 35 (34, 33, 32 и т.д.) секунд" когда я отпускаю кнопку полета, то и таймер останавливается, при нажатии снова на кнопку, то таймер будет продолжать идти с той секунды с которой он остановился и при окончании 35 секунд, нажав на кнопку полета будет писаться на экране "Время полета закончилось" и в новом раунде, таймер обнуляется и процесс повторяется. Вообщем ограничение полета по секундам сделать.

Вот сам полет:
Код: Выделить всё
#include <amxmodx>
#include <fakemeta>
#include <engine>

#define PLUGIN_NAME        "Fly Player"
#define PLUGIN_AUTHOR    "arttty7"
#define PLUGIN_VERSION    "0.1"

#define TASK_FLY_PLAYER 2281448

new g_Trail;

public plugin_init()
{
    register_plugin(PLUGIN_NAME, PLUGIN_VERSION, PLUGIN_AUTHOR);
    register_clcmd("+fly", "Fly_On");
    register_clcmd("-fly", "Fly_Off");
}

public plugin_precache()
{
    g_Trail = engfunc(EngFunc_PrecacheModel, "sprites/jb_standard/jbs_flymode/1_xz.spr");
}

public Fly_On(id)
{
    
    if
(is_user_alive(id) && get_user_flags(id) & ADMIN_LEVEL_G)
    {
        Fly_task(id+TASK_FLY_PLAYER);
        set_task(0.1, "Fly_task", id+TASK_FLY_PLAYER, _, _, "b");
    }    
    return PLUGIN_HANDLED
;
}

public Fly_Off(id)
{
    UTIL_create_killbeam(id);
    if(task_exists(id+TASK_FLY_PLAYER))
        remove_task(id+TASK_FLY_PLAYER);
    
    return PLUGIN_HANDLED
;
}

public Fly_task(id)
{
    id -= TASK_FLY_PLAYER;
    new Float:fAim[3] , Float:vecVelocity[3];
    VelocityByAim(id, 720, fAim);
    vecVelocity[0] = fAim[0];
    vecVelocity[1] = fAim[1];
    vecVelocity[2] = fAim[2];
    set_pev(id, pev_velocity, vecVelocity);
    UTIL_create_beamfollow(id, g_Trail, 15, 15, 150, 150, 150, 200);
}

stock UTIL_create_beamfollow(pEntity, pSptite, iLife, iWidth, iRed, iGreen, iBlue, iAlpha)
{
    message_begin(MSG_BROADCAST, SVC_TEMPENTITY);
    write_byte(TE_BEAMFOLLOW);
    write_short(pEntity);
    write_short(pSptite);
    write_byte(iLife); // 0.1's
    write_byte(iWidth);
    write_byte(iRed);
    write_byte(iGreen);
    write_byte(iBlue);
    write_byte(iAlpha);
    message_end();
}

stock UTIL_create_killbeam(pEntity)
{
    message_begin(MSG_ALL, SVC_TEMPENTITY);
    write_byte(TE_KILLBEAM);
    write_short(pEntity);
    message_end();

Помогите пожалуйста.
Аватара пользователя
Rento
 
Сообщения: 1
Зарегистрирован: 26 авг 2016, 11:59
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Языки программирования: Pawn
C++
Php
Ruby
Python

Вернуться в Скриптинг

Кто сейчас на конференции

Сейчас этот форум просматривают: Bing [Bot], Google [Bot], Yandex [Bot] и гости: 10