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

Авто зарядка иконы Adrenalin

SARCAZM

Это что за покемон?
Команда форума
Рег
5 Июн 2015
Сообщения
1,446
Реакции
1
Trovo
SARCAZM
Автор iR_. Название темы может немного​
не совпадать с действительным назначением скрипта.​
За шару огромное спасибо @NeonEye
post-1-0-00585900-1440226263.png
uses
SysUtils, SettingsModule, Classes;

const
Date1900 {: LongInt} = $0001AC05; {Julian day count for 01/01/1900 -- TDateTime Start Date}
Date1970 {: LongInt} = $00020FE4; {Julian day count for 01/01/1970 -- Unix Start Date}
Unix0Date: TDateTime = 25568; {Date1970 - Date1900}

SecondsInDay = 86400; {Number of seconds in a day}
SecondsInHour = 3600; {Number of seconds in an hour}
SecondsInMinute = 60; {Number of seconds in a minute}
HoursInDay = 24; {Number of hours in a day}
MinutesInHour = 60; {Number of minutes in an hour}
MinutesInDay = 1440; {Number of minutes in a day}

var
MySet: TSettings;
iconID: integer;
chargeID: integer;
triggerID: integer;
//config
itemResurrectId: integer;
leaderName: string;
rangeFromLeader: integer;
timer: tdatetime;

function AbDateTimeToUnixTime(DateTime : TDateTime) : LongInt;
{ convert Delphi TDateTime to unix date }
var
Hrs, Mins, Secs, MSecs : Word;
Dt, Tm : TDateTime;
begin
Dt := Trunc(DateTime);
Tm := DateTime - Dt;
if Dt < Unix0Date then
Result := 0
else
Result := Trunc(Dt - Unix0Date) * SecondsInDay;

DecodeTime(Tm, Hrs, Mins, Secs, MSecs);
Result := Result + (Hrs * SecondsInHour) + (Mins * SecondsInMinute) + Secs;
end;

function fHaschargeID: boolean; //есть зарядка
begin
Result := effectTime(chargeID) > 0;
end;

function fHasTrigger: boolean; //есть триггер
begin
Result := effectTime(triggerID) > 0;
end;

function fHasTrigger3: boolean; //триггер 3 уровня
begin
Result := effectLevel(triggerID) = 3;
end;

function fHasIcon: boolean; //есть икона
begin
Result := effectTime(iconID) > 0;
end;

function fTriggerFunc: boolean; //есть триггера, но его лвл меньше 3 либо время до конца 2 секунды
begin
Result := (fHasTrigger
and (not fHasTrigger3 or (effectTime(triggerID) <= 2000)));
end;

function getCurrentState: integer;
var
painOfShilenTrigger: TL2Buff;
begin
if (skillCoolTime(iconID) >= 5000) then
begin
Result := 0;
exit;
end;

if not fHaschargeID and not fHasTrigger or fTriggerFunc or fHasIcon then //или есть шилка
begin
if (User.Buffs.ByID(triggerID, painOfShilenTrigger)) then
Engine.Dispel(painOfShilenTrigger.Name);

Result := 1;
exit;
end;

if fHaschargeID then
begin
Result := 2;
exit;
end;

if fHasTrigger3 then
begin
Result := 3;
exit;
end;

end;

procedure mainStatus;
var
partyLeader: TL2Live;
state: integer;
tmpChar: TL2Live;
begin
MySet.SetFile(Script.Path + 'autoShilenParams_'+User.Name+'.ini');

leaderName := MySet.Load('Char params', 'Leader Name', User.Name);
itemResurrectId := MySet.Load('Char params', 'Resurrect item ID', 737);

iconID := MySet.Load('Skills', 'Icon ID', 789);
chargeID := MySet.Load('Skills', 'Charge ID', 788);
triggerID := MySet.Load('Skills', 'Trigger ID', 5564);

Engine.MSG('[Settings]', 'Leader name: ' + leaderName, 8388736);
Engine.MSG('[Settings]', 'Resurrect item ID: ' + IntToStr(itemResurrectId), 8388736);
Engine.MSG('[Settings]', 'Icon ID: ' + IntToStr(iconID), 8388736);
Engine.MSG('[Settings]', 'Charge ID: ' + IntToStr(chargeID), 8388736);
Engine.MSG('[Settings]', 'Trigger ID: ' + IntToStr(triggerID), 8388736);

