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

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

Квест в дионе на адену

скрипт

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

#1
wesker

wesker
  • 24
    0
    Все круто
    • Lvl 16
    • Пользователь

Всем доброго времени суток! Публикую свой первый скрипт, никогда раньше этим не занимался, не судите строго)) Проверки никакие не вводил:

Делал под рпг: :)  :)  :)  :)

uses SysUtils, Classes, Utils;
procedure TakeQuest;
begin
  Engine.MoveTo(18523, 145374, -3145);
  Engine.MoveTo(18397, 145097, -3107);
  Engine.MoveTo(-14202, 125735, -3169);
  Engine.MoveTo(-13826, 126059, -3171);
  Engine.MoveTo(-13251, 126173, -3171);
  Engine.MoveTo(-12699, 124884, -3155);
  Engine.MoveTo(-12823, 124887, -3126);
  Utils.RandomDelay(500, 1500);
  Engine.SetTarget(30957);
Utils.RandomDelay(500, 1500);
Engine.Dlgopen;
Utils.RandomDelay(500, 1500);
Engine.DlgSel(1);
Utils.RandomDelay(500, 1500);
Engine.DlgSel(1);
Utils.RandomDelay(500, 1500);
    Engine.MoveTo(18257,145271,-3048);
    Engine.MoveTo(17841,145724,-3125);
    Engine.MoveTo(17367,145249,-3084);
    Engine.MoveTo(17143,144908,-3044);
    Engine.SetTarget(32327); //Помощник Путешественников
    Engine.DlgOpen;
Utils.RandomDelay(500, 1500);
Engine.DlgSel(1);    //Здесь диалог с NPC
Utils.RandomDelay(500, 1500);
Engine.DlgSel(1);    //Здесь диалог с NPC
Utils.RandomDelay(500, 1500);
Engine.MoveTo(16761,144542,-3027);
  Engine.MoveTo(16432,144090,-2985);
  Engine.MoveTo(16090,143599,-2872);
  Engine.MoveTo(15802,143152,-2752);
  Engine.MoveTo(15651,142926,-2732);
  Engine.SetTarget(30059);
  Engine.DlgOpen; //Здесь диалог с NPC (тп из диона в Аден)
  Utils.RandomDelay(500, 1500);
Engine.DlgSel(1);    //Здесь диалог с NPC
Utils.RandomDelay(500, 1500);
Engine.DlgSel(7);    //Здесь диалог с NPC
Utils.RandomDelay(500, 2500);
    Engine.MoveTo(147306,25846,-2039);
  Engine.MoveTo(147229,26529,-2230);
  Engine.MoveTo(147110,26708,-2231);
  Engine.MoveTo(146621,26596,-2231);
  Engine.MoveTo(146607,26371,-2217);
  Engine.MoveTo(146771,26266,-2216);
Engine.SetTarget(30837);
  Engine.DlgOpen; //Здесь диалог с NPC Вудро)
  Utils.RandomDelay(500, 1500);
Engine.DlgSel(5);    //Здесь диалог с NPC 
Utils.RandomDelay(500, 1500);
Engine.MoveTo(146622,26468,-2217); //путь до гк Аден
  Engine.MoveTo(146629,26732,-2231);
  Engine.MoveTo(147258,26614,-2230);
  Engine.MoveTo(147233,26052,-2049);
  Engine.MoveTo(147178,25784,-2039);
  Engine.MoveTo(146831,25801,-2039);
  Engine.MoveTo(146761,25825,-2039);
  Engine.SetTarget(30848);
  Engine.DlgOpen;
  Utils.RandomDelay(500, 1500);
Engine.DlgSel(1);    //Здесь диалог с NPC
Utils.RandomDelay(500, 1500);
Engine.DlgSel(3);    //Здесь диалог с NPC   тп в Гиран
Utils.RandomDelay(500, 1500);
  Engine.SetTarget(30080);
  Engine.DlgOpen; // разговор с гк Гиран Кларисса
Engine.DlgSel(1);    //Здесь диалог с NPC
Utils.RandomDelay(500, 1500);
Engine.DlgSel(9); // Гавань Гирана
Utils.RandomDelay(500, 1500);
  Engine.MoveTo(47221,186912,-3512); // путь до Галиона
  Engine.MoveTo(46264,187080,-3512);
  Engine.MoveTo(43995,188332,-3513);
  Engine.MoveTo(43896,189110,-3513);
  Engine.MoveTo(43933,189715,-3582);
  Engine.MoveTo(44533,190683,-3652);
  Engine.MoveTo(44679,190693,-3652);
    Engine.SetTarget(30958);   // Галион[id: 30958]
   Engine.DlgOpen; // разговор с Галионом
Engine.DlgSel(1);    //Здесь диалог с NPC
Utils.RandomDelay(500, 1500);
   Engine.MoveTo(44464,190682,-3652);
  Engine.MoveTo(43896,189474,-3582);
  Engine.MoveTo(44333,187909,-3512);
  Engine.MoveTo(47015,186719,-3512);
  Engine.MoveTo(47888,186808,-3512);
  Engine.MoveTo(47888,186808,-3480);
   Engine.SetTarget(30878);   // Ангелина[id: 30878]
  Engine.DlgOpen;
  Utils.RandomDelay(500, 1500);
  Engine.DlgSel(1);    //Здесь диалог с NPC тп в Гиран
  Utils.RandomDelay(500, 1500);
  Engine.DlgSel(1);
Utils.RandomDelay(500, 1500);
Engine.SetTarget(30080);   // Кларисса[id: 30080]
  Engine.DlgOpen;
  Utils.RandomDelay(500, 1500);
  Engine.DlgSel(1);    //
  Utils.RandomDelay(500, 1500);
  Engine.DlgSel(3);    // тп в Дион
  Utils.RandomDelay(500, 1500);
  Engine.MoveTo(15472, 142880, -2688);
  Engine.MoveTo(15802, 143079, -2744);  // путь до Свена
  Engine.MoveTo(15543, 142939, -2731);
  Engine.MoveTo(16669, 144350, -3017);
  Engine.MoveTo(17061, 144861, -3036);
  Engine.MoveTo(17496, 145357, -3094);
  Engine.MoveTo(18178, 145508, -3124);
  Engine.MoveTo(18318, 145172, -3103);
  Engine.MoveTo(18371, 145092, -3102);
  Engine.SetTarget(30957);   // Свен[id: 30957]
  Engine.DlgOpen;
  Utils.RandomDelay(500, 1500);
  Engine.DlgSel(1);
  Utils.RandomDelay(500, 1500);
  Engine.MoveTo(17717, 146440, -3130); //путь до Нанарин
  Engine.MoveTo(17326, 147182, -3142);
  Engine.MoveTo(16676, 146842, -3134);
  Engine.MoveTo(16853, 146177, -3136);
  Engine.MoveTo(16958, 146054, -3116);
  Engine.MoveTo(17006, 146056, -3111);
  Engine.SetTarget(30956);   // Нанарин[id: 30956]
  Engine.DlgOpen;
  Utils.RandomDelay(500, 1500);
  Engine.DlgSel(2);    //
  Utils.RandomDelay(500, 1500);
  Engine.DlgSel(1);    // разговор с Нанарином
  Utils.RandomDelay(500, 1500);
  Engine.MoveTo(16932, 146068, -3121);
  Engine.MoveTo(16835, 146351, -3135);
  Engine.MoveTo(16959, 146982, -3126);
  Engine.MoveTo(17560, 147175, -3149);
  Engine.MoveTo(18132, 145737, -3140);
  Engine.MoveTo(18339, 145182, -3108);
  Engine.MoveTo(18364, 145081, -3099);
  Engine.SetTarget(30957);   // Свен[id: 30957]
  Engine.DlgOpen;
  Utils.RandomDelay(500, 1500);
  Engine.DlgSel(1);    //
  Utils.RandomDelay(500, 1500);
  Engine.DlgSel(3);    //  Сдача квеста
end;
begin
 while true do begin  //Цикл ,  возможно здесь не правильно, Делать пока правда - а что он берет за правду не совсем понимаю
 TakeQuest ();
 end;
 end.

Прикрепленные файлы


Сообщение отредактировал wesker: 12 Апрель 2020 - 17:20

  • 0

#2
ScythLab

ScythLab

Делать пока правда - а что он берет за правду не совсем понимаю
нужно добавить в копилку золотых цитат  :xd:

 

Слету 2 замечания:

1) для кода используй тег "Код"

2) научись форматировать свой код (хотя бы автоматическими инструментами), и читабельность сильно возрастет, и многие логические ошибки можно легко заметить


  • 1

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


#3
Bingo7696

Bingo7696
  • 140
    48
    Не выбрано
    • Lvl 40
    • Пользователь
    ВКонтакте
    nebo7even

wesker, и тоже добавлю советы в дополнении от ScythLab.

1) Уменьши код, благодаря функциям и процедурам, у тебя больше количество повторений задержка + выбор диалога. Вынеси это в отдельный метод и передавай туда просто параметры, код сократится + повысится читаемость.

2) Коментарии это конечно хорошо, но функция или процедура должна быть в одной сущности, она не должна исполнять множество действий( у тебя в ней и бег, и выбор диалогов)

 под первый 2 совета можно прочитать книгу Роберта Мартина "Чистый код". Там в примерах java, но суть будет понятная, она достаточно на базовом уровне там.

3) Нет обработки исключений, программа отличается от человека, тем что, код всегда будет исполнятся. Но тебе нужно программировать, возможные ситуации. Исключения (сильно не вчитывайся, главное улови суть зачем они нужны) https://habr.com/ru/post/347284/

И еще один совет, я не сильно программиную в Delphi, но скорее всего можно настроить мощные ИДЕ, для работы с delphi. Проверку кода, быструю навигацию, контрол всплывашки.

Знаю только для JS-TS

JSDoc - контрол всплывашка, зажимаешь контрол + наводишь и комментарий функции со всем нужным всплывает

ESLint - TSLint - проверяет код по правилам определенным

Web-storm - дополнительно проверяет код-стайл.


  • 1

проверка на нул




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

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

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

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