[Server] Add script callback and getter functions for ActorEquipment

This commit is contained in:
David Cernat 2017-05-26 22:54:51 +03:00
parent 311ce4119d
commit f47a10dd4a
4 changed files with 71 additions and 43 deletions

View file

@ -133,6 +133,21 @@ double ActorFunctions::GetActorFatigueCurrent(unsigned int i) noexcept
return readActorList->baseActors.at(i).creatureStats.mDynamic[2].mCurrent; return readActorList->baseActors.at(i).creatureStats.mDynamic[2].mCurrent;
} }
const char *ActorFunctions::GetActorEquipmentItemRefId(unsigned int i, unsigned short slot) noexcept
{
return readActorList->baseActors.at(i).equipedItems[slot].refId.c_str();
}
int ActorFunctions::GetActorEquipmentItemCount(unsigned int i, unsigned short slot) noexcept
{
return readActorList->baseActors.at(i).equipedItems[slot].count;
}
int ActorFunctions::GetActorEquipmentItemCharge(unsigned int i, unsigned short slot) noexcept
{
return readActorList->baseActors.at(i).equipedItems[slot].charge;
}
bool ActorFunctions::DoesActorHavePosition(unsigned int i) noexcept bool ActorFunctions::DoesActorHavePosition(unsigned int i) noexcept
{ {
return readActorList->baseActors.at(i).hasPositionData; return readActorList->baseActors.at(i).hasPositionData;

View file

@ -28,6 +28,10 @@
{"GetActorFatigueBase", ActorFunctions::GetActorFatigueBase},\ {"GetActorFatigueBase", ActorFunctions::GetActorFatigueBase},\
{"GetActorFatigueCurrent", ActorFunctions::GetActorFatigueCurrent},\ {"GetActorFatigueCurrent", ActorFunctions::GetActorFatigueCurrent},\
\ \
{"GetActorEquipmentItemRefId", ActorFunctions::GetActorEquipmentItemRefId},\
{"GetActorEquipmentItemCount", ActorFunctions::GetActorEquipmentItemCount},\
{"GetActorEquipmentItemCharge", ActorFunctions::GetActorEquipmentItemCharge},\
\
{"DoesActorHavePosition", ActorFunctions::DoesActorHavePosition},\ {"DoesActorHavePosition", ActorFunctions::DoesActorHavePosition},\
{"DoesActorHaveStatsDynamic", ActorFunctions::DoesActorHaveStatsDynamic},\ {"DoesActorHaveStatsDynamic", ActorFunctions::DoesActorHaveStatsDynamic},\
\ \
@ -87,6 +91,10 @@ public:
static double GetActorFatigueBase(unsigned int i) noexcept; static double GetActorFatigueBase(unsigned int i) noexcept;
static double GetActorFatigueCurrent(unsigned int i) noexcept; static double GetActorFatigueCurrent(unsigned int i) noexcept;
static const char *GetActorEquipmentItemRefId(unsigned int i, unsigned short slot) noexcept;
static int GetActorEquipmentItemCount(unsigned int i, unsigned short slot) noexcept;
static int GetActorEquipmentItemCharge(unsigned int i, unsigned short slot) noexcept;
static bool DoesActorHavePosition(unsigned int i) noexcept; static bool DoesActorHavePosition(unsigned int i) noexcept;
static bool DoesActorHaveStatsDynamic(unsigned int i) noexcept; static bool DoesActorHaveStatsDynamic(unsigned int i) noexcept;

View file

@ -145,6 +145,7 @@ public:
{"OnObjectScale", Function<void, unsigned short, const char*>()}, {"OnObjectScale", Function<void, unsigned short, const char*>()},
{"OnObjectTrap", Function<void, unsigned short, const char*>()}, {"OnObjectTrap", Function<void, unsigned short, const char*>()},
{"OnActorList", Function<void, unsigned short, const char*>()}, {"OnActorList", Function<void, unsigned short, const char*>()},
{"OnActorEquipment", Function<void, unsigned short, const char*>()},
{"OnActorCellChange", Function<void, unsigned short, const char*>()}, {"OnActorCellChange", Function<void, unsigned short, const char*>()},
{"OnActorTest", Function<void, unsigned short, const char*>()}, {"OnActorTest", Function<void, unsigned short, const char*>()},
{"OnPlayerSendMessage", Function<bool, unsigned short, const char*>()}, {"OnPlayerSendMessage", Function<bool, unsigned short, const char*>()},

View file

@ -19,8 +19,12 @@ namespace mwmp
Cell *serverCell = CellController::get()->getCell(&actorList.cell); Cell *serverCell = CellController::get()->getCell(&actorList.cell);
if (serverCell != nullptr) if (serverCell != nullptr)
{
Script::Call<Script::CallbackIdentity("OnActorEquipment")>(player.getId(), actorList.cell.getDescription().c_str());
serverCell->sendToLoaded(&packet, &actorList); serverCell->sendToLoaded(&packet, &actorList);
} }
}
}; };
} }