Skip to content
This repository has been archived by the owner on Apr 29, 2020. It is now read-only.

Commit

Permalink
Fixed targetless useMobAbility with self-target skills
Browse files Browse the repository at this point in the history
  • Loading branch information
teschnei committed Sep 11, 2016
1 parent df3eeca commit ed2e95e
Showing 1 changed file with 13 additions and 2 deletions.
15 changes: 13 additions & 2 deletions src/map/lua/lua_baseentity.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -8740,18 +8740,29 @@ inline int32 CLuaBaseEntity::useMobAbility(lua_State* L)
{
auto skillid {lua_tointeger(L, 1)};
CBattleEntity* PTarget {nullptr};
auto PMobSkill {battleutils::GetMobSkill(skillid)};

if (!PMobSkill)
{
return 0;
}

if (!lua_isnil(L, 2) && lua_isuserdata(L, 2))
{
CLuaBaseEntity* PLuaBaseEntity = Lunar<CLuaBaseEntity>::check(L, 2);
PTarget = (CBattleEntity*)PLuaBaseEntity->m_PBaseEntity;
}

m_PBaseEntity->PAI->QueueAction(queueAction_t(0ms, true, [PTarget, skillid](auto PEntity) {
m_PBaseEntity->PAI->QueueAction(queueAction_t(0ms, true, [PTarget, skillid, PMobSkill](auto PEntity) {
if (PTarget)
PEntity->PAI->MobSkill(PTarget->targid, skillid);
else if (dynamic_cast<CMobEntity*>(PEntity))
PEntity->PAI->MobSkill(static_cast<CMobEntity*>(PEntity)->GetBattleTargetID(), skillid);
{
if (PMobSkill->getValidTargets() & TARGET_ENEMY)
PEntity->PAI->MobSkill(static_cast<CMobEntity*>(PEntity)->GetBattleTargetID(), skillid);
else if (PMobSkill->getValidTargets() & TARGET_SELF)
PEntity->PAI->MobSkill(PEntity->targid, skillid);
}
}));
}
else
Expand Down

0 comments on commit ed2e95e

Please sign in to comment.