Aller au contenu

Nouveau membre ?! Pense à te présenter pour accéder au contenu du forum !

New member ?! Introduce yourself to get access to the forum !

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

Partager ce message


Lien à poster
Partager sur d’autres sites

8 réponses à cette question

Messages recommandés

  • 0

Un tel bug existe ? Je n’arrive pas à l’imaginer 🤔

Partager ce message


Lien à poster
Partager sur d’autres sites
  • 0

Plusieurs joueurs m'en on parlé et m'on dit que mon serveur n'etais pas le seul a l'avoir....

Partager ce message


Lien à poster
Partager sur d’autres sites
  • 0

Peux-tu demander à tes joueurs de filmer ça ?

Partager ce message


Lien à poster
Partager sur d’autres sites
  • 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é

Partager ce message


Lien à poster
Partager sur d’autres sites
  • 0

Merci a tous pous vos réponses !

Mais comment faire sa Antok ?

@_Sufhal Je vais demandez aux joueur de filmer ça !

Partager ce message


Lien à poster
Partager sur d’autres sites
  • 0

En gros pour régler le problème il faut modifier les sources du game et du client

Partager ce message


Lien à poster
Partager sur d’autres sites
  • 0

Salut, le bug est assez connu et la résolution est sur quasiment touts les forums étranger

Partager ce message


Lien à poster
Partager sur d’autres sites
  • 0

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

Partager ce message


Lien à poster
Partager sur d’autres sites

×

Information importante

By using this site, you agree to our Conditions d’utilisation.