Как сделать?

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

DaRkNeSSxSiTH,
1. Ты проставил индексы элементам массива, а индексы элементов массива в моём коде должны начинаться с нуля. У тебя они начинаются с единицы.

Сделай запись как в моём коде, без указания индекса, тогда они будут нумероваться с нуля. Или просто перепиши индексы, для месяцев от 0 до 11, для дней недели от 0 до 6.

2. Сначала должно быть вычислено общее количество дней (переменная "days"), а потом уже зависящие от неё значения "месяц" ("month"), "число месяца" ("month_day"), "день недели" ("weekday").

У тебя наоборот. Потому и не работает.

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

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

Сделал по-другому

Код:

showinput 0

USEHTML = 1
время=время+2
min=время-hour*60-days*24*60
$min = IIF(min < 10, STR(min), '0' + STR(min))
hour=(время-days*24*60)/60
days=время/(24*60)
weekday = days MOD 7
month = (days/30) MOD 12
month_day = days MOD 30 + 1 
$month_name[0] = 'января'
$month_name[1] = 'февраля'
$month_name[2] = 'марта'
$month_name[3] = 'апреля'
$month_name[4] = 'мая'
$month_name[5] = 'июня'
$month_name[6] = 'июля'
$month_name[7] = 'августа'
$month_name[8] = 'сентября'
$month_name[9] = 'октября'
$month_name[10] = 'ноября'
$month_name[11] = 'декабря'
$weekday_name[0] = 'Понедельник'
$weekday_name[1] = 'Вторник'
$weekday_name[2] = 'Среда'
$weekday_name[3] = 'Четверг'
$weekday_name[4] = 'Пятница'
$weekday_name[5] = 'Суббота'
$weekday_name[6] = 'Воскресение'
деньги = 1000
clr
p 'Деньги:<<деньги>> рублей
Время: '<<month_day>> <<$mohtn_name[month]>> <<$weekday_name[weekday]>> <<hour>>:<<$min>>'

Не работает... Может я тебя как-то не так понял и не правильно изменил... Я новичёк и только только разбираюсь в программе...

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

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

DaRkNeSSxSiTH,
Позовете меня тогда, когда будет готов верный код

S.T.A.L.K.E.R.
Наемник сдох
useravatar
Offline
127 Сообщений
Информация о пользователе в сообщениях
Администратор отключил публичную отправку сообщений

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

Как сделать чтобы на выбраный предмет в инвентаре можно было кликнуть еще раз?
Нужно либо как-то убрать выбор, или перерисовать окно предметов.
можно сделать так:
  DELOBJ 'предмет'
  ADDOBJ 'предмет'
работать будет как надо, но тогда этот предмет добавится в конец списка, а это плохо.
$SELOBJ = '' не работает

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

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

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

Как сделать чтобы на выбраный предмет в инвентаре можно было кликнуть еще раз?
Нужно либо как-то убрать выбор, или перерисовать окно предметов.
можно сделать так:
  DELOBJ 'предмет'
  ADDOBJ 'предмет'
работать будет как надо, но тогда этот предмет добавится в конец списка, а это плохо.
$SELOBJ = '' не работает

А индексы для чего?

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

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

DaRkNeSSxSiTH,
сначала у тебя должен рассчитываться параметр "days", потом зависящий от него "hour", потом в свою очередь зависящий от "hour" параметр "min". А у тебя всё наоборот.

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

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

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

А индексы для чего?

А как узнать индекс выделенного предмета? $SELOBJ возвращает имя, а не индекс.

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

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

переделал так...

Код:

время=время+2

days=время/(24*60)
hour=(время-days*24*60)/60
min=время-hour*60-days*24*60
$min = IIF(min < 10, STR(min), '0' + STR(min))
weekday = days MOD 7
month = (days/30) MOD 12
month_day = days MOD 30 + 1 
$month_name[0] = 'января'
$month_name[1] = 'февраля'
$month_name[2] = 'марта'
$month_name[3] = 'апреля'
$month_name[4] = 'мая'
$month_name[5] = 'июня'
$month_name[6] = 'июля'
$month_name[7] = 'августа'
$month_name[8] = 'сентября'
$month_name[9] = 'октября'
$month_name[10] = 'ноября'
$month_name[11] = 'декабря'
$weekday_name[0] = 'Понедельник'
$weekday_name[1] = 'Вторник'
$weekday_name[2] = 'Среда'
$weekday_name[3] = 'Четверг'
$weekday_name[4] = 'Пятница'
$weekday_name[5] = 'Суббота'
$weekday_name[6] = 'Воскресение'
деньги = 1000
clr
p 'Деньги:<<деньги>> рублей'
'Время: <<month_day>> <<$mohtn_name[month]>> <<$weekday_name[weekday]>><<hour>>:<<$min>>'

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

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

Разобрался, нашёл ошибки,исправил и немного изменил код - заработало)

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

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

Хм. Почему это у всех, даже у Nex'a, календарь из 12 месяцев по 30 дней в каждом? 0_о В году ~365.5 дней, а вовсе не 360. Делайте правильно. Например, вот так:

Код:


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>>')

Этот код можно поместить в $ONNEWLOC или любую другую локацию по вашему вкусу.
JDNStart для любой даты можно вычислить, например, здесь (не забудьте указать время после полудня, т.к. Юлианский день начинается в полдень, в отличие от привычной нам даты).

Для интересующихся: теория.

Ну и для представления в текстовом виде:

Код:

$weekday[1] = 'Понедельник'

$weekday[2] = 'Вторник'
$weekday[3] = 'Среда'
$weekday[4] = 'Четверг'
$weekday[5] = 'Пятница'
$weekday[6] = 'Суббота'
$weekday[7] = 'Воскресенье'
$month[1] = 'Январь'
$month[2] = 'Февраль'
$month[3] = 'Март'
$month[4] = 'Апрель'
$month[5] = 'Май'
$month[6] = 'Июнь'
$month[7] = 'Июль'
$month[8] = 'Август'
$month[9] = 'Сентябрь'
$month[10] = 'Октябрь'
$month[11] = 'Ноябрь'
$month[12] = 'Декабрь'

Теперь вы можете пользоваться нормальным календарем.

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

Информация

Статистика форума:
 
Всего тем:
1006
Всего опросов:
14
Всего сообщений:
16790890
Всего сообщений сегодня:
2
Пользователи форума:
 
Всего пользователей:
2585
Последним зарегистрировался:
McFly