Перейти к содержимому

Фотография
- - - - -

Зарядка шилки об одного чара при соблюдении условий

скрипт шилка помощь

  • Авторизуйтесь для ответа в теме
Сообщений в теме: 6

#1
Fing

Fing
  • 6
    0
    Не выбрано
    • Lvl 4
    • Пользователь

Доброго дня всем!
Из представленных тут скриптов пытаюсь реализовать скрипт зарядки иконы о чара при соблюдении двух условий
1. Наличие рейда
2. Проверка на откат иконы
 

var
buff : TL2Buff;
weapon : TL2Item;
control : TL2Control;
skill : TL2Skill;
npc: TL2Live;
secondChar : String;


const
fists = 4794;
sword = 9442;
shield = 9441;
raid = 25692;

procedure POS_Charge_Solo();

begin
control:= Engine;
secondChar:= 'Echo';
while Delay(100) do
begin
delay(100);
NpcList.ByID(raid, npc);
if (Assigned(npc)) then
if control.GetSkillList.ByID(789, skill) and (skill.EndTime = 0) then
control.FaceControl(0, false);
if not control.GetUser.Buffs.ByID(789, buff) or (buff.EndTime < 15000) 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;

Так вот, я понимаю, что где-то в структуре кода закралась ошибка.
Хотелось бы реализовать следующиее возможности
-Если есть рейд ID - продолжаем
-Если окна откатилась продолжаем
-Зарядка
Код выше работает, но криво. После цикла зарядки чар опять переключается на кастеты и начинает зарядку игнорируя проверку отката скилла шилки.

Помогите, я в кодинге профан с нулевыми знаниями.
 


  • 0

#2
pups

pups

этот код вообще не запустится, т.к. нет конечного end'a


  • 0

Discord: pups#9809


#3
Fing

Fing
  • 6
    0
    Не выбрано
    • Lvl 4
    • Пользователь

pups, ну, это часть всего скрипта, в который входит еще и бафер.


  • 0

#4
pups

pups

Fing, ну если я правильно понимаю, то он у тебя и саму шилку не бафает.
если он не бафает шилку, а только заряжает бесконечно, то скорее всего проблема в том, что где-то ты поленился лишний раз написать begin для какого-то if.
если так, то нужно лучше форматировать код и подобные ошибки будут сразу видны.
можно также логирование добавить, например в виде print'ов, чтобы понимать на каком этапе у тебя всё ломается.

Спойлер (+/-)


Сообщение отредактировал pups: 29 Апрель 2020 - 11:42

  • 0

Discord: pups#9809


#5
Fing

Fing
  • 6
    0
    Не выбрано
    • Lvl 4
    • Пользователь

pups, В том то и проблема, что при первом запуске цикл проходит полностью, в т.ч. бафает шилку.
Проблема в том, что после первого цикла отключается проверка

if control.GetSkillList.ByID(789, skill) and (skill.EndTime = 0) then

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

 


  • 0

#6
Fing

Fing
  • 6
    0
    Не выбрано
    • Lvl 4
    • Пользователь

ап


  • 0

#7
pups

pups

да че апать то, уже ж сказал - проставь begin..end'ы в условиях и получишь совсем другую логику.
вот тебе более наглядный вариант

// пример 1
x:= true;
if (x) then
  print('true');
print('false');

// пример 2
x:= true;
if (x) then begin
  print('true');
  print('false');
end;

  • 0

Discord: pups#9809




Темы с аналогичным тегами наработки, скрипт шилка, помощь

Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных

Rawr.pro - Сделано с для игроков.