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

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

Помогите с доделкой скрипта!


Лучший Ответ qseven228, 19 Декабрь 2017 - 00:42

i:integer; begin while true do begin delay(200); //раскомментировать нужное услови(е\я) для ПВП for i:=0 to CharList.count-1 do if ( (not CharList.Items(i).Dead) and ( CharList.Items(i).InRange(149144, 120376, -4848,1800,50) ) and ( CharList.Items(i).Clanid=268526829 ) ) then begin engine.settarget(CharList.Items(i)); Engine.UseSkill(4314); //... Перейти к сообщению


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

#21
LLIaKaJleHoK

LLIaKaJleHoK
  • 5
    0
    Не выбрано
    • Lvl 3
    • Пользователь
Возможно так вы имели ввиду нужно сделать?


var
i:integer;
 
function CheckItemCount (const itemID: Integer; const quest: Boolean = False) : Integer;
var tempItem: TL2Item;

   begin
     if quest then Inventory.Quest.ByID(itemID, tempItem)
     else Inventory.User.ByID(itemID, tempItem);
     Result := tempItem.Count;
   end;
 
   begin
 
     print(user.target.attackable);
     while true do
   begin
     delay(200);
	 
      //раскомментировать нужное услови(е\я) для ПВП
     for i:=0 to CharList.count-1 do
     if ( (not CharList.Items(i).Dead) and 
     ( CharList.Items(i).InRange(-100061, 236110, -3497,1800,50) )   
 
      //and CharList.Items(i).attackable
      //and CharList.Items(i).InZone
      //and (CharList.Items(i).ClanID<>User.ClanID)
      ) then
 
   begin
    
     engine.settarget(CharList.Items(i));
     Engine.UseSkill(4314);
     //Engine.UseSkill(тутскиллид);
     break;
   end;
    while ((not user.target.dead) and (not user.dead)) do 
   begin
      //использование во время боя
     Engine.UseSkill(4314);
      //Engine.UseSkill(тутскиллид);
     delay(200);
      end;
	  
    engine.canceltarget;
   
   begin
     while true do begin
     if CheckItemCount(1289) < 99 then begin  // Проверка количества квест итемов
    Engine.FaceControl(0, True);
   Break;
    end;
	
   begin
            Delay(1000);
            Engine.MoveTo(-103545, 237176, -3688);
            Delay(1000);
            Engine.SetTarget(32071); // Выделяем телепорт
            Delay(1000);
            Engine.DlgOpen;
            Delay(1000);
            Engine.DlgSel(5);
            Delay(1000);
            Engine.DlgSel(6);
            Delay(1000);
            Engine.DlgSel(1);
            Delay(10000);
            Engine.MoveTo(147442, -56384, -2776);
            Delay(1000);
 
            Engine.SetTarget(30001);  // Выделяем НПЦ с квестом
 
            Engine.DlgOpen;
            Delay(1000);
            Engine.DlgSel(2);
            Delay(3000);
            Engine.DlgOpen;
            Delay(1000);
            Engine.DlgSel(2);
            Delay(1000);
            Engine.DlgSel(1);
            Delay(1000);
            Engine.MoveTo(147618, -56447, -2776);
            
            Delay(1000);
            
            Engine.SetTarget(32071);     // Идем к телепорту
            Delay(1000);
            Engine.DlgOpen;
            Delay(1000);
            Engine.DlgSel(1);
            Delay(1000);
            Engine.DlgSel(10);
            Engine.MoveTo(-100962, 236740, -3496);
            end
 
        end;
    end;
 end;
end.


Сообщение отредактировал LLIaKaJleHoK: 01 Июль 2019 - 20:15

  • 0

#22
ScythLab

ScythLab

Тег code научился использовать, уже неплохо. Про форматирование можно почитать в инете по запросу "правила форматирования кода делфи", вот один из простых доступных примеров: http://fkn.ktu10.com/?q=node/8763

Сейчас в твоем коде невозможно понять где начинается цикл и где он заканчивается, где границы условий, функций и прочего, поэтому разобраться в этом сложно. Делфи (не знаю с какой версии) умеет автоматически форматировать код по нажатию Ctrl+D (главное чтобы эта функция была включена, т.к. лично я ее вырезаю, чтобы не мешалась и не портила мое форматирование). Попробуй привести код в порядок и может сам разберешься с проблемой.

Может разберешься что делает код

if CheckItemCount(1289) < 99 then // Проверка количества квест итемов
begin
  Engine.FaceControl(0, True);
  Break;
end;

  • 0

Хобби: разработка непубличного бота для Lineage


#23
LLIaKaJleHoK

LLIaKaJleHoK
  • 5
    0
    Не выбрано
    • Lvl 3
    • Пользователь

ScythLab, Если в моем коде ничего не понятно, перейдите на 1 страницу и добавьте мне в первый пост пожалуйста проверку количества квест итемов в инвентаре, только что б оно работало. А так это не помощь, а набитие постов.


  • 0

#24
ScythLab

ScythLab

LLIaKaJleHoK, помощь != сделать_все_за_тебя

если сам не в состоянии с этим разобраться и нет желания (или мозгов) учиться, то тебе нужна не помощь, а тебе нужна выполненная работа, и здесь 2 варианта:

1) жди филантропов

