From: <wel...@us...> - 2009-01-10 23:10:53
|
Revision: 2855 http://planeshift.svn.sourceforge.net/planeshift/?rev=2855&view=rev Author: weltall2 Date: 2009-01-10 23:10:50 +0000 (Sat, 10 Jan 2009) Log Message: ----------- made the error message of 'you don't know what will happen...' a bit more visible Modified Paths: -------------- trunk/src/server/workmanager.cpp Modified: trunk/src/server/workmanager.cpp =================================================================== --- trunk/src/server/workmanager.cpp 2009-01-10 08:00:53 UTC (rev 2854) +++ trunk/src/server/workmanager.cpp 2009-01-10 23:10:50 UTC (rev 2855) @@ -1452,7 +1452,7 @@ // Set up event for auto transformation StartTransformationEvent( TRANSFORMTYPE_AUTO_CONTAINER, PSCHARACTER_SLOT_NONE, count, autoItem->GetItemQuality(), autoItem); - psserver->SendSystemOK(clientNum,"You are not sure what is going to happen to %d %s.", autoItem->GetStackCount(), autoItem->GetName()); + psserver->SendSystemError(clientNum,"You are not sure what is going to happen to %d %s.", autoItem->GetStackCount(), autoItem->GetName()); return; } default: @@ -1745,7 +1745,7 @@ // Set up event for auto transformation StartTransformationEvent( TRANSFORMTYPE_TARGET, PSCHARACTER_SLOT_NONE, itemCount, gemItm->GetItem()->GetItemQuality(), gemItm->GetItem()); - psserver->SendSystemOK(clientNum,"You are not sure what is going to happen to %d %s.", gemItm->GetItem()->GetStackCount(), gemItm->GetItem()->GetName()); + psserver->SendSystemError(clientNum,"You are not sure what is going to happen to %d %s.", gemItm->GetItem()->GetStackCount(), gemItm->GetItem()->GetName()); return true; } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wel...@us...> - 2009-01-11 06:29:03
|
Revision: 2859 http://planeshift.svn.sourceforge.net/planeshift/?rev=2859&view=rev Author: weltall2 Date: 2009-01-11 06:28:57 +0000 (Sun, 11 Jan 2009) Log Message: ----------- added some code in order to force gdb to dump some useful data Modified Paths: -------------- trunk/src/server/workmanager.cpp Modified: trunk/src/server/workmanager.cpp =================================================================== --- trunk/src/server/workmanager.cpp 2009-01-11 00:48:40 UTC (rev 2858) +++ trunk/src/server/workmanager.cpp 2009-01-11 06:28:57 UTC (rev 2859) @@ -2400,6 +2400,8 @@ // Check for any targeted item or container in hand bool psWorkManager::ValidateTarget(Client* client) { + char dbgdata[1000000]; //this is here in oder to keep some data which could be dumped by gdb + char tmp[1000]; //please remove this and the associated code from here when the crash is understood // Check if player has something targeted gemObject* target = client->GetTargetObject(); @@ -2409,6 +2411,7 @@ // check if the actionlocation is linked to real item InstanceID InstanceID = action->GetInstanceID(); + sprintf(tmp, "instanceid => %u --- ", InstanceID); if (InstanceID==INSTANCE_ALL) { InstanceID = action->GetGemObject()->GetEID().Unbox(); // FIXME: Understand & comment on ID magic here. @@ -2416,6 +2419,8 @@ target = GEMSupervisor::GetSingleton().FindItemEntity( InstanceID ); } + sprintf(dbgdata, "%s instanceid now %s -- client-> AID %u PID %u zombie? %d",InstanceID, client->GetAccountID(), client->GetPID(), client->IsZombie()); + if (target) { // Make sure it's not character This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wel...@us...> - 2009-01-11 06:41:00
|
Revision: 2861 http://planeshift.svn.sourceforge.net/planeshift/?rev=2861&view=rev Author: weltall2 Date: 2009-01-11 06:40:56 +0000 (Sun, 11 Jan 2009) Log Message: ----------- reverted 2859 better this way Modified Paths: -------------- trunk/src/server/workmanager.cpp Modified: trunk/src/server/workmanager.cpp =================================================================== --- trunk/src/server/workmanager.cpp 2009-01-11 06:36:02 UTC (rev 2860) +++ trunk/src/server/workmanager.cpp 2009-01-11 06:40:56 UTC (rev 2861) @@ -2400,8 +2400,6 @@ // Check for any targeted item or container in hand bool psWorkManager::ValidateTarget(Client* client) { - char dbgdata[1000000]; //this is here in oder to keep some data which could be dumped by gdb - char tmp[1000]; //please remove this and the associated code from here when the crash is understood // Check if player has something targeted gemObject* target = client->GetTargetObject(); @@ -2411,7 +2409,6 @@ // check if the actionlocation is linked to real item InstanceID InstanceID = action->GetInstanceID(); - sprintf(tmp, "instanceid => %u --- ", InstanceID); if (InstanceID==INSTANCE_ALL) { InstanceID = action->GetGemObject()->GetEID().Unbox(); // FIXME: Understand & comment on ID magic here. @@ -2419,8 +2416,6 @@ target = GEMSupervisor::GetSingleton().FindItemEntity( InstanceID ); } - sprintf(dbgdata, "%s instanceid now %s -- client-> AID %u PID %u zombie? %d",InstanceID, client->GetAccountID(), client->GetPID(), client->IsZombie()); - if (target) { // Make sure it's not character This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wel...@us...> - 2009-01-24 17:55:19
|
Revision: 2947 http://planeshift.svn.sourceforge.net/planeshift/?rev=2947&view=rev Author: weltall2 Date: 2009-01-24 17:55:13 +0000 (Sat, 24 Jan 2009) Log Message: ----------- Fixing PS#1753 - Unexpected (wrong) system message while mining by going directly to the source for the clietnum variable like agreed with TomT (just like suggested by HikerHauk) Modified Paths: -------------- trunk/src/server/workmanager.cpp Modified: trunk/src/server/workmanager.cpp =================================================================== --- trunk/src/server/workmanager.cpp 2009-01-24 07:03:52 UTC (rev 2946) +++ trunk/src/server/workmanager.cpp 2009-01-24 17:55:13 UTC (rev 2947) @@ -3920,7 +3920,7 @@ cleanItem->SetGuardingCharacterID(0); cleanItem->Save(true); cleanItem->SetTransformationEvent(NULL); - psserver->SendSystemOK(clientNum,"You probably should not leave %d %s here.", cleanItem->GetStackCount(), cleanItem->GetName()); + psserver->SendSystemOK(workEvent->client->GetClientNum(),"You probably should not leave %d %s here.", cleanItem->GetStackCount(), cleanItem->GetName()); } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ko...@us...> - 2009-02-28 09:14:22
|
Revision: 3119 http://planeshift.svn.sourceforge.net/planeshift/?rev=3119&view=rev Author: kougaro Date: 2009-02-28 09:14:12 +0000 (Sat, 28 Feb 2009) Log Message: ----------- Fixed some mess in workmanager from r3118 Modified Paths: -------------- trunk/src/server/workmanager.cpp Modified: trunk/src/server/workmanager.cpp =================================================================== --- trunk/src/server/workmanager.cpp 2009-02-28 03:21:28 UTC (rev 3118) +++ trunk/src/server/workmanager.cpp 2009-02-28 09:14:12 UTC (rev 3119) @@ -878,10 +878,10 @@ return; } - if (!worke->Inventory().AddOrDrop(item)) + if (!workerchar->Inventory().AddOrDrop(item)) { - Debug5(LOG_ANY, worke->GetPID().Unbox(), "HandleProductionEvent() could not give item of stat %u (%s) to character %s[%s])", - newitem->GetUID(), newitem->GetName(), workerchar->GetCharName(), ShowID(worke->GetPID())); + Debug5(LOG_ANY, workerchar->GetPID().Unbox(), "HandleProductionEvent() could not give item of stat %u (%s) to character %s[%s])", + newitem->GetUID(), newitem->GetName(), workerchar->GetCharName(), ShowID(workerchar->GetPID())); if (workEvent->client) { @@ -891,7 +891,7 @@ else { Debug5(LOG_SUPERCLIENT,0,"%s(%s) found %s, but dropped it: %s",workEvent->worker->GetName(), - ShowID(workEvent->worker->GetEID()), newitem->GetName(), worke->Inventory().lastError.GetDataSafe()); + ShowID(workEvent->worker->GetEID()), newitem->GetName(), workerchar->Inventory().lastError.GetDataSafe()); } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wel...@us...> - 2009-04-26 11:19:14
|
Revision: 3561 http://planeshift.svn.sourceforge.net/planeshift/?rev=3561&view=rev Author: weltall2 Date: 2009-04-26 11:19:05 +0000 (Sun, 26 Apr 2009) Log Message: ----------- removed some unneccesary calculations and code from handleproduction Modified Paths: -------------- trunk/src/server/workmanager.cpp Modified: trunk/src/server/workmanager.cpp =================================================================== --- trunk/src/server/workmanager.cpp 2009-04-26 08:38:07 UTC (rev 3560) +++ trunk/src/server/workmanager.cpp 2009-04-26 11:19:05 UTC (rev 3561) @@ -606,16 +606,9 @@ } // Validate the skill - float cur_skill = client->GetCharacterData()->Skills().GetSkillRank((PSSKILL)nr->skill->id).Current(); - - // If skill=0, check if it has at least theoretical training in that skill - if (cur_skill==0) { - bool fullTrainingReceived = !client->GetCharacterData()->Skills().Get((PSSKILL)nr->skill->id).CanTrain(); - if (fullTrainingReceived) - cur_skill=0.7F; - } - - if (cur_skill <= 0.0) + // If skill == 0 and can still be trained it's not possible to execute this operation + if (client->GetCharacterData()->Skills().GetSkillRank((PSSKILL)nr->skill->id).Current() == 0 && + client->GetCharacterData()->Skills().Get((PSSKILL)nr->skill->id).CanTrain()) { psserver->SendSystemInfo(client->GetClientNum(),"You don't have the skill to %s for %s.",type,reward); return; @@ -685,16 +678,9 @@ } // Validate the skill - float cur_skill = actor->GetCharacterData()->Skills().GetSkillRank((PSSKILL)nr->skill->id).Current(); - - // If skill=0, check if it has at least theoretical training in that skill - if (cur_skill==0) { - bool fullTrainingReceived = !actor->GetCharacterData()->Skills().Get((PSSKILL)nr->skill->id).CanTrain(); - if (fullTrainingReceived) - cur_skill=0.7F; - } - - if (cur_skill <= 0.0) + // If skill == 0 and can still be trained it's not possible to execute this operation + if (actor->GetCharacterData()->Skills().GetSkillRank((PSSKILL)nr->skill->id).Current() == 0 && + actor->GetCharacterData()->Skills().Get((PSSKILL)nr->skill->id).CanTrain()) { //psserver->SendSystemInfo(client->GetClientNum(),"You don't have the skill to %s for %s.",type,reward); Warning6(LOG_SUPERCLIENT,"%s(%s) don't have the skill(%d) to %s for %s.", This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wel...@us...> - 2009-05-04 07:38:49
|
Revision: 3613 http://planeshift.svn.sourceforge.net/planeshift/?rev=3613&view=rev Author: weltall2 Date: 2009-05-04 07:38:47 +0000 (Mon, 04 May 2009) Log Message: ----------- fixed a bug with skill validation -1 = not valid not 0\! Modified Paths: -------------- trunk/src/server/workmanager.cpp Modified: trunk/src/server/workmanager.cpp =================================================================== --- trunk/src/server/workmanager.cpp 2009-05-04 02:28:50 UTC (rev 3612) +++ trunk/src/server/workmanager.cpp 2009-05-04 07:38:47 UTC (rev 3613) @@ -3791,7 +3791,7 @@ float startingQuality = currentQuality; if (secure) psserver->SendSystemInfo(clientNum,"Starting quality calculation with quality %f.", startingQuality); int priSkill = process->GetPrimarySkillId(); - if ( priSkill > 0) + if ( priSkill => 0) { // Increase quality for crafted item based on if the starting quality was less then the normal quality float baseQuality = transItem->GetBaseStats()->GetQuality(); @@ -3851,7 +3851,7 @@ // Apply the secondary skill if any int secSkill = process->GetSecondarySkillId(); - if ( secSkill > 0) + if ( secSkill => 0) { // Increase quality for crafted item based on if the starting quality was less then the normal quality float baseQuality = transItem->GetBaseStats()->GetQuality(); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wel...@us...> - 2009-05-04 09:12:35
|
Revision: 3614 http://planeshift.svn.sourceforge.net/planeshift/?rev=3614&view=rev Author: weltall2 Date: 2009-05-04 09:12:33 +0000 (Mon, 04 May 2009) Log Message: ----------- typo Modified Paths: -------------- trunk/src/server/workmanager.cpp Modified: trunk/src/server/workmanager.cpp =================================================================== --- trunk/src/server/workmanager.cpp 2009-05-04 07:38:47 UTC (rev 3613) +++ trunk/src/server/workmanager.cpp 2009-05-04 09:12:33 UTC (rev 3614) @@ -3791,7 +3791,7 @@ float startingQuality = currentQuality; if (secure) psserver->SendSystemInfo(clientNum,"Starting quality calculation with quality %f.", startingQuality); int priSkill = process->GetPrimarySkillId(); - if ( priSkill => 0) + if ( priSkill >= 0) { // Increase quality for crafted item based on if the starting quality was less then the normal quality float baseQuality = transItem->GetBaseStats()->GetQuality(); @@ -3851,7 +3851,7 @@ // Apply the secondary skill if any int secSkill = process->GetSecondarySkillId(); - if ( secSkill => 0) + if ( secSkill >= 0) { // Increase quality for crafted item based on if the starting quality was less then the normal quality float baseQuality = transItem->GetBaseStats()->GetQuality(); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wel...@us...> - 2009-05-04 19:27:51
|
Revision: 3618 http://planeshift.svn.sourceforge.net/planeshift/?rev=3618&view=rev Author: weltall2 Date: 2009-05-04 19:27:38 +0000 (Mon, 04 May 2009) Log Message: ----------- made the last functions in workmanager use the generic experience giver function Modified Paths: -------------- trunk/src/server/workmanager.cpp Modified: trunk/src/server/workmanager.cpp =================================================================== --- trunk/src/server/workmanager.cpp 2009-05-04 10:41:01 UTC (rev 3617) +++ trunk/src/server/workmanager.cpp 2009-05-04 19:27:38 UTC (rev 3618) @@ -3845,7 +3845,7 @@ { // Get some practice in int priPoints = process->GetPrimaryPracticePts(); - owner->Skills().AddSkillPractice( (PSSKILL)priSkill, priPoints ); + owner->CalculateAddExperience((PSSKILL)priSkill, priPoints); if (secure) psserver->SendSystemInfo(clientNum,"Giving practice points %d to skill %d.",priPoints, priSkill); } @@ -3901,7 +3901,7 @@ { // Get some practice in int secPoints = process->GetSecondaryPracticePts(); - owner->Skills().AddSkillPractice( (PSSKILL)secSkill, secPoints ); + owner->CalculateAddExperience((PSSKILL)secSkill, secPoints); if (secure) psserver->SendSystemInfo(clientNum,"Giving practice points %d to skill %d.",secPoints, secSkill); } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wel...@us...> - 2009-05-07 18:01:21
|
Revision: 3632 http://planeshift.svn.sourceforge.net/planeshift/?rev=3632&view=rev Author: weltall2 Date: 2009-05-07 18:01:18 +0000 (Thu, 07 May 2009) Log Message: ----------- added a separate exp parameter in the mining exp math script in case the practicepoints are zero, Exp is optional Modified Paths: -------------- trunk/src/server/workmanager.cpp Modified: trunk/src/server/workmanager.cpp =================================================================== --- trunk/src/server/workmanager.cpp 2009-05-07 17:10:49 UTC (rev 3631) +++ trunk/src/server/workmanager.cpp 2009-05-07 18:01:18 UTC (rev 3632) @@ -921,7 +921,8 @@ if (workEvent->client) { psserver->SendSystemInfo(workEvent->worker->GetClientID(),"You were not successful."); - } else + } + else { Debug2(LOG_SUPERCLIENT,0,"%s where not successful.",workEvent->worker->GetName()); } @@ -929,6 +930,7 @@ //Assign experience and practice points int practicePoints; + int experiencePoints; float modifier; { MathEnvironment env; @@ -937,11 +939,19 @@ calc_mining_exp->Evaluate(&env); practicePoints = env.Lookup("ResultPractice")->GetValue(); modifier = env.Lookup("ResultModifier")->GetValue(); + MathVar *varResult = env.Lookup("Exp"); //optional variable + if(varResult) + experiencePoints = varResult->GetValue(); + else + experiencePoints = 0; } // assign practice and experience - workEvent->client->GetCharacterData()->CalculateAddExperience((PSSKILL)workEvent->nr->skill->id, practicePoints, modifier); + if(practicePoints != 0) + workEvent->client->GetCharacterData()->CalculateAddExperience((PSSKILL)workEvent->nr->skill->id, practicePoints, modifier); + else + workEvent->client->GetCharacterData()->AddExperiencePointsNotify(experiencePoints); workEvent->worker->SetMode(PSCHARACTER_MODE_PEACE); // Actor isn't working anymore } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wel...@us...> - 2009-05-13 13:12:28
|
Revision: 3677 http://planeshift.svn.sourceforge.net/planeshift/?rev=3677&view=rev Author: weltall2 Date: 2009-05-13 13:12:17 +0000 (Wed, 13 May 2009) Log Message: ----------- added a missing message Modified Paths: -------------- trunk/src/server/workmanager.cpp Modified: trunk/src/server/workmanager.cpp =================================================================== --- trunk/src/server/workmanager.cpp 2009-05-13 08:20:22 UTC (rev 3676) +++ trunk/src/server/workmanager.cpp 2009-05-13 13:12:17 UTC (rev 3677) @@ -3756,6 +3756,7 @@ // Check to see if we have pattern if ( ValidateMind() ) { + //TODO: Maybe all those function like this which seems copy & paste should be put in an unique one? // Check if there is another transformation possible for the item just created unsigned int transMatch = AnyTransform( patternId, groupPatternId, result, resultQty ); if ( (transMatch == TRANSFORM_MATCH ) || (transMatch == TRANSFORM_GARBAGE ) ) @@ -3765,6 +3766,8 @@ workEvent->GetTransformationType(), workEvent->GetTransformationSlot(), workEvent->GetResultQuantity(), workEvent->GetResultQuality(), workEvent->GetTranformationItem()); + if(transMath == TRANSFORM_GARBAGE) + psserver->SendSystemError(clientNum,"You are not sure what is going to happen to %d %s.", workEvent->GetTranformationItem()->GetStackCount(), workEvent->GetTranformationItem()->GetName()); return; } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wel...@us...> - 2009-05-13 13:29:09
|
Revision: 3678 http://planeshift.svn.sourceforge.net/planeshift/?rev=3678&view=rev Author: weltall2 Date: 2009-05-13 13:29:01 +0000 (Wed, 13 May 2009) Log Message: ----------- typo Modified Paths: -------------- trunk/src/server/workmanager.cpp Modified: trunk/src/server/workmanager.cpp =================================================================== --- trunk/src/server/workmanager.cpp 2009-05-13 13:12:17 UTC (rev 3677) +++ trunk/src/server/workmanager.cpp 2009-05-13 13:29:01 UTC (rev 3678) @@ -3766,7 +3766,7 @@ workEvent->GetTransformationType(), workEvent->GetTransformationSlot(), workEvent->GetResultQuantity(), workEvent->GetResultQuality(), workEvent->GetTranformationItem()); - if(transMath == TRANSFORM_GARBAGE) + if(transMatch == TRANSFORM_GARBAGE) psserver->SendSystemError(clientNum,"You are not sure what is going to happen to %d %s.", workEvent->GetTranformationItem()->GetStackCount(), workEvent->GetTranformationItem()->GetName()); return; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ken...@us...> - 2009-05-15 21:09:06
|
Revision: 3695 http://planeshift.svn.sourceforge.net/planeshift/?rev=3695&view=rev Author: kennygraunke Date: 2009-05-15 21:09:05 +0000 (Fri, 15 May 2009) Log Message: ----------- Fix obviously wrong code. Modified Paths: -------------- trunk/src/server/workmanager.cpp Modified: trunk/src/server/workmanager.cpp =================================================================== --- trunk/src/server/workmanager.cpp 2009-05-15 09:26:26 UTC (rev 3694) +++ trunk/src/server/workmanager.cpp 2009-05-15 21:09:05 UTC (rev 3695) @@ -1399,7 +1399,7 @@ } else { - StartConstructWork(client); + StopConstructWork(client); } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wel...@us...> - 2009-06-10 15:56:02
|
Revision: 3838 http://planeshift.svn.sourceforge.net/planeshift/?rev=3838&view=rev Author: weltall2 Date: 2009-06-10 15:55:56 +0000 (Wed, 10 Jun 2009) Log Message: ----------- fixed a crash when crafting in certain conditions Modified Paths: -------------- trunk/src/server/workmanager.cpp Modified: trunk/src/server/workmanager.cpp =================================================================== --- trunk/src/server/workmanager.cpp 2009-06-10 13:48:11 UTC (rev 3837) +++ trunk/src/server/workmanager.cpp 2009-06-10 15:55:56 UTC (rev 3838) @@ -2964,7 +2964,7 @@ // Locate item in owner's slot newItem->SetOwningCharacter(owner->GetCharacterData()); - owner->GetCharacterData()->Inventory().Add(newItem); + owner->GetCharacterData()->Inventory().Add(newItem,false,true,slot); if (!owner->GetCharacterData()->Inventory().EquipItem(newItem,slot)) { // If can't equip then drop This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wel...@us...> - 2009-06-10 16:02:19
|
Revision: 3839 http://planeshift.svn.sourceforge.net/planeshift/?rev=3839&view=rev Author: weltall2 Date: 2009-06-10 16:02:18 +0000 (Wed, 10 Jun 2009) Log Message: ----------- don't allow stacking Modified Paths: -------------- trunk/src/server/workmanager.cpp Modified: trunk/src/server/workmanager.cpp =================================================================== --- trunk/src/server/workmanager.cpp 2009-06-10 15:55:56 UTC (rev 3838) +++ trunk/src/server/workmanager.cpp 2009-06-10 16:02:18 UTC (rev 3839) @@ -2964,7 +2964,7 @@ // Locate item in owner's slot newItem->SetOwningCharacter(owner->GetCharacterData()); - owner->GetCharacterData()->Inventory().Add(newItem,false,true,slot); + owner->GetCharacterData()->Inventory().Add(newItem,false,false,slot); if (!owner->GetCharacterData()->Inventory().EquipItem(newItem,slot)) { // If can't equip then drop This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wel...@us...> - 2009-07-14 21:06:28
|
Revision: 4012 http://planeshift.svn.sourceforge.net/planeshift/?rev=4012&view=rev Author: weltall2 Date: 2009-07-14 21:06:17 +0000 (Tue, 14 Jul 2009) Log Message: ----------- Fixed PS#2979 - garbage item has 0/0 quality Modified Paths: -------------- trunk/src/server/workmanager.cpp Modified: trunk/src/server/workmanager.cpp =================================================================== --- trunk/src/server/workmanager.cpp 2009-07-14 16:08:25 UTC (rev 4011) +++ trunk/src/server/workmanager.cpp 2009-07-14 21:06:17 UTC (rev 4012) @@ -3550,6 +3550,9 @@ { result = process->GetGarbageId(); resultQty = process->GetGarbageQty(); + psItemStats* Stats = CacheManager::GetSingleton().GetBasicItemStatsByID( result ); + if(Stats) + startQuality = currentQuality = Stats->GetQuality(); } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wel...@us...> - 2009-07-15 07:57:21
|
Revision: 4014 http://planeshift.svn.sourceforge.net/planeshift/?rev=4014&view=rev Author: weltall2 Date: 2009-07-15 07:57:20 +0000 (Wed, 15 Jul 2009) Log Message: ----------- style fix Modified Paths: -------------- trunk/src/server/workmanager.cpp Modified: trunk/src/server/workmanager.cpp =================================================================== --- trunk/src/server/workmanager.cpp 2009-07-15 07:53:23 UTC (rev 4013) +++ trunk/src/server/workmanager.cpp 2009-07-15 07:57:20 UTC (rev 4014) @@ -3552,7 +3552,7 @@ resultQty = process->GetGarbageQty(); psItemStats* Stats = CacheManager::GetSingleton().GetBasicItemStatsByID( result ); if(Stats) - startQuality = currentQuality = Stats->GetQuality(); + startQuality = currentQuality = Stats->GetQuality(); } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wel...@us...> - 2009-09-07 06:55:45
|
Revision: 4325 http://planeshift.svn.sourceforge.net/planeshift/?rev=4325&view=rev Author: weltall2 Date: 2009-09-07 06:55:37 +0000 (Mon, 07 Sep 2009) Log Message: ----------- fixed PS#1740 - Stopped repair on Platemail Armor prevents its transfer Modified Paths: -------------- trunk/src/server/workmanager.cpp Modified: trunk/src/server/workmanager.cpp =================================================================== --- trunk/src/server/workmanager.cpp 2009-09-06 09:24:19 UTC (rev 4324) +++ trunk/src/server/workmanager.cpp 2009-09-07 06:55:37 UTC (rev 4325) @@ -4246,11 +4246,9 @@ // Stop event from being executed when triggered. if(category == REPAIR && client->GetActor() && (client->GetActor()->GetMode() == PSCHARACTER_MODE_WORK)) { - client->GetActor()->SetMode(PSCHARACTER_MODE_PEACE); - - psItem *repairTarget = client->GetCharacterData()->Inventory().GetInventoryItem(PSCHARACTER_SLOT_RIGHTHAND); - if (repairTarget) - repairTarget->SetInUse(false); + client->GetActor()->SetMode(PSCHARACTER_MODE_PEACE); + if (object) + object->SetInUse(false); } } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wel...@us...> - 2009-09-29 14:11:44
|
Revision: 4586 http://planeshift.svn.sourceforge.net/planeshift/?rev=4586&view=rev Author: weltall2 Date: 2009-09-29 14:11:36 +0000 (Tue, 29 Sep 2009) Log Message: ----------- fixed a typo Modified Paths: -------------- trunk/src/server/workmanager.cpp Modified: trunk/src/server/workmanager.cpp =================================================================== --- trunk/src/server/workmanager.cpp 2009-09-28 19:16:39 UTC (rev 4585) +++ trunk/src/server/workmanager.cpp 2009-09-29 14:11:36 UTC (rev 4586) @@ -1911,7 +1911,7 @@ { resultId = current->resultItem; resultQty = current->resultQuantity; - if (secure) psserver->SendSystemInfo(clientNum,"Found mathcing combination."); + if (secure) psserver->SendSystemInfo(clientNum,"Found matching combination."); return true; } } @@ -1930,7 +1930,7 @@ { resultId = current->resultItem; resultQty = current->resultQuantity; - if (secure) psserver->SendSystemInfo(clientNum,"Found mathcing group combination."); + if (secure) psserver->SendSystemInfo(clientNum,"Found matching group combination."); return true; } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wel...@us...> - 2009-10-03 09:44:00
|
Revision: 4608 http://planeshift.svn.sourceforge.net/planeshift/?rev=4608&view=rev Author: weltall2 Date: 2009-10-03 09:43:54 +0000 (Sat, 03 Oct 2009) Log Message: ----------- fixed distance from locks when using an action location Modified Paths: -------------- trunk/src/server/workmanager.cpp Modified: trunk/src/server/workmanager.cpp =================================================================== --- trunk/src/server/workmanager.cpp 2009-10-02 14:00:08 UTC (rev 4607) +++ trunk/src/server/workmanager.cpp 2009-10-03 09:43:54 UTC (rev 4608) @@ -262,6 +262,7 @@ void WorkManager::HandleLockPick(MsgEntry* me,Client *client) { gemObject* target = client->GetTargetObject(); + bool IsActionLocation = false; // Check if target is action item gemActionLocation* gemAction = dynamic_cast<gemActionLocation*>(target); @@ -274,18 +275,12 @@ { target = GEMSupervisor::GetSingleton().FindItemEntity( InstanceID ); } + IsActionLocation = true; } - // Check target gem - if (!target) + // Check target gem and range ignoring Y co-ordinate + if (!target || client->GetActor()->RangeTo(IsActionLocation ? target : client->GetTargetObject(), true, IsActionLocation) > RANGE_TO_USE) { - Error1("No gemItem target!\n"); - return; - } - - // Check range ignoring Y co-ordinate - if (client->GetActor()->RangeTo(target, true) > RANGE_TO_USE) - { psserver->SendSystemInfo(client->GetClientNum(),"You need to be closer to the lock to try this."); return; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wel...@us...> - 2009-10-11 06:54:27
|
Revision: 4630 http://planeshift.svn.sourceforge.net/planeshift/?rev=4630&view=rev Author: weltall2 Date: 2009-10-11 06:54:20 +0000 (Sun, 11 Oct 2009) Log Message: ----------- changes to transformation matching requested by bovek Modified Paths: -------------- trunk/src/server/workmanager.cpp Modified: trunk/src/server/workmanager.cpp =================================================================== --- trunk/src/server/workmanager.cpp 2009-10-11 06:52:51 UTC (rev 4629) +++ trunk/src/server/workmanager.cpp 2009-10-11 06:54:20 UTC (rev 4630) @@ -2060,17 +2060,26 @@ // We check the more specific transforms for matches first unsigned int WorkManager::AnyTransform(uint32 singlePatternId, uint32 groupPatternId, uint32 targetId, int targetQty) { + unsigned int singleMatch = TRANSFORM_GARBAGE; + unsigned int groupMatch = TRANSFORM_GARBAGE; + // First check for specific single transform match - if (secure) psserver->SendSystemInfo(clientNum,"Checking single transforms for pattern id %u, target id %u, and target qty %u.", singlePatternId,targetId,targetQty ); - unsigned int singleMatch = IsTransformable( singlePatternId, targetId, targetQty ); - if (singleMatch == TRANSFORM_MATCH) - return TRANSFORM_MATCH; + if(singlePatternId != 0) + { + if (secure) psserver->SendSystemInfo(clientNum,"Checking single transforms for pattern id %u, target id %u, and target qty %u.", singlePatternId,targetId,targetQty ); + singleMatch = IsTransformable( singlePatternId, targetId, targetQty ); + if (singleMatch == TRANSFORM_MATCH) + return TRANSFORM_MATCH; + } // Then check for a group transform match - if (secure) psserver->SendSystemInfo(clientNum,"Checking group transforms for pattern id %u, target id %u, and target qty %u.",groupPatternId, targetId, targetQty); - unsigned int groupMatch = IsTransformable( groupPatternId, targetId, targetQty ); - if (groupMatch == TRANSFORM_MATCH) - return TRANSFORM_MATCH; + if(groupPatternId != 0) + { + if (secure) psserver->SendSystemInfo(clientNum,"Checking group transforms for pattern id %u, target id %u, and target qty %u.",groupPatternId, targetId, targetQty); + groupMatch = IsTransformable( groupPatternId, targetId, targetQty ); + if (groupMatch == TRANSFORM_MATCH) + return TRANSFORM_MATCH; + } // Check for patternless transforms if (secure) psserver->SendSystemInfo(clientNum,"Checking patternless transforms for pattern id %u, target id %u, and target qty %u.", 0, targetId, targetQty ); @@ -2090,9 +2099,23 @@ return TRANSFORM_GARBAGE; // Then check for a group any item transform match - if (secure) psserver->SendSystemInfo(clientNum,"Checking group any item transforms for pattern id %u, target id %u, and target qty %u.", groupPatternId, 0, targetQty); - unsigned int groupGarbMatch = IsTransformable( groupPatternId, 0, targetQty ); - if (groupGarbMatch == TRANSFORM_MATCH) + if(groupPatternId != 0) + { + if (secure) psserver->SendSystemInfo(clientNum,"Checking group any item transforms for pattern id %u, target id %u, and target qty %u.", groupPatternId, 0, targetQty); + unsigned int groupGarbMatch = IsTransformable( groupPatternId, 0, targetQty ); + if (groupGarbMatch == TRANSFORM_MATCH) + return TRANSFORM_GARBAGE; + } + + // Check patternless for transforms of any ingredients + if (secure) psserver->SendSystemInfo(clientNum,"Checking for pattern-less any ingredient transforms for target id %u.", singlePatternId, groupPatternId, targetId ); + if (IsIngredient( 0, 0, targetId )) + return TRANSFORM_MATCH; + + // Check for patternless specific single any item transform match + if (secure) psserver->SendSystemInfo(clientNum,"Checking pattern-less single any item transforms for target qty %u.",singlePatternId, 0, targetQty); + singleGarbMatch = IsTransformable( 0, 0, targetQty ); + if (singleGarbMatch == TRANSFORM_MATCH) return TRANSFORM_GARBAGE; // If no other non-garbage/unknown failures then check for pattern-less any item transforms This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wel...@us...> - 2009-10-13 17:05:19
|
Revision: 4647 http://planeshift.svn.sourceforge.net/planeshift/?rev=4647&view=rev Author: weltall2 Date: 2009-10-13 17:05:13 +0000 (Tue, 13 Oct 2009) Log Message: ----------- management of stacked items in itemquantity=0 transforms, allows to give additional work time and exp depending on the stack amount in these transformations Modified Paths: -------------- trunk/src/server/workmanager.cpp Modified: trunk/src/server/workmanager.cpp =================================================================== --- trunk/src/server/workmanager.cpp 2009-10-12 18:37:15 UTC (rev 4646) +++ trunk/src/server/workmanager.cpp 2009-10-13 17:05:13 UTC (rev 4647) @@ -2304,7 +2304,7 @@ if(trans) { - delay = CalculateEventDuration( trans->GetTransPoints() ); + delay = CalculateEventDuration( trans, resultQty ); } else { @@ -2755,11 +2755,14 @@ ///////////////////////////////////////////////////////////////////////////////////////////////////////////// // Calculate how long it will take to complete event // based on the transformation's point quanity -int WorkManager::CalculateEventDuration(int pointQty) +int WorkManager::CalculateEventDuration(psTradeTransformations* trans, int itemQty) { // Translate the points into seconds // ToDo: For now the point quantity is the duration - return pointQty; + // TODO: CONVERT TO MATHSCRIPT + if(trans->GetItemQty() == 0 && trans->GetItemId() != 0) + return trans->GetTransPoints() + trans->GetTransPoints() * (itemQty - 1) * 0.1; + return trans->GetTransPoints(); } ///////////////////////////////////////////////////////////////////////////////////////////////////////////// @@ -3516,6 +3519,7 @@ uint32 result = 0; int resultQty = 0; int itemQty = 0; + int QtyMultiplier = 1; if(trans) { @@ -3579,6 +3583,7 @@ { resultQty = workEvent->GetResultQuantity(); itemQty = resultQty; + QtyMultiplier = resultQty; } // Handle all the different transformation types @@ -3693,6 +3698,7 @@ MathEnvironment env; env.Define("StartQuality", startQuality); env.Define("CurrentQuality", currentQuality); + env.Define("QtyMultiplier", QtyMultiplier); env.Define("Character", owner); calc_transform_exp->Evaluate(&env); experiencePoints = env.Lookup("Exp")->GetValue(); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ken...@us...> - 2009-11-27 07:24:48
|
Revision: 4803 http://planeshift.svn.sourceforge.net/planeshift/?rev=4803&view=rev Author: kennygraunke Date: 2009-11-27 07:24:38 +0000 (Fri, 27 Nov 2009) Log Message: ----------- Assert on missing script fail, since it inevitably will crash without them. Modified Paths: -------------- trunk/src/server/workmanager.cpp Modified: trunk/src/server/workmanager.cpp =================================================================== --- trunk/src/server/workmanager.cpp 2009-11-27 07:17:26 UTC (rev 4802) +++ trunk/src/server/workmanager.cpp 2009-11-27 07:24:38 UTC (rev 4803) @@ -136,42 +136,15 @@ calc_transform_exp = psserver->GetMathScriptEngine()->FindScript("Calculate Trasformation Experience"); calc_lockpick_time = psserver->GetMathScriptEngine()->FindScript("Lockpicking Time"); - if (!calc_repair_rank) - { - Error1("Could not find mathscript 'Calculate Repair Rank'"); - } - if (!calc_repair_time) - { - Error1("Could not find mathscript 'Calculate Repair Time'"); - } - if (!calc_repair_result) - { - Error1("Could not find mathscript 'Calculate Repair Result'"); - } - if (!calc_repair_quality) - { - Error1("Could not find mathscript 'Calculate Repair Quality'"); - } - if (!calc_repair_exp) - { - Error1("Could not find mathscript 'Calculate Repair Experience'"); - } - if (!calc_mining_chance) - { - Error1("Could not find mathscript 'Calculate Mining Odds'"); - } - if (!calc_mining_exp) - { - Error1("Could not find mathscript 'Calculate Mining Experience'"); - } - if (!calc_transform_exp) - { - Error1("Could not find mathscript 'Calculate Trasformation Experience'"); - } - if (!calc_lockpick_time) - { - Error1("Could not find mathscript 'Lockpicking Time'"); - } + CS_ASSERT_MSG("Could not load mathscript 'Calculate Repair Rank'", calc_repair_rank); + CS_ASSERT_MSG("Could not load mathscript 'Calculate Repair Time'", calc_repair_time); + CS_ASSERT_MSG("Could not load mathscript 'Calculate Repair Result'", calc_repair_result); + CS_ASSERT_MSG("Could not load mathscript 'Calculate Repair Quality'", calc_repair_quality); + CS_ASSERT_MSG("Could not load mathscript 'Calculate Repair Experience'", calc_repair_exp); + CS_ASSERT_MSG("Could not load mathscript 'Calculate Mining Odds'", calc_mining_chance); + CS_ASSERT_MSG("Could not load mathscript 'Calculate Mining Experience'", calc_mining_exp); + CS_ASSERT_MSG("Could not load mathscript 'Calculate Trasformation Experience'", calc_transform_exp); + CS_ASSERT_MSG("Could not load mathscript 'Lockpicking Time'", calc_lockpick_time); Initialize(); }; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wel...@us...> - 2009-12-13 20:43:05
|
Revision: 4964 http://planeshift.svn.sourceforge.net/planeshift/?rev=4964&view=rev Author: weltall2 Date: 2009-12-13 20:07:05 +0000 (Sun, 13 Dec 2009) Log Message: ----------- fixed validatetarget crashes coming out of startusework. - long lasting crash reason. removed duplicate code which was also wrong from workmanager and used the instance of the same code in psactionlocation Modified Paths: -------------- trunk/src/server/workmanager.cpp Modified: trunk/src/server/workmanager.cpp =================================================================== --- trunk/src/server/workmanager.cpp 2009-12-13 13:32:08 UTC (rev 4963) +++ trunk/src/server/workmanager.cpp 2009-12-13 20:07:05 UTC (rev 4964) @@ -239,15 +239,9 @@ // Check if target is action item gemActionLocation* gemAction = dynamic_cast<gemActionLocation*>(target); - if(gemAction) { - psActionLocation *action = gemAction->GetAction(); - - // Check if the actionlocation is linked to real item - InstanceID InstanceID = action->GetInstanceID(); - if( InstanceID!= INSTANCE_ALL ) - { - target = GEMSupervisor::GetSingleton().FindItemEntity( InstanceID ); - } + if(gemAction) + { + target = gemAction->GetAction()->GetRealItem(); IsActionLocation = true; } @@ -1734,6 +1728,9 @@ // Do item script work bool WorkManager::ScriptItem(gemItem* gemItm) { + //TODO: check if it's really needed + if(!gemItm) return false; + // Check range ignoring Y co-ordinate if (worker->RangeTo(gemItm, true) > RANGE_TO_USE) { @@ -1782,15 +1779,8 @@ // Do action location script work bool WorkManager::ScriptAction(gemActionLocation* gemAction) { - psActionLocation *action = gemAction->GetAction(); - // check if the actionlocation is linked to real item - InstanceID InstanceID = action->GetInstanceID(); - if (InstanceID==INSTANCE_ALL) - { - InstanceID = action->GetGemObject()->GetEID().Unbox(); // FIXME: Need to understand & comment on ID interaction here. - } - gemItem* target = GEMSupervisor::GetSingleton().FindItemEntity( InstanceID ); + gemItem* target = gemAction->GetAction()->GetRealItem(); // Cast to item and call craft item return ScriptItem(target); @@ -2464,18 +2454,8 @@ gemObject* target = client->GetTargetObject(); gemActionLocation* gemAction = dynamic_cast<gemActionLocation*>(target); - if(gemAction) { - psActionLocation *action = gemAction->GetAction(); + if(gemAction) target = gemAction->GetAction()->GetRealItem(); - // check if the actionlocation is linked to real item - InstanceID InstanceID = action->GetInstanceID(); - if (InstanceID==INSTANCE_ALL) - { - InstanceID = action->GetGemObject()->GetEID().Unbox(); // FIXME: Understand & comment on ID magic here. - } - target = GEMSupervisor::GetSingleton().FindItemEntity( InstanceID ); - } - if (target) { // Make sure it's not character This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wel...@us...> - 2010-02-13 19:29:33
|
Revision: 5538 http://planeshift.svn.sourceforge.net/planeshift/?rev=5538&view=rev Author: weltall2 Date: 2010-02-13 19:29:27 +0000 (Sat, 13 Feb 2010) Log Message: ----------- added harwest Modified Paths: -------------- trunk/src/server/workmanager.cpp Modified: trunk/src/server/workmanager.cpp =================================================================== --- trunk/src/server/workmanager.cpp 2010-02-13 18:27:24 UTC (rev 5537) +++ trunk/src/server/workmanager.cpp 2010-02-13 19:29:27 UTC (rev 5538) @@ -222,6 +222,10 @@ { HandleProduction(client, "fish", msg.filter); } + else if (msg.command == "/harwest") + { + HandleProduction(client, "harwest", msg.filter); + } else if (msg.command == "/repair") { HandleRepair(client, msg); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |