[Help] Как передать данные через сокет?

Всё, что касается макро-плагина.

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

Правила форума
В форуме макросы "Макросы" разрешено только задавать вопросы по уже существующим макросам и просить помощь по недоработанным своим. При этом таким считается тот макрос который готов не менее чем на 2/3.
Если вы хотите попросить участников сообщества написать вам макрос, это можно сделать в разделе "сервис".
no_OLik
Новичок
Сообщения: 5
Зарегистрирован: Ср фев 18, 2009 3:04 pm
Сервер RO:: rRO

[Help] Как передать данные через сокет?

Сообщение no_OLik »

Собственно очень простой макрос:

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

automacro MVPLocator {
	monster Spore
	call {
		log MVP found: $.lastMonster is located at $.lastMonsterPos on $.datetime
	}
	timeout 2
}
Каким образом записать лог не в консоль, а в отдельный файл?

ЗЫ: logConsol не катит, т.к. плодит огромный лог, парсить который не интересная идея.

Ну или каким образом логирует данные в нужный формат БД по торгашам prontera.ru? Тоже самое
Последний раз редактировалось no_OLik Ср мар 11, 2009 2:04 am, всего редактировалось 1 раз.
Аватара пользователя
Kissa2k
Профессионал
Сообщения: 1304
Зарегистрирован: Пн дек 04, 2006 8:33 pm

Re: Как записать данные из макроса в отдельный файл?

Сообщение Kissa2k »

Например воспользоваться командой eval:

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

automacro MVPLocator {
	monster Spore
	call {
		$str = MVP found: $.lastMonster is located at $.lastMonsterPos on $.datetime
		do eval open(FILE, ">", $::Settings::logs_folder."/file.txt");print FILE $::Macro::Data::varStack{str};close(FILE);
	}
	timeout 2
}
Ну или каким образом логирует данные в нужный формат БД по торгашам prontera.ru? Тоже самое
Нет, сразу в базу данных MySQL.
no_OLik
Новичок
Сообщения: 5
Зарегистрирован: Ср фев 18, 2009 3:04 pm
Сервер RO:: rRO

Re: Как записать данные из макроса в отдельный файл?

Сообщение no_OLik »

Спасибо, работает :)

Добавлено спустя 1 час 27 минут 18 секунд:
Вот доработал c ПХП частью. Описывать ничо не буду, кто разбирается и так сам поймет.

Автомакрос

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

automacro MVPLocator {
	monster MegaMVPMonster
	call {
		$str = { mvp: "$.lastMonster", map: "$.lastMonsterPos", time: "$.datetime"}
		do eval open(FILE, ">", $::Settings::logs_folder."/mvp.txt");print FILE $::Macro::Data::varStack{str};close(FILE);
	}
	timeout 2
}
PHP часть:

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

<?php
header('Content-Type: text/plain;');
error_reporting(E_ALL ^ E_WARNING);
set_time_limit(0);
ob_implicit_flush();

$ch = curl_init();
curl_setopt($ch, CURLOPT_FAILONERROR, 1);  
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); 
curl_setopt($ch, CURLOPT_POST, 1); 

require_once("json.php");
$json = new Services_JSON;

while(true) {
	$mvp = file_get_contents("~MVPLocator/logs/mvp.txt");
	$data = $json->decode($mvp);
	$url = "http://example.com/addMVP/";
	curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query(array(
			"monster" => $data->mvp, 
			"map" => $data->map, 
			"time" => $data->time, 
		))); 

	curl_setopt($ch, CURLOPT_URL, $url);
	$result = curl_exec($ch);   
	sleep(5);
}

curl_close($ch);
?>
Аватара пользователя
Kissa2k
Профессионал
Сообщения: 1304
Зарегистрирован: Пн дек 04, 2006 8:33 pm

Re: Как записать данные из макроса в отдельный файл?

Сообщение Kissa2k »

Это будет веб-сервис по отслеживанию боссов?
no_OLik
Новичок
Сообщения: 5
Зарегистрирован: Ср фев 18, 2009 3:04 pm
Сервер RO:: rRO

Re: Как записать данные из макроса в отдельный файл?

Сообщение no_OLik »

Это уже веб-сервис по отслеживанию боссов. Только он для личного пользования :)
Аватара пользователя
chuvachok
Грамотный
Сообщения: 320
Зарегистрирован: Ср авг 06, 2008 12:47 pm
Сервер RO:: iRO
Discord: chuvachok #2811
Откуда: г. Москва

Re: Как записать данные из макроса в отдельный файл?

Сообщение chuvachok »

это так работает:
ты убиваешь мвп,нажимаешь куда то,и этот макрос начинает считать время до следующего реса мвп?
если нет,то обьясните как плиз
Изображение
EternalHarvest
Разработчик
Сообщения: 819
Зарегистрирован: Пн окт 27, 2008 9:49 pm

Re: Как записать данные из макроса в отдельный файл?

Сообщение EternalHarvest »

Скорее это постоянно вингающиеся боты, при виде мвп записывающие его координаты.
no_OLik
Новичок
Сообщения: 5
Зарегистрирован: Ср фев 18, 2009 3:04 pm
Сервер RO:: rRO

Re: Как записать данные из макроса в отдельный файл?

Сообщение no_OLik »

Что-то неудобно получается с cURL. Приходится держать на машине кроме бота еще и сервер.
Как можно отправить данные через сокет? Ведь полюбому есть функции.

Допустим что нить вроде

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

$::Socket::sendData{str}
Аватара пользователя
Kissa2k
Профессионал
Сообщения: 1304
Зарегистрирован: Пн дек 04, 2006 8:33 pm

Re: [Help] Как передать данные через сокет?

Сообщение Kissa2k »

Куда передать? Откуда передать? Прямо из макроса чтоли :D? По какому протоколу? HTTP? Научись задавать вопросы!
Аватара пользователя
piroJOKE
Модератор
Сообщения: 8205
Зарегистрирован: Сб ноя 04, 2006 2:20 am
Сервер RO:: localhost
Откуда: Molvania

Re: [Help] Как передать данные через сокет?

Сообщение piroJOKE »

no_OLik
Кардинально менять заголовок топика на ходу - не очень хорошая идея. Ведь речь-то изначально не шла о каких-либо "сокетах".
Use brain against brain, ai against ai... · как правильно задавать вопросы · faq · download
no_OLik
Новичок
Сообщения: 5
Зарегистрирован: Ср фев 18, 2009 3:04 pm
Сервер RO:: rRO

Re: [Help] Как передать данные через сокет?

Сообщение no_OLik »

Ну не плодить же новую тему?)

Окей, перефразирую:

Как (можно ли) отправить прямо из макроса через сокет по HTTP на удаленный хост данные?
Аватара пользователя
Kissa2k
Профессионал
Сообщения: 1304
Зарегистрирован: Пн дек 04, 2006 8:33 pm

Re: [Help] Как передать данные через сокет?

Сообщение Kissa2k »

Вызывать PHP-скрипт с параметрами?
В Perl есть прослойка над Win32 Socket. Из макроса вызывать команды perl посредством do eval.. - это мазахизм. Пиши плагин.

Posted after 2 minutes 16 seconds:
Посмотри мой плагин viewtopic.php?t=5405&p=52955#p52955. Процедуру GetItemPrice.
Ответить