Проект Lost Lands
#66
Цитата:это сработает только если очередь строится исключительно на времени, которое "скрипт" (в терминах ПЗшного скриптоязыка) должен спать и ничего не делать, в реальном скрипте там жеж вообще может не быть слипа а быть просто одно или несколько условий при котором тот или иной кусок скрипта выполняется т.е. цикл должен как минимум помимо отсчёта времени по всем спящим скриптам проверять условия для тех которые не спят, при этом скорее всего синхронизируясь с другим или другими потоками движка если движок больше чем в 1 потоке работает.
1) Движок работает практически в одном потоке. Другие потоки на движке и скриптах никак не сказываются.
2) Никакие условия ему проверять не надо. Все "условия" проверяются уже на уровне скрипта, когда скрипт оживает после очередного слипа.
3) Все, что ему надо - перед входом в описанный цикл каждую итерацию главного цикла программы (или каждую миллисекунду - не суть) уменьшать у всех в очереди значение timer (или увеличивать глобальное время, после чего сравнивать время в цикле с этой переменной).
Поэтому модель элементарная: Sleep() взводит timer в текущем скрипте, KillScript выносит из очереди. Каждую итерацию ПЗшки по очереди запускаются все скрипты, у которых дотикал таймер. Эти скрипты сами чекают всякие нужные им условия и делают действия. Когда все дотикавшие до нуля скрипты отработали, весь движок пзшки переходит к следующей своей итерации. Всё.
Ответ


Сообщения в этой теме
Проект Lost Lands - от MageNuada - 29.06.2013, 13:29
Проект Lost Lands - от MageNuada - 30.06.2013, 01:30
Проект Lost Lands - от MageNuada - 03.08.2013, 22:03
Проект Lost Lands - от MorgenS - 05.08.2013, 09:30
Проект Lost Lands - от MageNuada - 05.08.2013, 11:12
Проект Lost Lands - от MorgenS - 06.08.2013, 09:08
Проект Lost Lands - от MageNuada - 06.08.2013, 12:00
Проект Lost Lands - от MorgenS - 06.08.2013, 21:17
Проект Lost Lands - от Sagrer - 08.10.2013, 11:27
Проект Lost Lands - от Katrior - 10.10.2013, 10:58
Проект Lost Lands - от ALtair - 15.10.2013, 12:02
Проект Lost Lands - от MorgenS - 15.10.2013, 12:39
Проект Lost Lands - от Katrior - 15.10.2013, 21:55
Проект Lost Lands - от MageNuada - 15.10.2013, 22:52
Проект Lost Lands - от ЧЕЛ - 20.10.2013, 16:32
Проект Lost Lands - от Tock - 21.11.2013, 16:38
Проект Lost Lands - от DePhar - 23.11.2013, 02:40
Проект Lost Lands - от MageNuada - 12.01.2014, 21:46
Проект Lost Lands - от Demoth - 13.01.2014, 12:38
Проект Lost Lands - от MageNuada - 13.01.2014, 15:57
Проект Lost Lands - от Demoth - 13.01.2014, 16:37
Проект Lost Lands - от Bargest - 13.01.2014, 22:42
Проект Lost Lands - от MageNuada - 14.01.2014, 10:39
Проект Lost Lands - от Demoth - 14.01.2014, 11:17
Проект Lost Lands - от MageNuada - 14.01.2014, 13:09
Проект Lost Lands - от Bargest - 14.01.2014, 16:39
Проект Lost Lands - от MageNuada - 14.01.2014, 16:53
Проект Lost Lands - от Bargest - 14.01.2014, 17:00
Проект Lost Lands - от Demoth - 14.01.2014, 18:53
Проект Lost Lands - от MageNuada - 14.01.2014, 19:47
Проект Lost Lands - от Demoth - 14.01.2014, 20:08
Проект Lost Lands - от MageNuada - 14.01.2014, 21:49
Проект Lost Lands - от Bargest - 14.01.2014, 22:21
Проект Lost Lands - от Bargest - 17.01.2014, 00:08
Проект Lost Lands - от MageNuada - 22.01.2014, 12:19
Проект Lost Lands - от MageNuada - 09.09.2014, 01:45
Проект Lost Lands - от Smertnik - 26.11.2014, 22:24
Проект Lost Lands - от MageNuada - 01.12.2014, 00:17
Проект Lost Lands - от MageNuada - 05.12.2014, 23:24
Проект Lost Lands - от MorgenS - 07.12.2014, 13:03
Проект Lost Lands - от MageNuada - 07.12.2014, 13:45
Проект Lost Lands - от Sagrer - 22.12.2014, 03:27
Проект Lost Lands - от MageNuada - 22.12.2014, 18:01
Проект Lost Lands - от Sagrer - 23.12.2014, 20:40
Проект Lost Lands - от Demoth - 23.12.2014, 23:20
Проект Lost Lands - от Sagrer - 24.12.2014, 00:17
Проект Lost Lands - от Demoth - 24.12.2014, 00:38
Проект Lost Lands - от MageNuada - 24.12.2014, 02:03
Проект Lost Lands - от Sagrer - 24.12.2014, 11:39
Проект Lost Lands - от Demoth - 24.12.2014, 14:42
Проект Lost Lands - от Bargest - 24.12.2014, 14:55
Проект Lost Lands - от Sagrer - 24.12.2014, 21:03
Проект Lost Lands - от Bargest - 25.12.2014, 01:53
Проект Lost Lands - от Sagrer - 25.12.2014, 09:29
Проект Lost Lands - от GetClooSet - 25.12.2014, 21:22
Проект Lost Lands - от Bargest - 25.12.2014, 21:39
Проект Lost Lands - от MageNuada - 26.10.2015, 17:33
Проект Lost Lands - от MageNuada - 26.10.2015, 19:36
Проект Lost Lands - от Freeman13 - 29.10.2015, 00:50
Проект Lost Lands - от MageNuada - 29.10.2015, 01:14
Проект Lost Lands - от Freeman13 - 29.10.2015, 13:04
Проект Lost Lands - от Рицарь - 02.11.2015, 18:19
Проект Lost Lands - от Poplanu - 12.12.2015, 21:57
Проект Lost Lands - от sharabdin - 16.12.2015, 16:30
Проект Lost Lands - от MageNuada - 16.12.2015, 23:53
Проект Lost Lands - от MageNuada - 22.06.2016, 06:26
Проект Lost Lands - от IDoL - 30.06.2013, 23:12
Проект Lost Lands - от Kalessin - 01.07.2013, 00:01
Проект Lost Lands - от IDoL - 01.07.2013, 00:11
Проект Lost Lands - от Kalessin - 01.07.2013, 01:20
Проект Lost Lands - от Demoth - 01.07.2013, 02:19
Проект Lost Lands - от IDoL - 01.07.2013, 12:54
Проект Lost Lands - от MageNuada - 28.07.2013, 19:58
Проект Lost Lands - от DePhar - 22.10.2013, 21:14
Проект Lost Lands - от MageNuada - 23.10.2013, 10:59
Проект Lost Lands - от MorgenS - 27.10.2013, 20:32
Проект Lost Lands - от sharabdin - 28.05.2014, 16:51
Проект Lost Lands - от MageNuada - 05.06.2014, 01:56
Проект Lost Lands - от MageNuada - 03.07.2014, 12:27

Перейти к форуму:


Пользователи, просматривающие эту тему: 3 Гость(ей)