Как сделать?
…
Aleks Versus:
не должно работать в принципе. Но вылезать должна не ошибка JS, а “неизвестное действие”
не, тут просто сам форум неверно выдаёт текст сообщения: там не “, а 2 раза подряд кавычка ’ в коде
gt ‘‘s_s_w_1’’,’’s_1’’
пробел то после gt это нормально для навигатора?
в классике это будет
gt’s_s_w_1’,’s_1’
а в навигаторе я хз
Aaaspavel,
пробел после gs - это нормально. И для классики, и для навигатора. Хоть десять пробелов. А вот две подряд идущие одинарные кавычки - нет.
DeathSpace,
когда у тебя было
*p "<tr><td><a href='exec:gs ''WeaponDefault'',<<id1>>'><<$wea[id1]>></a>.</td></tr>"
Это означало следующее:
вывести на экран строку @@@@CODEBLOCK1@@@@ т.е. После того, как были раскрыты подвыражения, строка вывелась полностью, как ты её написал.
Теперь ты видишь на экране только Название лута в виде ссылки. Щёлкаешь по ней, и происходит вот что:
html-рендерер видит, что это ссылка, и обращается к атрибуту href, пытаясь получить его значение. Значение атрибута (он это знает) лежит в пределах от первой до последней кавычки (апострофа) и получает такое значение exec:gs. Передаёт это значение QSP, и тот естественно пытается выполнить gs, но аргумента не получает.
Чтобы html рендерер здесь правильно прочитал значение атрибута, нужно или ставить внутри атрибута другие кавычки (двойные), или экранировать одинарные для рендерера:
*p "<tr><td><a href='exec:gs \'WeaponDefault\',<<id1>>'><<$wea[id1]>></a>.</td></tr>"
так тоже будет работать.
В строке
*p "<tr><td><a href='exec:gs ""WeaponDefault"",<<id1>>'><<$wea[id1]>></a>.</td></tr>"
я экранировал двойные кавычки для QSP, т.е. строка, выводимая на экран выглядит так:
@@@@CODEBLOCK4@@@@ Когда рендерер пытается получить значение атрибута href, он получает: exec:gs “WeaponDefault”,1. Т.е. нормальную строку кода.
Aaaspavel, DeathSpace,
Большая просьба: публикуйте код, используя предназначенную для этого кнопку “код”
. Очень трудно читать из текста, особенно кавычки.
Aleks Versus,
Все понял спасибо, просто не хотел на форуме большие куски кода сразу выкидывать поэтому в споилер засунул
DeathSpace,
можно и в спойлер и в код:)
Spoiler
id1=1
:next_id1
if iditem[id1] = 1:
'<table border = "1" bordercolor = black>'
*p "<tr><td><a href='exec:gs \'WeaponDefault\',<<id1>>'><<$wea[id1]>></a>.</td></tr>"
end
id1 += 1
if id1 < 18: jump 'next_id1'
Aleks Versus,
Действительно, чет я затупил)))
я так понял в qsp кнопки(клик по картинке) действия типа act (ветвистые диалоги) в основном окне трудно реализуемы изза нужды экранирования кода? в основном видел переходы между локациями или обращение к локациям по типу
Spoiler
<a href=“exec:gt ‘‘Сад’’”><img src=“pic/1.png”>/a>
а вот act очень мало, в основном с коротким простеньким кодом.
тоесть полностью отказаться от окна “Действия” и перенести весь интерфейс в основное окно не получится без больших усилий, я правильно понимаю?
подскажите игры где это реализовано
Aaaspavel:
Nex:
из плеера это не будет убрано, по причинам описанным выше
не будет или нельзя вообще?
И нельзя вообще, и не будет убрано.
saks,
что-то ты путаешь сам себя и нас. Совать act в гиперссылку? Зачем? Если гиперссылка сама по себе может служить действием. Ты хочешь, чтобы диалог выводился в виде гиперссылок? Так тут не нужно совать в гиперссылки тысячи строк кода. Это так же просто реализуется через “действие по условию”, только вместо act, выводящих на экран действия, у тебя будет команда *pl, выводящая гиперссылку.
Посмотри “вереницу миров”. Там нет сложных действий в гиперссылках, но от окна действий я полностью ушёл.
Aleks Versus:
saks,
что-то ты путаешь сам себя и нас. Совать act в гиперссылку? Зачем? Если гиперссылка сама по себе может служить действием. Ты хочешь, чтобы диалог выводился в виде гиперссылок? Так тут не нужно совать в гиперссылки тысячи строк кода. Это так же просто реализуется через “действие по условию”, только вместо act, выводящих на экран действия, у тебя будет команда *pl, выводящая гиперссылку.Посмотри “вереницу миров”. Там нет сложных действий в гиперссылках, но от окна действий я полностью ушёл.
хочу чтобы действие происходило по клику на картинке. но картинка была в основном окне, а не в окне “действий
Spoiler
act ‘<img src=“pic/1.png”>’:
“много”
“кода”
end
а можешь пример написать?
в веренице миров код для меня очень сложный, нефига непонятно
saks,
есть два способа.
1. Помещаешь “много кода” на отдельную локацию. Потом вставляешь картинку с гиперссылкой в нужном месте:
*p '<a href=''exec:gs "локация_с_кодом"''><img src="путь к файлу картинки/1.png"></a>'
2. Помещаешь “много кода” в переменную:
$code={
"много"
"кода"
}
потом в нужном месте делаешь так:
*p '<a href="exec:dynamic $code"><img src="путь к файлу картинки/1.png"></a>'
ясно. тоесть простого способа это сделать нету(
Думал, что знаю как, но нифига не выходит, короче вопрос такой: игра одновременно двумя гг, сегодня одним-завтра другим, смена в 00 часов, соответственно два варианта стат. Применительно к календарю, это как сделать?
if day=1 and mount=9 or day=3 and mount=9 or day=5 and mount=9 or….or day=29 and mount=9:stat1
if day=2 and mount=9 or day=4 and mount=9 or day=6 and mount=9 or….or day=30 and mount=9:stat2
if day=1 and mount=10 or day=3 and mount=10 or day=5 and mount=10 or….or day=31 and mount=10:stat1
if day=2 and mount=10 or day=4 and mount=10 or day=6 and mount=10 or….or day=30 and mount=10:stat2
и так далее на год расписывать или есть более простой вариант?
Aaaspavel,
Лично я бы изначально сделал все по другому. Через массив, где номер массива был бы номером героя. И в полночь просто менял бы номер массива.
!you - переменная в которой хранится номер героя, либо 0, либо 1. В полночь проверяем что у нас там в переменной и меняем значение.
smena=0
if you=0 and smena=0:you=1&smena=1
if you=1 and smena=0:you=0&smena=1
!данные о персонаже выводил бы не с разных локаций стат, а с одной, просто значения были бы разные.
!вот например здоровье персонажа
'Здоровье <<health[you]>>'
как вариант
Spoiler
!а это счетчик дней. в счетчике времени при смене суток пишем а=а+1 (в начале игры ставим а=1 -первый день)
:’джамп’
if а=1: х=1
if а=2: х=2 / тут проводим проверку четный или нечетный день (и если все хорошо назначаем х)
if а>2:
а=1 / тут (если все плохо) день нечетный (третий) “делаем” из него первый - тоже нечетный
jump ‘джамп’ -тут перепрыгиваем вначало и проходим проверку еще раз
end
!тут присваиваем статы
if х=1: нужные статы
if х=2: нужные статы
впринцепе можно было сразу присвоить после проверки, но так мне кажется наглядней
saks:
тоесть простого способа это сделать нету(
куда уж проще.