🤔 Para Refletir :
"Apresente seu projeto com um post bonito. Isso atrai olhares, acredite."
- Delayzado

Id Char ao usar Skill(Resolvido)

rorido

Novato
Membro
Membro
Juntou-se
25 de Abril de 2020
Postagens
6
Bravecoins
0
Bom dia,

Gostaria de saber se existe algum comando/script que retorna o id do char e da skill ao usar qualquer skill, tanto em batalha quanto fora?

Estou tentando fazer um sistema que o personagem ganha pontos ao usar habilidade, similar ao de final fantasy II.
 
Pra fazer isso no menu, dê uma olhada na declaração da Scene_ItemBase.useItem (que é chamada pelo menu de skill)
Código:
Scene_ItemBase.prototype.useItem = function() {
    this.playSeForItem();
    this.user().useItem(this.item());
    this.applyItem();
    this.checkCommonEvent();
    this.checkGameover();
    this._actorWindow.refresh();
};
Você pode sobreescrever essa função e acessar os IDs do actor e do item através do this.user().actorId() e do this.item().itemId() respectivamente.

Seria bom você fazer um check, no caso da skill, usando a this.item().isSkill() pra ter certeza que ele ta usando uma skill mesmo e não um item ativável.
 
Vlw muito obrigado, consegui aqui fazer tanto no menu quanto na batalha, vou deixar aqui as mudanças que fiz para funcionar, não consegui utilizar o this.item().isSkill() porem consegui fazer a verificação de outra forma. Muito  obrigado mesmo.

Código:
//-----------------------------------------------------------------------------
// Scene_Battle
//
Scene_Battle.prototype.startActorCommandSelection = function() {
    this._statusWindow.select(BattleManager.actor().index());

    //Recebe o id do actor e envia para a variavel de ambiente #84
    var B_idActor = BattleManager.actor().actorId();
    $gameVariables.setValue(84,B_idActor);

    this._partyCommandWindow.close();
    this._actorCommandWindow.setup(BattleManager.actor());
};

Scene_Battle.prototype.onSkillOk = function() {
    var skill = this._skillWindow.item();
    var action = BattleManager.inputtingAction();

    //Recebe o id da Skill e envia para a variavel #86
   var B_idSkill = skill.id;
   $gameVariables.setValue(86,B_idSkill);

    action.setSkill(skill.id);
    BattleManager.actor().setLastBattleSkill(skill);
    this.onSelectAction();
};

Scene_Battle.prototype.onItemOk = function() {
    var item = this._itemWindow.item();

    //Recebe o id do Item e envia para a variavel #86
   var B_idItem = item.id;
   $gameVariables.setValue(85,B_idItem);

    var action = BattleManager.inputtingAction();
    action.setItem(item.id);
    $gameParty.setLastItem(item);
    this.onSelectAction();
};

//-----------------------------------------------------------------------------
// Scene_ItemBase
//
// Pegar IDs do Actor/Item/Skill
Scene_ItemBase.prototype.useItem = function() {
    this.playSeForItem();
    this.user().useItem(this.item());

//Cria as variaveis e a variavel do actor já recebe o id do actor que usa a habilidade/item(Primeiro da formação)
	var M_idActor = this.user().actorId();
	var M_idItem = 0;
	var M_idSkill = 0;
//Verifica se é uma habilidade ou item sendo usado(caso verdade é skill e falso é item)
	if(DataManager.isSkill(this.item())){
		M_idSkill = this.item().id;
	}else{
		M_idItem = this.item().id;
	}
//Envia os ids para as variaveis dos numeros 81 82 e 83
	$gameVariables.setValue(81,M_idActor);
	$gameVariables.setValue(82,M_idItem);
	$gameVariables.setValue(83,M_idSkill);

    this.applyItem();
    this.checkCommonEvent();
    this.checkGameover();
    this._actorWindow.refresh();
};
 
Voltar
Topo Inferior