Welcome!

Зарегистрировавшись у нас, вы сможете обсуждать, делиться личными сообщениями с другими членами нашего сообщества.

Регистрируйтесь прямо сейчас!
Wiki/База знаний.

Информация о серверах La2Friends

Костюм Валакаса.

Получи за подписку ВК и ТГ!

Adrenalin

Скачать Adrenalin бота

L2Walker

Скачать Walker бота

скрипты грузят цп

SeaDevil

Рыцарь
Сообщения
333
Реакции
20
всем нихао

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

заранее мерси за идеи чо эт может быть :Р
 

oReWo

Carl Clausewitz
Сообщения
328
Реакции
28
Проблема решена, всё в личке :)
 

SeaDevil

Рыцарь
Сообщения
333
Реакции
20
Всем бы рассказали)
это он думал что решено) на самом деле не решено)
проблема остается.
скрипты без повтора и скрипты на процедурах (в т.ч. с повторами) работают нормально.
а вот обычные скрипты с циклами повтора по прежнему добавляют к адрику 15-20% нагрузки цп за штуку...
 

SeaDevil

Рыцарь
Сообщения
333
Реакции
20
это он думал что решено) на самом деле не решено)
проблема остается.
скрипты без повтора и скрипты на процедурах (в т.ч. с повторами) работают нормально.
а вот обычные скрипты с циклами повтора по прежнему добавляют к адрику 15-20% нагрузки цп за штуку...
собственно говоря...я писал себе скрипты ребафа и возврата на спот на процедурах с повторами. все работает отлично кроме одного. добежав до спота бот бежит по маршруту обратно к начальной точке мув он. туда сюда. решение не нашел, поэтому забахал обычные версии. работают нормально, за одним исключением, грузят цп. ок, убрал в них цикл повтора. без этого работают. но без повтора отсутствует проверка на баф, ручками соимся и запускаем скриптец ребафа.
бог с ними со спойлами, но есть персы или ситуации, когда нужен цикл
 

onefinal

Бродяга
Сообщения
32
Реакции
9
собственно говоря...я писал себе скрипты ребафа и возврата на спот на процедурах с повторами. все работает отлично кроме одного. добежав до спота бот бежит по маршруту обратно к начальной точке мув он. туда сюда. решение не нашел, поэтому забахал обычные версии. работают нормально, за одним исключением, грузят цп. ок, убрал в них цикл повтора. без этого работают. но без повтора отсутствует проверка на баф, ручками соимся и запускаем скриптец ребафа.
бог с ними со спойлами, но есть персы или ситуации, когда нужен цикл
выложи сделаю тесты, мб пойму в чем беда
 

SeaDevil

Рыцарь
Сообщения
333
Реакции
20
выложи сделаю тесты, мб пойму в чем беда
obj: TL2NPC;
obj2: TL2Effect;
Enemy: TL2Live;
var Buff: TL2Buff;

begin
while 1 <> 2 do

begin
if (not User.Buffs.ByID(1086, buff)) or User.dead then // если нет хаст
begin
Engine.FaceControl(0, false); //выключаем бота
delay(500);
Engine.UseItem(1829);
delay(1000);
Engine.gohome(rtClanHall); // сое кх
Delay(25000);

begin
if User.inrange(145667, 25356, -2096, 500) then // точка появления в КХ
begin
Engine.SetTarget(35443);
delay(1000);
Engine.DlgOpen();
delay(500);
Engine.DlgSel(3);
delay(500);
Engine.BypassToServer('01');
delay(1000);
Engine.DlgSel(1);
delay(2000);
Engine.MoveTo(147480, 28064, -2256);
Engine.MoveTo(147154, 27773, -2279);
Engine.MoveTo(147197, 27211, -2215);
Engine.MoveTo(147292, 26298, -2133);
Engine.MoveTo(147193, 25871, -2023);
delay(2000);

begin
if User.inrange(147193, 25871, -2023, 500) then // рядом с бафером адена без бафа
begin
Engine.SetTarget(31613);
delay(1000);
Engine.MoveToTarget(-20);
Delay(3000);
Engine.DlgOpen();
delay(500);
Engine.BypassToServer('02');
delay(1000);
Engine.BypassToServer('03');
delay(1000);
Engine.BypassToServer('00');
Delay(500);
Engine.CancelTarget;

begin
if User.inrange(147176, 25688, -2016, 500) then // рядом с бафером адена с бафом
begin
Engine.SetTarget(31107);
delay(1000);
Engine.MoveToTarget(-20);
Delay(1000);
Engine.DlgOpen();
delay(500);
Engine.BypassToServer('03');
delay(500);
Engine.DlgSel(2); //улетаем в бренд
delay(1500);

begin
if User.inrange(46177, 170307, -4960, 500) then // точка появления в бренд
begin
Engine.MoveTo(46743, 170298, -4989); //первая метка по дороге от шарика
Engine.MoveTo(47206, 170369, -4991);
Engine.MoveTo(47572, 170596, -4991);
Engine.MoveTo(48139, 170550, -4991);
Engine.MoveTo(48435, 170322, -4991);
Engine.MoveTo(49141, 170299, -4989); //добежали до спота
Delay(500);

begin
if User.inrange(49141, 170299, -4989, 500) then //добежали до спота
begin
Engine.FaceControl(0,true); //врубаем бота
end;
end;
end;
end;
end;
end;
end;
end;
end;
end;
end;
end;

Delay(500);

end.
 

ништяк

Рыцарь
Сообщения
187
Реакции
10
я бы карту еще привязал сюдаа то добежал и включил, а что и как, хз, конеш это все в настройках перса на адрике у тебя, но карта интересней
 

band

Бродяга
Сообщения
31
Реакции
2
делей стоит за циклом. в целом вариантов застревания куча. советую поработать над логикой. куча вложеных друг в друга процедур не есть гуд.
Но в целом, если все остальное работает, достаточно последний делей перенести внутрь цикла. (см код внизу)
Код:
var
obj: TL2NPC;
obj2: TL2Effect;
Enemy: TL2Live;
Buff: TL2Buff;
begin
    while 1 <> 2 do
    begin
        if (not User.Buffs.ByID(1086, buff)) or User.dead then // если нет хаст
        begin
            Engine.FaceControl(0, false); //выключаем бота
            delay(500);
            Engine.UseItem(1829);
            delay(1000);
            Engine.gohome(rtClanHall); // сое кх
            Delay(25000);
            begin
                if User.inrange(145667, 25356, -2096, 500) then // точка появления в КХ
                begin
                    Engine.SetTarget(35443);
                    delay(1000);
                    Engine.DlgOpen();
                    delay(500);
                    Engine.DlgSel(3);
                    delay(500);
                    Engine.BypassToServer('01');
                    delay(1000);
                    Engine.DlgSel(1);
                    delay(2000);
                    Engine.MoveTo(147480, 28064, -2256);
                    Engine.MoveTo(147154, 27773, -2279);
                    Engine.MoveTo(147197, 27211, -2215);
                    Engine.MoveTo(147292, 26298, -2133);
                    Engine.MoveTo(147193, 25871, -2023);
                    delay(2000);
                    begin
                        if User.inrange(147193, 25871, -2023, 500) then // рядом с бафером адена без бафа
                        begin
                            Engine.SetTarget(31613);
                            delay(1000);
                            Engine.MoveToTarget(-20);
                            Delay(3000);
                            Engine.DlgOpen();
                            delay(500);
                            Engine.BypassToServer('02');
                            delay(1000);
                            Engine.BypassToServer('03');
                            delay(1000);
                            Engine.BypassToServer('00');
                            Delay(500);
                            Engine.CancelTarget;
                            begin
                                if User.inrange(147176, 25688, -2016, 500) then // рядом с бафером адена с бафом
                                begin
                                    Engine.SetTarget(31107);
                                    delay(1000);
                                    Engine.MoveToTarget(-20);
                                    Delay(1000);
                                    Engine.DlgOpen();
                                    delay(500);
                                    Engine.BypassToServer('03');
                                    delay(500);
                                    Engine.DlgSel(2); //улетаем в бренд
                                    delay(1500);
                                    begin
                                        if User.inrange(46177, 170307, -4960, 500) then // точка появления в бренд
                                        begin
                                            Engine.MoveTo(46743, 170298, -4989); //первая метка по дороге от шарика
                                            Engine.MoveTo(47206, 170369, -4991);
                                            Engine.MoveTo(47572, 170596, -4991);
                                            Engine.MoveTo(48139, 170550, -4991);
                                            Engine.MoveTo(48435, 170322, -4991);
                                            Engine.MoveTo(49141, 170299, -4989); //добежали до спота
                                            Delay(500);
                                            begin
                                                if User.inrange(49141, 170299, -4989, 500) then //добежали до спота
                                                begin
                                                    Engine.FaceControl(0,true); //врубаем бота
                                                end;
                                            end;
                                        end;
                                    end;
                                end;
                            end;
                        end;
                    end;
                end;
            end;
        end;   
        Delay(500); //добавил
    end;        
    //Delay(500); удалил
end.
Скрипт написан так, что если что-то пошло не так, то баста. Советую переделать.
 

