From: <are...@us...> - 2009-09-11 03:33:15
|
Revision: 4346 http://planeshift.svn.sourceforge.net/planeshift/?rev=4346&view=rev Author: aresilek Date: 2009-09-11 03:33:07 +0000 (Fri, 11 Sep 2009) Log Message: ----------- - Fixed PS#2378 - setskill -1 does not return boosts Modified Paths: -------------- trunk/src/server/adminmanager.cpp Modified: trunk/src/server/adminmanager.cpp =================================================================== --- trunk/src/server/adminmanager.cpp 2009-09-10 23:37:46 UTC (rev 4345) +++ trunk/src/server/adminmanager.cpp 2009-09-11 03:33:07 UTC (rev 4346) @@ -6554,7 +6554,24 @@ if(data.value == -1) { - psserver->SendSystemInfo(me->clientnum, "Current '%s' of '%s' is %u", skill->name.GetDataSafe(), target->GetName(), old_value); + PSITEMSTATS_STAT stat = skillToStat(skill->id); + if (stat != PSITEMSTATS_STAT_NONE) + { + //Handle stats differently to pickup buffs/debuffs + int base = pchar->Stats()[stat].Base(); + int current = pchar->Stats()[stat].Current(); + if (base == current) + psserver->SendSystemInfo(me->clientnum, "Current '%s' of '%s' is %u", skill->name.GetDataSafe(), target->GetName(), base); + else + psserver->SendSystemInfo(me->clientnum, "Current '%s' of '%s' is %u (%u)", skill->name.GetDataSafe(), target->GetName(), base, current); + } else { + int base = pchar->Skills().GetSkillRank(skill->id).Base(); + int current = pchar->Skills().GetSkillRank(skill->id).Current(); + if (base == current) + psserver->SendSystemInfo(me->clientnum, "Current '%s' of '%s' is %u", skill->name.GetDataSafe(), target->GetName(), base); + else + psserver->SendSystemInfo(me->clientnum, "Current '%s' of '%s' is %u (%u)", skill->name.GetDataSafe(), target->GetName(), base, current); + } } else { @@ -6584,7 +6601,24 @@ unsigned int old_value = pchar->Skills().GetSkillRank(skill->id).Current(); if (data.value == -1) { - psserver->SendSystemInfo(me->clientnum, "Current '%s' of '%s' is %u",skill->name.GetDataSafe(), target->GetName(), old_value); + PSITEMSTATS_STAT stat = skillToStat(skill->id); + if (stat != PSITEMSTATS_STAT_NONE) + { + //Handle stats differently to pickup buffs/debuffs + int base = pchar->Stats()[stat].Base(); + int current = pchar->Stats()[stat].Current(); + if (base == current) + psserver->SendSystemInfo(me->clientnum, "Current '%s' of '%s' is %u", skill->name.GetDataSafe(), target->GetName(), base); + else + psserver->SendSystemInfo(me->clientnum, "Current '%s' of '%s' is %u (%u)", skill->name.GetDataSafe(), target->GetName(), base, current); + } else { + int base = pchar->Skills().GetSkillRank(skill->id).Base(); + int current = pchar->Skills().GetSkillRank(skill->id).Current(); + if (base == current) + psserver->SendSystemInfo(me->clientnum, "Current '%s' of '%s' is %u", skill->name.GetDataSafe(), target->GetName(), base); + else + psserver->SendSystemInfo(me->clientnum, "Current '%s' of '%s' is %u (%u)", skill->name.GetDataSafe(), target->GetName(), base, current); + } return; } else if (skill->category == PSSKILLS_CATEGORY_STATS && (value < 0 || value > MAX_STAT)) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |