Цитата(Fors1k @ 22.9.2019, 18:19)

Код
//-----Условия
set $a 100, 200 0 and 300, 400 435346
set $b 500, 600 0 and 700, 800 43475
set $c ???
//-----Условные действия
while ($a) = 1 // приоритет 1
send A // действия приоритет 1
end_while
while ($b) = 1 and ($a) !=1 // приоритет 2
send B // действия приоритета 2
end_while
while ($c) = 1 and ($a) != 1 and ($b) != 1 // приоритет 3
send C // действия приоритета 3
end_while
Про таймер - непонятна задача. Типа если
send A выполняется уже минуту подряд, то нужно вернуться куда-то в начало, или как?
Ладно, если применительно к Lua, например пишем функцию
Код
local TimerB = function () --ограничение на вызов действия по таймеру B - 6 сек
local Timeb = 6
local endTimerb = os.clock() + Timeb
if os.clock() <= endTimerb then --таймер B истёк
local Timeb = 0
end
local TimerS = function () --ограничение на вызов действия по таймеру S - 5 сек
local Times = 5
local endTimer = os.clock() + Times
if os.clock() <= endTimer then --таймер S истёк
local Times = 0
end
while #a = 1 // приоритет 1
if TimerB() = 0 --время вышло
then
send A // действия приоритет 1
else --TimerB ~=0 -- время не вышло
send A2 -- действия приоритет 1.1 -- потому что действие Send A часто возможно но не целесообразно чаще чем раз в 6 секунд, поэтому вводим таймер.
else
end
end
while #b = 1 and #a !=1 // приоритет 2
if TimerS = 0 --время вышло
then
send B // действия приоритет 2
else --TimerS ~=0 -- время не вышло
send B2 -- действия приоритет 2.1
else
send B // действия приоритета 2
end
end
while #c = 1 and #a != 1 and #b != 1 // приоритет 3
и так далее
send C // действия приоритета 3
end_while
таймер для действий которые возможно осуществить но не целесообразно чаще чем раз в N секунд
если чаще - лучше перейти к более приоритетным задачам
К примеру: У нас есть солдат
У него есть возможность построить окоп и стрелять, построение окопа увеличивает обороноспособность солдата, но отнимает его силы
К примеру он построил окоп и начал стрелять, но враг разрушил окоп, солдат опять построил окоп, но враг опять разрушил окоп
Поскольку окоп по трудовым затратам стоит намного больше простой стрельбы нужно ограничить его применение таймером, чтобы солдат всё же вел какие-то боевые действия потому что в конечном счете наша задача застрелить врага, а не сидеть в окопе! / с окопом, или без него / а не только строить окоп, для этого нужен таймер.
Наиболее часто выполняемое действие лица за единицу времени определяет его статус. Если он будет строить окопы - он будет строитель а не солдат, а такого в планах не было.
----------------------------------------
P.S: Я так и не понял какое значение будет иметь например строчка
return в функции
Код
local TimerB = function () --ограничение на вызов действия по таймеру B - 6 сек
local Timeb = 6
local endTimerb = os.clock() + Timeb
if os.clock() <= endTimerb then --таймер B истёк
local Timeb = 0
end
если я её добавлю, кажется что недостаточно функциональный скрипт без этих команд
что и куда она будет возвращать?
P.S: Я забыл что в языке Lua есть возможность использовать математические функции умножение и вычитание так бы функция таймера выглядела примерно:
Код
local Time1 = 0
local GetTime = os.clock() + Time1
if GetTime()-Time1>3 then