Есть несколько скриптов, как можно организовать связь их вместе, т.е. что нужно:
1. передача параметров из одного скрипта другому
2. запуск/остановка/пауза скрипта из другого скрипта
к примеру: есть пара/тройка лесорубов, рубят лес, и есть чар - охранник, в случае нападения на одного из лесорубов лесоруб посылает "охране" крик о помощи и свои координаты, скрипт ламбера ставится на паузу, и запускается скрипт "выжить пока не подойдет помощь", в свою очередь охрана прилетает на место "вызова" и сражается, умирает/воскресает и тд. до тех пор пока угроза не будет устранена, затем скидывает лесорубу "инфо" "что место очищено" и лесоруб возвращается на точку и снимает с паузы ламбер, продолжая рубить с места остоновки...
ps понимаю что можно запихать два скрипта или даже 3 в один файл и использовать инклюды и вызвать процедуры, но хотелось бы сделать по человечески, каждому скрипту свой файл и программно запускать/останавливать нужные мне скрипты, а не пихать всё в один файл и потом разбираться каждый раз с несколькими тысячами строк
Forum in READ ONLY mode! All questions and discussions on Discord official server, invite link: https://discord.gg/VxsGzJ7
Взаимосвязи скриптов
Re: Взаимосвязи скриптов
"программно запускать/останавливать нужные мне скрипты" зачем ето если тебе нужно просто ждать. Передавать параметры из скрипта к скрипту можно через объявление глобальных переменных. Тебе нужно организовать n строковых комманд, как "крик о помощи", "ждать команду", "выживай там, всего тебе хорошего", в скрипте в главном цикле как то обрабатывать типа если получил крик о помощи то лечу помогать, если получил ждать команду то жду команду. Не надо упарыватся в "програмные" остановки если ваша цель просто прождать определенное время...Sed wrote:Есть несколько скриптов, как можно организовать связь их вместе, т.е. что нужно:
1. передача параметров из одного скрипта другому
2. запуск/остановка/пауза скрипта из другого скрипта
к примеру: есть пара/тройка лесорубов, рубят лес, и есть чар - охранник, в случае нападения на одного из лесорубов лесоруб посылает "охране" крик о помощи и свои координаты, скрипт ламбера ставится на паузу, и запускается скрипт "выжить пока не подойдет помощь", в свою очередь охрана прилетает на место "вызова" и сражается, умирает/воскресает и тд. до тех пор пока угроза не будет устранена, затем скидывает лесорубу "инфо" "что место очищено" и лесоруб возвращается на точку и снимает с паузы ламбер, продолжая рубить с места остоновки...
ps понимаю что можно запихать два скрипта или даже 3 в один файл и использовать инклюды и вызвать процедуры, но хотелось бы сделать по человечески, каждому скрипту свой файл и программно запускать/останавливать нужные мне скрипты, а не пихать всё в один файл и потом разбираться каждый раз с несколькими тысячами строк
Re: Взаимосвязи скриптов
все это делается в одном скрипте. И да, именно это и есть по-человечески. Использовать несколько скриптов - это НЕправильно.Sed wrote: к примеру: ...
используешь юниты и все. Инклюды - прошлый век, используемый из-за необходимости. Сейчас такой необходимости давно уже нет.Sed wrote: ps понимаю что можно запихать два скрипта или даже 3 в один файл и использовать инклюды и вызвать процедуры,
Но если ты все равно упорствуешь - то даю наводку - http://stealth.od.ua/Doc:RU/Manual/Reference/Events - evSetGlobalVar
"Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете". (с) Макконнелл, "Совершенный код".
Re: Взаимосвязи скриптов
Даа, SetEventProc судя по описанию мощная штука, а "юниты" это что такое?
Короче я бы разделил такого бота на 2 файла, так легче читать код:
Файл №1 это файл со всеми процедурами, одна процедура это одна функция бота (функция ходьбы, рубки, телепорта и т.д.).
Файл №2 это основной цикл программы с логикой использования функций:
Т.е. один цикл это рубка, а второй это твой гвард бот, как только рубщик заметил опасность он выходит из своего цикла и начинается цикл гвард-бота. Когда гвард закончил снова начинается цикл рубки. Пример как делать инклюд: http://stealth.od.ua/forum/viewtopic.ph ... ION#p18055
Короче я бы разделил такого бота на 2 файла, так легче читать код:
Файл №1 это файл со всеми процедурами, одна процедура это одна функция бота (функция ходьбы, рубки, телепорта и т.д.).
Файл №2 это основной цикл программы с логикой использования функций:
Code: Select all
PROGRAM LumberjackBot;
USES <имя файла с процедурами>;
BEGIN
// накидать SetEventProc() чтоб лишней логики не писать.
Repeat // Основной цикл программы
Repeat
// тут организовываешь набор функций и процедур для рубки, ходьбы и т.д.
// добавляешь условие c Break из этого цикла в случае опасности
Until false;
Repeat
// набор функций и процедур для твоего гвард-бота
// условия выхода как закончит
Until false;
Until false;
END.
Stealth 8.10.2 | Клиент: 7.0.13.4