Как сделать?
…
Aleks Versus:
Valvs,
я пользуюсь возможностями строки ввода для отладки игр…
Спасибо за подробный ответ! Попробую оба решения - и микроотладчик, и отладчик werewolf’a. Когда высплюсь :)
Jolly Roger,
$UCtext = 'солдат'
$UCtext = $UCASE($MID($UCtext,1,1)) + $MID($UCtext,2)
Функции нет, но ее можно сделать самому:
$text = $FUNC(UCaseFirstLet, 'солдат')
!локация UCaseFirstLet
$result = $UCASE($MID($ARGS[0],1,1)) + $MID($ARGS[0],2)
Всем здравия!
Не так давно начал делать игры на qsp, пишу под AeroQSP, вопрос возник, а точнее проблема.
‘<div id = “menu”>
if a = 1: <div id = “ss”><a href = exec: dynamic $hshsh>Надеть а</a></div>
if b = 1: <div id = “ss”><a href = exec: dynamic $hshsh2>Надеть б</a></div>
if c = 1: <div id = “ss”><a href = exec: dynamic $hshsh3>Надеть в</a></div>
</div>’
В чем вопрос. Как сделать, чтобы заданный список, который в стиле css выполнялся на проверку условия каждого пункта
к примеру в игре есть система крафта, и чтобы скрафченные вещи появлялись красиво в нужный css список(как вот в примере)
проблема, что условие не читается внутри div или я что-то не умею/не знаю
простите, если где-то такой вопрос был - не нашел =(
anizein,
'<div id = "menu">'
if a = 1: '<div id = "ss"><a href = exec: ' + $hshsh + '>Надеть а</a></div>'
if b = 1: '<div id = "ss"><a href = exec: ' + $hshsh2 + '>Надеть б</a></div>'
if c = 1: '<div id = "ss"><a href = exec: ' + $hshsh3 + '>Надеть в</a></div>'
'</div>'
Спасибо, только не очень понял, для чего плюсики и почему не надо ли писать dynamic перед $hshsh?
Можно слегка разъяснить?
И еще вопрос, можно ли сделать так, чтобы при заполнении до низа экрана список не шел в никуда, а выстраивался 2м столбиком?
Или надо рассчитывать количество и под каждый столбик свой стиль?
Товарищи, подскажите, как можно кодировать значение переменных на Куспе, что бы их не ломали всякие АРтМани? Вообще возможно это?
И есть ли действенный способ закрыть доступ к редактированию игры сторонними людьми?
Белый Шарик:
Товарищи, подскажите, как можно кодировать значение переменных на Куспе, что бы их не ломали всякие АРтМани? Вообще возможно это?
И есть ли действенный способ закрыть доступ к редактированию игры сторонними людьми?
Самому интересно, но может если работать с текстовыми значениями или скрывать числовые под текстовые, однако всё равно можно пробить и найти то или иное значение числа - вопрос времени.
Белый Шарик,
1. Спасти от читерства не получится, потому что см. 2
2. Код закрыть нельзя.
Делайте интересную игру, тогда её не будет необходимости ломать.
Белый Шарик,
Олегусу удалось закрыть код от просмотра в QGen. Даже зная пароль, открыть нельзя. Но, при наличии мозгов в теле читера, даже этот способ не спасает.)
Эти пароли - пятая нога QSP. Атавизм.
Здравствуйте, форумчане. Помогите пожалуйста с небольшой задачкой. У меня есть код:
$Ability='$cell["<<AGRS[0]>>,<<ARGS[1]>>"]="hide"'
DYNAMIC '<<$Ability>>',1,3
'<<$cell["1,3"]>>'
Вопрос: почему последняя строчка кода мне выводит пустую строку вместо слова “hide” и как это исправить?
Storm, дело в том, что значения ARGS[0] и ARGS[1] подставляются сразу же в первой строке, а не во время выполнения оператора DYNAMIC.
Насколько я понимаю, это какое-то упрощение более сложной задачи. Поэтому советовать, как сделать, не буду, чтоб не запудрить мозги :)
Скажу только, что вместо
'<<$Ability>>'
проще оставить просто
$Ability
Rivvil, да это упрощение более сложной задачи, но меня волнует именно та часть кода, которую я написал. Не пойму почему написанное не хочет работать. Что самое интересное в другом случаи передача данных через ARGS[0] и ARGS[1] работает. Приведу пример. Создаем локацию, допустим под названием “Тест” и пишем на ней код:
$Ability='gs "Тест2",ARGS[0],ARGS[1]'
DYNAMIC $Ability,1,3
И создаем локацию “Тест2”, на которой пишем код:
'<<ARGS[0]>> <<ARGS[1]>>'
При запуске локации “Тест” всё работает корректно и нам напишет на экране значение ARGS[0] и ARGS[1].
Но почему в этом коде:
$Ability='$cell["<<AGRS[0]>>,<<ARGS[1]>>"]="hide"'
DYNAMIC '<<$Ability>>',1,3
'<<$cell["1,3"]>>'
передача данных не работает и как это исправить я не знаю.
Storm,
Rivvil правильно указал тебе на обработку переменных в угловых скобках.
Storm:
$Ability=‘$cell[”<<AGRS[0]>>,<<ARGS[1]>>”]=“hide”’
DYNAMIC ‘<<$Ability>>’,1,3
‘<<$cell[”1,3”]>>’
Подвыражения в двойных угловых скобках вычисляются на лету, т.е. при присвоении строки. Поэтому фактически у тебя получается строка кода:
$ability='$cell["0,0"]="hide"'
Чтобы воспользоваться аргументами правильно, убери угловые скобки:
$Ability='$cell["AGRS[0],ARGS[1]"]="hide"'
DYNAMIC '<<$Ability>>',1,3
'<<$cell["1,3"]>>'
Можно, как сказал Rivvil, убрать лишние знаки после оператора dynamic, ибо
'<<$Ability>>'
эквивалентно
$Ability
Чтобы яснее представить себе, как работают подвыражения, попробуй создать новую игру и запустить в ней вот такой код:
args[0] = 1
dynamic "*pl <<args[0]>>
*pl '=<<args[0]>>'
*pl args[0]
*pl '=args[0]'",3
Aleks Versus, даже при написании такого кода:
$Ability='$cell["AGRS[0],ARGS[1]"]="hide"'
DYNAMIC $Ability,1,3
'<<$cell["1,3"]>>'
я всё равно получаю пустую строку :(
А в этом коде:
args[0] = 1
dynamic "*pl <<args[0]>>
*pl '=<<args[0]>>'
*pl args[0]
*pl '=args[0]'",3
тройка выводиться только в одном случаи, но это всё равно не даёт мне понимания почему под мою задачу код не работает.
Подстановка почему-то не хочет работать, когда мне нужно подставить элементы массива ARGS как индекс массива $cell.