Расчитано на пвп серваки и изобилие блес точек...
Использование: включаем скрипт, включаем скрипт << СМОТРЕТЬ
забиваем ник и уровень точки, точим нужную шмотку на +1(не важно со скольки), скрипт запоминает необходимые данные, 1е соц действие включает и выключает автозаточку. 1е соц действие << СМОТРЕТЬ
Скорость заточки выставлена 500мс(+2 в секунду), можно ускорять или замедлять в зависимости от сервака...
dev, вот это правда "Автозаточка, просто и сердито!" как и говорится в шапке темы, а главное что всё понятно и работает на ура!!)) ОГРОМНОЕ СПАСИБО!!!))
// Ядро от mks.
// Модификация ядра от HORSE.
// Конечный продукт от dev.
// http://coderx.ru/showthread.php?t=1684
// Настройики
const
characterName='dev'; // Имя персоонажа
useEnchant=hstr('19 E6 C0 09 10 00 00 00 00'); // [0x19 (UseItem)]
requestEnchant=hstr('5F E2 22 09 10 00 00 00 00'); // [0x5F (RequestEnchantItem)]
itemID=9421; // ID предмета [0x21 (InventoryUpdate)]
enchant=10; // До сколько скрипт должен заточить указанный предмет
speed=150; // Скорость заточки
start=2; // Соц. действие hello, запускает скрипт
stop=3; // Соц. действие victory, остонавливает скрипт
// Ниже ничего можно не трогать
var
timer:TTimer;
x:byte;
procedure Init;
begin
timer:=TTimer.Create(nil);
timer.interval:=speed;
timer.OnTimer:=@fireTimer;
timer.enabled:=false;
x:=1;
end;
procedure Free;
begin
timer.Free;
end;
procedure fireTimer(Sender: TObject);
begin
case x of
1:begin
buf:=useEnchant;
SendToServerEx(characterName);
inc(x);
end;
2:begin
buf:=requestEnchant;
SendToServerEx(characterName);
x:=1;
end;
end;{case}
end;
begin
if FromClient then
begin
case pck[1] of
#$34: begin
if (ReadD(2)=start) then timer.enabled:=true;
if (ReadD(2)=stop) then timer.enabled:=false;
end;
end;
end;
if FromServer then
begin
case pck[1] of
#$21: begin
if (ReadD(12)=itemID) and (ReadD(34)=Enchant) then timer.enabled:=false;
end;
end;
end;
end.
Последний раз редактировалось dev, 28.06.2009 в 01:19.
Причина: Исправлен лёгкий надочёт.
// Ядро от mks.
// Модификация ядра от HORSE.
// Конечный продукт от dev.
// http://coderx.ru/showthread.php?t=1684
// Настройики
const
characterName='dev'; // Имя персоонажа
useEnchant=hstr('19 E6 C0 09 10 00 00 00 00'); // [0x19 (UseItem)]
requestEnchant=hstr('5F E2 22 09 10 00 00 00 00'); // [0x5F (RequestEnchantItem)]
itemID=9421; // ID предмета [0x21 (InventoryUpdate)]
enchant=10; // До сколько скрипт должен заточить указанный предмет
speed=150; // Скорость заточки
start=2; // Соц. действие hello, запускает скрипт
stop=3; // Соц. действие victory, остонавливает скрипт
// Ниже ничего можно не трогать
var
timer:TTimer;
x:byte;
procedure Init;
begin
timer:=TTimer.Create(nil);
timer.interval:=speed;
timer.OnTimer:=@fireTimer;
timer.enabled:=false;
x:=1;
end;
procedure Free;
begin
timer.Free;
end;
procedure fireTimer(Sender: TObject);
begin
case x of
1:begin
buf:=useEnchant;
SendToServerEx(characterName);
inc(x);
end;
2:begin
buf:=requestEnchant;
SendToServerEx(characterName);
x:=1;
end;
end;{case}
end;
begin
if FromClient then
begin
case pck[1] of
#$34: begin
if (ReadD(2)=start) then timer.enabled:=true;
if (ReadD(2)=stop) then timer.enabled:=false;
end;
end;
end;
if FromServer then
begin
case pck[1] of
#$21: begin
if (ReadD(12)=itemID) and (ReadD(34)=Enchant) then timer.enabled:=false;
end;
end;
end;
end.
слушай что то у меня не получаеться. пробовал не фига не точиться. играю на серве lineagetwo.ru. опиши плиз по подробно как пользоваться скприптом. что и какие данные куда вписывать)
__________________
Жизнь хороша, когда бухаешь не спеша
// Ядро от mks.
// Модификация ядра от HORSE.
// Конечный продукт от dev.
// http://coderx.ru/showthread.php?t=1684
// Настройики
const
characterName='dev'; // Имя персоонажа
useEnchant=hstr('19 E6 C0 09 10 00 00 00 00'); // [0x19 (UseItem)]
requestEnchant=hstr('5F E2 22 09 10 00 00 00 00'); // [0x5F (RequestEnchantItem)]
itemID=9421; // ID предмета [0x21 (InventoryUpdate)]
enchant=10; // До сколько скрипт должен заточить указанный предмет
speed=150; // Скорость заточки
start=2; // Соц. действие hello, запускает скрипт
stop=3; // Соц. действие victory, остонавливает скрипт
// Ниже ничего можно не трогать
var
timer:TTimer;
x:byte;
procedure Init;
begin
timer:=TTimer.Create(nil);
timer.interval:=speed;
timer.OnTimer:=@fireTimer;
timer.enabled:=false;
x:=1;
end;
procedure Free;
begin
timer.Free;
end;
procedure fireTimer(Sender: TObject);
begin
case x of
1:begin
buf:=useEnchant;
SendToServerEx(characterName);
inc(x);
end;
2:begin
buf:=requestEnchant;
SendToServerEx(characterName);
x:=1;
end;
end;{case}
end;
begin
if FromClient then
begin
case pck[1] of
#$34: begin
if (ReadD(2)=start) then timer.enabled:=true;
if (ReadD(2)=stop) then timer.enabled:=false;
end;
end;
end;
if FromServer then
begin
case pck[1] of
#$21: begin
if (ReadD(12)=itemID) and (ReadD(34)=Enchant) then timer.enabled:=false;
end;
end;
end;
end.
Нет, ну все работает отлично, за исключением того, что:
1. Необходимо вписывать вручную хексы, что не очень удобно...
2. Самое главное, не работает остановка по достижению определонного значения точки...
Гляньте, плиз что с последним пунктом, так как отладить его нормально я точно не смогу.
Заранее благодарю)
Нет, ну все работает отлично, за исключением того, что:
1. Необходимо вписывать вручную хексы, что не очень удобно...
2. Самое главное, не работает остановка по достижению определонного значения точки...
Гляньте, плиз что с последним пунктом, так как отладить его нормально я точно не смогу.
Заранее благодарю)
1. В первых 3х скриптах ниче вписывать не надо, ни хексы, ни ид.
2. Если юзаешь 1й скрипт и заточка не останавливается, то юзай 2й, если не останавливается ни в 1м ни во 2м, что мало вероятно, выкладывай сюда лог пакетов будем править под твой серв....
1. В первых 3х скриптах ниче вписывать не надо, ни хексы, ни ид.
2. Если юзаешь 1й скрипт и заточка не останавливается, то юзай 2й, если не останавливается ни в 1м ни во 2м, что мало вероятно, выкладывай сюда лог пакетов будем править под твой серв....
Такс с 1 я уже разобрался))) Нормально все) Ошибка была за мной - не вписывал верный ID - вписывал Object вместо Item. Ты говоришь, что в первом (втором) не надо вписывать ничего (ну кроме ника чара), объясни мне (я не профи))) как скрипт будет понимать что нужно точить? А то я так кидаю делаю соц действие и все, больше ничего не происходит) Буду очень-очень благодарен если объяснишь)
Точишь на +1, скрипт запоминает пакеты юзайтем(использование свитка заточки) и реквэстэнчант(выбор затачиваемого предмета), и после нажатия на 1е соц.действие продолжает точить автоматом то что ты точнул вручную последний раз
Точишь на +1, скрипт запоминает пакеты юзайтем(использование свитка заточки) и реквэстэнчант(выбор затачиваемого предмета), и после нажатия на 1е соц.действие продолжает точить автоматом то что ты точнул вручную последний раз
Все работает) Спасибо большое)
Добавлено через 1 час 55 минут
Цитата:
Сообщение от mks
Точишь на +1, скрипт запоминает пакеты юзайтем(использование свитка заточки) и реквэстэнчант(выбор затачиваемого предмета), и после нажатия на 1е соц.действие продолжает точить автоматом то что ты точнул вручную последний раз
Но ты знаешь и в первои и во втором случае у меня заточка пролетает дальше (скрипт не останавливается((((
Последний раз редактировалось Imperial2008, 12.07.2009 в 19:42.
Причина: Добавлено сообщение