Как сделать?

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

Вета,
ты наверное опечаталась. В инвентарь нож должен прописываться так:

Код:

$inv[0] = '$knife'

Тогда вывод:

Код:

dynamic "<<$inv[0]>>['name']"

dynamic "<<$inv[0]>>['desc']"

P.S.: а я всем рекламирую систему типа:

 Спойлер Show Spoiler Hide Spoiler
 

Aleks Versus
воздвигатель башни
useravatar
Онлайн
1480 Сообщений
Информация о пользователе в сообщениях
Администратор отключил публичную отправку сообщений

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

Aleks Versus, ты мой герой! smile Ты меня спас, спасибо тебе огромное )

Aleks Versus написал(а):

Вета,
ты наверное опечаталась. В инвентарь нож должен прописываться так:

Код:

$inv[0] = '$knife'

Тогда вывод:

Код:

dynamic "<<$inv[0]>>['name']"

dynamic "<<$inv[0]>>['desc']"

P.S.: а я всем рекламирую систему типа:

 Спойлер Show Spoiler Hide Spoiler
 

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

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

Собственно нужно как-то уменьшить кол-во кода на локации "Улица"
Какие ваши советы?
Кусок кода:

Код:


IF Что>0:
    IF INSTR($МАМА['GEO'], 'Лока') AND INSTR($ПАПА['GEO'], 'Лока') AND INSTR($СЕСТРА['GEO'], 'Лока') AND INSTR($БРАТ['GEO'], 'Лока'):
        GS 'PROCESS.ACT', $ico['ЗАГЛУШКА'], 'Ссылка на локу', '', '', '<font color="green">Дом</font>', $ico['мама'], $ico['папа'], $ico['сестра'], $ico['брат']
    ELSEIF INSTR($МАМА['GEO'], 'Лока') AND INSTR($ПАПА['GEO'], 'Лока') AND INSTR($СЕСТРА['GEO'], 'Лока'):
        GS 'PROCESS.ACT', $ico['ЗАГЛУШКА'], 'Ссылка на локу', '', '', '<font color="green">Дом</font>', $ico['мама'], $ico['папа'], $ico['сестра']
    ELSEIF INSTR($МАМА['GEO'], 'Лока') AND INSTR($ПАПА['GEO'], 'Лока') AND INSTR($БРАТ['GEO'], 'Лока'):
        GS 'PROCESS.ACT', $ico['ЗАГЛУШКА'], 'Ссылка на локу', '', '', '<font color="green">Дом</font>', $ico['мама'], $ico['папа'], $ico['брат']
ELSE
    MSG('Ну всё, приехали')
    GS 'PROCESS.ACT', $ico['ЗАГЛУШКА'], 'Ссылка на локу', '', '', '<font color="green">Дом (неоплачено)</font>'
END

Прилагаю игру > igra.qsp

Изменено: jeesson
10.Июн.18 23:40:04
jeesson
бог печенья
useravatar
Offline
16 Сообщений
Информация о пользователе в сообщениях
Администратор отключил публичную отправку сообщений

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

jeesson,

Код:

NUMBER=0

IF INSTR($МАМА['GEO'], 'Лока'): NUMBER+=1
if INSTR($ПАПА['GEO'], 'Лока'): NUMBER+=2
if INSTR($СЕСТРА['GEO'], 'Лока'): NUMBER+=4
if INSTR($БРАТ['GEO'], 'Лока'): NUMBER+=8
! сумма будет отличаться в зависимости от сочетания условий
if что>0:
    ! повторяющиеся части вносим в виде текста в переменную
    $code={GS 'PROCESS.ACT', $ico['ЗАГЛУШКА'], 'Ссылка на локу', '', '', '<font color="green">Дом</font>'}
    IF NUMBER=15:
       dynamic $code+{, $ico['мама'], $ico['папа'], $ico['сестра'], $ico['брат']}
    ELSEIF NUMBER=7:
        dynamic $code+{, $ico['мама'], $ico['папа'], $ico['сестра']}
    ELSEIF NUMBER=11:
        dynamic $code+{, $ico['мама'], $ico['папа'], $ico['брат']}
    ! наверное здесь пропущен END
   
ELSE
    MSG('Ну всё, приехали')
    GS 'PROCESS.ACT', $ico['ЗАГЛУШКА'], 'Ссылка на локу', '', '', '<font color="green">Дом (неоплачено)</font>'
END

Aleks Versus
воздвигатель башни
useravatar
Онлайн
1480 Сообщений
Информация о пользователе в сообщениях
Администратор отключил публичную отправку сообщений

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

О. Глянул игру. Если различие только в передаваемых иконках, то весь код можно представить так:

Код:

NUMBER=0

$ICOS=''
IF INSTR($МАМА['GEO'], 'Лока'): NUMBER+=1 & $ICOS+={, $ico['мама']}
if INSTR($ПАПА['GEO'], 'Лока'): NUMBER+=2 & $ICOS+={, $ico['папа']}
if INSTR($СЕСТРА['GEO'], 'Лока'): NUMBER+=4 & $ICOS+={, $ico['сестра']}
if INSTR($БРАТ['GEO'], 'Лока'): NUMBER+=8 & $ICOS+={, $ico['брат']}

if что>0:
    ! повторяющиеся части вносим в виде текста в переменную
    $code={GS 'PROCESS.ACT', $ico['ЗАГЛУШКА'], 'Ссылка на локу', '', '', '<font color="green">Дом</font>'}
    IF NUMBER>0:
       dynamic $code+$ICOS
    ELSE
       GS 'PROCESS.ACT', $ico['ЗАГЛУШКА'], 'Ссылка на локу', '', '', '<font color="green">Дом (пусто)</font>'
    end
ELSE
    MSG('Ну всё, приехали')
    GS 'PROCESS.ACT', $ico['ЗАГЛУШКА'], 'Ссылка на локу', '', '', '<font color="green">Дом (неоплачено)</font>'
END

Aleks Versus
воздвигатель башни
useravatar
Онлайн
1480 Сообщений
Информация о пользователе в сообщениях
Администратор отключил публичную отправку сообщений

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

О, огромное спасибо) Спас от кучи повторений(думал будет безумие), ибо не знал как это реализовать))

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

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

act "выйти":
time +=5
gs 'calendar'
gt 'Привокзальная площадь'
end
if деньги >=1500:
act 'Поесть':
деньги=деньги -1500
сытость +=100
*pl 'Было не очень вкусно, но дешево'
    gt $CURLOC
    elseif деньги <1500:
    *pl 'У меня не достаточно денег'
    end
end
при на жатии на поесть пропадает это действие, и не выводится 'Было не очень вкусно, но дешево'
c кнопкой разобрался. как вывести этот текст на экран

Изменено: новичок
17.Дек.18 13:45:05
новичок
useravatar
Offline
25 Сообщений
Информация о пользователе в сообщениях
Администратор отключил публичную отправку сообщений

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

Оптимизирую твой код:

if деньги >=1500:
act 'Поесть':
  деньги -= 1500
  сытость += 100
  pl 'Было не очень вкусно, но дешево'
  gt $curloc
else
  pl 'У меня не достаточно денег'
  end
end
Проблема в том, что надпись выводится на главное окно описания, но сразу же после этого из-за "gt $CURLOC" локация обновляется, и текст исчезает. Решение: напиши где-нибудь в начале игры строку "showstat 1". Тогда появится окно дополнительного описания, в котором эти надписи будут появляться, и никуда не исчезнут кроме как по твоему прямому приказу. И в таком случае не ставь звезду перед "pl".
Кстати, задавай вопросы не в новой теме, а в теме "Как сделать?".

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

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

Логическая ошибка. Акт появляется, если денег достаточно, при этом проверка на их недостаточность стоит внутри этого акта.
Структура:
если
  акт
  иначе
  конец акта - ошибка, акт заканчивается после "иначе", следовательно не видим в блоке акта сверху
конец если

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

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

Engineer написал(а):

Логическая ошибка. Акт появляется, если денег достаточно, при этом проверка на их недостаточность стоит внутри этого акта.
Структура:
если
  акт
  иначе
  конец акта - ошибка, акт заканчивается после "иначе", следовательно не видим в блоке акта сверху
конец если

Хах. Я пытался помочь, но сделал ту-же ошибку.

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

Информация

Статистика форума:
 
Всего тем:
970
Всего опросов:
14
Всего сообщений:
16790551
Бездействующий:
Пользователи форума:
 
Всего пользователей:
2355
Последним зарегистрировался:
Kron87