Не работает!Событие чата: присвоить переменную: <%player%_cooldown> = 1
Ждать: 100
Присвоить переменную: <%player%_cooldown> = 0
Если значение: <%player%_cooldown> = 1 - отменить событие
Событие игрока(Вход):
Начать цикл(cooldown_chat)
Событие игрока(Событие чата):
Отменить событие()
Если переменная(%player%_cooldown_chat <= 0):
Установить(%player%_cooldown_chat = 3)
Сообщение(%player%_prefix, "%player%&7: &f", Сообщение игрока) [Все игроки]
Иначе:
Сообщение("&fНельзя так часто писать. Подожди: &6", %player%_cooldown_chat, "&6 сек.")
Цикл(cooldown_chat, 20 тиков):
Выбрать игрока по сравнить число(%selected%_cooldown_chat > 0)
Отнять(%selected%_cooldown_chat -= 1)
Этот код всегда работал. Мб у тебя префиксы в игре?Не работает!
Нет, он не будет работать. У нас получается такая логика:Этот код всегда работал. Мб у тебя префиксы в игре?
Незачем вечно прогонять цикл cooldown_chat. Можно сделать вот так:Код:Событие игрока(Вход): Начать цикл(cooldown_chat) Событие игрока(Событие чата): Отменить событие() Если переменная(%player%_cooldown_chat <= 0): Установить(%player%_cooldown_chat = 3) Сообщение(%player%_prefix, "%player%&7: &f", Сообщение игрока) [Все игроки] Иначе: Сообщение("&fНельзя так часто писать. Подожди: &6", %player%_cooldown_chat, "&6 сек.") Цикл(cooldown_chat, 20 тиков): Выбрать игрока по сравнить число(%selected%_cooldown_chat > 0) Отнять(%selected%_cooldown_chat -= 1)
Замени оформление на свое и переменные с префиксом/суффиксом.
Событие игрока(Событие чата):
#Ставим стрелочкой "НЕ"
Если переменная(%player%_cooldown_chat > 0) {
Отменить событие
Сообщение("&fНельзя так часто писать. Подожди: &6", %player%_cooldown_chat, "&6 сек.")
} Иначе {
Установить(%player%_cooldown_chat = 3)
Запустить цикл(cooldown_chat)
}
Цикл(cooldown_chat, 20 тиков):
#Если я правильно понимаю работу циклов и функций - можно убрать выборку и поставить %player%_cooldown_chat
#Кому не лень - проверьте.
Выбрать игрока по сравнить число(%selected%_cooldown_chat > 0)
Отнять(%selected%_cooldown_chat -= 1)
Если значение переменной(%selected%_cooldown_chat <= 0) {
Остановить цикл(cooldown_chat)
}
Уже поняла, достаточно добавить пару проверок.Нет, он не будет работать.
Разницы практически никакой нет, да и такой цикл может багаться из-за постоянных его включений и выключений.Незачем вечно прогонять цикл cooldown_chat. Можно сделать вот так:
Практически в любой игре есть цикл в 20 тиков, почему бы не использовать его? Шанс набрать больше 30 игроков - крайне мал, и каждый игрок будет добавлять к макс. числу действий за 5 тиков. Лучше уж сделать цикл в 40 тиков и отнимать по 2 секунды.Будешь вечно держать цикл в действии? А если у тебя 50 игроков в игре сразу? А если у тебя ещё несколько циклов, например на топы?
С таким кодом требуется использовать новый цикл для каждой задержки. Более эффективным решением будет иметь один цикл, работающий на протяжении всей игры и обрабатывающий все задержки каждые 20 тиков.Незачем вечно прогонять цикл cooldown_chat. Можно сделать вот так:
Крайне мал, но он есть. Нагибатор6000ЛоЛ недавно набрал 50 игроков на игре "Кто пройдёт игру - получит импера".Шанс набрать больше 30 игроков - крайне мал
С такой логикой лучше всего сделать "Ждать(3 секунд)" и не париться с циклами)0)Лучше уж сделать цикл в 40 тиков и отнимать по 2 секунды.
Цикл в 20 тиков, который вечно в действии?Практически в любой игре есть цикл в 20 тиков, почему бы не использовать его?
Что добавлять? Куда добавлять? Зачем добавлять?и каждый игрок будет добавлять к макс. числу действий за 5 тиков.
И при большом онлайне уйти в ошибки, да?Более эффективным решением будет иметь один цикл, работающий на протяжении всей игры и обрабатывающий все задержки каждые 20 тиков.
Для какой "каждой задержки"? Чем отличается твой цикл и мой, если они повторяются одинаково раз в 20 тиков?С таким кодом требуется использовать новый цикл для каждой задержки.
Молодец нагибатор, но шанс набрать много игроков все так-же мал.Крайне мал, но он есть. Нагибатор6000ЛоЛ недавно набрал 50 игроков на игре "Кто пройдёт игру - получит импера".
С точки зрения оптимизации этот способ - лучший, с точки зрения красоты и наглядности - способ с циклами.С такой логикой лучше всего сделать "Ждать(3 секунд)" и не париться с циклами)0)
К лимиту действий за 5 тиков, именно из-за этого лимита можно крашнуть игру.Что добавлять? Куда добавлять? Зачем добавлять?
Даже при больших лимитах, получить ошибки от онлайна практически не возможно. И никакой цикл в 20 тиков практически не влияет на лимиты. Средний онлайн - 15 человек, такой цикл выполняет только 3 действия в 5 тиков, хотя общий лимит действий будет около 2000, а то и больше (В зависимости от ранга создателя мира)И при большом онлайне уйти в ошибки, да?
Красоты и наглядности? Только в программировании на красоту и наглядность всем плевать.С точки зрения оптимизации этот способ - лучший, с точки зрения красоты и наглядности - способ с циклами.
А если у игрока низкий донат? А если у него итак кучу всего запуститься в один момент? К тому же, ты бери не сам цикл, а совокупность всего: Допустим у тебя цикл с отсчётом, цикл с задержкой в 1 тик ещё для чего-то, и совокупность всего этого и будет бить тебе ошибкиДаже при больших лимитах, получить ошибки от онлайна практически не возможно. И никакой цикл в 20 тиков практически не влияет на лимиты.
4 действия.такой цикл выполняет только 3
откуда у тебя 5 тиков?Средний онлайн - 15 человек, такой цикл выполняет только 3 действия в 5 тиков
у геймера лимит 400. Что делать тем, кто перепишет код onn512'а с геймером?хотя общий лимит действий будет около 2000
откуда у тебя 5 тиков?
У Эксперта тоже 400, держу в курсе.у геймера лимит 400. Что делать тем, кто перепишет код onn512'а с геймером?
С 50 онлайн его лимит был 20400 действий на 5 тиков, мало?Крайне мал, но он есть. Нагибатор6000ЛоЛ недавно набрал 50 игроков на игре "Кто пройдёт игру - получит импера".
А есть и другие ошибки, за 1 тик например)
11111 вот что происходит, когда следуешь советам onn512 и делаешь бесконечный цикл)0) Чувак пробил лимит в 6400)Посмотреть вложение 1604
С 50 онлайн его лимит был 20400 действий на 5 тиков, мало?
достаточно сделать выборку игрока по умолчанию после блока ждать, мл моментЭтот код всегда работал. Мб у тебя префиксы в игре?
Добавь пару проверок, чтобы не багалось ничего.