state := 1;

while Engine.Status = lsOnline do
begin
delay(500);
state := getCurrentState;
case state of
0 : delay(1000);
1 :
begin
if true then //(petlist.count <> 0) and (not petlist.items(0).Dead)
begin

if not shouldBuff then
continue;

if not shouldchargeID and (skillCoolTime(iconID) > 5000) then
continue;

if (skillCoolTime(chargeID) <> 0) then
begin
delay(skillCoolTime(chargeID));
continue;
end;

Engine.UseSkill(chargeID);
delay(300);
delay(User.Cast.EndTime + 500);

if fHaschargeID then
begin
Engine.FaceControl(0, false);
Engine.UseAction(23);
delay(1000);
end;

end;
end;
2 :
begin

if (petlist.count <> 0) and (petlist.items(0).Dead) then
begin
Engine.SetTarget(petlist.items(0));
Engine.UseItem(itemResurrectId);
delay(user.cast.endtime);
continue;
end;

while (not User.Dead and fHaschargeID and not fHasTrigger3) do
begin
if (petlist.count = 0) then
begin
MySet.SetFile(Script.Path + 'autoShilenParams_'+User.Name+'.ini');
Engine.SetTarget(MySet.Load('Char params', '2nd shilen name', User.Name));

if (not CharList.ByName(MySet.Load('Char params', '2nd shilen name', User.Name), tmpChar)) then
begin
print('Char with name: ' + MySet.Load('Char params', '2nd shilen name', User.Name) + ' not found');
break;
end;

Engine.Attack(10, true);
delay(30);
end else begin

if (petlist.items(0).Dead) then
break;

Engine.SetTarget(petlist.items(0));
Engine.Attack(10, true);
delay(30);
end;
end;

end;
3 :
begin

if Party.Chars.Count <> 0 then
begin
MySet.SetFile(Script.Path + 'autoShilenParams_'+User.Name+'.ini');
leaderName := MySet.Load('Char params', 'Leader Name', User.Name);
if not Party.Chars.ByName(leaderName, partyLeader) then
print('Leader with this name [' + leaderName + '] not found in party');

if Party.Chars.ByName(leaderName, partyLeader) then
begin
rangeFromLeader := MySet.Load('Char params', 'Range from leader', 150);
if (rangeFromLeader <> 0) then
Engine.MoveTo(partyLeader, -rangeFromLeader);
end;

if fHasTrigger3 then
begin
if ((skillCoolTime(iconID) <> 0) and ((skillCoolTime(iconID) + 300) <= effectTime(triggerID))) then
begin
delay(skillCoolTime(iconID));
end;

Engine.UseSkill(iconID);
delay(3000);
end;

end;
if fHasIcon then
Engine.FaceControl(0, true);
{
else
begin
if (User.Buffs.ByID(triggerID, painOfShilenTrigger) and (painOfShilenTrigger.Level = 3)) then
begin
if (SkillList.ById(iconID, spiritOfShilen) and (spiritOfShilen.EndTime <> 0) and (spiritOfShilen.EndTime + 300 <= painOfShilenTrigger.EndTime)) then
begin
delay(spiritOfShilen.EndTime);
end;

Engine.UseSkill(iconID);

end;
end;}

end;

//case end
end;
delay(300);
end;
end;

function shouldBuff: boolean;
var
destEngine: TL2Control;
eff: TL2Buff;
checkCharName: string;
shilenEndTime: integer;
begin
Result := false;
MySet.SetFile(Script.Path + 'autoShilenParams_'+User.Name+'.ini');
checkCharName := MySet.Load('Char params', 'Leader Name', User.Name);
shilenEndTime := MySet.Load('Char params', 'Shilen end time', 20 * 1000);

if not checkDist then
exit;

destEngine := GetControl(checkCharName);
if (Assigned(destEngine)) then
begin
Result := not destEngine.GetUser.Buffs.ById(iconID, eff) or
(destEngine.GetUser.Buffs.ById(iconID, eff) and (eff.EndTime < shilenEndTime));
end else
Result := true;
end;

function skillCoolTime(skillID: integer): cardinal;
var
eff: TL2Skill;
begin
if (SkillList.ByID(skillID, eff)) then
Result := eff.EndTime
else
Result := High(Cardinal);
end;

