Код из горы функций прерывается в процессе работы (см. подробности). Что делать?

DanilaArhitektor

Новичок
Регистрация
2 Июн 2023
Сообщения
20
Короче говоря, длинный код, который состоит из горы функций, ведь он не в одну строчку влезет, а в двадцать одну. Можете не спрашивать, зачем такой код, ведь причин много: он может сюжет игры иллюстрировать, может регулировать процесс игры (сначала будет это, потом то и т. д..). Так вот, функции идут последовательно (1, 2, 3, ...). Когда игроки заходят, я включаю сюжет специальным предметом - головой игрока (а в коде написано: моё событие - правый клик, если предмет равен этой самой голове, то выбрать всех игроков и вызвать функцию 1. На конце функции 1 стоит блок вызова функции 2, на ее конце - вызов 3 и т. д.. На последней двадцать первой функции снова идёт вызов первой функции.).
В чём дело? Я вызываю первую функцию у всех игроков, она начинается с сообщения "Сюжет начат". У меня было 7 онлайна и сообщение просто тупо отправилось в чат 7 раз (зачем?!). Дальше: с телепортацией проблем нет, все телепортируются нормально. Кстати, если зашёл восьмой игрок, на него функция не действует (он не телепортируется, не получает сообщения), у него только на скорборде может поменяться надпись. Дальше, где-то на третьей-четвёртой функциях идёт сообщение "скоро будет сложнее", оно в чат отправляется 14 раз, потом на 7 функции новое сообщение, которое читать сотню раз замучаешься, а потом и вовсе засоряется чат.
Дальше идёт страх: в чат пишет система "программа прервана, превышен лимит одновременно работающих таймеров х штук/1000". За иксом у меня и 1005 было, и 1207, и т. д.. Так таймер же один для всех! Где-то на двадцатой минуте реального времени игра посылает всех в режим строительства и резко понижается онлайн... Обидно! Так вот мои вопросы:

Как исправить, чтобы работа функции не размножалась (таймер работает несколько раз, флуд в чате...)? Как сделать, чтобы новый зашедший игрок "залез" в функцию, а не был исключением? Стоит ли где-то применять цикл и зависит ли всё от выборки? Можно ли это закодить так, что функция продолжает работать при наличии любого онлайна (кроме 0)? А не зависела от головы игрока... Просто в школе прах орла функция работает всегда, когда есть онлайн (нет флуда в чате, ошибок от системы, не зависит от какой-то кнопки и т. д..).

Кстати, между прочим, когда я играл все функции один, не было никакого флуда, размножения таймеров и ошибок! Всё работало как надо и я прожил все функции, от первой и до двадцатой первой, затем всё пошло по второму кругу.
А вот с онлайна 2 человека уже начинается раздвоение сообщений и всё коту под хвост.
 

maxim34a

Эксперт
Регистрация
10 Июн 2023
Сообщения
538
Как исправить, чтобы работа функции не размножалась
Насколько я знаю, вызов функции зависит от выборки. Перед вызовом попробуй сделать "Выборка(Случайный игрок)", и в отправке сообщения выбери "Все игроки"(Через шифт + пкм!!!!!). Ну и олсо, лучше напиши весь код)0) Либо хотя бы код 1 функциии
 

Mee8YT

Эксперт
Регистрация
3 Май 2023
Сообщения
327
Насколько я знаю, вызов функции зависит от выборки. Перед вызовом попробуй сделать "Выборка(Случайный игрок)", и в отправке сообщения выбери "Все игроки"(Через шифт + пкм!!!!!). Ну и олсо, лучше напиши весь код)0) Либо хотя бы код 1 функциии
Если-бы ты мне это сказал во времена разработки моего кода на аукцион - я бы тебя расцеловал, это была большая проблема, что тоже самое обновление сбивалось
 
Сверху