@FastSpace Ты пишешь слишком очевидные вещи, о которых не знает юный пользователь бас. В целом я сюда пишу не потому что хочу чтобы разобрали мою индивидуальную ситуацию т.к скорее всего мне нужно покупать прем и писать админу с просьбой выдать дебаг версию (вроде раньше такую давали , щас не знаю). Проблема есть и если она не массовая , чёрт с ней. Разберусь.
Не переходит в основную функцию, после выполнения условия в другой функции
-
Всем привет, в общем делал скрипт и столкнулся с такой проблеммой.
У меня есть функция, в ней есть цикл foreach в нем цикл for

Когда срабатывает условие срабатывает эта функция

Получает что, идет загрузка если не срабатывает то на else она повторяется снова. Когда повторилось то находит элемент и срабатывает условие if, оно срабатывает, срабатывает та функция что в нем

И после того как функция эта сработала, должно перекидывает меня в цикл который на 1 скрине, но получается следующее раз через раз оно не перекидывает, срабатывает все это что выделенное

И просто скидывается вся работа скрипта. и она не переходит в цикл for и не выводит даже сообщение которое ниже его.
Если использовать метки, то получается что метка сработала перекинула в for и все, работа остановилась вообще, цикл остановился.
Так же во ЛОГ ничего вообще не выводится. Ведь по факту должна выводится ошибка скрипта или проекта
В чем проблема? -
@sashf1999 Нельзя метками переходить между функциями...
-
@denis_krsk said in Не переходит в основную функцию, после выполнения условия в другой функции:
@sashf1999 Нельзя метками переходить между функциями...
Почему это. Можно же...
-
@forall Можно, а потом получать удовольствие от таких багов тоже можно. Нельзя потому что пропускается инициализация функции и интерпретатор понятие не имеет, что он выполняет функцию.
-
@sashf1999 Что помочь? Вам ответили причину. Переделайте скрипт. Что бы метки если вы их используете были не в функциях, а до них. А функции вызывались отдельно. Ну или по проверке. Я бы например проверку капчи вынес в отдельную с проверкой если она универсальна по всему телу скрипта.
Что бы так не путаться ставьте метки только до начала выполнения функции, а вот перейти к метке можно где угодно.
-
@sashf1999 Тогда надо смотреть сам скрипт. Попробуйте обратится к @Fox В личке я так понимаю это не тот скрипт который стоит разбирать на публике. Значит где то у вас сидит ошибка. Возможно например что элементы меняются при перезагрузке. И он не ловит их такое бывает.
-
@Denis_krsk
Нельзя метками переходить между функциями...
Оказывается можно
:DНо без глюков можно переходить только внутри одной функции.Вот тестовый скрипт.
Логика такая, скрипт начинает работу с main, заходит в функцию test_0, там стоят две метки, одна вызывается тут же для увеличения переменной в цикле. После прохождения функции test_0 мы возвращаемся в main, и из неё переходим в функцию test_1, в ней мы переходим по метке в функцию test_0. Но после выполнения функции test_0 скрипт завершается, не возвращаясь ни в test_1, ни в main.
Если бы мы просто вызывали функции, стек бы сохранялся и всё работало как и ожидается.
Основной косяк скрипта был вот в чём: В двух разных функциях ставились и вызывались метки с одинаковым именем, в результате ни чего не происходило и скрипт просто завершался.
Вот тестовый скрипт для наглядности.
Метки зло, с ними проще создать баг, чем с циклом или вызовом функции. Хоть и @support говорит, что это мощный инструмент, я бы не советовал новичкам его использовать повсеместно.
-
@fox said in Не переходит в основную функцию, после выполнения условия в другой функции:
что это мощный инструмент, я бы не советовал новичкам его использовать повсеместно.
Бгг я с этим инструментом "нахавался" в свое время. Мало меток будут косяки, много меток будешь репу чесать а куда она ведет... особенно действия повторяются, но не совсем "повторяются". Сейчас проще. Список меток можно всегда увидеть "скопом" за что спасибо @support у. Бас все больше и больше становится юзабельным для новичков. Но блин это нарягает когда привык "как раньше"))
-
-
@Denis_krsk
А я разве не это написал?Выражение "нельзя между" и "можно только внутри" разве не равны по смыслу?)) Или я чего-то не понял :D
Да, ты так же написал
:D, нууу, а что ты хотел, я полтора суток не спал, ладно хоть причинно-следственные связи работали )) -
-
Метки зло
49 меток, гоняю кран в 30.000 аккаунтов и 500 потоков на 5 серверах. Багов нет :D
Я лишь высказал своё мнение, каждый вправе
городить свой огородреализовывать свою логику как вздумается:D
Для тех кто активно пользуется метками советую обратить внимание на два выше приведёных мною факта:
- Не называть метки одинаково
- Не перепрыгивать из функции в функцию через метки
-
- Одинаковые метки это само собой. Это создаст дикие баги.
- Перепрыгивать из функции в функции можно, но более чем 1 раз туда-сюда. Хотя у меня скрипт построен таким образом, что если что-то затупит, что даже не страшно и это. Одна метка не сработает - сработает другая.
-
Да можно все, просто потом не надо писать, помогите, BUG! )))
-
@denis_krsk На каждый баг должен быть анти-баг :D У меня на каждую проверку еще 3 проверки и 4 критическая (перезапуск бота). Хотя до такого доходит редко, но всё же. Это мир ботоводства, здесь не предсказуемо всё.
Особенно когда скрипт очень долго без перезапуска работает. Мой рекорд 23 дня.