2) либо заказывай доработку скрипта у скриптокодеров за вознаграждение

 

извиняй, если обидел тебя своей накруткой постов


  • 1

Хобби: разработка непубличного бота для Lineage


#25
vvfrc33

vvfrc33
  • 54
    16
    Горит!
    • Lvl 27
    • Пользователь
    Город
    СПБ

LLIaKaJleHoK,

While CheckItemCount(1289,True) < 99 do delay(555); // ждём пока не набили 100
//Продолжаем действия

Или можно так если в цикле проверка

If CheckItemCount(1289,True) > 99 then begin
  //Чё то делаем 
End;

Тут дичь не понятная

if CheckItemCount(1289) < 99 then // Проверка количества квест итемов
begin
  Engine.FaceControl(0, True);
  Break;
end;

включаешь интерфейс пока итемы не нафармлены  :wtf:


  • 1

#26
monika

monika
  • 255
    64
    Вау!
    • Lvl 40
    • Пользователь
    Город
    Москва

Откуда столько бегинов? мне кажется он тупо накидал шлака в одно место.

 

1) жди филантропов
var
i:integer;
 
function CheckItemCount (const itemID: Integer; const quest: Boolean = False) : Integer;
var 
  tempItem: TL2Item;
begin
  if quest then 
     Inventory.Quest.ByID(itemID, tempItem)
  else 
     Inventory.User.ByID(itemID, tempItem);
  Result := tempItem.Count;
end;
 
  
begin 
  print(user.target.attackable);
  while true do
   begin
    delay(200);
	 
    //раскомментировать нужное услови(е\я) для ПВП
    for i:=0 to CharList.count-1 do
     if ( (not CharList.Items(i).Dead) and ( CharList.Items(i).InRange(-100061, 236110, -3497,1800,50) ) ) then
       begin    
         engine.settarget(CharList.Items(i));
         Engine.UseSkill(4314);
         break;
       end;

    while ((not user.target.dead) and (not user.dead)) do 
      begin
        //использование во время боя
        Engine.UseSkill(4314);
        delay(200);
      end;
	  
    engine.canceltarget;
   
    begin
     while true do begin
     if CheckItemCount(1289) < 99 then begin  // Проверка количества квест итемов
     Engine.FaceControl(0, True);
     Break;
    end;
	
  begin
   Delay(1000);
   Engine.MoveTo(-103545, 237176, -3688);
   Delay(1000);
   Engine.SetTarget(32071); // Выделяем телепорт
   Delay(1000);
   Engine.DlgOpen;
   Delay(1000);
   Engine.DlgSel(5);
   Delay(1000);
   Engine.DlgSel(6);
   Delay(1000);
   Engine.DlgSel(1);
   Delay(10000);
   Engine.MoveTo(147442, -56384, -2776);
   Delay(1000);
 
   Engine.SetTarget(30001);  // Выделяем НПЦ с квестом
 
   Engine.DlgOpen;
   Delay(1000);
   Engine.DlgSel(2);
   Delay(3000);
   Engine.DlgOpen;
   Delay(1000);
   Engine.DlgSel(2);
   Delay(1000);
   Engine.DlgSel(1);
   Delay(1000);
   Engine.MoveTo(147618, -56447, -2776);
            
   Delay(1000);
            
   Engine.SetTarget(32071);     // Идем к телепорту
   Delay(1000);
   Engine.DlgOpen;
   Delay(1000);
   Engine.DlgSel(1);
   Delay(1000);
   Engine.DlgSel(10);
   Engine.MoveTo(-100962, 236740, -3496);
   end
 
        end;
    end;
 end;
end.

Тут дичь не понятная

 

Дело в том что там дальше идет просто сдвиг по фазе


Сообщение отредактировал monika: 09 Июль 2019 - 16:27

  • 0

       Жми вверх !    rep_up.pngrep_up.pngrep_up.png      449540669.gif

 

 

 


#27
monika

monika
  • 255
    64
    Вау!
    • Lvl 40
    • Пользователь
    Город
    Москва

Должно быть вот так:

Скрытый текст
Нажать кнопку "Like" (Доступно, если у Вас более 3-х сообщений)


Сообщение отредактировал monika: 09 Июль 2019 - 16:42

  • 0

       Жми вверх !    rep_up.pngrep_up.pngrep_up.png      449540669.gif

 

 

 


#28
ScythLab

ScythLab

1) жди филантропов

Если долго сидеть на берегу реки, то можно увидеть, как по ней проплывет труп твоего врага.

ТСу наверное повезло)


  • 0

Хобби: разработка непубличного бота для Lineage


#29
Donator

Donator
  • 70
    26
    А что, если...
    • Lvl 32
    • Пользователь

Если долго сидеть на берегу реки, то можно увидеть, как по ней проплывет труп твоего врага.
ТСу наверное повезло)

Чувак просто на тех поддержке сидит 10 лет, ему не привыкать)
  • 1

#30
monika

monika
  • 255
    64
    Вау!
    • Lvl 40
    • Пользователь
    Город
    Москва

LLIaKaJleHoK, в 27 посте рабочий вариант


Donator, люди разные нужны, люди разные важны


  • 0

       Жми вверх !    rep_up.pngrep_up.pngrep_up.png      449540669.gif

 

 

 



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

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

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