SeaDevil

Рыцарь
Сообщения
333
Реакции
20
достаточно последний делей перенести внутрь цикла. (см код внизу)
о, вот это классная идея, проверю, сяп)
советую поработать над логикой.
есть теория что логика для вайл ду вообще отсутствует, потому что это просто повтор цикла...но не могу придумать другую логику, опять таки...
куча вложеных друг в друга процедур не есть гуд.
это же не процедуры, не скриптер не знаю как назвать, скажем это последовтельные действия...если убираем вайл ду...то есть цикл, то смысл в проверке отсутствует, их тоже убираем, и дальше просто руками сое, запускаем, норм без нагрузки ребафется добегает...но без повтора будет лежать в случае смерти пока руками не отошлю в кх и не запущу скрипт по новой
если что-то пошло не так
хз что там не так может пойти) скрипт вообще пройстейший) при отсутствии бафа или смерти сое кх, бежим к баферу, бежим на спот, все остальное в настройках адрика вшито)))))

в этом скрипте единственный косяк, что цикл, то есть вайл ду грузит цп +15-20% за штуку скрипта. но работает исправно. только цикл грузит цп.


а вот тот же самый скрипт с повтором, версия на процедурах, он не нагружает цп, но в нем другой косяк. добежав до спота, врубается, бьет мобов, НО. норовит убежать по маршруту мув ту обратно. так и бегает туда сюда. тоже не нашел лечения этой фигни...

var
obj: TL2NPC;
obj2: TL2Effect;
Enemy: TL2Live;
var Buff: TL2Buff;


procedure dead();
begin
if User.dead then
begin
Engine.FaceControl(0, false); //выключаем бота
Engine.gohome(rtClanHall); //сразу улетаем в КХ
Delay(2000);
gotobuff();
Delay(2000);
end;
end;



procedure checkbuff();
begin
if (not User.Buffs.ByID(1086, buff)) then // если нет хаст
begin
Engine.FaceControl(0, false); //выключаем бота
Engine.UseItem(1829); // сое кх
Delay(25000);
gotobuff();
Delay(2000);
end;
end;


procedure gotobuff();
begin
if User.inrange(145667, 25356, -2096, 500) then // точка появления в КХ
begin
Engine.SetTarget(35443);
delay(1000);
Engine.DlgOpen();
delay(500);
Engine.DlgSel(3);
delay(500);
Engine.BypassToServer('01');
delay(1000);
Engine.DlgSel(1);
delay(2000);
Engine.MoveTo(147480, 28064, -2256);
Engine.MoveTo(147154, 27773, -2279);
Engine.MoveTo(147197, 27211, -2215);
Engine.MoveTo(147292, 26298, -2133);
Engine.MoveTo(147193, 25871, -2023);
delay(2000);
end;
end;

procedure rebuff();
begin
if User.inrange(147193, 25871, -2023, 500) then // рядом с бафером адена
begin
Engine.SetTarget(31613);
delay(1000);
Engine.MoveToTarget(-20);
Delay(3000);
Engine.DlgOpen();
delay(500);
Engine.BypassToServer('02');
delay(1000);
Engine.BypassToServer('03');
delay(1000);
Engine.BypassToServer('00');
Delay(500);
Engine.CancelTarget;
end;
end;

procedure roadtospot();
begin
if (User.Buffs.ByID(1268, buff)) then // если есть вампирик
begin
Engine.SetTarget(31107);
delay(1000);
Engine.MoveToTarget(-20);
Delay(1000);
Engine.DlgOpen();
delay(500);
Engine.BypassToServer('03');
delay(500);
Engine.DlgSel(2); //улетаем в бренд
delay(500);
Engine.MoveTo(46743, 170298, -4989); //первая метка по дороге от шарика
end;
end;

procedure roadtospot2();
begin
if User.inrange(46743, 170298, -4989, 500) then //первая метка по дороге от шарика
begin
Engine.MoveTo(47206, 170369, -4991);
Engine.MoveTo(47572, 170596, -4991);
Engine.MoveTo(48139, 170550, -4991);
Engine.MoveTo(48435, 170322, -4991);
Engine.MoveTo(49141, 170299, -4989); //добежали до спота
Delay(1000);
onn();
Delay(1000);
end;
end;


procedure onn();
begin
if User.inrange(49141, 170299, -4989, 500) then //добежали до спота
begin
Engine.FaceControl(0,true); //врубаем бота
end;
end;


begin
while 1 <> 2 do
begin // бесконечный цикл

begin
dead();
checkbuff();
gotobuff();
rebuff();
roadtospot();
roadtospot2();
onn();
end;
end;

end.

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