From: <wel...@us...> - 2012-02-09 18:03:20
|
Revision: 8072 http://planeshift.svn.sourceforge.net/planeshift/?rev=8072&view=rev Author: weltall2 Date: 2012-02-09 18:03:11 +0000 (Thu, 09 Feb 2012) Log Message: ----------- moved the deletion of the item modifiers so they are deallocated always Modified Paths: -------------- trunk/src/server/bulkobjects/psitem.cpp Modified: trunk/src/server/bulkobjects/psitem.cpp =================================================================== --- trunk/src/server/bulkobjects/psitem.cpp 2012-02-09 18:00:43 UTC (rev 8071) +++ trunk/src/server/bulkobjects/psitem.cpp 2012-02-09 18:03:11 UTC (rev 8072) @@ -198,6 +198,9 @@ { // printf("In item %s:%u dtor...\n", GetName(), uid); + //remove the itemModifiers class as it's no more needed + delete itemModifiers; + if (!current_stats) return; @@ -230,9 +233,6 @@ if (gItem) gItem->UnregisterCallback(this); gItem = NULL; - - //remove the itemModifiers class as it's no more needed - delete itemModifiers; } void psItem::UpdateItemQuality(uint32 id, float qual) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wel...@us...> - 2012-02-10 22:25:56
|
Revision: 8078 http://planeshift.svn.sourceforge.net/planeshift/?rev=8078&view=rev Author: weltall2 Date: 2012-02-10 22:25:50 +0000 (Fri, 10 Feb 2012) Log Message: ----------- fixed PS#5541 - single author books generate error when read by third party Modified Paths: -------------- trunk/src/server/bulkobjects/psitem.cpp Modified: trunk/src/server/bulkobjects/psitem.cpp =================================================================== --- trunk/src/server/bulkobjects/psitem.cpp 2012-02-10 16:09:43 UTC (rev 8077) +++ trunk/src/server/bulkobjects/psitem.cpp 2012-02-10 22:25:50 UTC (rev 8078) @@ -3189,7 +3189,7 @@ //is it a writable book? In our inventory? Are we the author? bool shouldWrite = (GetIsWriteable() && GetOwningCharacter() == client->GetCharacterData() && - ( IsThisTheCreator(client->GetCharacterData()->GetPID()) || psserver->CheckAccess(client, "write all creative")) ); + ( IsThisTheCreator(client->GetCharacterData()->GetPID()) || psserver->CheckAccess(client, "write all creative", false)) ); // CPrintf(CON_DEBUG,"Sent text for book %u %u\n",slotID, containerID); psReadBookTextMessage outgoing(client->GetClientNum(), name, text, shouldWrite, slotID, containerID,GetCreativeBackgroundImg()); @@ -3236,7 +3236,7 @@ // writeable sketch? in inventory? author? gm? bool sketchReadOnly = !(GetIsWriteable() && GetOwningCharacter() == client->GetCharacterData() && - (IsThisTheCreator(client->GetCharacterData()->GetPID()) || psserver->CheckAccess(client, "write all creative")) ); + (IsThisTheCreator(client->GetCharacterData()->GetPID()) || psserver->CheckAccess(client, "write all creative", false)) ); if (sketchReadOnly) xml.Append("<rdonly/>"); @@ -3261,7 +3261,7 @@ { bool readOnly = !(GetIsWriteable() && GetOwningCharacter() == client->GetCharacterData() && - (IsThisTheCreator(client->GetCharacterData()->GetPID()) || psserver->CheckAccess(client, "write all creative"))); + (IsThisTheCreator(client->GetCharacterData()->GetPID()) || psserver->CheckAccess(client, "write all creative", false))); psMusicalSheetMessage msg(client->GetClientNum(), GetUID(), readOnly, false, GetName(), GetMusicalSheet().GetDataSafe()); msg.SendMessage(); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wel...@us...> - 2012-05-04 08:41:07
|
Revision: 8263 http://planeshift.svn.sourceforge.net/planeshift/?rev=8263&view=rev Author: weltall2 Date: 2012-05-04 08:41:01 +0000 (Fri, 04 May 2012) Log Message: ----------- added an :Id field to get the item UID from mathscript Modified Paths: -------------- trunk/src/server/bulkobjects/psitem.cpp Modified: trunk/src/server/bulkobjects/psitem.cpp =================================================================== --- trunk/src/server/bulkobjects/psitem.cpp 2012-05-03 18:09:56 UTC (rev 8262) +++ trunk/src/server/bulkobjects/psitem.cpp 2012-05-04 08:41:01 UTC (rev 8263) @@ -2240,6 +2240,10 @@ { return (double)GetStackCount(); } + else if(property == "Id") + { + return (double)GetUID(); + } else { CPrintf(CON_ERROR, "psItem::GetProperty(%s) failed\n",ptr); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wel...@us...> - 2012-05-29 10:55:58
|
Revision: 8321 http://planeshift.svn.sourceforge.net/planeshift/?rev=8321&view=rev Author: weltall2 Date: 2012-05-29 10:55:47 +0000 (Tue, 29 May 2012) Log Message: ----------- added quality setters for mathscript for items Item:SetQuality(quality) Item:SetMaxQuality(quality) Modified Paths: -------------- trunk/src/server/bulkobjects/psitem.cpp Modified: trunk/src/server/bulkobjects/psitem.cpp =================================================================== --- trunk/src/server/bulkobjects/psitem.cpp 2012-05-29 10:24:42 UTC (rev 8320) +++ trunk/src/server/bulkobjects/psitem.cpp 2012-05-29 10:55:47 UTC (rev 8321) @@ -2296,6 +2296,28 @@ return (double) modifierIds[int(params[0])]; } + //Sets the quality of the item + if(function == "SetQuality") + { + float quality = params[0]; + if(quality > 0 && quality <= 300) + { + SetItemQuality(quality); + } + return (double) 0.0f; + } + + //Sets the quality of the item + if(function == "SetMaxQuality") + { + double quality = params[0]; + if(quality > 0 && quality <= 300) + { + SetMaxItemQuality(quality); + } + return (double) 0.0f; + } + CPrintf(CON_ERROR, "psItem::CalcFunction(%s) failed\n", functionName); return 0; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <lpa...@us...> - 2012-06-13 17:30:08
|
Revision: 8361 http://planeshift.svn.sourceforge.net/planeshift/?rev=8361&view=rev Author: lpancallo Date: 2012-06-13 17:30:02 +0000 (Wed, 13 Jun 2012) Log Message: ----------- fixed calculation error. Modified Paths: -------------- trunk/src/server/bulkobjects/psitem.cpp Modified: trunk/src/server/bulkobjects/psitem.cpp =================================================================== --- trunk/src/server/bulkobjects/psitem.cpp 2012-06-13 13:42:56 UTC (rev 8360) +++ trunk/src/server/bulkobjects/psitem.cpp 2012-06-13 17:30:02 UTC (rev 8361) @@ -3524,9 +3524,6 @@ calcRarity *= 0.01; } - // return percentage - calcRarity *= 100; - return calcRarity; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <lpa...@us...> - 2012-09-24 22:15:11
|
Revision: 8449 http://planeshift.svn.sourceforge.net/planeshift/?rev=8449&view=rev Author: lpancallo Date: 2012-09-24 22:15:05 +0000 (Mon, 24 Sep 2012) Log Message: ----------- Fixed wrong passing of argument as csString instead of const char* Modified Paths: -------------- trunk/src/server/bulkobjects/psitem.cpp Modified: trunk/src/server/bulkobjects/psitem.cpp =================================================================== --- trunk/src/server/bulkobjects/psitem.cpp 2012-09-24 21:14:15 UTC (rev 8448) +++ trunk/src/server/bulkobjects/psitem.cpp 2012-09-24 22:15:05 UTC (rev 8449) @@ -776,7 +776,7 @@ flagString.Append("IDENTIFIED"); } - targetQuery->AddField("flags",flagString); + targetQuery->AddField("flags",flagString.GetData()); // item_stats_id_standard - base stats if non unique, unique stats if unique targetQuery->AddField("item_stats_id_standard",GetBaseStats()->GetUID()); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <lpa...@us...> - 2012-09-24 23:08:10
|
Revision: 8450 http://planeshift.svn.sourceforge.net/planeshift/?rev=8450&view=rev Author: lpancallo Date: 2012-09-24 23:08:04 +0000 (Mon, 24 Sep 2012) Log Message: ----------- Added check on item description window for identifiable items. Modified Paths: -------------- trunk/src/server/bulkobjects/psitem.cpp Modified: trunk/src/server/bulkobjects/psitem.cpp =================================================================== --- trunk/src/server/bulkobjects/psitem.cpp 2012-09-24 22:15:05 UTC (rev 8449) +++ trunk/src/server/bulkobjects/psitem.cpp 2012-09-24 23:08:04 UTC (rev 8450) @@ -3019,8 +3019,14 @@ itemInfo += lockInfo; } + // Item needs to be identified to show stats + bool identifiable = GetIsIdentifiable(); + if (identifiable) { + itemInfo += "\nThis item is magical or has special properties. It needs to be identified."; + } + // Item is a weapon - if(GetIsMeleeWeapon() || GetIsRangeWeapon()) + if((GetIsMeleeWeapon() || GetIsRangeWeapon()) && !identifiable) { csString speed, damage; // Weapon Speed @@ -3045,7 +3051,7 @@ } // Item is armor - if(GetIsArmor()) + if(GetIsArmor() && !identifiable) { csString armor_type = "\n\n"; switch(GetBaseStats()->Armor().Type()) @@ -3093,11 +3099,12 @@ // Item is random looted float rarity = GetRarity(); - if(rarity!=0 && rarity<100) + if(rarity!=0 && rarity<100 && !identifiable) { itemInfo += csString().Format("\nRarity: %s", GetRarityName().GetData()); } + // send description to client psViewItemDescription outgoing(client->GetClientNum(), itemName.GetData(), itemInfo.GetData(), GetImageName(), stack_count); if(outgoing.valid) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ma...@us...> - 2013-04-01 18:25:49
|
Revision: 8659 http://planeshift.svn.sourceforge.net/planeshift/?rev=8659&view=rev Author: magodra Date: 2013-04-01 18:25:42 +0000 (Mon, 01 Apr 2013) Log Message: ----------- - Added more of the item descriptions also to open containers. Modified Paths: -------------- trunk/src/server/bulkobjects/psitem.cpp Modified: trunk/src/server/bulkobjects/psitem.cpp =================================================================== --- trunk/src/server/bulkobjects/psitem.cpp 2013-04-01 17:10:56 UTC (rev 8658) +++ trunk/src/server/bulkobjects/psitem.cpp 2013-04-01 18:25:42 UTC (rev 8659) @@ -3136,30 +3136,62 @@ bool psItem::SendContainerContents(Client* client, int containerID) { - if(GetIsLocked() && client->GetSecurityLevel() < GM_LEVEL_2) - return SendItemDescription(client); + csString itemCategory, itemInfo; - csString desc(GetDescription()); + // If item is looked send standard item description unless GM + if(GetIsLocked()) + { + if (client->GetSecurityLevel() < GM_LEVEL_2) + { + itemInfo += "This item is locked\n\n"; + } + else + { + return SendItemDescription(client); + } + } + itemCategory.Format("Category: %s", current_stats->GetCategory()->name.GetData()); + itemInfo += itemCategory; + // FIXME: This function is called for world containers too... psCharacterInventory &inv = client->GetCharacterData()->Inventory(); float containerWeight = GetWeight(); + float ssize = GetItemSize(); - desc.AppendFmt("\n\n%s Weight: %.2f\n", GetName(), containerWeight); + itemInfo.AppendFmt("\n%s Weight: %.3f", GetName(), containerWeight); + itemInfo.AppendFmt("\n%s Size: %.3f", GetName(), ssize); if(inv.GetContainedItemCount(this) > 0) { float containedWeight = inv.GetContainedWeight(this); - desc.AppendFmt("Contents Weight: %.2f\nTotal Weight: %.2f\n\n", - containedWeight, - containedWeight + containerWeight); + itemInfo.AppendFmt("\nContents Weight: %.2f\nTotal Weight: %.2f", + containedWeight, + containedWeight + containerWeight); } - desc.AppendFmt("Capacity: %.2f/%u", inv.GetContainedSize(this), GetContainerMaxSize()); + itemInfo.AppendFmt("\nCapacity: %.2f/%u", inv.GetContainedSize(this), GetContainerMaxSize()); + if(GetGuardingCharacterID().IsValid()) + { + csString guardingChar; + gemActor* guardian = psserver->entitymanager->GetGEM()->FindPlayerEntity(GetGuardingCharacterID()); + if(guardian && guardian->GetCharacterData()) + { + guardingChar.Format("\nGuarded by: %s", guardian->GetCharacterData()->GetCharFullName()); + itemInfo += guardingChar; + } + } + + if(strcmp(GetDescription(),"0") != 0) + { + itemInfo += "\n\nDescription: "; + itemInfo += GetDescription(); + } + psViewContainerDescription outgoing(client->GetClientNum(), GetName(), - desc, + itemInfo, GetImageName(), 0); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ma...@us...> - 2013-04-10 19:34:54
|
Revision: 8692 http://planeshift.svn.sourceforge.net/planeshift/?rev=8692&view=rev Author: magodra Date: 2013-04-10 19:34:47 +0000 (Wed, 10 Apr 2013) Log Message: ----------- - Code style fixes. Modified Paths: -------------- trunk/src/server/bulkobjects/psitem.cpp Modified: trunk/src/server/bulkobjects/psitem.cpp =================================================================== --- trunk/src/server/bulkobjects/psitem.cpp 2013-04-10 19:22:40 UTC (rev 8691) +++ trunk/src/server/bulkobjects/psitem.cpp 2013-04-10 19:34:47 UTC (rev 8692) @@ -104,8 +104,8 @@ PID guardCharacterID = item->GetGuardingCharacterID(); gemActor* guardActor = psserver->entitymanager->GetGEM()->FindPlayerEntity(guardCharacterID); if(guardCharacterID.IsValid() && - guardActor && guardActor->InsideGuardedArea(item->GetGemObject()) && - (guardActor->GetInstance() == instance)) + guardActor && guardActor->InsideGuardedArea(item->GetGemObject()) && + (guardActor->GetInstance() == instance)) { // Item is guarded, reschedule item->ScheduleRemoval(); @@ -1252,7 +1252,9 @@ void psItem::UpdateInventoryStatus(psCharacter* owner,uint32 parent_id, INVENTORY_SLOT_NUMBER slot) { if(IsEquipped() && owning_character) + { owning_character->Inventory().Unequip(this); + } SetOwningCharacter(owner); parent_item_InstanceID = parent_id; @@ -2901,8 +2903,8 @@ if(child->parent_item_InstanceID == GetUID()) { outgoing.AddContents(child->GetName(), child->GetMeshName(), child->GetTextureName(), - child->GetImageName(), child->GetPurifyStatus(), child->GetLocInParent(), - child->GetStackCount()); + child->GetImageName(), child->GetPurifyStatus(), + child->GetLocInParent(), child->GetStackCount()); } } return; @@ -2919,8 +2921,9 @@ } int stackCount = container->CanTake(client,child) ? child->GetStackCount() : -1; - outgoing.AddContents(child->GetName(), child->GetMeshName(), child->GetTextureName(), child->GetImageName(), - child->GetPurifyStatus(), child->GetLocInParent(), stackCount); + outgoing.AddContents(child->GetName(), child->GetMeshName(), child->GetTextureName(), + child->GetImageName(), child->GetPurifyStatus(), + child->GetLocInParent(), stackCount); } } @@ -3300,30 +3303,30 @@ int priSkill = craftArray->Get(count)->priSkillId; if(priSkill >= 0 && craftArray->Get(count)->minPriSkill > character->Skills().GetSkillRank((PSSKILL) priSkill).Current()) { - csString query; + csString query; - query.Format("select * from skills where skill_id=%d", priSkill ); - Result result(db->Select(query)); + query.Format("select * from skills where skill_id=%d", priSkill ); + Result result(db->Select(query)); - transString.Append("[["); - transString.Append( result[0].GetString( "Name") ); - transString.Append("]]" ); - transString.Append(craftArray->Get(count)->craftStepDescription); + transString.Append("[["); + transString.Append( result[0].GetString( "Name") ); + transString.Append("]]" ); + transString.Append(craftArray->Get(count)->craftStepDescription); continue; } // Check if craft step minimum seconday skill level is meet by client int secSkill = craftArray->Get(count)->secSkillId; if(secSkill >= 0 && craftArray->Get(count)->minSecSkill > (int) character->Skills().GetSkillRank((PSSKILL) secSkill).Current()) { - csString query; + csString query; - query.Format("select * from skills where skill_id=%d", secSkill ); - Result result(db->Select(query)); + query.Format("select * from skills where skill_id=%d", secSkill ); + Result result(db->Select(query)); - transString.Append("With higher "); - transString.Append( result[0].GetString( "Name") ); - transString.Append(" skill you could: " ); - transString.Append(craftArray->Get(count)->craftStepDescription); + transString.Append("With higher "); + transString.Append( result[0].GetString( "Name") ); + transString.Append(" skill you could: " ); + transString.Append(craftArray->Get(count)->craftStepDescription); continue; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wel...@us...> - 2013-07-13 08:01:10
|
Revision: 8736 http://sourceforge.net/p/planeshift/code/8736 Author: weltall2 Date: 2013-07-13 08:01:04 +0000 (Sat, 13 Jul 2013) Log Message: ----------- added latency property for items mathscript. Modified Paths: -------------- trunk/src/server/bulkobjects/psitem.cpp Modified: trunk/src/server/bulkobjects/psitem.cpp =================================================================== --- trunk/src/server/bulkobjects/psitem.cpp 2013-07-12 23:19:50 UTC (rev 8735) +++ trunk/src/server/bulkobjects/psitem.cpp 2013-07-13 08:01:04 UTC (rev 8736) @@ -2127,6 +2127,10 @@ { return GetCounterBlockValue(); } + else if(property == "Latency") + { + return GetLatency(); + } else if(property == "UntargetedBlockValue") { return GetUntargetedBlockValue(); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <lpa...@us...> - 2013-08-13 13:28:09
|
Revision: 8762 http://sourceforge.net/p/planeshift/code/8762 Author: lpancallo Date: 2013-08-13 13:28:06 +0000 (Tue, 13 Aug 2013) Log Message: ----------- Fixed bug which was setting IDENTIFIABLE flag to all items as result of crafting. Now it sets it only if the modifier is >0. This is due to "Apply Post Trade Process" mathscript. Modified Paths: -------------- trunk/src/server/bulkobjects/psitem.cpp Modified: trunk/src/server/bulkobjects/psitem.cpp =================================================================== --- trunk/src/server/bulkobjects/psitem.cpp 2013-08-13 08:48:16 UTC (rev 8761) +++ trunk/src/server/bulkobjects/psitem.cpp 2013-08-13 13:28:06 UTC (rev 8762) @@ -2303,8 +2303,11 @@ modifierIds[(unsigned int)(params[0])] = params[1]; UpdateModifiers(); - // we set the item as identifiable - SetIsIdentifiable(true); + // we set the item as identifiable only if there is a special modifier + if(params[1]>0) + { + SetIsIdentifiable(true); + } return (double) 1.0f; } @@ -3147,7 +3150,7 @@ // If item is looked send standard item description unless GM if(GetIsLocked()) { - if (client->GetSecurityLevel() < GM_LEVEL_2) + if(client->GetSecurityLevel() < GM_LEVEL_2) { itemInfo += "This item is locked\n\n"; } @@ -3309,12 +3312,12 @@ { csString query; - query.Format("select * from skills where skill_id=%d", priSkill ); + query.Format("select * from skills where skill_id=%d", priSkill); Result result(db->Select(query)); transString.Append("[["); - transString.Append( result[0].GetString( "Name") ); - transString.Append("]]" ); + transString.Append(result[0].GetString("Name")); + transString.Append("]]"); transString.Append(craftArray->Get(count)->craftStepDescription); continue; } @@ -3324,12 +3327,12 @@ { csString query; - query.Format("select * from skills where skill_id=%d", secSkill ); + query.Format("select * from skills where skill_id=%d", secSkill); Result result(db->Select(query)); transString.Append("With higher "); - transString.Append( result[0].GetString( "Name") ); - transString.Append(" skill you could: " ); + transString.Append(result[0].GetString("Name")); + transString.Append(" skill you could: "); transString.Append(craftArray->Get(count)->craftStepDescription); continue; } @@ -3498,7 +3501,7 @@ desc = description.GetData(); } - if (GetIsContainer()) + if(GetIsContainer()) { psViewContainerDescription outgoing(client->GetClientNum(), name, This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ral...@us...> - 2013-10-06 03:06:13
|
Revision: 8851 http://sourceforge.net/p/planeshift/code/8851 Author: ralphcampbell Date: 2013-10-06 03:06:08 +0000 (Sun, 06 Oct 2013) Log Message: ----------- Fix typo for shedule. Modified Paths: -------------- trunk/src/server/bulkobjects/psitem.cpp Modified: trunk/src/server/bulkobjects/psitem.cpp =================================================================== --- trunk/src/server/bulkobjects/psitem.cpp 2013-10-05 16:12:10 UTC (rev 8850) +++ trunk/src/server/bulkobjects/psitem.cpp 2013-10-06 03:06:08 UTC (rev 8851) @@ -1637,7 +1637,7 @@ if(!schedule) // Absorb schedule SetScheduledItem(stackme->schedule); - stackme->schedule = NULL; // Prevent deleting of shedule later in delete in RemoveInstance + stackme->schedule = NULL; // Prevent deleting of schedule later in delete in RemoveInstance } // Average the qualities and set stack count @@ -2685,7 +2685,7 @@ delete schedule; } - // Remove this shedule for this item, since we don't want an item in for example + // Remove this schedule for this item, since we don't want an item in for example // the inventory to call respawn when it's dropped and picked up again schedule = NULL; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ral...@us...> - 2013-11-22 17:02:23
|
Revision: 9022 http://sourceforge.net/p/planeshift/code/9022 Author: ralphcampbell Date: 2013-11-22 17:02:20 +0000 (Fri, 22 Nov 2013) Log Message: ----------- Don't leak psScheduledItem when merging two stacks of items. Modified Paths: -------------- trunk/src/server/bulkobjects/psitem.cpp Modified: trunk/src/server/bulkobjects/psitem.cpp =================================================================== --- trunk/src/server/bulkobjects/psitem.cpp 2013-11-22 16:52:11 UTC (rev 9021) +++ trunk/src/server/bulkobjects/psitem.cpp 2013-11-22 17:02:20 UTC (rev 9022) @@ -1635,9 +1635,11 @@ if(stackme->schedule) { if(!schedule) // Absorb schedule + { SetScheduledItem(stackme->schedule); - - stackme->schedule = NULL; // Prevent deleting of schedule later in delete in RemoveInstance + // Prevent deleting of schedule later in delete in RemoveInstance + stackme->schedule = NULL; + } } // Average the qualities and set stack count @@ -2733,6 +2735,7 @@ // Transfer the spawning rules for it to pass it forward psScheduledItem* newsch = new psScheduledItem(*this); + delete item->GetScheduledItem(); item->SetScheduledItem(newsch); lastSpawn = csGetTicks(); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ma...@us...> - 2013-12-22 02:50:36
|
Revision: 9099 http://sourceforge.net/p/planeshift/code/9099 Author: magodra Date: 2013-12-22 02:50:34 +0000 (Sun, 22 Dec 2013) Log Message: ----------- Fixed use of memory after free. Modified Paths: -------------- trunk/src/server/bulkobjects/psitem.cpp Modified: trunk/src/server/bulkobjects/psitem.cpp =================================================================== --- trunk/src/server/bulkobjects/psitem.cpp 2013-12-22 02:40:17 UTC (rev 9098) +++ trunk/src/server/bulkobjects/psitem.cpp 2013-12-22 02:50:34 UTC (rev 9099) @@ -206,17 +206,17 @@ Debug4(LOG_ITEM, 0, "Item at %p %s:%u dtor called", this, GetName(), GetUID()); // printf("In item %s:%u dtor...\n", GetName(), uid); + if(item_in_use) + { + Error2("Item %s is being deleted while in use!", GetName()); + } + //remove the itemModifiers class as it's no more needed delete itemModifiers; if(!current_stats) return; - if(item_in_use) - { - Error2("Item %s is being deleted while in use!", GetName()); - } - if(schedule) { delete schedule; // Finally delete the pattern used for spawning this item This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ral...@us...> - 2014-01-24 02:07:57
|
Revision: 9218 http://sourceforge.net/p/planeshift/code/9218 Author: ralphcampbell Date: 2014-01-24 02:07:53 +0000 (Fri, 24 Jan 2014) Log Message: ----------- Fix 6211 - Crafting containers linked to the world map with action locations are not guarding items correctly Modified Paths: -------------- trunk/src/server/bulkobjects/psitem.cpp Modified: trunk/src/server/bulkobjects/psitem.cpp =================================================================== --- trunk/src/server/bulkobjects/psitem.cpp 2014-01-24 00:23:27 UTC (rev 9217) +++ trunk/src/server/bulkobjects/psitem.cpp 2014-01-24 02:07:53 UTC (rev 9218) @@ -3190,7 +3190,7 @@ { csString itemCategory, itemInfo; - // If item is looked send standard item description unless GM + // If item is locked, send standard item description unless GM if(GetIsLocked()) { if(client->GetSecurityLevel() < GM_LEVEL_2) @@ -3531,6 +3531,12 @@ if(action == NULL) return false; + if(GetIsContainer()) + { + SendContainerContents(client, gItem->GetEID().Unbox()); + return true; + } + //if(GetIsLocked()) // return SendItemDescription(client); @@ -3544,33 +3550,9 @@ desc = description.GetData(); } - if(GetIsContainer()) - { - psViewContainerDescription outgoing(client->GetClientNum(), - name, - desc, - icon, - 0); + psViewItemDescription outgoing(client->GetClientNum(), name, desc, icon, 0); + outgoing.SendMessage(); - outgoing.containerID = gItem->GetEID().Unbox(); - - outgoing.maxContainerSlots = GetContainerMaxSlots(); - - FillContainerMsg(client, outgoing); - outgoing.ConstructMsg(psserver->GetCacheManager()->GetMsgStrings()); - - outgoing.SendMessage(); - } - else - { - psViewItemDescription outgoing(client->GetClientNum(), - name, - desc, - icon, - 0); - - outgoing.SendMessage(); - } return true; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ral...@us...> - 2014-03-13 21:42:56
|
Revision: 9333 http://sourceforge.net/p/planeshift/code/9333 Author: ralphcampbell Date: 2014-03-13 21:42:53 +0000 (Thu, 13 Mar 2014) Log Message: ----------- Fix unsigned/signed comparison warnings. Modified Paths: -------------- trunk/src/server/bulkobjects/psitem.cpp Modified: trunk/src/server/bulkobjects/psitem.cpp =================================================================== --- trunk/src/server/bulkobjects/psitem.cpp 2014-03-13 09:37:52 UTC (rev 9332) +++ trunk/src/server/bulkobjects/psitem.cpp 2014-03-13 21:42:53 UTC (rev 9333) @@ -274,74 +274,74 @@ PSITEM_FLAGS psItem::ParseItemFlags(csString flagstr) { - PSITEM_FLAGS flag; - if(flagstr.Find("LOCKED",0,true) != -1) + PSITEM_FLAGS flag = 0; + if(flagstr.Find("LOCKED",0,true) != -1U) { flag |= PSITEM_FLAG_LOCKED; } - if(flagstr.Find("LOCKABLE",0,true) != -1) + if(flagstr.Find("LOCKABLE",0,true) != -1U) { flag |= PSITEM_FLAG_LOCKABLE; } - if(flagstr.Find("SECURITYLOCK",0,true) != -1) + if(flagstr.Find("SECURITYLOCK",0,true) != -1U) { flag |= PSITEM_FLAG_SECURITYLOCK; } - if(flagstr.Find("UNPICKABLE",0,true) != -1) + if(flagstr.Find("UNPICKABLE",0,true) != -1U) { flag |= PSITEM_FLAG_UNPICKABLE; } - if(flagstr.Find("KEY",0,true) != -1) + if(flagstr.Find("KEY",0,true) != -1U) { flag |= PSITEM_FLAG_KEY; } - if(flagstr.Find("MASTERKEY",0,true) != -1) + if(flagstr.Find("MASTERKEY",0,true) != -1U) { flag |= PSITEM_FLAG_MASTERKEY; } - if(flagstr.Find("PURIFIED",0,true) != -1) + if(flagstr.Find("PURIFIED",0,true) != -1U) { flag |= PSITEM_FLAG_PURIFIED; } - if(flagstr.Find("PURIFYING",0,true) != -1) + if(flagstr.Find("PURIFYING",0,true) != -1U) { flag |= PSITEM_FLAG_PURIFIED; } - if(flagstr.Find("NOPICKUP",0,true) != -1) + if(flagstr.Find("NOPICKUP",0,true) != -1U) { flag |= PSITEM_FLAG_NOPICKUP; } - if(flagstr.Find("NOWEAKPICKUP",0,true) != -1) + if(flagstr.Find("NOWEAKPICKUP",0,true) != -1U) { flag |= PSITEM_FLAG_NOPICKUPWEAK; } - if(flagstr.Find("TRANSIENT",0,true) != -1) + if(flagstr.Find("TRANSIENT",0,true) != -1U) { flag |= PSITEM_FLAG_TRANSIENT; } - if(flagstr.Find("NPCOWNED", 0, true) != -1) + if(flagstr.Find("NPCOWNED", 0, true) != -1U) { flag |= PSITEM_FLAG_NPCOWNED; } - if(flagstr.Find("USECD", 0, true) != -1) + if(flagstr.Find("USECD", 0, true) != -1U) { flag |= PSITEM_FLAG_USE_CD; } - if(flagstr.Find("UNSTACKABLE", 0, true) != -1) + if(flagstr.Find("UNSTACKABLE", 0, true) != -1U) { flag |= PSITEM_FLAG_UNSTACKABLE; flag &= ~PSITEM_FLAG_STACKABLE; } - if(flagstr.Find("STACKABLE", 0, true) != -1) + if(flagstr.Find("STACKABLE", 0, true) != -1U) { flag |= PSITEM_FLAG_STACKABLE; flag &= ~PSITEM_FLAG_UNSTACKABLE; } - if(flagstr.Find("SETTINGITEM", 0, true) != -1) + if(flagstr.Find("SETTINGITEM", 0, true) != -1U) { flag |= PSITEM_FLAG_SETTINGITEM; } - if(flagstr.Find("IDENTIFIABLE", 0, true) != -1) + if(flagstr.Find("IDENTIFIABLE", 0, true) != -1U) { flag |= PSITEM_FLAG_IDENTIFIABLE; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wel...@us...> - 2014-03-23 17:13:36
|
Revision: 9353 http://sourceforge.net/p/planeshift/code/9353 Author: weltall2 Date: 2014-03-23 17:13:33 +0000 (Sun, 23 Mar 2014) Log Message: ----------- reverted the previous patch Modified Paths: -------------- trunk/src/server/bulkobjects/psitem.cpp Modified: trunk/src/server/bulkobjects/psitem.cpp =================================================================== --- trunk/src/server/bulkobjects/psitem.cpp 2014-03-23 00:42:16 UTC (rev 9352) +++ trunk/src/server/bulkobjects/psitem.cpp 2014-03-23 17:13:33 UTC (rev 9353) @@ -275,73 +275,73 @@ PSITEM_FLAGS psItem::ParseItemFlags(csString flagstr) { PSITEM_FLAGS flag = 0; - if(flagstr.Find("LOCKED",0,true) != -1U) + if(flagstr.Find("LOCKED",0,true) != -1) { flag |= PSITEM_FLAG_LOCKED; } - if(flagstr.Find("LOCKABLE",0,true) != -1U) + if(flagstr.Find("LOCKABLE",0,true) != -1) { flag |= PSITEM_FLAG_LOCKABLE; } - if(flagstr.Find("SECURITYLOCK",0,true) != -1U) + if(flagstr.Find("SECURITYLOCK",0,true) != -1) { flag |= PSITEM_FLAG_SECURITYLOCK; } - if(flagstr.Find("UNPICKABLE",0,true) != -1U) + if(flagstr.Find("UNPICKABLE",0,true) != -1) { flag |= PSITEM_FLAG_UNPICKABLE; } - if(flagstr.Find("KEY",0,true) != -1U) + if(flagstr.Find("KEY",0,true) != -1) { flag |= PSITEM_FLAG_KEY; } - if(flagstr.Find("MASTERKEY",0,true) != -1U) + if(flagstr.Find("MASTERKEY",0,true) != -1) { flag |= PSITEM_FLAG_MASTERKEY; } - if(flagstr.Find("PURIFIED",0,true) != -1U) + if(flagstr.Find("PURIFIED",0,true) != -1) { flag |= PSITEM_FLAG_PURIFIED; } - if(flagstr.Find("PURIFYING",0,true) != -1U) + if(flagstr.Find("PURIFYING",0,true) != -1) { flag |= PSITEM_FLAG_PURIFIED; } - if(flagstr.Find("NOPICKUP",0,true) != -1U) + if(flagstr.Find("NOPICKUP",0,true) != -1) { flag |= PSITEM_FLAG_NOPICKUP; } - if(flagstr.Find("NOWEAKPICKUP",0,true) != -1U) + if(flagstr.Find("NOWEAKPICKUP",0,true) != -1) { flag |= PSITEM_FLAG_NOPICKUPWEAK; } - if(flagstr.Find("TRANSIENT",0,true) != -1U) + if(flagstr.Find("TRANSIENT",0,true) != -1) { flag |= PSITEM_FLAG_TRANSIENT; } - if(flagstr.Find("NPCOWNED", 0, true) != -1U) + if(flagstr.Find("NPCOWNED", 0, true) != -1) { flag |= PSITEM_FLAG_NPCOWNED; } - if(flagstr.Find("USECD", 0, true) != -1U) + if(flagstr.Find("USECD", 0, true) != -1) { flag |= PSITEM_FLAG_USE_CD; } - if(flagstr.Find("UNSTACKABLE", 0, true) != -1U) + if(flagstr.Find("UNSTACKABLE", 0, true) != -1) { flag |= PSITEM_FLAG_UNSTACKABLE; flag &= ~PSITEM_FLAG_STACKABLE; } - if(flagstr.Find("STACKABLE", 0, true) != -1U) + if(flagstr.Find("STACKABLE", 0, true) != -1) { flag |= PSITEM_FLAG_STACKABLE; flag &= ~PSITEM_FLAG_UNSTACKABLE; } - if(flagstr.Find("SETTINGITEM", 0, true) != -1U) + if(flagstr.Find("SETTINGITEM", 0, true) != -1) { flag |= PSITEM_FLAG_SETTINGITEM; } - if(flagstr.Find("IDENTIFIABLE", 0, true) != -1U) + if(flagstr.Find("IDENTIFIABLE", 0, true) != -1) { flag |= PSITEM_FLAG_IDENTIFIABLE; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <lpa...@us...> - 2014-04-08 12:42:59
|
Revision: 9377 http://sourceforge.net/p/planeshift/code/9377 Author: lpancallo Date: 2014-04-08 12:42:56 +0000 (Tue, 08 Apr 2014) Log Message: ----------- Copy also lockstrength and lockskill in item->Copy() Modified Paths: -------------- trunk/src/server/bulkobjects/psitem.cpp Modified: trunk/src/server/bulkobjects/psitem.cpp =================================================================== --- trunk/src/server/bulkobjects/psitem.cpp 2014-04-08 03:32:12 UTC (rev 9376) +++ trunk/src/server/bulkobjects/psitem.cpp 2014-04-08 12:42:56 UTC (rev 9377) @@ -1617,6 +1617,10 @@ //copy the modifier ids to the new item target->modifierIds = modifierIds; + // lock skill and lock strength are the same + target->SetLockpickSkill(lockpickSkill); + target->SetLockStrength(lockStrength); + target->SetGuardingCharacterID(GetGuardingCharacterID()); // Current stats are rebuilt; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <lpa...@us...> - 2014-12-27 08:07:08
|
Revision: 9680 http://sourceforge.net/p/planeshift/code/9680 Author: lpancallo Date: 2014-12-27 08:06:43 +0000 (Sat, 27 Dec 2014) Log Message: ----------- itemModifiers should already be a char* Modified Paths: -------------- trunk/src/server/bulkobjects/psitem.cpp Modified: trunk/src/server/bulkobjects/psitem.cpp =================================================================== --- trunk/src/server/bulkobjects/psitem.cpp 2014-12-26 20:43:05 UTC (rev 9679) +++ trunk/src/server/bulkobjects/psitem.cpp 2014-12-27 08:06:43 UTC (rev 9680) @@ -1795,13 +1795,13 @@ const char* psItem::GetName() const { - //first check if this item was explictly given a special name + //first check if this item was explicitly given a special name if(!item_name.IsEmpty()) return item_name.GetData(); //then check if the item modifier overlay gives a name to this item. if(itemModifiers->active && !itemModifiers->name.IsEmpty()) - return itemModifiers->name.GetData(); + return itemModifiers->name; // In case current stat isn't set yet just return no item stat. if(!current_stats) return "(No item stat)"; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jo...@us...> - 2015-02-27 20:10:44
|
Revision: 9721 http://sourceforge.net/p/planeshift/code/9721 Author: joelyon Date: 2015-02-27 20:10:37 +0000 (Fri, 27 Feb 2015) Log Message: ----------- Chetty's change to make autoremoval of dropped items work. Modified Paths: -------------- trunk/src/server/bulkobjects/psitem.cpp Modified: trunk/src/server/bulkobjects/psitem.cpp =================================================================== --- trunk/src/server/bulkobjects/psitem.cpp 2015-02-26 04:37:58 UTC (rev 9720) +++ trunk/src/server/bulkobjects/psitem.cpp 2015-02-27 20:10:37 UTC (rev 9721) @@ -113,8 +113,8 @@ else { // Item isn't guarded, remove + item->Destroy(); // obj is deleted in RemoveActor EntityManager::GetSingleton().RemoveActor(obj); - item->Destroy(); // obj is deleted in RemoveActor } } } @@ -2870,11 +2870,14 @@ int randomized_interval = psserver->rng->Get(REMOVAL_INTERVAL_RANGE); - psItemRemovalEvent* event = new psItemRemovalEvent(REMOVAL_INTERVAL_MINIMUM + randomized_interval, this->uid); - psserver->GetEventManager()->Push(event); - - Notify2(LOG_USER,"Scheduling removal of object for %d ticks from now.", - REMOVAL_INTERVAL_MINIMUM + randomized_interval); + gemItem* obj =this->GetGemObject(); + if (obj) + { + psItemRemovalEvent* event = new psItemRemovalEvent(REMOVAL_INTERVAL_MINIMUM + randomized_interval, obj->GetEID() ); + psserver->GetEventManager()->Push(event); + + Notify3(LOG_USER,"Scheduling removal of object %s for %d ticks from now.", ShowID(obj->GetEID()), REMOVAL_INTERVAL_MINIMUM + randomized_interval); + } } void psItem::DeleteObjectCallback(iDeleteNotificationObject* object) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <rav...@us...> - 2016-04-25 20:46:45
|
Revision: 9907 http://sourceforge.net/p/planeshift/code/9907 Author: ravna-ps Date: 2016-04-25 20:46:43 +0000 (Mon, 25 Apr 2016) Log Message: ----------- Fixed: items that were crafted or GM made with loot modifiers that do not drop as loot do no longer display rarity. Modified Paths: -------------- trunk/src/server/bulkobjects/psitem.cpp Modified: trunk/src/server/bulkobjects/psitem.cpp =================================================================== --- trunk/src/server/bulkobjects/psitem.cpp 2016-04-24 21:57:46 UTC (rev 9906) +++ trunk/src/server/bulkobjects/psitem.cpp 2016-04-25 20:46:43 UTC (rev 9907) @@ -3650,6 +3650,10 @@ // get adjective probability (index 2) float adjectiveProbability = psserver->GetSpawnManager()->GetLootRandomizer()->GetModifierPercentProbability(modifierIds[2],2); + // if any probability is 0 or less while the modifierId exists, it can't be looted, thus it was crafted or GM given, and doesn't have a rarity, rarity 0 does not get displayed. + if ((prefixProbability <= 0 && modifierIds[0]) || (suffixProbability <= 0 && modifierIds[1]) || (adjectiveProbability <= 0 && modifierIds[2])) + return 0; + // calculate rarity of all current modifiers if(prefixProbability!=0) calcRarity *= prefixProbability; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <lpa...@us...> - 2016-07-31 10:31:57
|
Revision: 9953 http://sourceforge.net/p/planeshift/code/9953 Author: lpancallo Date: 2016-07-31 10:31:56 +0000 (Sun, 31 Jul 2016) Log Message: ----------- workaround to avoid crash on div by 0. Modified Paths: -------------- trunk/src/server/bulkobjects/psitem.cpp Modified: trunk/src/server/bulkobjects/psitem.cpp =================================================================== --- trunk/src/server/bulkobjects/psitem.cpp 2016-06-15 22:26:29 UTC (rev 9952) +++ trunk/src/server/bulkobjects/psitem.cpp 2016-07-31 10:31:56 UTC (rev 9953) @@ -1691,8 +1691,11 @@ SetGuardingCharacterID(stackme->GetGuardingCharacterID()); // Average charges - int newCharges = (GetCharges()*GetStackCount() + stackme->GetCharges()*stackme->GetStackCount())/newStackCount; - SetCharges(newCharges); + int newCharges = 0; + if (newStackCount>0) { + newCharges = (GetCharges()*GetStackCount() + stackme->GetCharges()*stackme->GetStackCount())/newStackCount; + SetCharges(newCharges); + } psserver->GetCacheManager()->RemoveInstance(stackme); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |