Aller au contenu
  • 0

Bonus 100% de liaison


Link

Question

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. 

 

  • J'adore 1

 

 

Lien vers le commentaire
  • 0
  • Administrateur

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.

  • J'adore 1
Lien vers le commentaire
Invité
Ce sujet ne peut plus recevoir de nouvelles réponses.


×
×
  • Créer...

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.