[personal profile] blocknote

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

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 и обновить ее значение при съедании предметов.

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

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

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

 


(will be screened)
(will be screened)
(will be screened)
If you don't have an account you can create one now.
HTML doesn't work in the subject.
More info about formatting

Profile

blocknote

July 2025

S M T W T F S
  12345
6 7891011 12
13141516171819
20212223242526
2728293031  

Style Credit

Expand Cut Tags

No cut tags
Powered by Dreamwidth Studios