Запись текста в файл/чтение файла

Общие вопросы по OpenKore обсуждаются здесь. Можно сказать, что это - основной раздел форума.
Возник вопрос? Вам сюда.

Модератор: 4epT

Правила форума
Все вопросы по OK не касающиеся плагинов и макросов публикуются в этом разделе.
Перед тем как что то писать, пожалуйста, удостоверьтесь что данная тема не поднималась, вы полностью изучили мануалы по конфигурационным файлам бота и не нашли там решения.
Antvg
Начинающий
Сообщения: 43
Зарегистрирован: Чт дек 14, 2006 7:36 am

Запись текста в файл/чтение файла

Сообщение Antvg »

Извиняюсь если вопрос поднимался, но...
Возможно ли определенный текст записывать в файл и соответсвенно из него выводить?
К примеру, боту в пм приходит месага "т1", в файл "*.txt" записывается строка "т1", через 15 минут приходит месага "т2" и строка "т2" пишется в тот же самый файл "*.txt", после чего через N времени, бот выводит содерджимое файла *.txt?
dvdc
Бывалый
Сообщения: 556
Зарегистрирован: Вс ноя 05, 2006 1:43 pm
Контактная информация:

Сообщение dvdc »

давно сам мечтаю о такой функции, надеюсь что кто-нибудь это рано или поздно осущетсвит, или мне придётся самому это делать :)))

но... я бы сделал так.
во-первых, в конфиге я бы сделал несколько новых пустых переменных. скажем:
Var1, Var2, Var3, и т.д. смотря сколько строчек нужно. далее, есть автомакрос, который вызывает загрузку переменных:
$var1 = @config (Var1).

далее работаем опять же с автомакросом. если мы уже имеем достаточное количество переменных (не знаю как проверить), или мы получаем комманду определённую (или условие), то выводим эти переменные куда-нибудь. в приват, в паблик, в гильдчат, вобщем куда угодно )
если меняем переменные - не забываем сделать релиз автомакроса-загрузчика переменных.

на этом примере работает мой автомакрос нуп-вор-рог/син ) переменные я использую для создания "контрольных" точек, чтобы бот автоматически сам определял своё состояние, и далее по макросам выбирал своё поведение: пойдёт он бить жуков, или варить кофе, или поедет на метро куда-нибудь на Шаболовскую... )))))))))))))
проблем никогда не возникало с такой штукой, и работает слава богу безотказно. одно но: чем больше макрос и чем больше условий с переменными, тем сложнее за всем уследить.
Аватара пользователя
Click
Разработчик
Сообщения: 1564
Зарегистрирован: Сб ноя 04, 2006 11:30 pm
Сервер RO:: clickro.sytes.net
Откуда: Великий Новгород
Контактная информация:

Сообщение Click »

а логи вам чего не нравятся?
dvdc
Бывалый
Сообщения: 556
Зарегистрирован: Вс ноя 05, 2006 1:43 pm
Контактная информация:

Сообщение dvdc »

из лога можно читать??
эмм... или ты просто про то, что в логах могут быть строчки? :)
Antvg
Начинающий
Сообщения: 43
Зарегистрирован: Чт дек 14, 2006 7:36 am

Сообщение Antvg »

У меня проблема в том, что неизвестно сколько этих "т" будет.
Я собирался описать такой момент: бот пишет другому в приват имя игрока, потом другое имя, потом еще имя, бот все это записывает в файл, если к этому(принимающему) боту подходит игрок с ником который есть в списке, бот говорит одно, если нету в списке - другое.

btw Возник вопрос, можно ли превратить в переменную значение $.lastpmMsg?
Тоесть при получеии в приват сообщения "т1" сразу создать переменную именем т1?
Но это решение временное и система испортится при ближащем ресете(
dvdc
Бывалый
Сообщения: 556
Зарегистрирован: Вс ноя 05, 2006 1:43 pm
Контактная информация:

Сообщение dvdc »

вряд ли у тебя будет больше 200 "т" ) поэтому особо мучиться даже не придётся )
Аватара пользователя
4epT
macro-маньячина
Сообщения: 2792
Зарегистрирован: Чт дек 21, 2006 1:23 pm
Сервер RO:: 4game
Discord: ya4ept#8494
Контактная информация:

