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

> Ошибка при использовании "else" в цикле "repeat"
facset
сообщение 23.12.2013, 22:38
Сообщение #1


**

Neophyte
Сообщений: 10
Регистрация: 21.12.2013
Группа: Пользователи
Наличность: 0
Пользователь №: 16.508
Возраст: 23



баг на втором уровне выражения else

Код
1)   repeat #a
2)   действие
3)   if
4)     действие
5)   else
6)     действие
7)     if
8)       действие
9)     else
10)      действие
11)    end_if
12)  end_if
13)  end_repeat  - Ошибка интерпретации скрипта (end_repeat).


если с 7 по 11 строку засунуть в процедуру то все работает
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
 
Ответить в эту темуОткрыть новую тему
Ответов
DarkMaster
сообщение 27.12.2013, 20:25
Сообщение #2


***********

Модератор UOPilot
Сообщений: 9.742
Регистрация: 2.12.2008
Группа: Супермодераторы
Наличность: 29658
Пользователь №: 11.279



вы можете дать код который можно запустить и увидеть ошибку? Какие должны быть значения ифов? else? true?? Я брал этот кусок кода, чуть выше даже его привел после редактирования. Ошибка не воспроизводится. Нужен код, который можно запустить на _другом_ компьютере, чтобы эта ошибка вылезла. У меня вылезла.
Код
repeat 5
left 526, 487  
  wait 3s      
  if 1 = 2
    left 484, 462        
    wait 3s
  else
    left 412, 487          
    wait 3s
    left 526, 487          
    wait 3s
    if 1 = 2
      left 484, 462          
      wait 3s
    else
      left 412, 487      
      wait 3s
    end_if
  end_if
end_repeat
end_script
stop_script

Ошибка не вылазит. If'ы менял на правда/ложь. Вэйты убирали? Ошибка без них появляется?

Цитата
P.S. прошу прощение за косноязычность в выражениях, на форумах и в чатах до этого тоже не особо участвовал.

Мне не выражения надо. Мне код надо =) Код без координат и цветов, код который можно протестировать, который выкинет ошибку.

Цитата
хоть это и частичное решение проблемы но могут возникнуть неприятности например: если необходимо при повторном отрицательном результате перейти на какую то другую строку скрипта, из процедуры это пока невозможно (или я ошибаюсь?)

Они были не стабильны. Я использовал вместо них gosub. И использую до сих пор. Насколько я помню в процедуру можно передать переменные, таким образом можно передать номер вкладки скрипта и обращаться из процедуры напрямую к переменным скрипта. Ну а дальше дело техники.


--------------------
Скрипты UOPilot под заказ.
Консультации по UOpilot 15$/час.
Услуги Lua разработчика (не пилот, проекты, постоянка)
Disсоrd:
Kov____
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения



Ответить в эту темуОткрыть новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

- Текстовая версия | Версия для КПК Сейчас: 7.7.2025, 23:41
Designed by Nickostyle