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

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


  

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

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

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


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

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

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

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

Атака морозного атронаха произойдет в случае, если рядом не будет обоих даедр, упомянутых выше.
То есть на самом деле скрипт будет работать следующим образом:
if ( GetDistance, Player

 

startCombat "_al_daedroth"

 

else

startCombat "_al_atronach_flame"

 

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

startCombat "_al_atronach_frost"

...

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

 

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

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

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

 

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

 

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

 

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

 

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

 

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

 

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

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

 

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

 

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

 

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

 

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

---- возврат

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

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

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

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

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

конец-если

 

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

 

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

 

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

 

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

 

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

 

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

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

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

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

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

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

_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]
Ссылка на комментарий
Поделиться на другие сайты

 

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

 

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, после чего присвоить каждой даедре свой номер.

 

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

 

 

 

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

 

 

З.Ы.

 

 

Товарищ Еж подтвердил возможность нескольких else в личной беседе, и я присоединяюсь к его мнению, прежде чем кричать что-нибудь навроде "брееед", составьте скрипт с несколькими else и опробуйте его! Мой пример налицо.

 

 

З.Ы.Ы.

 

 

Прошу модеров закрыть тему, сколько можно раздувать, каждый сам возьмет и проверит! Что бестолку на словах доказывать без практики?

 

 

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

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

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

 

 

 

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

Второе такое заявление.

 

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

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

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