Aller au contenu
  • 0

"[C++]: Buff de groupe"


Abass

Question

Version des fichiers/ Type d'émulateur : Team Fe 2016 by Saw.


En suivant cette tuto: 


J'ai reussi partie navicat et compilation. mais in-game il buff seulement le groupe.. même sans groupe, il buff personne (sauf moi). x)

mon (char_skill.cpp): 
    

	if (IS_SET(pkSk->dwFlag, SKILL_FLAG_SELFONLY))
		ComputeSkill(dwVnum, this);
	else if (IS_SET(pkSk->dwFlag, SKILL_FLAG_PARTY) && !GetParty())
		ComputeSkill(dwVnum, this);
	else if (IS_SET(pkSk->dwFlag, SKILL_FLAG_PARTY) && GetParty())
	{
		FPartyPIDCollector f;
		GetParty()->ForEachOnMapMember(f, GetMapIndex());
		for (std::vector <DWORD>::iterator it = f.vecPIDs.begin(); it != f.vecPIDs.end(); it++)
		{
			LPCHARACTER ch = CHARACTER_MANAGER::instance().FindByPID(*it);
			ComputeSkill(dwVnum, ch);
		}
	}
	else if (!IS_SET(pkSk->dwFlag, SKILL_FLAG_ATTACK))
		ComputeSkill(dwVnum, pkVictim);
	else if (dwVnum == SKILL_BYEURAK)
		ComputeSkill(dwVnum, pkVictim);
	else if (dwVnum == SKILL_MUYEONG || pkSk->IsChargeSkill())
		ComputeSkill(dwVnum, pkVictim);

	m_dwLastSkillTime = get_dword_time();

	return true;


En postant ma demande d'aide, j'affirme avoir lu et accepté le Règlement de Funky-Emulation.

Modifié par Kameyu
Amélioration de la lisibilité du code (Voir l’historique des modifications)
Lien à poster

3 réponses à cette question

Messages recommandés

  • 0
  • Modérateur

Bonjour,

 

Je présume que tu as la version partagée depuis 2015, dans ce cas c'est un bug assez courant et "Heathcliff™" a trouvé une solution très simple pour corriger ça.

 

Va dans "char_skill.cpp" et cherche cette ligne :

 

GetParty()->ForEachOnMapMember(f, GetMapIndex());

Puis juste après colle cette condition :
 

		if (!pkVictim->GetParty())
			ComputeSkill(dwVnum, pkVictim);

Compile et voilà ! :)

Créateur et développeur de Gurgarath
N'hésitez pas à me contacter pour des informations ou des questions ! [Projet]Gurgarath - Le serveur innovant
Forum : Forum à jour

Lien à poster
  • 0

Merci.. maintenant il buff le groupe et le personnage qui je target (quand je suis dans un groupe).. mais sans groupe il buff personne.. c'est relou x)

 

	if (IS_SET(pkSk->dwFlag, SKILL_FLAG_SELFONLY))
		ComputeSkill(dwVnum, this);
	else if (IS_SET(pkSk->dwFlag, SKILL_FLAG_PARTY) && !GetParty())
		ComputeSkill(dwVnum, this);
	else if (IS_SET(pkSk->dwFlag, SKILL_FLAG_PARTY) && GetParty())
	{
		FPartyPIDCollector f;
		GetParty()->ForEachOnMapMember(f, GetMapIndex());
		if (!pkVictim->GetParty())
			ComputeSkill(dwVnum, pkVictim);
		for (std::vector <DWORD>::iterator it = f.vecPIDs.begin(); it != f.vecPIDs.end(); it++)
		{
			LPCHARACTER ch = CHARACTER_MANAGER::instance().FindByPID(*it);
			ComputeSkill(dwVnum, ch);
		}
	}
	else if (!IS_SET(pkSk->dwFlag, SKILL_FLAG_ATTACK))
		ComputeSkill(dwVnum, pkVictim);
	else if (dwVnum == SKILL_BYEURAK)
		ComputeSkill(dwVnum, pkVictim);
	else if (dwVnum == SKILL_MUYEONG || pkSk->IsChargeSkill())
		ComputeSkill(dwVnum, pkVictim);

	m_dwLastSkillTime = get_dword_time();

	return true;

 

Modifié par Kameyu
Amélioration de la lisibilité du code (Voir l’historique des modifications)
Lien à poster
Invité
Ce sujet ne peut plus recevoir de nouvelles réponses.


×
×
  • Créer...

Information importante

Conditions d’utilisation / Politique de confidentialité / Règles / Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer.