From: <ral...@us...> - 2014-04-23 21:30:14
|
Revision: 9472 http://sourceforge.net/p/planeshift/code/9472 Author: ralphcampbell Date: 2014-04-23 21:30:11 +0000 (Wed, 23 Apr 2014) Log Message: ----------- Compute lockpicking experience and practice for both success and failure. Modified Paths: -------------- trunk/src/server/bulkobjects/pscharacter.cpp trunk/src/server/database/mysql/item_instances.sql trunk/src/server/workmanager.cpp Modified: trunk/src/server/bulkobjects/pscharacter.cpp =================================================================== --- trunk/src/server/bulkobjects/pscharacter.cpp 2014-04-23 19:36:53 UTC (rev 9471) +++ trunk/src/server/bulkobjects/pscharacter.cpp 2014-04-23 21:30:11 UTC (rev 9472) @@ -1274,7 +1274,7 @@ unsigned int psCharacter::CalculateAddExperience(PSSKILL skill, unsigned int practicePoints, float modifier) { - if(practicePoints > 0) + if(skill != PSSKILL_NONE && practicePoints > 0) { MathEnvironment env; env.Define("ZCost", skills.Get(skill).zCost); Modified: trunk/src/server/database/mysql/item_instances.sql =================================================================== --- trunk/src/server/database/mysql/item_instances.sql 2014-04-23 19:36:53 UTC (rev 9471) +++ trunk/src/server/database/mysql/item_instances.sql 2014-04-23 21:30:11 UTC (rev 9472) @@ -172,9 +172,9 @@ INSERT INTO `item_instances` VALUES (116,0,0,0,0,1,0,0,0,3,-55.34,-4,-157.58,0,4.15,0,0,50,50,4811,0,'NOPICKUP',0,-1,'','','',NULL,'0',0,0,0); INSERT INTO `item_instances` VALUES (117,0,0,0,0,34,0,0,0,3,-16.6,-0.01,-171.9,0,0,0,0,50,50,91,0,'',0,-1,'','','',NULL,'0',0,0,0); INSERT INTO `item_instances` VALUES (118,0,0,0,0,1,0,0,0,3,-38.51,0,-160.54,0,8.03,0,0,50,99,419,0,'',0,-1,'','','',NULL,'0',0,0,0); -INSERT INTO `item_instances` VALUES (119,0,0,0,0,1,0,0,0,3,-16,0.12,-138.5,0,0,0,0,50,50,412,0,'LOCKED,LOCKABLE',0,-1,'','','',NULL,'0',0,0,0); +INSERT INTO `item_instances` VALUES (119,0,0,0,0,1,0,0,0,3,-16,0.12,-138.5,0,0,0,0,50,50,412,0,'LOCKED,LOCKABLE',0,22,'','','',NULL,'0',0,0,0); INSERT INTO `item_instances` VALUES (120,0,0,0,0,1,0,0,0,3,-15,0.12,-138.5,0,0,0,0,50,50,413,0,'KEY',0,-1,'119','','',NULL,'0',0,0,0); -INSERT INTO `item_instances` VALUES (121,0,0,0,0,1,0,0,0,3,-16,0.12,-136.5,0,0,0,0,50,50,412,0,'LOCKED,LOCKABLE',0,-1,'','','',NULL,'0',0,0,0); +INSERT INTO `item_instances` VALUES (121,0,0,0,0,1,0,0,0,3,-16,0.12,-136.5,0,0,0,0,50,50,412,0,'LOCKED,LOCKABLE',0,22,'','','',NULL,'0',0,0,0); INSERT INTO `item_instances` VALUES (128,0,0,0,0,1,0,0,0,3,-3.72,0.37,-183.03,0,90,0,0,50,50,138,0,'NOPICKUP',0,-1,'','','',NULL,'0',0,0,0); INSERT INTO `item_instances` VALUES (166,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,50,50,3,0,'',0,-1,'','','',NULL,'0',0,0,0); INSERT INTO `item_instances` VALUES (171,0,0,0,0,17,0,0,0,3,-16.6,-0.01,-171.9,0,0,0,0,50,50,91,0,'',0,-1,'','','',NULL,'0',0,0,0); Modified: trunk/src/server/workmanager.cpp =================================================================== --- trunk/src/server/workmanager.cpp 2014-04-23 19:36:53 UTC (rev 9471) +++ trunk/src/server/workmanager.cpp 2014-04-23 21:30:11 UTC (rev 9472) @@ -4153,31 +4153,30 @@ workEvent->object->SetIsLocked(!locked); workEvent->object->Save(false); - // Calculate practice points. - - int practicePoints; - float modifier; - { - MathEnvironment env; - env.Define("Object", workEvent->object); - env.Define("Worker", workEvent->client->GetCharacterData()); - env.Define("RequiredSkill", skill); - env.Define("PlayerSkill", rank); - env.Define("LockStrength", workEvent->object->GetLockStrength()); - - calc_lockpicking_exp->Evaluate(&env); - practicePoints = env.Lookup("ResultPractice")->GetRoundValue(); - modifier = env.Lookup("ResultModifier")->GetValue(); - } - - // Assign points and exp. - workEvent->client->GetCharacterData()->CalculateAddExperience(skill, practicePoints, modifier); } else { // Send denied message psserver->SendSystemInfo(workEvent->client->GetClientNum(),"You failed your lockpicking attempt."); } + + // Calculate practice points. + if(skill != PSSKILL_NONE) { + MathEnvironment env; + env.Define("Object", workEvent->object); + env.Define("Worker", character); + env.Define("RequiredSkill", skill); + env.Define("PlayerSkill", rank); + env.Define("LockStrength", workEvent->object->GetLockStrength()); + + calc_lockpicking_exp->Evaluate(&env); + int practicePoints = env.Lookup("ResultPractice")->GetRoundValue(); + float modifier = env.Lookup("ResultModifier")->GetValue(); + + // Assign points and exp. + printf("Practice %d\n", practicePoints); // XXX + character->CalculateAddExperience(skill, practicePoints, modifier); + } } workEvent->client->GetActor()->SetMode(PSCHARACTER_MODE_PEACE); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |