[Помощь]: Проверка текста - Форум - Читерский Форум | Читы для игр SAMP,CS:GO,GTA5,PUBG,Minecraft,CoD,Warface,WoT | Магазин аккаунтов SAMP-RP,Advance-RP,Diamond-RP,логов samp,Steam,WoT,Warface,PUBG,GTA5

Страница 1 из 11
Модератор форума: tumkin, Junger 
Форум » Программирование » AHK Программирование » [Помощь]: Проверка текста
[Помощь]: Проверка текста
shamanchik9991Дата: Среда, 28.09.2016, 17:08 | Сообщение # 1
Любитель
Сообщений: 31
Статус: 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
В рядах СМ.
Сообщений: 348
Статус: Offline
через регулярное выражение
Код
GetChatLine(0,Str)

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


Помогаю новичкам!
По всем вопросам в ЛС!
Последние товары с игрового магазина:
Найти еще что-нибудь в магазине:
shamanchik9991Дата: Четверг, 29.09.2016, 12:43 | Сообщение # 3
Любитель
Сообщений: 31
Статус: 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
В рядах СМ.
Сообщений: 348
Статус: Offline
просто правильно составь регулярное выражение и все заработает

Помогаю новичкам!
По всем вопросам в ЛС!
Последние товары с игрового магазина:
Найти еще что-нибудь в магазине:
RellaXДата: Четверг, 29.09.2016, 18:50 | Сообщение # 5
Боец
Сообщений: 295
Статус: 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
Любитель
Сообщений: 31
Статус: 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
Боец
Сообщений: 295
Статус: Offline
MrGPro, Ок да, с этим я протупил т.к давно не юзал. Можно вообще не использовать текст не/удачно, а тупо код цвета в "{}"

https://vk.com/zatkap

Сообщение отредактировал RellaX - Пятница, 30.09.2016, 23:50
Последние товары с игрового магазина:
Найти еще что-нибудь в магазине:
Форум » Программирование » AHK Программирование » [Помощь]: Проверка текста
Страница 1 из 11
Поиск:
Статистика Форума
Последнии темы Читаемые темы Лучшие пользователи Новые пользователи
СКУПКА/ ПРОДАЖА STEAM. [ВАШ_ОТЕЦ_ЯЖЕПАТЬ]

Статистика нарушений разд... [La_Mettrie]

▶✪ADVANCE/EVOLVE RP✪◀ █ Р... [SteamBuk]

[Продажа]ТОП ЛОГИ SA:MP п... [BrandStore]

Поиск LUA скриптов |... [Alowir]

▲▲▲▲▲▲ ✭ [Samp-Rp]✭▲▲▲▲▲▲... [La_Mettrie]

Продажа виртуальной валют... [MGrove]

⛔ SVL ВИРТЫ | ОНЛАЙН... [PashaDobrii]

[1826961], CM_Xrom, не пр... [Stephen_Capone]

Продам личный аккаунт на ... [of_course]

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

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

[3]>Общение читеров [CM] [9991]

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

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

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

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

[8]>S0beit - pr9n project for samp 0.3.7 [9481]

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

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

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

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

[1]>АК_47 [28660]

[2]>GеNius [6742]

[3]>romka619 [5379]

[4]>[CM]Russel [5049]

[5]>[CM]AGRESSOR [4656]

[6]>Сэс [4430]

[7]>Snake_Firm [4293]

[8]>Artem_Buero [4144]

[9]>[CM]Durman [3269]

[10]>sky_Woker [2997]

[11]>iMaddy [2871]

[12]>Sa1nteD [2663]

[13]>Logan™ [2662]

[14]>Ch0c0Cube [2457]

[15]>[CM]Рафаэль [2360]

deepos [16.12.2017|19:57]

Лосось_228 [16.12.2017|19:56]

s4sh [16.12.2017|19:56]

Vovan4eg1231231 [16.12.2017|19:55]

Nikssg [16.12.2017|19:47]

alex20025 [16.12.2017|19:45]

tipok228007 [16.12.2017|19:44]

evgexa08 [16.12.2017|19:38]

Tawer1231 [16.12.2017|19:33]

JUF[58] [16.12.2017|19:29]

GayClub [16.12.2017|19:25]

MicroPro [16.12.2017|19:22]

DydinaShun [16.12.2017|19:22]

VaLyARiZzo [16.12.2017|19:21]

mastikatheone [16.12.2017|19:20]


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

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