Просмотр полной версии : точка скилов
Добрый время суток! Интересует следущее, возможно ли пакетами или скриптом точить скилы на максимум, если книги не ограничены? Скриптов на точку оружия куча,а вот на скилы не слышал. Есть ли он и какой именно пакет отвечает за енчант скила, не за инфу об улучшении. Хроника Фрея
Добрый день) Заточка скилов с помощью скриптов возможна, на форуме есть 2 примера такого скрипта, но они немного староваты (для С4 и Т0). За заточку скила отвечает пакет реквест енчант скил (посмотреть структуру пакета можно Packets*.ini).
const
nik='Ник';
Enchant=15;
var
SubID, SkillID, SkillLvl, CurrEnch, Type1: integer;
//основная часть скрипта
//вызывается при приходе каждого пакета если скрипт включен
begin
if FromServer and ((pck[1]=#$62) and (pck[3]=#$05)) then case pck[2] of
#$A0: //точнулся
if CurrEnch<Enchant then
begin
CurrEnch:=CurrEnch+1;
Buf:=#$D0;
WriteH(SubID);
WriteD(SkillID);
WriteD(SkillLvl+CurrEnch);
SendToServerEx(nik);
end;
#$A1: //не точнулся
begin
CurrEnch:=1;
Buf:=#$D0;
WriteH(SubID);
WriteD(SkillID);
WriteD(SkillLvl+CurrEnch);
SendToServerEx(nik);
end;
end;
if FromClient and ((pck[1]=#$D0) and (pck[2]=#$0F)) then
begin
SubID:=ReadH(2);
SkillID:=ReadD(4);
SkillLvl:=ReadD(8)-1;
CurrEnch:=1;
end;
end.
Помоему под фрею какраз переделывал, попробуй
Const
// ============= НАСТРОЙКИ ===============
NickName = ''; //ник
MaxEnchantLevel = 20; //до какого уровоня точить
// =======================================
// задержка между точками в сек.
interval = 0;
// отладочные сообщения
MainDebug = false;
var
CurLevel: integer;
tick: integer;
SKillID: integer;
procedure Init; //Вызывается при включении скрипта
begin
CurLevel := -1;
end;
// пауза в секундах
function Wait(var tick: integer; Timewait: Integer): Boolean; // сквозная проверка без остановки скрипта
var
t: integer;
begin
result:=false;
t:=Round(Time*86400);
if t>(tick+Timewait) then begin
if tick>0 then result:=true;
tick:=t;
end;
end;
//###################### Сообщения #############################################
// послать сообщение в чат себе
procedure SendMsg_to_Chat(ChatType: integer; msg:string); // отправка системных сообщений клиенту
begin
buf:=#$4A;
WriteD(0);
WriteD(10);
WriteS(NickName);
WriteS(msg);
SendToClientEx(NickName);
end;
// послать отладочное сообщение себе
procedure DebugMsg(msg:string);
begin
if MainDebug then
SendMsg_to_Private(msg);
end;
// послать сообщение себе в приват
procedure SendMsg_to_Private(msg:string);
begin
SendMsg_to_Chat(2,msg);
end;
//основная часть скрипта
//вызывается при приходе каждого пакета если скрипт включен
begin
if pck = '' then exit;
// Т.к. использоваться будет только для одного чара, остальных сразу отсеиваем
if ConnectName<>NickName then Exit;
// пакет - сообщение со статусом заточки
if FromServer and (pck[1]=#$62) and (pck[3]+pck[4]+pck[5] = HStr('05 00 00')) then begin
if (pck[2] = #$A0)or(pck[2] = #$A1)then begin
SKillID := ReadD(14);
CurLevel := ReadD(18);
// заточка была не удачной, обнуляем текущий уровень заточки
if pck[2] = #$A1 then
CurLevel := (CurLevel div 100)*100; // округляем
DebugMsg('SKillID='+inttostr(SKillID)+'; CurLevel='+inttostr(CurLevel));
if (CurLevel mod 100) >= MaxEnchantLevel then
CurLevel := -1;
tick := 0;
Wait(tick, interval);
end;
end;
// Можно закомментировать "and Wait(tick, interval)", точиться будет намного быстрее,
// только ощущение такое, что шанс точки меньше, хотя может и показалось
if (CurLevel >= 0) then begin
DebugMsg('точим');
buf := HStr('D0 0F 00');
WriteD(SKillID);
WriteD(CurLevel+1);
SendToServerEx(NickName);
CurLevel := -1;
end;
end.
Проверял на фреии работает не забывай что сп не вечное =)
Добавлено через 35 секунд
оправка в чат не работает сам поправиш если надо
Добавлено через 5 минут
P.S добавте етот скрипт в жыстокии скриптинг а то уже тем нащет скрипта точки скилов полно надоедает отвечать одно и тоже.
Учимся юзать поиск!
не запускается, в чём может быть проблема
не запускается, в чём может быть проблема
руки крюки? оО
всё закрывается и выбирает большую ошибку где много совсем не понятных буквочек циферок
всё закрывается и выбирает большую ошибку где много совсем не понятных буквочек циферок
1.ты на чара зашол?
2.пх потключился?
3.ник в скрипте вписал?
пишы больше инфы мы тут не телепаты
скрипт червя дисконектит через 5-7 точек скила, скрипт вимакса просто 0 действий. Выбрал скрипт , всё заполнил как надо , выбираю скил, начинаю точить и никаких действий со стороны скрипта нет. В чём может быть проблема, тут же проще простого ,но не работает!?
1.дисконект иза спама пакетами интевал ставит
2.мой не пашыт ибо точнуть 1 раз для примера надо
Нет, на счёт первого скрипта - доходит до точки которая фейл,ломает скил в 0 и дисконект.
Что касается твоего скрипта, запустил всё, всключил скрипт, выбрал скил точнул раз два пять десять - ничего, сменил ид скила ,точнул раз новый скил,снова ничего.
PaulGreatest
11.03.2011, 19:39
Под Интерлюд бы скрипт
Под Интерлюд бы скрипт
пошутил? скриптов хоть утопись http://coderx.ru/showthread.php?t=476
PaulGreatest
11.03.2011, 21:00
пошутил? скриптов хоть утопись http://coderx.ru/showthread.php?t=476Имею ввиду для заточки скилов)
wimax, скрипт работает! НО не полностью! запустил скрипт,точнул на 1, скрипт точнул его на 2 и тут всё! он не выделяет следущую точку,а пытается снова точить на ту же +2 +2 +2 и пока мышкой в нужную ячейку не тыкнешь ничего не произойдёт! _http://s008.radikal.ru/i304/1103/d3/3d2be0295f51.jpg Подскажи что изменить надо в скрипте? или может сам внеси изменения! Буду очень признателен,давно мучаюсь =(
Const
NickName = 'твой нИК!';
MaxEnchantLevel = Доскольки точить ЧИСЛО;
interval = 0; //Интервал между точкой
MainDebug = false; // ПИСАТТЬ СОБОЩЕНИЯ В ЧАТ ИЛИ НЕТ ДА-true НЕТ-false
var
CurLevel: integer;
tick: integer;
SKillID: integer;
procedure Init; //Вызывается при включении скрипта
begin
CurLevel := -1;
end;
function Wait(var tick: integer; Timewait: Integer): Boolean; // сквозная проверка без остановки скрипта
var
t: integer;
begin
result:=false;
t:=Round(Time*86400);
if t>(tick+Timewait) then begin
if tick>0 then result:=true;
tick:=t;
end;
end;
procedure SendMsg_to_Chat(ChatType: integer; msg:string);
begin
buf:=#$4A;
WriteD(0);
WriteD(10);
WriteS(NickName);
WriteS(msg);
SendToClientEx(NickName);
end;
// послать отладочное сообщение себе
procedure DebugMsg(msg:string);
begin
if MainDebug then
SendMsg_to_Private(msg);
end;
// послать сообщение себе в приват
procedure SendMsg_to_Private(msg:string);
begin
SendMsg_to_Chat(2,msg);
end;
begin
if pck = '' then exit;
// Т.к. использоваться будет только для одного чара, остальных сразу отсеиваем
if ConnectName<>NickName then Exit;
// пакет - сообщение со статусом заточки
if FromServer and (pck[1]=#$62) and (pck[3]+pck[4]+pck[5] = HStr('05 00 00')) then begin
if (pck[2] = #$A0)or(pck[2] = #$A1)then begin
SKillID := ReadD(14);
CurLevel := ReadD(18);
// заточка была не удачной, обнуляем текущий уровень заточки
if pck[2] = #$A1 then
CurLevel := (CurLevel div 100)*100; // округляем
DebugMsg('SKillID='+inttostr(SKillID)+'; CurLevel='+inttostr(CurLevel));
if (CurLevel mod 100) >= MaxEnchantLevel then
CurLevel := -1;
tick := 0;
Wait(tick, interval);
end;
end;
// Можно закомментировать "and Wait(tick, interval)", точиться будет намного быстрее,
// только ощущение такое, что шанс точки меньше, хотя может и показалось
if (CurLevel >= 0) and Wait(tick, interval) then begin
DebugMsg('точим');
buf := HStr('D0 0F 00');
WriteD(SKillID);
WriteD(CurLevel+1);
SendToServerEx(NickName);
CurLevel := -1;
end;
end.
настрой тока константы и все и будет тебе точить все отлично
RedNaxLex
12.03.2011, 21:24
че то у меня все также вручную надо точить( и по одному, да. консты изменил под себя...
скрипт работает,но через раз, из за спама пакетами перестаёт точить часто, если поставить интервал 1 , то быстрее состаришься пока он заточит) но всё жё лучше что-то ,чем ничего )
RedNaxLex
12.03.2011, 22:32
Да я тебе говорю, вообще отказывается работать. Хроны эпилог, может из за этого...
проверь написание своего ника в скрипте, там должен быть такой же реестр букв - большие маленькие
RedNaxLex
13.03.2011, 07:46
С реестром все правильно, я там специально строку с false заменил, true поставид чтоб инфа приходила. Приходит, ид скила, и еще что то, постоянно на 1.
Ребята выложе плз скрипт для автозаточки скилов под ИТ. Всю ночь сидел искал везде и везде пишут умники одно и тоже "Юзай поиск"-хотя я его и юзаю или его какойто маразм а по делу 0. Везде на грацыю на ит нигде не нашол. У кого есть выложите плз
скрипт работает,но через раз, из за спама пакетами перестаёт точить часто, если поставить интервал 1 , то быстрее состаришься пока он заточит) но всё жё лучше что-то ,чем ничего )
время поменше попробуй 0.5 например
Добавлено через 1 минуту
Ребята выложе плз скрипт для автозаточки скилов под ИТ. Всю ночь сидел искал везде и везде пишут умники одно и тоже "Юзай поиск"-хотя я его и юзаю или его какойто маразм а по делу 0. Везде на грацыю на ит нигде не нашол. У кого есть выложите плз
а сам переписать не как?
RedNaxLex
14.03.2011, 17:29
я если ставлю задержку 0.5 то при компиляции скрипта вылазит ошибка вот в этом месте
Wait(tick, interval);
integer прописано) 0.5 не катит так)
RedNaxLex
14.03.2011, 23:57
interval =) и в констах и в коде... так что хз в чем трабл...
поправь значет в коде интервал здейло не в секундах а в мили секундах
Добавлено через 3 минуты
Round(Time*86400)-- ето 1 секунда подели чесло на два а интервал оставь 1
не знаю если пакеты не поменяли то пойдет
ребят кстате тож перестали работать боты (енчантер скилов) при обновлении....мб эт шифрация?
(Играю на ГФ все работало отлично,но в скорем поставили защиту и все перестало работать) 0 реакции со стороны ботов...
рано или поздно с введением защиты что-то перестаёт работать
хотелось бы спросить,а как настроить бот под свой серв...где имено нужно вписывать оприделеный захват пакета при енчатне скила? в какой строке?
const
nik='ник чара';
Enchant=15;
var
SubID, SkillID, SkillLvl, CurrEnch: integer;
procedure Init; //Вызывается при включении скрипта
begin
end;
procedure OnTimer01(Sender: TObject);
begin
end;
procedure Free; //Вызывается при выключении скрипта
begin
CurrEnch:=0;
end;
procedure OnConnect(WithClient: Boolean); //Вызывается при установке соединения
begin
end;
procedure OnDisonnect(WithClient: Boolean); //Вызывается при потере соединения
begin
end;
//основная часть скрипта
//вызывается при приходе каждого пакета если скрипт включен
begin
if FromServer and (pck[1]=#$62) then case pck[2] of
#$A0: //точнулся
if CurrEnch<Enchant then
begin
CurrEnch:=CurrEnch+1;
Buf:=#$D0;
WriteH(SubID);
WriteD(SkillID);
WriteD(SkillLvl+CurrEnch);
SendToServerEx(nik);
end;
#$A1: //не точнулся
begin
CurrEnch:=1;
Buf:=#$D0;
WriteH(SubID);
WriteD(SkillID);
WriteD(SkillLvl+CurrEnch);
SendToServerEx(nik);
end;
end;
if FromClient and (pck[1]=#$D0) then
begin
SubID:=ReadH(2);
SkillID:=ReadD(4);
SkillLvl:=ReadD(8)-1;
CurrEnch:=1;
end;
end.
angel653922
01.04.2011, 13:35
рано или поздно с введением защиты что-то перестаёт работать
Лучше отпровляйте пакеты,т.к скрипты не на всех серверах работают.
7C 22 0e 00 00 01 00 00 00 00 00 00 00
7C 23 0e 00 00 01 00 00 00 00 00 00 00
7C 24 0e 00 00 01 00 00 00 00 00 00 00
начинаете вращаться с бешенной скоростью
4A010000000F000000
Добавлено через 2 минуты
п.с у кого есть скрипт рабочий на 100% для грации финал?)
g1oom08, вешается ваш скрипт на 45-ой строке.
версия PH - l2phx.3.5.34.176
сервер shock-world, хроники непонятно какие, клиент Hight Five.
скрин: http://i.da.am/8547.png
хочу точить скилы простыми точками скилов.
может тема обсуждалась на форуме, я не нашел, просьба ткнуть носом.
заранее благодарю!
Добавлено через 23 часа 31 минуту
EmL, ваш совет мне очень помог! обошелся без скрипта,а вопрос заточки оказывается давно (втихаря!) решается на этом комплексе серверов причем достаточно старой версией l2phx 3.4.1.83 взятой отсюда же:
h**p://coderx.ru/downloads.php?do=file&id=34
vBulletin® v3.6.11, Copyright ©2000-2024, Jelsoft Enterprises Ltd. Перевод: zCarot