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

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

Хельп!


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

#1
Sharick

Sharick
  • 42
    3
    Не выбрано
    • Lvl 23
    • Пользователь

Всем привет, пытаюсь настроить скрипт под себя но не могу понять что не делаю не так..
Суть такова есть у меня 20 точек фарма.. играю на сервере где фиговая гео дата приходиться страдать щас хочу написать так чтоб скрипт запускался к примеру с "10" зоны фарма что-бы не бежать в самое начало...

Хочу сделать так когда запускаешь скрипт я к примеру в 10 зоне.. что-бы он начал фармить с неё и дальше по кругу.
Ещё как вариант делать проверку на кординаты но я это тоже не знаю буду благодарен если напишите )

Так выглядит часть скрипта.

function MobInZone: boolean;
var
mob: integer;
begin
  result:= False;
  for mob:=0 to npclist.count-1 do begin
   if npclist.items(mob).inzone and not npclist.items(mob).dead then begin
     if npclist.items(mob).z > (user.z-400) then begin
      if npclist.items(mob).z < (user.z+400) then begin
      result:= true;
      end;
     end; 
   end;
  end;
end;

begin
while 1=1 do begin
 //Engine.UseSkill(286);
 engine.LoadZone('Do1.zmap');
 //Engine.UseSkill(286);
 engine.FaceControl(0, true);
 while MobInZone do delay(500);
 engine.FaceControl(0, false);
 Engine.UseSkill(298);
    //путь в след комнату
   Engine.MoveTo(-10680, 13496, -4880);
   Engine.MoveTo(-10680, 14584, -4880);
   Engine.MoveTo(-8792, 14600, -4880);
   
    
    
    
 delay(500);
 // Engine.UseSkill(286);
 engine.LoadZone('Do2.zmap'); 
 engine.FaceControl(0, true);
 while MobInZone do delay(500);
 engine.FaceControl(0, false);
 Engine.UseSkill(298);
 //путь в след комнату
Engine.MoveTo(-8792, 14600, -4880);
Engine.MoveTo(-9576, 14584, -4880);
Engine.MoveTo(-9544, 13464, -4880);
Engine.MoveTo(-8808, 13496, -4880);

 
 
 delay(500);
 // Engine.UseSkill(286);
 engine.LoadZone('Do3.zmap'); 
 engine.FaceControl(0, true);
 while MobInZone do delay(500);
 engine.FaceControl(0, false);
 Engine.UseSkill(298);
 //путь в след комнату
Engine.MoveTo(-8808, 13496, -4880);
Engine.MoveTo(-9592, 13528, -4880);
Engine.MoveTo(-9672, 14600, -4880);
Engine.MoveTo(-11336, 14616, -4880);
Engine.MoveTo(-11448, 15576, -4880);

А вот дичь что я пытался сделать..

function MobInZone: boolean;
var
mob: integer;
begin
  result:= False;
  for mob:=0 to npclist.count-1 do begin
   if npclist.items(mob).inzone and not npclist.items(mob).dead then begin
     if npclist.items(mob).z > (user.z-400) then begin
      if npclist.items(mob).z < (user.z+400) then begin
      result:= true;
      end;
     end; 
   end;
  end;
end;

begin
while 1=1 do begin

if user.inrange(-10695, 13523, -4896, 1000 , 1000)

then begin
 //Engine.UseSkill(286);
 engine.LoadZone('Do1.zmap'); // сохраняем пре-сеты комнат где будем фармить
 //Engine.UseSkill(286);
 engine.FaceControl(0, true);
 while MobInZone do delay(500);
 engine.FaceControl(0, false);
 Engine.UseSkill(298);
    //путь в след комнату
   Engine.MoveTo(-10680, 13496, -4880);
   Engine.MoveTo(-10680, 14584, -4880);
   Engine.MoveTo(-8792, 14600, -4880);
   
 if user.inrange(-8765, 14623, -4896, 1000 , 1000)

then begin    
    
 delay(500);
 // Engine.UseSkill(286);
 engine.LoadZone('Do2.zmap'); 
 engine.FaceControl(0, true);
 while MobInZone do delay(500);
 engine.FaceControl(0, false);
 Engine.UseSkill(298);
 //путь в след комнату
Engine.MoveTo(-8792, 14600, -4880);
Engine.MoveTo(-9576, 14584, -4880);
Engine.MoveTo(-9544, 13464, -4880);
Engine.MoveTo(-8808, 13496, -4880);


if user.inrange(-8800, 13498, -4898, 1000 , 1000)

then begin
 
 
 delay(500);
 // Engine.UseSkill(286);
 engine.LoadZone('Do3.zmap'); 
 engine.FaceControl(0, true);
 while MobInZone do delay(500);
 engine.FaceControl(0, false);
 Engine.UseSkill(298);
 //путь в след комнату
Engine.MoveTo(-8808, 13496, -4880);
Engine.MoveTo(-9592, 13528, -4880);
Engine.MoveTo(-9672, 14600, -4880);
Engine.MoveTo(-11336, 14616, -4880);
Engine.MoveTo(-11448, 15576, -4880);


if user.inrange(-11522, 15587, -4896, 1000 , 1000)

then begin



  delay(500);
 // Engine.UseSkill(286);
 engine.LoadZone('Do4.zmap'); 
 engine.FaceControl(0, true);
 while MobInZone do delay(500);
 engine.FaceControl(0, false);
 Engine.UseSkill(298);
 //путь в след комнату
 Engine.MoveTo(-11448, 15576, -4880);
 Engine.MoveTo(-10040, 15608, -4880);
 Engine.MoveTo(-9960, 16200, -4880);
 Engine.MoveTo(-8745, 16184, -4880);

Стыдно.. но я чет не пойму вроде и гуглил пытался но увы.. :(


Сообщение отредактировал Sharick: 27 Август 2020 - 10:44

  • 0

#2
pups

pups

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

например:

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


  • 1

Discord: pups#9809


#3
Sharick

Sharick
  • 42
    3
    Не выбрано
    • Lvl 23
    • Пользователь

pups, у меня адрик кряк. И жалуется на

while delay(10) do
    begin

Ну либо иза кряк адрика
Или мб ошибка пока писал на быструю руку
Ибо было парочку ошибочек но исправил но тут опять стопнулся.


Сообщение отредактировал Sharick: 27 Август 2020 - 18:59

  • 0

#4
pups

pups

ну напиши свой цикл, который работает


  • 0

Discord: pups#9809


#5
Sharick

Sharick
  • 42
    3
    Не выбрано
    • Lvl 23
    • Пользователь

Понел ну попробую :)


  • 0


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

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

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