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

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

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

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

Ночной режим работает не корректно

Статус пользователя Metal Messiah
сообщение 19.6.2015, 21:17
Сообщение #1


Иконка группы

Стаж: 13 лет

Сообщений: 2457
Благодарностей: 1482
Полезность: 770

HostGame.cf
Доброго времени суток!
Некоторое время назад поставил плагин, который меняет карту на dust 2x2 если сервер пустой в течение нескольких раундов.
В нем такое:
Код
public plugin_init()
{
    register_plugin("EMPTY", "1.0", "Metal Messiah")
    register_event("HLTV", "event_round_start", "a", "1=0", "2=0")
    empty_rounds=0
}

public event_round_start ( )
{
    round_number++
    new players[32], inum, people
    people=0
    get_players(players,inum, "h")    //h - skip HLTV; c - skip bots
    for (new id = 0; id < inum; ++id)
    {    
        if (is_user_connected(id) && !is_user_bot(id))
        {
            people++
        }
    }
    if (people<1) empty_rounds++
    
    if (empty_rounds>3)
    {
        new map[33]
        get_mapname(map,sizeof map - 1)
        if (!equal(map,emptymap))
        {
            log_amx("CHANGING MAP TO %s",emptymap)
            server_cmd("changelevel %s",emptymap)
        }
    }
}


Часто наблюдается такая картина что игроки есть (один - двое), на некоторых картах еще + несколько ботов (чтобы не было меньше 4 игроков в сумме), но при этом карта меняется.
Из-за чего это может происходить?

Отредактировал: Metal Messiah, - 19.6.2015, 21:18


Полезные публикации - ссылки у меня в профиле. Ссылка на плагин против спама на сервере StopServerSpam там же.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
voed
сообщение 19.6.2015, 21:22
Сообщение #2
Стаж: 11 лет

Сообщений: 2593
Благодарностей: 1760
Полезность: 405

Код:
        if (is_user_connected(id) && !is_user_bot(id))

Боты не учитываются.
А вообще, логично было бы не считать спектаторов
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя Metal Messiah
сообщение 19.6.2015, 23:30
Сообщение #3


Иконка группы

Стаж: 13 лет

Сообщений: 2457
Благодарностей: 1482
Полезность: 770

HostGame.cf
Таки да боты не учитываются. У меня на сервере всегда не меньше 4 игроков, если нет людей бегают боты. Кроме карт без вейпоинтов.
Просто бывает 2 человека, причем один из них админ, а карта берет и меняется произвольно :)


Полезные публикации - ссылки у меня в профиле. Ссылка на плагин против спама на сервере StopServerSpam там же.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Safety1st
сообщение 19.6.2015, 23:52
Сообщение #4
Стаж: 14 лет
Город: Moscow

Сообщений: 7228
Благодарностей: 8071
Полезность: 196

Metal Messiah, у тебя не плагин, а сплошной быдлокод с ошибками. Отсюда и проблема.
А идея ничоси good.gif Но велосипед - кривой smile.gif

Отредактировал: Safety1st, - 20.6.2015, 2:46
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Metal Messiah
сообщение 20.6.2015, 2:05
Сообщение #5


Иконка группы

Стаж: 13 лет

Сообщений: 2457
Благодарностей: 1482
Полезность: 770

HostGame.cf
так, по порядку. какие ошибки? почему быдлокод? да там есть лишние переменные которые тут не используются, дернул кусок исходника с випменю если я не ошибаюсь чтобы не работало меню раньше чем 2й раунд...


Полезные публикации - ссылки у меня в профиле. Ссылка на плагин против спама на сервере StopServerSpam там же.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Safety1st
сообщение 20.6.2015, 2:36
Сообщение #6
Стаж: 14 лет
Город: Moscow

Сообщений: 7228
Благодарностей: 8071
Полезность: 196

Нет уж, увольте smile.gif

Протестируй лучше моё творение и отпишись.
[attachment=33937:empty.sma]

Отредактировал: Safety1st, - 20.6.2015, 12:52
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя Metal Messiah
сообщение 20.6.2015, 4:14
Сообщение #7


Иконка группы

Стаж: 13 лет

Сообщений: 2457
Благодарностей: 1482
Полезность: 770

HostGame.cf
ну получение всех игроков и потом проверка на ботов это только потому что там уже 10 раз все менялось чтобы добиться работоспособности
а если быдлокод это проверка карты не в том месте...

Код
if( ++iEmptyRounds > MAX_EMPTY_ROUNDS )

ох уж эти сишники...

константы поменял, установил, отпишу завтра т.к. сейчас не с кем тестировать, нужны 2 игрока а не один я + боты. для чистоты эксперимента убедился что мой код меняет карту после окончания 2 раунда несмотря на наличие 1 игрока, т.е. people=1, empty_rouns должно быть 0 но карта менялась. напоминает древний баг, обнаруженный мною в одном коде на бесике в среде QBX: понаставил везде дебагов и увидел как вызывается конец подпрограммы без вызова ее начала superstition.gif

Отредактировал: Metal Messiah, - 20.6.2015, 4:16


Полезные публикации - ссылки у меня в профиле. Ссылка на плагин против спама на сервере StopServerSpam там же.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Safety1st
сообщение 20.6.2015, 12:52
Сообщение #8
Стаж: 14 лет
Город: Moscow

Сообщений: 7228
Благодарностей: 8071
Полезность: 196

Долгий ты smile.gif
Уже всё проверил, плагин перенесён сюда.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 2 раз
   + Цитировать сообщение
Статус пользователя Lemonnn
сообщение 20.6.2015, 20:50
Сообщение #9
Стаж: 10 лет

Сообщений: 21
Благодарностей: 2
Полезность: 69

Safety1st, дай свой скайп!
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
  Ответить в данную темуНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: