Не переходит в основную функцию, после выполнения условия в другой функции



  • Всем привет, в общем делал скрипт и столкнулся с такой проблеммой.
    У меня есть функция, в ней есть цикл foreach в нем цикл for
    0_1532107143317_693757e2-1ed2-4fbb-ac1f-376014132d2c-image.png
    Когда срабатывает условие срабатывает эта функция
    0_1532107248975_c5464a8e-b896-41a5-bff2-334d480e9c77-image.png
    Получает что, идет загрузка если не срабатывает то на else она повторяется снова. Когда повторилось то находит элемент и срабатывает условие if, оно срабатывает, срабатывает та функция что в нем
    0_1532107341203_918453de-da06-427d-aec4-e8ad9e984b8b-image.png
    И после того как функция эта сработала, должно перекидывает меня в цикл который на 1 скрине, но получается следующее раз через раз оно не перекидывает, срабатывает все это что выделенное
    0_1532107447754_fed66a12-4df4-4f75-9f22-0a4a24b6af1f-image.png
    И просто скидывается вся работа скрипта. и она не переходит в цикл for и не выводит даже сообщение которое ниже его.
    Если использовать метки, то получается что метка сработала перекинула в for и все, работа остановилась вообще, цикл остановился.
    Так же во ЛОГ ничего вообще не выводится. Ведь по факту должна выводится ошибка скрипта или проекта
    В чем проблема?



  • @sashf1999 Нельзя метками переходить между функциями...



  • @denis_krsk said in Не переходит в основную функцию, после выполнения условия в другой функции:

    @sashf1999 Нельзя метками переходить между функциями...

    Почему это. Можно же...



  • @forall Можно, а потом получать удовольствие от таких багов тоже можно. Нельзя потому что пропускается инициализация функции и интерпретатор понятие не имеет, что он выполняет функцию.



  • Знаю



  • Так помогите ребят. Я не могу понять в чем ошибка. Может даже в самом БАС. Потому что не каких ошибок не выводи и прекращает резко работу.


  • Banned

    @sashf1999 Что помочь? Вам ответили причину. Переделайте скрипт. Что бы метки если вы их используете были не в функциях, а до них. А функции вызывались отдельно. Ну или по проверке. Я бы например проверку капчи вынес в отдельную с проверкой если она универсальна по всему телу скрипта.

    Что бы так не путаться ставьте метки только до начала выполнения функции, а вот перейти к метке можно где угодно.



  • @allive У меня переход меток только в функциях, функция на капчу как мог заметить отдельная и подходит везде. Метки не вызываю между функциями. Мне надо сделать так что бы не прерывалась работы на условие


  • Banned

    @sashf1999 Тогда надо смотреть сам скрипт. Попробуйте обратится к @Fox В личке я так понимаю это не тот скрипт который стоит разбирать на публике. Значит где то у вас сидит ошибка. Возможно например что элементы меняются при перезагрузке. И он не ловит их такое бывает.



  • @Denis_krsk

    Нельзя метками переходить между функциями...

    Оказывается можно :D Но без глюков можно переходить только внутри одной функции.

    Вот тестовый скрипт.

    Логика такая, скрипт начинает работу с main, заходит в функцию test_0, там стоят две метки, одна вызывается тут же для увеличения переменной в цикле. После прохождения функции test_0 мы возвращаемся в main, и из неё переходим в функцию test_1, в ней мы переходим по метке в функцию test_0. Но после выполнения функции test_0 скрипт завершается, не возвращаясь ни в test_1, ни в main.
    Если бы мы просто вызывали функции, стек бы сохранялся и всё работало как и ожидается.


    Основной косяк скрипта был вот в чём: В двух разных функциях ставились и вызывались метки с одинаковым именем, в результате ни чего не происходило и скрипт просто завершался.
    Вот тестовый скрипт для наглядности.


    Метки зло, с ними проще создать баг, чем с циклом или вызовом функции. Хоть и @support говорит, что это мощный инструмент, я бы не советовал новичкам его использовать повсеместно.


  • Banned

    @fox said in Не переходит в основную функцию, после выполнения условия в другой функции:

    что это мощный инструмент, я бы не советовал новичкам его использовать повсеместно.

    Бгг я с этим инструментом "нахавался" в свое время. Мало меток будут косяки, много меток будешь репу чесать а куда она ведет... особенно действия повторяются, но не совсем "повторяются". Сейчас проще. Список меток можно всегда увидеть "скопом" за что спасибо @support у. Бас все больше и больше становится юзабельным для новичков. Но блин это нарягает когда привык "как раньше"))



  • @fox

    @Denis_krsk

    Нельзя метками переходить между функциями...

    @fox Оказывается можно :D Но без глюков можно переходить только внутри одной функции.

    А я разве не это написал?Выражение "нельзя между" и "можно только внутри" разве не равны по смыслу?)) Или я чего-то не понял :D



  • @Denis_krsk

    А я разве не это написал?Выражение "нельзя между" и "можно только внутри" разве не равны по смыслу?)) Или я чего-то не понял :D

    Да, ты так же написал :D, нууу, а что ты хотел, я полтора суток не спал, ладно хоть причинно-следственные связи работали ))



  • @fox said

    Метки зло, с ними проще создать баг, чем с циклом или вызовом функции. Хоть и @support говорит, что это мощный инструмент, я бы не советовал новичкам его использовать повсеместно.

    49 меток, гоняю кран в 30.000 аккаунтов и 500 потоков на 5 серверах. Багов нет :D



  • @FastSpace

    Метки зло

    49 меток, гоняю кран в 30.000 аккаунтов и 500 потоков на 5 серверах. Багов нет :D

    Я лишь высказал своё мнение, каждый вправе городить свой огород реализовывать свою логику как вздумается :D


    Для тех кто активно пользуется метками советую обратить внимание на два выше приведёных мною факта:

    1. Не называть метки одинаково
    2. Не перепрыгивать из функции в функцию через метки


  • @fox

    1. Одинаковые метки это само собой. Это создаст дикие баги.
    2. Перепрыгивать из функции в функции можно, но более чем 1 раз туда-сюда. Хотя у меня скрипт построен таким образом, что если что-то затупит, что даже не страшно и это. Одна метка не сработает - сработает другая.


  • Да можно все, просто потом не надо писать, помогите, BUG! )))



  • @denis_krsk На каждый баг должен быть анти-баг :D У меня на каждую проверку еще 3 проверки и 4 критическая (перезапуск бота). Хотя до такого доходит редко, но всё же. Это мир ботоводства, здесь не предсказуемо всё.
    Особенно когда скрипт очень долго без перезапуска работает. Мой рекорд 23 дня.


Log in to reply
 

  • 3
  • 6
  • 3
  • 6
  • 9
  • 2
  • 4
  • 11