mirror of
https://github.com/EQEmu/Server.git
synced 2026-09-03 09:26:36 +00:00
[Feature] Evolving Item Support for RoF2 (#4496)
* basic evolving items framework created * Implement evolving tab in the inventory window * Implement experience and number of kills * Move zone evolving map to a evolvingitemsmanager class * rework gm commands * rework GetInventory * wip * wip loot testing * Fix Duplicate Message * reworked evolving item looting, swapping, etc * reworked const functions for evolving methods * Functioning Player Trade of evolving items test item_id is 89550 * First pass of Final Result link working * First pass of item upgrading when reaching 100% * Add strings and logic for displaying the evolving item xp transfer window in Corathus * Prototype of xp transfer window sending items * WIP for evolve xp transfer * WIP for evolve xp transfer. First tests passed * XP Transfer Cleanup * XP Transfer Cleanup * Add Rule for evolving items equip timer/ default is 30 secs * Add logging and player events Add logging and player events * Formatting * Database updates * Updates for linux build * Perl/Cleanup * Command cleanup * Lua * Added a crash condition check if final item id is blank or not found. * Review Changes Updates to resolve review comments and a rebase. * migrate to content_db for items_evolving_details migrate to content_db for items_evolving_details * Simplify, don't hit database unless evolving * Update 2025_01_19_items_evolving_details.sql * Update client.cpp * Update manifest with items_evolving_details * character_id vs char_id * Remove _Struct from structs * Remove license header in evolving.cpp * Move evolving constants from eq_constants.h to evolving.h since it is more specific * Update database_schema.h * General cleanup * Be more specific with `evolving_items` vs `evolving` --------- Co-authored-by: Kinglykrab <kinglykrab@gmail.com> Co-authored-by: Akkadius <akkadius1@gmail.com>
This commit is contained in:
+90
-6
@@ -152,11 +152,6 @@ uint32 Perl_QuestItem_GetItemScriptID(EQ::ItemInstance* self)
|
||||
return self->GetItemScriptID();
|
||||
}
|
||||
|
||||
uint32 Perl_QuestItem_GetKillsNeeded(EQ::ItemInstance* self, uint8 current_level)
|
||||
{
|
||||
return self->GetKillsNeeded(current_level);
|
||||
}
|
||||
|
||||
int8 Perl_QuestItem_GetMaxEvolveLevel(EQ::ItemInstance* self)
|
||||
{
|
||||
return self->GetMaxEvolveLvl();
|
||||
@@ -297,12 +292,88 @@ std::string Perl_QuestItem_GetItemLink(EQ::ItemInstance* self)
|
||||
return linker.GenerateLink();
|
||||
}
|
||||
|
||||
void Perl_QuestItem_AddEvolveAmount(EQ::ItemInstance* self, uint64 amount)
|
||||
{
|
||||
self->SetEvolveAddToCurrentAmount(amount);
|
||||
}
|
||||
|
||||
uint32 Perl_QuestItem_GetAugmentEvolveUniqueID(EQ::ItemInstance* self, uint8 slot_id)
|
||||
{
|
||||
return self->GetAugmentEvolveUniqueID(slot_id);
|
||||
}
|
||||
|
||||
bool Perl_QuestItem_GetEvolveActivated(EQ::ItemInstance* self)
|
||||
{
|
||||
return self->GetEvolveActivated();
|
||||
}
|
||||
|
||||
uint64 Perl_QuestItem_GetEvolveAmount(EQ::ItemInstance* self)
|
||||
{
|
||||
return self->GetEvolveCurrentAmount();
|
||||
}
|
||||
|
||||
uint32 Perl_QuestItem_GetEvolveCharacterID(EQ::ItemInstance* self)
|
||||
{
|
||||
return self->GetEvolveCharID();
|
||||
}
|
||||
|
||||
bool Perl_QuestItem_GetEvolveEquipped(EQ::ItemInstance* self)
|
||||
{
|
||||
return self->GetEvolveEquipped();
|
||||
}
|
||||
|
||||
uint32 Perl_QuestItem_GetEvolveItemID(EQ::ItemInstance* self)
|
||||
{
|
||||
return self->GetEvolveItemID();
|
||||
}
|
||||
|
||||
uint32 Perl_QuestItem_GetEvolveFinalItemID(EQ::ItemInstance* self)
|
||||
{
|
||||
return self->GetEvolveFinalItemID();
|
||||
}
|
||||
|
||||
int8 Perl_QuestItem_GetEvolveLevel(EQ::ItemInstance* self)
|
||||
{
|
||||
return self->GetEvolveLvl();
|
||||
}
|
||||
|
||||
uint32 Perl_QuestItem_GetEvolveLoreID(EQ::ItemInstance* self)
|
||||
{
|
||||
return self->GetEvolveLoreID();
|
||||
}
|
||||
|
||||
double Perl_QuestItem_GetEvolveProgression(EQ::ItemInstance* self)
|
||||
{
|
||||
return self->GetEvolveProgression();
|
||||
}
|
||||
|
||||
uint64 Perl_QuestItem_GetEvolveUniqueID(EQ::ItemInstance* self)
|
||||
{
|
||||
return self->GetEvolveUniqueID();
|
||||
}
|
||||
|
||||
bool Perl_QuestItem_IsEvolving(EQ::ItemInstance* self)
|
||||
{
|
||||
return self->IsEvolving();
|
||||
}
|
||||
|
||||
void Perl_QuestItem_SetEvolveProgression(EQ::ItemInstance* self, float amount)
|
||||
{
|
||||
self->SetEvolveProgression(amount);
|
||||
}
|
||||
|
||||
void Perl_QuestItem_SetEvolveAmount(EQ::ItemInstance* self, uint64 amount)
|
||||
{
|
||||
self->SetEvolveCurrentAmount(amount);
|
||||
}
|
||||
|
||||
|
||||
void perl_register_questitem()
|
||||
{
|
||||
perl::interpreter perl(PERL_GET_THX);
|
||||
|
||||
auto package = perl.new_class<EQ::ItemInstance>("QuestItem");
|
||||
package.add("AddEvolveAmount", &Perl_QuestItem_AddEvolveAmount);
|
||||
package.add("AddEXP", &Perl_QuestItem_AddEXP);
|
||||
package.add("ClearTimers", &Perl_QuestItem_ClearTimers);
|
||||
package.add("Clone", &Perl_QuestItem_Clone);
|
||||
@@ -310,6 +381,7 @@ void perl_register_questitem()
|
||||
package.add("CountAugmentByID", &Perl_QuestItem_CountAugmentByID);
|
||||
package.add("DeleteCustomData", &Perl_QuestItem_DeleteCustomData);
|
||||
package.add("GetAugment", &Perl_QuestItem_GetAugment);
|
||||
package.add("GetAugmentEvolveUniqueID", &Perl_QuestItem_GetAugmentEvolveUniqueID);
|
||||
package.add("GetAugmentIDs", &Perl_QuestItem_GetAugmentIDs);
|
||||
package.add("GetAugmentItemID", &Perl_QuestItem_GetAugmentItemID);
|
||||
package.add("GetAugmentType", &Perl_QuestItem_GetAugmentType);
|
||||
@@ -317,6 +389,16 @@ void perl_register_questitem()
|
||||
package.add("GetColor", &Perl_QuestItem_GetColor);
|
||||
package.add("GetCustomData", &Perl_QuestItem_GetCustomData);
|
||||
package.add("GetCustomDataString", &Perl_QuestItem_GetCustomDataString);
|
||||
package.add("GetEvolveActivated", &Perl_QuestItem_GetEvolveActivated);
|
||||
package.add("GetEvolveAmount", &Perl_QuestItem_GetEvolveAmount);
|
||||
package.add("GetEvolveCharacterID", &Perl_QuestItem_GetEvolveCharacterID);
|
||||
package.add("GetEvolveEquipped", &Perl_QuestItem_GetEvolveEquipped);
|
||||
package.add("GetEvolveFinalItemID", &Perl_QuestItem_GetEvolveFinalItemID);
|
||||
package.add("GetEvolveItemID", &Perl_QuestItem_GetEvolveItemID);
|
||||
package.add("GetEvolveLevel", &Perl_QuestItem_GetEvolveLevel);
|
||||
package.add("GetEvolveLoreID", &Perl_QuestItem_GetEvolveLoreID);
|
||||
package.add("GetEvolveProgression", &Perl_QuestItem_GetEvolveProgression);
|
||||
package.add("GetEvolveUniqueID", &Perl_QuestItem_GetEvolveUniqueID);
|
||||
package.add("GetEXP", &Perl_QuestItem_GetEXP);
|
||||
package.add("GetID", &Perl_QuestItem_GetID);
|
||||
package.add("GetItem", (EQ::ItemData*(*)(EQ::ItemInstance*))&Perl_QuestItem_GetItem);
|
||||
@@ -324,7 +406,6 @@ void perl_register_questitem()
|
||||
package.add("GetItemID", &Perl_QuestItem_GetItemID);
|
||||
package.add("GetItemLink", &Perl_QuestItem_GetItemLink);
|
||||
package.add("GetItemScriptID", &Perl_QuestItem_GetItemScriptID);
|
||||
package.add("GetKillsNeeded", &Perl_QuestItem_GetKillsNeeded);
|
||||
package.add("GetMaxEvolveLevel", &Perl_QuestItem_GetMaxEvolveLevel);
|
||||
package.add("GetName", &Perl_QuestItem_GetName);
|
||||
package.add("GetPrice", &Perl_QuestItem_GetPrice);
|
||||
@@ -337,6 +418,7 @@ void perl_register_questitem()
|
||||
package.add("IsAugmented", &Perl_QuestItem_IsAugmented);
|
||||
package.add("IsEquipable", (bool(*)(EQ::ItemInstance*, int16))&Perl_QuestItem_IsEquipable);
|
||||
package.add("IsEquipable", (bool(*)(EQ::ItemInstance*, uint16, uint16))&Perl_QuestItem_IsEquipable);
|
||||
package.add("IsEvolving", &Perl_QuestItem_IsEvolving);
|
||||
package.add("IsExpendable", &Perl_QuestItem_IsExpendable);
|
||||
package.add("IsInstanceNoDrop", &Perl_QuestItem_IsInstanceNoDrop);
|
||||
package.add("IsStackable", &Perl_QuestItem_IsStackable);
|
||||
@@ -352,6 +434,8 @@ void perl_register_questitem()
|
||||
package.add("SetCustomData", (void(*)(EQ::ItemInstance*, std::string, float))&Perl_QuestItem_SetCustomData);
|
||||
package.add("SetCustomData", (void(*)(EQ::ItemInstance*, std::string, int))&Perl_QuestItem_SetCustomData);
|
||||
package.add("SetCustomData", (void(*)(EQ::ItemInstance*, std::string, std::string))&Perl_QuestItem_SetCustomData);
|
||||
package.add("SetEvolveAmount", &Perl_QuestItem_SetEvolveAmount);
|
||||
package.add("SetEvolveProgression", &Perl_QuestItem_SetEvolveProgression);
|
||||
package.add("SetEXP", &Perl_QuestItem_SetEXP);
|
||||
package.add("SetInstanceNoDrop", &Perl_QuestItem_SetInstanceNoDrop);
|
||||
package.add("SetPrice", &Perl_QuestItem_SetPrice);
|
||||
|
||||
Reference in New Issue
Block a user