[Помощь]: Проверка текста - Форум Cheat-Master.ru

  • Страница 1 из 1
  • 1
Модератор форума: tumkin, Junger  
Форум » Программирование » AHK Программирование » [Помощь]: Проверка текста
[Помощь]: Проверка текста
shamanchik9991Дата: Среда, 28.09.2016, 17:08 | Сообщение # 1
Любитель
Группа: Пользователи
Сообщений: 32
Статус: Offline
Каким образом сделать проверку для /try (Удачно/Неудачно), и при выпадение одного из вариантов, одно значение, а при выпадении другого, соответственно другое.
Вот текст из чатлога:
Код
[01:01:01] Nick_Name увидел, как на экране появился код системы {FF6600}| Неудачно

[01:01:01] Nick_Name увидел, как на экране появился код системы {66CC00}| Удачно


Сообщение отредактировал shamanchik9991 - Среда, 28.09.2016, 17:11
Последние товары с игрового магазина:
Найти еще что-нибудь в магазине:
McFree_Дата: Среда, 28.09.2016, 18:10 | Сообщение # 2
В рядах СМ.
Группа: Заблокированные
Сообщений: 344
Статус: Offline
через регулярное выражение
Код
GetChatLine(0,Str)

if (RegexMatch(Str, " Nick_Name увидел, как на экране появился код системы {66CC00}| (.*)", Res)) {
if (Res1 == "Удачно") {
; действие при удачном выпадении
} else if (Res1 == "Неудачно") {
; действие при неудачном выпадении
}
}


Помогаю новичкам!
По всем вопросам в ЛС!
Последние товары с игрового магазина:
Найти еще что-нибудь в магазине:
shamanchik9991Дата: Четверг, 29.09.2016, 12:43 | Сообщение # 3
Любитель
Группа: Пользователи
Сообщений: 32
Статус: Offline
Цитата McFree_ ()
через регулярное выражение
Код
GetChatLine(0,Str)

if (RegexMatch(Str, " Nick_Name увидел, как на экране появился код системы {66CC00}| (.*)", Res)) {
if (Res1 == "Удачно") {
; действие при удачном выпадении
} else if (Res1 == "Неудачно") {
; действие при неудачном выпадении
}
}

Суть в том, что не я один буду использовать данный скрипт, по этому вводить ник в скрипт не нужно. Я убрал из строчки ник, но скрипт не выполняет команду
UPD: Решил оставить ник в этой строчке, и попробовать еще раз. Он не выполняет команду. Может я что-то делаю не так? Может из-за timestamp?
Часть кода:
Код
vzlom:
SendInput, {F6}/do На экране быстро быстро проскакивают строки кода{Enter}
Sleep 2000
SendInput, {F6}/do На экране быстро быстро проскакивают строки кода{Enter}
Sleep 2000
SendInput, {F6}/do Код на экране остановился{Enter}
Sleep 1000
SendInput, {F6}/try увидел, как на экране появился код системы{Enter}

GetChatLine(0,Str)

if (RegexMatch(Str, "Мой_Ник увидел, как на экране появился код системы | (.*)", Res)) {
if (Res1 == "Удачно") {
SendInput, {F6}/do Код от системы: ***********************{Enter}
Sleep 3000
SendInput, {F6}/me ввёл команду для резервации кода на накопитель{Enter}
} else if (Res1 == "Неудачно") {
SendInput, {F6}/me ввел команду заного, после чего нажал "ENTER"
goto vzlom
}
}
return


Сообщение отредактировал shamanchik9991 - Четверг, 29.09.2016, 12:50
Последние товары с игрового магазина:
Найти еще что-нибудь в магазине:
McFree_Дата: Четверг, 29.09.2016, 16:51 | Сообщение # 4
В рядах СМ.
Группа: Заблокированные
Сообщений: 344
Статус: Offline
просто правильно составь регулярное выражение и все заработает

