Если у Вас есть вопросы, как сделать что-то в программе или Вы не понимаете чего-то (то ли это ошибка, то ли фича и т.д.), то спрашивайте в этой теме.
Неактивен
Такой вопрос. Вставляю вот этот код диалога (приведен в обучении):
Параграф-диалог
<<display 'Параграф-диалог'>>
<<if $диалог_персонаж eq 1>>
Реплика главного героя.
Реплика второстепенного персонажа.
[[Реплика героя, вариант 1|Параграф-диалог {$диалог_персонаж = 2}]]
[[Реплика героя, вариант 2|Параграф-диалог {$диалог_персонаж = 3}]]
<<elseif $диалог_персонаж eq 2>>
Реплика героя, вариант 1.
Реакция второстепенного персонажа.
[[Закончить разговор|Параграф-сцена {$диалог_персонаж = 4}]]
<<elseif $диалог_персонаж eq 3>>
Реплика героя, вариант 2.
Реакция второстепенного персонажа.
[[Закончить разговор|Параграф-сцена {$диалог_персонаж = 4}]]
<<elseif $диалог_персонаж eq 4>>
Реплика героя.
Второстепенный персонаж напоминает, что уже разговаривали.
[[Закончить разговор|Параграф-сцена]]
<<endif>>
У меня отображается только название диалога - Параграф-диалог и все. Что не правильно делаю?
Неактивен
Morych написал:
alfa10 написал:
У меня отображается только название диалога - Параграф-диалог и все. Что не правильно делаю?
Думаю, что не определена переменная $диалог_персонаж. Перед тем как вызывать параграф-диалог нужно задать начальное значение переменной:
<<set $диалог_персонаж = 1>>
А зачем параграф вызывается сам из себя (<<display 'Параграф-диалог'>>)?
Дык вот это именно пример из обучения. Если присваивать переменную <<set $диалог_персонаж = 1>>, то:
[[Реплика героя, вариант 1|Параграф-диалог {$диалог_персонаж = 2}]]
[[Реплика героя, вариант 2|Параграф-диалог {$диалог_персонаж = 3}]]
уже не срабатывают
Неактивен
Morych написал:
<<set $диалог_персонаж = 1>> нужно написать не в параграфе-диалоге, а в самом начале истории, в параграфе "Start".
Точняк! Все заработало! Спасибо тебе, дружище!
Неактивен
Ребят, такой вопрос: создаю книгу, вставляю в нею фотки. Потом сохраняю книгу в файл HTML. На другом компьютере запускаю этот сохраненный файл - а фоток нет. Как делать так, чтобы фотографии были в книге, даже если я смотрю файл на другом компьютере? Например, вот напишу я книгу, захочу ее сохранить в файл и отослать друзьям - а фотки получается, пропадут?
Неактивен
Morych написал:
alfa10 написал:
Ребят, такой вопрос: создаю книгу, вставляю в нею фотки. Потом сохраняю книгу в файл HTML. На другом компьютере запускаю этот сохраненный файл - а фоток нет. Как делать так, чтобы фотографии были в книге, даже если я смотрю файл на другом компьютере? Например, вот напишу я книгу, захочу ее сохранить в файл и отослать друзьям - а фотки получается, пропадут?
Картинки не встраиваются в html-файл, там только изображения кнопок. Если ты добавляешь картинки пунктом меню "Выбрать локальный файл", они копируются в папку files рядом с sm-файлом. Соответственно отсылай друзьям ещё и папку files вместе с html-файлом. Для пересылки по почте можно всё предварительно упаковать в архив.
Получается только так? А если публиковать книгу из программы в библиотеку - тогда все нормально пропишется и фотографии останутся?
И еще вопрос - почему то вставляю музыку, а она не играется на странице, хотя значок динамика отображается на странице. Код такого вида вставляю:
[[File: files/Scooter - Fire.mp3]]
Неактивен
Morych написал:
А какой браузер ты используешь, случайно не Оперу? Для неё нужен звуковой файл с таким же именем, но в формате ogg. Если вставляешь музыку в игру, придётся каждый звуковой файл в двух форматах рядышком класть mp3 и ogg, чтобы у всех проигрывалась музыка независимо от браузера.
Firefox.
А музыка будет играть только на одной странице, или пока не закрою в параграфе тег <<noaudio>>?
Неактивен
<<if $диалог eq 1>> <<clrscr>> <<random $rnd = 8>> <<set $маги = 5>> <<set $удача = $удача>> ===Ваш рейтинг удачи равен ''<<print $удача>>''===
Интересует вот эта строка из кода:
<<set $удача = $удача>>
Правильно ли я понимаю, что в этом параграфе текущий параметр удачи берется от предыдущего параметра удачи?
Неактивен
Flash написал:
alfa10, эта строчка ничего не делает. Переменная приравнивпется сама себе.
а как тогда сделать, чтобы в текущем параграфе переменная брала то значение, которое она имела до этого параграфа? Может так тогда?
<<set $удача1 = $удача>>
Неактивен
Вопросов у меня много, так что сорри. Я начинающий интерактивовод
Музыка работает если файл OGG. Разобрался. Спасибо за помощь. Теперь вопрос - а как сделать так, чтобы мелодии игрались по-очереди по ходу книги?
Еще вопрос. Вот фрагмент кода:
<<set $ясила = 3>> <<set $врагсила = 6>> <<set $жизнь = 10>> <<set $жизнь1 = 5>> <<random $кубик = 10>> <<if $кубик > ($врагсила-$ясила)>> <<print $я>> - <<print $жизнь>> <<print $враг>> - <<print $жизнь1-1>> <<else>> <<print $я>> - <<print $жизнь-1>> <<print $враг>> -<<print $жизнь1>> <<endif>>
Как я его вижу:
даю значение силы мне - 3
даю значение силы врагу - 6
даю значение жизни себе - 10
даю значение жизни врагу - 5
даю рендомное значение кубику от 0 (или все-таки 1) до 5
если значение кубика больше значения (сила врага - моя сила) то
выводится имя переменной $я (вводил в прошлом параграфе) - выводится значение (моя жизнь) // например, Сергей - 10
выводится имя переменной $враг (вводил в прошлом параграфе) - выводится значение (жизнь врага минус 1)// например, Сергей - 4
иначе
выводится имя переменной $я (вводил в прошлом параграфе) - выводится значение (моя жизнь минус 1)
выводится имя переменной $враг (вводил в прошлом параграфе) - выводится значение (жизнь врага)
закрытие кода
Но, почему то, у меня ничего не выводится. Пишется NaN. Где моя ошибка?
Отредактировано alfa10 (30.10.2013 22:56)
Неактивен
Отлично! Все работает! Спасибо!
А что означает gte ? Значение "больше"?
Как можно сделать так, чтобы при значении параметра $жизнь - 0 бой заканчивался?
Неактивен
Ну, вот, получается видимо так:
<<set $жизнь = 1>> <<set $жизнь1 = 1>> <<random $кубик = 10>> <<if $кубик gte 3>> <<set $жизнь1 = $жизнь1 - 1>> <<if $жизнь1 lte 0>> <<goto 'GameOver1'>> <<else>> <<print $я>> - <<print $жизнь>> <<print $враг>> - <<print $жизнь1>> <<endif>> <<else>> <<set $жизнь = $жизнь - 1>> <<if $жизнь lte 0>> <<goto 'GameOver'>> <<else>> <<print $я>> - <<print $жизнь>> <<print $враг>> - <<print $жизнь1>> <<endif>> <<endif>>
А как зациклить код? Чтобы значения уменьшались до того момента, пока переменная жизнь не примет нулевое значение?
Отредактировано alfa10 (31.10.2013 11:28)
Неактивен
Спасибо тебе большое! очень сильно помогаешь мне И всем вам ребята - большое спасибо
А есть ли при создании книги ограничение в количестве параграфов? А то, у меня тут глобальная книга намечается
Еще вопрос - можно ли сделать, чтобы во время боя страница автоматически обновлялась, а не клацать каждый раз на продолжить?
Отредактировано alfa10 (31.10.2013 13:23)
Неактивен
В параграфе StoryAuthor вставка картинок запрещена чтоли? Хотел вставить туда текст красивого шрифта, а нифига...
Неактивен
Фух, загрузил свою первую интерактивную книгу в библиотеку. Правда, почему-то, при загрузке ругалось на музыкальный файл формата OGG. Пришлось музыку исключить из книги
Неактивен
DoubleDragon написал:
Надо было и ogg и mp3 - оба файла сделать.
А так - поздравляю с успешным дебютом!
Спасибо! А насколько он успешный - покажет время и участие в конкурсе 31
Неактивен
Просьба помочь разобраться в ошибке кода:
<<set $жизнь = $жизнь>> <<set $жизнь1 = $жизнь1>> Мое здоровье - ''<<print $жизнь>>'' Здоровье вора - ''<<print $жизнь1>>'' Вор поворачивается ко мне. Его лицо скрывает балахон. Не говоря ни слова, гость направляется на меня... <<if $успех eq 1>> [b]----------------------------------------возврат сюда[/b] [[Ударить в лицо|БойВорНеус {$успех = 2}]] [[Ударить в живот|БойВорНеус {$успех = 3}]] [[Кинуть в вора стул|БойВорНеус {$успех = 4}]] <<endif>> <<if $успех eq 2>> <<clrscr>> <<random $кубик = 6>> <<if $кубик gte 5>> Я ударяю вора в голову. Великолепный удар! <<set $жизнь1 = $жизнь1 - 3>> Мое здоровье - ''<<print $жизнь>>'' Здоровье вора - ''<<print $жизнь1>>'' <<else>> Вор ставит блок и проводит ответный удар! <<set $жизнь = $жизнь - 1>> Мое здоровье - ''<<print $жизнь>>'' Здоровье вора - ''<<print $жизнь1>>'' <<endif>> <<if $жизнь1 lte 0>> <<goto 'ОсмотретьсяЖив'>> <<else>> <<goto 'БойВорНеус' {$успех = 1}>> <<elseif $жизнь lte 0>> <<goto 'Конец1'>> <<else>> <<goto 'БойВорНеус' {$успех = 1}>> <<endif>> <<endif>>
Почему-то у меня назад не возвращает. Как можно сделать так, чтобы если жизни остаются, параграф продолжался заново с начала?
Неактивен
Вот есть код:
:: Пещера <<display 'Инвентарь0'>> Здоровье охотника - <<print $жизнь1>> Здоровье охотницы - <<print $жизнь2>> # Начало цикла <<if $жизнь lte 0>> <<goto 'Конец'>> <<elseif $жизнь1 lte 0>> <<display 'Пещера'>> <<elseif $жизнь2 lte 0>> <<display 'Пещера'>> <<elseif $жизнь1 + $жизнь2 lte 0>> <<goto 'пещера2'>> <<else>> ''Выберите действие против охотника:'' # Магия огня <<if $мана gte 3>> [[Огонь I (шанс 50%, урон 20, мана - 3)|Пещера1 {$действие = 2}]] <<endif>> # Магия огня [[Бросить камень (шанс 20%, урон - 30)|Пещера1 {$действие = 3}]] [[Ударить рукой (шанс 50%, урон - 10)|Пещера1 {$действие = 4}]] [[Бросить ногой (шанс 50%, урон - 10)|Пещера1 {$действие = 5}]] <<endif>> # Начало цикла
Получается так: мой герой бьется против двух врагов. Хочу, чтобы при гибели первого врага шло сражение с другим врагом. Но при гибели одного из врагов игра виснет. Полагаю, что из-за:
вот этой записи в коде
<<if $жизнь lte 0>> <<goto 'Конец'>> <<elseif $жизнь1 lte 0>> <<display 'Пещера'>> <<elseif $жизнь2 lte 0>> <<display 'Пещера'>> <<elseif $жизнь1 + $жизнь2 lte 0>> <<goto 'пещера2'>> <<else>>
Я вижу ее так: если моя жизнь меньше или равна 0, то идем в параграф "Конец". Если жизнь противника1 меньше или равна 0, то продолжаем бой. Если жизнь противника2 меньше или равно 0, то продолжаем бой. Если жизни соперников 1 и 2 вместе меньше или равны 0 (т.е. обо уничтожены), то переходим в параграф "Пещера 2"
Неактивен
Не, чет не то... если прописываю так:
<<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>>
то игра виснет... Да и получается, если убивают врага (жизнь1, например), а второй жив, то получается первый опять ходит, даже если он мертв уже
P.S. Все, разобрался в коде... Пришлось упростить боевку (хотел, чтобы по очереди атаковался сперва первый враг, затем второй). Сделал, что сам выбираю кого атаковать
Отредактировано alfa10 (08.11.2013 22:42)
Неактивен
Хочу сделать программу, где при вводе улицы и номера дома выдается наименование района. Получается, в одном параграфе нужно ввести нечто типа:
<<input '0' $адрес>>
В параграфе 0 нужно прописать некий код:
<<if $адрес eq '12марта130'>> <<set $адрес = 1>> <<elseif $адрес eq 'калинина215'>> <<set $адрес = 2>> <<endif>> <<goto '2'>>
где на выводе (параграф 2) уже есть код:
<<if $адрес eq 1>> Черемушки <<elseif $адрес eq 2>> Вокзал <<else>> Район не определен! <<endif>>
Так все работает! А как сделать, чтобы не прописывать каждый номер дома на улице, а сделать например, чтобы улица Калинина от 1 до 50 автоматически попадала под район Возкал?
Отредактировано alfa10 (13.11.2013 12:28)
Неактивен
Спасибо! Еще б расшифровал бы код - вообще круто было бы
Неактивен
Ребята, задумал сделать интерактивную игру про биатлон Пока не могу понять следующий момент как реализовать: спортсмены бегут спринт, у каждого свое время, финишируют, им присваивается их результат (время) - тут все понятно как делается, но... как сделать так, чтобы после финиша программа считала, у кого из спортсменов результат лучше, у кого хуже? Например, спортсмен А прошел трассу за 5 минут 10 секунд, спортсмен Б - за 5 минут 14 секунд, спортсмен В - за 4 минуты 59 секунд. Должно быть на финише так - первым будет В, вторым А, третьим - Б. Как сделать, чтобы программа считала места по результатам?
Неактивен
Morych, а можно расшифровку? Результаты будут заноситься не рандомные. Одинаковых результатов не будет, так что все норм.
Не пойму, что означает в коде параметр "i" и "$place.push".
И вот эта часть кода не ясна мне:
<<loop $place.length>>
<<set $position = $place[$i].split('|')>>
<<print ($i + 1)>> - <<print $position[1]>> (<<print $position[0]>>)
<<set $i++>>
<<endloop>>
Отредактировано alfa10 (31.12.2014 12:01)
Неактивен
Чуть-чуть въехал. А вот смотри, к примеру, имеем два спортсмена (вводим переменные $имя и $имя1). Один прошел трассу за 70 ходов, а второй за 64 хода.
<<set $имя = Вася>>
<<set $имя1 = Петя>>
<<set $счетчик_хода_имя = 0>> #персональный счетчик хода спортсмена Васи
<<set $счетчик_хода_имя1 = 0>> #персональный счетчик хода спортсмена Пети
...
:: В след. параграфе получаем финишные значения:
<<set $счетчик_хода_имя = 70>>
<<set $счетчик_хода_имя = 64>>
Теперь надо чтобы выдало результаты по местам: 1 место - получается занял второй спортсмен (Петя), 2 место - первый спортсмен (Вася).
Неактивен
Делаю так:
: Начало
<<set $имя = 'Вася'>>
<<set $имя1 = 'Петя'>>
<<set $счетчик_хода_имя = 0>>
<<set $счетчик_хода_имя1 = 0>>
[[Ход игрока|Просчет]]
: Просчет
<<random $кубик = 50>>
<<set $счетчик_хода_имя = $счетчик_хода_имя + $кубик>>
[[Ход соперника|Просчет соперника]]
: Просчет соперника
<<random $кубик = 50>>
<<set $счетчик_хода_имя1 = $счетчик_хода_имя1 + $кубик>>
[[Финиш|Финиш]]
: Финиш
А как тут код прописать?
И еще нужно, чтобы разница, полученная между числами плюсовалась в след. параграфе к значению $счетчик_хода_имя. Например, Петя прошел гонку за 64 хода, а Вася за 70. Разница между ними равна 6. Значит в след. параграфе у Пети будет к счетчику хода прибавлено значение 6, а у Васи это значение будет равно 0.
Неактивен
Morych написал:
А соперников будет только двое?
нет, будет много, просто на примере двух хотелось понять код
Неактивен
Morych написал:
Тогда лучше сразу составлять код из расчёта, что спортсменов много. Но прежде хотелось бы подробнее узнать логику игры: по пунктам что за чем должно происходить, включая то прибавление разницы ходов.
Если знаком с биатлоном то будет легче понять Если нет, то попытаюсь логику передать:
Будет, скажем 12 сборных, в каждой по 6 спортсменов. Итого - 72 спортсмена. Сперва все бегут спринт (то есть, тут все ходят по очереди, кто затратил на прохождение трассы меньше всего времени - тот победитель. Далее все бегут преследование. Тут разница (отставание от победителя спринта) ходов должна записываться в переменную длины пройденной трассы. То есть, если Петя в спринте был лучше Васи, и прошел за 64 хода трассу, а Вася за 70, то в преследовании Петя должен при старте иметь показатель <<$длина_пройденной_трассы_Петя = $длина_пройденной_трассы_Петя + 6>>. То есть, он раньше на 6 ходов, чем Вася стартанул в гонке. При чем, вместо "6" должна наверное быть некая переменная, типа <<$отставание_от_первого_места_в_спринте>>, которая на финише спринта формировала бы сразу разницу отставаний между местами автоматом. Вот как то так должно быть!
Отредактировано alfa10 (01.01.2015 22:33)
Неактивен
Morych написал:
alfa10 написал:
Будет, скажем 12 сборных, в каждой по 6 спортсменов. Итого - 72 спортсмена. Сперва все бегут спринт (то есть, тут все ходят по очереди, кто затратил на прохождение трассы меньше всего времени - тот победитель. Далее все бегут преследование. Тут разница (отставание от победителя спринта) ходов должна записываться в переменную длины пройденной трассы. То есть, если Петя в спринте был лучше Васи, и прошел за 64 хода трассу, а Вася за 70, то в преследовании Петя должен при старте иметь показатель <<$длина_пройденной_трассы_Петя = $длина_пройденной_трассы_Петя + 6>>. То есть, он раньше на 6 ходов, чем Вася стартанул в гонке. При чем, вместо "6" должна наверное быть некая переменная, типа <<$отставание_от_первого_места_в_спринте>>, которая на финише спринта формировала бы сразу разницу отставаний между местами автоматом.
Так, значит после спринта у нас есть массив ходов, которые спортсмены затратили на прохождение трассы:
<<set $ходы_спринт = [64, 70, ... 60]>> (итого в массиве 72 элемента)
Найдем число ходов лидера спринта (минимальное число ходов):
<<set $ходы_лидера = $ходы_спринт.sort()[0]>> --- сортируем массив и берем первый элемент отсортированного массива - минимальное значение
Перед началом преследования:
<<set $ходы_преследование = [0, 0, ... 0]>> --- число ходов, которые спортсмены затратят на прохождение гонки-преследования
и увеличим число ходов в зависимости от результата в спринте:
<<set $i = 0>>
<<loop $ходы_преследование.length>>
<<set $ходы_преследование[$i] = $ходы_спринт[$i] - $ходы_лидера>>
<<set $i++>>
<<endloop>>
теперь перед началом преследования у каждого спортсмена уже установлено стартовое число ходов, а у лидера спринта это число будет = 0.
Это то, что было нужно?
Блин, вообще не пойму код
Неактивен
<<set $ходы_спринт = [64, 70, ... 60]>> (итого в массиве 72 элемента)
А как система поймет, кто за сколько ходов прошел спринт? Я так понимаю, в массиве уже конкретные результаты тут указаны?
теперь перед началом преследования у каждого спортсмена уже установлено стартовое число ходов, а у лидера спринта это число будет = 0.
Так у лидера наоборот, должен быть бонус перед другими, он же раньше второго номера уйдет на трассу на n-ходов.
Неактивен
Наверное набросаю спринт, потом сейв выложу, а Вы поправите что да как, ок?
Неактивен
Вот получил такой вот результат при таком вот коде. Места определились некорректно!
Неактивен
Morych написал:
Это как раз тот случай, о котором я говорил в этом сообщении. В массив для сортировки нужно заносить не "4", а "04"!
У меня сейчас на финише такой код:
<<set $place = []>> <<set $place.push($счетчик_хода_имя + "|" + $имя)>> <<set $place.push($счетчик_хода_имя1 + "|" + $имя1)>> <<set $place.push($счетчик_хода_имя2 + "|" + $имя2)>> <<set $place.push($счетчик_хода_имя3 + "|" + $имя3)>> <<set $place.push($счетчик_хода_имя4 + "|" + $имя4)>> <<set $place.push($счетчик_хода_имя5 + "|" + $имя5)>> <<set $place = $place.sort()>> Результаты гонки: <<set $i = 0>> <<loop $place.length>> <<set $position = $place[$i].split('|')>> <<print ($i + 1)>> - <<print $position[1]>> (<<print $position[0]>>) <<set $i++>> <<endloop>> [[Преследование|Преследование]]
Где надо в массиве добавить 0?
Неактивен
и такой цикл если-то на каждого из 72 спортсменов?
Неактивен
Morych, а посмотри плиз мой сейв. Как тут код можно упростить?
Неактивен
Еще вопрос по другому моему проекту. Нужно сделать жеребьевку команд в турнирной сетке. Сперва будет 32 команды. Отсюда вопросы:
1) как сделать жеребьевку команд в турнирной сетке (1/32 финала)? Команды не должны повторяться
2) как сделать рандомные результаты матчей между соперниками? Более сильные команды должны иметь бонус при расчете результатов перед более слабыми командами.
3) как вывести из дальнейшей жеребьевки (1/16 финала) проигравшие команды?
Неактивен
Спасибо, буду вкуривать!
Неактивен
а как работать с таблицами можно? Можно где-нибудь примеры посмотреть?
Неактивен
А если мне надо три строки и более? И с фотками внутри колонки, а? Программа ругается на третий столбец
Неактивен
а фото и ссылки можно вставить в таблицы?
Неактивен
<<set $place = []>> <<set $i = 0>> <<loop $имя.length>> <<if $очки[$i] lt 10>> <<set $place.push("00" + $очки[$i] + "|" + $i)>> <<elseif $очки[$i] lt 100>> <<set $place.push("0" + $очки[$i] + "|" + $i)>> <<else>> <<set $place.push($очки[$i] + "|" + $i)>> <<endif>> <<set $i++>> <<endloop>> <<set $place = $place.sort()>> ''Общий зачет Кубка мира:'' ---- <<set $i = 0>> <<loop $имя.length>> <<set $индекс = $place[$i].split('|')[1]>> <<print ($i + 1)>> место: <<print $имя[$индекс]>> (<<print $очки[$индекс]>>) <<set $i++>> <<endloop>>
Этот код делает сортировку спортсменов по местам, где первое место - у кого меньшее число очков. А как сделать сортировку наоборот, чтобы первым был тот, у кого больше всего очков?
Неактивен
Есть кусок кода значений:
<<set $процент_лежка = ($попал_лежка*100)/$выстрел_лежка>> <<set $процент_стойка = ($попал_стойка*100)/$выстрел_стойка>> <<set $выстрел_лежка = 15>> <<set $выстрел_стойка = 0>> <<set $попал_лежка = 12>> <<set $попал_стойка = 0>>
Есть кусок кода вывода значения на экран:
Точность стрельбы лежа: <<print $процент_лежка>> %
Получаю в итоге:
Точность стрельбы лежа: NaN %
Почему, ребят?
Неактивен
531 пост - вопрос снимается, ошибку нашел.
Неактивен
Morych написал:
alfa10 написал:
А как сделать сортировку наоборот, чтобы первым был тот, у кого больше всего очков?
Вместо
<<set $place = $place.sort()>>
Нужно написать
<<set $place = $place.sort().reverse()>>
Элементы массива будут отсортированы по убыванию.
Спасибо большое, дружище!!!
Неактивен
Вот, прилагаю сейв, если интересно?! Пока реализовал на базе белорусских спортсменок главное меню, и все окна главного меню, кроме "Начать гонку". Вот думаю, как сделать, чтобы после финиша гонки очки присуждались в зависимости от занятой позиции?! Например, 1 место - 10 очков, второе - 8, Третье - 6 и т.д. Там ведь будет массив. Поможете, ребята?
P.S. На втором слайде (где только крестик ошибки фотографии) нажмите на крестике. Просто там открытие 3 слайда при щелчке по фотке сделал.
Вообщем, архив тут: https://cloud.mail.ru/public/a6478949ef … %D1%80.rar
Отредактировано alfa10 (06.01.2015 23:04)
Неактивен
Сейв
Неактивен
DoubleDragon написал:
А что, неплохо. Надо допилить сами гонки и получится этакий симулятор.
Парни, поможите? Пока вот интересует момент, как сделать так, чтобы очки присуждались согласно занятым местам спортсменам?
Отредактировано alfa10 (07.01.2015 21:24)
Неактивен
Ребята, сейчас столкнулся с проблемой, что эстафета не получается
1 - непонятно, как прописать, на каком этапе будет выступать именно мой спортсмен? Ведь я то могу выбрать любого спортсмена...
2 - непонятно, как сделать так, чтобы на финише очки присуждались сборной, а не спортсмену. Надо понять, как система поймет, что финишировавший спортсмен принадлежит к конкретной сборной?
Посмотрите?
https://cloud.mail.ru/public/be22f9339b … 1%D1%82.sm
Отредактировано alfa10 (08.01.2015 23:57)
Неактивен
Такой еще вопрос: создал в начале игры массив <<set $имя = []>>. Также в начале игры называю своего спортсмена <<input '' $имя0>>. Как значение $имя0 вписать в массив?
Неактивен
Парни, сел окончательно с игрой. Совершенно не пойму с просчетом гонок. Нужно вводить по идее очень много параметров: ведь, кто-то может бежать дистанцию, а кто то в это время стрелять. Как это сделать, мне не понятно! Хочу спросить, может кто-то сможет мне помочь в реализации игры по моим консультациям? В знак благодарности, я готов буду оплатить Вашу помощь. Не крупно конечно, но пару тысяч выделить смогу.
Неактивен
Можно ли, имея разные переменные, например (результат1, результат2, результат3, результат4), объединить их в массив, и сделать сортировку этого массива так, чтобы результаты с наименьшим числовым значением выводились выше, чем результаты с большим числовым значением?
Например:
Результат1 - 50 ходов
Результат2 - 75 ходов
Результат3 - 28 ходов
Результат4 - 52 хода
Выводится так:
1 место - Результат3 - 28 ходов
2 место - Результат1 - 50 ходов
3 место - Результат4 - 52 хода
4 место - Результат2 - 75 ходов
Неактивен
Для DoubleDragon (вопрос из потока).
Смотри, есть код:
<<loop $имя.length>> <<if $счетчик_хода0[$i] lt 10>> <<set $place.push("000" + $счетчик_хода0[$i] + "|" + $i)>> <<elseif $счетчик_хода0[$i] lt 100>> <<set $place.push("00" + $счетчик_хода0[$i] + "|" + $i)>> <<else>> <<set $place.push($счетчик_хода0[$i] + "|" + $i)>> <<endif>> <<set $i++>> <<endloop>>
Этот код соритрует и показывает мне лидера гонки:
750 - Вася
985 - Петя
1055 - Коля
А если у меня такие значения получаются в гонке:
9750 - Вася
9985 - Петя
10055 - Коля
Как мне надо будет код записать?
Неактивен
Пост 548 - проблему решил
Неактивен
Да вроде с сортировкой разобрался. Зацените что имеем на выходе сейчас.
https://cloud.mail.ru/public/a6478949ef … %D1%80.rar
Просьба подсказать, как сделать так, чтобы спортсмены, у которых счетчик хода достигнет нуля, получали статус финишировавших, и получали места и очки, в порядке финиша.
Неактивен
Вот такую ошибку постоянно выдает программа. Ошибка не только у меня, но и у друзей.
Неактивен
Парни, нужна помощь! Есть массив в начале игры:
<<set $очки = [0, 0, 0, 0, 0, 0, 0, 0]>>
Теперь значит есть такой кусок кода:
<<set $i = 0>> <<loop $имя.length>> <<set $индекс = $place[$i].split('|')[1]>> <<print ($i + 1)>> место: <<print $имя[$индекс]>> (<<print $промахов0_лежа1[$индекс]>>, <<print $промахов0_лежа2[$индекс]>>, <<print $промахов0_стоя1[$индекс]>>, <<print $промахов0_стоя2[$индекс]>>) - <<print $счетчик_хода0[$индекс]>> метров до финиша. <<set $i++>> <<endloop>>
Требуется сделать, чтобы первому, у кого это значение параметра
$счетчик_хода0[$индекс]
становится равно 0 или меньше, присуждается 60 очков, следующему - 54 и так далее. При этом, если игрок финишировал, то он уже не должен отображаться в следующем ходе.
Неактивен
Еще вопрос:
Вот кусок кода:
<<row 'Промежуточная отметка'>> <<set $place = []>> <<set $i = 0>> <<loop $имя.length>> <<if $счетчик_хода0[$i] lt 0>> <<goto 'Результаты Гонки-1'>> <<endif>> <<if $счетчик_хода0[$i] lt 10>> <<set $place.push("0000" + $счетчик_хода0[$i] + "|" + $i)>> <<elseif $счетчик_хода0[$i] lt 100>> <<set $place.push("000" + $счетчик_хода0[$i] + "|" + $i)>> <<elseif $счетчик_хода0[$i] lt 1000>> <<set $place.push("00" + $счетчик_хода0[$i] + "|" + $i)>> <<elseif $счетчик_хода0[$i] lt 10000>> <<set $place.push("0" + $счетчик_хода0[$i] + "|" + $i)>> <<else>> <<set $place.push($счетчик_хода0[$i] + "|" + $i)>> <<endif>> <<set $i++>> <<endloop>>
По идее, эта часть кода
<<if $счетчик_хода0[$i] lt 0>> <<goto 'Результаты Гонки-1'>> <<endif>>
говорит нам о том, что если значение меньше нуля, то переходим к другому параграфу, но почему то работает это вот так (указано на скриншоте). Почему появляется кнопка "далее", которой нет в параграфе "Результаты Гонки-1", но есть в параграфе с тем куском кода. И при нажатии на эту кнопку продолжается тот параграф?!
Неактивен
Есть такой массив в начале игры: <<set $очки = [0, 0, 0, 0]>>
И есть такой: <<set $имя = [Вася, Петя, Игорь, Илья]>>
Нужно, чтобы после финиша гонки спортсмены записали на свой счет очки. За первое место 60, за второе 55, за третье 50 и за четвертое - 45.
Есть код:
<<set $i = 0>> <<set $финишировал = 65>> <<loop $имя.length>> <<set $финишировал = $финишировал - 5>> <<set $очки[$индекс] = $очки[$индекс] + $финишировал>> <<set $индекс = $place[$i].split('|')[1]>> <<print ($i + 1)>> место: <<print $имя[$индекс]>> (<<print $промахов0_лежа1[$индекс]>>, <<print $промахов0_лежа2[$индекс]>>, <<print $промахов0_стоя1[$индекс]>>, <<print $промахов0_стоя2[$индекс]>>) - <<print $финишировал>> очков за гонку. <<set $i++>> <<endloop>>
На экране выводятся результаты, типа:
Игорь - 60 очков за гонку
Вася - 55 очков за гонку
Илья - 50 очков за гонку
Петя - 45 очков за гонку
После этого захожу в параграф статистики. Вот его код:
<<set $place = []>> <<set $i = 0>> <<loop $имя.length>> <<if $очки[$i] lt 10>> <<set $place.push("00" + $очки[$i] + "|" + $i)>> <<elseif $очки[$i] lt 100>> <<set $place.push("0" + $очки[$i] + "|" + $i)>> <<else>> <<set $place.push($очки[$i] + "|" + $i)>> <<endif>> <<set $i++>> <<endloop>> <<set $place = $place.sort().reverse()>> <<row 'Общий зачет Кубка мира'>> <<set $i = 0>> <<loop $имя.length>> <<set $индекс = $place[$i].split('|')[1]>> <<print ($i + 1)>> место: <<print $имя[$индекс]>> (<<print $очки[$индекс]>>) <<set $i++>> <<endloop>>
Все бы хорошо, но, почему то, спортсмен, занявший в гонке последнее место, в статистике получает 60 очков (т.е., за первое место в гонке).
Петя - 60 очков за гонку
Игорь - 55 очков за гонку
Вася - 50 очков за гонку
Илья - 45 очков за гонку
В чем ошибка?
Отредактировано alfa10 (15.01.2015 18:27)
Неактивен
Пост 556 - проблема решена
Неактивен
Спасибо, дружище!
Вопрос! Есть код:
<<set $i = 0>> <<set $финишировал = 65>> <<loop $имя.length>> <<set $финишировал = $финишировал - 5>> <<if $финишировал lt 0>> <<set $финишировал = 0>> <<endif>> <<set $индекс = $place[$i].split('|')[1]>> <<set $очки[$индекс] = $очки[$индекс] + $финишировал>> <<set $очки_индивидуалка[$индекс] = $очки_индивидуалка[$индекс] + $финишировал>> <<print ($i + 1)>> место: <<print $имя[$индекс]>> - <<print $финишировал>> очков (Общий зачет - <<print $очки[$индекс]>>; Индивидуальная гонка <<print $очки_индивидуалка[$индекс]>>) <<set $i++>> <<endloop>>
Он начисляет очки так: 1 место - 60, второе - 55, третье - 50 ... и так до нуля. Как можно сделать, чтобы очки начислялись так: 1 место - 60, второе - 54, третье - 50, четвертое - 48, пятое - 46... (вообщем начисление без логики какой-то, просто реальное начисление согласно биатлонному правилу)???
Неактивен
Привет парни. Делаю новую версию биатлона (Морыч с даблдраганом сильно помогли в тот раз, но код игры был потерян, восстанавливаю все заново. Есть вопросы, помогите плиз:
1 вопрос
спойлер…
Выводятся значения, вида: 56,877777777. Как сделать, чтобы число округлялось, типа - 57?
2 вопрос
спойлер…
Код выводит информацию:
1 место: Вася - 1000 метров до финиша
2 место: Игорь - 1350 метров до финиша.
Как сделать, чтобы было так:
1 место: Вася - 1000 метров до финиша
2 место: Игорь - 350 метров от Васи
???
Неактивен
файл весит 29 МБ. при попытке вывести игру в html-файл после долгого ожидания (час) происходит ошибка (вернее, операция сбрасывается). как быть и почему?
Неактивен
в кабинете вроде только ссылки на .sm файл есть, вроде же, а не на html? просто должно открываться окно, где выбираем куда сохранить html-файл, а окно не открывается. каков допустимый размер файла? просто все нужно, удалять код где то не вариант))))
Неактивен
а где ссылка в личном кабинете? вижу файлы, счёт и публикации. и все. тип ака - про
Неактивен
а при выводе html интернет должен быть включён? а то я экспортировал без интернета
Неактивен
Все заработало! Инет нужен был))))
Кстати, не самопиар а так - хотелось бы показать народу свою игру - Биатлон, чтобы видели, что можно выжать из платформы AXMA.
Неактивен
DoubleDragon написал:
alfa10 написал:
Все заработало! Инет нужен был))))
Кстати, не самопиар а так - хотелось бы показать народу свою игру - Биатлон, чтобы видели, что можно выжать из платформы AXMA.Ну так показывай
Чет не выкладывается, пишет ошибку. Видимо файл большого размера
Неактивен
Есть переменные: команда1, команда2 и т.д... Как сделать, чтобы рандомно составлялась сетка турнира между этими командами?
Например, Команда3 против Команда1, Команда2 против Команда10.
И дальше чтобы проигравшие в сите не участвовали уже. Т.е., если Команда3 и Команда2 проиграли, дальше сеялись уже без них сетки
Неактивен
И еще вопрос - прописываю команды:
<<set $команда1 = 'Россия'>>
<<set $команда2 = 'Чехия'>>
<<set $команда3 = 'Канада'>>
Как сделать, чтобы при выборе конкретной команды для игры, на экран выводилась фотография флага страны?
Неактивен
Еще вопрос. Прописал восемь команд, прописал массив из очков для этих команд:
<<set $очки = [0, 0, 0, 0, 0, 0, 0, 0]>>
Теперь к примеру играет команда1 с командой8, и команда8 победила, как прописать ей в очки 3 очка?
Неактивен
Код:
<<set $очки[8] = $очки[8] + 3>> или <<set $очки[8] += 3>>
Только почему-то первая команда в массиве идет как очки[0], а не очки[1].
Неактивен
Решил продолжить создание игры "Биатлон". При попытке запустить игру (в программе - кнопка "запустить") программа зависает (висит более 30 минут точно). Как можно решить эту проблему? Да, данных в игре много, но все они нужны...
Неактивен
А в какой версии это происходит?
В текущей. В программе и в онлайн. А на старой версии (не помню ее, но в ней еще в первой появились окна справа вверху), игра норм запускалась. Ну как норм - долго, но запускалась в итоге. А в новой версии - висит и все...
Отредактировано alfa10 (28.02.2017 16:24)
Неактивен
Скинул
Отредактировано alfa10 (28.02.2017 22:56)
Неактивен
DoubleDragon написал:
Получил.
Надеюсь, сможешь помочь. Кстати, такую игру в каком игровом редакторе лучше делать? Можешь подсказать?
Неактивен
Уже половину данных удалил - все равно виснит при нажатии на "Запустить"
Неактивен
Запустилась, через полтора часа)))) долговато как то...
Отредактировано alfa10 (02.03.2017 13:33)
Неактивен
Привет!
Коллеги, ребятки, подскажите, будет ли возможность портировать на андроид? Хочу свой хит перенести на андроид и играться на телефоне!
Неактивен