Правила форума Гаранты форума
Размещение рекламы AMX-X компилятор

Здравствуйте, гость Вход | Регистрация

Наши новости:

14-дек
24-апр
10-апр
11-апр

2 страниц V   1 2

Warmup

, Авторестарт через Х секунд + запрет наносить повреждения
Статус пользователя jas0n
сообщение 21.5.2008, 13:46
Сообщение #1


Стаж: 17 лет

Сообщений: 878
Благодарностей: 385
Полезность: 688

Warmup v1.0

Описание:
Делает 3 рестарта через Х секунд после начала карты. На протяжении этого времени можно разрешить или запретить нанесение повреждений игрокам.

Переменные:
  • amx_warmup <1|0> // вкл./выкл. плагин (по-умолчанию: 1)
  • amx_warmup_immunity <1|0> // запретить/разрешить нанесение повреждений во время разминки (по-умолчанию: 1)
  • amx_warmup_time <15..120> // Длительность разминки в секундах. Значение от 15 до 120 секунд. Если установленное значение не попадет в диапазон 15 - 120, то возвращается стандартное значение (по-умолчанию: 45)
    * После изменения переменных необходимо сменить карту или сделать restart сервера.
Необходимые модули:
  • amxmodx
  • fakemeta
Список изменений:
    v1.0 - Начальная версия
Прочее:
В исходнике можете изменить текст сообщений на любой другой:
Цитата
new const g_SyncHudMsg1[] = "Autorestart game in %d second(s)"
new const g_SyncHudMsg2[] = "LIVE!!! LIVE!!! LIVE!!!"

%d - это кол-во секунд до рестарта, удалять из строки не рекомендую (:
Прикрепленные файлы:
Прикрепленный файл  warmup.rar ( 4,92 килобайт ) Кол-во скачиваний: 395
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 3 раз
   Цитировать сообщение
Статус пользователя Zipfer
сообщение 21.5.2008, 16:18
Сообщение #2


Стаж: 16 лет

Сообщений: 209
Благодарностей: 18
Полезность: 81

Собственно найдена ошибка, если выставляеш amx_warmup_immunity 1, то при рестарте тоже будет иммунитет, тоесть нельзя убить :)

Отредактировал: Zipfer, - 21.5.2008, 19:41
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя alartok
сообщение 3.7.2008, 14:19
Сообщение #3


Стаж: 15 лет

Сообщений: 81
Благодарностей: 11
Полезность: 24

Цитата(Zipfer @ 21.5.2008, 16:18) *
Собственно найдена ошибка, если выставляеш amx_warmup_immunity 1, то при рестарте тоже будет иммунитет, тоесть нельзя убить :)



у меня все работает, jas0n пасиб тебе большущее, реально один из самых нужных плагинов)

Отредактировал: alartok, - 5.7.2008, 8:22
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя pike
сообщение 21.7.2008, 6:49
Сообщение #4


Стаж: 16 лет

Сообщений: 956
Благодарности: выкл.

Возможно изменить на 1 рестарт ?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Marsipan
сообщение 21.7.2008, 7:37
Сообщение #5


Стаж: 16 лет

Сообщений: 73
Благодарностей: 35
Полезность: 155

Цитата
Возможно изменить на 1 рестарт ?

Там изменять то нечего ^_^

Убрал лишние таски (на рест)
Вот ещё и русскую версию сделал ;]

В архиве 2 папки "eng" и "rus" ...

Скрин русского:

Прикрепленные файлы:
Прикрепленный файл  jas0n_warmup.rar ( 8,03 килобайт ) Кол-во скачиваний: 102
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя pike
сообщение 21.7.2008, 7:55
Сообщение #6


Стаж: 16 лет

Сообщений: 956
Благодарности: выкл.

Цитата(Marsipan @ 21.7.2008, 8:37) *
Там изменять то нечего ^_^

Убрал лишние таски (на рест)



Покажи переделанный исходник,пож.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Marsipan
сообщение 21.7.2008, 8:02
Сообщение #7


Стаж: 16 лет

Сообщений: 73
Благодарностей: 35
Полезность: 155

line 97-100

code

Код
            set_task(1.0, "doRestartRound")
            set_task(3.0, "doRestartRound")
            set_task(5.0, "doRestartRound")
            set_task(9.0, "showStartMsg")


new code

Код
            set_task(1.0, "doRestartRound")
            set_task(9.0, "showStartMsg")

Прикрепленные файлы:
Прикрепленный файл  warmup.rar ( 1,18 килобайт ) Кол-во скачиваний: 38
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя pike
сообщение 21.7.2008, 8:33
Сообщение #8


Стаж: 16 лет

Сообщений: 956
Благодарности: выкл.

Изменил цвет, сообщение в центр о рестарте,
подправте если не так:

Код
new const g_SyncHudMsg2[] = "Разминка ! Автоматический рестарт через %d секунд !"
new const g_SyncHudMsg1[] = "LIVE!!! LIVE!!! LIVE!!!"

new fw_PreThink = -1

new g_IsActive, p_IsActive
new g_Immunity, p_Immunity
new g_Seconds, p_Seconds

new g_SyncHudMsgObj

public plugin_init()
{
    register_plugin(PLUGIN, VERSION, AUTHOR)

    g_IsActive = register_cvar("amx_warmup", "1")
    g_Immunity = register_cvar("amx_warmup_immunity", "1")
    g_Seconds = register_cvar("amx_warmup_time", "45")

    g_SyncHudMsgObj = CreateHudSyncObj()
}

