1

Тема: Несколько условий

Всех приветствую.
Есть такой скрипт


Loop
{
	loop, read, D:\logs\console.log
	{
		if A_LoopReadLine contains AFK
			
loop,1
{
SendMessage, 0x50,, 0x4090409,, A 
Sleep 100 
SendInput, pkick    5.5
Send {ctrl}{Left}{Left}{Left}{Left}{Left}
goto, 123
}
	}
	}
return
F2:: pause
123:
FileOpen("D:\logs\console.log", "w").Close()
Reload
return

Он прекрасно функционирует, так как мне нужно.
Задача состоит в том, чтобы, выполнялись много условий если находилась текст.
К примеру.
Нашёл текст с AFK одно действие.
Нашёл строчку со словом Привет, другое действие.
Я знаю что это возможно, но не знаю как это реализовать.
Пробовал с else получилось, но при создании 3 else уже не работало.
Люди, пожалуйста помогите.

2 (изменено: __Михаил__, 2021-05-17 17:58:43)

Re: Несколько условий

Пример, как использовать If-Else:

I := 0
Return

F2::
I++

If (I = 1){
 MsgBox, Первое действие
 Return
}
Else If (I = 2){
 MsgBox, Второе действие
 Return
}
Else If (I = 3){
 MsgBox, Третье действие
 Return
}
Else
 MsgBox, Сброс
 I := 0
Return

Если нужно проверить строку:

I= 
Return

F2::
I .= 1

If (I = "1"){
 MsgBox, Первое действие
 Return
}
Else If (I = "11"){
 MsgBox, Второе действие
 Return
}
Else If (I = "111"){
 MsgBox, Третье действие
 Return
}
Else
 MsgBox, Сброс
 I = 
Return
Win10x64, AHK v1.1.37.01 (Unicode 64-bit) | AHK-Wiki | Переменные и выражения | RegEx101

3 (изменено: Q1x, 2021-05-17 19:05:16)

Re: Несколько условий

__Михаил__ Не совсем понимаю, как использовать в своём коде.

4

Re: Несколько условий

Q1x, не подскажете, зачем вы ради одной фразы цитируете предыдущий многострочный пост целиком?

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

5

Re: Несколько условий

Не знаю, как тут упомянуть человека. Поэтому цитировал.

6

Re: Несколько условий

Q1x пишет:

Нашёл текст с AFK одно действие.
Нашёл строчку со словом Привет, другое действие.

По-моему всё легко подставить в свой код:

If (A_LoopRedLine = "AFK")
 ...действие...
Else If (A_LoopRedLine = "Привет")
 ...действие...
Win10x64, AHK v1.1.37.01 (Unicode 64-bit) | AHK-Wiki | Переменные и выражения | RegEx101

7

Re: Несколько условий

__Михаил__, не торопитесь с ответами, пока не будут исправлены ошибки в оформлении поста.
Q1x, у нас на форуме есть кнопки «Вставить ник» и «Ответить». Пользуйтесь ими. Также в конце предложений необходимо ставить точки. Ознакомьтесь внимательно с правилами форума и исправьте все свои посты.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

8 (изменено: Q1x, 2021-05-17 19:07:06)

Re: Несколько условий

__Михаил__
Выдаёт ошибку, пробовал по разному применять.
https://imgur.com/a/jOGAQWb

9

Re: Несколько условий

Q1x, игнорирование требований модератора может привести к неприятным последствиям.
Ответы в теме запрещены до исправления ошибок.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

10

Re: Несколько условий

teadrinker
Исправил.

11

Re: Несколько условий

Спасибо!

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

12 (изменено: Q1x, 2021-05-17 19:13:50)

Re: Несколько условий

В общем, получилось так, но, не работает 3 else.


Loop
{
	loop, read, D:\MTA NRP\mta\logs\console.log
	{
		if A_LoopReadLine contains Pizdec
			
loop,1
{
SendMessage, 0x50,, 0x4090409,, A 
Sleep 100
SendInput, pmute    5.5
Send {ctrl}{Left}{Left}{Left}{Left}{Left}
goto, 123
}
					else
					{
					if A_LoopReadLine contains ret
						SendMessage, 0x50,, 0x4090409,, A 
					Sleep 100
					SendInput, kick    5.5
					Send {ctrl}{Left}{Left}{Left}{Left}{Left}
					goto, 123
					}
else ; тут уже не работает
{
if A_LoopReadLine contains tyu
	SendMessage, 0x50,, 0x4090409,, A
Sleep 100
SendInput, rty    5.5
Send {ctrl}{Left}{Left}{Left}{Left}{Left}
goto, 123
}
	}
}
	
return
F2:: pause
123:
FileOpen("D:\MTA NRP\mta\logs\console.log", "w").Close()
Reload
return

13 (изменено: __Михаил__, 2021-05-17 20:01:07)

Re: Несколько условий

Без форматирование строк - лень разбираться.
Все условия 'If' и 'Else' нужно расставлять на одинаковом расстоянии, если у 'If' 2 Таба, то почему у 'Else' их 5?
Пример был выше, что сложного использовать предложенную конструкцию?
1) 'If' (Если) - является началом проверок.
2) 'Else' (Иначе) - завершением после любого последнего 'If'.

'If Else' (Или в AHK) - ставится между 1 и 2, сколько угодно раз.

Win10x64, AHK v1.1.37.01 (Unicode 64-bit) | AHK-Wiki | Переменные и выражения | RegEx101