Желательно иметь возможность ставить разные задержки между скилами, так как анимация у многих скилов разная
Хотя большинству думаю сойдёт и так ))
могу сделать отдельно такой скриптик) просто после каждого скилла будите вводить значение таймера
________________
Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий). Затыкай меня спасибками Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).
Да) Теперь не вылетает. И поставил защиту на команды, пока одна команда не выполнится, следующая не будет включатся
Здравствуй, отличная работа, можешь мне помочь, поставит эту защиту в мой скрипт для сина? а то у меня на сервере фикс по анимации... пока анимация от одного скилла не пройдёт, другой скилл не запускается :/
const
name = ''; //Acc Name (ka why, aber ohne gehts nicht^^)
var
Timer:TTimer;
TimerStep:integer;
TargetID:integer;
StartSkill:word;
procedure DoTheSkill(SkillID:word; Level:byte);
begin
buf := HStr('D0 00 57 6F FF CC CC DD 00 60 CA 00 00 00 00 79 8D 00 00'); //Alternativ D0 00 57 6F FF CC CC DD 00 60 CA 00 00 E2 01 F9 C3 00 00
WriteH(SkillID, 6);
WriteC(Level, 8);
WriteD(TargetID, 10);
SendToServerEx(name);
end;
procedure Init;
begin
TimerStep:=1;
Timer:=TTimer.Create(nil);
Timer.OnTimer:=@OnTimer;
Timer.enabled:=false;
Timer.interval:=600; //Zeit zwischen den Skills (500=0,5 sek)
end;
procedure Free;
begin
Timer.free;
end;
procedure OnTimer(Sender: TObject);
begin
case TimerStep of
1:
begin
DoTheSkill(873, 9); //Rückenbrecher II
Inc(TimerStep);
end;
2:
begin
Timer.interval:=100; // Dieser skill wird mit 0,1 sek ausgeführt *.
DoTheSkill(2123, 1); //Sprengpulwerverwendung IV (Buff)
Inc(TimerStep);
end;
3:
begin
DoTheSkill(577, 1); //Hingabe I (Buff)
Inc(TimerStep);
end;
4:
begin
Timer.interval:=600; // * Dannach wieder die normale Zeit einstellen
DoTheSkill(2126, 1); //Hinterhalt IV
DoTheSkill(935, 9);
Inc(TimerStep);
end;
5:
begin
DoTheSkill(940, 6); //Strahlende Rune I
Inc(TimerStep);
end;
6:
begin
Timer.interval:=400;
DoTheSkill(2125, 1); //Attentat III
Inc(TimerStep);
end;
7:
begin
Timer.interval:=600;
DoTheSkill(1987, 1); //Giftangriff I
Inc(TimerStep);
end;
8:
begin
Timer.interval:=200;
DoTheSkill(839, 1); //Folgeschlag I (Buff)
Inc(TimerStep);
end;
9:
begin
Timer.interval:=600;
DoTheSkill(1990, 1); //Beschleunigter Untergang I
Inc(TimerStep);
end;
10:
begin
Timer.interval:=200;
DoTheSkill(1984, 1); //Sinnesverstärkung I (Buff)
Inc(TimerStep);
end;
11:
begin
Timer.interval:=200;
DoTheSkill(572, 1); //Konzentriertes Ausweichen I (Buff)
Inc(TimerStep);
end;
12:
begin
Timer.interval:=600;
DoTheSkill(867, 9); //Siegelgravur IV
Inc(TimerStep);
end;
13:
begin
Timer.interval:=400;
DoTheSkill(875, 5); //Brüllen der Bestie IV
Inc(TimerStep);
end;
14:
begin
Timer.interval:=400;
DoTheSkill(860, 5); //Tritt der Bestie III
Inc(TimerStep);
end;
15:
begin
Timer.interval:=400;
DoTheSkill(2110, 4); //Schlag der Bestie V
Inc(TimerStep);
end;
16:
begin
Timer.interval:=600;
DoTheSkill(853, 8); //Himmelsklinge III
Timer.enabled:=false;
Inc(TimerStep);
TimerStep:=1;
end;
end;
end;
begin
StartSkill := 2280; //Aktivierungsskill!!!!!! (Reißerklauneschlag II)
if (FromClient) and (ReadC(1) = $D0) and (ReadH(6) = StartSkill) then
begin
TargetID := ReadD(10);
Timer.enabled:=true;
end;
end.
Последний раз редактировалось DragonValle; 11.04.2012 в 17:55.
Опять загнался с какой-то ерундой
Нашел много отдельных тем, под каждые персонажы, под отдельные скиллы.. в одном скрипте можно чары бьют по 3 скилла сразу, в другом по 10... словом решил все объединить в одном Итак, скрипт позволяет прямо в игре записать до 30 (и это не предел) скиллов и выбрать любой для активации.
Скрипт
Код:
//защищенно авторским правом CLAVR
var
Timer:TTimer;
name:string;
i,TargetID,TimerStep,writeStep,startSkill:integer;
control,controlwrite,controlstart:boolean;
SeriesSkill:array [1..30] of string;
procedure Init;
begin
WriteStep:=1;
TimerStep:=1;
Timer:=TTimer.Create(nil);
Timer.OnTimer:=@OnTimer;
Timer.interval:=150;
Timer.enabled:=false;
control:=false;
controlwrite:=false;
controlstart:=false;
end;
procedure Free;
begin
Timer.free;
end;
procedure record;
begin
if controlwrite then
begin
SeriesSkill[writeStep]:=pck;
buf:=HStr('16 00 54 D5 FF 22 00 00 00 00 00 00 00');
WriteS('Скилл записан!');
sendtoclient;
inc(writeStep);
end;
end;
procedure starting;
begin
if controlstart then
begin
StartSkill:=ReadH(6);
controlstart:=false;
buf:=HStr('16 00 54 D5 FF 22 00 00 00 00 00 00 00');
WriteS('скилл для зупуска записан! Настройка завершена');
sendtoclient;
end;
end;
procedure OnTimer(Sender: TObject);
begin
buf:=SeriesSkill[TimerStep];
WriteD(TargetID,10);
SendToServerEx(name);
inc(TimerStep);
if (TimerStep=writeStep) then
begin
Timer.enabled:=false;
TimerStep:=1;
end;
end;
begin
if FromClient and (ReadC(1) = $9F) then
name:=ConnectName;
if FromClient and(ReadC(1)=$D0) then
begin
record;
starting;
if control and (ReadH(6)=StartSkill) then
begin
TargetID:=ReadD(10);
Timer.enabled:=True;
end;
end;
if FromClient and (ReadC(1)=$B2) then
begin
case ReadS(7) of
'wron':
begin
pck:='';
controlwrite:=True;
buf:=HStr('16 00 54 D5 FF 22 00 00 00 00 00 00 00');
WriteS('Нажмите последовательно скилы, которые будут использованы');
sendtoclient;
end;
'wrof':
begin
pck:='';
controlwrite:=False;
buf:=HStr('16 00 54 D5 FF 22 00 00 00 00 00 00 00');
WriteS('Скиллы записаны! Теперь нажмите скилл ,который будет использоваться для запуска');
sendtoclient;
controlstart:=True;
end;
'ason':
begin
pck:='';
control:=True;
buf:=HStr('16 00 54 D5 FF 22 00 00 00 00 00 00 00');
WriteS('AutoSkill: включен');
sendtoclient;
end;
'asof':
begin
pck:='';
control:=False;
buf:=HStr('16 00 54 D5 FF 22 00 00 00 00 00 00 00');
WriteS('AutoSkill: выключен');
sendtoclient;
end;
end;
if (pck[7]+ pck[9]=#$74+#$6D) then
begin
Timer.interval:=Int(StrToFloat(ReadS(11)));
buf:=HStr('16 00 54 D5 FF 22 00 00 00 00 00 00 00');
WriteS('задержка между скилами изменена');
sendtoclient;
pck:='';
end;
end;
end.
Управление
Копируем скрипт, ставим галочку и настраиваем его под своего чара черз команды (все их пишем в чат):
1. Пишем команду wron
2. По очереди нажимаем скиллы которые будем потом юзать в скрипте (например "издеваемся" на кукле или своем лучшем друге)
3. Как набрали все нужные скиллы, пишем команду wrof
3. После этого используем скилл, который будет активировать наш скрипт
4. по умолчанию, задержка между скиллами 150 мс, если хотите изменить, то пишем в чат tm230 (где вместо 230 пишем свое значение в мс)
Все, настройка завершена!
После настройки используем команды для запуска скрипта:
Код:
ason - включает использование AutoSkill
asof - выключает использование AutoSkill
Во время настройки, будут высвечиваться подсказки, так-что думаю не запутаетесь)
P.S. Есть недосток - так как все скиллы не записываются в файл, то скрипт нужно настраивать каждый раз после запуска
у меня такая темка!автоскилл юзает токо 2 последние а до этого нет(
Если допустим я записал все нужные скилы, делаю допустим 3 скила из 5, и цель отбегает из радиуса атаки, когда я подойду будет всёравно делаться 4 скилл, или всё таки 5-6 и т.д? от время зависит ? скилы пропускать не будет?
Если допустим я записал все нужные скилы, делаю допустим 3 скила из 5, и цель отбегает из радиуса атаки, когда я подойду будет всёравно делаться 4 скилл, или всё таки 5-6 и т.д? от время зависит ? скилы пропускать не будет?
когда таргет уходит от радиуса атаки каст тож остаанаваливается или нет?!юзаешь то что забил для старта и все сначала!