public plugin_cfg()
{
    p_IsActive = get_pcvar_num(g_IsActive)
    p_Immunity = get_pcvar_num(g_Immunity)
    p_Seconds = get_pcvar_num(g_Seconds)

    if (p_IsActive == 1)
    {
        if (p_Seconds < 15 || p_Seconds > 120)
            p_Seconds = 45
        
        register_event("TextMsg", "setTimerTask", "a", "2=#Game_Commencing")
    }
    else
        pause("ad")
}

public setTimerTask()
{
    if (p_Immunity == 1)
        setFwRegistered(true)
    
    set_task(1.0, "showTimerMsg", 54162, _, _, "b")
}

public showTimerMsg()
{
    p_Seconds--
    
    if (p_Seconds > 0)
    {
        set_hudmessage(0, 255, 0, -1.0, 0.35, 0, 3.0, 6.0, 0.1, 0.2, -1)
        ShowSyncHudMsg(0, g_SyncHudMsgObj, g_SyncHudMsg2, p_Seconds)
    }
    else
    {
        if(task_exists(54162))
        {
            remove_task(54162)
            
            if (p_Immunity == 1)
                setFwRegistered(false)
            set_task(1.0, "doRestartRound")
            set_task(9.0, "showStartMsg")
            
            return
        }
    }
}

public doRestartRound()
{
    set_cvar_num("sv_restart", 1)
}

public showStartMsg()
{
    set_hudmessage(0, 255, 0, -1.0, 0.35, 0, 3.0, 6.0, 0.1, 0.2, -1)
    ShowSyncHudMsg(0, g_SyncHudMsgObj, g_SyncHudMsg1)

    pause("ad")
}

public setFwRegistered(bool:condition)
{
    if (condition && fw_PreThink == -1)
    {
        fw_PreThink = register_forward(FM_PlayerPreThink, "fwPlayerPreThink")
    }
    
    if (!condition && fw_PreThink != -1)
    {
        unregister_forward(FM_PlayerPreThink, fw_PreThink)
                
        fw_PreThink = -1
    }
    return PLUGIN_HANDLED
}

public fwPlayerPreThink(id)
{
    set_pev(id, pev_takedamage, 0.0)
}
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Marsipan
сообщение 21.7.2008, 8:44
Сообщение #9


Стаж: 16 лет

Сообщений: 73
Благодарностей: 35
Полезность: 155

С кодом всё в порядке.
Но не забывай, одних русских символов в исходнике недостаточно для реального отображения кирилицы в игре ;]
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя pike
сообщение 21.7.2008, 8:48
Сообщение #10


Стаж: 16 лет

Сообщений: 956
Благодарности: выкл.

У меня отображаются.
Возможно у некоторых проблемы будут с кодировкой ?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Marsipan
сообщение 21.7.2008, 8:57
Сообщение #11


Стаж: 16 лет

Сообщений: 73
Благодарностей: 35
Полезность: 155

У кого проблеммы с кирилицой, у того будут ероглифы.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя pike
сообщение 21.7.2008, 9:06
Сообщение #12


Стаж: 16 лет

Сообщений: 956
Благодарности: выкл.

Тут не поможешь https://c-s.net.ua/forum/index.php?showtopi...amp;#entry63267
Сообщение #13
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Marsipan
сообщение 21.7.2008, 9:22
Сообщение #13


Стаж: 16 лет

Сообщений: 73
Благодарностей: 35
Полезность: 155

http://forums.alliedmods.net/showthread.ph...ghlight=afkkiss
Нужно всеголишь грамотно настроить под себя квары ;]
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя mydak111
сообщение 23.7.2008, 10:53
Сообщение #14
Стаж: 15 лет

Сообщений: 6
Благодарностей: 1
Полезность: 0

Marsipan
а ты не можешь переделать чтобы было стандартно не 45секунд а 15??я бы и сам сделал но не понимаю ничё=)
зарание спасибо!
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя pptim
сообщение 23.7.2008, 11:35
Сообщение #15
Стаж: 15 лет

Сообщений: 152
Благодарностей: 57
Полезность: 296

mydak111
Пропиши в server.cfg: amx_warmup_time 15. И все будет норм)
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Marsipan
сообщение 23.7.2008, 20:15
Сообщение #16


Стаж: 16 лет

Сообщений: 73
Благодарностей: 35
Полезность: 155

mydak111 там же есть квары ;] тебе pptim ответил верно ;]
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя mydak111
сообщение 24.7.2008, 6:33
Сообщение #17
Стаж: 15 лет

Сообщений: 6
Благодарностей: 1
Полезность: 0

эм ну просто у меня сервер не постоянно работает, а када перезапускаю всёравно обратно на 45 сбрасывается
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Marsipan
сообщение 24.7.2008, 21:33
Сообщение #18


Стаж: 16 лет

Сообщений: 73
Благодарностей: 35
Полезность: 155

Пропиши в amxx.cfg и не будит сбрасываться.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя alartok
сообщение 24.7.2008, 21:34
Сообщение #19


Стаж: 15 лет

Сообщений: 81
Благодарностей: 11
Полезность: 24

Цитата(mydak111 @ 24.7.2008, 6:33) *
эм ну просто у меня сервер не постоянно работает, а када перезапускаю всёравно обратно на 45 сбрасывается



g_Seconds = register_cvar("amx_warmup_time", "45")

"45" - это время до рестарта, меняй на любое и компилируй
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Marsipan
сообщение 4.8.2008, 15:18
Сообщение #20


Стаж: 16 лет

Сообщений: 73
Благодарностей: 35
Полезность: 155

офф:

Моя ICQ весит в подписи и разве её не видно?!
Не, я писать небуду ;]
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
2 страниц V   1 2
 
Тема закрытаНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: