O TEMA DO FÓRUM ESTÁ EM MANUTENÇÃO. FEEDBACKS AQUI: ACESSAR

Sistema de Quick-Equip

Iniciado por Harden, 05/04/2018 às 07:27

05/04/2018 às 07:27 Última edição: 05/04/2018 às 10:36 por Harden
Olá!

Estou com uma pequena dúvida... Estou tentando fazer um sistema de quick equip no RMMV, onde eu seleciono uma arma e atribuo uma tecla à ela, assim que eu pressiono essa tecla, o personagem equipa o item.
Os problema são os seguintes e duvidas:

• Tentei usando o plugin do Yanfly, Map Select Equip, porém estou usando o QABS e ao equipar a arma, o jogo não atualiza (creio eu) e não reconhece que o personagem está com a arma equipada;

• Há alguma maneira de criar um ''selecionar item'', mas para equipamentos?;
• Há alguma maneira de atribuir uma variável para um equipamento (ID no database, não o equipamento que o personagem está usando)?;

• Alguma sugestão de como fazer este sistema? Seria como uma hotbar, mas de apenas 2 itens e que eu posso mudar rapidamente.

EDIT:
Print das coisas. Funcionam perfeitamente, trocam o item de acordo com a variável, porém o jogo ou o QABS não atualiza com a arma trocada.




EDIT 2:

Bom, achei um jeito de dar uma burlada nessa taxa de atualização do plugin.
O problema era que o evento era encerrado assim que a janela do plugin abria e não quando ela era fechada, então tive que definir uma variável para a arma que está equipada e para a que vai ser equipada...





Acho que faz mais sentido vendo as imagens!

Caso alguém precise (:

Obrigado.
Your drill is the drill that will pierce the Heavens!

05/04/2018 às 08:28 #1 Última edição: 05/04/2018 às 08:33 por Corvo
Ah, pois é. Sempre o Yanfly.  :=|:

Primeiro vamos tentar consertar a bagunça. Respondendo às perguntas:
1 - Tentou desativar e reativar o código após a troca? Digo, durante o jogo?
2 - Sim, basta informar o número normalmente. Para a arma de ID 004, defina 4.
3 - Se o item 1 não funcionar, desative e desinstale o plugin do Yanfly. Para equipar uma arma você vai precisar do seguinte comando:
Spoiler
$gameActors.actor(ID do Personagem).changeEquip(ID do espaço, item);

Sendo que item pode ser substituído por:
$dataWeapons[n]   #Armas
$dataArmors[n]   #Demais equipamentos

ID pode ser trocado pelo valor de uma variável, assim:
$gameActors.actor(1).changeEquip(0, $dataWeapons[$gameVariables[30]);

Esse comando irá equipar o personagem de ID 1 com a arma cujo ID é o valor da variável de ID 30. Se uma tecla for pressionada, chame isto e temos um sistema funcionando.
[close]
Isso já é o suficiente para você fazer as duas partes do sistema: a que permite ao jogador fixar um atalho para a arma e a que equipa o personagem. Para ter certeza de que não vão haver bugs, seu sistema vai precisar verificar o ID do personagem - caso use mais de um - para que a arma não seja equipada pelo personagem errado. Enfim, você é das antigas então não preciso explicar essas firulas todas.  :ok:

Isto pode ser útil quando precisar.

Acho que só faltou o comando para atribuir a ID do equipamento no database à variável... Porque no RMMV só da pra atribuir a variável a item ou ao equipamento equipado já.
E para atribuir a ID à variável, estou usando o tal plugin  :noface:


Só para desencargo de consciencia, postar um print das coisas.


Your drill is the drill that will pierce the Heavens!

Não existe um comando para isso porque o ID não é um valor especial, é só um número. Por exemplo, defina qualquer número aleatoriamente para uma variável e ele pode ser tratado como ID. Por exemplo, os seguintes comandos podem ser usados para definir o ID de um equipamento, item, arma, estado, enfim:

Atribuindo ID aleatório
[close]
Atribuindo ID definido
[close]

Se o que esse plugin faz é simplesmente isso pode remover sem medo.

Ok, acho que vou conseguir arrumar com isso!
Uma ultima dúvida:

Há algum comando que atualize o que o personagem está equipado?
Digo, a informação pro jogo.

Tentei usar este comando, mas não funcionou, aparentemente...
$gameActors.actor(1).refresh();
Your drill is the drill that will pierce the Heavens!

05/04/2018 às 08:51 #5 Última edição: 05/04/2018 às 09:11 por Corvo
Não, por isso sugeri desativar e reativar o ABS já que o mesmo também não tem um comando pra isso - que eu saiba. Em todo caso você pode atualizar a tela:
$gameScreen.update();

Bom, achei um jeito de dar uma burlada nessa taxa de atualização do plugin.
O problema era que o evento era encerrado assim que a janela do plugin abria e não quando ela era fechada, então tive que definir uma variável para a arma que está equipada e para a que vai ser equipada...





Acho que faz mais sentido vendo as imagens!

Caso alguém precise (:
Your drill is the drill that will pierce the Heavens!