Как сделать?

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

Yury8087,
плеер сам преобразует типы данных, когда это возможно. Ты заметишь разницу, только когда плеер не сможет определить тип данных и выведет тебе на экран ошибку. Поэтому следует сразу писать код так, чтобы не путать ни себя ни плеер.
result — для числовых значений
$result — для текстовых значений
$curloc — возвращает текстовое значение, поэтому пишем с символом $
rand — возвращает числовое значение, поэтому пишем без символа $

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

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

А для чего тогда есть ucase и $ucase, если на вход всё равно идет строка и на выходе как ни крути будет строка?

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

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

есть
View - покажет картинку, оставляя возможность взаимодействовать с интерфейсом
msg - покажет текст или код, таблицу и т д! но запретит взаимодействовать с интерфейсом!

нужно
... - показать текст или код, оствляя возможность взаимодействовать с интерфейсом

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

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

Можно сделать окошко в таблие, в которм ты будешь показывать все необходимые сообщения или перевести их в дополнительное окно

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

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

Yury8087,
я не особо шарю в таких семантических тонкостях, но
$cos и cos — это по идее два разных массива

Код:

cos[0]=1

cos[1]=2
$cos[1]='time'
cos[2]=3
$cos[1]
cos[1]

Однако

Код:

arrsize('$cos')

arrsize('cos')

И killvar тоже уничтожит оба массива, какой бы ты ему ни указал. Таким образом символ $ не является частью имени массива, а только лишь указывает на то, какое значение ты хочешь из него получить, и в каждом массиве можно параллельно хранить и текстовые и числовые значения.
Отсюда следует, что имя функции можно указывать так же хоть с $ хоть без $, разницы нет. Если функция возвращает только строку, плеер получит строку. Если функция возвращает только число, плеер получит число.
Однако, если ты наплюёшь на символ $ в записи строковых функций совсем, ты во-первых, сделаешь код менее читаемым, во-вторых однажды столкнёшься с ошибкой, когда плеер не будет знать, какой тип значения тебе нужен. Но тогда он оповестит тебя, что ты неверно указал тип данных. Другое дело, когда плеер автоматически преобразует значение к тому типу, который ему покажется правильным, а тебе нужен будет другой тип, и тогда ошибка будет неявная, и найти её будет в разы сложнее.

Я сам пишу, чего греха таить, и ucase и $ucase. Но, хотя плеер и понимает, чего мы от него хотим, писать следует $ucase, так как это синтаксически грамотно, и поможет выработать привычку к синтаксически верному коду, а значит поможет избежать множества ошибок с типами данных.

Когда начнёшь работать с $func(func) и $dyneval(dyneval), придётся приучить себя правильно указывать тип данных. Особенно с избыточным кодом функций.

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

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

Спасибо за ответ.

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

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

Как сделать сохранение и загрузку?
ибо как бы я не изощрялся и не вбивал в поиск выдает все что угодно кроме нужной информации!

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

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

Teemo228,

Справка написал(а):

Сохранения
OPENGAME [$выражение] - если [$выражение] равно "" (пустая строка) или отсутствует, то вызов окна загрузки состояния игры, иначе загрузка состояния из указанного файла.
См. также $ONGLOAD.
SAVEGAME [$выражение] - если [$выражение] равно "" (пустая строка) или отсутствует, то вызов окна сохранения состояния игры, иначе сохранение состояния в указанный файл.
См. также $ONGSAVE.
NOSAVE - если значение переменной отлично от 0, то сохранение состояния игры пользователем невозможно.
DEBUG - если значение переменной не равно 0, то отключается проверка идентификатора игры при загрузке состояния.
Иначе при каждом изменении файла игры не поддерживаются предыдущие сохранения.

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

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

Как сделать, чтоб при нажатии на предмет в инвентаре в доп. окне описаний отображался текст? У меня есть кошелёк, и хочу чтоб при нажатии выводилось "У вас <<деньги>> центов"

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

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

Random_Page,

Справка написал(а):

В QSP есть возможность сделать так, что бы локация выполнялась каждый раз при возникновении определенного события. Для этого нужно присвоить название локации предназначенной для этого системной переменной.
$ONOBJSEL - при выборе предмета
Получить название выбранного предмета можно через функцию "SELOBJ".
IF $SELOBJ = 'чайник':
  P 'Самый обычный чугунный чайник.'
END

При выборе играющим какого-либо предмета, он остаётся выделенным. Снять выделение можно командой UNSELECT или UNSEL.
IF $SELOBJ = 'нож':
  *P 'Нельзя убить этого человека'
END
UNSEL

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

Информация

Статистика форума:
 
Всего тем:
977
Всего опросов:
14
Всего сообщений:
16790682
Всего сообщений сегодня:
3
Пользователи форума:
 
Всего пользователей:
2397
Последним зарегистрировался:
Dmitrius