Синтаксис if
Moderators: Murderator+, Murderator
Синтаксис if
Можно ли после условного оператора if операторы условия писать в столбик, например:
if
условие 1
условие 2
условие 3
...
условие n
then
оператор 1
оператор 2
оператор 3
...
оператор m
else
оператор 1
оператор 2
оператор 3
...
оператор k
end if
Вопрос жизни и смерти =)
if
условие 1
условие 2
условие 3
...
условие n
then
оператор 1
оператор 2
оператор 3
...
оператор m
else
оператор 1
оператор 2
оператор 3
...
оператор k
end if
Вопрос жизни и смерти =)
-
- Expert!
- Posts: 1205
- Joined: 2004-04-04 11:13:54
- Location: Балаково, Саратовская обл.
- Contact:
Ты это хотел получить?
или это?
Code: Select all
If Us1 Then
Op1
Else
If Us2 Then
Op2
Else
If Us3 Then
Op3
Else
Endif
Endif
Endif
или это?
Code: Select all
If Us1 Then
Op1
Else
Op1-1
Endif
If Us1 Then
Op2
Else
Op2-1
Endif
If Us1 Then
Op3
Else
Op3-1
Endif
А поподробнее можно насчёт символа \ ??
Просто у меня в скрипте на мининг идёт проверка на последнее сообщение журнала:
if (uo.LastMessage()=="Where do you want to use the Rose pickaxe crafted by Tomas") ...(условий на 4 строчки скрипта) OR (uo.LastMessage()=="You must wait to perform another action") OR (uo.LastMessage()=="You loosen some rocks but fail to find any useable ore.") then
при попытке запустить скрипт с такой "строкой =)" выдаёт ошибку в последней строке (перенесённого текста) Parse Error. Если условие закоментировать-то всё в порядке. То есть ошибка где-то в нём, как я подозреваю из-за переноса слов и букв одного слова на другую строку...
Просто у меня в скрипте на мининг идёт проверка на последнее сообщение журнала:
if (uo.LastMessage()=="Where do you want to use the Rose pickaxe crafted by Tomas") ...(условий на 4 строчки скрипта) OR (uo.LastMessage()=="You must wait to perform another action") OR (uo.LastMessage()=="You loosen some rocks but fail to find any useable ore.") then
при попытке запустить скрипт с такой "строкой =)" выдаёт ошибку в последней строке (перенесённого текста) Parse Error. Если условие закоментировать-то всё в порядке. То есть ошибка где-то в нём, как я подозреваю из-за переноса слов и букв одного слова на другую строку...
if (uo.LastMessage()=="Where do you want to use the Rose pickaxe crafted by Tomas") OR (uo.LastMessage()=="Where do you want to use the Rose pickaxe?") OR (uo.LastMessage()=="Tomas: You have hidden yourself well") OR (uo.LastMessage()=="You put the iron ores in your pack.") OR (uo.LastMessage()=="You put the iron ore in your pack.") OR (uo.LastMessage()=="You put the Stone ores in your pack.") OR (uo.LastMessage()=="You put the Stone ore in your pack.") OR (uo.LastMessage()=="You put the Clay ores in your pack.") OR (uo.LastMessage()=="You put the Clay ore in your pack.") OR (uo.LastMessage()=="You put the Rusty ores in your pack.") OR (uo.LastMessage()=="You put the Rusty ore in your pack.") OR (uo.LastMessage()=="You put the Old Copper ores in your pack.") OR (uo.LastMessage()=="You put the Old Copper ore in your pack.") OR (uo.LastMessage()=="You put the Dull Copper ores in your pack.") OR (uo.LastMessage()=="You put the Dull Copper ore in your pack.") OR (uo.LastMessage()=="You put the Bronze ores in your pack.") OR (uo.LastMessage()=="You put the Bronze ore in your pack.") OR (uo.LastMessage()=="You put the Sandstone ores in your pack.") OR (uo.LastMessage()=="You put the Sandstone ore in your pack.") OR (uo.LastMessage()=="You put the Marble ores in your pack.") OR (uo.LastMessage()=="You put the Marble ore in your pack.") OR (uo.LastMessage()=="You put the Copper ores in your pack.") OR (uo.LastMessage()=="You put the Copper ore in your pack.") OR (uo.LastMessage()=="You put the Rose ores in your pack.") OR (uo.LastMessage()=="You put the Rose ore in your pack.") OR (uo.LastMessage()=="You put the Shadow ores in your pack.") OR (uo.LastMessage()=="You put the Shadow ore in your pack.") OR (uo.LastMessage()=="You put the Silver ores in your pack.") OR (uo.LastMessage()=="You put the Silver ore in your pack.") OR (uo.LastMessage()=="You put the Golden ores in your pack.") OR (uo.LastMessage()=="You put the Golden ore in your pack.") OR (uo.LastMessage()=="You loosen some rocks but fail to find any useable ore.") OR (uo.LastMessage()=="You put the Agapite ores in your pack.") OR (uo.LastMessage()=="You put the Agapite ore in your pack.") OR (uo.LastMessage()=="You put the Blood Rock ores in your pack.") OR (uo.LastMessage()=="You put the Blood Rock ore in your pack.") OR (uo.LastMessage()=="You put the Verite ore in your pack.") OR (uo.LastMessage()=="You put the Verite ores in your pack.") OR (uo.LastMessage()=="You put the Valorite ore in your pack.") OR (uo.LastMessage()=="You put the Valorite ores in your pack.") OR (uo.LastMessage()=="You are starving") OR (uo.LastMessage()=="") OR (uo.LastMessage()=="You are hungry") OR (uo.LastMessage()=="You put the Mytheril ore in your pack.") OR (uo.LastMessage()=="You put the Mytheril ores in your pack.") OR (uo.LastMessage()=="You put the Lava ore in your pack.") OR (uo.LastMessage()=="You put the Lava ores in your pack.") OR (uo.LastMessage()=="World save has been initiated.") OR (uo.LastMessage()=="Try mining in rock.") OR (uo.LastMessage()=="Server is being PAUSED for Resync.") OR (uo.LastMessage()=="Resync Complete!") OR (uo.LastMessage()=="You put the Black Rock ore in your pack.") OR (uo.LastMessage()=="You put the Black Rock ores in your pack.") OR (uo.LastMessage()=="You put the Crystal ore in your pack.") OR (uo.LastMessage()=="You have been revealed") OR (uo.LastMessage()=="Giant Spider") (uo.LastMessage()=="You put the Crystall ores in your pack.") OR (uo.LastMessage()=="There is no ore here to mine.") OR (uo.LastMessage()=="You are starving.") OR (uo.LastMessage()=="Tomas: Kal Ort Por ") OR (uo.LastMessage()=="You enter a meditative trance.") OR (uo.LastMessage()=="You are very hungry") OR (uo.LastMessage()=="Tomas: You have hidden yourself well") OR (uo.LastMessage()=="Hind") OR (uo.LastMessage()=="You must wait to perform another action") OR (uo.LastMessage()=="You loosen some rocks but fail to find any useable ore.") then
а с головой ты точно дружен???
if uo.injournal("Where do|You put the|You|Resync|rock|revealed|no ore|Ort|trance|very|hidden|Hind") then
uo.deletejournal()
...
end if
shnur wrote:Хм...осмысляет =)
А ещё, если использовать UO.LastMessage() можно ли использовать куски фраз так же как с UO.InJournal("You put"), или только фразы целиком??
uo.[yhlp_LastMessage] возвращает тебе текст. Оператора частичного сравнения двух текстов нет.
shnur wrote:А через такие разделители можно писать, или ты для сокращения так??
начиная с некоторой версии через вертикальную черту.
для более старых версий - та же бодяга через OR, но всё равно она будет на порядок короче твоего паровоза
if UO.InJournaL("You loosen") OR UO.InJournaL("no ore hire to mine") OR UO.InJournaL("hide") OR UO.InJournaL("Spider") OR UO.InJournaL("hidden") OR UO.InJournaL("Ort") OR UO.InJournaL("fizzle") OR UO.InJournaL("Tipok") OR UO.InJournaL("rocks") OR UO.InJournaL("You put") OR UO.InJournaL("Resync") OR UO.InJournaL("World save") OR UO.InJournaL("revealed") OR UO.InJournaL("You must") OR UO.InJournaL("You are") OR UO.InJournaL("Try") OR UO.InJournaL("Where do") OR UO.InJournaL("trance") OR UO.InJournaL("rune") then
Вот такая строка и вот такая
if UO.InJournaL("You loosen|There is no|Hide|Spider|hidden|Ort|fizzle|Tipok|rocks|You put|Resync|World save|revealed|You must|You are|Try|Where do|trance|rune") then
не выдают ошибок, но и условие не проверяется...
Вот такая строка и вот такая
if UO.InJournaL("You loosen|There is no|Hide|Spider|hidden|Ort|fizzle|Tipok|rocks|You put|Resync|World save|revealed|You must|You are|Try|Where do|trance|rune") then
не выдают ошибок, но и условие не проверяется...