Внимательно ознакомился со справкой MMB и увы не нашёл там инфы о том как например пользователю запустившему мой exe файл сохраниться как в игре на той или иной странице Сталкивался ли кто нибудь с необходимостью делать сэйв скрипты? У кого есть готовый шаблон скрипта - выложите на сайте MMB или укажите в коменте Заранее спасибо всем кто помогает неопытному ученику
Сообщение отредактировал Onideo - Воскресенье, 01 Мая 2011, 18:46
т.е. чтобы открыть проект уже на заданной странице? нужно при выходе запомнить куда нибудь (записать в файл или реестр) имя текущей страницы, а при старте проекта читать и переходить на нужную. Записывать в файл StrToFile, читать - StrFromFile.
Добавлено (01 Май 2011, 19:11) --------------------------------------------- работа с реестром - в smallplugin
Зависит от того, что конкретно требуется сохранять. Универсального решения не существует, придётся выбирать данные для сохранения с записывать в файл либо в реестр, как и указал DEMBEL.
Уточни задание, что требуется сохранить, и как можно подробнее. А мы придумаем алгоритмическое решение, коль уж сам не сможешь.
Жизнь оказалась не такой уж и забавной, как поначалу...
для меня это слишком сложно можешь просто написать шаблон скрипта? ты правильно понял ход моей мысли и думаю ты сможешь реализовать задуманное так как сразу видно, что ты уже матёрый программист как и многие завсегдатаи этого сайта, включая Юрия и многих других Будь добр помоги мне с решением этой непростой задачки - мне самому не разобраться так как скриптовое программирование это не мой конёк К тому же в дальнейшем этот шаблон многим пригодится
Сообщение отредактировал Onideo - Воскресенье, 01 Мая 2011, 23:19
Уточни задание, что требуется сохранить, и как можно подробнее. А мы придумаем алгоритмическое решение, коль уж сам не сможешь.
алгоритм прост - например пользователь решил прервать сессию проекта и чтобы не начинать заново он делает сохранение на определённой странице и при следующем запуске проекта нажимает загрузить и продолжает с того места где он прервал свою сессию - всё просто, но я то знаю как это сложно реализовать нужно на первой странице сделать горячие кнопки НАЧАТЬ ЗАНОВО и ПРОДОЛЖИТЬ и как то организовать выполение этого процесса мой проект выглядит так он находится в файле ISO - внутри лежат папка SOUNDS и сам EXE файл так вот сохранения видимо должны записываться в какую то папку на локальном диске но сперва нужно дать команду о создании этой папки но вопрос? - будет ли это всё работать в MMB
Сообщение отредактировал Onideo - Воскресенье, 01 Мая 2011, 23:34
конечно, нужно добавить условие, если переменной нет (кнопку не нажимали), то не переходим, иначе ошибка. Еще нужно отменить сохранение, если пользователь не выбирал сохранить (писать в реестр чтото другое, а при загрузке читать и обрабатывать в условиях, или писать пустоту которая обработается в условии если переменной нет), иначе каждый раз будет переходить к последнему сохранению при старте.
DEMBEL, Спасибо тебе большое! От души! Ты мне очень помог!!! savereg.zip многому меня научил теперь я знаю как заставить работать сохранёнки YURIY, я согласен с тобой, что новичку не стоит лезть в такие дебри как сохранения и прочие сложные процессы, но как я уже упоминал ранее - скриптовое программирование это не мой конёк, поэтому мне проще взять готовый шаблон и с него учитья - на практике я быстрее пойму, что к чему ведь на одной теории далеко не уедешь
Сообщение отредактировал Onideo - Понедельник, 02 Мая 2011, 00:13
делает сохранение на определённой странице и при следующем запуске проекта нажимает загрузить и продолжает с того места где он прервал свою сессию - всё просто
Дело том, что задачу нам всё равно не описали - кроме сохранения номера текущей страницы ему наверняка потребуется и сохранение каких-то пользовательских данных, которые зависят от конкретного случая. От какого - вот это и хотелось услышать. Что конкретно делает программа. А пока эта информация скрывается под грифом "совершенно секретно".
Также, неплохо было бы выложить сюда текущие наработки в виде проекта, поскольку пока что мы топчемся на стадии "было бы неплохо вот так". В общем, чем конкретнее задан вопрос, тем конкретнее на него ответят.
И, Onideo, ваша безусловная вежливость, это, конечно, хорошо. Но хорошо только, когда в меру. И прислушайтесь к совету Юрия, он дельный.
Добавлено (02 Май 2011, 00:17) ---------------------------------------------
Quote (Onideo)
скриптовое программирование это не мой конёк, поэтому мне проще взять готовый шаблон и с него учитья - на практике я быстрее пойму
Ну мы все так учились. Вперёд. Жизнь оказалась не такой уж и забавной, как поначалу...
поэтому мне проще взять готовый шаблон и с него учитья
Так Юра и показал на готовые шаблоны.
Добавлено (02 Май 2011, 00:35) ---------------------------------------------
Quote (toizy)
кроме сохранения номера текущей страницы ему наверняка потребуется и сохранение каких-то пользовательских данных, которые зависят от конкретного случая.
Я тоже об этом подумал. Сохранить номер страницы не сложно. А вот данные... Если речь идет об игре к примеру, движение объекта. Получается нужно сохранить скрипт. И запустить его с того момента где объект остановился. Или к примеру текстовые поля. В них какая то информация. Во всех разная. Здесь уже совсем другой подход. Короче
Quote (toizy)
В общем, чем конкретнее задан вопрос, тем конкретнее на него ответят.
скучно учить уроки, интереснее списать у соседа за партой
Quote (toizy)
Что конкретно делает программа.
не трудно догадаться, что это игра - само название темы намекает на это я дал обещание всем своим интернет-друзьям, что выпущу свою первую официальную игру 11 мая и ещё есть время довести её до ума - у меня нет режима сохранений хотя можно обойтись и без него но в следующей игре сохранения просто необходимы! до этого я не мог сделать скрипт выхода из игры - Спасибо Юрию! - он мне в этом помог! Я обязательно залью MMB игру сюда на сайт - И я предлагаю всем нам сделать эту игру более крутой идеи идеями, но мне не хватает опыта в программировании поэтому я готов внести все ваши дельные изменения в эту игру будь то какие то скрипты или дополнительные локации но это лучше обсудить в другой теме подскажите в какой
Добавлено (02 Май 2011, 00:52) ---------------------------------------------
Quote (mishem)
Сохранить номер страницы не сложно. А вот данные...
Главное - просто начать выполнение сценария с определённой страницы и скорее всего сохраняться можно будет в отдельных местах - так называемые чекпоинты
Сообщение отредактировал Onideo - Понедельник, 02 Мая 2011, 00:56
toizy, DEMBEL, YURIY, mishem, и другие участники форума MMB всех вас уважаемые эксперты я приглашаю на презентацию моей MMB игры FAHRENHEiT QUEST Встречаемся в среду 11 мая в разделе Проекты MBD хотя правильно ли называется раздел? может проекты MMB?
поэтому мне проще взять готовый шаблон и с него учитья - на практике я быстрее пойму, что к чему ведь на одной теории далеко не уедешь
О нет, мой друг, там далеко не голая теория Андрей (as-master) делал свои уроки именно в том стиле, чтобы за ним, шаг за шагом, повторял новичок! Андрей учил именно практике. И это очень многим послужило хорошим опорным пунктом!
Поэтому я предлагаю всё равно пройти в раздел уроков и практиковаться вместе с автором сайта!
У нас были люди и за 60, которые тоже изучали и писали свои скрипты. Всё реально!
Quote (Onideo)
может проекты MMB?
MBD там написано для тех, кто пожелает вставить в раздел exe-файл. Только это обмену опытом не поможет совершенно. Поэтому, это раздел только исходников.
DEMBEL, локации для новой игры со всеми процессами на них готовы осталось добавить сохранение на каждую страницу
Quote (DEMBEL)
простейший вариант - при нажатии на кнопку или в скрипте выхода сохраняем в реестр имя текущей страницы: Код PageName$=CBK_PageName SaveVariable("Stranica","PageName$") В скрипте первой страницы проекта (выполняется автоматом при старте) загружаем сохраненные данные в переменную и переходим к странице: Код LoadVariable("Stranica","PName$") Page("PName$") сложно? нет. Можно писать и в файл, любые данные, при старте читать и в условиях делать нужные действия, переходы и прочее... Прикрепления: savereg.zip(1Kb)
Как я понял если игрок нажмёт на странице сохранить, то при следующем запуске игра начнётся именно с той страницы на которой игрок последний раз нажал сохранить? И сохранённые данные сохранятся в реестр... А если игрок каждый день чистит реестр - могут ли удалиться сохранённые данные? и если могут то как предотвратить этот крайне нежелательный процесс?
сам я не проверял я ещё даже не компилировал проект дело в том, что игроки пользуются разными прогами чистящами реестр у меня раньше была прога Uniblue но потом мой антивирусник после её переустановки не пустил эту прогу к установке сколько бы я его не отключал и в итоге я установил CCleaner Вобщем у всех разные чистильщики
И сохранённые данные сохранятся в реестр... А если игрок каждый день чистит реестр - могут ли удалиться сохранённые данные? и если могут то как предотвратить этот крайне нежелательный процесс?
ну тогда не засоряй реестр и скидывай все настройки в файл/читай из файла (strtofile/strfromfile), см. форум по работе с ними.
а это вообще бред, я так понял нужно сохранить всего лишь имя страницы и все, к чему весь этот беспредел что вы написали?
ну так, чтобы реестр не засорять, чтобы при его чистке сохранёнка не была удалена чистильщиками реестра ведь сам файл EXE не изменить, так как он находится внутри файла ISO,в который невозможно внести какие либо изменения
Quote (DEMBEL)
видимо при старте игры следует предусмотреть кнопки Новая игра/Продолжить, написать код в кнопку продолжить. Ну это вам думать куда писать.
было бы хорошо, но я не знаю как Впрочем если следовать логике реалий игрок, начав игру и сохранившись закончив играть - запустив игру снова не будет в неё играть с самого начала, а продолжит с того места где он сохранился в последний раз, следовательно при очередном запуске моей игры он пропустит все флэш заставки включая главное меню и начнёт играть с той страницы где он сохранялся. Осталось понять как сохранить страницу не в реестр, а в текстовый файл, дающий возможность начинать с того места где было произведено последнее сохранение. Если не найдётся решение значит в описании я предупрежу игроков чтобы они не чистили реестр пока не пройдут мою игру
Осталось понять как сохранить страницу не в реестр, а в текстовый файл, дающий возможность начинать с того места где было произведено последнее сохранение.
запись строки в файл - strToFile чтение строки из файла - strFromFile пишете и читаете потом имя страницы, потом где надо переходите к ней командой Page при старте игры. Проверяем если есть файл сохранений значит делаем вывод что игру нужно продолжить.
Quote (Onideo)
так как он находится внутри файла ISO,в который невозможно внести какие либо изменения
не надо ничего писать в iso, пишите в файл в любом месте на компе, хоть в Tеmp.
пишете и читаете потом имя страницы, потом где надо переходите к ней командой Page при старте игры. Проверяем если есть файл сохранений значит делаем вывод что игру нужно продолжить.
Всё равно ничего не понял Читал в хелпе MMB про strToFile и strFromFile но застопорился Придётся сохранять страницы в реестр
Вобщем уважаемый Dembel (мой консультант по новой игре, а также её персонаж вся надежда только на вас. Игра готова, сейчас я оформляю её меню, заставки я уже сделал и в мир Multimedia Builder сейчас я выложу 1 вступительный ролик из новой игры Доделав меню мне останется прикрутить почти на каждую страницу кнопку скрипт сохранить и скрипт загрузить на начальную... Если захотите помочь с примером как сохранить страницу в файл - буду вам очень признателен! То, что получилось - мне очень нравится! Fahrenheit Quest - по сравнению с новой игрой - это жалкий эксперимент! Надеюсь и вам тоже понравится (тем более что вы коственно присутствуете не только в титрах, но и в процессе игры...
Насколько я понял, у вас для каждой страницы есть свое имя. При сохранении игры, записываете в файл название страницы которая в данный момент открыта. При запуске игры, читаете название страницы записанной в файл, если такой файл существует, то открываете игру на той странице, на какой остановились. Если файла нет, то игра запускается сначала. При новом сохранении, либо добавляете название новой страницы, либо перезаписываете. Не хочешь читать хелп?
При новом сохранении, либо добавляете название новой страницы, либо перезаписываете.
Кстате при добавлении, можно так же добавить день и время, и после в отдельном окне давать возможность выбора, с какого момента продолжить. Допустим кто то не может пройти какой то этап, и хочет вернутся шагов на 5 назад. Вот сдесь и можно делать сначала автосохранение при прохождении каждой страницы, а после дать возможность выбора с какого момента начать. Ну и т.д. Идею развить можно с сохранением еще страниц на 10 кода. Не хочешь читать хелп?
чтобы при его чистке сохранёнка не была удалена чистильщиками реестра
Чистильщики не трогают эту ветку
Quote (Onideo)
ведь сам файл EXE не изменить, поскольку он находится внутри файла ISO,в который невозможно внести какие либо изменения
А его и так не получится изменить, так как он запущен. А к запущенному файлу система доступа не даст никогда. Вариант - закрываться и дописывать в оверлей, но это костыли горбатому.
Вариант mishem считаю самым оптимальным. Как записать в файл ответил DEMBEL, ну, вот ещё и кусок кода, для наглядности:
toizy, спасибо! если всё получится, то никнейм Toizy появится в меню игры в разделе спасибо
Добавлено (28 Июнь 2011, 09:53) --------------------------------------------- toizy, Насколько я понял данные сохранятся в папку Temp? Насколько я знаю в папке Tempхранятся временные файлы. И по-моему чистильщики вроде Uniblue и CCleaner чистят эту папку автоматически. Чтобы у игрока не было танцев с бубнами - чтобы он не думал о нажатии на кнопку сохранить (тем более движок MMB в плане игр весьма глючный и игра может в любой момент заглючить в связи с чем игрок может не успеть сохраниться) я решил что игра будет сохраняться автоматически после перехода на другую страницу, поэтому обязательно ли писать в коде Message? Будет лишним если постоянно будет выходить сообщение о том что игра сохранена.
Сообщение отредактировал Onideo - Понедельник, 27 Июня 2011, 20:06
message это вам для примера, визуализации, чтобы вы видели что происходит. ) Разумеется, писать в живой программе эти строчки не надо, если не хотите выводить сообщений...