Синтаксис if

Ask for help

Moderators: Murderator+, Murderator

Post Reply
shnur
Posts: 20
Joined: 2004-06-30 07:01:21

Синтаксис if

Post by shnur »

Можно ли после условного оператора if операторы условия писать в столбик, например:

if
условие 1
условие 2
условие 3
...
условие n
then
оператор 1
оператор 2
оператор 3
...
оператор m
else
оператор 1
оператор 2
оператор 3
...
оператор k
end if

Вопрос жизни и смерти =)
Savage
Expert!
Posts: 1205
Joined: 2004-04-04 11:13:54
Location: Балаково, Саратовская обл.
Contact:

Post by Savage »

Ты это хотел получить?

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
shnur
Posts: 20
Joined: 2004-06-30 07:01:21

Post by shnur »

Ни то ни то
Я хотел спросить, можно ли записывать операторы условия не в строчку
if (условие 1) OR (условие 2) OR (условие 3) ...(условие n) then
а в столбик
if
условие 1
условие 2
условие 3
...
условие n
then
Savage
Expert!
Posts: 1205
Joined: 2004-04-04 11:13:54
Location: Балаково, Саратовская обл.
Contact:

Post by Savage »

Да можно символ \ спробелом перед ним - перевести на другою строку продолжение этой. Но автор говорит, что лучше не использовать.
shnur
Posts: 20
Joined: 2004-06-30 07:01:21

Post by shnur »

А поподробнее можно насчёт символа \ ??

Просто у меня в скрипте на мининг идёт проверка на последнее сообщение журнала:

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. Если условие закоментировать-то всё в порядке. То есть ошибка где-то в нём, как я подозреваю из-за переноса слов и букв одного слова на другую строку...
Yoko
Site Admin
Posts: 1964
Joined: 2004-04-03 16:49:38
Contact:

Post by Yoko »

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
Posts: 20
Joined: 2004-06-30 07:01:21

Post by shnur »

Хм...осмысляет =)

А ещё, если использовать UO.LastMessage() можно ли использовать куски фраз так же как с UO.InJournal("You put"), или только фразы целиком??
Savage
Expert!
Posts: 1205
Joined: 2004-04-04 11:13:54
Location: Балаково, Саратовская обл.
Contact:

Post by Savage »

Дословно: \ - продолжение строчки переходит на следующую, перед \ должен стоять пробел!!! Нельзя пихать в середину слова!!! Да и вообще, лучше не использовать.
shnur
Posts: 20
Joined: 2004-06-30 07:01:21

Post by shnur »

Yoko wrote:
а с головой ты точно дружен???

if uo.injournal("Where do|You put the|You|Resync|rock|revealed|no ore|Ort|trance|very|hidden|Hind") then
uo.deletejournal()
...
end if

Не всегда =)

А через такие разделители можно писать, или ты для сокращения так??
Yoko
Site Admin
Posts: 1964
Joined: 2004-04-03 16:49:38
Contact:

Post by Yoko »

shnur wrote:Хм...осмысляет =)

А ещё, если использовать UO.LastMessage() можно ли использовать куски фраз так же как с UO.InJournal("You put"), или только фразы целиком??


uo.[yhlp_LastMessage] возвращает тебе текст. Оператора частичного сравнения двух текстов нет.

shnur wrote:А через такие разделители можно писать, или ты для сокращения так??


начиная с некоторой версии через вертикальную черту.
для более старых версий - та же бодяга через OR, но всё равно она будет на порядок короче твоего паровоза
shnur
Posts: 20
Joined: 2004-06-30 07:01:21

Post by shnur »

501.22 Надеюсь подойдёт...
shnur
Posts: 20
Joined: 2004-06-30 07:01:21

Post by shnur »

Подскажите, а когда я делаю UO.DeleteJournal() в самом клиенте я увижу что он очистился, или только инжа среагирует??
Yoko
Site Admin
Posts: 1964
Joined: 2004-04-03 16:49:38
Contact:

Post by Yoko »

к клиентскому журналу инжектовский никакого отношения не имеет

,[yhlp_showjournal]
shnur
Posts: 20
Joined: 2004-06-30 07:01:21

Post by shnur »

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


не выдают ошибок, но и условие не проверяется...
Post Reply