🤔 Para Refletir :
"Refatorar o código é como usar inseticida: Elimina bugs."
- Mayleone

RPG Maker MV Armazendo dados de parâmetros com Struct (Javascript com RPG Maker MV API)

DanTheLion Masculino

Conde
Administração
Administração
♫ in the jungle, the mighty jungle, the lion sleeps tonight ♫
Juntou-se
10 de Janeiro de 2016
Postagens
464
Soluções
1
Bravecoins
2.415
Olá a todos, como vão? Gostaria de tirar essa "pulga atrás da orelha" que está me incomodando a tempos.

Como alguns sabem, há alguns plugins que utilizam alguns parâmetros dentro deles que usam Struct para armazenar multiplos valores consigo. Como por exemplo o plugin do Yanfly: Quest Journal.

Veja as imagens abaixo, por exemplo:

EIdrVJT.png


R6WjOBT.png

É muito bom organizar esses parâmetros para utilizar no código depois. Porém eu queria entender como o script é feito.

Eu fui procurar no código fonte deste plugin pra dar uma estudada, mas não entendo algumas coisas por serem bem confusas:

Veja este script do mesmo plugin citado:

Código:
DataManager.questDatabaseAdd = function(id, data) {
  if (!data) return $dataQuests.push(null);
  data = this.questDataFailsafe(id, data);
  var visibleObjectives = JSON.parse(data['Visible Objectives']);
  for (var i = 0; i < visibleObjectives.length; ++i) {
    visibleObjectives[i] = parseInt(visibleObjectives[i]);
  };
  var visibleRewards = JSON.parse(data['Visible Rewards']);
  for (var i = 0; i < visibleRewards.length; ++i) {
    visibleRewards[i] = parseInt(visibleRewards[i]);
  };
  var description = JSON.parse(data['Description']);
  description.unshift('');
  var objectives = JSON.parse(data['Objectives List']);
  objectives.unshift('');
  var rewards = JSON.parse(data['Rewards List']);
  rewards.unshift('');
  var subtext = JSON.parse(data['Subtext']);
  subtext.unshift('');
  var type = data['Type'];
  type = type.replace(/\\I\[(\d+)\]/gi, '').trim();
  type = type.replace(/\\C\[(\d+)\]/gi, '').trim();
  var quest = {
    name: data['Title'],
    id: id,
    type: type,
    difficulty: data['Difficulty'],
    from: data['From'],
    location: data['Location'],
    description: description,
    objectives: objectives,
    visibleObjectives: visibleObjectives,
    rewards: rewards,
    visibleRewards: visibleRewards,
    subtext: subtext,
    note: ''
  };
  $dataQuests[id] = quest;
  Yanfly.Quest.totalCount += 1;
};

Tudo bem se algumas linhas do código não terem nada a ver com o sistema de armazenamento dos parâmetros.

Com base este código, queria criar minha própria lista em formato Struct, mas não sei como funciona. Como faço pra armazenar TODOS OS DADOS dessa lista ordenada de parâmetros?

Para entender melhor:

Vamos supor que eu tenho uma lista de parâmetros com uma Struct chamada Format.

Os parâmetros que a possui são:

Janela 1
Janela 2
Janela 3
Janela 4
Janela 5
...
Janela 98
Janela 99
Janela 100

E a Struct dos parâmetros acima tenham as seguintes informações:

Coordenada X
Coordenada Y
Largura
Opacidade
Origem

Alguém pode me explicar a como pegar todas essas informações em código? Como demonstrado nas imagens do plugin do Yanfly.

Soube que o uso do código For é essencial pra esse caso. Então será mais fácil usá-la pra armazenar todos os dados dos parâmetros e seus conteúdos.

P.S.: Já tenho conhecimento do básico da formação dos parâmetros em um plugin. Como @param, @type struct<Nome da Struct>, @default, @desc, etc.


Vou esperar aqui... sentado... assistindo séries da Netflix, enquanto isso...

~ Abraços!
Até mais! :)
 
Você pega as propriedades da mesma forma que pega os parâmetros: indexando pelo nome.

Você acha a especificação dos parâmetros de plugin atualizados nesse tópico aqui: https://forums.rpgmakerweb.com/index.php?threads/introduction-to-the-new-plugin-manager-in-rpg-maker-mv-1-5-0.79764/

Na seção "Structure" você encontra a explicação que você quer.
 
Voltar
Topo Inferior