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

Bonus 100% de liaison


Link

Question

Bonjour à tous,

 

En écrivant ce post je souhaiterais savoir comment faire pour ajouter les bonus 1/5 et l'orbe de bénédiction a 100% sans que sa échoue? comme pour les 6/7 et les pierres

 

Merci d'avance

Lien vers le commentaire
Partager sur d’autres sites

3 réponses à cette question

Messages recommandés

  • 0

char_item.cpp

 

case USE_ADD_ATTRIBUTE :

 

Tu as en dessous:

if (number(1, 100) <= aiItemAttributeAddPercent[item2->GetAttributeCount()]

Tu édites par:

if (number(1, 100) <= g_iAddBonusChance) // Si tu veux relier ça aux config mais ça implique d'autre modification. 
if (number(1, 100) <= 100) // Si tu veux modifier ça en brute. 

 

Pour les orbes,

 

case USE_ADD_ATTRIBUTE2 :

 

Pareil, en dessous:

if (number(1, 100) <= aiItemAttributeAddPercent[item2->GetAttributeCount()])

Tu édites par:

if (number(1, 100) <= g_iAddBonusChance5) // Si tu veux relier ça aux config mais ça implique d'autre modification. 
if (number(1, 100) <= 100) // Si tu veux modifier ça en brute. 

 

  • Love 1
Lien vers le commentaire
Partager sur d’autres sites

  • 0
  • Retraité

Si tu veux modifier ça en brut, autant supprimer la condition.

Dans la condition que tu as donné, elle sera toujours vraie. Donc pourquoi exécuter la fonction number() quand même ? Niveau optimisation, c'est pas génial.

 

Par exemple, si je prends l'exemple avec cette partie du code (pour les orbes) :

 

if (item2->GetAttributeCount() == 4) {
	char buf[21];
	snprintf(buf, sizeof(buf), "%u", item2->GetID());

	if (number(1, 100) <= aiItemAttributeAddPercent[item2->GetAttributeCount()])
	{
		item2->AddAttribute();
		ChatPacket(CHAT_TYPE_INFO, LC_TEXT("�Ӽ� �߰��� �����Ͽ����ϴ�."));

		int iAddedIdx = item2->GetAttributeCount() - 1;
		LogManager::instance().ItemLog(
		GetPlayerID(),
			item2->GetAttributeType(iAddedIdx),
			item2->GetAttributeValue(iAddedIdx),
			item->GetID(),
			"ADD_ATTRIBUTE2_SUCCESS",
			buf,
			GetDesc()->GetHostName(),
			item->GetOriginalVnum());
	} else {
		ChatPacket(CHAT_TYPE_INFO, LC_TEXT("�Ӽ� �߰��� �����Ͽ����ϴ�."));
		LogManager::instance().ItemLog(this, item, "ADD_ATTRIBUTE2_FAIL", buf);
	}

	item->SetCount(item->GetCount() - 1);
}

 

Pour une liaison à 100%, j'écrirais plutôt :

 

if (item2->GetAttributeCount() == 4) {
	char buf[21];
	snprintf(buf, sizeof(buf), "%u", item2->GetID());

	item2->AddAttribute();
	ChatPacket(CHAT_TYPE_INFO, LC_TEXT("�Ӽ� �߰��� �����Ͽ����ϴ�."));

	int iAddedIdx = item2->GetAttributeCount() - 1;
	LogManager::instance().ItemLog(
		GetPlayerID(),
		item2->GetAttributeType(iAddedIdx),
		item2->GetAttributeValue(iAddedIdx),
		item->GetID(),
		"ADD_ATTRIBUTE2_SUCCESS",
		buf,
		GetDesc()->GetHostName(),
		item->GetOriginalVnum());
  
	item->SetCount(item->GetCount() - 1);
}

 

Non seulement le code est beaucoup plus léger et plus propre, et en plus de ça, c'est beaucoup plus optimisé car la machine n'exécute pas des fonctions inutiles.

  • Love 1
Lien vers le commentaire
Partager sur d’autres sites

Invité
Ce sujet ne peut plus recevoir de nouvelles réponses.


  • brilliantdiscord_widget
  • Flux d'Activité

    1. 37
    2. 21

      Metin2 en 2020 peut-on en parler?

    3. 0

      METIN2Project

    4. 3

      Ressources - UnPack - Metin2 Client - Officiel

    5. 0

      Barre des tâches d'argent étendue

    6. 16

      Redémarrage automatique des channels

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