RU 📌 Pinned

Как сделать?

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

Опять вопрос. Есть некоторое количество однотипных предметов (пионеры). У каждого пионэра есть три свойства - имя, возраст и номер фотографии… Чтобы каждый отдельный пионер был уникальным. Я прописал для каждого пионера свой ID, получив конструкцию типа:

$pioname[ID] = ...
pioAge[ID] = ...
piopic[ID] = ...

Многоточия заполняются исполнением функций, случайно выбирающими имя, возраст и номер… ID методично увеличивается с каждой операцией.В рамках одной локации все нормально. Куча разных пионеров, но стоит переместиться на другую, вспоминается только последний (в лучшем случае). Подскажите, пожалуйста, как вспомнить всех созданных пионеров на другой локации или посоветуйте какую-нибудь игру, где этот механизм реализован.

svandrus , посмотри в моих Пилигримах. Там все это просто внесено в массив.

Hungry, спасибо… Вроде то, что надо. Жалко только, что ты комментариев не делал.

Такой еще вопрос: Можно ли в стандартном проигрывателе изменять шрифты?

Да. Ты имеешь ввиду $fname ?

Ага. Только я пытался - не получилось, почему-то.. Где названия шрифтов посмотреть? И можно ли своих добавить? Готичненьких?

Aleks Versus Moderator 11.04.2015 10:31 (10 years ago)

svandrus,
используются шрифты, установленные в системе. Соответственно можно посмотреть (в винде): панель управления - шрифты. Чтобы запилить свой шрифт в игре, тебе придётся закинуть шрифт в папочку с игрой и попросить игрока установить шрифт в системе, прежде чем приступить к игре. Или воспользоваться возможностями AeroQSP. Туда как-то можно протаскивать шрифты, тема есть на форуме.

Hungry,
ты можешь добавить текст на все описания локаций, если будешь выводить его в ONNEWLOC.

Обновляться будет при переходе (оператор GT ‘локация’).

! Стартовая локация.
$ONNEWLOC = 'ONNEWLOC'

! Локация 'ONNEWLOC'
'Характеристики персонажа: '
'Жизни ' + жизни
'Деньги ' + деньги
'-------------------------'

Aleks Versus Спасибо. Разобрался.
Опять вопрос:
Сделал время в игре и прикрутил его на локацию-счетчик ‘time’. Как его запустить в реал-тайме я догадался, но вот как заставить его запускаться и останавливаться по желанию игрока - это я не понял. Пытался передавать через ARGS вроде:

!loc 1
act 'Запустить время': gs 'time', 1
act 'Остановить время': gs 'time', 2
!time
IF ARGS[0] = 1: time += 1
IF ARGS[0] = 2: time += 0

Но такие фокусы срабатывают только однократно, а при попытке устроить на ‘time’ цикл - вообще все виснет. Можно это как-то решить?

Напомните, после оператора else нужен end?

RomaDova,
если оператор многострочный, то нужен.

! Многострочный оператор:
IF джип = 1:
    '- Садись, прокачу. - Ой, какой вы нахальный. Только мне далеко. - Да не вопрос, поехали.'
ELSE
    '- Девушка, своей красотой вы затмили солнце! - Отвали.'
END

! Однострочный оператор:
IF лопата = 1: GT 'закопал_труп' ELSE GT 'спрятал_труп'

Однострочную форму использовать не рекомендую.

Nex,
Бедная девушка, зачем же так жестко?

Oliver,
так интереснее.

$враг[1]='враг 1'
$имя['враг 1']='волк'
$враг[2]='враг 2'
$имя['враг 2']='бандит'
$враг[3]='враг 3'
$имя['враг 3']='серый волк'

i=1
:g
if i<arrsize('$враг'):
	act 'атаковать <<$имя[$враг[i]]>>':
		ХП[$враг[i]]-=10
	end
	i+=1
	jump 'g'
end

есть пример кода, он не работает из-за области видимости в act (на какую кнопку не нажми всегда будет враг номер 4). это можно обойти используя selact, но врагов будет много, хотелось бы отображать для игрока только поле $имя, которое может быть одинаковым для нескольких врагов, меняться в зависимости от ранения, а неприятный идентификатор $враг[i]по которому считаются статы прятать. Кто знает, как можно в act передать информацию?

Товарищи, вот такая конструкция:

$name = input ('Ваше имя?')
IF $name <> '': $name = 'Вася'

Почему “<>”? Что это значит и, главное, почему в чужом коде это работает?

<> - это знак неравенства (он же !). только в данном случае на его месте должно быть =. тогда если игрок не введет имя, оно по умолчанию будет Вася.

Log in or Register to post comments.