Как сделать?

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

Если прям без него никак то можно сделать так.

Код:

$usercom = 'enter'  &! это в начало игры

А это в локацию enter

Код:

gt $curloc

и тогда

Код:

$regex = '\S+$' 


$strfind($usrtxt, $regex)

будет работать

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

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

oleksandrigo, я планировал, что у игры будет небольшая вставка с терминалом. К примеру, как в игре "Килобайты роз", но там вся игра на нём завязана.

Юзерком использовал с самого начала, но регекс там не сработал.

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

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

Псст. Решение вроде бы найдено, но оно немного кривоватое.

Вот, какая строка должна была задействовать код: "run root/SD_Disk_2_GB/2.protocol". Но на деле работает только эта строка: "run  root/SD_Disk_2_GB/2.protocol" (обратить внимание на два пробела).

Код:

Код:

$regex = '\s\S+$'


if $strfind($usrtxt,'^\w{2,9}\s?\w+')='run' and $strfind($user_text, $regex)=' root/SD_Disk_2_GB/2.protocol':
    if disk = 1 and $diskname = 'SD_Card_2_GB':
        if дым = 1: дым = 0
        pl 'Протокол успешно запущен...'
        p 'Выполняю... |||'
        wait 700
        p '|||||'
        wait 700
        pl '|||'
        wait 700
        pl 'Готово.'
    end
    'test'
end

Может ли кто-нибудь подсказать, как изменить эту ситуацию? Сразу скажу, что код

Код:

$regex = '\S+$'


if $strfind($usrtxt,'^\w{2,9}\s?\w+')='run' and $strfind($user_text, $regex)='root/SD_Disk_2_GB/2.protocol':
    if disk = 1 and $diskname = 'SD_Card_2_GB':
        if дым = 1: дым = 0
        pl 'Протокол успешно запущен...'
        p 'Выполняю... |||'
        wait 700
        p '|||||'
        wait 700
        pl '|||'
        wait 700
        pl 'Готово.'
    end
    'test'
end

тоже работает лишь с двумя пробелами.

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

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

NickoAilus,

 Спойлер Show Spoiler Hide Spoiler
 

Код:


$regex = '\S+$'

$strfind($usrtxt,'^\w{2,9}\w+')
$strfind($user_text, $regex)


if $strfind($usrtxt,'^\w{2,9}\s?\w+') = 'run' and $strfind($user_text, $regex)=' root/SD_Disk_2_GB/2.protocol':
    if disk = 1 and $diskname = 'SD_Card_2_GB':
        if дым = 1: дым = 0
        pl 'Протокол успешно запущен...'
        p 'Выполняю... |||'
        wait 700
        p '|||||'
        wait 700
        pl '|||'
        wait 700
        pl 'Готово.'
    end
    'test'
end

Оно?

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

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

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

Нужно сделать так, чтобы $strfind находил в $usrtxt последовательность из "непустых" символов, находящуюся в конце строки. Пробовал так:

вместо того, чтобы ковырять весь код целиком, рекомендую проверять регэкспы, создав отдельный файл qsp.

Не совсем понимаю поставленную задачу.
Если в строке присутствует несколько слов (под словом подразумеваются кусочки текста, не содержащие пробельные символы), их легко выбрать в массив:

Код:

killvar '$input_text_word'

$args['string']=$user_text
:BALOON
if len($args['string'])>0:
    $input_text_word[]=$TRIM($strfind($args['string'],'\s*\S+\s*'))
    $args['string']=$TRIM($replace($args['string'],$strfind($args['string'],'\s*\S+\s*')))
    jump 'BALOON'
end

никаких премудростей. Теперь просто проверяешь соответствующие ячейки:

Код:

if $input_text_word[0]='run' and $input_text_word[1]='root/SD_Disk_2_GB/2.protocol':

    ! код ...

если нужно проверить точное соответствие.

Более того, не увлекайтесь регэкспами в QSP. Везде, где можно обойтись без регэкспа, делайте без регэкспа. Я как-то увлёкся так, что игра повисала при попытке выбрать строку, а я грешил на бесконечный цикл.

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

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

Aleks Versus,
Спасибо за решение :-)
Думаю, в симуляторе терминала трудно обойтись без рэгекспов, если не хочется прописывать каждую комбинацию вручную. А если к нам подключается case-insensitive, то без них вообще дело - жопа


oleksandrigo,
Вроде да, оно

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

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

В общем, такой вопрос назрел, так как устал искать решение. Пишется на Навигаторе, так что, вопрос скорее к web возможностям.

Короче, есть фон, на котором изображены люди. Необходимо, чтобы при наведении на определённого человека, его изображение изменялось(хотя бы как-то выделялось). Весьма буду благодарен за помощь.

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

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

Oliver,
как сделать подсветку куска фона — не знаю. Подсветку элемента можно делать с помощью css.

Вот статья: http://seodnevnik.ru/sozdanie-sajtov/po … a-css.html

Я бы предложил нарезать фон на куски с человеками, затем для нужных кусков сделать дубли изображений, но с дорисованной подсветкой. И воспользоваться статьёй.

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

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

Ребят, такой вопрос, пилю что - то типа визуальной новеллы, и хотелось бы проконсультироваться по аспектам кода.
Допустим на локации в описании посередине портрет персонажа, под портретом его имя выделенное жирным, и минуя одну пустую строчку то, что персонаж говорит.
Так вот, как возможно реализовать вывод текста по клику кнопки далее в действиях? Как бы, я пытался сделать это через act, но штрудирование руководств мне не помогло и текст просто выводился лишь по первому нажатию кнопки далее, затем кнопка пропадала, хотя дальнейший акт с тем же названием, но другим текстом уже имеется.
Надеюсь на вашу помощь, заранее спасибо)

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

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

Kaspar,

Код:

if dialog = 0:

    'Текст 1'
    act 'Далее': dialog = 1 & gt curloc
end
if dialog = 1:
    'Текст 2'
    act 'Далее 2': dialog = 0 & gt curloc
end

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

Информация

Статистика форума:
 
Всего тем:
1023
Всего опросов:
14
Всего сообщений:
16790429
Бездействующий:
Пользователи форума:
 
Всего пользователей:
2251
Последним зарегистрировался:
TaNoRGoSS