Если у Вас есть вопросы, как сделать что-то в программе или Вы не понимаете чего-то (то ли это ошибка, то ли фича и т.д.), то спрашивайте в этой теме.
Неактивен
Как пофиксить проблему с кодировкой? Например, вот http://mutnosoft.ru/story.html. Проблема, вроде, с тем, что по-дефолту не та кодировка, что надо. И это можно пофиксить через htacces как-то.
Неактивен
1. точно да
2. вроде тоже да
А вообще чего не проверишь?
Отредактировано Flash (19.08.2012 17:57)
Неактивен
Это не циклы, а так да.
Неактивен
Нужно просто в одну строку вытянуть код в параграфе 2:
<<if $var eq 1>>1<<else>>2<<endif>>
Неактивен
А зачем нагружать сильно один параграф, хотя с костылями можно сделать то, что ты хочешь.
Неактивен
Очень непонятно вопрос сформулирован.
Неактивен
1. в справке об этом ни слова
2. нет, что странно
Неактивен
У меня почему-то не пашет.
Неактивен
До своего поста в 16:49 сделал точно так же как и в примере Морыча.
Неактивен
XP, в пути были, но в относительном не было. Что еще за файл истории? Мб, я просто сам что-то напутал, но так и не удалось получить тогда звучания музыки, что маловероятно.
Неактивен
Нет, нету его.
Неактивен
kerber написал:
Насколько я понял, путь прописывается от файла asm-preview.html
Т.е. папка music должна лежать в папке Program Data.
Я сохранял в файл игру и путь верный был.
DoubleDragon написал:
Нет, так было раньше. Теперь путь выстраивается относительно сохранённого sm файла. А, ну ещё, если у вас Firefox, используйте ogg файл.
У меня Opera.
Неактивен
Так заработало.
Неактивен
Текстовый ввод нужен не только для парсера (например, ввод имени, а у меня в игре есть сейф, например), а для парсера и не обязателен текстовй ввод (бывают игры где нужно выбирать глаголы и существительные из готового списка).
Неактивен
Morych написал:
Я как раз хотел предложить использовать текстовый ввод по методу Флэша (при помощи "экранной клавиатуры"), если мы верно истолковали термин "ручной ввод".
Этот метод явно не мой, он был еще во всяких jRPG в 80х годах на консолях, а, мб, и где-то еще раньше.
Отредактировано Flash (18.10.2012 14:59)
Неактивен
А то не нашёл вроде как это можно замутить, есть ли такое?
<<if ($hp >= 20) and ($hp < 50)>>
вы тяжело ранены
<<elseif ($hp > 0) and ($hp < 20)>>
вы при смерти
#итд
<<endif>>
И поле ввода, куда можно ввести цифры от 1 до 8. Ввёл число - попал в задуманный под единицей параграф. Даже можно будет один параграф сделать для всех восьми дверей, просто сделать проверку if, что если число было введено 1, то выдаёт такой текст, если число 3, другой, и так далее. Я имею ввиду, что и просто имея возможность ввода значения переменной, это можно замутить, но будет, скорее всего, сложно, а может это как-то упростить?
Не часто я вижу комнаты, из которых можно попасть сразу в 8 других комнат, но тут же сомнительно преимущество текстового ввода над менюшкой.
А оказывается, что нужно поместить картинку в одну папку с сейвом
Не обязательно. Просто можно, да и нужно указывать относительный путь. Можно сунуть все картинки в папку с игрой и тогда нужно будет указывать [[File: имя_папки/название_файла.расширение]]
Кстати, ээ... А что, если я кому-то даю игру, я должен дать ему html файл, sm-сейв игры и изображения в одной с ним папке? В смысле, нельзя всё упаковать в один файл, что бы любому скинул файлик, он открыл, и увидел и изображения и музыку?
*.sm - исходник, его давать не надо. Можно и дать, но это ничего не даст другу при игре. Графику и музыку, как уже выше написано, можно поместить в отдельную папку в папке с игрой.
Отредактировано Flash (18.10.2012 17:54)
Неактивен
Да. Они не отображались, ибо каждый раз выполнялся код
<<set $ответ = "">> <<set $ответ2 = "">> <<set $ответ3 = "">>
и введенный ответ "затирался". Но
<<set $ответ = "">> <<set $ответ2 = "">> <<set $ответ3 = "">>
в параграфе Start можно и не задавать, а изменить условия
<<if $ответ eq "">> <<if $ответ2 eq "">> <<if $ответ3 eq "">>
на
<<if !($ответ)>> <<if !($ответ2)>> <<if !($ответ3)>>
! используются для проверки объекта на существование.
Неактивен
В справке это есть.
Неактивен
alfa10, эта строчка ничего не делает. Переменная приравнивпется сама себе.
Неактивен
Зачем запутывать еще сильнее человека, если можно вместо "gte" использовать ">=", а вместо "lte" - "<="?
Неактивен
NeoMatrix777 написал:
Господа, а есть ли возможность на этом движке запилить рогалик? Я в программирование не силен, поэтому у меня даже нет особых идей по алгоритму передвижения героя-символа по пустому полю.
Подводных камней слишком много, если делать это на АСМе.
Max написал:
Morych написал:
Попробуй просто перед матчем рассчитывать общую "силу" команды. А вот сила в данном случае уже зависит от атаки, защиты, и морали (дома играем или в гостях).
тогда каждый раз выбирая команду, нужно в ручную прописывать влияние Ат, Защ, Мор на СИЛУ???
Нет, если я правильно понял вопрос.
Неактивен
Есть ли параграф "Пещера"? Если есть, то, скорее всего, в нем и содержится ошибка. А тут две ошибки:
<<if $жизнь lte 0>> <<goto 'Конец'>> <<elseif $жизнь1 lte 0>> <<display 'Пещера'>> <<elseif $жизнь2 lte 0>> <<display 'Пещера'>> <<elseif $жизнь1 + $жизнь2 lte 0>> (1) <<goto 'пещера2'>> (2) <<else>>
(2) никогда не выполнится, ибо до него тупо никогда не доберется очередь.
(1) неправильно производится проверка. Если значение одной из переменных будет отрицательным, а другой положительным, то их сумма может оказаться равной либо меньше нуля. Правильно будет:
<<if $жизнь lte 0>> <<goto 'Конец'>> <<elseif ($жизнь1 lte 0) and ($жизнь2 lte 0)>> <<goto 'пещера2'>> <<elseif $жизнь1 lte 0>> <<display 'Пещера'>> <<elseif $жизнь2 lte 0>> <<display 'Пещера'>> <<else>>
Неактивен
:: vvod Введите адрес: <<input '0' $адрес>> Пример: Калинина, 155 :: 0 <<set $адрес = $адрес.replace(/ /g,"").toLowerCase()>> <<set $улица = "">> <<set $дом = "">> <<set $зап = 0>> <<set $i = -1>> <<loop $адрес.length>> <<set $i++>> <<if $адрес[$i] eq ",">> <<set $зап = 1>> <<continue>> <<endif>> <<if $зап eq 0>> <<set $улица = $улица + $адрес[$i]>> <<else>> <<set $дом = $дом + $адрес[$i]>> <<endif>> <<endloop>> <<if $улица eq "калинина" and $дом gte 1 and $дом lte 50>> Вокзал <<elseif $улица eq "калинина" and $дом gte 51 and $дом lte 200>> Черемушки <<elseif $улица eq "красныхпартизан" and $дом gte 1 and $дом lte 100>> Центральный район <<else>> Район не определен! <<endif>>
Неактивен
Поясню тогда из своего примера, чего нет в примере Морыча:
<<set $зап = 0>> ---- переменная дающая понять попалась уже запятая в цикле или нет. 0 - не попадалась, 1 - попадалась <<set $i = -1>> ---- эта переменная будет обозначать индекс символа в строке $адрес <<loop $адрес.length>> ---- объявление цикла, цикл будет выполняться столько раз, сколько символов в строке $адрес <<set $i++>> ---- увеличиваем $i, таким образом в первый раз $i будет равен 0, а индекс в строке как раз и начинается с нуля <<if $адрес[$i] eq ",">> ---- проверяем не является ли символ в строке $адрес с индексом $i запятой и если да, то <<set $зап = 1>> ---- устанавливаем значение переменной $зап = 1 <<continue>> ---- не выполняем все что ниже идет по циклу, а снова возвращаемся на его начало. Еще существует полезная штукенция как <<break>>, которая вообще полностью прекращает цикл. О ней и вообще о всем остальном можно прочитать в справке <<endif>> <<if $зап eq 0>> ---- если $зап равен 0, то <<set $улица = $улица + $адрес[$i]>> ---- прибавляем к строке $улица символ с индексом $i из строки $адрес <<else>> ---- иначе <<set $дом = $дом + $адрес[$i]>> ---- прибавляем к строке $дом символ с индексом $i из строки $адрес <<endif>> <<endloop>> ---- конец цикла
Изменение регистра нужно по причине того, что, например, строка "Каланина" не равна строке "каланина", а пробелы я удалил для удобства. Кстати, также тут
<<if $улица eq "калинина" and $дом gte 1 and $дом lte 50>> Вокзал <<elseif $улица eq "калинина" and $дом gte 51 and $дом lte 200>> Черемушки <<elseif $улица eq "красныхпартизан" and $дом gte 1 and $дом lte 100>> Центральный район <<else>> Район не определен! <<endif>>
можно увидеть что переменная $дом, где хранится номер дома в виде строки, сравнивается с числами. Так можно делать далеко не во всех языках программирования, но тут так делать можно.
Отредактировано Flash (14.11.2013 20:24)
Неактивен