Как сделать?

Re: Как сделать?

Я начал делать инвентарь но зашел в тупик уже что тока не пробовал но показатели не увеличивается
Я скину проще кодом
Это при выборе персонажа. Чтобы отображалось в самом начале 
$object_lev_1[0]='Персонаж'
$object_lev_1[1]='Статы'
$object_lev_1[2]='Кошелёк'
$object_lev_1[3]='Связка ключей'
$object_lev_1[4]='Рюкзак'
$onobjsel = 'выделение_предметов'
GOSUB 'выделение_предметов'

выделение_предметов
Там код прописан
if $selobj='' or $selobj='Назад':
killobj
i=0    &
:уровень1
if i<arrsize('$object_lev_1'):
addobj $object_lev_1[i]
i = i +1
jump 'уровень1'
end
elseif $selobj='Рюкзак':
killobj
addobj 'Назад'
addobj 'Назад
i=0    &
:уровень2
if i<arrsize('$object_lev_2'):
addobj $object_lev_2[i]
i = i +1
jump 'уровень2'
end
end
if $selobj='Статы':
killobj
Здоровье=100
addobj 'Здоровье <<здоровье>>','',1
Скрытность=0
addobj 'Скрытность <<Скрытность>>','',1
End
addobj 'Назад'
end
unsel

После на другой локе пытаюсь прокачать скрытность
                money=money-100
                Act 'Держи':
                if $selobj='Статы':
                Скрытность=Скрытность+1
                obj 'Скрытность <<Скрытность>>','',1
                End

Но по и тогу остается так же ноль, можете обьяснить почему

Lucifer
Новичок
useravatar
Offline
18 Сообщений
Информация о пользователе в сообщениях
Администратор отключил публичную отправку сообщений

Re: Как сделать?

Lucifer,
У тебя кавычка потерялась.

Код:


addobj 'Назад'
addobj 'Назад
i=0    &

dmvikar
useravatar
Offline
210 Сообщений
Информация о пользователе в сообщениях
Администратор отключил публичную отправку сообщений

Re: Как сделать?

Помимо кавычки:
obj 'Скрытность <<Скрытность>>','',1
Здесь, наверняка, подразумевался addobj.
После исправления этих ошибок появится что-то еще smile

Похоже, что проще было бы вести отдельный массив с предметами и отображать его (с помощью killobj / addobj) каждый раз при обновлении статуса.

Byte
useravatar
Offline
732 Сообщений
Информация о пользователе в сообщениях
Администратор отключил публичную отправку сообщений

Re: Как сделать?

Попробую спасибо вам большое  smile

Lucifer
Новичок
useravatar
Offline
18 Сообщений
Информация о пользователе в сообщениях
Администратор отключил публичную отправку сообщений

Re: Как сделать?

Всем привет. В игре использую юлианский календарь, взятый с форума.
На локации происходит череда действий, которые меняют показатели сытости, усталости и т.п. и времени.

act "Завтракать":
time+=15 & Настроение+=5 & Здоровье+=5 & Усталость+=5
gs 'stat'

При этом все показатели меняются как надо - при окончании действия. И только время обновляется при выходе из локации. Что с временем не так?

AndreWho
useravatar
Offline
10 Сообщений
Информация о пользователе в сообщениях
Администратор отключил публичную отправку сообщений

Re: Как сделать?

AndreWho,Во время выполнения акта должно происходить обращение к локации, которая время пересчитывает.

dmvikar
useravatar
Offline
210 Сообщений
Информация о пользователе в сообщениях
Администратор отключил публичную отправку сообщений

Re: Как сделать?

Так gs 'stat' - это и есть та локация, разве нет?
Я в программировании ноль без палочки, но если мыслить просто логически. По окончании действия идет обращение gs 'stat' и все показатели пересчитываются, кроме времени. Время пересчитывается только при выходе из локации. Причем пересчитывается правильно, в зависимости от количества действий, совершенных внутри локации.

AndreWho
useravatar
Offline
10 Сообщений
Информация о пользователе в сообщениях
Администратор отключил публичную отправку сообщений

Re: Как сделать?

AndreWho,Скорее всего время у тебя считается в onnewloc. Добавь в акт gt curloc и проверь.

dmvikar
useravatar
Offline
210 Сообщений
Информация о пользователе в сообщениях
Администратор отключил публичную отправку сообщений

Re: Как сделать?

dmvikar
Во-первых, спасибо, что пытаешься помочь.
Во-вторых gt $curloc теперь пересчитывает время после act. Но теперь первый act на локации зацикливается на повтор.


        act 'Войти в комнату':   
        *clr & cla
        time+=10 & Усталость+=5
        gs 'stat'    
        !Текст
        gt curloc

            act 'Открыть шкаф':
            *clr & cla
            !Текст
            Усталость+=5 & time+=10
            gs 'вывод_статов'
            gt curloc

                    cla
                    act 'Выйти':     gt 'Коридор'
                    end
                end
            end                       

Может все-таки в коде на onenewloc поправить?


clr
pl $weekday[weekday] + ', ' + day + ' ' + $month[month] + ' ' + year + 'года' + '.  ' + $hour + ':' + $minut
pl "Усталость: <<усталость>>|<<Максимум_усталость>>"

AndreWho
useravatar
Offline
10 Сообщений
Информация о пользователе в сообщениях
Администратор отключил публичную отправку сообщений

Re: Как сделать?

AndreWho,при таком построении актов оно так и должно быть.
То, что ты скопировал из onenewloc  - это вывод времени, а не расчет. Попробуй, вставь его. Возможно и сработает. Я же не знаю твоего кода и что конкретно где считается. И не бойся экспериментировать).

dmvikar
useravatar
Offline
210 Сообщений
Информация о пользователе в сообщениях
Администратор отключил публичную отправку сообщений

Информация

Статистика форума:
 
Всего тем:
1062
Всего опросов:
14
Всего сообщений:
16791271
Бездействующий:
Пользователи форума:
 
Всего пользователей:
2891
Последним зарегистрировался:
vrsd