Вообщем лазил по postpacific.com случайно увидил
new l2ui.dll(LC Ext v1.2.2) Оффтоп
Поддерживаемые клиенты: Lineage2 C4,Lineage2 C6(Interlude),CT1.5(Hellbound),Gracia Part 1,Gracia Part 2,Gracia Plus
Дллка умеет:
-Работать с винампом(играть,стоп,упр громкостью,вывести текущий трек в чат. и тд)
-Слушать радио(SHOUTcast) (смена радиостанций в lcext.ini)
- todo новые функции...
Разархивировать в папку system игры Lineage2.
Набрать в игре в чате /r_help
Enjoy
download RapidShare: 1-CLICK Web hosting - Easy Filehosting
вообщем умеет переключать песни прямо с л2 с помощью команд чата , но есть 1н минус это античит ) а собственно хотелось бы юзать пакехтак и одновременно переключать песни , вот я и хотел спрость может ли пакетхак с помощью скриптов переключать песни... =)
вот собственно в mIRC есть скрипт такой который использует дллки , мб эти дллки подойдут для скрипта пакетхака просто заменить кнопки командами клиеннта !
очень хотелось бы услышать отзывы профи ))
честноговоря я неочень понимаю в делфи ,а точнее вообще нечего еще не учил ,только азы паскаля на когдато законченом 11-класе )
но что я понял это типо нужно будет делать так ?:
Код:
begin
if FromClient and (pck=HStr('38 2F 00 6E 00 65 00 78 00 74 00 00 00 00 00')) then begin //next
begin
Procedure WinampCommand(Command:Integer);
//поиск окна Winamp’a
WinampHWND := findwindow('Winamp v1.x',nil);
//если поиск успешен,то посылаем сообщение
if (WinampHWND <> 0) then
SendMessage(WinampHWND, 440048, Command, 0);
end;
if FromClient and (pck=HStr('38 2F 00 70 00 72 00 65 00 72 00 0D 00 0A 00 00 00 00 00')) then begin //prev
begin
Procedure WinampCommand(Command:Integer);
//поиск окна Winamp’a
WinampHWND := findwindow('Winamp v1.x',nil);
//если поиск успешен,то посылаем сообщение
if (WinampHWND <> 0) then
SendMessage(WinampHWND, 440044, Command, 0);
end;
if FromClient and (pck=HStr('38 2F 00 70 00 6C 00 61 00 79 00 00 00 00 00')) then begin //play
begin
Procedure WinampCommand(Command:Integer);
//поиск окна Winamp’a
WinampHWND := findwindow('Winamp v1.x',nil);
//если поиск успешен,то посылаем сообщение
if (WinampHWND <> 0) then
SendMessage(WinampHWND, 440045, Command, 0);
end;
if FromClient and (pck=HStr('38 2F 00 70 00 61 00 75 00 73 00 65 00 00 00 00 00')) then begin //pause
begin
Procedure WinampCommand(Command:Integer);
//поиск окна Winamp’a
WinampHWND := findwindow('Winamp v1.x',nil);
//если поиск успешен,то посылаем сообщение
if (WinampHWND <> 0) then
SendMessage(WinampHWND, 440046, Command, 0);
end;
end.
Ну или же в ХТМЛ форме )
типо в чат /winamp и там сделать кнопочно ?
только я вот моих знаний недостаточно и неполучается у меня немного чтоб работало хотябы то что я сделал сейчас
library WinAmp;
{$define RELEASE}// для совместимости с релизом пакетхака, при дебуге можно закоментироватьuses
FastMM4 in'..\fastmm\FastMM4.pas',
FastMM4Messages in'..\fastmm\FastMM4Messages.pas',
windows,
messages,
sysutils,
usharedstructs in'..\units\usharedstructs.pas';
var{version}{revision}
min_ver_a: array[0..3] ofByte = (3,5,12, 120);
min_ver: Integer absolute min_ver_a; // минимальная поддерживаемая версия программы
ps: TPluginStruct; // структура передаваемая в плагинfunction GetPluginInfo(const ver: Integer): PChar; stdcall;
begin
Result:='Плагин управления Winamp к программе l2ph'+sLineBreak+
'Для версий 3.5.12.120+';
end;
function SetStruct(const struct: PPluginStruct): Boolean; stdcall;
begin
ps := struct^;
Result:=True;
end;
Procedure WinampCommand(Command:Integer);
var WinampHWND:cardinal;
begin
WinampHWND := findwindow('Winamp v1.x',nil);
if(WinampHWND <> 0)then
SendMessage(WinampHWND, WM_COMMAND, Command, 0);
end;
// Вызывается при вызове скриптовой функции обьявленной в RefreshPrecompilefunction OnCallMethod(const MethodName: String; // имя функции в верхнем регистреvar Params, // параметры функции
FuncResult: Variant// результат функции): Boolean; stdcall; // если вернёт True то дальнейшая// обработка функции прекратитьсяbegin
Result:=False; // передаём обработку функции программеiflowercase(MethodName) = 'winampcommand'thenbegin
WinampCommand(integer(Params[0]));
Result:=True; // запрещаем дальнейшую обработку функции в программеend;
end;
// Вызывается после иницализации плагина, позволяет добавлять свои функции в редактор / скриптовый движекProcedure OnRefreshPrecompile; stdcall;
begin
ps.UserFuncs.Add('procedure WinampCommand(Command:Integer)');
end;
// экспортируем используемые программой функции
exports
GetPluginInfo,
SetStruct,
OnCallMethod,
OnRefreshPrecompile;
beginend.
закинуть в папку plugins и активировать его в пакетхаке.
после активизации плагина в скриптовом редакторе будет доступна процедура WinampCommand(Command:Integer);
где Command - команды отсюда
работоспособность проверена на aimp.
__________________
L2Ext - project closed.
Последний раз редактировалось alexteam, 07.08.2009 в 20:21.
За это сообщение alexteam нажился 2 спасибками от:
Добрый день.
Версия пакетхака 3.4.1.83
Скачал winamp.dll, положил в папку с плагинами. Поставил на нем галочку на вкладке плагинов, создал скрипт, который выложил alexteam.
Ставлю галочку на скрипте, пишет:
Код:
"Access violation at address 01087740 in module 'winamp.dll'.
Read of address 00000000."