Как сделать?
…
Гуру, скажите что в коде не так?)))) В случае 1 и 4 положительных ответов слетает дальнейший диалог…Наверняка что-то элементарное - но уже взгляд замылился - в упор не вижу где глюк :(
Так вот что получилось. Не до конца еще понимаю механику qsp. Вот что получилось с выделением предмета:
Spoiler
$SelectColor = ‘#98FB98’
$DefaultColor = ‘<<$TableTextColor>>’
dynamic $shop
$Shop = \
Если оставить просто $Shop = Получается пустой экран. Если добавить dynamic $shop в начале то ничего не меняется. Что я сделал не так? По идее плеер должен видеть команду dynamic $shop и выполнить ее, а уже при клике на таблицу срабатывает Select 1 и обновление таблицы. Но что то не хочет работать.
lamerUA,
очевидно, где-то неправильно закрыто условие, несмотря на то, что на первый взгляд кажется, будто все условия и действия закрыты правильно. Разобраться в этом нагромождении стороннему человеку будет ой как непросто. Рекомендую нарисовать диалог в виде схемы и заново проставить преформатирование, а ещё лучше прокоментировать каждый act if и end:
! открываем первый вопрос
act 'Сэр!, Могу я задать вам пару вопросов?':
delact 'Сэр!, Могу я задать вам пару вопросов?'
допрос=1
!....
! закрываем первый вопрос
end
Bup0H,
dynamic $shop должен стоять после присвоения значения переменной $shop. Вывод таблицы на экран делай с помощью оператора *p. То есть не
'<center><table >'
'<tr>'
'<td>'
, а:
*p '<center><table >'
*p '<tr>'
*p '<td>'
Перед тем, как нарисовать таблицу, нужно стереть её предыдущий вариант, т.е. в $shop = первой строкой должна идти команда *clr.
При этом одноразовое изменение цвета у меня лично работает. Цвет меняется на салатовый.
Слово “<купить>” напиши так:
<купить>
Старайся не использовать тег <center> внутри таблицы. Для центрирования можно использовать атрибут align:
<td align=center>...</td>
Здравствуйте. Теперь такой вопрос. Как сделать будильник в игре? Как-то не могу сообразить…
Начал форматировать - врубился…как раз в 1 и 4 вопросе внутренние циклы незакрыты ENDом)))))) Так что реально ларчик просто открывался, просто структура сложноватая получилась. :rolleyes:
А глупый вопрос - можно ли в QSP делать условие удаления строки или текста?
пример:
‘У подъезда валяется чей-то ножик’
Act ‘Взять чью то финку’:
пушка01=3
delAct ‘Взять чью то финку’
end
Действие убивается, но можно ли убить и строку - или обязательна заморочка через объект, картинку итд?
Как простой вариант привязываешь описание через условие и все. Примерно так:
if пушка01=3:
‘У подъезда сидят бабки’
else
‘У подъезда валяется чей-то ножик’
end
Act ‘Взять чью то финку’:
пушка01=3
delAct ‘Взять чью то финку’
end
Без ошибок
if пушка01=3:
'У подъезда сидят бабки'
else
'У подъезда валяется чей-то ножик'
Act 'Взять чью то финку':
пушка01=3
delAct 'Взять чью то финку'
end
end
Подскажите, почему некоторые гифки проигрываются нормально, а у некоторых искажаются либо цвета, либо скорость в qsp плеере?
Bup0H:
Подскажите, почему некоторые гифки проигрываются нормально, а у некоторых искажаются либо цвета, либо скорость в qsp плеере?
Кусп не терпит оптимизированные гифки. Что бы работать с гифками в куспе надо осваивать програму GIF Movie Gear. Она простая и все что нужно там есть. Там можно разоптимизировать гифку и отрегулировать скорость.
Можно гимпом разоптимизировать ещё. Если не получается - скидывайте мне гифки - сделаю вам так, чтобы оно в куспе игралось. :)) адрес: ajenta@qsp.su
Люди добрые подскажите пожалуйста.
Вопрос: как правильно привязать голод ко времени? Допустим, чтобы раз в час голод= - 1 ? (Всю голову себе уже сломал, хотя чувствую, что решение лежит на поверхности)
У меня есть вот этот календарь:
JDN = JDNStart + time/1440
hour = (time/60) MOD 24
minut = time MOD 60
weekday = (JDN MOD 7) + 1
JDa = JDN + 32044
JDb = (4*JDa + 3)/146097
JDc = JDa - (146097*JDb/4)
JDd = (4*JDc + 3)/1461
JDe = JDc - 1461*JDd/4
JDm = (5*JDe + 2)/153
day = JDe - (153*JDm+2)/5 + 1
month = JDm + 3 - 12*(JDm/10)
year = 100*JDb + JDd - 4800 + JDm/10
$hour = iif (hour < 10, '0<<hour>>', '<<hour>>')
$minut = iif (minut < 10, '0<<minut>>', '<<minut>>')
kolvados, привет, сразу говорю, что не эксперт)
Лучше бы ты заменил код времени на более простой. Например:
!!!Время
!!минуты в часы
:loopminute
if minute>=60:
hour+=1
gs 'gs_время'
minute-=60
jump'loopminute'
end
!!часы в сутки
:loophour
if hour>=24:
day+=1
dayspast+=1
weekday+=1
hour-=24
jump'loophour'
end
!!Цикл дней недели
:loopweek
if weekday>7:
weekday-=7
jump'loopweek'
end
!!Дни в месяцы
:loopmonth
!это еще и годовая метка, ибо смена года влияет на високосность
!Благодаря этому ифу, мы прервем конвертацию дней в месяцы, если месяцев набралось более чем на год. Сначла месяцы в год, потом возвращаемся снова к дням в месяцы.
if month<13:
!Невисокосный февраль
if month=2 and day>28 and year mod 4!0:
month+=1
day-=28
jump'loopmonth'
end
!Високосный февраль
if month=2 and day>29 and year mod 4=0:
month+=1
day-=29
jump'loopmonth'
end
!Январь, март, май, июль, август, октябрь, декабрь
if (month=1 or month=3 or month=5 or month=7 or month=8 or month=10 or month=12) and day>31:
month+=1
day-=31
jump'loopmonth'
end
!Апрель, июнь, сентябрь, ноябрь
if (month=4 or month=6 or month=9 or month=11) and day>30:
month+=1
day-=30
jump'loopmonth'
end
end
!!месяцы в годы
if month>12:
year+=1
month-=12
jump'loopmonth'
end
!Сопоставление текстового названия дня недели его числовому значению
if weekday=1:$weekday='Понедельник'
if weekday=2:$weekday='Вторник'
if weekday=3:$weekday='Среда'
if weekday=4:$weekday='Четверг'
if weekday=5:$weekday='Пятница'
if weekday=6:$weekday='Суббота'
if weekday=7:$weekday='Воскресенье'
!тоже самое, только для месяцев
if month=1:$month='Января'
if month=2:$month='Февраля'
if month=3:$month='Марта'
if month=4:$month='Апреля'
if month=5:$month='Мая'
if month=6:$month='Июня'
if month=7:$month='Июля'
if month=8:$month='Августа'
if month=9:$month='Сентября'
if month=10:$month='Октября'
if month=11:$month='Ноября'
if month=12:$month='Декабря'
!преобразовывает, например, 9 часов в 09 часов
if hour<10:$nullh='0'
if hour>=10:$nullh=''
!тоже самое, но для минут
if minute<10:$nullm='0'
if minute>=10:$nullm=''
Сам в начале работал с тем, что у тебя, но потом забил)
Что касается убывания, то здесь:
:loopminute
if minute>=60:
hour+=1
gs 'gs_время'
minute-=60
jump'loopminute'
end
В gs ‘gs_время’ прописываешь gg[’голод’]-=1 (или как там у тебя голод обозначается) и все должно работать
P.S. Если решишь использовать этот код, то формат вывода:
pl’Время <B><<$nullh>><<hour>></B>:<B><<$nullm>><<minute>></B>’
pl’Сейчас <<day>> <<$month>> <<year>> года, <<$weekday>>.’
Большое спасибо. Только не очень понятно что есть в данном раскладе ‘gs_время’, разве не в него мне надо весь этот код вмантировать?
Есть еще одна проблема: если я захочу допустим “поспать в кровати” и пройдет не один час, а два но голод тем не менее отнимется все равно 1.
kolvados, Нет, у меня пока что в ‘gs_время’, прописано только gg[’бодрость’]-=3.
Да, проблема есть. Но я бы решил ее так:
act 'Спать':
minute +=480
gg['Бодрость']=100
gg['голод']-=N
gt 'Кровать'
То есть для каждого действия, где необходимо, чтобы голод снижался больше 1, можно назначить отдельный параметр. Хотя я почти уверен, что есть способ проще, но я его не знаю :)