Перейти к содержанию

Можно ли ставить несколько else на один if


  

5 проголосовавших

  1. 1. Сколько else возможно на один if

    • Одно
      0
    • Примерно столько, сколько и вкладываемых ифов
      1
    • Что за бред? Для одного ифа одно элсе
      4


Рекомендуемые сообщения

  В 5/7/2011 в 6:09 PM, Phoenix_Neko сказал:

А десять или двадцать прочих условий - это мало? о_О

хех, просто из-за несовершенства языка в одном из плагинов пришлось заменить динамические переменные координат (функция их просто не принимала) на числовые значения, из-за чего я разбил ее на дискретные точки и высчитывал в двух глобальных скриптах, поскольку в один все Ифы из нужного промежутка не влезали:)

Ссылка на комментарий
Поделиться на другие сайты

  В 5/7/2011 в 4:30 PM, _aL_ сказал:
Атака морозного атронаха произойдет в случае, если рядом не будет обоих даедр, упомянутых выше.
То есть на самом деле скрипт будет работать следующим образом:
  Цитата
if ( GetDistance, Player

 

startCombat "_al_daedroth"

 

else

startCombat "_al_atronach_flame"

 

else [если в ячейке с объектом, на котором висит данный скрипт, нет существа с ID "_al_atronach_flame"]

startCombat "_al_atronach_frost"

...

То, что в квдратных скобках, в скрипт, получается, не закладывается, но в игре обрабатывается именно так? Гм, вполне допускаю, что движок Морровинда способен на такие выкрутасы. Однако хотелось бы это все-таки эмперически проверить.

 

И все-таки в каких условиях данный скрипт не запустится? Я вижу только один способ не заставить объект со скриптом не напасть на атронахов - телепортировать игрока в упор к этому самому объекту.

Ссылка на комментарий
Поделиться на другие сайты

  В 5/7/2011 в 5:43 PM, Boeny сказал:

*Мозг лопается большими пузырями и, выкинув эксепшен, аварийно завершается*

 

Объясню действие Вашего скрипта:

 

Если (игрок близок к ПЕРСОНАЖУ-НА-КОТОРОМ-ВИСИТ-СКРИПТ), то:

 

---- даэдрот атакует игрока,

 

Иначе: //игрок далеко от персонажа, НА-КОТОРОМ-ВИСИТ-СКРИПТ

 

---- ледяной атронах атакует игрока

 

Иначе: // шо за нах? O_o? Не ближе и не дальше? А ГДЕ? :)

---- ничего не выполняется!

 

ГДЕ ПРОВЕРКА НА НАЛИЧИЕ МОНСТРОВ?

 

Надо так: (скрипт висит на каждом из монстров)

 

один-раз == 1? Возврат

 

Если (я мертв)

---- возврат

Иначе: //я, сцуко, еще жив!

---- Если (игрок близко)

----.---- один-раз = 1

----.---- атаковать игрока;

---- конец-если

конец-если

 

А ничего, что даедры игрока не атакуют, а лишь друг друга?))) Тут вообще скрипт не про игрока, он лишь при его наличии на определенном растоянии запускается.

 

  Цитата
То, что в квдратных скобках, в скрипт, получается, не закладывается, но в игре обрабатывается именно так? Гм, вполне допускаю, что движок Морровинда способен на такие выкрутасы. Однако хотелось бы это все-таки эмперически проверить.

 

Именно так, все правильно, проверял неоднократно!

 

  Цитата
И все-таки в каких условиях данный скрипт не запустится? Я вижу только один способ не заставить объект со скриптом не напасть на атронахов - телепортировать игрока в упор к этому самому объекту.

 

Незнаю даже, если только еще на большем расстоянии игрок, до того как скрипт включится.

 

З.Ы. Мне одному кажется, что в опросе в принципе три одинаковых ответа?

Ссылка на комментарий
Поделиться на другие сайты

  Цитата

