From: <lpa...@us...> - 2012-10-03 17:57:53
|
Revision: 8466 http://planeshift.svn.sourceforge.net/planeshift/?rev=8466&view=rev Author: lpancallo Date: 2012-10-03 17:57:47 +0000 (Wed, 03 Oct 2012) Log Message: ----------- Moved CalculateComparativeDifference to 7 levels, and fixed a calculation bug. Modified Paths: -------------- trunk/src/server/npcmanager.cpp trunk/src/server/usermanager.cpp Modified: trunk/src/server/npcmanager.cpp =================================================================== --- trunk/src/server/npcmanager.cpp 2012-10-03 16:44:40 UTC (rev 8465) +++ trunk/src/server/npcmanager.cpp 2012-10-03 17:57:47 UTC (rev 8466) @@ -840,13 +840,11 @@ { "extremely weaker", "much weaker", - "quite weaker", "weaker", "equal", "stronger", "much stronger", - "very powerful", - "extremely powerful" + "extremely stronger" }; if(physical.IsEmpty()) Modified: trunk/src/server/usermanager.cpp =================================================================== --- trunk/src/server/usermanager.cpp 2012-10-03 16:44:40 UTC (rev 8465) +++ trunk/src/server/usermanager.cpp 2012-10-03 17:57:47 UTC (rev 8466) @@ -456,22 +456,28 @@ } // We calculate two 'levels', one physical and one magical. - const int maxLevel = 7; + const int maxLevel = 6; - theirPhysicalLevel = (theirPhysicalStat + theirBestCombat * 2) / 100; + theirPhysicalLevel = ((theirPhysicalStat + theirBestCombat * 2) / 800) * maxLevel; theirPhysicalLevel = (theirPhysicalLevel > maxLevel) ? maxLevel : theirPhysicalLevel; - theirMagicalLevel = (theirMagicalStat + theirBestMagical * 2) / 100; + theirMagicalLevel = ((theirMagicalStat + theirBestMagical * 2) / 800) * maxLevel; theirMagicalLevel = (theirMagicalLevel > maxLevel) ? maxLevel : theirMagicalLevel; - int myPhysicalLevel = (myPhysicalStat + myBestCombat * 2) / 100; + int myPhysicalLevel = ((myPhysicalStat + myBestCombat * 2) / 800) * maxLevel; myPhysicalLevel = (myPhysicalLevel > maxLevel) ? maxLevel : myPhysicalLevel; - int myMagicalLevel = (myMagicalStat + myBestMagical * 2) / 100; + int myMagicalLevel = ((myMagicalStat + myBestMagical * 2) / 800) * maxLevel; myMagicalLevel = (myMagicalLevel > maxLevel) ? maxLevel : myMagicalLevel; // And also a comparative difference for each. - physicalDiff = theirPhysicalLevel - myPhysicalLevel; - magicalDiff = theirMagicalLevel - myMagicalLevel; - overallLevelComparison = int ((float)(2 * maxLevel + physicalDiff + magicalDiff) / 3.5f); + int physicalDiffValue = theirPhysicalLevel - myPhysicalLevel; + int magicalDiffValue = theirMagicalLevel - myMagicalLevel; + // Clamp within the allowed range (0-6) considering difference from the median (3) + physicalDiff = (4+physicalDiffValue)>maxLevel?maxLevel:(3+physicalDiffValue); + physicalDiff = (4+physicalDiffValue)<0?0:(3+physicalDiffValue); + magicalDiff = (4+magicalDiffValue)>maxLevel?maxLevel:(3+magicalDiffValue); + magicalDiff = (4+magicalDiffValue)<0?0:(3+magicalDiffValue); + + overallLevelComparison = int ((float)(2 * maxLevel + physicalDiffValue + magicalDiffValue) / 3.5f); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |