Четверг, 28 Марта 2024, 19:48

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Форум игроделов » Конструкторы игр и лёгкие в освоении системы разработки игр » Game Maker » ini создается, записывается, не читается.
ini создается, записывается, не читается.
ГлюкДата: Среда, 27 Мая 2015, 19:25 | Сообщение # 1
Lampa Studio
Сейчас нет на сайте
Народ в чем причина?
( аля, мини сейв )
Код
    ini_open('game.ini')
     ini_write_string('rooms','roomess','level2')
     ini_close()


Окей, записался.

Код

     ini_open('game.ini')
     room_goto(ini_read_string('rooms','roomess','level1'));
     ini_close();

А вот загрузка посылается далеко и на долго. В чем причина?



Мой проект Drunk West! (заморожен)
https://gcup.ru/forum/9-99264-1

Мой проект Block Destroyer ( В разработке )
https://gcup.ru/forum/9-102818-1#764778
ЛеонидДата: Среда, 27 Мая 2015, 20:26 | Сообщение # 2
постоянный участник
Сейчас нет на сайте
У тебя ошибка, задержка долгая или просто ничего не происходит?

Добавлено (27 мая 2015, 20:26)
---------------------------------------------
У меня предположение, что аргумент у room_goto() должен быть не string. Не обязательно использовать числа, можно и текст, но не string (в справке - numb, не очень понимаю, что это). Попробуй не название комнаты сохранять и считывать, а её id.

EfimovMaxДата: Среда, 27 Мая 2015, 20:30 | Сообщение # 3
заслуженный участник
Сейчас нет на сайте
Цитата Глюк ()
room_goto(ini_read_string('rooms','roomess','level1'));

Да, ошибка точно здесь. Пробовал уже такой подход - название комнаты из нескольких стрингов собрать. Ничего не получилось, выход из ситуации не нашёл.


Текущий проект: The Experiment ☭

Выпущенные проекты Steam:
Princess.Loot.Pixel.Again
Princess.Loot.Pixel.Again x2
Dungetris
ЛеонидДата: Среда, 27 Мая 2015, 20:33 | Сообщение # 4
постоянный участник
Сейчас нет на сайте
Нашел цитату на официальном форуме:"Resource names are not strings, stop treating them like they are.".
Теперь у меня возник вопрос, как получить id комнаты? В справке не нашел, в интернете тоже, только название.
ГлюкДата: Среда, 27 Мая 2015, 21:03 | Сообщение # 5
Lampa Studio
Сейчас нет на сайте
З - загадка...

Добавлено (27 мая 2015, 21:03)
---------------------------------------------
как сохранить тогда прогресс игры о_о

Добавлено (27 мая 2015, 21:03)
---------------------------------------------
ладно, пойдем в обход...



Мой проект Drunk West! (заморожен)
https://gcup.ru/forum/9-99264-1

Мой проект Block Destroyer ( В разработке )
https://gcup.ru/forum/9-102818-1#764778
ЛеонидДата: Четверг, 28 Мая 2015, 08:01 | Сообщение # 6
постоянный участник
Сейчас нет на сайте
Кажется у меня есть идея.
Попробуй ini_write_real('rooms','roomess',*название комнаты без кавычек*), чтение тоже real сделать. Думаю, должно работать.
Как я нашел, GM с названиями ресурсов обращается как с переменными, хранящими определенное значение (их id). Так, например, если написать show_message(room0), то выведется сообщение "0" - id этой комнаты.

Добавлено (28 мая 2015, 08:01)
---------------------------------------------
Проверил, на восьмерке работает. Надеюсь, это поможет (и что я не опоздал).


Сообщение отредактировал Леонид - Четверг, 28 Мая 2015, 08:03
AnthemДата: Четверг, 28 Мая 2015, 18:31 | Сообщение # 7
Д'Артаньян
Сейчас нет на сайте
Цитата Леонид ()
Теперь у меня возник вопрос, как получить id комнаты?
Он хранится в переменной room


Текстовый контент для вашей игры (бесплатно)
Сценарист, геймдизайнер для Вашей игры
YellowAfterlifeДата: Четверг, 28 Мая 2015, 20:09 | Сообщение # 8
Сейчас нет на сайте
Вариант 1: Записывать индекс комнаты:
// сохранение:
ini_open("some.ini")
ini_write_real("room", "index", room)
ini_close()
// загрузка:
ini_open("some.ini")
if (ini_key_exists("room", "index")) {
room_goto(ini_read_real("room", "index", -1))
} else {
// INI нет вовсе или номер комнаты в нем не записан.
}
ini_close()


Вариант 2: Записывать имя комнаты и правильно его считывать:
// сохранение:
ini_open("some.ini")
ini_write_string("room", "name", room_get_name(room))
ini_close()
// загрузка:
ini_open("some.ini")
if (ini_key_exists("room", "name")) {
room_goto(asset_get_index(ini_read_string("room", "name", "")))
} else {
// INI нет вовсе или имя комнаты в нем не записано.
}
ini_close()

(если версия 8.1 или ниже то заменить asset_get_index скриптом отсюда)




Сообщение отредактировал YellowAfterlife - Четверг, 28 Мая 2015, 20:09
Форум игроделов » Конструкторы игр и лёгкие в освоении системы разработки игр » Game Maker » ini создается, записывается, не читается.
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг