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

Не бежит чар (скрипт)

Рег
6 Сен 2016
Сообщения
5
Реакции
0
var obj: TL2NPC;
obj2: TL2Effect;

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


// этот кусок не трогаем
if User.Dead then // умер- вырубаем интерфейс, возврат в город и пауза 15 секунд
begin
Engine.FaceControl(0,false);
Engine.gohome;
delay(15000);
end;
// этот кусок не трогаем





//1 менять тут
// этот кусок - точки респа выбранной деревни их просто заменить на нужную вам
if User.inrange(87184,-140256,-1536, 250, 150) then begin
Engine.MoveTo(87184,-140256,-1536);
Engine.MoveTo(87368,-140838,-1512);
Engine.MoveTo(87319,-141796,-1338);
Engine.MoveTo(87145,-142916,-1313);
Engine.MoveTo(86979,-143178,-1318);
end;
if User.inrange(87408,-142304,-1336, 250, 150) then begin
Engine.MoveTo(87408,-142304,-1336);
Engine.MoveTo(87145,-142916,-1313);
Engine.MoveTo(86979,-143178,-1318);
end;
if User.inrange(88240,-142736,-1336, 250, 150) then begin
Engine.MoveTo(88240,-142736,-1336);
Engine.MoveTo(87585,-142662,-1338);
Engine.MoveTo(86979,-143178,-1318);
end;
if User.inrange(85056,-141328,-1528, 250, 150) then begin
Engine.MoveTo(85056,-141328,-1528);
Engine.MoveTo(85181,-141845,-1539);
Engine.MoveTo(85804,-142279,-1339);
Engine.MoveTo(87157,-142636,-1338);
Engine.MoveTo(86979,-143178,-1318);
end;
if User.inrange(88624,-142480,-1336, 250, 150) then begin
Engine.MoveTo(88624,-142480,-1336);
Engine.MoveTo(87548,-142686,-1331);
Engine.MoveTo(86979,-143178,-1318);
end;
if User.inrange(86400,-142672,-1336, 250, 150) then begin
Engine.MoveTo(86400,-142672,-1336);
Engine.MoveTo(87143,-142570,-1338);
Engine.MoveTo(86979,-143178,-1318);
end;
if User.inrange(86560,-140320,-1536, 250, 150) then begin
Engine.MoveTo(86560,-140320,-1536);
Engine.MoveTo(87300,-140655,-1539);
Engine.MoveTo(87385,-141436,-1339);
Engine.MoveTo(87246,-142537,-1338);
Engine.MoveTo(86979,-143178,-1318);
end;
if User.inrange(88448,-140512,-1536, 250, 150) then begin
Engine.MoveTo(88448,-140512,-1536);
Engine.MoveTo(87410,-140642,-1539);
Engine.MoveTo(87299,-141493,-1338);
Engine.MoveTo(87291,-142607,-1338);
Engine.MoveTo(86979,-143178,-1318);
end;
if User.inrange(89712,-141472,-1528, 250, 150) then begin
Engine.MoveTo(89712,-141472,-1528);
Engine.MoveTo(89497,-141893,-1539);
Engine.MoveTo(88963,-142272,-1339);
Engine.MoveTo(87737,-142631,-1338);
Engine.MoveTo(86979,-143178,-1318);
end;
if User.inrange(87344,-141696,-1336, 250, 150) then begin
Engine.MoveTo(87344,-141696,-1336);
Engine.MoveTo(87354,-142594,-1338);
Engine.MoveTo(86979,-143178,-1318);
end;
if User.inrange(85472,-140752,-1536, 250, 150) then begin
Engine.MoveTo(85472,-140752,-1536);
Engine.MoveTo(85191,-141803,-1539);
Engine.MoveTo(85909,-142322,-1338);
Engine.MoveTo(87096,-142671,-1338);
Engine.MoveTo(86979,-143178,-1318);
end;
if User.inrange(89360,-140944,-1536, 250, 150) then begin
Engine.MoveTo(89360,-140944,-1536);
Engine.MoveTo(89539,-141762,-1539);
Engine.MoveTo(88910,-142276,-1339);
Engine.MoveTo(87637,-142734,-1332);
Engine.MoveTo(86979,-143178,-1318);
end;
if User.inrange(87776,-140384,-1536, 250, 150) then begin
Engine.MoveTo(87776,-140384,-1536);
Engine.MoveTo(87403,-140707,-1539);
Engine.MoveTo(87351,-141645,-1338);
Engine.MoveTo(87310,-142568,-1338);
Engine.MoveTo(86979,-143178,-1318);
end;
if User.inrange(84720,-141936,-1536, 250, 150) then begin
Engine.MoveTo(84720,-141936,-1536);
Engine.MoveTo(85201,-141842,-1539);
Engine.MoveTo(85807,-142262,-1339);
Engine.MoveTo(87116,-142704,-1338);
Engine.MoveTo(86979,-143178,-1318);
end;
if User.inrange(85968,-142384,-1336, 250, 150) then begin
Engine.MoveTo(85968,-142384,-1336);
Engine.MoveTo(87116,-142704,-1338);
Engine.MoveTo(86979,-143178,-1318);
end;

Engine.SetTarget(31613);

engine.DlgOpen();
engine.DlgSel(1);
delay (2000);
engine.DlgSel(14)




Короче он прилетает на точку дальше писал координаты но он не бежал , что нужно дописать помимо координат дайте пример пожалуйста ( вместо координат x z y) я потом свои вставлю.
 
Во время отладки\сборки подобных "простыней", не лишним будет расставить вывод отладочных сообщений, чтобы наглядно видеть какой участок кода выполняется в данный момент.
Перед всеми проверками поставь вывод своих координат, а в каждом из условий добавь вывод сообщения о его обработке:
(format вроде тут не поддерживается, так что примерно так) (Format - поддерживается, при подключении sysutils)
print('My coords: '+User.X.toString+', '+User.Y.toString+', '+User.Z.toString);
if User.inrange(87184,-140256,-1536, 250, 150) then begin
print('in 1');
....
и далее в таком духе.

Это, значит, раз.....
Второе - если не ошибаюсь, код у кого-то "слизан", а значит скорее всего ваялся не на твоем сервере, в таком случае может иметь место обычное несовпадение точек респавна персонажа в городе. Скрипт на сбор актуальных точек респа - есть на форуме. Или просто проверь свои текущие координаты вот таким нехитрым образом (как уже писал выше):
Это - пример! А не готовый код.
Код:
var
  npc:TL2Npc;
begin
while engine.status=lsOnline do begin
 if User.inrange(80334,54400,-1552, 250, 150) then begin
      print('Point 1');
      Engine.MoveTo(80334,54400,-1552);
      Engine.MoveTo(80969,53698,-1558);
      Engine.MoveTo(81540,53454,-1494);
      Engine.MoveTo(82480,53340,-1494);    
      Engine.MoveTo(82950,53186,-1494);
    end;
    if User.inrange(82323,55466,-1520, 250, 150) then begin
print('Point 2');
      Engine.MoveTo(82323,55466,-1520);
      Engine.MoveTo(82403,54498,-1523);
      Engine.MoveTo(82589,53861,-1486);    
      Engine.MoveTo(82950,53186,-1494);
    end;
    if User.inrange(82123,53535,-1488, 250, 150) then begin
print('Point 3');
      Engine.MoveTo(82123,53535,-1488);    
      Engine.MoveTo(82950,53186,-1494);
    end;
    if User.inrange(80304,56241,-1552, 250, 150) then begin
print('Point 4');
      Engine.MoveTo(80304,56241,-1552);
      Engine.MoveTo(81470,55682,-1523);
      Engine.MoveTo(82256,55294,-1523);
      Engine.MoveTo(82510,54035,-1494);   
      Engine.MoveTo(82950,53186,-1494);
    end;
    if User.inrange(82445,56012,-1520, 250, 150) then begin
print('Point 5');
      Engine.MoveTo(82445,56012,-1520);
      Engine.MoveTo(82341,54950,-1523);
      Engine.MoveTo(82574,53833,-1486);  
      Engine.MoveTo(82950,53186,-1494);
    end;
    if User.inrange(80054,53209,-1552, 250, 150) then begin
print('Point 6');
      Engine.MoveTo(80054,53209,-1552);
      Engine.MoveTo(80624,53611,-1558);
      Engine.MoveTo(81772,53468,-1494);
      Engine.MoveTo(82289,53472,-1494);
      Engine.MoveTo(82950,53186,-1494);
    end;
    if User.inrange(80513,52980,-1552, 250, 150) then begin
