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

[HELP PLEASE!] Время суток идёт по разному!!!  [Решено]

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

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

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

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

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

[HELP PLEASE!] Время суток идёт по разному!!!

Сообщение Misha90 » 05 июн 2017, 20:44

Всем привет!!! Помогите сделать чтобы от светлого до тёмного времени суток, время менялось точно через 1 минуту и 10 секунд.
У меня раунд идёт 6 минут и 30 секунд. 1)День 2)Вечер 3)Ночь. Время меняется 3 раза, то есть ночь будет на 3-ёх минутах и 30 секундах. P.S Всё так и должно быть! Всё дальше оно не идёт!
Но почему-то в следующем раунде оно совсем по другому идёт, так быстро меняется. Помогите пожалуйста! Я Честно всё перепробовал!!!! Готов отсос*ть!!!!

Код: Выделить всё
#include <amxmodx>
#include <zombieplague>

#pragma tabsize 0

new g_round_time
new g_time
, g_timedown

new g_time1
new const light_sound1
[] = { "ambience/Birds4.wav" }
new const light_sound2[] = { "ambience/copter.wav" }
new const light_sound3[] = { "ambience/wolfhowl02.wav" }

public plugin_precache()
{
    precache_sound(light_sound1)
    precache_sound(light_sound2)
    precache_sound(light_sound3)
}

public plugin_init()
{
    g_round_time = register_cvar("zp_light_change", "70")
    
    register_event
("HLTV", "RoundStart", "a", "1=0", "2=0")
    
    register_dictionary
("light.txt")        
}

public RoundStart()
{
    server_cmd("zp_lighting h")

    set_task(2.0, "light_change")
    
    g_time 
= get_pcvar_num(g_round_time)
    g_timedown = get_pcvar_num(g_round_time) - 1
    g_time1 
= 1
}

public light_change()
{
    
    g_time
--    
            if 
((g_time < 2) && (g_time1 == 1))
            {
                server_cmd("zp_lighting d")
                client_cmd(0, "spk %s", light_sound1)
                
                set_hudmessage
(190, 190, 0, -1.0, 0.28, 0, 0.0, 3.0, 2.0, 1.0, -1)
                show_hudmessage(0, "%L", LANG_PLAYER, "HUD_EVENT1") 
            
}
            if ((g_time < 2) && (g_time1 == 2))
            {
                server_cmd("zp_lighting b")
                client_cmd(0, "spk %s", light_sound2)
                
                set_hudmessage
(0, 190, 0, -1.0, 0.28, 0, 0.0, 3.0, 2.0, 1.0, -1)
                show_hudmessage(0, "%L", LANG_PLAYER, "HUD_EVENT2") 
            
}
            if ((g_time < 2) && (g_time1 == 3))
            {
                server_cmd("zp_lighting a")
                client_cmd(0, "spk %s", light_sound3)
                
                set_hudmessage
(190, 0, 0, -1.0, 0.28, 0, 0.0, 3.0, 2.0, 1.0, -1)
                show_hudmessage(0, "%L", LANG_PLAYER, "HUD_EVENT3") 
            
}        
    
--g_timedown;
    
    if
(g_time > 1)
    {
        set_task(1.0, "light_change")
    }
    else 
    
{
        g_time = get_pcvar_num(g_round_time)
        g_time1 = g_time1 + 1
        
        set_task
(0.1, "light_change")
    }
}


Добавлено спустя 34 минуты 46 секунд:
ПОМОГИТЕ ПРОШУ ВАС!
Аватара пользователя
Misha90
 
Сообщения: 94
Зарегистрирован: 05 апр 2017, 20:06
Благодарил (а): 49 раз.
Поблагодарили: 2 раз.
Языки программирования: Pawn
SourcePawn
C++
Php
Ruby
Python
C#

Re: [HELP PLEASE!] Время суток идёт по разному!!!  [Решено]

Сообщение Dart_Begep » 06 июн 2017, 12:49

Если в cvar "zp_light_change" хранится длительность времени суток (день, вечер, ночь), то лучше делать так:
1) По событию старта раунда (функция RoundStart) сбрасываем текущее время суток (ставим день), устанавливаем таймер (set_task) с интервалом "zp_light_change".
2) По событию таймера устанавливаем следующее время суток (по кругу - вечер, ночь, день), устанавливаем таймер (set_task) с интервалом "zp_light_change".
И не нужен этот ежесекундный таймер.
Аватара пользователя
Dart_Begep
 
Сообщения: 131
Зарегистрирован: 19 апр 2017, 22:29
Благодарил (а): 11 раз.
Поблагодарили: 27 раз.
Опыт программирования: Больше трех лет
Языки программирования: Pawn
Php
JavaScript

Re: [HELP PLEASE!] Время суток идёт по разному!!!

Сообщение Misha90 » 06 июн 2017, 15:45

Полностью переписал плагин! Теперь всё работает! ВОПРОС РЕШЁН !!
Аватара пользователя
Misha90
 
Сообщения: 94
Зарегистрирован: 05 апр 2017, 20:06
Благодарил (а): 49 раз.
Поблагодарили: 2 раз.
Языки программирования: Pawn
SourcePawn
C++
Php
Ruby
Python
C#


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

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

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