Jump to content
  • 0
Sign in to follow this  
Link

en cours Bonus 100% de liaison

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

Share this post


Link to post

3 answers to this question

Recommended Posts

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

 

  • Like 1

Share this post


Link to post
  • 0

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.

  • Like 1

Share this post


Link to post
  • 0
Sans réponse - Le sujet étant sans réponse ou non résolu, il se voit verrouillé et déplacé dans le forum : Résolu ou sans réponse...

Share this post


Link to post
Guest
This topic is now closed to further replies.
Sign in to follow this  
  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...

Important Information

Terms of Use / Privacy Policy / Guidelines / We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.