Помогаю новичкам!
По всем вопросам в ЛС!
Последние товары с игрового магазина:
Найти еще что-нибудь в магазине:
RellaXДата: Четверг, 29.09.2016, 18:50 | Сообщение # 5
Боец
Группа: Заблокированные
Сообщений: 294
Статус: Offline
Цитата
if (RegexMatch(Str, "(.*) увидел, как на экране появился код системы (.*)", Res)) {
if (Res2 == "{66CC00}| Удачно") {
SendInput, {F6}/do Код от системы: ***********************{Enter}
Sleep 3000
SendInput, {F6}/me ввёл команду для резервации кода на накопитель{Enter}
} else if (Res2 == "{FF6600}| Неудачно") {
SendInput, {F6}/me ввел команду заного, после чего нажал "ENTER"
goto vzlom
}
}
return


https://vk.com/zatkap

Сообщение отредактировал RellaX - Четверг, 29.09.2016, 18:51
Последние товары с игрового магазина:
Найти еще что-нибудь в магазине:
MrGProДата: Четверг, 29.09.2016, 22:49 | Сообщение # 6
Боец
Группа: Пользователи
Сообщений: 125
Статус: Offline
Рекомендую добавить проверку ника ;~ -знак комментария
Код
;~ GetChatLine(0, Str) - не будет работать если файл (file) чатлога будет например на диске C://

;~ RegRead, NickName, HKEY_CURRENT_USER, SoftWare\SAMP, PlayerName
;~ или
;~ NickName := getUsername()

GetChatLine(0, Output)
if (RegexMatch(Output, "" NickName " увидел, как на экране появился код системы [{(.*)}\][|]\s(.*)", Res))
{
if (Res1 == "Удачно")
{
SendInput, {F6}/do Код от системы: ***********************{Enter}
Sleep 2000
SendInput, {F6}/me ввёл команду для резервации кода на накопитель{Enter}
}
if (Res1 == "Неудачно")
{
SendInput, {F6}/me ввел команду заново, после чего нажал "ENTER"
goto vzlom
}
}
return

;~ Вырезанная Функция SampUDF которая читает файл chatlog
GetChatLine(Line, ByRef Output, timestamp=0, color=0){
    chatindex := 0
    FileRead, file, %A_MyDocuments%\GTA San Andreas User Files\SAMP\chatlog.txt ; <== если файл chatlog создаться не тут то не работает
    loop, Parse, file, `n, `r
    {
  if(A_LoopField)
   chatindex := A_Index
    }
    loop, Parse, file, `n, `r
    {
  if(A_Index = chatindex - line){
   output := A_LoopField
   break
  }
    }
    file := ""
    if(!timestamp)
  output := RegExReplace(output, "U)^\[\d{2}:\d{2}:\d{2}\]")
    if(!color)
  output := RegExReplace(output, "Ui)\{[a-f0-9]{6}\}")
    return
}


