From: <wel...@us...> - 2010-02-13 19:35:36
|
Revision: 5540 http://planeshift.svn.sourceforge.net/planeshift/?rev=5540&view=rev Author: weltall2 Date: 2010-02-13 19:35:29 +0000 (Sat, 13 Feb 2010) Log Message: ----------- typo Modified Paths: -------------- trunk/src/server/workmanager.cpp Modified: trunk/src/server/workmanager.cpp =================================================================== --- trunk/src/server/workmanager.cpp 2010-02-13 19:32:06 UTC (rev 5539) +++ trunk/src/server/workmanager.cpp 2010-02-13 19:35:29 UTC (rev 5540) @@ -222,9 +222,9 @@ { HandleProduction(client, "fish", msg.filter); } - else if (msg.command == "/harwest") + else if (msg.command == "/harvest") { - HandleProduction(client, "harwest", msg.filter); + HandleProduction(client, "harvest", msg.filter); } else if (msg.command == "/repair") { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wel...@us...> - 2010-02-20 06:40:51
|
Revision: 5593 http://planeshift.svn.sourceforge.net/planeshift/?rev=5593&view=rev Author: weltall2 Date: 2010-02-20 06:40:45 +0000 (Sat, 20 Feb 2010) Log Message: ----------- allow to use the tool for production also from the left hand. right hand is still the first checked Modified Paths: -------------- trunk/src/server/workmanager.cpp Modified: trunk/src/server/workmanager.cpp =================================================================== --- trunk/src/server/workmanager.cpp 2010-02-20 01:00:10 UTC (rev 5592) +++ trunk/src/server/workmanager.cpp 2010-02-20 06:40:45 UTC (rev 5593) @@ -554,8 +554,13 @@ psItem *item = owner->GetCharacterData()->Inventory().GetInventoryItem(PSCHARACTER_SLOT_RIGHTHAND); if (!item || nr->item_cat_id != item->GetCategory()->id) { - psserver->SendSystemError(client->GetClientNum(),"You don't have a good tool to %s with, equipped in your right hand.",type); - return; + //try the left hand + item = owner->GetCharacterData()->Inventory().GetInventoryItem(PSCHARACTER_SLOT_LEFTHAND); + if (!item || nr->item_cat_id != item->GetCategory()->id) + { + psserver->SendSystemError(client->GetClientNum(),"You don't have a good tool to %s with, equipped in your hands.",type); + return; + } } // Calculate time required This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wel...@us...> - 2010-03-13 17:41:22
|
Revision: 5662 http://planeshift.svn.sourceforge.net/planeshift/?rev=5662&view=rev Author: weltall2 Date: 2010-03-13 17:41:16 +0000 (Sat, 13 Mar 2010) Log Message: ----------- fixed serious exploit generating garbage items in place of disposing them Modified Paths: -------------- trunk/src/server/workmanager.cpp Modified: trunk/src/server/workmanager.cpp =================================================================== --- trunk/src/server/workmanager.cpp 2010-03-13 17:40:16 UTC (rev 5661) +++ trunk/src/server/workmanager.cpp 2010-03-13 17:41:16 UTC (rev 5662) @@ -3266,7 +3266,7 @@ float startQuality = transItem->GetItemQuality(); if ( process ) { - if ( !ApplySkills(workEvent->GetKFactor(), workEvent->GetTranformationItem(), itemQty == 0) && process->GetGarbageId() != 0 ) + if ( result > 0 && !ApplySkills(workEvent->GetKFactor(), workEvent->GetTranformationItem(), itemQty == 0) && process->GetGarbageId() != 0 ) { result = process->GetGarbageId(); resultQty = process->GetGarbageQty(); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wel...@us...> - 2010-03-19 11:19:37
|
Revision: 5706 http://planeshift.svn.sourceforge.net/planeshift/?rev=5706&view=rev Author: weltall2 Date: 2010-03-19 11:19:30 +0000 (Fri, 19 Mar 2010) Log Message: ----------- removed all hardcoding left in workmanager Modified Paths: -------------- trunk/src/server/workmanager.cpp Modified: trunk/src/server/workmanager.cpp =================================================================== --- trunk/src/server/workmanager.cpp 2010-03-19 11:10:54 UTC (rev 5705) +++ trunk/src/server/workmanager.cpp 2010-03-19 11:19:30 UTC (rev 5706) @@ -3864,7 +3864,7 @@ return; } - client->GetCharacterData()->SetStaminaRegenerationWork(PSSKILL_LOCKPICKING); + client->GetCharacterData()->SetStaminaRegenerationWork(item->GetLockpickSkill()); psserver->SendSystemInfo(client->GetClientNum(),"You started lockpicking %s",item->GetName()); client->GetActor()->SetMode(PSCHARACTER_MODE_WORK); @@ -3907,7 +3907,7 @@ { // Check if the user has the right skills int rank = 0; - if (skill >= 0 && skill < PSSKILL_COUNT) + if (skill >= 0 && skill < CacheManager::GetSingleton().GetSkillAmount()) rank = character->Skills().GetSkillRank(skill).Current(); if (rank >= (int) workEvent->object->GetLockStrength()) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wel...@us...> - 2010-04-04 09:23:24
|
Revision: 5764 http://planeshift.svn.sourceforge.net/planeshift/?rev=5764&view=rev Author: weltall2 Date: 2010-04-04 09:23:18 +0000 (Sun, 04 Apr 2010) Log Message: ----------- check also this Modified Paths: -------------- trunk/src/server/workmanager.cpp Modified: trunk/src/server/workmanager.cpp =================================================================== --- trunk/src/server/workmanager.cpp 2010-04-04 01:19:59 UTC (rev 5763) +++ trunk/src/server/workmanager.cpp 2010-04-04 09:23:18 UTC (rev 5764) @@ -729,11 +729,14 @@ psItem* tool = workerchar->Inventory().GetInventoryItem(PSCHARACTER_SLOT_RIGHTHAND); if (!tool || workEvent->nr->item_cat_id != tool->GetCategory()->id) { - if (workEvent->client) + tool = workerchar->Inventory().GetInventoryItem(PSCHARACTER_SLOT_LEFTTHAND); + if (!tool || workEvent->nr->item_cat_id != tool->GetCategory()->id) { - psserver->SendSystemInfo(workEvent->worker->GetClientID(),"You were unsuccessful since you no longer have the tool."); + if (workEvent->client) + { + psserver->SendSystemInfo(workEvent->worker->GetClientID(),"You were unsuccessful since you no longer have the tool."); + } } - workEvent->worker->SetMode(PSCHARACTER_MODE_PEACE); // Actor isn't working anymore return; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wel...@us...> - 2010-04-04 09:24:24
|
Revision: 5765 http://planeshift.svn.sourceforge.net/planeshift/?rev=5765&view=rev Author: weltall2 Date: 2010-04-04 09:24:18 +0000 (Sun, 04 Apr 2010) Log Message: ----------- fix flow Modified Paths: -------------- trunk/src/server/workmanager.cpp Modified: trunk/src/server/workmanager.cpp =================================================================== --- trunk/src/server/workmanager.cpp 2010-04-04 09:23:18 UTC (rev 5764) +++ trunk/src/server/workmanager.cpp 2010-04-04 09:24:18 UTC (rev 5765) @@ -736,9 +736,10 @@ { psserver->SendSystemInfo(workEvent->worker->GetClientID(),"You were unsuccessful since you no longer have the tool."); } + + workEvent->worker->SetMode(PSCHARACTER_MODE_PEACE); // Actor isn't working anymore + return; } - workEvent->worker->SetMode(PSCHARACTER_MODE_PEACE); // Actor isn't working anymore - return; } float roll = psserver->GetRandom(); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wel...@us...> - 2010-04-04 16:36:58
|
Revision: 5766 http://planeshift.svn.sourceforge.net/planeshift/?rev=5766&view=rev Author: weltall2 Date: 2010-04-04 16:36:49 +0000 (Sun, 04 Apr 2010) Log Message: ----------- a T Modified Paths: -------------- trunk/src/server/workmanager.cpp Modified: trunk/src/server/workmanager.cpp =================================================================== --- trunk/src/server/workmanager.cpp 2010-04-04 09:24:18 UTC (rev 5765) +++ trunk/src/server/workmanager.cpp 2010-04-04 16:36:49 UTC (rev 5766) @@ -729,7 +729,7 @@ psItem* tool = workerchar->Inventory().GetInventoryItem(PSCHARACTER_SLOT_RIGHTHAND); if (!tool || workEvent->nr->item_cat_id != tool->GetCategory()->id) { - tool = workerchar->Inventory().GetInventoryItem(PSCHARACTER_SLOT_LEFTTHAND); + tool = workerchar->Inventory().GetInventoryItem(PSCHARACTER_SLOT_LEFTHAND); if (!tool || workEvent->nr->item_cat_id != tool->GetCategory()->id) { if (workEvent->client) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wel...@us...> - 2010-06-22 05:59:21
|
Revision: 5988 http://planeshift.svn.sourceforge.net/planeshift/?rev=5988&view=rev Author: weltall2 Date: 2010-06-22 05:59:15 +0000 (Tue, 22 Jun 2010) Log Message: ----------- fixed possible crash Modified Paths: -------------- trunk/src/server/workmanager.cpp Modified: trunk/src/server/workmanager.cpp =================================================================== --- trunk/src/server/workmanager.cpp 2010-06-22 05:43:44 UTC (rev 5987) +++ trunk/src/server/workmanager.cpp 2010-06-22 05:59:15 UTC (rev 5988) @@ -528,7 +528,8 @@ csArray<NearNaturalResource> resources = FindNearestResource(sector,pos,type,(reward == NULL || !strcmp(reward,""))? NULL : reward); - NaturalResource *nr = resources.Get(0).resource; + + NaturalResource *nr = resources.GetSize() ? resources.Get(0).resource : NULL; if (!nr) { psserver->SendSystemInfo(client->GetClientNum(),"You don't see a good place to %s.",resourcesActions.Get(type)); @@ -607,7 +608,7 @@ csArray<NearNaturalResource> resources = FindNearestResource(sector,pos,type,reward); - NaturalResource *nr = resources.Get(0).resource; + NaturalResource *nr = resources.GetSize() ? resources.Get(0).resource : NULL; if (!nr) { // psserver->SendSystemInfo(client->GetClientNum(),"You don't see a good place to %s.",type); @@ -672,6 +673,7 @@ csArray<NearNaturalResource> WorkManager::FindNearestResource(iSector *sector, csVector3& pos, const size_t action,const char *reward) { csArray<NearNaturalResource> nearResources; + psSectorInfo *playersector= cacheManager->GetSectorInfoByName(sector->QueryObject()->GetName()); int sectorid = playersector->uid; @@ -687,7 +689,7 @@ { csVector3 diff = curr->loc - pos; float dist = diff.Norm(); - // Update nr if dist is less than radius and closer than previus nr or nr isn't found yet + // Add the resource if dist is less than radius if (dist < curr->visible_radius) { nearResources.Push(NearNaturalResource(curr,dist)); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wel...@us...> - 2010-06-22 07:08:15
|
Revision: 5990 http://planeshift.svn.sourceforge.net/planeshift/?rev=5990&view=rev Author: weltall2 Date: 2010-06-22 07:08:09 +0000 (Tue, 22 Jun 2010) Log Message: ----------- remove not accessible resources from the array in case the player lacks something in order to get to them. updated npcclient version, that duplicate code *has* to go. Modified Paths: -------------- trunk/src/server/workmanager.cpp Modified: trunk/src/server/workmanager.cpp =================================================================== --- trunk/src/server/workmanager.cpp 2010-06-22 06:17:49 UTC (rev 5989) +++ trunk/src/server/workmanager.cpp 2010-06-22 07:08:09 UTC (rev 5990) @@ -528,9 +528,7 @@ csArray<NearNaturalResource> resources = FindNearestResource(sector,pos,type,(reward == NULL || !strcmp(reward,""))? NULL : reward); - - NaturalResource *nr = resources.GetSize() ? resources.Get(0).resource : NULL; - if (!nr) + if(resources.IsEmpty()) { psserver->SendSystemInfo(client->GetClientNum(),"You don't see a good place to %s.",resourcesActions.Get(type)); return; @@ -538,25 +536,57 @@ // Validate the skill // 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()) + // check all the resources to check if one validates, else the resource is removed from the array. + // if the array ends up empty it means we don't have a resource to attempt because of our skills. + for(int i = 0; i < resources.GetSize(); i++) { - psserver->SendSystemInfo(client->GetClientNum(),"You don't have the skill to %s for %s.",resourcesActions.Get(type),reward); + NaturalResource *nr = resources.Get(i).resource; + if (client->GetCharacterData()->Skills().GetSkillRank((PSSKILL)nr->skill->id).Current() == 0 && + client->GetCharacterData()->Skills().Get((PSSKILL)nr->skill->id).CanTrain()) + { + //we can't attempt this resource so we remove it from our array of possibilities + resources.DeleteIndex(i); + //reduce the iterator position as we are removing an item. + i--; + } + } + + //if we ended up with an empty array it means we don't have the skill to do any of these + if(resources.IsEmpty()) + { + psserver->SendSystemInfo(client->GetClientNum(),"You don't have the skill to %s any resource here.",resourcesActions.Get(type)); return; } // Validate category of equipped item - psItem *item = owner->GetCharacterData()->Inventory().GetInventoryItem(PSCHARACTER_SLOT_RIGHTHAND); - if (!item || nr->item_cat_id != item->GetCategory()->id) + // checks all the resources to see if one validates, else the resource is removed from the array. + // if the array ends up empty it means we don't have a resource to attempt because of our tools. + for(int i = 0; i < resources.GetSize(); i++) { - //try the left hand - item = owner->GetCharacterData()->Inventory().GetInventoryItem(PSCHARACTER_SLOT_LEFTHAND); + NaturalResource *nr = resources.Get(i).resource; + psItem *item = owner->GetCharacterData()->Inventory().GetInventoryItem(PSCHARACTER_SLOT_RIGHTHAND); if (!item || nr->item_cat_id != item->GetCategory()->id) { - psserver->SendSystemError(client->GetClientNum(),"You don't have a good tool to %s with, equipped in your hands.",resourcesActions.Get(type)); - return; + //try the left hand + item = owner->GetCharacterData()->Inventory().GetInventoryItem(PSCHARACTER_SLOT_LEFTHAND); + if (!item || nr->item_cat_id != item->GetCategory()->id) + { + //we can't attempt this resource so we remove it from our array of possibilities + resources.DeleteIndex(i); + //reduce the iterator position as we are removing an item. + i--; + } } } + + //if we ended up with an empty array it means we don't have the tool to do any of these + if(resources.IsEmpty()) + { + psserver->SendSystemError(client->GetClientNum(),"You don't have a good tool to %s with, equipped in your hands.",resourcesActions.Get(type)); + return; + } + + NaturalResource *nr = resources.IsEmpty() ? NULL : resources.Get(0).resource; // Calculate time required int time_req = nr->anim_duration_seconds; @@ -580,6 +610,7 @@ // Function used by super client // TODO generalize the npcclient for now it has no way to specify a specific type it can only dig +// TODO merge somehow in the previous one. This is a ton of duplicated code. void WorkManager::HandleProduction(gemActor *actor,const char *restype,const char *reward) { int mode = actor->GetMode(); @@ -608,33 +639,66 @@ csArray<NearNaturalResource> resources = FindNearestResource(sector,pos,type,reward); - NaturalResource *nr = resources.GetSize() ? resources.Get(0).resource : NULL; - if (!nr) + if(resources.IsEmpty()) { - // psserver->SendSystemInfo(client->GetClientNum(),"You don't see a good place to %s.",type); - Warning4(LOG_SUPERCLIENT,"%s doesn't see a good place to %s for %s.",actor->GetName(),resourcesActions.Get(type),reward); + Warning3(LOG_SUPERCLIENT,"%s doesn't see a good place to %s.",actor->GetName(),resourcesActions.Get(type)); return; } // Validate the skill // 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()) + // check all the resources to check if one validates, else the resource is removed from the array. + // if the array ends up empty it means we don't have a resource to attempt because of our skills. + for(int i = 0; i < resources.GetSize(); i++) { - //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.", - actor->GetName(), ShowID(actor->GetEID()), nr->skill->id, resourcesActions.Get(type), reward); + NaturalResource *nr = resources.Get(i).resource; + if (actor->GetCharacterData()->Skills().GetSkillRank((PSSKILL)nr->skill->id).Current() == 0 && + actor->GetCharacterData()->Skills().Get((PSSKILL)nr->skill->id).CanTrain()) + { + //we can't attempt this resource so we remove it from our array of possibilities + resources.DeleteIndex(i); + //reduce the iterator position as we are removing an item. + i--; + } + } + + //if we ended up with an empty array it means we don't have the skill to do any of these + if(resources.IsEmpty()) + { + Warning5(LOG_SUPERCLIENT,"%s(%s) don't have the skill to %s any resource here.", + actor->GetName(), ShowID(actor->GetEID()), resourcesActions.Get(type), reward); return; } // Validate category of equipped item - psItem *item = actor->GetCharacterData()->Inventory().GetInventoryItem(PSCHARACTER_SLOT_RIGHTHAND); - if (!item || nr->item_cat_id != item->GetCategory()->id) + // checks all the resources to see if one validates, else the resource is removed from the array. + // if the array ends up empty it means we don't have a resource to attempt because of our tools. + for(int i = 0; i < resources.GetSize(); i++) { - // psserver->SendSystemError(client->GetClientNum(),"You don't have a good tool to %s with, equipped in your right hand.",type); - Warning3(LOG_SUPERCLIENT,"%s don't have a good tool to %s with, equipped in right hand.",actor->GetName(),resourcesActions.Get(type)); + NaturalResource *nr = resources.Get(i).resource; + psItem *item = actor->GetCharacterData()->Inventory().GetInventoryItem(PSCHARACTER_SLOT_RIGHTHAND); + if (!item || nr->item_cat_id != item->GetCategory()->id) + { + //try the left hand + item = actor->GetCharacterData()->Inventory().GetInventoryItem(PSCHARACTER_SLOT_LEFTHAND); + if (!item || nr->item_cat_id != item->GetCategory()->id) + { + //we can't attempt this resource so we remove it from our array of possibilities + resources.DeleteIndex(i); + //reduce the iterator position as we are removing an item. + i--; + } + } + } + + //if we ended up with an empty array it means we don't have the tool to do any of these + if(resources.IsEmpty()) + { + Warning3(LOG_SUPERCLIENT,"%s don't have a good tool to %s with, equipped in your hand.",actor->GetName(),resourcesActions.Get(type)); return; } + + NaturalResource *nr = resources.IsEmpty() ? NULL : resources.Get(0).resource; // Calculate time required int time_req = nr->anim_duration_seconds; @@ -698,7 +762,7 @@ } } - if (!nearResources.GetSize()) + if (nearResources.IsEmpty()) Debug2(LOG_TRADE,0, "No resource found for %s\n", reward ? reward : "any resource"); nearResources.Sort(); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wel...@us...> - 2010-07-20 19:22:17
|
Revision: 6051 http://planeshift.svn.sourceforge.net/planeshift/?rev=6051&view=rev Author: weltall2 Date: 2010-07-20 19:22:10 +0000 (Tue, 20 Jul 2010) Log Message: ----------- added support for multiple resource checking in the ending of production will allow to just use /dig /fish /harwest etc without giving the ore (can be done also with the ore if wished) Modified Paths: -------------- trunk/src/server/workmanager.cpp Modified: trunk/src/server/workmanager.cpp =================================================================== --- trunk/src/server/workmanager.cpp 2010-07-20 15:38:43 UTC (rev 6050) +++ trunk/src/server/workmanager.cpp 2010-07-20 19:22:10 UTC (rev 6051) @@ -88,7 +88,8 @@ // Example: TIME(12) is noon. {WorkManager::constraintTime, "TIME", "You can not do this work at this time of the day!"}, - // People in area. + // People in area. 2654 stefano 20 0 360m 334m 4808 R 50 8.7 0:05.67 cc1plus + // Parameter: n,r; where n is number of people and r is the range. // Example: FRIENDS(6,4) is six people within 4. {WorkManager::constraintFriends, "FRIENDS", "You need more people for this work!"}, @@ -120,7 +121,8 @@ //----------------------------------------------------------------------------- WorkManager::WorkManager(CacheManager* cachemanager, EntityManager* entitymanager) -{ +{ + cacheManager = cachemanager; entityManager = entitymanager; currentQuality = 1.00; @@ -135,7 +137,7 @@ calc_repair_exp = psserver->GetMathScriptEngine()->FindScript("Calculate Repair Experience"); calc_mining_chance = psserver->GetMathScriptEngine()->FindScript("Calculate Mining Odds"); calc_mining_exp = psserver->GetMathScriptEngine()->FindScript("Calculate Mining Experience"); - calc_transform_exp = psserver->GetMathScriptEngine()->FindScript("Calculate Trasformation Experience"); + calc_transform_exp = psserver->GetMathScriptEngine()->FindScript("Calculate Trasformation Experience"); calc_lockpick_time = psserver->GetMathScriptEngine()->FindScript("Lockpicking Time"); CS_ASSERT_MSG("Could not load mathscript 'Calculate Repair Rank'", calc_repair_rank); @@ -555,7 +557,7 @@ } return; } - + // Validate the skill // If skill == 0 and can still be trained it's not possible to execute this operation // check all the resources to check if one validates, else the resource is removed from the array. @@ -622,7 +624,8 @@ return; } - NaturalResource *nr = resources.IsEmpty() ? NULL : resources.Get(0).resource; + //get the first resource data for use in time calculation (will be the most difficult to get) + NaturalResource *nr = resources.Get(0).resource; // Calculate time required int time_req = nr->anim_duration_seconds; @@ -732,6 +735,7 @@ return; } + //we check the first item only as that's the one we had at the start psCharacter *workerchar = workEvent->worker->GetCharacterData(); psItem* tool = workerchar->Inventory().GetInventoryItem(PSCHARACTER_SLOT_RIGHTHAND); if (!tool || workEvent->nrr.Get(0).resource->item_cat_id != tool->GetCategory()->id) @@ -748,123 +752,138 @@ return; } } + + bool successfullProduction = false; //used for giving experience later. + size_t resNum = 0; //used to store the last resource checked + //iterate all resources from the most difficult to the most easy to find + //if all fail bad luck. If we find one we break out of the loop. + for(size_t resNum = 0; resNum < workEvent->nrr.GetSize(); resNum++) + { + float roll = psserver->GetRandom(); - float roll = psserver->GetRandom(); + // Get player skill value + float cur_skill = workerchar->Skills().GetSkillRank((PSSKILL)workEvent->nrr.Get(resNum).resource->skill->id).Current(); - // Get player skill value - float cur_skill = workerchar->Skills().GetSkillRank((PSSKILL)workEvent->nrr.Get(0).resource->skill->id).Current(); + // If skill=0, check if it has at least theoretical training in that skill + if (cur_skill==0) { + bool fullTrainingReceived = !workerchar->Skills().Get((PSSKILL)workEvent->nrr.Get(resNum).resource->skill->id).CanTrain(); + if (fullTrainingReceived) + cur_skill = 0.7F; // consider the skill somewhat usable + } - // If skill=0, check if it has at least theoretical training in that skill - if (cur_skill==0) { - bool fullTrainingReceived = !workerchar->Skills().Get((PSSKILL)workEvent->nrr.Get(0).resource->skill->id).CanTrain(); - if (fullTrainingReceived) - cur_skill = 0.7F; // consider the skill somewhat usable - } + // Calculate complexity factor for skill + float f1 = cur_skill / workEvent->nrr.Get(resNum).resource->skill_level; + if (f1 > 1.0) f1 = 1.0; // Clamp value 0..1 - // Calculate complexity factor for skill - float f1 = cur_skill / workEvent->nrr.Get(0).resource->skill_level; - if (f1 > 1.0) f1 = 1.0; // Clamp value 0..1 + // Calculate factor for tool quality + float f2 = tool->GetItemQuality() / workEvent->nrr.Get(resNum).resource->item_quality; + if (f2 > 1.0) f2 = 1.0; // Clamp value 0..1 - // Calculate factor for tool quality - float f2 = tool->GetItemQuality() / workEvent->nrr.Get(0).resource->item_quality; - if (f2 > 1.0) f2 = 1.0; // Clamp value 0..1 + // Calculate factor for distance from center of resource + float dist = workEvent->nrr.Get(resNum).dist; + float f3 = 1 - (dist / workEvent->nrr.Get(resNum).resource->radius); + if (f3 < 0.0) f3 = 0.0f; // Clamp value 0..1 - // Calculate factor for distance from center of resource - float dist = workEvent->nrr.Get(0).dist; - float f3 = 1 - (dist / workEvent->nrr.Get(0).resource->radius); - if (f3 < 0.0) f3 = 0.0f; // Clamp value 0..1 + MathEnvironment env; + env.Define("Distance", f3); // Distance from mine to the actual mining + env.Define("Probability", workEvent->nrr.Get(resNum).resource->probability); // Probability of successful mining + env.Define("Quality", f2); // Quality of mining equipment + env.Define("Skill", f1); // Mining skill + calc_mining_chance->Evaluate(&env); + MathVar *varTotal = env.Lookup("Total"); + float total = varTotal->GetValue(); - MathEnvironment env; - env.Define("Distance", f3); // Distance from mine to the actual mining - env.Define("Probability", workEvent->nrr.Get(0).resource->probability); // Probability of successful mining - env.Define("Quality", f2); // Quality of mining equipment - env.Define("Skill", f1); // Mining skill - calc_mining_chance->Evaluate(&env); - MathVar *varTotal = env.Lookup("Total"); - float total = varTotal->GetValue(); - - csString debug; - debug.AppendFmt( "Probability: %1.3f\n",workEvent->nrr.Get(0).resource->probability); - debug.AppendFmt( "Skill Factor: %1.3f\n",f1); - debug.AppendFmt( "Quality Factor: %1.3f\n",f2); - debug.AppendFmt( "Distance Factor: %1.3f\n",f3); - debug.AppendFmt( "Total Factor: %1.3f\n",total); - debug.AppendFmt( "Roll: %1.3f\n",roll); - if (workEvent->client) - { - Debug2(LOG_TRADE, workEvent->client->GetClientNum(), "%s", debug.GetData()); - } - else - { - Debug2(LOG_TRADE, 0, "%s", debug.GetData()); - } - - - if (roll < total) // successful! - { - psItemStats *newitem = cacheManager->GetBasicItemStatsByID(workEvent->nrr.Get(0).resource->reward); - if (!newitem) + csString debug; + debug.AppendFmt( "Probability: %1.3f\n",workEvent->nrr.Get(resNum).resource->probability); + debug.AppendFmt( "Skill Factor: %1.3f\n",f1); + debug.AppendFmt( "Quality Factor: %1.3f\n",f2); + debug.AppendFmt( "Distance Factor: %1.3f\n",f3); + debug.AppendFmt( "Total Factor: %1.3f\n",total); + debug.AppendFmt( "Roll: %1.3f\n",roll); + if (workEvent->client) { - Bug2("Natural Resource reward item #%d not found!\n",workEvent->nrr.Get(0).resource->reward); + Debug2(LOG_TRADE, workEvent->client->GetClientNum(), "%s", debug.GetData()); } else { - psItem *item = newitem->InstantiateBasicItem(); - if (!item) + Debug2(LOG_TRADE, 0, "%s", debug.GetData()); + } + + + if (roll < total) // successful! + { + psItemStats *newitem = cacheManager->GetBasicItemStatsByID(workEvent->nrr.Get(resNum).resource->reward); + if (!newitem) { - Bug2("Failed instantizing reward item #%d!\n",workEvent->nrr.Get(0).resource->reward); - return; + Bug2("Natural Resource reward item #%d not found!\n",workEvent->nrr.Get(resNum).resource->reward); } - - if (!workerchar->Inventory().AddOrDrop(item)) + else { - 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) + psItem *item = newitem->InstantiateBasicItem(); + if (!item) { - // Assume it's full - psserver->SendSystemInfo(workEvent->client->GetClientNum(),"You found %s, but you can't carry anymore of it so you dropped it", newitem->GetName() ); + Bug2("Failed instantizing reward item #%d!\n",workEvent->nrr.Get(resNum).resource->reward); + return; } - else + + if (!workerchar->Inventory().AddOrDrop(item)) { - Debug5(LOG_SUPERCLIENT,0,"%s(%s) found %s, but dropped it: %s",workEvent->worker->GetName(), - ShowID(workEvent->worker->GetEID()), newitem->GetName(), workerchar->Inventory().lastError.GetDataSafe()); - } + 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())); - } - else - { - if (workEvent->client) - { - psserver->GetCharManager()->UpdateItemViews(workEvent->client->GetClientNum()); - psserver->SendSystemResult(workEvent->client->GetClientNum(),"You've got some %s!", newitem->GetName() ); + if (workEvent->client) + { + // Assume it's full + psserver->SendSystemInfo(workEvent->client->GetClientNum(),"You found %s, but you can't carry anymore of it so you dropped it", newitem->GetName() ); + } + else + { + Debug5(LOG_SUPERCLIENT,0,"%s(%s) found %s, but dropped it: %s",workEvent->worker->GetName(), + ShowID(workEvent->worker->GetEID()), newitem->GetName(), workerchar->Inventory().lastError.GetDataSafe()); + } + } else { - Debug4(LOG_SUPERCLIENT,0,"%s(%s) got some %s.",workEvent->worker->GetName(), - ShowID(workEvent->worker->GetEID()), newitem->GetName()); + if (workEvent->client) + { + psserver->GetCharManager()->UpdateItemViews(workEvent->client->GetClientNum()); + psserver->SendSystemResult(workEvent->client->GetClientNum(),"You've got some %s!", newitem->GetName() ); + } + else + { + Debug4(LOG_SUPERCLIENT,0,"%s(%s) got some %s.",workEvent->worker->GetName(), + ShowID(workEvent->worker->GetEID()), newitem->GetName()); + } } - } - item->SetLoaded(); // Item is fully created - item->Save(false); // First save + item->SetLoaded(); // Item is fully created + item->Save(false); // First save - // No matter if the item could be moved to inventory reset the last position and - // give out skills. - csVector3 pos; - iSector* sector; + // No matter if the item could be moved to inventory reset the last position and + // give out skills. + csVector3 pos; + iSector* sector; - workEvent->worker->GetPosition(pos, sector); + workEvent->worker->GetPosition(pos, sector); - // Store the mining position for the next check. - if (workEvent->client) - { - workEvent->client->GetActor()->SetLastProductionPos(pos); + // Store the mining position for the next check. + if (workEvent->client) + { + workEvent->client->GetActor()->SetLastProductionPos(pos); + } + + //as we found an ore we set we were successfull and exit from the loop (so we don't give the player + //more than one ore at a time) + successfullProduction = true; + break; } } } - else + + + //if we didn't succed in the previous part just tell the player + if(!successfullProduction) { if (workEvent->client) { @@ -884,9 +903,9 @@ float modifier; MathEnvironment env; - env.Define("Success", roll < total); + env.Define("Success", successfullProduction); env.Define("Worker", workEvent->client->GetCharacterData()); - env.Define("Probability", workEvent->nrr.Get(0).resource->probability); // Probability of successful mining + env.Define("Probability", workEvent->nrr.Get(resNum).resource->probability); // Probability of successful mining calc_mining_exp->Evaluate(&env); practicePoints = env.Lookup("ResultPractice")->GetRoundValue(); modifier = env.Lookup("ResultModifier")->GetValue(); @@ -900,7 +919,7 @@ // assign practice and experience if(practicePoints != 0) { - workEvent->client->GetCharacterData()->CalculateAddExperience((PSSKILL)workEvent->nrr.Get(0).resource->skill->id, practicePoints, modifier); + workEvent->client->GetCharacterData()->CalculateAddExperience((PSSKILL)workEvent->nrr.Get(resNum).resource->skill->id, practicePoints, modifier); } else { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wel...@us...> - 2010-07-21 16:27:39
|
Revision: 6054 http://planeshift.svn.sourceforge.net/planeshift/?rev=6054&view=rev Author: weltall2 Date: 2010-07-21 16:27:32 +0000 (Wed, 21 Jul 2010) Log Message: ----------- removed text which has nothing to do here Modified Paths: -------------- trunk/src/server/workmanager.cpp Modified: trunk/src/server/workmanager.cpp =================================================================== --- trunk/src/server/workmanager.cpp 2010-07-21 15:14:27 UTC (rev 6053) +++ trunk/src/server/workmanager.cpp 2010-07-21 16:27:32 UTC (rev 6054) @@ -88,7 +88,7 @@ // Example: TIME(12) is noon. {WorkManager::constraintTime, "TIME", "You can not do this work at this time of the day!"}, - // People in area. 2654 stefano 20 0 360m 334m 4808 R 50 8.7 0:05.67 cc1plus + // People in area. // Parameter: n,r; where n is number of people and r is the range. // Example: FRIENDS(6,4) is six people within 4. @@ -874,7 +874,7 @@ } //as we found an ore we set we were successfull and exit from the loop (so we don't give the player - //more than one ore at a time) + //more than one ore at a time successfullProduction = true; break; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wel...@us...> - 2010-08-01 07:19:48
|
Revision: 6111 http://planeshift.svn.sourceforge.net/planeshift/?rev=6111&view=rev Author: weltall2 Date: 2010-08-01 07:19:41 +0000 (Sun, 01 Aug 2010) Log Message: ----------- style cleanup Modified Paths: -------------- trunk/src/server/workmanager.cpp Modified: trunk/src/server/workmanager.cpp =================================================================== --- trunk/src/server/workmanager.cpp 2010-08-01 07:15:56 UTC (rev 6110) +++ trunk/src/server/workmanager.cpp 2010-08-01 07:19:41 UTC (rev 6111) @@ -89,7 +89,6 @@ {WorkManager::constraintTime, "TIME", "You can not do this work at this time of the day!"}, // People in area. - // Parameter: n,r; where n is number of people and r is the range. // Example: FRIENDS(6,4) is six people within 4. {WorkManager::constraintFriends, "FRIENDS", "You need more people for this work!"}, This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <rly...@us...> - 2010-08-07 12:22:19
|
Revision: 6145 http://planeshift.svn.sourceforge.net/planeshift/?rev=6145&view=rev Author: rlydontknow Date: 2010-08-07 12:22:13 +0000 (Sat, 07 Aug 2010) Log Message: ----------- fixed PS#4649 Modified Paths: -------------- trunk/src/server/workmanager.cpp Modified: trunk/src/server/workmanager.cpp =================================================================== --- trunk/src/server/workmanager.cpp 2010-08-06 18:38:04 UTC (rev 6144) +++ trunk/src/server/workmanager.cpp 2010-08-07 12:22:13 UTC (rev 6145) @@ -529,7 +529,7 @@ // Make sure they are not in the same loc as the last dig. // skip this check for NPCs actor->GetLastProductionPos(pos); - if (!client && SameProductionPosition(actor, pos)) + if (client && SameProductionPosition(actor, pos)) { psserver->SendSystemError(client->GetClientNum(), "You cannot %s in the same place twice in a" This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wel...@us...> - 2010-09-16 16:36:33
|
Revision: 6200 http://planeshift.svn.sourceforge.net/planeshift/?rev=6200&view=rev Author: weltall2 Date: 2010-09-16 16:36:26 +0000 (Thu, 16 Sep 2010) Log Message: ----------- silenced production message about natural resources as it works correctly. Modified Paths: -------------- trunk/src/server/workmanager.cpp Modified: trunk/src/server/workmanager.cpp =================================================================== --- trunk/src/server/workmanager.cpp 2010-09-16 14:19:32 UTC (rev 6199) +++ trunk/src/server/workmanager.cpp 2010-09-16 16:36:26 UTC (rev 6200) @@ -709,7 +709,7 @@ for(int i= 0; i < nearResources.GetSize(); i++) { NearNaturalResource & res = nearResources.Get(i); - printf("found res %d(%s): dist %f, probability %f, level %d\n", i, res.resource->reward_nickname.GetData(), res.dist, res.resource->probability, res.resource->skill_level); + Debug6(LOG_TRADE,0, "found res %d(%s): dist %f, probability %f, level %d\n", i, res.resource->reward_nickname.GetData(), res.dist, res.resource->probability, res.resource->skill_level); } return nearResources; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wel...@us...> - 2010-10-25 13:04:46
|
Revision: 6309 http://planeshift.svn.sourceforge.net/planeshift/?rev=6309&view=rev Author: weltall2 Date: 2010-10-25 13:04:36 +0000 (Mon, 25 Oct 2010) Log Message: ----------- need to have a proper look at this code Modified Paths: -------------- trunk/src/server/workmanager.cpp Modified: trunk/src/server/workmanager.cpp =================================================================== --- trunk/src/server/workmanager.cpp 2010-10-24 21:24:51 UTC (rev 6308) +++ trunk/src/server/workmanager.cpp 2010-10-25 13:04:36 UTC (rev 6309) @@ -2078,7 +2078,8 @@ if (secure) psserver->SendSystemInfo(clientNum,"Scheduled to finish work on %s in %1.1f seconds.\n", item->GetName(), (float)delay); // Let the client know when the transformation is ready - owner->SetMode(PSCHARACTER_MODE_WORK, delay); + //owner->SetMode(PSCHARACTER_MODE_WORK, delay); + //^ this needs investigation // Make sure we have an item if (!item) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wel...@us...> - 2010-10-25 17:09:10
|
Revision: 6310 http://planeshift.svn.sourceforge.net/planeshift/?rev=6310&view=rev Author: weltall2 Date: 2010-10-25 17:09:04 +0000 (Mon, 25 Oct 2010) Log Message: ----------- removed this line it shouldn't have been used in this place Modified Paths: -------------- trunk/src/server/workmanager.cpp Modified: trunk/src/server/workmanager.cpp =================================================================== --- trunk/src/server/workmanager.cpp 2010-10-25 13:04:36 UTC (rev 6309) +++ trunk/src/server/workmanager.cpp 2010-10-25 17:09:04 UTC (rev 6310) @@ -2077,10 +2077,6 @@ // Let the server admin know if (secure) psserver->SendSystemInfo(clientNum,"Scheduled to finish work on %s in %1.1f seconds.\n", item->GetName(), (float)delay); - // Let the client know when the transformation is ready - //owner->SetMode(PSCHARACTER_MODE_WORK, delay); - //^ this needs investigation - // Make sure we have an item if (!item) { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wel...@us...> - 2010-11-05 14:05:18
|
Revision: 6346 http://planeshift.svn.sourceforge.net/planeshift/?rev=6346&view=rev Author: weltall2 Date: 2010-11-05 14:05:12 +0000 (Fri, 05 Nov 2010) Log Message: ----------- fixed variable types thanks to mikesflowers for pointing out Modified Paths: -------------- trunk/src/server/workmanager.cpp Modified: trunk/src/server/workmanager.cpp =================================================================== --- trunk/src/server/workmanager.cpp 2010-11-05 13:51:44 UTC (rev 6345) +++ trunk/src/server/workmanager.cpp 2010-11-05 14:05:12 UTC (rev 6346) @@ -567,7 +567,7 @@ // If skill == 0 and can still be trained it's not possible to execute this operation // check all the resources to check if one validates, else the resource is removed from the array. // if the array ends up empty it means we don't have a resource to attempt because of our skills. - for(int i = 0; i < resources.GetSize(); i++) + for(size_t i = 0; i < resources.GetSize(); i++) { NaturalResource *nr = resources.Get(i).resource; if (actor->GetCharacterData()->Skills().GetSkillRank((PSSKILL)nr->skill->id).Current() == 0 && @@ -597,7 +597,7 @@ // Validate category of equipped item // checks all the resources to see if one validates, else the resource is removed from the array. // if the array ends up empty it means we don't have a resource to attempt because of our tools. - for(int i = 0; i < resources.GetSize(); i++) + for(size_t i = 0; i < resources.GetSize(); i++) { NaturalResource *nr = resources.Get(i).resource; psItem *item = actor->GetCharacterData()->Inventory().GetInventoryItem(PSCHARACTER_SLOT_RIGHTHAND); @@ -689,8 +689,7 @@ Debug2(LOG_TRADE,0, "Finding nearest resource for %s\n", reward ? reward : "any resource"); - float mindist = 100000; - for (size_t i=0; i<resources.GetSize(); i++) + for (size_t i = 0; i < resources.GetSize(); i++) { NaturalResource *curr=resources[i]; if (curr->sector==sectorid) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wel...@us...> - 2010-11-21 09:10:38
|
Revision: 6419 http://planeshift.svn.sourceforge.net/planeshift/?rev=6419&view=rev Author: weltall2 Date: 2010-11-21 09:10:32 +0000 (Sun, 21 Nov 2010) Log Message: ----------- added secure in the enviroment Modified Paths: -------------- trunk/src/server/workmanager.cpp Modified: trunk/src/server/workmanager.cpp =================================================================== --- trunk/src/server/workmanager.cpp 2010-11-20 19:58:51 UTC (rev 6418) +++ trunk/src/server/workmanager.cpp 2010-11-21 09:10:32 UTC (rev 6419) @@ -3549,6 +3549,7 @@ env.Define("Object", transItem); env.Define("Worker", worker); env.Define("Process", process); + env.Define("Secure", secure); calc_transform_apply_skill->Evaluate(&env); currentQuality = env.Lookup("Quality")->GetValue(); return (currentQuality == 0); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wel...@us...> - 2010-11-24 17:40:47
|
Revision: 6435 http://planeshift.svn.sourceforge.net/planeshift/?rev=6435&view=rev Author: weltall2 Date: 2010-11-24 17:40:41 +0000 (Wed, 24 Nov 2010) Log Message: ----------- set the right variable type (size t when working with csarray) Modified Paths: -------------- trunk/src/server/workmanager.cpp Modified: trunk/src/server/workmanager.cpp =================================================================== --- trunk/src/server/workmanager.cpp 2010-11-24 16:30:20 UTC (rev 6434) +++ trunk/src/server/workmanager.cpp 2010-11-24 17:40:41 UTC (rev 6435) @@ -712,10 +712,10 @@ nearResources.Sort(); - for(unsigned int i= 0; i < nearResources.GetSize(); i++) + for(size_t i= 0; i < nearResources.GetSize(); i++) { NearNaturalResource & res = nearResources.Get(i); - Debug6(LOG_TRADE,0, "found res %d(%s): dist %f, probability %f, level %d\n", i, res.resource->reward_nickname.GetData(), res.dist, res.resource->probability, res.resource->skill_level); + Debug6(LOG_TRADE,0, "found res %zu(%s): dist %f, probability %f, level %d\n", i, res.resource->reward_nickname.GetData(), res.dist, res.resource->probability, res.resource->skill_level); } return nearResources; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wel...@us...> - 2010-12-18 10:29:44
|
Revision: 6545 http://planeshift.svn.sourceforge.net/planeshift/?rev=6545&view=rev Author: weltall2 Date: 2010-12-18 10:29:38 +0000 (Sat, 18 Dec 2010) Log Message: ----------- when lockpicking use the actual action location when checking for instance and distance not the lock position Modified Paths: -------------- trunk/src/server/workmanager.cpp Modified: trunk/src/server/workmanager.cpp =================================================================== --- trunk/src/server/workmanager.cpp 2010-12-17 08:50:06 UTC (rev 6544) +++ trunk/src/server/workmanager.cpp 2010-12-18 10:29:38 UTC (rev 6545) @@ -245,18 +245,16 @@ 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); if(gemAction) { target = gemAction->GetAction()->GetRealItem(); - IsActionLocation = true; } // Check target gem and range ignoring Y co-ordinate - if (!target || client->GetActor()->RangeTo(IsActionLocation ? target : client->GetTargetObject(), true, IsActionLocation) > RANGE_TO_USE) + if (!target || client->GetActor()->RangeTo(client->GetTargetObject(), true, 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...> - 2010-12-26 11:23:57
|
Revision: 6611 http://planeshift.svn.sourceforge.net/planeshift/?rev=6611&view=rev Author: weltall2 Date: 2010-12-26 11:23:51 +0000 (Sun, 26 Dec 2010) Log Message: ----------- added an additional variable for the script Modified Paths: -------------- trunk/src/server/workmanager.cpp Modified: trunk/src/server/workmanager.cpp =================================================================== --- trunk/src/server/workmanager.cpp 2010-12-26 11:23:14 UTC (rev 6610) +++ trunk/src/server/workmanager.cpp 2010-12-26 11:23:51 UTC (rev 6611) @@ -3548,6 +3548,7 @@ env.Define("Worker", worker); env.Define("Process", process); env.Define("Secure", secure); + env.Define("AmountModifier", amountModifier); calc_transform_apply_skill->Evaluate(&env); currentQuality = env.Lookup("Quality")->GetValue(); return (currentQuality == 0); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wel...@us...> - 2010-12-31 22:23:21
|
Revision: 6672 http://planeshift.svn.sourceforge.net/planeshift/?rev=6672&view=rev Author: weltall2 Date: 2010-12-31 22:23:15 +0000 (Fri, 31 Dec 2010) Log Message: ----------- last fixes now the script should work well Modified Paths: -------------- trunk/src/server/workmanager.cpp Modified: trunk/src/server/workmanager.cpp =================================================================== --- trunk/src/server/workmanager.cpp 2010-12-31 21:56:29 UTC (rev 6671) +++ trunk/src/server/workmanager.cpp 2010-12-31 22:23:15 UTC (rev 6672) @@ -3312,7 +3312,7 @@ float startQuality = transItem->GetItemQuality(); if ( process ) { - if ( result > 0 && !ApplySkills(workEvent->GetKFactor(), workEvent->GetTranformationItem(), owner, itemQty == 0, currentQuality, process) && process->GetGarbageId() != 0 ) + if ( result > 0 && !ApplySkills(workEvent->GetKFactor(), workEvent->GetTranformationItem(), owner, itemQty == 0, currentQuality, process, trans) && process->GetGarbageId() != 0 ) { result = process->GetGarbageId(); resultQty = process->GetGarbageQty(); @@ -3532,10 +3532,11 @@ } // Apply skills if any to quality and practice points -bool WorkManager::ApplySkills(float factor, psItem* transItem, gemActor *worker, bool amountModifier, float ¤tQuality, psTradeProcesses* process) +bool WorkManager::ApplySkills(float factor, psItem* transItem, gemActor *worker, bool amountModifier, float ¤tQuality, psTradeProcesses* process, psTradeTransformations* trans) { if(calc_transform_apply_skill) { + printf("using script\n"); MathEnvironment env; env.Define("Quality", currentQuality); env.Define("Factor", factor); @@ -3543,11 +3544,13 @@ env.Define("BasicObject", transItem->GetBaseStats()); env.Define("Worker", worker); env.Define("Process", process); + env.Define("Transform", trans); env.Define("Secure", secure); env.Define("AmountModifier", amountModifier); calc_transform_apply_skill->Evaluate(&env); currentQuality = env.Lookup("Quality")->GetValue(); - return (currentQuality == 0); + printf("%f\n", currentQuality); + return (currentQuality > 0); } // just return for processless transforms This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wel...@us...> - 2010-12-31 22:23:48
|
Revision: 6673 http://planeshift.svn.sourceforge.net/planeshift/?rev=6673&view=rev Author: weltall2 Date: 2010-12-31 22:23:42 +0000 (Fri, 31 Dec 2010) Log Message: ----------- removed printf Modified Paths: -------------- trunk/src/server/workmanager.cpp Modified: trunk/src/server/workmanager.cpp =================================================================== --- trunk/src/server/workmanager.cpp 2010-12-31 22:23:15 UTC (rev 6672) +++ trunk/src/server/workmanager.cpp 2010-12-31 22:23:42 UTC (rev 6673) @@ -3536,7 +3536,6 @@ { if(calc_transform_apply_skill) { - printf("using script\n"); MathEnvironment env; env.Define("Quality", currentQuality); env.Define("Factor", factor); @@ -3549,7 +3548,6 @@ env.Define("AmountModifier", amountModifier); calc_transform_apply_skill->Evaluate(&env); currentQuality = env.Lookup("Quality")->GetValue(); - printf("%f\n", currentQuality); return (currentQuality > 0); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wel...@us...> - 2011-01-13 15:06:04
|
Revision: 6762 http://planeshift.svn.sourceforge.net/planeshift/?rev=6762&view=rev Author: weltall2 Date: 2011-01-13 15:05:58 +0000 (Thu, 13 Jan 2011) Log Message: ----------- removed superflous declaration Modified Paths: -------------- trunk/src/server/workmanager.cpp Modified: trunk/src/server/workmanager.cpp =================================================================== --- trunk/src/server/workmanager.cpp 2011-01-13 14:36:17 UTC (rev 6761) +++ trunk/src/server/workmanager.cpp 2011-01-13 15:05:58 UTC (rev 6762) @@ -3540,7 +3540,6 @@ env.Define("Quality", currentQuality); env.Define("Factor", factor); env.Define("Object", transItem); - env.Define("BasicObject", transItem->GetBaseStats()); env.Define("Worker", worker); env.Define("Process", process); env.Define("Transform", trans); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wel...@us...> - 2011-02-06 18:55:39
|
Revision: 6862 http://planeshift.svn.sourceforge.net/planeshift/?rev=6862&view=rev Author: weltall2 Date: 2011-02-06 18:55:33 +0000 (Sun, 06 Feb 2011) Log Message: ----------- right variable name Modified Paths: -------------- trunk/src/server/workmanager.cpp Modified: trunk/src/server/workmanager.cpp =================================================================== --- trunk/src/server/workmanager.cpp 2011-02-06 18:54:33 UTC (rev 6861) +++ trunk/src/server/workmanager.cpp 2011-02-06 18:55:33 UTC (rev 6862) @@ -2511,7 +2511,7 @@ env.Define("Object", transItem); env.Define("Worker", worker); env.Define("Transform", trans); - calc_transform_apply_skill->Evaluate(&env); + calc_transform_time->Evaluate(&env); int time = env.Lookup("Time")->GetValue(); return time; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |