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

Отключение бафов и лечения если на тебе ФоИ, целест

Рег
11 Дек 2015
Сообщения
51
Реакции
0
Не пашет)
Кто-то может помочь?





Код:
procedure BotON;
var
i,buffID,buffID1,buffID2,buffID3,buffID4: integer;
Tmp: TL2Buff;
obj: TL2Effect;
charx: TL2Char;
begin
buffID := 5576;
buffID1 := 1427;
buffID2 := 1418;
buffID3 := 3158;
buffID4 := 423;  //1505   423-баф дестра для теста(баф на атаку огнем)
while true do begin
if   (not user.buffs.ByID(buffID,Tmp))
 and (not user.buffs.ByID(buffID1,Tmp))
 and (not user.buffs.ByID(buffID2,Tmp))
 and (not user.buffs.ByID(buffID3,Tmp))
 and (not user.buffs.ByID(buffID4,Tmp)) then begin
Engine.FaceControl(2,true);
Engine.FaceControl(3,true);
delay(1000)
end;
end;
end;

procedure BotOFF;
var
i,buffID,buffID1,buffID2,buffID3,buffID4: integer;
Tmp: TL2Buff;
obj: TL2Effect;
charx: TL2Char;
begin
buffID := 5576;
buffID1 := 1427;
buffID2 := 1418;
buffID3 := 3158;
buffID4 := 423;  //1505
while true do begin
if   (user.buffs.ByID(buffID,Tmp))
 and (user.buffs.ByID(buffID1,Tmp))
 and (user.buffs.ByID(buffID2,Tmp))
 and (user.buffs.ByID(buffID3,Tmp))
 and (user.buffs.ByID(buffID4,Tmp)) then begin
Engine.FaceControl(2,false);
Engine.FaceControl(3,false);
delay(1000)
end;
end;
end;

begin
  script.newThread(@BotON);
  script.newThread(@BotOFF);
delay(1000)
end.
 
@ZedKei, buffID5 не объявлен + лишняя закрывающая скобка в 26 строке
 
Почему не засунуть все ид скиллов в массив и потом циклом перебирать его и чекать бафы? Так же проще будет, чем каждый раз объявлять переменные, засовывать туда бафы, добавлять новые условия Х_х. И условие для отключения бота неверное, судя по условию у тебя должны быть наложены все бафы, для отключения бота, а не какое-то из них..
 
@SoundShocking, К сожалению мой опыт в скриптах 1 день. Не умею Делать массив
 
Теперь автоматически отключает, но обратно не активирует

Код:
procedure BotAutoOFF;
var
i,buffID,buffID1,buffID2,buffID3,buffID4: integer;
Tmp: TL2Buff;
obj: TL2Effect;
charx: TL2Char;
begin
buffID := 5576;
buffID1 := 1427;
buffID2 := 1418;
buffID3 := 3158;
buffID4 := 1432;  //1505   1432 - Увеличение Силы (Increase Power)
while true do begin
if not user.buffs.ByID(buffID,Tmp)
or not user.buffs.ByID(buffID1,Tmp)
or not user.buffs.ByID(buffID2,Tmp)
or not user.buffs.ByID(buffID3,Tmp)
or not user.buffs.ByID(buffID4,Tmp) then begin
Engine.FaceControl(2,true);
Engine.FaceControl(3,true);
delay(100)
end;
end;
end;

var
i,buffID,buffID1,buffID2,buffID3,buffID4: integer;
Tmp: TL2Buff;
obj: TL2Effect;
charx: TL2Char;
begin
buffID := 5576;
buffID1 := 1427;
buffID2 := 1418;
buffID3 := 3158;
buffID4 := 1432;  //1505   1432 - Увеличение Силы (Increase Power)
while true do begin
if user.buffs.ByID(buffID,Tmp)
or user.buffs.ByID(buffID1,Tmp)
or user.buffs.ByID(buffID2,Tmp)
or user.buffs.ByID(buffID3,Tmp)
or user.buffs.ByID(buffID4,Tmp) then begin
Engine.FaceControl(2,false);
Engine.FaceControl(3,false);
delay(100)
end;
end;

begin
  script.newThread(@BotAutoOFF);
end;
end.
 
Боже, что за код :D У тебя 2 бесконечных цикла и если попадает в один то из него уже не выйдет, или ставь условия все в один цикл или делай 2 процедуры как было в 1ом посте.
 
Только что название темы прочитал.. Почему все пытаются избегать простую настройку через интерфейс, извращаясь скриптами?
 
ZedKei написал(а):
SARCAZM, Разве это можно сделать в интерфейсе?
ну вообще есть проверка в боте на наличие бафа/отсутствие его в условиях использования скилла :D
 
@SoundShocking,
В лечении нельзя поставить условие, если на тебе висит баф, то не использовать.
2a9172ad13be4e6ada2bc8eab4e28359.png

А в бафах хочется чтоб баф юзался не когда уже закончился, а заблаговременно (около 10 сек до окончания бафа).
Короче нужен скрипт
 
ZedKei написал(а):
А в бафах хочется чтоб баф юзался не когда уже закончился, а заблаговременно (около 10 сек до окончания бафа).
2j2RyCo.jpg
fn5vtA4gncs.jpg
 
@SARCAZM, Важнее банки, а не бафы. Чаще всего именно они сбивают целест или банка МП юзается в контр целесту и не регенит, а откат идет.
 
@ZedKei, а почему бы банки не настроить через вкладку бафов, раз такое дело? Условия на HP/MP/CP есть и там, и там
 
@SARCAZM, Можно добавить только 2 условия. Т.е. только 2 бафа.
3-тье условие будет показатель ХП/ЦП/МП
Так что нужен скрипт
 
uses sysutils;

procedure onoff;
var
i:integer;
buff:TL2Buff;
const
buffs_array:array[0..4] of integer=(5576, 1427, 1418, 3158, 1204);
begin
while true do
begin
for i:=0 to high(buffs_array) do
begin
if(user.buffs.byid(buffs_array, buff)) then
begin
Engine.FaceControl(2,false);
Engine.FaceControl(3,false);
print(buff.name+' [ID '+inttostr(buff.id)+']. Duration: '+floattostr(buff.endtime/1000)+' sec');
//delay(buff.endtime);
break;
end else
begin
Engine.FaceControl(2,true);
Engine.FaceControl(3,true);
//print('on');
end;
end;

delay(1000);
end;
end;

begin
script.newthread(@onoff);
end.

ну как-то так на коленке, там закоментирована пауза на время действия баффа, вроде как работает все, но есть куда дорабатывать еще
 
@SoundShocking, Да, работает. Но иногда включается, даже если висит эффект с нужным айди, сбивает получется целесту
 
@ZedKei, поставь паузу меньше, ты не словишь этот момент, во время каста может наложиться баф и будет тоже самое. проще банки через скрипт прописать и чекать, есть ли бафы, мб и хил проще так сделать, если там не много.
 
Clip2net_160214002850.png
можно ведь так добавить банки и условия для их использования, тоже самое с хилом на себя и пати..
 
Назад
Сверху