Aller au contenu
Top-Metin2.org - Vous êtes à la recherche d'un serveur Metin 2 ? ×
×
×
  • Créer...
  • 0

Contre sort


thomasx3

Question

Version des fichiers/ Type d'émulateur : Files 2014 By FE

Domaine (Base de données, Client, Core...) : Bonne question

Votre niveau (Débutant, Intermédiaire, Avancé..) : Intermédiaire

 

Bonjour, Bonsoir.

J'ai un petit problème  sur mon serveur et je ne suis pas le seul, je pense que la résolution ferait plaisir à plusieurs personnes !

Le voici en image, ça concerne le skill Contre-sortilège des Suras AM.


142742Screenshot-2.png

 

Merci à tous pour votre aide !

 

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

Modifié par thomasx3

Memento mei.

Lien vers le commentaire
Partager sur d’autres sites

8 réponses à cette question

Messages recommandés

  • 0

C'est la fonction qui supprime tous les "buff" du joueur qui pose problème (RemoveGoodAffect), elle supprime les buff 1 par 1 et envoie les packets 1 par 1, ce qui fait 1 packet par buff supprimé (une vingtaine au total), il faudrait faire en sorte que seul 1 packet soit envoyé

Lien vers le commentaire
Partager sur d’autres sites

  • 0
  • Robot

Salut, 

 

J'ai fait de petit recherche et je suis tomber sur ceci chez metin2dev

Je n'est pas tester le code

 

2. char.h

Révélation

 

Recherche


bool			RemoveAffect(CAffect * pkAff);

Remplace par : 


bool			RemoveAffect(CAffect * pkAff, bool single = true);


 

 

2. char_affect.cpp
 

Révélation


Recherche


bool CHARACTER::RemoveAffect(CAffect * pkAff)

Remplace par : 


bool CHARACTER::RemoveAffect(CAffect * pkAff, bool single)

Recherche : 


	if (AFFECT_REVIVE_INVISIBLE != pkAff->dwType)
		ComputePoints();
	else
		UpdatePacket();

Remplace


	if (single)
		if (AFFECT_REVIVE_INVISIBLE != pkAff->dwType)
			ComputePoints();
		else
			UpdatePacket();

Recherche : 


void CHARACTER::RemoveGoodAffect()
{
	RemoveAffect(AFFECT_MOV_SPEED);
	RemoveAffect(AFFECT_ATT_SPEED);
	RemoveAffect(AFFECT_STR);
	RemoveAffect(AFFECT_DEX);
	RemoveAffect(AFFECT_INT);
	RemoveAffect(AFFECT_CON);
	RemoveAffect(AFFECT_CHINA_FIREWORK);

	RemoveAffect(SKILL_JEONGWI);
	RemoveAffect(SKILL_GEOMKYUNG);
	RemoveAffect(SKILL_CHUNKEON);
	RemoveAffect(SKILL_EUNHYUNG);
	RemoveAffect(SKILL_GYEONGGONG);
	RemoveAffect(SKILL_GWIGEOM);
	RemoveAffect(SKILL_TERROR);
	RemoveAffect(SKILL_JUMAGAP);
	RemoveAffect(SKILL_MANASHILED);
	RemoveAffect(SKILL_HOSIN);
	RemoveAffect(SKILL_REFLECT);
	RemoveAffect(SKILL_KWAESOK);
	RemoveAffect(SKILL_JEUNGRYEOK);
	RemoveAffect(SKILL_GICHEON);
}

Remplace par : 


const std::vector<WORD> GoodAffects =
{
	AFFECT_MOV_SPEED,
	AFFECT_ATT_SPEED,

	AFFECT_STR,
	AFFECT_DEX,
	AFFECT_INT,
	AFFECT_CON,

	AFFECT_CHINA_FIREWORK,
	SKILL_JEONGWI, // 3 (Berserk)
	SKILL_GEOMKYUNG, // 4 (Aura of the Sword)
	SKILL_CHUNKEON, // 19 (Strong Body)
	SKILL_EUNHYUNG, // 34 (Stealth)
	SKILL_GYEONGGONG, // 49 (Feather Walk)
	SKILL_GWIGEOM, // 63 (Enchanted Blade)
	SKILL_TERROR, // 64 (Fear)
	SKILL_JUMAGAP, // 65 (Enchanted Armour)
	SKILL_MANASHILED, // 79 (Dark Protection)
	SKILL_HOSIN, // 94 (Blessing)
	SKILL_REFLECT, // 95 (Reflection)
	SKILL_GICHEON, // 96 (Dragon's Strength)
	SKILL_KWAESOK, // 110 (Swiftness)
	SKILL_JEUNGRYEOK, // 111 (Attack Up)
};

