1

Тема: SAMP: Взять данные с паспорта и вывести в чат

Доброго времени суток.

Показывают паспорт.
Текст из чат лога:

[00:08:36] -----------===[ PASSPORT ]===----------

[00:08:36]  Имя: Nick_Name

[00:08:36]  Возраст: 33   Телефон: 99999

[00:08:36]  Фракция: Армия ЛВ   Должность: Майор

[00:08:36]  Работа: Неизвестно   Разрешение на оружие: Есть

[00:08:36]  Преступлений: 227

[00:08:36]  Законопослушность: 100

[00:08:36] =============================

Надо сделать доклад:

/f в распоряжение части прибыл Майор Nick Name.

Кто может сделать скрипт что бы само брало информацию из чат лога?

Активация на "Alt+2".

За ранее спасибо.

2

Re: SAMP: Взять данные с паспорта и вывести в чат

ChatLog =
(
[00:08:36] -----------===[ PASSPORT ]===----------

[00:08:36]  Имя: Nick_Name

[00:08:36]  Возраст: 33   Телефон: 99999

[00:08:36]  Фракция: Армия ЛВ   Должность: Майор

[00:08:36]  Работа: Неизвестно   Разрешение на оружие: Есть

[00:08:36]  Преступлений: 227
[00:08:36]  Законопослушность: 100

[00:08:36] =============================
)
MsgBox, % "/f в распоряжение части прибыл " StrReplace(RegExReplace(ChatLog, "(*UCP).*Имя: (\w+)\b.+жность: ([А-я]+)\b.*", "$2 $1"), "_", " ") "."

На будущее: в заголовке вместо "AHK SAMP," пишите  "SAMP:" или  "[SAMP]", далее с заглавной буквы. Писать в этом разделе "AHK" не требуется. Точка на конце также не ставится. Исправлено.

3

Re: SAMP: Взять данные с паспорта и вывести в чат

Качаешь udf для samp. Кладешь в одной папке со скриптом.
Ссылка: https://yadi.sk/d/D2ADMIzctwhgZ


#include SAMP-UDF-Developer.ahk

~vkA4 & ~vk32:: ;alt+2
myname := getUsername() ; считываем свое имя
SendChat("/f в распоряжение части прибыл Майор " myname ".") ; отправляем в чат
return

4

Re: SAMP: Взять данные с паспорта и вывести в чат

Flasher,  Должность может быть и мл.сержант, прапорщик, лейтинанант и тп.

5 (изменено: belyankin12, 2017-02-09 12:47:48)

Re: SAMP: Взять данные с паспорта и вывести в чат


global path_log := A_MyDocuments "\GTA San Andreas User Files\SAMP\chatlog.txt"

!2::
log := {str:"",find:0,num:0}    ,    log.str := []

        Loop, read, %path_log%
        log.str.Insert(A_LoopReadLine)    ,log.num := A_Index

		loop 30	
	    if RegExMatch(     log.str[log.num + 1 - A_Index]
            ,"\[(.*)\]  Имя: (.*)_(.*)"
            , name) and (log.find:=log.num + 1 - A_Index)
                break
		loop 30	
	    if RegExMatch(     log.str[log.num + 1 - A_Index]
            ,"\[(.*)\]  Фракция: Армия ЛВ   Должность: (.*)"
            , zvanie) and (log.find:=log.num + 1 - A_Index)
                break
		if (name2 != "") and (zvanie2 != "") {
			sendinput, {F6}/f в распоряжение части прибыл %zvanie2% %name2% %name3%.{Enter}
		} else {
			msgbox, Error
		}
return

6

Re: SAMP: Взять данные с паспорта и вывести в чат

ataks63rus
Не обратил внимания на должность. Исправил.

7

Re: SAMP: Взять данные с паспорта и вывести в чат

Dworkin, Мне надо что бы читало не моё имя а из "chatlog.txt" и звание тоже.

8

Re: SAMP: Взять данные с паспорта и вывести в чат

Flasher, Не то, вот есть что то подобное кода.


numpad2::
SendChat("/get guns 1")
sleep 1200
File = %A_MyDocuments%\GTA San Andreas User Files\SAMP\chatlog.txt
FileRead, Chatlog, %File%
RegExMatch(Chatlog, "s).*\[(..):(..):(..)\]", pr)
RegExMatch(Chatlog, "s).*\[(..):(..):(..)\]\s\sУ\sвас\s(.*?)\/500\sматериалов\sс\sсобой", name)
if ((((name1*3600+name2*60+name3+2)>(pr1*3600+pr2*60+pr3)) and ((name1*3600+name2*60+name3)<(pr1*3600+pr2*60+pr3+2))) or (((name1-24)*3600+name2*60+name3+2)>(pr1*3600+pr2*60+pr3)))
{
kolvo:=498-name4
SendChat("/get guns " kolvo)
}
return

Надо что бы получилось проимерно так:


numpad2::
File = %A_MyDocuments%\GTA San Andreas User Files\SAMP\chatlog.txt
FileRead, Chatlog, %File%
RegExMatch(Chatlog, "s).*\[(..):(..):(..)\]  Имя: (.*)_(.*)", name)
RegExMatch(Chatlog, "s).*\[(..):(..):(..)\] Фракция: Армия ЛВ   Должность: (.*)",zv)

SendChat("/f в распоряжения части прибыл " zv " " name ")

return

9

Re: SAMP: Взять данные с паспорта и вывести в чат

ataks63rus
Т.е. не то? Я показываю как из текста создать строку. А что там в играх, я без понятия.

numpad2::
FileRead, Chatlog, %A_MyDocuments%\GTA San Andreas User Files\SAMP\chatlog.txt
SendChat("/f в распоряжение части прибыл " StrReplace(RegExReplace(Chatlog, "(*UCP).*Имя: (\w+)\b.+жность: ([А-я]+)\b.*", "$2 $1"), "_", " ") ".")
Return

10

Re: SAMP: Взять данные с паспорта и вывести в чат

ataks63rus, посмотри уже мой вариант >_<, у меня все работает.

11 (изменено: ataks63rus, 2017-02-10 11:03:06)

Re: SAMP: Взять данные с паспорта и вывести в чат

belyankin12, О да спасибо, отлично работает.