З.Ы. Мне одному кажется, что в опросе в принципе три одинаковых ответа?

Глюки. Вложенных ифов может быть около десяти. Далее, надеюсь, догадаетесь. Раз уж вам не нравился вариант бесконечно.

  Цитата
else [если в ячейке с объектом, на котором висит данный скрипт, нет существа с ID "_al_atronach_flame"]

Извиняюсь, но элсе для функции выглядит мягко говоря криво.

  Показать контент
Изменено пользователем Муурн Шепард
Ссылка на комментарий
Поделиться на другие сайты

  В 5/8/2011 в 5:06 AM, _aL_ сказал:
Именно так, все правильно, проверял неоднократно!
Форменное издевательство над формальной логикой, вот что это такое. И как разработчики такое допустили?

...впрочем, чего удивляться. Вон взять кто у них ко Скайриму скриптовый движок сейчас пишет - это ж натуральный троллфейс на лице.

 

Ладно, возвращаясь к топику: а как, собственно, будет работать начальная конструкция?

 

if ( GetDistance, Player < 1500 )

startCombat "_al_daedroth"

else
startCombat "_al_atronach_flame"

 

Так:

if ( GetDistance, Player < 1500 )

startCombat "_al_daedroth"

else ;выполняется, если дистанция объекта до игрока больше, чем 1500
startCombat "_al_atronach_flame"

 

Или так:

if ( GetDistance, Player < 1500 )

startCombat "_al_daedroth"

else ;выполняется, если в ячейке с объектом нет существа с ID "_al_daedroth"
startCombat "_al_atronach_flame"

Ссылка на комментарий
Поделиться на другие сайты

[trollmodeon] а на дистанцию огненного проверку не хотите добавить? он же из соседней ячейки ломанется, когда она подгрузится при движении. хотя я уже не помню какие там дистанции [trollmodeoff]
Ссылка на комментарий
Поделиться на другие сайты

  В 5/8/2011 в 8:18 AM, Deathruler сказал:

 

Ладно, возвращаясь к топику: а как, собственно, будет работать начальная конструкция?

 

if ( GetDistance, Player < 1500 )

startCombat "_al_daedroth"

else
startCombat "_al_atronach_flame"

 

Так:

if ( GetDistance, Player < 1500 )

startCombat "_al_daedroth"

else ;выполняется, если дистанция объекта до игрока больше, чем 1500
startCombat "_al_atronach_flame"

 

Или так:

if ( GetDistance, Player < 1500 )

startCombat "_al_daedroth"

else ;выполняется, если в ячейке с объектом нет существа с ID "_al_daedroth"
startCombat "_al_atronach_flame"

 

Если я все правильно понял, то в обоих случаях! Очевидно, что в любом случае атака _al_atronach_flame начнется при отсутствии _al_daedroth. В принципе, можно было сделать скрипт с рандомным выбором переменной от 1 до 10, после чего присвоить каждой даедре свой номер.

 

  В 5/8/2011 в 12:21 PM, Муурн Шепард сказал:

И чем вы это докажете? Извращенной логикой Беседки? Что ж, в таком случае можно согласиться: else работает на последню команду, причем туманно. Может, элсе для старткомбат равно стопкомбат, или getfight == 0.

 

 

  Показать контент

 

 

З.Ы.

 

  Показать контент

 

 

З.Ы.Ы.

 

  Показать контент

 

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

Изменено пользователем _aL_
Ссылка на комментарий
Поделиться на другие сайты

И чем вы это докажете? Извращенной логикой Беседки? Что ж, в таком случае можно согласиться: else работает на последню команду, причем туманно. Может, элсе для старткомбат равно стопкомбат, или getfight == 0.

 

 

 

  Показать контент

 

Изменено пользователем Муурн Шепард
Ссылка на комментарий
Поделиться на другие сайты

Гость
Эта тема закрыта для публикации ответов.
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...