Добавлено (29.09.2016, 22:49)
---------------------------------------------
Цитата RellaX ()
if (RegexMatch(Str, "(.*) увидел, как на экране появился код системы (.*)", Res)) {
if (Res2 == "{66CC00}| Удачно") {


RellaX, серьезно (Res2 == "{66CC00}| Удачно")ничего что RegexMatch принимает выражение в формате{min,max}- если{66CC00} - возврат пустого значения


Тебе помогли не забывай про благодарность >> тыкни репутацию
--------------------------------------------------------------------------------------------


Сообщение отредактировал MrGPro - Четверг, 29.09.2016, 22:54
Последние товары с игрового магазина:
Найти еще что-нибудь в магазине:
shamanchik9991Дата: Пятница, 30.09.2016, 12:50 | Сообщение # 7
Любитель
Группа: Пользователи
Сообщений: 32
Статус: Offline
Цитата MrGPro ()
Рекомендую добавить проверку ника ;~ -знак комментария
Код
;~ GetChatLine(0, Str) - не будет работать если файл (file) чатлога будет например на диске C://

;~ RegRead, NickName, HKEY_CURRENT_USER, SoftWare\SAMP, PlayerName
;~ или
;~ NickName := getUsername()

GetChatLine(0, Output)
if (RegexMatch(Output, "" NickName " увидел, как на экране появился код системы [{(.*)}\][|]\s(.*)", Res))
{
if (Res1 == "Удачно")
{
SendInput, {F6}/do Код от системы: ***********************{Enter}
Sleep 2000
SendInput, {F6}/me ввёл команду для резервации кода на накопитель{Enter}
}
if (Res1 == "Неудачно")
{
SendInput, {F6}/me ввел команду заново, после чего нажал "ENTER"
goto vzlom
}
}
return

;~ Вырезанная Функция SampUDF которая читает файл chatlog
GetChatLine(Line, ByRef Output, timestamp=0, color=0){
    chatindex := 0
    FileRead, file, %A_MyDocuments%\GTA San Andreas User Files\SAMP\chatlog.txt ; <== если файл chatlog создаться не тут то не работает
    loop, Parse, file, `n, `r
    {
  if(A_LoopField)
   chatindex := A_Index
    }
    loop, Parse, file, `n, `r
    {
  if(A_Index = chatindex - line){
   output := A_LoopField
   break
  }
    }
    file := ""
    if(!timestamp)
  output := RegExReplace(output, "U)^\[\d{2}:\d{2}:\d{2}\]")
    if(!color)
  output := RegExReplace(output, "Ui)\{[a-f0-9]{6}\}")
    return
}

Попробовал вставить код, выдал ошибку по строчке "GetChatLine(Line, ByRef Output, timestamp=0, color=0){".
Так же попытался вставить код человека выше:
Цитата RellaX ()
if (RegexMatch(Str, "(.*) увидел, как на экране появился код системы (.*)", Res)) {
if (Res2 == "{66CC00}| Удачно") {
SendInput, {F6}/do Код от системы: ***********************{Enter}
Sleep 3000
SendInput, {F6}/me ввёл команду для резервации кода на накопитель{Enter}
} else if (Res2 == "{FF6600}| Неудачно") {
SendInput, {F6}/me ввел команду заного, после чего нажал "ENTER"
goto vzlom
}
}
return

Все равно не выводит
Последние товары с игрового магазина:
Найти еще что-нибудь в магазине:
MrGProДата: Пятница, 30.09.2016, 14:34 | Сообщение # 8
Боец
Группа: Пользователи
Сообщений: 125
Статус: Offline
Цитата shamanchik9991 ()
Попробовал вставить код, выдал ошибку по строчке "GetChatLine(Line, ByRef Output, timestamp=0, color=0){".


Ругается потому что GetChatLine(Line, ByRef Output, timestamp=0, color=0)- уже существует то есть он подключен черезSamp UDf это я для наглядности вырезал данную функцию чтобы не подключать весь UDF

Читать надо:
Код
;~ Вырезанная Функция SampUDF которая читает файл chatlog
GetChatLine(Line, ByRef Output, timestamp=0, color=0){


Насчёт этого:
Цитата shamanchik9991 ()
Так же попытался вставить код человека выше:
Цитата RellaX ()
if (RegexMatch(Str, "(.*) увидел, как на экране появился код системы (.*)", Res)) {
if (Res2 == "{66CC00}| Удачно") {
SendInput, {F6}/do Код от системы: ***********************{Enter}
Sleep 3000
SendInput, {F6}/me ввёл команду для резервации кода на накопитель{Enter}
} else if (Res2 == "{FF6600}| Неудачно") {
SendInput, {F6}/me ввел команду заного, после чего нажал "ENTER"
goto vzlom
}
}
return

Он не правильно сделал Res2 == "{66CC00}| Удачно" и Res2 == "{FF6600}| Неудачно" , эти закрывающие теги {66CC00}- возвращают Null(пустое,чистое) значение если между ними стоит например цветовой тег 66CC00, а если внутри сделано так {min, max} то вернет значение в скобках от min и до max

>> Следовательно Res2 == "| Удачно" и Res2 == "| Неудачно"


Тебе помогли не забывай про благодарность >> тыкни репутацию
--------------------------------------------------------------------------------------------


Сообщение отредактировал MrGPro - Пятница, 30.09.2016, 14:50
Последние товары с игрового магазина:
Найти еще что-нибудь в магазине:
RellaXДата: Пятница, 30.09.2016, 23:50 | Сообщение # 9
Боец
Группа: Заблокированные
Сообщений: 294
Статус: Offline
MrGPro, Ок да, с этим я протупил т.к давно не юзал. Можно вообще не использовать текст не/удачно, а тупо код цвета в "{}"

https://vk.com/zatkap

Сообщение отредактировал RellaX - Пятница, 30.09.2016, 23:50
Последние товары с игрового магазина:
Найти еще что-нибудь в магазине:
Форум » Программирование » AHK Программирование » [Помощь]: Проверка текста
  • Страница 1 из 1
  • 1
Поиск:
Статистика Форума
Последнии темы Читаемые темы Лучшие пользователи Новые пользователи
VIPshot 1929265 несоответ... [POLTABLETKI_com]

[Заказ № 1929064 ] DevS ... [АК_47]

Заказ № 1928195 forse Нев... [АК_47]

[1929098], kia4596, не ва... [АК_47]

продавец восмстановил акк... [АК_47]

[Продажа] Сервера для ддо... [ded_moroz222]

Продажа Steam CS:GO 150 р... [PRID0NKA]

1928800 VladShumkin Невал... [Mr_AFkA]

✅✅✅ АКЦИЯ! ДЕШЕВЫЕ ВИРТЫ ... [Киндер_Сюрприз]

[Arizona Role Play] Списо... [dreamingfly]

Как оплатить имущество, е... [Excentic]

невалид почта от DevS [DevS]

[1]>[0.3z][RUS] S0beit modified by MishaN [10001]

[2]>Курилка [10000]

[3]>Поиск CLEO скриптов | Вопросы по клео скриптам [9988]

[4]>Флудильная [9936]

[5]>Курилка [9688]

[6]>Курилка [9614]

[7]>RakBot - Качай аккаунты не напрягаясь! [9602]

[8]>Общение читеров [CM] [9546]

[9]>S0beit - pr9n project for samp 0.3.7 [9490]

[10]>Часто задаваемые вопросы... [8223]

[11]>Скуплю Advance по 300р за 1кк и DIamond по 250р [7624]

[12]>Вопросы и ответы [6466]

[1]>АК_47 [31141]

[2]>GеNius [7067]

[3]>romka619 [5403]

[4]>[CM]Russel [5207]

[5]>[CM]AGRESSOR [4652]

[6]>Сэс [4430]

[7]>Snake_Firm [4377]

[8]>Artem_Buero [4182]

[9]>[CM]Durman [3271]

[10]>sky_Woker [2997]

[11]>iMaddy [2867]

[12]>[CM]Рафаэль [2768]

[13]>Sa1nteD [2692]

[14]>Ch0c0Cube [2453]

[15]>BY [2343]

VitalikFama) [22.05.2018|00:21]

NaZar4iK1234 [21.05.2018|23:49]

ddfsfdsfg [21.05.2018|23:12]

290900 [21.05.2018|23:09]

Maksimkaa2af [21.05.2018|23:05]

artemka1488228 [21.05.2018|22:57]

gdasgasdg [21.05.2018|22:47]

djviktor3 [21.05.2018|22:40]

pemop [21.05.2018|22:35]

playmaster1337228 [21.05.2018|22:35]

AnToXa23 [21.05.2018|22:32]

4lenKarto4ki [21.05.2018|22:03]

0662518665 [21.05.2018|21:56]

yegzhf002 [21.05.2018|21:55]

Vadim_Hott [21.05.2018|21:55]


CM Team © 2009-2018 Администрация не несёт ответственности за размещённые материалы. Условия пользования
Все материалы предоставлены в ознакомительных целях и администрация предлагает удалить их после ознакомления.

Положение о защите персональных данных на сайте, Пользовательское соглашение, Договор оказания услуг.