function effectTime(skillID: integer): cardinal;
var
eff: TL2Buff;
begin
if (User.Buffs.ByID(skillID, eff)) then
Result := eff.EndTime
else
Result := 0;
end;

function effectLevel(skillID: integer): cardinal;
var
eff: TL2Buff;
begin
if (User.Buffs.ByID(skillID, eff)) then
Result := eff.Level
else
Result := 0;
end;

function shouldchargeID: boolean;
var
destEngine: TL2Control;
shil: TL2Skill;
selfShil: TL2Skill;
checkCharName: string;
begin
MySet.SetFile(Script.Path + 'autoShilenParams_'+User.Name+'.ini');
checkCharName := MySet.Load('Char params', '2nd shilen name', User.Name);

Result := false;

destEngine := GetControl(checkCharName);

if (Assigned(destEngine)) then
begin
Result := destEngine.GetSkillList.ById(iconID, shil) and (shil.Endtime > 30 * 1000);
end else
Result := true;

end;

function checkDist: boolean;
var
rangeFromLeader: integer;
leaderName: string;
leader: TL2Live;
range: integer;
begin
leaderName := MySet.Load('Char params', 'Leader Name', User.Name);
range := MySet.Load('Char params', 'Buff range', 800);
CharList.ByName(leaderName, leader);

if (Assigned(leader)) then
begin
if (User.DistTo(leader) < range) then
begin
Result := true;
//print( User.DistTo(leader));
exit;
end;
end;

Result := false;

end;


begin
timer := EncodeDate(2015, 05, 10); //year | month | day
if (AbDateTimeToUnixTime(timer) < AbDateTimeToUnixTime(now)) then
begin
print('Test time fired');
print('Developer ICQ - 670465907');
exit;
end;

script.newThread(@mainStatus);
end.

 
ineedsomeanswers написал(а):
print('Test time fired');
print('Developer ICQ - 670465907');
exit;
такие дела
Вот это из скрипта удалите, должно заработать:
Код:
  timer := EncodeDate(2015, 05, 10); //year | month | day
  if (AbDateTimeToUnixTime(timer) < AbDateTimeToUnixTime(now)) then
  begin
    print('Test time fired');
    print('Developer ICQ - 670465907');
    exit;
  end;
 
:orly:
Почти во всех скриптах iR_ есть демо-таймер. Лечится удалением

timer := EncodeDate(2015, 05, 10); //year | month | day
if (AbDateTimeToUnixTime(timer) < AbDateTimeToUnixTime(now)) then
begin
print('Test time fired');
print('Developer ICQ - 670465907');
exit;
end;

из главного тела скрипта (между begin и end.) если кто не знал, как написал автор выше.
 
Скачал икону отсюда снизу удалил все как сказано но сначало пишет
п»їuses
SysUtils, SettingsModule, Classes;
 
@Turbo745, не смущает символ

п»ї

вначале? Сохрани через notepad++ в кодировке UTF-8 (Без BOM)
Либо просто скопируй вставь в окно адреналина, все кроме первого слова uses, его напиши вручную
 
Нажимаю на скил зарядки иконы
берет в асист волка наносит демаг ,зарядка доходит до 2ур и пропадает
 
@SARCAZM,
А у меня такая проблема: бот заряжает до 1 уровня, а затем самостоятельно снимает с себя эту зарядку. Как-будто нажимая alt+click на неё.
В чём может быть проблема?
 
он через волка заряжает?
 
1) Насколько я понял, именно этот кусок кода диспелит зарядку. Если закомментировать этот код, то всё работает нормально. Тогда вообще нужна эта часть кода?

if not fHaschargeID and not fHasTrigger or fTriggerFunc or fHasIcon then //или есть шилка
begin
if (User.Buffs.ByID(triggerID, painOfShilenTrigger)) then
Engine.Dispel(painOfShilenTrigger.Name);

Result := 1;
exit;
end;


2) Проблема скрипта в том, что иногда на пете нету рефлекта. Как можно реализовать проверку на наличие рефлекта в строке бафов пета?
3) Как возможно реализовать смену оружия перед зарядкой?
 
скрипт очень класный конечто но как можно 2х шк на скрипт поставить что бы они давали по кд шилку ? есть идея что 1 шк будет на скрипте обычном а второй с условием что если нету шилки то он наченает заряжать 2рую
 
var
buff : TL2Buff;
weapon : TL2Item;
control : TL2Control;
secondChar : String;

const
fists = 8810;
sword = 10434;
shield = 15621;

begin
control:= Engine;
secondChar:= 'izRo';
while Delay(100) do begin
if not control.GetUser.Buffs.ByID(789, buff) or (buff.EndTime < 15000) then begin
control.FaceControl(0, false);
if not control.GetUser.Buffs.ByID(5564, buff) and not control.GetUser.Buffs.ByID(778, buff) then
control.UseSkill(788);

Delay(1000);

if control.GetInventory.User.ByID(fists, weapon) and not weapon.Equipped then
control.UseItem(fists);

Delay(100);
control.SetTarget(secondChar);
Delay(300);

while ((control.GetUser.Buffs.ByID(5564, buff) and (buff.Level < 3)) or control.GetUser.Buffs.ByID(788, buff)) and (control.GetUser.Target.Name = secondChar) do begin
control.Attack(100, true);
end;

end;
if control.GetUser.Buffs.ByID(5564, buff) and (buff.Level = 3) then begin

control.UseSkill(789);

if control.GetUser.Buffs.ByID(789, Buff) and (buff.EndTime > 55000) then begin

delay(200);

if control.GetInventory.User.ByID(shield, weapon) and not weapon.Equipped then
control.UseItem(shield);

if control.GetInventory.User.ByID(sword, weapon) and not weapon.Equipped then
control.UseItem(sword);

control.FaceControl(0, true);
Delay(10000);

if secondChar = User.Name then begin
secondChar:= control.GetUser.Name;
control:= Engine;
end else begin
control:= GetControl(secondChar);
secondChar:= User.Name;
end;

end;
end;
end;
end.

Давно писал, отключает интерфейс, одевает кастеты, заряжается, дает тош, одевает меч/щит, включает интерфейс.
Потом второй аналогично.
Заряжаются друг об друга.
Скрипт запускать на одном чаре, прописать ник второго и ид веапонов.
 
@SARCAZM, возможно ли переделать этот скрипт, так что бы 2 шк заряжались друг об друга и давали шилку друг за другом, в таком интервале, что бы она постоянно висела?
 
выделил весь скрипт - вставил в адрик ,включаю и не включается (( выдает ошибку снизу на енд (( че за беда
 
var allBuffs: TBuffList;
c: TL2Char;
y,i: Integer;

procedure shilka;
begin
Engine.UseSkill(784, True, False);
y:=0;
while y < 3 do begin
engine.SetTarget(petlist.items(0));
engine.attack(912, true);
delay(100);

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

Case allBuffs.Items(i).id of
5564 : begin
if allBuffs.Items(i).level = 3 then begin
Engine.UseSkill(785, True, False);
delay(110000);
y:=3;
print('buff');


end;
end;
end;
end;
end;
end;


begin

allBuffs := User.Buffs;
while Engine.Status = lsOnline do begin

for i:=0 to CharList.Count-1 do begin
c:=CharList.Items(i);

if (c.name='inparadise') or (c.name='navalen') //Сюда пишем ник !!!!!! Сохраняя Регистр
and (user.distto(c) < 900)
and not (c.dead) then begin

shilka;
delay(500);
end;
end;
end;
delay(500);
end.

Что-то вырезал ,но не могу написать что б перестал бить птицу после того как икону кинул уже ( помогите пожалуйста ) спасибо
 
Доброго времени суток))Уважаемые знатоки.Скачал данный скрипт,откоректировал как написано в постах выше,убрал диспел и часть где ICQ в чат выводит.Включаю скрипт.Но шк перестает бить волка секунды через 3-5 не зависимо от уровня заряда.И следовательно если меньше 3 заряда то просто останавливается.успел 3 зарядить-дает шилку.Что может быть не так?Обьясните если кто сталкивался.Заранее благодарен!
 
SARCAZM написал(а):
uses SysUtils, SettingsModule, Classes;
Что обозначает это строка??? у меня адрик ругается и красным выделяет её... и вообще обыясните нубу в архиве 3 файла 1 из них скрипт тогда 2 файла другие зачем??? или я что-то недопираю???

Если у кого есть скрипт на зарядку иконы шк о пета или перса с пати стукните в ЛС плиз
 
Bennie написал(а):
Ошибка в том, что не найден SettingsModule

Скачай архив из 1 поста и положи файлы из него в папку с адреналином
 
Назад
Сверху