Просмотр полной версии : La2 - ICQ
Если ли или можно ли замутить чтоб все что писалось в l2 - перенаправлялось на icq?
Underwhy
05.09.2009, 17:54
Если ли
Албанский форева? :D
можно ли замутить чтоб все что писалось в l2 - перенаправлялось на icq?
Можно я думаю о_О подключая дополнительные проги, почему бы и нет? но уверен что прийдётся включать две аси, и регистрировать ещё одну х_х и вообще прокси юзать. Имхо геморой и никто за это не возьмётся). По крайней мере обьяснять).
alexteam
05.09.2009, 18:40
Реализовать можно плагином к пх.
только вот делать врядли кто будет
можно даже в виде СМС на мобилу, вот только на мобиле еще спама не хватало)
freeuser
12.09.2009, 22:32
Идея не плоха, например у вас запущен бот, а вы на работе или ещё где.
На мобиле включён Джимм и все сообщения в ПМ боту ретранслируются вам на аську, и вы сможете ответить на них. Идеальный способ не спалиться на проверках подобного рода.
Ещё и дописать функционал, который бы позволял посылать команды боту: типа старт\стоп\релогин и тд.
Я бы смог реализовать часть с ICQ, только как подружить с ботом хз.
DzumoHu4
13.09.2009, 03:25
Можно через сервер) И я хочу это реализовать.)Как будет что то интересное дам знать)
как вариант. берется icq.dll от какой нить миранды(исходники открыты), модифицируется если надо и используется скриптом в л2пх. не возьмусь :)
А не проще найти компонент, реализующий функционал аськи и наваять плагин? 2 в 1 так сказать ...
destructor
20.09.2009, 13:22
дайте простейший пример самодельной icq
Добавлено через 3 минуты
красивее конечно через свой протокол,
но тогда нужен будет свой клиент, который палюбому надо писать под мобилу:) (это проблема?)
alexteam
20.09.2009, 15:15
http://www.torry.net/quicksearchd.php?String=ticq&Title=Yes
Добавлено через 50 секунд
в принципе если траффик на мобиле не жмет - то и вебморды хватит.
могу смело написать, НО... у меня так и не запустился L2PacketHack =( не находит он окно Ла2
Добавлено через 2 минуты
если сейчас заработает L2PacketHack, то напишу плагин.. )
Добавлено через 1 час 34 минуты
L2PacketHack запустился... а толку, минимальных знаний нету в скриптописании.. =(
надо как-то выводить текст чата, хотя бы в отдельный тхт. =(
destructor
20.09.2009, 18:48
то и вебморды хватит.
точно.
просто icq клиент будет не юзабельный.
Добавлено через 1 минуту
по крайней мере я не представляю как это будет выглядеть :(
Liiion911
20.09.2009, 18:52
будим писать все логи в тксти каждые 5 мин пересылать в аську, просто и удобно )))
alexteam
20.09.2009, 19:07
на кой фиг ждать 5 мин ?
расширением функций скриптового движка это можно сделать.
в ините реализовать вызов соединения в плагине
в фрии - соответственно дисконнект.
в теле скрипта передавать текст плагину. а плагин уже будет использовать инициированный коннект для передачи данных.
при наличии компонента который реализует соединение, и отправку данных с icq сервисом - плевое дело.
а если еще чуть чуть подождете (или сами скомпилите то что лежит на свн) то выйдет следующая ревизия пх умеющая вызывать скриптовые функции из плагина (т.е. еще и отвечать можно будет лехко)
Добавлено через 4 минуты
YEPi,
http://l2phx.pp.ru/arhive/l2ph_help/index.htm#page=plugdemo2.htm
текст чата, грубо говоря описывается пакетом creaturesay.
при приходе такого пакета - вызывать свою функцию передавая ей тип чата, сендера, и текст сообщения
destructor
20.09.2009, 19:16
alexteam, предлагаю так:
пусть будет некая длл которая работает через сеть, как вебинтерфейс\сокеты\аська не важно вообще (я за веб интерфес и неебед:))
у этой длл есть экспорт:
1) Init(void* p)
служит для запуска всей куйни,
принимает один параметр, адрес __stdcall функции которая "отправит пакет say2"
2) addMsg(char* m) эту функцию надо вызывать каждый раз когда нам в чате чтото сказали,
параметр текстовая строка.
помоему все просто?
Добавлено через 2 минуты
эту длл можно юзать через плагин к пакетхаку,
или другими извращенными методами (например мне пакетхак не нужен, у меня чуть другие планы)
это чем же веб интерфейс удобен? 1. передача данных идет не в реальном времени. 2. трафика будет больше кушать из-за обновления страничке..
Добавлено через 2 минуты
при наличии компонента который реализует соединение, и отправку данных с icq сервисом - плевое дело.
Добавлено через 4 минуты
YEPi,
http://l2phx.pp.ru/arhive/l2ph_help/index.htm#page=plugdemo2.htm
текст чата, грубо говоря описывается пакетом creaturesay.
при приходе такого пакета - вызывать свою функцию передавая ей тип чата, сендера, и текст сообщения
читал я мануал.. разбираться надо... это время...
могу написать длл для работы с аськой.. и передавать через длл..
alexteam
20.09.2009, 19:25
destructor, чтото вроде...
в принципе эту длл вообще можно офрмить как плагин к пх. и сделать екпорты для юзанья не в пх.
в пх функция добавления функций в скриптовый движек вообще мощщщьная штука, я довольно долго недооценивал ее (хоть и понимал что это все таки мощь) но когда связался в плотную с ней... хе.. к примеру у меня скрипт на 300 с чемто строк (ВСЕГО) реализует ПОЛНОЦЕННОГО бота. способного бегать по хантарее, фигачить отмеченных к атаке мобов (согластно заданой юзверем схеме, очень сильно смахивающей на комбат сеттингс волккера)и тех кто не отмечен к атаке но сагрился на игрока а так же атаковавших бота игроков (если чего), бафаться, пить поишинки, садитсья на рест, подымать лут, имеющего сносный хтмл (игровой) интерфейс и т.д. и т.п.
да проще конечно делать веб интерфейс... парсить и передавать в вебку чат тхт... но это не есть гуд для трафика...
alexteam
20.09.2009, 19:31
YEPi, не проще. это альтернатива.
писать собственный вебсервер либо модуль взаимодействующий с бд (а куда ты думаешь будешь пихать инфу ?) проще только при условии что у тебя уже есть готовый класс (модуль/компонент) за это отвечающий
destructor
20.09.2009, 19:33
в принципе эту длл вообще можно офрмить как плагин к пх.
ненадо,
надо максимально ее отделить.
вдруг ктото ее отдельно реализует как клиент icq , а другой как веб сервер.
изменить одно на другое можно будет заменой этой длл,
интерфейс то одинаковый, который надо заранее точно определить.
и сделать екпорты для юзанья не в пх.получится 2 в 1, а это нафик не надо.
alexteam, веб интерфейс можно использовать отдельно программу писанную (IdHTTPServer).. он же на ходу будет парсировать текст и выдавать как веб интерфейс..
Добавлено через 3 минуты
1. скрипт пакетхак выкидывает чат в 123.тхт
2. прога отдельная, которая парсирует 123.тхт и выводит вебку.
alexteam
20.09.2009, 19:42
какую нах "отдельно программу" с индюком если это того же индуюка можно сунуть в плагин ?
плагин что ? не может открыть порт на прослушивание ?
Добавлено через 1 минуту
еще раз назовешь пх хлапексом получиш бан (шутка)
на кой черт ваши 123.тхт если есть
exports
OnRefreshPrecompile,
OnCallMethod;
destructor
20.09.2009, 19:46
1. скрипт пакетхак выкидывает чат в 123.тхт
2. прога отдельная, которая парсирует 123.тхт и выводит вебку.
бред.
плагин что ? не может открыть порт на прослушивание ?если я напишу отдельную длл, корорая пашет через сокеты и имеет своего клиента под мобилу мне ее тоже придется оформлять как плагин?
а если я плагины писать неумею?
а если в пакетхаке чтото изменили?
а если мне ее не для л2 юзать надо?
а если хочу через апи хуки клиента?
а еще может стопицот "если" быть....
цитата destructor:
надо максимально ее отделить.
отдельная программа, длл пофиг =)
за хлапекс сори, название крутиться на языке =)
http://www.torry.net/quicksearchd.ph...ticq&Title=Yes
Добавлено через 50 секунд
в принципе если траффик на мобиле не жмет - то и вебморды хватит.
у меня компонент не работает, при попытке подключения вопит или бэд пассворд или еще акую-то хню.Д7.
у меня компонент не работает, при попытке подключения вопит или бэд пассворд или еще акую-то хню.Д7.
http://forum.asechka.ru/showthread.php?t=97186&page=35
все работает прекрасно, компонент бесплатный и постоянно обновляется, как косяки так и протаколы...
alexteam
20.09.2009, 20:18
QaK, с момента написание того компоненты аська пиццоп пидисят раз протокол меняла.
я ту линку дал к тому чтобы искали готовые решения.
destructor
20.09.2009, 20:20
может довайте всетаки с архитектурой вопрос решим? :)
alexteam
20.09.2009, 20:25
destructor, не, не обязательно как плаин. плагин ее может цеплять.
в принципе плагин для пх это один из самых доступных методов "чтото скушать с клиента л2 и чтото впихнуть клиенту л2 на протокольном уровне" который доступен рядовому пользователю без каких либо ограничений языка. он может прекрасно служить переходником между скриптом собирающим данные (и доступным рядовому пользователю для изменения) и статической дллкой отвечающей за конкретный протокол конкретного пейджера.
destructor
20.09.2009, 20:39
destructor, не, не обязательно как плаин. плагин ее может цеплять.я бы даже сказал "обязательно не плагин"
делаю свое "чудо програмерской мысли" и готовым плагином спокойно это цепляю.
минусов в такой реализации не вижу.
alexteam
20.09.2009, 20:45
так же как и я минусов в реализации "добавить к плагину на 3 экспортируемые функции больше" для нужд аля "если я захочу прицепить его чемто другим"
.. а модуль то один -)
destructor
20.09.2009, 20:48
так же как и я минусов в реализации "добавить к плагину на 3 экспортируемые функции больше" для нужн аля "если я захочу прицепить его чемто другим"
.. а модуль то один -)
есть минус.
я написал чтото свое, как мне прикручивать к пакетхаку?
качать делфи и учить написание плагинов?
alexteam
20.09.2009, 20:56
а зачем ?..
помниться был als.dll написаный хкором специально для нужд "я пишу на другом языке"
destructor
20.09.2009, 21:04
да тут даже не в языке дело, это дейсвительно разные вещи, которые должны жить отдельно.
допустим: поменялся интерфейс у плагинов, и ппц приплыли?
Добавлено через 1 минуту
например собираешся добавить "вызов скриптовых функций":)
alexteam
20.09.2009, 21:25
ну дык. автору все равно прийдеться вносить изменения %)
и вообще. хазяин - барин. я бы делал все в одном. минимизируя колво юнитов. ты бы делал по другому.. тут каждый себе хозяин -)
destructor
20.09.2009, 21:30
ну дык. автору все равно прийдеться вносить изменения %)почему?
Добавлено через 3 минуты
тут каждый себе хозяин -)и будет стопицот несовместимых вариантов...
alexteam
20.09.2009, 21:35
мм. если алл ион он то по определению придется изменять. если сделано с переходником то придется трогать переходник. если на пх пофиг то вообще ничего не надо изменять. ни в том варианте ни в том. ибо в аллинон никто не мешает сделать лишние пару импортов. т.е. ядро енджина так и останеться не изменным вместе с его експортами. а в варианте с переходником - если на пх поф - то и переходник не надо %)
Добавлено через 1 минуту
и будет стопицот несовместимых вариантов...
а зачем трогать експорты енджина ?
destructor
20.09.2009, 21:49
мм. если алл ион он то по определению придется изменять. если сделано с переходником то придется трогать переходник. если на пх пофиг то вообще ничего не надо изменять. ни в том варианте ни в том. ибо в аллинон никто не мешает сделать лишние пару импортов. т.е. ядро енджина так и останеться не изменным вместе с его експортами. а в варианте с переходником - если на пх поф - то и переходник не надо %)взрыв мозга :confused:
вообще нифига не понял
alexteam
20.09.2009, 21:53
мла, вот смотри. функция пх для поставленной задачи должна експортировать
exports
GetPluginInfo,
SetStruct,
OnLoad,
OnRefreshPrecompile,
OnCallMethod,
OnFree;
КТО мешает добавить к ним IcqConnect, IcqDisconnect, IcqSendMsg
да, прийдеться делать плагин в соответствии с пх.
да, он выйдет со строя при изменении структуры передающейся в плагин. но ведь IcqConnect, IcqDisconnect, IcqSendMsg остануться работать.
и вообще. я тут вспомнил... скрипты умеют использовать дллки. нафиг плагины вообще ? %)
destructor
20.09.2009, 22:00
да, прийдеться делать плагин в соответствии с пх.
1) я не умею
2) делфи у меня нет
3) кинуть другую длл рядом с готовым плагином в стопицот раз проще.
но ведь IcqConnect, IcqDisconnect, IcqSendMsg остануться работать.а если какой то разрабочик забыдлокодит важную инициализацию тут: OnLoad?
и вообще. я тут вспомнил... скрипты умеют использовать дллки. нафиг плагины вообще ? %)вот про что я и говорю, реализация "цеплялки к клиенту" может быть ппц разной.
alexteam
20.09.2009, 22:27
в общем тему можно закрыть -)
зы.
а если какой то разрабочик забыдлокодит важную инициализацию тут: OnLoad?
но ведь ты же разработчик -)))
var
lib,Lib1:Integer;
Res:variant;
ar:array of variant;
begin
lib := loadLibrary('User32.dll');
lib1 := loadLibrary('GDI32.dll');
Res := CallFunction(lib,'MessageBoxW',4,[nil,'Text1','text2',0]);
Res := CallFunction(lib,'GetDC',1,[0]);
CallFunction(lib1,'LineTo',3,[Res,100,100]);
CallFunction(lib,'ReleaseDC',2,[0,Res]);
FreeLibrary(lib);
FreeLibrary(lib1);
end.
вот вроде как вызывает длл...
так, что будете делать или разговор в пустую был? )
З.Ы. сори за оффтоп, как правильно "ехать НА украину" или "ехать В украину"!? =)
destructor
20.09.2009, 23:33
так, что будете делать или разговор в пустую был? )буду делать под юникод,
с callback'ами через указатели,
как потом к скриптам прикручивать я хз:)
З.Ы. сори за оффтоп, как правильно "ехать НА украину" или "ехать В украину"!? =)
С точки зрения русского языка приемлимы оба варианта
З.Ы. сори за оффтоп, как правильно "ехать НА украину" или "ехать В украину"!? =)раньше было на, теперь кто-то очень сильно возмутился, типа некорректно звучит и т.д. теперь вроде стало "в" .
Добавлено через 1 минуту
вот вроде как вызывает длл...не, эт старый вызов из скрипта, жутко глючный и мертвый.
Добавлено через 44 секунды
З.Ы. завтра, если успею, наваяб, в первом приближении что-нить по теме.
alexteam
21.09.2009, 21:48
аффтор, а по поводу возможных продолжений этого вопроса - выскажешь хоть один из вариантов накормлю транквилизаторами. за разжигание нац розни.
Добавлено через 1 минуту
гак, только последнюю стяни.. а то сам знаешь... я любитель поменять всяие фенечки...
в последнем вот каллскриптфункшин добавил.. юзабельная штука.
//QaK:и как только меня не обзовут ... стянул уже компоненту, оттестил, щас надо прикрутить обработчик чата, но это уже на завтра, я спать, всем спокойной ночи +0
destructor
27.09.2009, 16:05
сраный реал, столько времени убивает в пустую :D
//QaK:+1, вот только по-другому - никак =)
кто может забыдлокодить плагин к пакетхаку, который:
1)грузит мою длл.
2)вызывает экспортируемую функцию int Init(void * saycallback), в параметр передать 0.
3)на каждый входящий(от сервера) пакет Say2 вызывает экспортируемую функцию
int __stdcall addMessage(DWORD Type, wchar_t * From, wchar_t * Message)
параметры
Type тип сообщения.
From указатель на юникод строчку "от кого"
Message указатель на юникод строчку, текст самого сообщения.
?
сама длл для тестов:575
destructor
28.09.2009, 16:06
ля, кто нибуть плагины к пакетхаку умеет делать?
alexteam
28.09.2009, 18:46
00001010 1 0000 ?Init@@YAHPAX@Z
00001060 2 0001 ?addMessage@@YAHKPA_W0@Z
)))
вот те.
скрипт для использования на пт2.
var
initok : boolean;
maskval : array[0..10] of variant;
procedure Init; //will be called on script initialization
begin
initok := ChatLoadAndInit('c:\test\ChatServer.dll');
if not initok then
ShowMessage('Dll Load Fail!!');
end;
procedure Free;
begin
end;
begin
if fromserver and initok then
if pck[1] = #$4a then
begin
readmask('dss',6,maskval);
chatsay(maskval[0],maskval[1],maskval[2]);
end;
end.
destructor
28.09.2009, 18:55
во,
какие будут предложения по формату callback функции?
зы:
00001010 1 0000 ?Init@@YAHPAX@Z
00001060 2 0001 ?addMessage@@YAHKPA_W0@Z
ну ***, у всех бывает:)
alexteam
28.09.2009, 19:33
по формату калбек.. хм.. в общем сейчас инит вот такой.
function (saycallback : pointer):integer; stdcall;
допустим туда я буду передавать поинтер на вот такую ф-ю.
function (MsgType:Dword; Target, Msg : pchar):boolean;
Добавлено через 9 минут
мла.. напортачил с кодироффкой
Добавлено через 15 минут
нифига не пойму. попытка вывести русский текст в консольку - фигвамс.
Добавлено через 6 минут
эээ млять. в твоей консольке же CP866
destructor
28.09.2009, 21:20
function (MsgTypeword; Target, Msg : pchar):boolean; попробую перевести на руский:
BOOL __stdcall CallbackMsg (DWORD Type, wchar_t* Msg);
Type - тут какбы все ясно
Msg - указатель на юникод строчку.
эээ млять. в твоей консольке же CP866
вобще то не в моей а в твоей, консолька типа часть твоей ОС,
а кодировку в реестре можеш поднастроить:)
а у меня обычный printf() того что прислали:)
а вобще сделано тупо для теста работает\неработает плагин.
если надо допилю до нормальной.
alexteam
28.09.2009, 21:30
Сделай вызов такой вот функции поинтер на которую лежит в калбак инита
и добавь для теста вызов каллбэка с заранее известными параметрами (можно прям в ините). и выкладывай сюды. чтобы я мог плагин и скрипт не только поправить, но и протестить.
Добавлено через 3 минуты
про кодировку - я сказал чтобы ты не ругался что русский не отображает.
destructor
28.09.2009, 22:15
держи: 578
1)выровнял имена экспорта < !
2)то что передаеш в указателе, вызывается прям из init
3)DWORD __stdcall CallbackMsg (DWORD Type, wchar_t* Msg); < возвращаем DWORD, под коды ошибок:)
destructor
28.09.2009, 23:01
так, моя ушел в реал.
завтра буду разбиратся как плагин в пакетхаке включить :D
alexteam
28.09.2009, 23:10
подсунуть длл пакетхаку и отметить галочкой 0_о
Добавлено через 1 минуту
зы.
function (MsgType:Dword; Target, Msg : pchar):boolean;
3 параметра, бла.
destructor
29.09.2009, 13:43
3 параметра, бла.этот ваш паскаль нечитаемый какойто,
target это типа имя для пм?
Добавлено через 1 минуту
подсунуть длл пакетхаку и отметить галочкой 0_оа скрипт тогда накуя?
3 параметра: 579
alexteam
29.09.2009, 14:17
target это типа имя для пм?
да.
а скрипт тогда накуя?
вопрос был:
завтра буду разбиратся как плагин в пакетхаке включить
а про скрипт -
всунуть в скрипты и тож отметить галочкой -)
скрипт нужен для обработки пакетов и отправки данных в плагин (уже готовых данных)
сам плагин не работает с протоколом. т.е. для адаптации к примеру под интерлюд надо будет поменять одно значение в скрипте не трогая плагин.
под вечер прикручу каллбэк.. а щас - сраный реал (работа)
destructor
29.09.2009, 17:13
а про скрипт -
всунуть в скрипты и тож отметить галочкой -)
List index out of bounds (-1).
и чо ему нетак?
alexteam
29.09.2009, 17:44
это где именно ? %)
destructor
29.09.2009, 19:32
initok := ChatLoadAndInit('c:\test\ChatServer.dll'); без этой строки скрипт запускается, но естественно нифига не работает.
ругается он не на определенную строчку, а ваще непоймикак, тоесть:
стоит курсор в середине скрипта
жму запстить
он не запускается и курсор передвигается на строчку выше.
еще раз запустить, еще на строчку вверх
и так до самой верхней,
а потом выдает: List index out of bounds (-1).
alexteam
29.09.2009, 19:42
а в статусбаре пх чиго пишет ? при попытке компиляции/запуска...
зы.. чувствую себя как будто пытаю партизана.
destructor
29.09.2009, 19:54
гля и правда, чтота пишет в статус баре :D
Добавлено через 2 минуты
loader> EvariantTypeCastError: не могу конвертировать variant тип (Null) в тип (Boolean)
Добавлено через 1 минуту
жмеш копилировать, говорит все путем.
alexteam
29.09.2009, 20:13
а, ну типа.. а дллку ты уже с правлеными импортами юзаешь ? да ?.. а плагин с неправлеными ?..
destructor
29.09.2009, 20:32
оО и правда включилась:)
alexteam
29.09.2009, 21:04
под правленние експорты. с калбэком. аттачед.
айди пакетов в скрипте сам поправиш -)
var
initok : boolean;
maskval : array[0..10] of variant;
Function SayCallBack(MsgType:integer; Target, Msg : string):integer;
begin
pck := '';
//49=Say2:s(Text)d(Type)s(Target)
WriteMask('csds',[$49, Msg, MsgType, Target]);
SendToServer;
result := 1; //Успешно отправили.
//результат миррорим в лог пх.
sendmsg(format('(%d) [me > %s] %s',[msgtype, target, msg])); //можно убрать.
//result = 0. зарезервирован. калбэк вернет его если нельзя вызвать функцию с скрипта.
end;
procedure Init; //will be called on script initialization
begin
UseForConnectName := 'YourCharacterName'; //Обязательно. иначе не будем знать от какого коннекта слать.
initok := ChatLoadAndInit('c:\test\ChatServer.dll');
if not initok then
ShowMessage('Dll Load Fail!!');
end;
procedure Free;
begin
end;
begin
if fromserver and initok then
if pck[1] = #$4a then
begin
readmask('dss',6,maskval);
chatsay(maskval[0],maskval[1],maskval[2]);
end;
end.
alexteam
29.09.2009, 21:08
а по поводу
List index out of bounds (-1)."
и не только.. там было ведь 2 кнопачки.. да ?...
вот детаил кнопачка это ответ на вопрос
это где именно ? %)
destructor
29.09.2009, 21:26
под правленние експорты. с калбэком. аттачед.ушел тестить:)
вот детаил кнопачка это ответ на вопросога, ты там видел скока букав?
alexteam
29.09.2009, 21:29
там толька стек и нужен.... для ответа "где"...
в общем... неважно...
vBulletin® v3.6.11, Copyright ©2000-2025, Jelsoft Enterprises Ltd. Перевод: zCarot