Сообщение 4epT »

Antvg, "$.lastpmMsg" - это уже переменная :)

В доке же написано "Специальные переменные"

Если не хочешь чтобы они исчезали (обнулялись), то пиши их в конфиг
Быстро и качественно напишу конфиг (макрос)! Стучи!
¤ Свежий бот ¤ Config checker ¤ Manual ¤
Изображение
Изображение
Antvg
Начинающий
Сообщения: 43
Зарегистрирован: Чт дек 14, 2006 7:36 am

Сообщение Antvg »

Я понимаю, и про то и спрашиваю, можно ли сразу получив пмку "т1" создать переменную т1, получив через минуту пмку "т2" создать тут же переменную т2 и т.д.?
Аватара пользователя
4epT
macro-маньячина
Сообщения: 2792
Зарегистрирован: Чт дек 21, 2006 1:23 pm
Сервер RO:: 4game
Discord: ya4ept#8494
Контактная информация:

Сообщение 4epT »

да
Не тестил, но мысль такая:

Код: Выделить всё

automacro pm_to_Tn {
pm /.*/
timeout 2
call {
$t = T
$.lastpmMsg = $t$n
$n++
}
}
ЗЫ: интересно он будет понимать их как T, T1, T2..?
Быстро и качественно напишу конфиг (макрос)! Стучи!
¤ Свежий бот ¤ Config checker ¤ Manual ¤
Изображение
Изображение
CaToH
Начинающий
Сообщения: 47
Зарегистрирован: Вт сен 04, 2007 9:40 pm

Сообщение CaToH »

Код: Выделить всё

automacro pms {
# у меня почему-то на кирилические ники он не реагировал, файл в UTF-8 
# а на латиницу не проверял :), вообщем тут надо ник бота
	pm /.*/            
	call pms	
	exclusive 1
}

macro pms {
#тут есть касяк в запятыми - если в нике запятые,
#то его разрубит на куски, на тест серваке, запятые были запрещены
	$names = $.lastpmMsg,$names
	do conf names $names
}
	
#один из вариантов как с этим работать - вывод в консоль.

macro print {
	$cpnames = $names
	$name = [$cpnames]
#тут я выбрал слово END для конца списка
#ибо на тестируемом серваке нельзя создавать ники длины 3 и менее 
	while ($name != END) as loop
		log $name
		$name = [$cpnames]
	end loop
}

automacro testIn {
	pubm /.*/	
	call testIn
	exclusive 1
}

# а вот тут разная реакция на тех кто в списке и тех кто не в списке
macro testIn {
	if ($.lastpubMsg ~ $names) goto part
	log $.lastpubMsg is not listed name
	log Hello!
	goto end
:part
	log $.lastpubMsg is listed name	
	log F*ck off!
:end
}
config.txt

Код: Выделить всё

names END
Код не совсем то,что имелось ввиду - ибо там реакция стоит на паблик месаги и проверяется входит ли месага в список. Надеюсь я правильно понял проблему :)
Последний раз редактировалось CaToH Ср сен 26, 2007 11:24 pm, всего редактировалось 1 раз.
Аватара пользователя
kLabMouse
Профессионал
Сообщения: 4776
Зарегистрирован: Вс ноя 05, 2006 4:32 pm

Сообщение kLabMouse »

CaToH
Хм... появилась у меня замечательная идея.
У нас же есть парсеры верно?
И переменные тоже есть.

Так вот, давайте же инициализируем один из парсеров на нашу переменную. :oops:
CaToH
Начинающий
Сообщения: 47
Зарегистрирован: Вт сен 04, 2007 9:40 pm

Сообщение CaToH »

kLabMouse
На всякий случай - Перл я не знаю :)
инициализируем один из парсеров на нашу переменную
Ты имеешь ввиду натравить на переменную список какой-то парсер ?

Я видимо не понимаю твоей терминологии :(
Ответить