RU 📌 Pinned

Как сделать?

Dark[Ol(U23)leneri] #34 18.04.2010 22:57 6408 comments 2435158 views

Nex:

kosmosnash,
полностью приведи код. Тот кусок, что ты показал, сам по себе 100% рабочий, я его проверил. Ошибка где-то в другом месте.

Spoiler

clr

!Время

день = время / (24*60)
hour = (время - день*24*60) / 60
minutes = время - hour*60 - день*24*60

years = день/360
year1 = years + 1
monthes = (день - yearS*360)/30
month = monthes + 1
numbers = день - years*360 - monthes*30
number = numbers + 1

weekday = день/7
неделя = день - weekday*7 + 1

year = year1 + 2014

if неделя = 1: $неделя = ‘Понедельник’
if неделя = 2: $неделя = ‘Вторник’
if неделя = 3: $неделя = ‘Среда’
if неделя = 4: $неделя = ‘Четверг’
if неделя = 5: $неделя = ‘Пятница’
if неделя = 6: $неделя = ‘Суббота’
if неделя = 7: $неделя = ‘Воскресенье’

!Месяца
If month = 1: $month = ’01’
If month = 2: $month = ’02’
If month = 3: $month = ’03’
If month = 4: $month = ’04’
If month = 5: $month = ’05’
If month = 6: $month = ’06’
If month = 7: $month = ’07’
If month = 8: $month = ’08’
If month = 9: $month = ’09’
If month = 10: $month = ’10’
If month = 11: $month = ’11’
If month = 12: $month = ’12’

clr
p ‘<center>’
p ‘<table cellpadding=10 cellspacing=0 border=1>’
p ‘<tr><td><center><img src=“pic/clock.png”></center></td>’
p ‘<td><center><img src=“pic/kalendar.png”></center></td>’
p ‘<td><center><img src=“pic/koshelek.png”></center></td></tr>’
if minutes >= 0 and minutes < 10:
p ‘<tr><td><center><b><<hour>>.0<<minutes>></b></center></td>’
else
p ‘<tr><td><center><b><<hour>>.<<minutes>></b></center></td>’
end
if number < 10:
p ‘<td><center><b>0<<number>>.<<$month>>.<<year>>
<<$неделя>></b></center></td>’
else
p ‘<td><center><b><<number>>.<<$month>>.<<year>>
<<$неделя>></b></center></td>’
end
p ‘<td><center><b><<money>>$</b></center></td></tr>’
p ‘</table>’
p ‘</center>’

Ничего не понял. Объясни, что ты пытаешься сделать в игре, как это должно выглядеть с точки зрения игрока. Без понятий программирования типа “переменная”, “значение”, “локация”, и т.п.

В этом случае мы хотим выковать меч. У нас его нет, мы идем и заказываем его, через день приходим, он уже готов.
А тут я хочу изготовить например стрелы, они мне нужны постоянно. Мастер делает их по 10 штук в день. Я прихожу к нему каждый день, забираю стрелы

Кажись, заработал календарь. Ничего не правил. Просто в другом плеере запустил. Даже не знаю… :P

я хочу изготовить например стрелы, они мне нужны постоянно. Мастер делает их по 10 штук в день. Я прихожу к нему каждый день, забираю стрелы

IF день_взял_стрелы < дни_со_старта_игры:
    день_взял_стрелы = дни_со_старта_игры
    '"Держи свои стрелы". Кузнец дал мне 10 стрел.'
    стрелы = стрелы + 10
ELSE
    'Ты уже взял все стрелы. Новые будут завтра.'
END

Благодарю!))
Я тут всех достал, наверно, но все-таки еще вопросик.
Вот я в игре оплачиваю интернет. Мне нужно сделать, чтобы оплаты хватало на неделю, т.е. 7 дней с момента подключения. Но при такой системе времени, получается, что оплаты хватает аккурат до понедельника, потом сбрасыватся. Как сделать, чтобы интернет подключался на 7 дней, а не до конца недели? Привожу код

Spoiler

!тут я оплачиваю
gs ‘stat’
‘<center><font color=blue><b>Отделение почты</b></font></center>’
‘<center><img src=“pic/park/post.jpg”></center>’

act ‘Оплатить интернет’:
cla
‘<i>- Добрый день. Я бы хотел оплатить неделю интернета.
- Конечно. С вас 100$</i>’
act ‘Оплатить’:
время_интернета = день / 7
money -= 100
gt $curloc
gs ‘stat’
end
act ‘Отойти’: gt $curloc
end

act ‘Выйти’:
время = время - 15
gs ‘stat’
gt ‘skver’
end

Spoiler

!тут я подключаю интернет
‘<center><img src=“pic/shop/notebook.png”></center>’
время_сейчас = день / 7
act ‘Подключиться к интернету’:
*clr
‘<center><img src=“pic/shop/notebook_1.png”></center>’
cla
act ‘Подключение…’:
cla
if время_сейчас - время_интернета < 1:
internet = 1
*clr
‘<center><img src=“pic/shop/notebook_2.png”></center>’
‘<center>Интернет подключен!</center>’
else
*clr
‘<center><img src=“pic/shop/notebook_3.png”></center>’
‘<center>Не удалось подключиться к сети Интернет.</center>’
end
act ‘Назад’: gt $curloc
end
end

1.

время_интернета = день / 7

нужно заменить на

время_интернета = день

2.

время_сейчас = день / 7

нужно заменить на

время_сейчас = день

3.

if время_сейчас - время_интернета < 1:

нужно заменить на

if время_сейчас - время_интернета < 7:

Добрый день. Я ковыряю свою первую игру с нулевыми навыками в программировании и прочтением 7-ми уроков с выполнением заданий, поэтому вопрос может быть “дурацкий”, вы уж извините. Пытаюсь сделать боевку, используя простые действия и условия. Вот пример:
IF Жизнь_Минотавра = 100:
Жизнь_минотавра = Жизнь_минотавра - 50
PL “Ты с ловкостью дикого хищника бросаешься на минотавра и пронзаешь его мечем. Еще один удар и враг повержен ”
ELSE
Жизнь = Жизнь - 20
PL “Минотавр сильный и коварный противник. Он легко уклоняется от удара и наносит свой.”
GOTO $CURLOC
END

Код от чего-то не работает, то есть текст появляется, а жизнь минотавра не убавляется. Подскажите, что я не так делаю, пожалуйста.

А на этой локации есть отсылка к локе со статами через gs?
Обычно это выглядит как gs ‘stat’

kosmosnash,
Нет, если я правильно понял вопрос. Код локации выглядит так:
“Ваша жизнь: <<Жизнь>>”
“Жизнь минотавра: <<Жизнь_минотавра>>”
IF Жизнь < 0:
GOTO “Смерть_от_минотавра_в_бою”
END
IF Жизнь_минотавра < 0:
GOTO “Победа_над_минотавром”
END

Можно подробнее что такое “отсылка к локе со статами через gs” я чей-то совсем чайник видать…

Это код той локации, на которой и битва происходит?

Дайте код полностью

Это полностью…. Параметр “Жизнь” и “Жизнь_минотавра” прописаны в стартовой локации

В общем, команда goto, или gt осуществляет переход на другую или на ту же самую локацию. А есть команда gs. Она позволяет “заглянуть” в другую локацию, но оставаться на той же, что и были.
Попробуйте создать локацию (обычно ее называют stat, и пропишите там

*p ‘Ваша жизнь: <<Жизнь>>’
*p ‘Жизнь минотавра: <<Жизнь_минотавра>>’

А в локацию с боем добавьте:

IF Жизнь_Минотавра = 100:
‘Жизнь_минотавра -= 50’
gs ‘stat’
PL “Ты с ловкостью дикого хищника бросаешься на минотавра и пронзаешь его мечем. Еще один удар и враг повержен ”
ELSE
Жизнь -= 20
gs ‘stat’
PL “Минотавр сильный и коварный противник. Он легко уклоняется от удара и наносит свой.”
GOTO $CURLOC
END

т.е. всегда, когда нужно обновить статы, ссылайтесь на эту локацию. Так удобнее всего

Спасибо

kosmosnash,
Правильно я понимаю, что эта строчка
IF Жизнь_Минотавра = 100:
‘Жизнь_минотавра -= 50’
Значат что при этом действии значению “Жизнь_минотавра” будет присвоено значение 50, а не вычисляться формулой Жизнь_минотавра - 50?

Nikus:

kosmosnash,
Правильно я понимаю, что эта строчка
IF Жизнь_Минотавра = 100:
‘Жизнь_минотавра -= 50’
Значат что при этом действии значению “Жизнь_минотавра” будет присвоено значение 50, а не вычисляться формулой Жизнь_минотавра - 50?

Это вроде как одно и то же. Есть начальное значение, заданное в стартовой локации, по ходу игры оно меняется. Если у вас много минотавров, и нужно чтобы у каждого было перед началом боя 100 hp, то можно либо ввести новую переменную для каждого нового минотавра, например:

жизнь_минотавра_1 = жизнь_минотавра

И дальше во время боя пляшете с новой переменной, а если пользоваться начальной переменной, то можно после смерти одного минотавра, перед боем с новым снова задавать жизнь_минотавра = 100. Но это будет не совсем верно, хотя в некоторых ситуациях может быть удобнее. Может есть способы и попроще, но я бы вводил новую переменную

kosmosnash,
Ничего не понимаю. Сделал код
IF Жизнь_минотавра > 50:
Жизнь_минотавра = Жизнь_минотавра - 51
gs ‘Stat’
PL “Ты с ловкостью дикого хищника бросаешься на минотавра и пронзаешь его мечем. Еще один удар и враг повержен ”
ELSE
Жизнь = Жизнь - 20
gs ‘Stat’
PL “Минотавр сильный и коварный противник. Он легко уклоняется от удара и наносит свой.”
GOTO $CURLOC
END
А все равно не работает. Показывает обе жизни 100

Log in or Register to post comments.