Форум работает в тестовом режиме. Все данные были перенесены со старого сайта 2018 года. Некоторая информация может быть недоступна, например вложения или хайды. Просьба сообщать о данных случаях через функционал "Жалоба", прямо под постом, где отсуствуют данные из хайда или проблемы с вложением.
Могут быть проблемы в "выкидыванием" с форума (слетевшей авторизацией). Нужно собрать статистику таких случаев.
Есть Тема, куда можете сообщить о проблемах с сайтом либо просто передать привет.

клинс

Рег
20 Ноя 2015
Сообщения
94
Реакции
0
const
range=600;
var
skill: TL2Skill;
i: Integer;
Buffs: TBuffList;
targbc, targ:TL2Live;
BuffList: array of integer;
begin
bufflist:= [522, 627];
begin
while Engine.Status = lsOnline do
begin
if ((Engine.GetSkillList.byid(1409, skill)) and (Skill.EndTime < 950))then
begin
for i:=0 to Party.Chars.Count -1 do
begin
targ := Party.Chars.Items(i);
begin
for i:=0 to high(Bufflist) do
begin
If (targ.Buffs.ById(BuffList, buffs)) and
((targ.name='') or (targ.name=''))
then
begin
Engine.SetTarget(targ);
delay(10);
Engine.Usekey($32);
delay(100);
end;


end;
end;
end;
end;
end;
end;
end.


Ребят, трабла в том, что скрипт дает клинс онли 1 члену пати. КАк это исправить?
 
наверное потому что условие неправильное? ммм
 
Логично) А ты можешь подсказать какие условия неправильные?)
 
@Nevada, If (targ.Buffs.ById(BuffList, buffs)) and
((targ.name='') or (targ.name=''))

ты указываешь пустые таргеты и условие не выполняется, оставь только проверку по бафу, если хочешь чекать бишей или кого-то другого добавь проверку по classid
 
@SoundShocking, Решил попробовать с айдишниками классов. Одна фигня. Клинсит онли 1 цель из пати
 
все равно клинсит одного из пати мемберов(
 
@Nevada, что-то много begin end;
Вот, отформатировал чтобы можно было разобраться.

const
range=600;
var
skill: TL2Skill;
i: Integer;
Buffs: TBuffList;
targbc, targ:TL2Live;
BuffList: array of integer;
begin
bufflist:= [522, 627];
while Engine.Status = lsOnline do
begin
if ((Engine.GetSkillList.byid(1409, skill)) and (Skill.EndTime < 950)) then
for i:=0 to Party.Chars.Count -1 do
begin
targ := Party.Chars.Items(i);
for i:=0 to high(Bufflist) do
If (targ.Buffs.ById(BuffList, buffs)) then
begin
Engine.SetTarget(targ);
delay(10);
Engine.Usekey($32);
delay(100);
end;
end;
Delay(50);
end;
end.

Проверяй. Сам пока не могу проверить, да и не помню наизусть функций, чтобы сказать где ошибка.
А вообще есть тема [topic='1947']Cleanse[/topic].
 
Все равно клинсит рандомно 1 тело из пати(
 
Buffs: TBuffList;
должно быть
Buff: TL2Buff;

=\

Но главная ошибка в том, что ты для 2ух вложенных циклов используешь 1 переменную для счетчика. Нужно завести еще одну. Из-за этого и проблемы.
Ты постоянно обнуляешь I, поэтому никогда у тебя всю пати клинсить не будет.
 
const
range=600;
var
skill: TL2Skill;
i,j: Integer;
Buffs: TL2Buff;
targbc, targ:TL2Live;
BuffList: array of integer;
begin
bufflist:= [522, 627];
while Engine.Status = lsOnline do
begin
if ((Engine.GetSkillList.byid(1409, skill)) and (Skill.EndTime < 950)) then
for i:=0 to Party.Chars.Count -1 do
begin
targ := Party.Chars.Items(i);
for j:=0 to high(Bufflist) do
If (targ.Buffs.ById(BuffList[j], buffs)) then
begin
Engine.SetTarget(targ);
delay(10);
Engine.Usekey($32);
delay(100);
end;
end;
Delay(50);
end;
end.

и все равно не работает(
 
:( Работает онли на 1 члена пати. Если в пачку взять 2 мембера он клинсанет рандомно одного из них. Если после клинса кикнуть этого мембера - то клинсит оставщегося.
 
@Krickt, @BlackBeard, спасибо большое за помощь) BB твой вариант оказался рабочим с небольшими поправками)
 
const
CLEANSE_ID = 1409;
ITERATION_DELAY = 100;

var
skill: TL2Skill;
i: Integer;

begin

while Engine.Status = lsOnline do
begin

if (SkillList.ByID(CLEANSE_ID, skill)) then
begin

for i:=0 to Party.Chars.Count - 1 do
begin

if (Party.Chars.Items(i).AbnormalID > 0) then
begin
Engine.SetTarget(Party.Chars.Items(i));
Engine.UseSkill(CLEANSE_ID, true, true);
end;

if User.AbnormalID > 0 then
begin
Engine.SetTarget(User);
Engine.UseSkill(CLEANSE_ID, true, true);
end;

end;

end;

Delay(ITERATION_DELAY);

end;

end.

Вот где-то скрип нарыл вроде рабочий не помню.
 
спасибо, но если не ошибаюсь, он не полностью рабочий)
 
Я не шарю(Пока) в скриптах, помогаю как могу =)
Ну давай разобрать попробуем по полочкам, смотри Party.Chars.Items(i) в массиве данные лежат в рандомной последовательносте.
Если у обоих есть дебафф то он клинсует первого в массиве под елементом 0 . Вот откуда рандом . У нас главный вопрос чтоб клинсовал. А уж если тебе надо последовательность делай проверку на клас!
 
Назад
Сверху