print('Point 7');
      Engine.MoveTo(80513,52980,-1552);
      Engine.MoveTo(80165,53065,-1558);
      Engine.MoveTo(80630,53610,-1558);
      Engine.MoveTo(81688,53447,-1494);
      Engine.MoveTo(82303,53338,-1494);   
      Engine.MoveTo(82950,53186,-1494);
    end;
    if User.inrange(80267,55497,-1552, 250, 150) then begin
print('Point 8');
      Engine.MoveTo(80267,55497,-1552);
      Engine.MoveTo(80359,54536,-1558);
      Engine.MoveTo(80792,53785,-1558);
      Engine.MoveTo(81495,53421,-1494);
      Engine.MoveTo(82323,53362,-1494); 
      Engine.MoveTo(82950,53186,-1494);
    end;
    if User.inrange(79933,55752,-1552, 250, 150) then begin
print('Point 9');
      Engine.MoveTo(79933,55752,-1552);
      Engine.MoveTo(80349,55208,-1558);
      Engine.MoveTo(80470,54217,-1558);
      Engine.MoveTo(81053,53602,-1558);
      Engine.MoveTo(81974,53465,-1494);    
      Engine.MoveTo(82950,53186,-1494);
    end;
    if User.inrange(80594,55837,-1552, 250, 150) then begin
print('Point 10');
      Engine.MoveTo(80594,55837,-1552);
      Engine.MoveTo(81899,55492,-1523);
      Engine.MoveTo(82240,55142,-1523);
      Engine.MoveTo(82531,53946,-1494);    
      Engine.MoveTo(82950,53186,-1494);
    end;
    if User.inrange(82213,53964,-1488, 250, 150) then begin
print('Point 11');
      Engine.MoveTo(82213,53964,-1488);
      Engine.MoveTo(82668,53709,-1486);  
      Engine.MoveTo(82950,53186,-1494);
    end;
    if User.inrange(83327,55410,-1520, 250, 150) then begin
print('Point 12');
      Engine.MoveTo(83327,55410,-1520);
      Engine.MoveTo(82607,55592,-1523);
      Engine.MoveTo(82184,54809,-1523);
      Engine.MoveTo(82563,53882,-1488);    
      Engine.MoveTo(82950,53186,-1494);
    end;
    if User.inrange(79706,52986,-1552, 250, 150) then begin
print('Point 13');
      Engine.MoveTo(79706,52986,-1552);
      Engine.MoveTo(80427,53549,-1558);
      Engine.MoveTo(80812,53655,-1558);
      Engine.MoveTo(81979,53439,-1494);    
      Engine.MoveTo(82950,53186,-1494);
    end;
    if User.inrange(82880,55390,-1520, 250, 150) then begin
print('Point 14');
      Engine.MoveTo(82880,55390,-1520);
      Engine.MoveTo(82375,55524,-1523);
      Engine.MoveTo(82367,54313,-1493);
      Engine.MoveTo(82651,53734,-1486);    
      Engine.MoveTo(82950,53186,-1494);
    end;
    if User.inrange(82552,53447,-1488, 250, 150) then begin
print('Point 15');
      Engine.MoveTo(82552,53447,-1488);    
      Engine.MoveTo(82950,53186,-1494);
    end;
    if User.inrange(82638,53885,-1488, 250, 150) then begin
print('Point 16');
      Engine.MoveTo(82638,53885,-1488);    
      Engine.MoveTo(82950,53186,-1494);
    end;
    NpcList.ByID(30177,NPC);
    If (User.DistTo(Npc)<150)then Engine.UseItem(1538)
    else Script.Stop;
    Delay(3000);
  end;
end.
И третье - ну хоть указал бы город там какой, по координатам угадывать чет не очень вроде ^_^
 
@Valera666,

все очень просто на первый взгляд.

У тебя перс стоит не в деревне если то твои проверки координат не сработают.

После того как он не войдет ни в одну проверку по координатам он делает сое через НПС (31613).

Этот код написан чтобы прибежать к ГК в деревне после того как со спота делаешь СОЕ.



Просто так нет смысла посты делать. Описывай полностью ситуацию. дальше пиши что тебе нужно чтобы произошло, дальше код и просьба о помощи.
 
Назад
Сверху