Войти на сайт

Авторизация, ждите ...
×

ТЕМА: [Решено] Почему $dataMap равен null?

[Решено] Почему $dataMap равен null? 1 мес. 1 нед. назад #124457

  • Sepheyer
  • Sepheyer аватар
  • Вне сайта
  • Бывалый
  • Сообщений: 63
  • Спасибо получено: 27
Привет.

Допустим, я хочу посчитать события при старте. Кто-нибудь знает, почему обьект содержащий эту информацию равен null?

Вот код - это весь код условного плагина. Естественно, если использую его через скрипт, то работант. Но не через плагин.
//file "test_event.js"
console.log($dataMap.events.length)
//

Я точно знаю, что этот обьект уже инициализован и содержит информацию - я вижу это через F8:

DataMap.png


Спасибо.
Последнее редактирование: 1 мес. 1 нед. назад от Sepheyer.
Администратор запретил публиковать записи гостям.

Почему $dataMap равен null? 1 мес. 1 нед. назад #124458

  • DarchanKaen
  • DarchanKaen аватар
  • Вне сайта
  • Мастер
  • Сообщений: 171
  • Спасибо получено: 124
  • Проект месяца 1 местоРазработчикВетеран
Причину я не скажу, но лично мне в случае когда нужно было проверять эвенты на карте помогло использование:

$gameMap.events();

Могу предположить, что или в $gameData эвенты записываются с каким-то лагом во времени или какой-то плагин туда их не помещает (например, плагин Galv`а на копирование эвентов их в $dataMap не помещает...насколько я помню).
Мои игры [ Нажмите, чтобы развернуть ]
Последнее редактирование: 1 мес. 1 нед. назад от DarchanKaen.
Администратор запретил публиковать записи гостям.

Почему $dataMap равен null? 1 мес. 1 нед. назад #124459

  • Sepheyer
  • Sepheyer аватар
  • Вне сайта
  • Бывалый
  • Сообщений: 63
  • Спасибо получено: 27
К сожелению с $gameMap тот же результат - ошибка и вылет из-за null.
//console.log($dataMap.events.length)
console.log($gameMap.events.length)
Администратор запретил публиковать записи гостям.

Почему $dataMap равен null? 1 мес. 1 нед. назад #124460

  • DarchanKaen
  • DarchanKaen аватар
  • Вне сайта
  • Мастер
  • Сообщений: 171
  • Спасибо получено: 124
  • Проект месяца 1 местоРазработчикВетеран
Подумал, попробовал...
Наверное я ерунду сказал в предположении, да простят меня опытные плагинописатели. =/

Все работает.
Вероятно ты как-то не так написал свой плагин.
Вот код рабочего примера (извини, скринов не будет).


Код рабочего тестового плагина [ Нажмите, чтобы развернуть ]


Код, вероятно, не оптимален / где-то излишен...Но он работает.

P.S:
Мне в разработке моих плагинов, кроме ковыряния самого мейкера, очень помогает инфа по этой ссылке (там человек выложил кор-либу MV):
kinoar.github.io/rmmv-doc-web/globals.html
Мои игры [ Нажмите, чтобы развернуть ]
Последнее редактирование: 1 мес. 1 нед. назад от DarchanKaen.
Администратор запретил публиковать записи гостям.
За этот пост поблагодарили: Noxmils

Почему $dataMap равен null? 1 мес. 1 нед. назад #124461

  • Sepheyer
  • Sepheyer аватар
  • Вне сайта
  • Бывалый
  • Сообщений: 63
  • Спасибо получено: 27
@DarchanKaen, спасибо, но это немого не то.

Я не указал контекст наверное, извините.

Та команда которая мне нужна, она работает. Она не работает в определенной фазе, на фазе запуска плагина. При этом, консоль показывает что dataMap уже инициализирован, но вызовы обьекта упираються в null.
Администратор запретил публиковать записи гостям.

Почему $dataMap равен null? 1 мес. 1 нед. назад #124462

  • DarchanKaen
  • DarchanKaen аватар
  • Вне сайта
  • Мастер
  • Сообщений: 171
  • Спасибо получено: 124
  • Проект месяца 1 местоРазработчикВетеран
Sepheyer пишет:
@DarchanKaen, спасибо, но это немого не то.

Я не указал контекст наверное, извините.

Та команда которая мне нужна, она работает. Она не работает в определенной фазе, на фазе запуска плагина. При этом, консоль показывает что dataMap уже инициализирован, но вызовы обьекта упираються в null.

На фазе запуска плагина...извини, таких глубоких познаний в плагинах у меня нет.
Может кто-то еще что-то дельное скажет.

upd:
Кто знает больше о плагинах, можете уточнить - какая может быть "фаза запуска плагина"? Подключенные плагин, по идее, или интерпретируется и выполняется при старте игры, или при вызове его команд.
Так как между стартом мейкера и стартом карты есть, как минимум, главное меню (берем стандартный случай), то при старте игры никакой карты и нет.
Уже после меню и перехода на карту становятся доступными внутренние объекты типа $gameMap, $dataMap, и.т.д.
То есть, нет карты (в меню) - нет и эвентов карты.
Или я чего-то не понимаю? :wall:
Мои игры [ Нажмите, чтобы развернуть ]
Последнее редактирование: 1 мес. 1 нед. назад от DarchanKaen.
Администратор запретил публиковать записи гостям.
За этот пост поблагодарили: Sepheyer

Почему $dataMap равен null? 1 мес. 1 нед. назад #124463

  • Sepheyer
  • Sepheyer аватар
  • Вне сайта
  • Бывалый
  • Сообщений: 63
  • Спасибо получено: 27
F8 показывающее инициализированный обьект вызвало сомнения. Я начал надеятся, что плагины идут после инициализации $data но до $game.

На RPGMW написали:

"Плагины загружаются до инициализации переменных $data."
Администратор запретил публиковать записи гостям.
За этот пост поблагодарили: DarchanKaen

[Решено] Почему $dataMap равен null? 1 мес. 1 нед. назад #124464

  • yuryol
  • yuryol аватар
  • Вне сайта
  • Архитектор Миров
  • Сообщений: 1610
  • Спасибо получено: 2521
  • ОраторОрганизатор конкурсовПобедитель конкурса3 место ГотвУчитель2 место Композитор1 место в Готв
мукера под рукой нет.

насколько помню, подобную функцию можно вызывать в Scene_Map. метод то ли "start" то ли "init"
Администратор запретил публиковать записи гостям.

[Решено] Почему $dataMap равен null? 1 мес. 1 нед. назад #124465

  • Sepheyer
  • Sepheyer аватар
  • Вне сайта
  • Бывалый
  • Сообщений: 63
  • Спасибо получено: 27
@yuryol

В Game_Map.prototype.setup .
Администратор запретил публиковать записи гостям.
Время создания страницы: 0.258 секунд