Начисто сегодня:

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>>

============================================================
Пассаж сумки
 
/*Отображение добавленных предметов в виде ссылок в пассаже "Инвентарь":
javascript*/
 
<<set $totalWeightSumka = 0>> /*подсчет общего веса предметов в сумке*/
 
<<if $totalWeightSumka >= 5000>>
    У вас больше нет места в сумке
<</if>>
 
   
<<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>>
 
        <br>
    <</for>>
 
    <p>Общий вес предметов в сумке: <<print $totalWeightSumka>> грамм</p>
<<else>>
    <p>Ваша сумка пуста.</p>
<</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 и обновить ее значение при съедании предметов.

Дайте мне знать, если у вас возникнут дополнительные вопросы!

=============================

Молодец! Вот только я ему забыл сказать, что переменные уже объявлены и даже изменяются во времени. Лан завтра в это буду вникать.

 


Profile

blocknote

January 2025

S M T W T F S
    1234
567891011
12131415 161718
19202122232425
2627 28293031 

Syndicate

RSS Atom

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Powered by Dreamwidth Studios