void CHARACTER::RemoveGoodAffect()
{
	for (auto it : GoodAffects)
	{
		const CAffect * pkAff = FindAffect(it);
		if (pkAff)
			RemoveAffect(const_cast<CAffect *>(pkAff), false);
	}

	ComputePoints();
}

Recherche


void CHARACTER::RemoveBadAffect()
{
	sys_log(0, "RemoveBadAffect %s", GetName());
	// µ¶
	RemovePoison();

	RemoveFire();

	// ½ºÅÏ           : Value%·Î »ó´ë¹æÀ» 5ÃÊ°£ ¸Ó¸® À§¿¡ º°ÀÌ µ¹¾Æ°£´Ù. (¶§¸®¸é 1/2 È®·ü·Î Ç®¸²)               AFF_STUN
	RemoveAffect(AFFECT_STUN);

	// ½½·Î¿ì         : Value%·Î »ó´ë¹æÀÇ °ø¼Ó/ÀÌ¼Ó ¸ðµÎ ´À·ÁÁø´Ù. ¼ö·Ãµµ¿¡ µû¶ó ´Þ¶óÁü ±â¼ú·Î »ç¿ë ÇÑ °æ¿ì¿¡   AFF_SLOW
	RemoveAffect(AFFECT_SLOW);

	// Åõ¼Ó¸¶·É
	RemoveAffect(SKILL_TUSOK);

	// ÀúÁÖ
	//RemoveAffect(SKILL_CURSE);

	// ÆĹý¼ú
	//RemoveAffect(SKILL_PABUP);

	// ±âÀý           : Value%·Î »ó´ë¹æÀ» ±âÀý½ÃŲ´Ù. 2ÃÊ                                                       AFF_FAINT
	//RemoveAffect(AFFECT_FAINT);

	// ´Ù¸®¹­ÀÓ       : Value%·Î »ó´ë¹æÀÇ À̵¿¼Óµµ¸¦ ¶³¾îÆ®¸°´Ù. 5ÃÊ°£ -40                                      AFF_WEB
	//RemoveAffect(AFFECT_WEB);

	// Àáµé±â         : Value%·Î »ó´ë¹æÀ» 10ÃÊ°£ ÀáÀç¿î´Ù. (¶§¸®¸é Ç®¸²)                                        AFF_SLEEP
	//RemoveAffect(AFFECT_SLEEP);

	// ÀúÁÖ           : Value%·Î »ó´ë¹æÀÇ °øµî/¹æµî ¸ðµÎ ¶³¾îÆ®¸°´Ù. ¼ö·Ãµµ¿¡ µû¶ó ´Þ¶óÁü ±â¼ú·Î »ç¿ë ÇÑ °æ¿ì¿¡ AFF_CURSE
	//RemoveAffect(AFFECT_CURSE);

	// ¸¶ºñ           : Value%·Î »ó´ë¹æÀ» 4ÃÊ°£ ¸¶ºñ½ÃŲ´Ù.                                                     AFF_PARA
	//RemoveAffect(AFFECT_PARALYZE);

	// ºÎµ¿¹ÚºÎ       : ¹«´ç ±â¼ú
	//RemoveAffect(SKILL_BUDONG);
}

Remplace par : 


const std::vector<WORD> BadAffects =
{
	AFFECT_FIRE,
	AFFECT_POISON,

	AFFECT_STUN,
	AFFECT_SLOW,

	SKILL_TUSOK,
};

void CHARACTER::RemoveBadAffect()
{
	for (auto it : BadAffects)
	{
		const CAffect * pkAff = FindAffect(it);
		if (pkAff)
		{
			RemoveAffect(const_cast<CAffect *>(pkAff), false);

			switch (it)
			{
				case AFFECT_FIRE:
					event_cancel(&m_pkFireEvent);
					break;
				case AFFECT_POISON:
					event_cancel(&m_pkPoisonEvent);
					break;
			}
		}
	}

	UpdatePacket();
}

 

 

 

 

Après

Avant giphy-downsized-large.gifgiphy.gif

Modifié par Funky Emulation
Core X - External 2 Internal
  • Love 1

french_banner.gif

Lien vers le commentaire
Partager sur d’autres sites

Créer un compte ou se connecter pour commenter

Vous devez être membre afin de pouvoir déposer un commentaire

Créer un compte

Créez un compte sur notre communauté. C’est facile !

Créer un nouveau compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant


  • brilliantdiscord_widget
  • Flux d'Activité

    1. 21

      Metin2 en 2020 peut-on en parler?

    2. 0

      METIN2Project

    3. 3

      Ressources - UnPack - Metin2 Client - Officiel

    4. 0

      Barre des tâches d'argent étendue

    5. 16

      Redémarrage automatique des channels

    6. 16

      Multi Logo GM / SGM / GA

  • En ligne récemment

    • Aucun utilisateur enregistré regarde cette page.

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.