PDA

Просмотр полной версии : Доработка:Скрипт автозаточки таути


nk5223
21.09.2013, 05:24
при юзе данного скрипта, который ниже - кикает

пробывал точить , отловив пакеты и посылая их-- также кикает
вот пакеты заточки
19 CF 9C 12 10 00 00 00 00 -UseItem
D0 49 00 04 33 09 10 --- SelectItem
5F 04 33 09 10 00 00 00 00 --EnchantItem думаюю причина в нем должна быть задержка на EnchantItem.
мб ктонить скажет как таймер добавить на EnchantItem или хз какие варианты есть чтоб автоматизировать..\\


const
nik='cv1';
Enchant=12;

var
UseItem, SelectItem, EnchantItem: string;
CurrentEnch: integer;
key: boolean;
Timer01, Timer02: TTimer;

procedure Init;
begin
Timer01:=TTimer.Create(nil);
Timer01.OnTimer:=@OnTimer01;
Timer01.enabled:=false;
Timer01.interval:=2250;

Timer02:=TTimer.Create(nil);
Timer02.OnTimer:=@OnTimer02;
Timer02.enabled:=false;
Timer02.interval:=2250;
end;

procedure OnTimer01(Sender: TObject);
begin
case key of
false: begin
buf:=UseItem;
SendToServerEx(nik);
Timer02.enabled:=true;
end;
true: begin
buf:=EnchantItem;
SendToServerEx(nik);
end;
end;
key:=not(key);
end;

procedure OnTimer02(Sender: TObject);
begin
buf:=SelectItem;
SendToServerEx(nik);
Timer02.enabled:=false;
end;

procedure Free;
begin
Timer01.free;
Timer02.free;
CurrentEnch:=0;
key:=false;
end;

begin
if FromServer and (pck[1]=#$87) then case ReadD(2) of
0: begin
CurrentEnch:=CurrentEnch+1;
if CurrentEnch=Enchant then Timer01.enabled:=false;
end;
3: CurrentEnch:=0;
end;
if FromClient and (pck[1]=#$19) then UseItem:=pck;
if FromClient and (pck[1]=#$D0) then SelectItem:=pck;
if FromClient and (pck[1]=#$5F) then EnchantItem:=pck;
if FromClient and (pck[1]+pck[2]=#$56#$0C) then
begin
pck:='';
Timer01.enabled:=not(Timer01.enabled);
end;
end.

SeregaZ
21.09.2013, 13:29
как бы эти пакеты подразумевают каждый раз разные ID предметов - всмысле точек разные, предмет до первой поломки, а дальше купил новый - новый ID, используя старый естесно произойдет вылет.

nk5223
22.09.2013, 12:24
как бы эти пакеты подразумевают каждый раз разные ID предметов - всмысле точек разные, предмет до первой поломки, а дальше купил новый - новый ID, используя старый естесно произойдет вылет.
принцип скрипта- точишь 1 раз сам юзаешь соц действие он точит сам дальше

после 1й -15 заточки ети пакеты одикаковы
19 CF 9C 12 10 00 00 00 00 -UseItem
D0 49 00 04 33 09 10 --- SelectItem

5F 04 33 09 10 00 00 00 00

Добавлено через 31 секунду
const
nik='cv1';
Enchant=12;

var
UseItem, SelectItem, EnchantItem: string;
CurrentEnch: integer;
key: boolean;
Timer01, Timer03, Timer02: TTimer;

procedure Init;
begin
Timer01:=TTimer.Create(nil);
Timer01.OnTimer:=@OnTimer01;
Timer01.enabled:=false;
Timer01.interval:=2250;

Timer03:=TTimer.Create(nil);
Timer03.OnTimer:=@OnTimer01;
Timer03.enabled:=false;
Timer03.interval:=2250;

Timer02:=TTimer.Create(nil);
Timer02.OnTimer:=@OnTimer02;
Timer02.enabled:=false;
Timer02.interval:=2250;
end;

procedure OnTimer01(Sender: TObject);
begin
case key of
false: begin
buf:=UseItem;
SendToServerEx(nik);

procedure OnTimer03(Sender: TObject);
begin
case key of
false: begin
buf:=EnchantItem;
SendToServerEx(nik);

Timer02.enabled:=true;
end;
true: begin
buf:=EnchantItem;
SendToServerEx(nik);
end;
end;
key:=not(key);
end;

procedure OnTimer02(Sender: TObject);
begin
buf:=SelectItem;
SendToServerEx(nik);
Timer02.enabled:=false;
end;

procedure Free;
begin
Timer01.free;
Timer03.free;
Timer02.free;
CurrentEnch:=0;
key:=false;
end;

begin
if FromServer and (pck[1]=#$87) then case ReadD(2) of
0: begin
CurrentEnch:=CurrentEnch+1;
if CurrentEnch=Enchant then Timer01.enabled:=false;
if CurrentEnch=Enchant then Timer03.enabled:=false;
end;
3: CurrentEnch:=0;
end;
if FromClient and (pck[1]=#$19) then UseItem:=pck;
if FromClient and (pck[1]=#$D0) then SelectItem:=pck;
if FromClient and (pck[1]=#$5F) then EnchantItem:=pck;
if FromClient and (pck[1]+pck[2]=#$56#$0C) then
begin
pck:='';
Timer01.enabled:=not(Timer01.enabled);
Timer01.enabled:=not(Timer03.enabled);
end;
end.


Добавил Timer03 но всеравно неработает гдето ошибка в скрипте

SeregaZ
22.09.2013, 12:28
если заточки стопковые - может быть, однако обычно точки каждая свой слот занимает, то есть ID предмета точки каждый раз разный.

впрочем и пушка может сохранятся и иметь один и тотже ID в случае использования блес точек.

вот собственно нужно уточнение - ты точишь блесками и заточки стопковые?

nk5223
22.09.2013, 19:14
если заточки стопковые - может быть, однако обычно точки каждая свой слот занимает, то есть ID предмета точки каждый раз разный.

впрочем и пушка может сохранятся и иметь один и тотже ID в случае использования блес точек.

вот собственно нужно уточнение - ты точишь блесками и заточки стопковые?

блески

SeregaZ
22.09.2013, 20:58
ну и? второй момент то чо? заточки в стопках по миллиону штук или каждая заточка свой слот занимает?

kpa9pt
23.09.2013, 11:27
блески

Такое ощущение что у тебя просят помощи, ты ведь даже цитату выделил и ответил через жопу, там два вапроса...как таким тугим помогать когда вы не стараетесь ни капли...

nk5223
23.09.2013, 19:22
Такое ощущение что у тебя просят помощи, ты ведь даже цитату выделил и ответил через жопу, там два вапроса...как таким тугим помогать когда вы не стараетесь ни капли...

ок, спс что подметил. Постараюсь теперь давать расширеный ответ и прикреплять скрин


в 1 слоте(ячейке) у меня 9к точек
после заточки ид такой же

http://i.piccy.info/i8/b6cda870123566a35a2c42570c6d81bf/1379946642/54728/620844/Shot00071.jpg (http://piccy.info/)http://i.piccy.info/a3/2013-09-23-14-30/i8-5175868/431x397-r/i.gif (http://i.piccy.info/a3c/2013-09-23-14-30/i8-5175868/431x397-r)


вопщем я вначале тупанул начал спрашивать что да как
Теперь конкретная задача

вот скрипт 100% рабочий надо добавить 3й таймер к EnchantItem
да да пытался чтото зделать, мои пытания в 3тем посте, но скрипт воще перестал работать



const
nik='cv1';
Enchant=12;

var
UseItem, SelectItem, EnchantItem: string;
CurrentEnch: integer;
key: boolean;
Timer01, Timer02: TTimer;

procedure Init;
begin
Timer01:=TTimer.Create(nil);
Timer01.OnTimer:=@OnTimer01;
Timer01.enabled:=false;
Timer01.interval:=2250;

Timer02:=TTimer.Create(nil);
Timer02.OnTimer:=@OnTimer02;
Timer02.enabled:=false;
Timer02.interval:=2250;
end;

procedure OnTimer01(Sender: TObject);
begin
case key of
false: begin
buf:=UseItem;
SendToServerEx(nik);
Timer02.enabled:=true;
end;
true: begin
buf:=EnchantItem;
SendToServerEx(nik);
end;
end;
key:=not(key);
end;

procedure OnTimer02(Sender: TObject);
begin
buf:=SelectItem;
SendToServerEx(nik);
Timer02.enabled:=false;
end;

procedure Free;
begin
Timer01.free;
Timer02.free;
CurrentEnch:=0;
key:=false;
end;

begin
if FromServer and (pck[1]=#$87) then case ReadD(2) of
0: begin
CurrentEnch:=CurrentEnch+1;
if CurrentEnch=Enchant then Timer01.enabled:=false;
end;
3: CurrentEnch:=0;
end;
if FromClient and (pck[1]=#$19) then UseItem:=pck;
if FromClient and (pck[1]=#$D0) then SelectItem:=pck;
if FromClient and (pck[1]=#$5F) then EnchantItem:=pck;
if FromClient and (pck[1]+pck[2]=#$56#$0C) then
begin
pck:='';
Timer01.enabled:=not(Timer01.enabled);
end;
end.

SeregaZ
23.09.2013, 19:53
ну хоть что-то выяснили :) тогда да, id предметов сохраняются.

теперь другой вопрос - а нахрена тебе такая куча таймеров? ты читал мою тему о написании своего скрипта точки (http://coderx.ru/showthread.php?t=9181) под любые хроники? заметил там пошаговый таймер? (задание третье) вот тебе нужен именно такой, нежели гарадушка из трех непонятных таймеров :)

так что бери его и расставляй действия юзать точку, селект итем по пунктам. саму проверку на точнулось не точнулось суй в обработку пакета инвентори апдейт - там приходит инфа об уровне точки. о том как разбирать этот пакет моя тема так и не дошла в виду ленивой молодежи... так и висит тема в недобитом варианте :) никто не хочет изучать - всем подавай готовое однокликовое.

kpa9pt
23.09.2013, 20:25
ну хоть что-то выяснили :) тогда да, id предметов сохраняются.

теперь другой вопрос - а нахрена тебе такая куча таймеров? ты читал мою тему о написании своего скрипта точки (http://coderx.ru/showthread.php?t=9181) под любые хроники? заметил там пошаговый таймер? (задание третье) вот тебе нужен именно такой, нежели гарадушка из трех непонятных таймеров :)

так что бери его и расставляй действия юзать точку, селект итем по пунктам. саму проверку на точнулось не точнулось суй в обработку пакета инвентори апдейт - там приходит инфа об уровне точки. о том как разбирать этот пакет моя тема так и не дошла в виду ленивой молодежи... так и висит тема в недобитом варианте :) никто не хочет изучать - всем подавай готовое однокликовое.


А можно поюзать поиск немного и взять моё (http://coderx.ru/showthread.php?t=10061) тут же и уже готовое, по-моему подойдёт если я не ошибся.

кстати эта тема рядом с твоей, выше на один этаж)

SeregaZ
23.09.2013, 20:31
ну вот... взял и все готовое положил :) толи дело проявлять собственную фантазию и муки рождения кода - зато сам! зато разобрался! :)