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

Crash core concernant les bonus 6/7


Messages recommandés

  • Développeur

Bonjour à tous !

 

Je viens aujourd'hui vous apporter un correctif concernant les bonus 6/7. C'est un bug très rare car pour que votre serveur crash, il faut que vous ayez les bonus 6/7 et que vous puissiez les activer en jeu mais qu'en plus votre table SQL soit mal remplie.

Pour faire court, le jeu remplit un vecteur contenant tous les bonus de votre table, puis va en selectionner un de manière aléatoire. Or, si ce vecteur est vide, principalement à cause d'une erreur de bonus dans votre table item_attr_rare, le jeu va crash car l'aléatoire sera "number(0, -1)", qui est évidemment incorrect.

Si jamais des gens veulent connaitre l'erreur exacte, la voici :

Citation

number_ex: number(): first argument is bigger than second argument 0 -> -1

Le correctif est très simple, nous devons vérifier la taille du vecteur avant de l'utiliser. Si ce dernier est vide, la fonction s'arrête.

Passons-en au correctif, dans item_attribute.cpp, dans la fonction suivante :

bool CItem::AddRareAttribute()

En dessous de ce bloc de code :

	for (int i = 0; i < MAX_APPLY_NUM; ++i)
	{
		const TItemAttrTable& r = g_map_itemRare[i];

		if (r.dwApplyIndex != 0 && r.bMaxLevelBySet[nAttrSet] > 0 && HasRareAttr(i) != true)
		{
			avail.push_back(i);
		}
	}

Rajoutez la vérification suivante :

	if (avail.empty())
	{
		sys_err("Couldn't add a rare bonus - item_attr_rare has incorrect values!");
		return false;
	}

Et voilà, c'est tout pour ce correctif qui comme je le rappelle est très rare, mais dans ce cas, mieux vaut prévenir que guérir. Le jeu vous enverra directemment un syserr vous indiquant le problème plutôt que de crasher.

 

Modifié par Gurgarath
  • Metin2 Dev 3
  • Love 2
Lien vers le commentaire
Partager sur d’autres sites

  • Réponses 0
  • Créé
  • Dernière réponse

Meilleurs contributeurs dans ce sujet

Jours populaires



  • 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.