PDA

View Full Version : |Source| Adicione novos combos no MuEmu (1.05D) ou versões



Mentor
03/02/2018, 03:21 PM
Olá pessoal, venho compartilhar na PZ uma maneira de ter um combo em qualquer personagem neste caso, eu farei isso com um MG, isso é fornecido em Files Season 6. Essa custom foi compartilhada pelo fedrock, então os créditos são dele.


Em GS ComboSkill.cpp buscar por:

int CComboSkill::GetSkillType(WORD skill) // OK

Então vai aparecer algo assim:

int CComboSkill::GetSkillType(WORD skill) // OK
{
if(skill == SKILL_FALLING_SLASH || skill == SKILL_LUNGE || skill == SKILL_UPPERCUT || skill == SKILL_CYCLONE || skill == SKILL_SLASH)
{
return 0;
}
else if(skill == SKILL_TWISTING_SLASH || skill == SKILL_RAGEFUL_BLOW || skill == SKILL_DEATH_STAB || skill == SKILL_FROZEN_STAB || skill == SKILL_BLOOD_STORM)
{
return 1;
}
else
{
return -1;
}
}

Uma vez que a linha é encontrada, nós nos concentramos no if e no outro, quais são estes dois:

if(skill == SKILL_FALLING_SLASH || skill == SKILL_LUNGE || skill == SKILL_UPPERCUT || skill == SKILL_CYCLONE || skill == SKILL_SLASH) // E adicione a Skill que desejamos aqui. Por exemplo, adicionei isso: SKILL_FIRE_SLASH, mas você deve ter em mente que aqui está a Skill que é inserida no primeiro osso com o qual colamos primeiro
{
return 0;
}
else if(skill == SKILL_TWISTING_SLASH || skill == SKILL_RAGEFUL_BLOW || skill == SKILL_DEATH_STAB || skill == SKILL_FROZEN_STAB || skill == SKILL_BLOOD_STORM)// Então, aqui, entramos na segunda e terceira habilidade e, neste caso, eu apenas entrei um que seria o seguinte: SKILL_LIGHTNING
{
return 1;
}

E isso parece:

int CComboSkill::GetSkillType(WORD skill) // OK
{
if(skill == SKILL_FALLING_SLASH || skill == SKILL_LUNGE || skill == SKILL_UPPERCUT || skill == SKILL_CYCLONE || skill == SKILL_SLASH || skill == SKILL_FIRE_SLASH )
{
return 0;
}
else if(skill == SKILL_TWISTING_SLASH || skill == SKILL_RAGEFUL_BLOW || skill == SKILL_DEATH_STAB || skill == SKILL_FROZEN_STAB || skill == SKILL_BLOOD_STORM || skill == SKILL_LIGHTNING)
{
return 1;
}
else
{
return -1;
}
}

Todas as Skill que você deseja colocar são encontradas no SkillManager.h.
O combo funciona da seguinte forma 1) FireFlash 2) Lighting 3) TwistingSlash
A Skill Twisting Slash não precisa ser adicionada porque já está na linha como habilidade == SKILL_TWISTING_SLASH
Aqui está uma imagem do combo:

[Only registered and activated users can see links]

Atenção! Informações importante passada pelo louis para que o tutorial funcione 100%:
Não tem como colocar tudo que o falta, mas você tem que editar todas as skills (de ataque) no SkillManager.cpp, quando digo todos é todas que você queira que funcione o combo, no caso a skill 3(ultima skill que ativa o combo), eu adicionei em todas skills do servidor para isso um exemplo:


bool CSkillManager::SkillDecay(int aIndex,int bIndex,CSkill* lpSkill,BYTE x,BYTE y,bool combo) // OK
{
LPOBJ lpObj = &gObj[aIndex];

if(this->CheckSkillRange(lpSkill->m_index,lpObj->X,lpObj->Y,x,y) == 0)
{
return 0;
}

int count = 0;

for(int n=0;n < MAX_VIEWPORT;n++)
{
if(lpObj->VpPlayer2[n].state == VIEWPORT_NONE)
{
continue;
}

int index = lpObj->VpPlayer2[n].index;

if(this->CheckSkillTarget(lpObj,index,bIndex,lpObj->VpPlayer2[n].type) == 0)
{
continue;
}

if(this->CheckSkillRadio(lpSkill->m_index,x,y,gObj[index].X,gObj[index].Y) == 0)
{
continue;
}

gAttack.Attack(lpObj,&gObj[index],lpSkill,0,0,0,0,0);

if(combo != 0)
{
this->GCSkillAttackSend(lpObj,SKILL_COMBO,index,1);
}

if(CHECK_SKILL_ATTACK_COUNT(count) == 0)
{
break;
}
}

return 1;
}
o que está em vermelho não existia.

Além disso você deve modificar todos o .h referente as funções e a função RunningSkill.

Basta copiar o exemplo da skill do combo do bk.

abraço



Créditos:
fedrock
louis

louis
03/02/2018, 11:02 PM
Não é por nada, mais não é só isso ^^

lkt22
04/02/2018, 03:18 AM
Bem interessante, Mentor !


Não é por nada, mais não é só isso ^^
Complete o que falta, louis ^^

louis
04/02/2018, 10:04 AM
Não tem como colocar tudo que o falta, mas você tem que editar todas as skills (de ataque) no SkillManager.cpp, quando digo todos é todas que você queira que funcione o combo, no caso a skill 3(ultima skill que ativa o combo), eu adicionei em todas skills do servidor para isso um exemplo:


bool CSkillManager::SkillDecay(int aIndex,int bIndex,CSkill* lpSkill,BYTE x,BYTE y,bool combo) // OK
{
LPOBJ lpObj = &gObj[aIndex];

if(this->CheckSkillRange(lpSkill->m_index,lpObj->X,lpObj->Y,x,y) == 0)
{
return 0;
}

int count = 0;

for(int n=0;n < MAX_VIEWPORT;n++)
{
if(lpObj->VpPlayer2[n].state == VIEWPORT_NONE)
{
continue;
}

int index = lpObj->VpPlayer2[n].index;

if(this->CheckSkillTarget(lpObj,index,bIndex,lpObj->VpPlayer2[n].type) == 0)
{
continue;
}

if(this->CheckSkillRadio(lpSkill->m_index,x,y,gObj[index].X,gObj[index].Y) == 0)
{
continue;
}

gAttack.Attack(lpObj,&gObj[index],lpSkill,0,0,0,0,0);

if(combo != 0)
{
this->GCSkillAttackSend(lpObj,SKILL_COMBO,index,1);
}

if(CHECK_SKILL_ATTACK_COUNT(count) == 0)
{
break;
}
}

return 1;
}

o que está em vermelho não existia.

Além disso você deve modificar todos o .h referente as funções e a função RunningSkill.

Basta copiar o exemplo da skill do combo do bk.

abraço

Mentor
04/02/2018, 12:04 PM
Obrigado louis, eu achei esse conteúdo mais ainda não tinha feito modificação na minha para realizar os testes. Estarei adicionando os créditos a você também por essa informação ;)

Abraço!