mirror of
https://github.com/EQEmu/Server.git
synced 2025-12-12 22:01:30 +00:00
[Quest API] Add GetItemCooldown to return the time remaining on items… (#2811)
* [Quest API] Add GetItemCooldown to return the time remaining on items in seconds * Change GetItemCooldown to uint32 for timers up to 130 years
This commit is contained in:
parent
4d2418af9d
commit
66896a3121
@ -10563,6 +10563,29 @@ void Client::SetItemCooldown(uint32 item_id, bool use_saved_timer, uint32 in_sec
|
|||||||
SendItemRecastTimer(recast_type, final_time, true);
|
SendItemRecastTimer(recast_type, final_time, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
uint32 Client::GetItemCooldown(uint32 item_id)
|
||||||
|
{
|
||||||
|
const EQ::ItemData* item_d = database.GetItem(item_id);
|
||||||
|
if (!item_d) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
int recast_type = item_d->RecastType;
|
||||||
|
auto timestamps = database.GetItemRecastTimestamps(CharacterID());
|
||||||
|
const auto timer_type = recast_type != RECAST_TYPE_UNLINKED_ITEM ? recast_type : item_id;
|
||||||
|
uint32 total_time = 0;
|
||||||
|
uint32 current_time = static_cast<uint32>(std::time(nullptr));
|
||||||
|
uint32 final_time = 0;
|
||||||
|
|
||||||
|
total_time = timestamps.count(timer_type) ? timestamps.at(timer_type) : 0;
|
||||||
|
|
||||||
|
if (total_time > current_time) {
|
||||||
|
final_time = total_time - current_time;
|
||||||
|
}
|
||||||
|
|
||||||
|
return final_time;
|
||||||
|
}
|
||||||
|
|
||||||
void Client::RemoveItem(uint32 item_id, uint32 quantity)
|
void Client::RemoveItem(uint32 item_id, uint32 quantity)
|
||||||
{
|
{
|
||||||
EQ::ItemInstance *item = nullptr;
|
EQ::ItemInstance *item = nullptr;
|
||||||
|
|||||||
@ -968,6 +968,7 @@ public:
|
|||||||
int CountItem(uint32 item_id);
|
int CountItem(uint32 item_id);
|
||||||
void ResetItemCooldown(uint32 item_id);
|
void ResetItemCooldown(uint32 item_id);
|
||||||
void SetItemCooldown(uint32 item_id, bool use_saved_timer = false, uint32 in_seconds = 1);
|
void SetItemCooldown(uint32 item_id, bool use_saved_timer = false, uint32 in_seconds = 1);
|
||||||
|
uint32 GetItemCooldown(uint32 item_id);
|
||||||
void RemoveItem(uint32 item_id, uint32 quantity = 1);
|
void RemoveItem(uint32 item_id, uint32 quantity = 1);
|
||||||
bool SwapItem(MoveItem_Struct* move_in);
|
bool SwapItem(MoveItem_Struct* move_in);
|
||||||
void SwapItemResync(MoveItem_Struct* move_slots);
|
void SwapItemResync(MoveItem_Struct* move_slots);
|
||||||
|
|||||||
@ -3026,6 +3026,12 @@ void Lua_Client::SetItemCooldown(uint32 item_id, uint32 in_time)
|
|||||||
self->SetItemCooldown(item_id, false, in_time);
|
self->SetItemCooldown(item_id, false, in_time);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
uint32 Lua_Client::GetItemCooldown(uint32 item_id)
|
||||||
|
{
|
||||||
|
Lua_Safe_Call_Int();
|
||||||
|
return self->GetItemCooldown(item_id);
|
||||||
|
}
|
||||||
|
|
||||||
luabind::scope lua_register_client() {
|
luabind::scope lua_register_client() {
|
||||||
return luabind::class_<Lua_Client, Lua_Mob>("Client")
|
return luabind::class_<Lua_Client, Lua_Mob>("Client")
|
||||||
.def(luabind::constructor<>())
|
.def(luabind::constructor<>())
|
||||||
@ -3216,6 +3222,7 @@ luabind::scope lua_register_client() {
|
|||||||
.def("GetInventory", (Lua_Inventory(Lua_Client::*)(void))&Lua_Client::GetInventory)
|
.def("GetInventory", (Lua_Inventory(Lua_Client::*)(void))&Lua_Client::GetInventory)
|
||||||
.def("GetInvulnerableEnvironmentDamage", (bool(Lua_Client::*)(void))&Lua_Client::GetInvulnerableEnvironmentDamage)
|
.def("GetInvulnerableEnvironmentDamage", (bool(Lua_Client::*)(void))&Lua_Client::GetInvulnerableEnvironmentDamage)
|
||||||
.def("GetItemIDAt", (int(Lua_Client::*)(int))&Lua_Client::GetItemIDAt)
|
.def("GetItemIDAt", (int(Lua_Client::*)(int))&Lua_Client::GetItemIDAt)
|
||||||
|
.def("GetItemCooldown", (uint32(Lua_Client::*)(uint32))&Lua_Client::GetItemCooldown)
|
||||||
.def("GetLDoNLosses", (int(Lua_Client::*)(void))&Lua_Client::GetLDoNLosses)
|
.def("GetLDoNLosses", (int(Lua_Client::*)(void))&Lua_Client::GetLDoNLosses)
|
||||||
.def("GetLDoNLossesTheme", (int(Lua_Client::*)(int))&Lua_Client::GetLDoNLossesTheme)
|
.def("GetLDoNLossesTheme", (int(Lua_Client::*)(int))&Lua_Client::GetLDoNLossesTheme)
|
||||||
.def("GetLDoNPointsTheme", (int(Lua_Client::*)(int))&Lua_Client::GetLDoNPointsTheme)
|
.def("GetLDoNPointsTheme", (int(Lua_Client::*)(int))&Lua_Client::GetLDoNPointsTheme)
|
||||||
|
|||||||
@ -464,6 +464,7 @@ public:
|
|||||||
void SendPath(Lua_Mob target);
|
void SendPath(Lua_Mob target);
|
||||||
void ResetItemCooldown(uint32 item_id);
|
void ResetItemCooldown(uint32 item_id);
|
||||||
void SetItemCooldown(uint32 item_id, uint32 in_time);
|
void SetItemCooldown(uint32 item_id, uint32 in_time);
|
||||||
|
uint32 GetItemCooldown(uint32 item_id);
|
||||||
|
|
||||||
void ApplySpell(int spell_id);
|
void ApplySpell(int spell_id);
|
||||||
void ApplySpell(int spell_id, int duration);
|
void ApplySpell(int spell_id, int duration);
|
||||||
|
|||||||
@ -2882,6 +2882,11 @@ void Perl_Client_SetItemCooldown(Client* self, uint32 item_id, uint32 in_time)
|
|||||||
self->SetItemCooldown(item_id, false, in_time);
|
self->SetItemCooldown(item_id, false, in_time);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
uint32 Perl_Client_GetItemCooldown(Client* self, uint32 item_id)
|
||||||
|
{
|
||||||
|
return self->GetItemCooldown(item_id);
|
||||||
|
}
|
||||||
|
|
||||||
void perl_register_client()
|
void perl_register_client()
|
||||||
{
|
{
|
||||||
perl::interpreter perl(PERL_GET_THX);
|
perl::interpreter perl(PERL_GET_THX);
|
||||||
@ -3076,6 +3081,7 @@ void perl_register_client()
|
|||||||
package.add("GetInventory", &Perl_Client_GetInventory);
|
package.add("GetInventory", &Perl_Client_GetInventory);
|
||||||
package.add("GetInvulnerableEnvironmentDamage", &Perl_Client_GetInvulnerableEnvironmentDamage);
|
package.add("GetInvulnerableEnvironmentDamage", &Perl_Client_GetInvulnerableEnvironmentDamage);
|
||||||
package.add("GetItemAt", &Perl_Client_GetItemAt);
|
package.add("GetItemAt", &Perl_Client_GetItemAt);
|
||||||
|
package.add("GetItemCooldown", &Perl_Client_GetItemCooldown);
|
||||||
package.add("GetItemIDAt", &Perl_Client_GetItemIDAt);
|
package.add("GetItemIDAt", &Perl_Client_GetItemIDAt);
|
||||||
package.add("GetItemInInventory", &Perl_Client_GetItemInInventory);
|
package.add("GetItemInInventory", &Perl_Client_GetItemInInventory);
|
||||||
package.add("GetLDoNLosses", &Perl_Client_GetLDoNLosses);
|
package.add("GetLDoNLosses", &Perl_Client_GetLDoNLosses);
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user