https://startpack.ru/application/hotpot-ai/alternatives похожие серверы много мусорных с регистрацией и платными подписками. Появляется их всё больше и больше
https://startpack.ru/application/hotpot-ai/alternatives
Начисто сегодня:
StoryInit
/*инвентарь, сумки, сундуки, шкафы, склады*/
<<set $sumka = []>> /*объявляю "пустое" множество предметов в сумке*/
<<set $totalWeightSumka = 0>> /*вес предметов в сумке*/
<<set $item = {}>> /* Инициализация переменной $item как объект *
===========================================================
Пассаж, где "генерируются" предметы и подбираются
<<if $totalWeightSumka >= 5000>>
У вас больше нет места в сумке
<<else>>
<<set $kosteritem = random(1, 5)>> /*условия для появления предмета*/
<<if $kosteritem == 1>>
<<set $apple = {
name: "яблоко",
color: "красное",
taste: "сладкое",
weight: random(80, 300),
price: 0, /*Инициализация цены перед расчетом*/
satisfyHunger: 0,
satisfyThirst: 0,
burningTime: 0
}>>
<<set $apple.price = $apple.weight / 10>> /*Рассчет цены пропорционально весу*/
<<set $apple.satisfyHunger = $apple.weight * 5>>
<<set $apple.satisfyThirst = $apple.weight * 5>>
<<link "Положить яблоко <<print $apple.color>> <<print $apple.taste>> весом <<print $apple.weight>> ценой <<print $apple.price>> пищевая ценность: <<print $apple.satisfyHunger>> утоление жажды: <<print $apple.satisfyThirst>> время горения: <<print $apple.burningTime>>">>
<<set $sumka.push($apple)>>
<<set $itemSumka = $apple>><<goto "костерок">>
<</link>>
<<elseif $kosteritem == 2>>
<<set $pear = {
name: "груша",
color: "зеленая",
taste: "сладкая",
weight: random(100, 200),
price: 0,
satisfyHunger: 0,
satisfyThirst: 0,
burningTime: 0
}>>
<<set $pear.price = $pear.weight / 8>>
<<set $pear.satisfyHunger = $pear.weight * 5>>
<<set $pear.satisfyThirst = $pear.weight * 5>>
<<link "Положить грушу <<print $pear.color>> <<print $pear.taste>> весом <<print $pear.weight>> ценой <<print $pear.price>> пищевая ценность: <<print $pear.satisfyHunger>> утоление жажды: <<print $pear.satisfyThirst>> время горения: <<print $pear.burningTime>>">>
<<set $sumka.push($pear)>>
<<set $itemSumka = $pear>><<goto "костерок">>
<</link>>
<<else>>
Здесь нечего взять
<</if>>
<</if>>
===============================
Задание на завтра:
Отлично, давайте добавим возможность выбрасывания и употребления предметов из сумки.
Для этого можно добавить дополнительные ссылки рядом с информацией о каждом предмете в сумке:
html
<<set $totalWeightSumka = 0>> /*подсчет общего веса предметов в сумке*/
<<if $sumka.length > 0>>
<h2>Предметы в вашем инвентаре:</h2>
<<for $itemSumka range $sumka>>
<<set $totalWeightSumka += $itemSumka.weight>>
<<link "Посмотреть <<print $itemSumka.name>> - Цвет: <<print $itemSumka.color>>, Вкус: <<print $itemSumka.taste>>, Вес: <<print $itemSumka.weight>>, Цена: <<print $itemSumka.price>>, Утоление голода: <<print $itemSumka.satisfyHunger>>, Утоление жажды: <<print $itemSumka.satisfyThirst>>, Время горения: <<print $itemSumka.burningTime>>">>
<<print $itemSumka.name>>
<</link>>
<<link "Съесть <<print $itemSumka.name>>">>
<<set $hunger += $itemSumka.satisfyHunger>>
<<remove $sumka $itemSumka>>
<<set $totalWeightSumka -= $itemSumka.weight>>
<</link>>
<<link "Выбросить <<print $itemSumka.name>>">>
<<remove $sumka $itemSumka>>
<<set $totalWeightSumka -= $itemSumka.weight>>
<</link>>
<br>
<</for>>
<p>Общий вес предметов в инвентаре: <<print $totalWeightSumka>> грамм</p>
<<else>>
<p>Ваш инвентарь пуст.</p>
<</if>>
<<if $totalWeightSumka >= 5000>>
У вас больше нет места в сумке
<</if>>
В этом обновленном коде:
Мы добавили два новых <<link>> блока для каждого предмета в сумке:
"Съесть <<print $itemSumka.name>>"
"Выбросить <<print $itemSumka.name>>"
При клике на ссылку "Съесть":
Значение переменной $hunger увеличивается на $itemSumka.satisfyHunger
Предмет удаляется из массива $sumka
Общий вес в сумке уменьшается на вес съеденного предмета
При клике на ссылку "Выбросить":
Предмет удаляется из массива $sumka
Общий вес в сумке уменьшается на вес выброшенного предмета
Таким образом, пользователь теперь может не только просматривать содержимое сумки, но и съедать или выбрасывать предметы из нее.
Обратите внимание, что вам также нужно будет добавить переменную $hunger и обновить ее значение при съедании предметов.
Дайте мне знать, если у вас возникнут дополнительные вопросы!
=============================
Молодец! Вот только я ему забыл сказать, что переменные уже объявлены и даже изменяются во времени. Лан завтра в это буду вникать.
А, если скобки сделдать квадратными?
То это уже будет массив, а не объект. Вот как будет выглядеть инициализация переменной с пустым массивом:
javascriptТаким образом, при использовании квадратных скобок [] вы создаете пустой массив, который может содержать элементы, а при использовании фигурных скобок {} вы создаете пустой объект, который может содержать пары "ключ: значение". Каждая структура имеет свои особенности и применение в зависимости от необходимости хранения и организации данных.
==============================================
в массиве в JavaScript можно хранить не только примитивные значения, но и объекты или другие массивы. Это позволяет создавать структурированные данные и хранить их в удобной форме. Вы можете объявить объекты или массивы в других частях кода и добавить их в основной массив. Вот пример:
javascript
// Объявление объектов
<<set $apple = { name: "яблоко", color: "красное" }>>
<<set $banana = { name: "банан", color: "желтый" }>>
// Объявление массива и добавление объектов
<<set $fruits = [$apple, $banana]>>
В этом примере $apple и $banana - это объекты, которые затем добавляются в массив $fruits. Таким образом, в массиве $fruits будут храниться объекты $apple и $banana. При необходимости вы можете добавлять в массив и другие объекты или массивы, создавая структурированные данные для вашего приложения.
================================
Да, в JavaScript можно добавить массив в качестве свойства объекта. Это позволяет структурировать данные и хранить массивы внутри объектов. Вот пример того, как можно добавить массив в объект:
javascript
// Создание объекта с массивом в качестве свойства
const myObject = {
name: "John",
age: 30,
hobbies: ["reading", "painting", "gardening"]
};
В этом примере hobbies - это свойство объекта myObject, которое содержит массив с хобби. Таким образом, вы можете легко хранить массивы внутри объектов, что удобно для организации и доступа к данным в вашем коде.
Вон оно чо, Хоттабыч... поди сразу улови эту разницу... А зато сколько всякого разного такого можно навертеть... Так.... А в чо это только в массивы добавлены в качестве значений? А в качестве ключей можно добавлять массивы в объекты? Ась? Ну, и пирожоновых...
==================================
В JavaScript нельзя добавить массив в качестве ключа в объекте. Ключи объекта должны быть строками или символами. Попытка использовать массив в качестве ключа приведет к неожиданному поведению или ошибке. Вот пример того, как ключи объекта должны быть строками или символами:
javascript
// Некорректное использование массива в качестве ключа
const myObject = {
[1, 2, 3]: 'value' // Некорректное использование массива в качестве ключа
};
В данном примере использование массива `` в качестве ключа объекта myObject является некорректным и приведет к ошибке. Ключи объекта должны быть строками или символами для корректной работы.
Облом, ну, ладно, перетопчемся... А не в JS? Можна?
--------------------------------
Да, существуют языки программирования, в которых можно использовать массивы в качестве ключей в объектах. Например, в языке PHP такая возможность есть. В PHP можно использовать массивы в качестве ключей в ассоциативных массивах. Вот пример использования массива в качестве ключа в PHP:
php
// Использование массива в качестве ключа в PHP
$myArray = array('key1' => 'value1', array('nestedKey1' => 'nestedValue1') => 'value2');
В данном примере, массив array('nestedKey1' => 'nestedValue1') используется в качестве ключа в ассоциативном массиве $myArray
------------------------
ну, вот, а жизнь то налаживается....
Пойду ошибки в коде исправлять... как ссылки прописывать понятненько, со скобочками разобрались не прошло и года.
Чистовичок:
StoryInit
<<set $sumka = []>> /*объявляю "пустое" множество предметов в сумке*/
В пассаже с предметом код ссылки:
<<set $apple = {
name: "яблоко",
color: "красное",
taste: "сладкое",
weight: random(80, 300),
price: 0 // Инициализация цены перед расчетом
}>>
<<set $apple.price = $apple.weight / 10>> // Рассчет цены пропорционально весу
<<link "Положить яблоко в сумку">>
<<set $sumka.push($apple)>>
Положить яблоко <<print $apple.color>> <<print $apple.taste>> весом <<print $apple.weight>> ценой <<print $apple.price>>
<</link>>
в пассаже сумка:
<<if $sumka.length > 0>>
<h2>Предметы в вашем инвентаре:</h2>
<<for $item range $sumka>>
<<link "Посмотреть <<print $item.name>> - Цвет: <<print $item.color>>, Вкус: <<print $item.taste>>, Вес: <<print $item.weight>>, Цена: <<print $item.price>>">>
<<print $item.name>>
<</link>>
<br>
<</for>>
<<else>>
<p>Ваш инвентарь пуст.</p>
<</if>>
----------------------
обожаю игры, где в инвентарь можно собрать всё без ограничений: черных дыр пять штука, пару стаков звездолетов, но у моего ГГ сумка будет иметь ограничения. Например 5 кг. Будем реалистам с большими весами еще не каждый солдат каждый день бегает.
но этим я займусь уже завтра... худо-бедно, а с помощью ИИ дело стало трогаться с места.
Черновичок:
логично добавлять предметы в инвентарь внутри ссылки, чтобы игрок мог добавить предмет по своему выбору. Вот пример ссылки для добавления яблока в инвентарь:
javascript
<<link "Положить яблоко в инвентарь">>
<<set $inventory.push("яблоко")>>
Яблоко добавлено в ваш инвентарь.
<</link>>
Этот код создает ссылку "Положить яблоко в инвентарь", при клике на которую в инвентарь будет добавлено яблоко, а игрок увидит сообщение "Яблоко добавлено в ваш инвентарь". Подобным образом можно создать ссылки для добавления других предметов в инвентарь.
=====================================================================
Не знаю почему эти ИИ называют ГПТ, перплексити, Бинг и другими красивыми словами. Натуральные же Хоттабычи. Неожиданно... этот код почти работает...
почти работает, только вот у меня в инвентарь с каждым кликом по ссылке добавляется не ссылка на объект яблоко, ссылка: "Посмотреть $_item". При клике на которую ничего не происходит
Answer
Для того чтобы ссылки в инвентаре отображались корректно и позволяли просматривать соответствующие предметы, необходимо правильно использовать переменные внутри ссылок. Вот исправленный код, который позволит корректно отображать ссылки на предметы в инвентаре:
Добавление предметов в инвентарь с использованием объектов:
javascript
<<set $inventory = []>>
<<set $apple = {
name: "яблоко"
}>>
<<set $mushroom = {
name: "грибочек"
}>>
<<set $cube = {
name: "кубик"
}>>
<<set $inventory.push($apple)>>
<<set $inventory.push($mushroom)>>
<<set $inventory.push($cube)>>
Отображение предметов в виде ссылок в пассаже "Инвентарь":
javascript
<<if $inventory.length > 0>>
<h2>Предметы в вашем инвентаре:</h2>
<<for _item range $inventory>>
<<link "Посмотреть $_item.name">>
$_item.name
<</link>>
<br>
<</for>>
<<else>>
<p>Ваш инвентарь пуст.</p>
<</if>>
Теперь при клике на ссылку "Посмотреть яблоко", "Посмотреть грибочек" или "Посмотреть кубик", игрок сможет просмотреть соответствующий предмет из инвентаря.
Ок, еще не всё понятно мне поэтому зададим еще один провокационный вопрос:
а, если объект с именем яблоко будет еще и красным и сладким? Как будет выглядеть код?
Для добавления дополнительных свойств, таких как цвет и вкус, к объекту "яблоко" и отображения их в ссылках в инвентаре, вам нужно расширить структуру объекта и использовать эти свойства при отображении предметов. Вот как это может быть реализовано:
Обновление объекта "яблоко" с дополнительными свойствами (цвет, вкус):
javascript
<<set $apple = {
name: "яблоко",
color: "красное",
taste: "сладкое"
}>>
Добавление объекта "яблоко" в инвентарь с обновленными свойствами:
javascript
<<set $inventory.push($apple)>>
Отображение предметов в виде ссылок с учетом новых свойств в пассаже "Инвентарь":
javascript
<<if $inventory.length > 0>>
<h2>Предметы в вашем инвентаре:</h2>
<<for _item range $inventory>>
<<link "Посмотреть $_item.name - Цвет: $_item.color, Вкус: $_item.taste">>
$_item.name
<</link>>
<br>
<</for>>
<<else>>
<p>Ваш инвентарь пуст.</p>
<</if>>
Теперь при клике на ссылку "Посмотреть яблоко - Цвет: красное, Вкус: сладкое", игрок сможет просмотреть яблоко с указанными свойствами из инвентаря.
Вон оно чо Петрович.... тут такие горизонты открываются...
================================================================
Это тебе так кажется, Хоттабыч, что может на самом деле он выдает ссылку такого вида:
$_item.name - Цвет: $_item.color, Вкус: $_item.taste
Ну, не первый день замужем, поэтому тактично напоминаем, а ты не забыл ли где-то print прописать?
***
О! Волька! Да, для вывода значений свойств объекта в ссылках в инвентаре необходимо использовать <<print>> для корректного отображения. Вот исправленный код с добавлением <<print>>:
javascript
<<if $inventory.length > 0>>
<h2>Предметы в вашем инвентаре:</h2>
<<for _item range $inventory>>
<<link "Посмотреть <<print _item.name>> - Цвет: <<print _item.color>>, Вкус: <<print _item.taste>>">>
<<print _item.name>>
<</link>>
<br>
<</for>>
<<else>>
<p>Ваш инвентарь пуст.</p>
<</if>>
Теперь при клике на ссылку в инвентаре, будут корректно отображаться значения свойств объекта (цвет, вкус) вместо их кодовых названий.
========
Теперь работает как заказано, ссылка отображается виде: Посмотреть яблоко - Цвет: красное, Вкус: сладкое
но... принтов-то принтов навертел, что твой Д. Гордон мерчей...
Трем лампу и прашиваем: Одним принтом никак нельзя было обойтись?
Конечно, О. Волька!:
<<if $inventory.length > 0>>
<h2>Предметы в вашем инвентаре:</h2>
<<for _item range $inventory>>
<<link "Посмотреть $_item.name - Цвет: $_item.color, Вкус: $_item.taste">>
$_item.name
<</link>>
<br>
<</for>>
<<else>>
<p>Ваш инвентарь пуст.</p>
<</if>>
на выходе получаем: Посмотреть яблоко - Цвет: <<красное>>, Вкус: <<сладкое>>
При нажатии на ссылку ничего не происходит, но... оно потом будет добавлено. В принципе достигнутый вариант меня уже устраивает. Хотя, мне кажется, что принто можно еще иначе как-то прописать. Трем лампу...
============================================
И тут Хоттабыч психанул и выдал прекрасное и лаконичное и ваще и в борще без принта. И ссылочку выдающее прекрасную вида:
"Посмотреть яблоко - Цвет: красное, Вкус: сладкое".
И главное без поллитры не понять, что он сделал почему оно раньше не работало, а теперь работает...
<<if $inventory.length > 0>>
<h2>Предметы в вашем инвентаре:</h2>
<<for _item range $inventory>>
<<link "Посмотреть <<= _item.name >> - Цвет: <<= _item.color >>, Вкус: <<= _item.taste >>">>
<<= _item.name >>
<</link>>
<br>
<</for>>
<<else>>
<p>Ваш инвентарь пуст.</p>
<</if>>
Да, можно использовать другой способ для вывода значений свойств объекта внутри ссылки без повторения <<print>>. Один из вариантов - использовать <<=>> для вывода переменных внутри текста. Вот как это может выглядеть:
Этот вариант позволяет выводить значения переменных внутри текста без использования дополнительных <<print>>, сохраняя при этом хорошую читаемость и выделение изменяемых переменных.
<<=>> - это макрос в формате SugarCube, который используется для вывода значений переменных внутри текста без необходимости использования дополнительных <<print>>. Он позволяет вставлять переменные прямо в тексте, обрамляя их двумя <<=>>.
Пример использования <<=>>:
javascript
<<set $name = "Alice">>
Привет, <<= $name >>! Как дела?
Макрос <<=>> является специфичным для формата SugarCube, который используется в инструменте Twine для создания интерактивных текстовых игр и историй. Он не является стандартным макросом в других языках программирования, таких как Rust, C++, или ассемблер.
Таким образом, макрос <<=>> применяется исключительно в контексте использования Twine и SugarCube для удобного вывода переменных внутри текста без необходимости использования дополнительных макросов или тегов.
В данном примере, значение переменной $name будет выведено прямо в тексте без использования дополнительных макросов или тегов, что делает код более читаемым и компактным.
В принципе я имею три работающих кода для отображение ссылки в инвентаре, с которыми можно дальше работать. <<=>> интересный макрос в СугарКубе, но какой-то неявный поэтому использую я первый вариант кода.
В общем хрен его знает, что такое объекты. Все эти абстрактные высокопарные объяснения засуньте себе в дупу, господа продвинутые программеры. Я их не воспринимаю просто потому, что у меня в голове еще нет ничего с чем это можно сравнить, чтобы понять поэтому...
Если я в чем ошибся то не взыщите.
Ну, часы и календарь в игре тикают... Статы меняются, пора вводить в игру всяко разное, что можно подобдрать, украсть, отнять, снять.
Короче, по утрам надев трусы, не забудьте про часы...
Наверняка ведь наврал с кодом? Но вот уже скоро я это все проверю.
А для инвентаря можно выделить целый пассаж. Вот такая кнопка может быть расположена прямо в StoryCaption. Очень удобно.
<<button [[Сумка|Сумка]]>><</button>>
Не помню было такое у меня уже или нет. Если было и я не помню решения проблемы, значит... будем её решать еще столько раз пока решение не станет для нас очень видным.
напиши код для Twine 2 SugarCube 2, чтобы он отображал рандомную картинку из папки kartinki
CopilotЭтот код использует метод .pluck() для выбора случайного изображения из массива $images и отображения его в пассаже. Помните, что вам нужно будет заменить "kartinka1.jpg", "kartinka2.jpg", "kartinka3.jpg" на имена файлов ваших изображений и указать правильный путь к папке kartinki.
Ок, скармливаю ему то, что сделано было самостоятельно, но корректно не работало:
Кот:
<<set $randimg = random(4, 6)>>
<div style="text-align: center;">
<img src="pic/(" + "$randimg" + ").jpg" style="display: inline-block;">
</div>
Как изменить этот код, чтобы он в Твайн 2 SugarCube 2 отображал картинку, а не строку: <img src="pic/(" + "4" + ").jpg" style="display: inline-block;">
Картинки в папке имеют названия (4), (5), (6)
Ответ Бинга:
Чтобы код корректно работал в Twine 2 с использованием формата SugarCube 2 и отображал изображение, вам нужно использовать следующий синтаксис для вставки изображения:
<<set $randimg to random(4, 6)>>
<div style="text-align: center;">
<img src="pic/($randimg).jpg" style="display: inline-block;">
</div>
Этот код устанавливает переменную $randimg со случайным значением от 4 до 6 и использует эту переменную в пути к изображению. Убедитесь, что ваши изображения находятся в папке pic вашего проекта Twine.
Ну, мы знаем как оно работает поэтому сразу пишем рекламацию: "это так не работает. Он создает ссылку на картинку такого вида: /pic/fignia/($randimg).jpg
===============================
Что нужно добавить, чтобы вместо текста $randimg было числовое значение переменной?
Ответ: Чтобы вместо текста $randimg отображалось числовое значение переменной, вам нужно использовать оператор <<print>> в Twine 2 с форматом SugarCube 2. Вот как это должно выглядеть:
<<set $randimg to random(4, 6)>>
<div style="text-align: center;">
<<print '<img src="pic/' + $randimg + '.jpg" style="display: inline-block;">'>>
</div>
Оператор <<print>> здесь используется для вывода значения переменной $randimg как части строки, что позволяет динамически изменять путь к изображению. Убедитесь, что ваши изображения правильно размещены в указанной папке.
===============================
А ведь он знал правильный ответ да?
Но меня это уже работающее решение не совсем устраивает потому, что Винда при массовом переименовании файлов выдает названия типа (1), (2). (3) и так далее
Поэтому еще один уточняющий вопрос: "а чтобы имя отображалос в виде (4).jpg?"
Ответ: "Для того чтобы имя файла отображалось в виде (4).jpg, вам нужно добавить скобки в строку пути к файлу. Вот пример кода, который должен работать в Twine 2 с использованием SugarCube 2:
<<set $randimg to random(4, 6)>>
<div style="text-align: center;">
<<print '<img src="pic/(' + $randimg + ').jpg" style="display: inline-block;">'>>
</div>
Этот код установит переменную $randimg со случайным значением от 4 до 6 и выведет путь к изображению с учетом скобок вокруг числа. Таким образом, если значение $randimg будет, например, 4, то путь к изображению примет вид pic/(4).jpg. Убедитесь, что скобки являются частью имени файла в вашей папке pic.
вот теперь оно работает как мне нужно... Спасибо, Майкрософту, что не создает нам простых путей, вот теперь зато понятно, что вместо скобочек можно что угодно подставить. И как подставлять тоже ясно.
Новое матерное слово дня: "конкатенация" Это вот про вот эти вот скобочки с принтом " + " объединяющие элементы в одну строку
https://www.iloveimg.com/ru - незаменимый ресурс для уменьшения размера картинок, сжатия и прочей оптимизации.
Очень удобно. чтобы не запускать громоздкие программы обработки.
яндекс браузер озвучивает любой выделенный текст. Для озвучки книг прямо с веб странице идеально подходит.
https://asimovonline.ru/series/ - потерялась ссылка на цикл основания. Кажется последняя книга была.... из семи серий. Печаль в том, что большинство сайтов неправильно перечисляют содержание циклов и в них отсутствует часть книг.
https://royallib.com/read/azimov_ayzek/osnovanie_i_zemlya.html#0
https://ru.wikipedia.org/wiki/Основание_(цикл)#«Основание_и_Земля»
Фредерик Пол
Все книги и циклы
https://www.livelib.ru/author/352/series-frederik-pol/~2
https://www.livelib.ru/series/797922-hichi
https://www.youtube.com/results?search_query=хичи
Журналы:
https://pochitaem.su/category/zhurnaly/nauka/
https://100pdf.club/?s=наука
https://jurnali-vsem.ru/nauka журналы
http://samlib.ru/c/chizhow_j/new-hoess.shtml - Комендант Освенцима. Автобиографические записки Рудольфа Гесса
<<if $month === 1>>
<<if (($year % 4 is 0) and ($year % 100 is not 0)) or ($year % 400 is 0)>>
<<set $daysInMonth to 29>>
<<else>>
<<set $daysInMonth to 28>>
<</if>>
но проверять и радоваться буду уже завтра
====================================
Чтобы переключать дни недели, вам нужно увеличивать значение $weekdays на единицу каждый раз, когда вы добавляете один день. Например, вы можете написать:
<<set $days += 1>>
<<set $weekdays += 1>>
<<print "Завтра " + $namedayweek[$weekdays % 7] + ".">>
Этот код выведет на экран “Завтра Вт.”, если $weekdays было равно 0 (Пн) до этого.
Если вы хотите узнать больше о том, как работать с массивами и операторами в Twine 2 SugarCube 2, вы можете посмотреть документацию или руководство для начинающих.
Это прорыв!!!!)))) Я узнал, что цифирька в квадратных скобках это индекс... завтра я это забуду (такой вот сюжет прямо по Кизу "цветы для Элджернона" )))))
Вот измененный код на языке Twine SugarCube 2, который увеличивает индекс элемента массива $namedayweek на 1 каждые 24 часа:
<<if $hours >= 24>>
<<set $days += Math.floor($hours / 24)>>
<<set $gdays += Math.floor($hours / 24)>>
<<set $hours %= 24>>
<<set $namedayweekIndex = $namedayweekIndex + Math.floor($hours / 24)>>
<<if $namedayweekIndex >= $namedayweek.length>>
<<set $namedayweekIndex = $namedayweekIndex - $namedayweek.length>>
<</if>>
<</if>>
<<set $namedayweek = ["Пн", "Вт", "Ср", "Чт", "Пт", "Сб", "ВС"]>>
<<set $namedayweekToday = $namedayweek[$namedayweekIndex]>>
В этом коде мы добавили переменную $namedayweekIndex, которая хранит текущий индекс элемента массива $namedayweek. Каждые 24 часа мы увеличиваем $namedayweekIndex на 1, и если $namedayweekIndex становится больше или равным длине массива $namedayweek, мы вычитаем длину массива, чтобы вернуться к началу массива. Затем мы устанавливаем $namedayweekToday равным элементу массива $namedayweek с индексом $namedayweekIndex.
============================================
лан сегодня спать, завтра главное проснуться и быть в состоянии видеть буквы и думать)) Может я таки рожу что-то