diff --git a/common/net/daybreak_connection.h b/common/net/daybreak_connection.h index 9d885e81d..2d99153e9 100644 --- a/common/net/daybreak_connection.h +++ b/common/net/daybreak_connection.h @@ -8,6 +8,7 @@ #include #include #include +#include #include #include @@ -155,13 +156,13 @@ namespace EQ uint16_t sequence_in; uint16_t sequence_out; - std::map packet_queue; + std::unordered_map packet_queue; DynamicPacket fragment_packet; uint32_t fragment_current_bytes; uint32_t fragment_total_bytes; - std::map sent_packets; + std::unordered_map sent_packets; }; DaybreakStream m_streams[4]; diff --git a/zone/attack.cpp b/zone/attack.cpp index 583f8ab01..6019fa820 100644 --- a/zone/attack.cpp +++ b/zone/attack.cpp @@ -53,8 +53,9 @@ extern WorldServer worldserver; extern EntityList entity_list; extern Zone* zone; -bool Mob::AttackAnimation(EQEmu::skills::SkillType &skillinuse, int Hand, const EQEmu::ItemInstance* weapon) +EQEmu::skills::SkillType Mob::AttackAnimation(int Hand, const EQEmu::ItemInstance* weapon) { + EQEmu::skills::SkillType skillinuse = EQEmu::skills::Skill1HBlunt; // Determine animation int type = 0; if (weapon && weapon->IsClassCommon()) { @@ -138,7 +139,7 @@ bool Mob::AttackAnimation(EQEmu::skills::SkillType &skillinuse, int Hand, const type = animDualWield; DoAnim(type, 0, false); - return true; + return skillinuse; } int Mob::compute_tohit(EQEmu::skills::SkillType skillinuse) @@ -1372,7 +1373,7 @@ bool Client::Attack(Mob* other, int Hand, bool bRiposte, bool IsStrikethrough, b DamageHitInfo my_hit; // calculate attack_skill and skillinuse depending on hand and weapon // also send Packet to near clients - AttackAnimation(my_hit.skill, Hand, weapon); + my_hit.skill = AttackAnimation(Hand, weapon); Log(Logs::Detail, Logs::Combat, "Attacking with %s in slot %d using skill %d", weapon ? weapon->GetItem()->Name : "Fist", Hand, my_hit.skill); // Now figure out damage @@ -1943,7 +1944,7 @@ bool NPC::Attack(Mob* other, int Hand, bool bRiposte, bool IsStrikethrough, bool //do attack animation regardless of whether or not we can hit below int16 charges = 0; EQEmu::ItemInstance weapon_inst(weapon, charges); - AttackAnimation(my_hit.skill, Hand, &weapon_inst); + my_hit.skill = AttackAnimation(Hand, &weapon_inst); //basically "if not immune" then do the attack if (weapon_damage > 0) { diff --git a/zone/bot.cpp b/zone/bot.cpp index 683faf1f2..08b17ff17 100644 --- a/zone/bot.cpp +++ b/zone/bot.cpp @@ -3930,7 +3930,7 @@ bool Bot::Attack(Mob* other, int Hand, bool FromRiposte, bool IsStrikethrough, b // calculate attack_skill and skillinuse depending on hand and weapon // also send Packet to near clients DamageHitInfo my_hit; - AttackAnimation(my_hit.skill, Hand, weapon); + my_hit.skill = AttackAnimation(Hand, weapon); Log(Logs::Detail, Logs::Combat, "Attacking with %s in slot %d using skill %d", weapon?weapon->GetItem()->Name:"Fist", Hand, my_hit.skill); // Now figure out damage diff --git a/zone/lua_client.cpp b/zone/lua_client.cpp index dde90988c..26acdd156 100644 --- a/zone/lua_client.cpp +++ b/zone/lua_client.cpp @@ -1172,6 +1172,11 @@ uint64 Lua_Client::GetAllMoney() { return self->GetAllMoney(); } +uint32 Lua_Client::GetMoney(uint8 type, uint8 subtype) { + Lua_Safe_Call_Int(); + return self->GetMoney(type, subtype); +} + void Lua_Client::OpenLFGuildWindow() { Lua_Safe_Call_Void(); self->OpenLFGuildWindow(); @@ -1414,9 +1419,9 @@ void Lua_Client::QuestReward(Lua_Mob target, luabind::adl::object reward) { self->QuestReward(target, copper, silver, gold, platinum, itemid, exp, faction); } -uint32 Lua_Client::GetMoney(uint8 type, uint8 subtype) { - Lua_Safe_Call_Int(); - return self->GetMoney(type, subtype); +bool Lua_Client::IsDead() { + Lua_Safe_Call_Bool(); + return self->IsDead(); } luabind::scope lua_register_client() { @@ -1653,6 +1658,7 @@ luabind::scope lua_register_client() { .def("GetAggroCount", (int(Lua_Client::*)(void))&Lua_Client::GetAggroCount) .def("GetCarriedMoney", (uint64(Lua_Client::*)(void))&Lua_Client::GetCarriedMoney) .def("GetAllMoney", (uint64(Lua_Client::*)(void))&Lua_Client::GetAllMoney) + .def("GetMoney", (uint32(Lua_Client::*)(uint8, uint8))&Lua_Client::GetMoney) .def("OpenLFGuildWindow", (void(Lua_Client::*)(void))&Lua_Client::OpenLFGuildWindow) .def("Signal", (void(Lua_Client::*)(uint32))&Lua_Client::Signal) .def("AddAlternateCurrencyValue", (void(Lua_Client::*)(uint32,int))&Lua_Client::AddAlternateCurrencyValue) @@ -1687,7 +1693,7 @@ luabind::scope lua_register_client() { .def("QuestReward", (void(Lua_Client::*)(Lua_Mob, uint32, uint32, uint32, uint32, uint32, uint32))&Lua_Client::QuestReward) .def("QuestReward", (void(Lua_Client::*)(Lua_Mob, uint32, uint32, uint32, uint32, uint32, uint32, bool))&Lua_Client::QuestReward) .def("QuestReward", (void(Lua_Client::*)(Lua_Mob, luabind::adl::object))&Lua_Client::QuestReward) - .def("GetMoney", (uint32(Lua_Client::*)(uint8, uint8))&Lua_Client::GetMoney); + .def("IsDead", &Lua_Client::IsDead); } luabind::scope lua_register_inventory_where() { diff --git a/zone/lua_client.h b/zone/lua_client.h index d7cf4f75f..cd9206728 100644 --- a/zone/lua_client.h +++ b/zone/lua_client.h @@ -297,6 +297,7 @@ public: void QuestReward(Lua_Mob target, uint32 copper, uint32 silver, uint32 gold, uint32 platinum, uint32 itemid, uint32 exp); void QuestReward(Lua_Mob target, uint32 copper, uint32 silver, uint32 gold, uint32 platinum, uint32 itemid, uint32 exp, bool faction); void QuestReward(Lua_Mob target, luabind::adl::object reward); + bool IsDead(); }; #endif diff --git a/zone/lua_general.cpp b/zone/lua_general.cpp index bc6205c85..dd9eda5af 100644 --- a/zone/lua_general.cpp +++ b/zone/lua_general.cpp @@ -7,6 +7,9 @@ #include #include +#include "../common/timer.h" +#include "../common/eqemu_logsys.h" +#include "../common/classes.h" #include "lua_parser.h" #include "lua_item.h" #include "lua_iteminst.h" @@ -16,8 +19,6 @@ #include "quest_parser_collection.h" #include "questmgr.h" #include "qglobals.h" -#include "../common/timer.h" -#include "../common/eqemu_logsys.h" #include "encounter.h" #include "lua_encounter.h" @@ -27,6 +28,7 @@ struct Slots { }; struct Materials { }; struct ClientVersions { }; struct Appearances { }; +struct Classes { }; struct lua_registered_event { std::string encounter_name; @@ -1458,6 +1460,27 @@ void lua_create_npc(luabind::adl::object table, float x, float y, float z, float npc->GiveNPCTypeData(npc_type); entity_list.AddNPC(npc); } + +int random_int(int low, int high) { + return zone->random.Int(low, high); +} + +double random_real(double low, double high) { + return zone->random.Real(low, high); +} + +bool random_roll_int(int required) { + return zone->random.Roll(required); +} + +bool random_roll_real(double required) { + return zone->random.Roll(required); +} + +int random_roll0(int max) { + return zone->random.Roll0(max); +} + luabind::scope lua_register_general() { return luabind::namespace_("eq") [ @@ -1658,6 +1681,18 @@ luabind::scope lua_register_general() { ]; } +luabind::scope lua_register_random() { + return luabind::namespace_("Random") + [ + luabind::def("Int", &random_int), + luabind::def("Real", &random_real), + luabind::def("Roll", &random_roll_int), + luabind::def("Roll", &random_roll_real), + luabind::def("Roll0", &random_roll0) + ]; +} + + luabind::scope lua_register_events() { return luabind::class_("Event") .enum_("constants") @@ -1857,4 +1892,57 @@ luabind::scope lua_register_appearance() { ]; } +luabind::scope lua_register_classes() { + return luabind::class_("Classes") + .enum_("constants") + [ + luabind::value("Warrior", WARRIOR), + luabind::value("Cleric", CLERIC), + luabind::value("Paladin", PALADIN), + luabind::value("Ranger", RANGER), + luabind::value("ShadowKnight", SHADOWKNIGHT), + luabind::value("Druid", DRUID), + luabind::value("Monk", MONK), + luabind::value("Bard", BARD), + luabind::value("Rogue", ROGUE), + luabind::value("Shaman", SHAMAN), + luabind::value("Necromancer", NECROMANCER), + luabind::value("Wizard", WIZARD), + luabind::value("Magician", MAGICIAN), + luabind::value("Enchanter", ENCHANTER), + luabind::value("Beastlord", BEASTLORD), + luabind::value("Berserker", BERSERKER), + luabind::value("WarriorGM", WARRIORGM), + luabind::value("ClericGM", CLERICGM), + luabind::value("PaladinGM", PALADINGM), + luabind::value("RangerGM", RANGERGM), + luabind::value("ShadowKnightGM", SHADOWKNIGHTGM), + luabind::value("DruidGM", DRUIDGM), + luabind::value("MonkGM", MONKGM), + luabind::value("BardGM", BARDGM), + luabind::value("RogueGM", ROGUEGM), + luabind::value("ShamanGM", SHAMANGM), + luabind::value("NecromancerGM", NECROMANCERGM), + luabind::value("WizardGM", WIZARDGM), + luabind::value("MagicianGM", MAGICIANGM), + luabind::value("EnchanterGM", ENCHANTERGM), + luabind::value("BeastlordGM", BEASTLORDGM), + luabind::value("BerserkerGM", BERSERKERGM), + luabind::value("Banker", BANKER), + luabind::value("Merchant", MERCHANT), + luabind::value("DiscordMerchant", DISCORD_MERCHANT), + luabind::value("AdventureRecruiter", ADVENTURERECRUITER), + luabind::value("AdventureMerchant", ADVENTUREMERCHANT), + luabind::value("LDONTreasure", LDON_TREASURE), + luabind::value("CorpseClass", CORPSE_CLASS), + luabind::value("TributeMaster", TRIBUTE_MASTER), + luabind::value("GuildTributeMaster", GUILD_TRIBUTE_MASTER), + luabind::value("NorrathsKeeperMerchant", NORRATHS_KEEPERS_MERCHANT), + luabind::value("DarkReignMerchant", DARK_REIGN_MERCHANT), + luabind::value("FellowshipMaster", FELLOWSHIP_MASTER), + luabind::value("AltCurrencyMerchant", ALT_CURRENCY_MERCHANT), + luabind::value("MercenaryMaster", MERCERNARY_MASTER) + ]; +} + #endif diff --git a/zone/lua_general.h b/zone/lua_general.h index eb117cfc6..1b39ea31a 100644 --- a/zone/lua_general.h +++ b/zone/lua_general.h @@ -3,12 +3,14 @@ #ifdef LUA_EQEMU luabind::scope lua_register_general(); +luabind::scope lua_register_random(); luabind::scope lua_register_events(); luabind::scope lua_register_faction(); luabind::scope lua_register_slot(); luabind::scope lua_register_material(); luabind::scope lua_register_client_version(); luabind::scope lua_register_appearance(); +luabind::scope lua_register_classes(); #endif -#endif \ No newline at end of file +#endif diff --git a/zone/lua_mob.cpp b/zone/lua_mob.cpp index 86c8f564c..475b73716 100644 --- a/zone/lua_mob.cpp +++ b/zone/lua_mob.cpp @@ -2021,6 +2021,36 @@ int16 Lua_Mob::GetMeleeMinDamageMod_SE(uint16 skill) return self->GetMeleeMinDamageMod_SE(skill); } +bool Lua_Mob::IsAttackAllowed(Lua_Mob target, bool isSpellAttack) { + Lua_Safe_Call_Bool(); + return self->IsAttackAllowed(target, isSpellAttack); +} + +bool Lua_Mob::IsCasting() { + Lua_Safe_Call_Bool(); + return self->IsCasting(); +} + +int Lua_Mob::AttackAnimation(int Hand, Lua_ItemInst weapon) { + Lua_Safe_Call_Int(); + return (int)self->AttackAnimation(Hand, weapon); +} + +int Lua_Mob::GetWeaponDamage(Lua_Mob against, Lua_ItemInst weapon) { + Lua_Safe_Call_Int(); + return self->GetWeaponDamage(against, weapon); +} + +bool Lua_Mob::IsBerserk() { + Lua_Safe_Call_Bool(); + return self->IsBerserk(); +} + +bool Lua_Mob::TryFinishingBlow(Lua_Mob defender, int &damage) { + Lua_Safe_Call_Bool(); + return self->TryFinishingBlow(defender, damage); +} + luabind::scope lua_register_mob() { return luabind::class_("Mob") .def(luabind::constructor<>()) @@ -2372,7 +2402,13 @@ luabind::scope lua_register_mob() { .def("GetSpellBonuses", &Lua_Mob::GetSpellBonuses) .def("GetAABonuses", &Lua_Mob::GetAABonuses) .def("GetMeleeDamageMod_SE", &Lua_Mob::GetMeleeDamageMod_SE) - .def("GetMeleeMinDamageMod_SE", &Lua_Mob::GetMeleeMinDamageMod_SE); + .def("GetMeleeMinDamageMod_SE", &Lua_Mob::GetMeleeMinDamageMod_SE) + .def("IsAttackAllowed", &Lua_Mob::IsAttackAllowed) + .def("IsCasting", &Lua_Mob::IsCasting) + .def("AttackAnimation", &Lua_Mob::AttackAnimation) + .def("GetWeaponDamage", &Lua_Mob::GetWeaponDamage) + .def("IsBerserk", &Lua_Mob::IsBerserk) + .def("TryFinishingBlow", &Lua_Mob::TryFinishingBlow); } luabind::scope lua_register_special_abilities() { diff --git a/zone/lua_mob.h b/zone/lua_mob.h index f83583ac3..9c84ada98 100644 --- a/zone/lua_mob.h +++ b/zone/lua_mob.h @@ -388,6 +388,12 @@ public: Lua_StatBonuses GetAABonuses(); int16 GetMeleeDamageMod_SE(uint16 skill); int16 GetMeleeMinDamageMod_SE(uint16 skill); + bool IsAttackAllowed(Lua_Mob target, bool isSpellAttack); + bool IsCasting(); + int AttackAnimation(int Hand, Lua_ItemInst weapon); + int GetWeaponDamage(Lua_Mob against, Lua_ItemInst weapon); + bool IsBerserk(); + bool TryFinishingBlow(Lua_Mob defender, int &damage); }; #endif diff --git a/zone/lua_mod.cpp b/zone/lua_mod.cpp index 48dc29e66..9f352810e 100644 --- a/zone/lua_mod.cpp +++ b/zone/lua_mod.cpp @@ -51,6 +51,7 @@ void LuaMod::Init() void PutDamageHitInfo(lua_State *L, luabind::adl::object &e, DamageHitInfo &hit) { luabind::adl::object lua_hit = luabind::newtable(L); lua_hit["base_damage"] = hit.base_damage; + lua_hit["min_damage"] = hit.min_damage; lua_hit["damage_done"] = hit.damage_done; lua_hit["offense"] = hit.offense; lua_hit["tohit"] = hit.tohit; @@ -63,6 +64,7 @@ void GetDamageHitInfo(luabind::adl::object &ret, DamageHitInfo &hit) { auto luaHitTable = ret["hit"]; if (luabind::type(luaHitTable) == LUA_TTABLE) { auto base_damage = luaHitTable["base_damage"]; + auto min_damage = luaHitTable["min_damage"]; auto damage_done = luaHitTable["damage_done"]; auto offense = luaHitTable["offense"]; auto tohit = luaHitTable["tohit"]; @@ -73,6 +75,10 @@ void GetDamageHitInfo(luabind::adl::object &ret, DamageHitInfo &hit) { hit.base_damage = luabind::object_cast(base_damage); } + if (luabind::type(min_damage) == LUA_TNUMBER) { + hit.min_damage = luabind::object_cast(min_damage); + } + if (luabind::type(damage_done) == LUA_TNUMBER) { hit.damage_done = luabind::object_cast(damage_done); } diff --git a/zone/lua_parser.cpp b/zone/lua_parser.cpp index 8748494c7..bcd20f8b8 100644 --- a/zone/lua_parser.cpp +++ b/zone/lua_parser.cpp @@ -1047,12 +1047,14 @@ void LuaParser::MapFunctions(lua_State *L) { luabind::module(L) [ lua_register_general(), + lua_register_random(), lua_register_events(), lua_register_faction(), lua_register_slot(), lua_register_material(), lua_register_client_version(), lua_register_appearance(), + lua_register_classes(), lua_register_entity(), lua_register_encounter(), lua_register_mob(), diff --git a/zone/lua_ptr.h b/zone/lua_ptr.h index 11478f093..d337059ae 100644 --- a/zone/lua_ptr.h +++ b/zone/lua_ptr.h @@ -2,13 +2,21 @@ #define EQEMU_LUA_PTR_H #ifdef LUA_EQEMU -//TODO: Remove the error checking by a flag since this adds significant overhead to each c call +#ifndef EQEMU_UNSAFE_LUA #define Lua_Safe_Call_Void() if(!d_) { return; } NativeType *self = reinterpret_cast(d_) #define Lua_Safe_Call_Bool() if(!d_) { return false; } NativeType *self = reinterpret_cast(d_) #define Lua_Safe_Call_Int() if(!d_) { return 0; } NativeType *self = reinterpret_cast(d_) #define Lua_Safe_Call_Real() if(!d_) { return 0.0; } NativeType *self = reinterpret_cast(d_) #define Lua_Safe_Call_String() if(!d_) { return ""; } NativeType *self = reinterpret_cast(d_) #define Lua_Safe_Call_Class(type) if(!d_) { return type(); } NativeType *self = reinterpret_cast(d_) +#else +#define Lua_Safe_Call_Void() NativeType *self = reinterpret_cast(d_) +#define Lua_Safe_Call_Bool() NativeType *self = reinterpret_cast(d_) +#define Lua_Safe_Call_Int() NativeType *self = reinterpret_cast(d_) +#define Lua_Safe_Call_Real() NativeType *self = reinterpret_cast(d_) +#define Lua_Safe_Call_String() NativeType *self = reinterpret_cast(d_) +#define Lua_Safe_Call_Class(type) NativeType *self = reinterpret_cast(d_) +#endif template class Lua_Ptr diff --git a/zone/lua_stat_bonuses.cpp b/zone/lua_stat_bonuses.cpp index bf3f22586..94b63525c 100644 --- a/zone/lua_stat_bonuses.cpp +++ b/zone/lua_stat_bonuses.cpp @@ -1281,259 +1281,259 @@ int32 Lua_StatBonuses::GetReduceTradeskillFail(int idx) const { luabind::scope lua_register_stat_bonuses() { return luabind::class_("StatBonuses") .def(luabind::constructor<>()) - .def("GetAC", &Lua_StatBonuses::GetAC) - .def("GetHP", &Lua_StatBonuses::GetHP) - .def("GetHPRegen", &Lua_StatBonuses::GetHPRegen) - .def("GetMaxHP", &Lua_StatBonuses::GetMaxHP) - .def("GetManaRegen", &Lua_StatBonuses::GetManaRegen) - .def("GetEnduranceRegen", &Lua_StatBonuses::GetEnduranceRegen) - .def("GetMana", &Lua_StatBonuses::GetMana) - .def("GetEndurance", &Lua_StatBonuses::GetEndurance) - .def("GetATK", &Lua_StatBonuses::GetATK) - .def("GetSTR", &Lua_StatBonuses::GetSTR) - .def("GetSTRCapMod", &Lua_StatBonuses::GetSTRCapMod) - .def("GetHeroicSTR", &Lua_StatBonuses::GetHeroicSTR) - .def("GetSTA", &Lua_StatBonuses::GetSTA) - .def("GetSTACapMod", &Lua_StatBonuses::GetSTACapMod) - .def("GetHeroicSTA", &Lua_StatBonuses::GetHeroicSTA) - .def("GetDEX", &Lua_StatBonuses::GetDEX) - .def("GetDEXCapMod", &Lua_StatBonuses::GetDEXCapMod) - .def("GetHeroicDEX", &Lua_StatBonuses::GetHeroicDEX) - .def("GetAGI", &Lua_StatBonuses::GetAGI) - .def("GetAGICapMod", &Lua_StatBonuses::GetAGICapMod) - .def("GetHeroicAGI", &Lua_StatBonuses::GetHeroicAGI) - .def("GetINT", &Lua_StatBonuses::GetINT) - .def("GetINTCapMod", &Lua_StatBonuses::GetINTCapMod) - .def("GetHeroicINT", &Lua_StatBonuses::GetHeroicINT) - .def("GetWIS", &Lua_StatBonuses::GetWIS) - .def("GetWISCapMod", &Lua_StatBonuses::GetWISCapMod) - .def("GetHeroicWIS", &Lua_StatBonuses::GetHeroicWIS) - .def("GetCHA", &Lua_StatBonuses::GetCHA) - .def("GetCHACapMod", &Lua_StatBonuses::GetCHACapMod) - .def("GetHeroicCHA", &Lua_StatBonuses::GetHeroicCHA) - .def("GetMR", &Lua_StatBonuses::GetMR) - .def("GetMRCapMod", &Lua_StatBonuses::GetMRCapMod) - .def("GetHeroicMR", &Lua_StatBonuses::GetHeroicMR) - .def("GetFR", &Lua_StatBonuses::GetFR) - .def("GetFRCapMod", &Lua_StatBonuses::GetFRCapMod) - .def("GetHeroicFR", &Lua_StatBonuses::GetHeroicFR) - .def("GetCR", &Lua_StatBonuses::GetCR) - .def("GetCRCapMod", &Lua_StatBonuses::GetCRCapMod) - .def("GetHeroicCR", &Lua_StatBonuses::GetHeroicCR) - .def("GetPR", &Lua_StatBonuses::GetPR) - .def("GetPRCapMod", &Lua_StatBonuses::GetPRCapMod) - .def("GetHeroicPR", &Lua_StatBonuses::GetHeroicPR) - .def("GetDR", &Lua_StatBonuses::GetDR) - .def("GetDRCapMod", &Lua_StatBonuses::GetDRCapMod) - .def("GetHeroicDR", &Lua_StatBonuses::GetHeroicDR) - .def("GetCorrup", &Lua_StatBonuses::GetCorrup) - .def("GetCorrupCapMod", &Lua_StatBonuses::GetCorrupCapMod) - .def("GetHeroicCorrup", &Lua_StatBonuses::GetHeroicCorrup) - .def("GetDamageShieldSpellID", &Lua_StatBonuses::GetDamageShieldSpellID) - .def("GetDamageShield", &Lua_StatBonuses::GetDamageShield) - .def("GetDamageShieldType", &Lua_StatBonuses::GetDamageShieldType) - .def("GetSpellDamageShield", &Lua_StatBonuses::GetSpellDamageShield) - .def("GetSpellShield", &Lua_StatBonuses::GetSpellShield) - .def("GetReverseDamageShield", &Lua_StatBonuses::GetReverseDamageShield) - .def("GetReverseDamageShieldSpellID", &Lua_StatBonuses::GetReverseDamageShieldSpellID) - .def("GetReverseDamageShieldType", &Lua_StatBonuses::GetReverseDamageShieldType) - .def("Getmovementspeed", &Lua_StatBonuses::Getmovementspeed) - .def("Gethaste", &Lua_StatBonuses::Gethaste) - .def("Gethastetype2", &Lua_StatBonuses::Gethastetype2) - .def("Gethastetype3", &Lua_StatBonuses::Gethastetype3) - .def("Getinhibitmelee", &Lua_StatBonuses::Getinhibitmelee) - .def("GetAggroRange", &Lua_StatBonuses::GetAggroRange) - .def("GetAssistRange", &Lua_StatBonuses::GetAssistRange) - .def("Getskillmod", &Lua_StatBonuses::Getskillmod) - .def("Getskillmodmax", &Lua_StatBonuses::Getskillmodmax) - .def("Geteffective_casting_level", &Lua_StatBonuses::Geteffective_casting_level) - .def("Getreflect_chance", &Lua_StatBonuses::Getreflect_chance) - .def("GetsingingMod", &Lua_StatBonuses::GetsingingMod) - .def("GetAmplification", &Lua_StatBonuses::GetAmplification) - .def("GetbrassMod", &Lua_StatBonuses::GetbrassMod) - .def("GetpercussionMod", &Lua_StatBonuses::GetpercussionMod) - .def("GetwindMod", &Lua_StatBonuses::GetwindMod) - .def("GetstringedMod", &Lua_StatBonuses::GetstringedMod) - .def("GetsongModCap", &Lua_StatBonuses::GetsongModCap) - .def("Gethatemod", &Lua_StatBonuses::Gethatemod) - .def("GetEnduranceReduction", &Lua_StatBonuses::GetEnduranceReduction) - .def("GetStrikeThrough", &Lua_StatBonuses::GetStrikeThrough) - .def("GetMeleeMitigation", &Lua_StatBonuses::GetMeleeMitigation) - .def("GetMeleeMitigationEffect", &Lua_StatBonuses::GetMeleeMitigationEffect) - .def("GetCriticalHitChance", &Lua_StatBonuses::GetCriticalHitChance) - .def("GetCriticalSpellChance", &Lua_StatBonuses::GetCriticalSpellChance) - .def("GetSpellCritDmgIncrease", &Lua_StatBonuses::GetSpellCritDmgIncrease) - .def("GetSpellCritDmgIncNoStack", &Lua_StatBonuses::GetSpellCritDmgIncNoStack) - .def("GetDotCritDmgIncrease", &Lua_StatBonuses::GetDotCritDmgIncrease) - .def("GetCriticalHealChance", &Lua_StatBonuses::GetCriticalHealChance) - .def("GetCriticalHealOverTime", &Lua_StatBonuses::GetCriticalHealOverTime) - .def("GetCriticalDoTChance", &Lua_StatBonuses::GetCriticalDoTChance) - .def("GetCrippBlowChance", &Lua_StatBonuses::GetCrippBlowChance) - .def("GetAvoidMeleeChance", &Lua_StatBonuses::GetAvoidMeleeChance) - .def("GetAvoidMeleeChanceEffect", &Lua_StatBonuses::GetAvoidMeleeChanceEffect) - .def("GetRiposteChance", &Lua_StatBonuses::GetRiposteChance) - .def("GetDodgeChance", &Lua_StatBonuses::GetDodgeChance) - .def("GetParryChance", &Lua_StatBonuses::GetParryChance) - .def("GetDualWieldChance", &Lua_StatBonuses::GetDualWieldChance) - .def("GetDoubleAttackChance", &Lua_StatBonuses::GetDoubleAttackChance) - .def("GetTripleAttackChance", &Lua_StatBonuses::GetTripleAttackChance) - .def("GetDoubleRangedAttack", &Lua_StatBonuses::GetDoubleRangedAttack) - .def("GetResistSpellChance", &Lua_StatBonuses::GetResistSpellChance) - .def("GetResistFearChance", &Lua_StatBonuses::GetResistFearChance) - .def("GetFearless", &Lua_StatBonuses::GetFearless) - .def("GetIsFeared", &Lua_StatBonuses::GetIsFeared) - .def("GetIsBlind", &Lua_StatBonuses::GetIsBlind) - .def("GetStunResist", &Lua_StatBonuses::GetStunResist) - .def("GetMeleeSkillCheck", &Lua_StatBonuses::GetMeleeSkillCheck) - .def("GetMeleeSkillCheckSkill", &Lua_StatBonuses::GetMeleeSkillCheckSkill) - .def("GetHitChance", &Lua_StatBonuses::GetHitChance) - .def("GetHitChanceEffect", &Lua_StatBonuses::GetHitChanceEffect) - .def("GetDamageModifier", &Lua_StatBonuses::GetDamageModifier) - .def("GetDamageModifier2", &Lua_StatBonuses::GetDamageModifier2) - .def("GetMinDamageModifier", &Lua_StatBonuses::GetMinDamageModifier) - .def("GetProcChance", &Lua_StatBonuses::GetProcChance) - .def("GetProcChanceSPA", &Lua_StatBonuses::GetProcChanceSPA) - .def("GetExtraAttackChance", &Lua_StatBonuses::GetExtraAttackChance) - .def("GetDoTShielding", &Lua_StatBonuses::GetDoTShielding) - .def("GetFlurryChance", &Lua_StatBonuses::GetFlurryChance) - .def("GetHundredHands", &Lua_StatBonuses::GetHundredHands) - .def("GetMeleeLifetap", &Lua_StatBonuses::GetMeleeLifetap) - .def("GetVampirism", &Lua_StatBonuses::GetVampirism) - .def("GetHealRate", &Lua_StatBonuses::GetHealRate) - .def("GetMaxHPChange", &Lua_StatBonuses::GetMaxHPChange) - .def("GetHealAmt", &Lua_StatBonuses::GetHealAmt) - .def("GetSpellDmg", &Lua_StatBonuses::GetSpellDmg) - .def("GetClairvoyance", &Lua_StatBonuses::GetClairvoyance) - .def("GetDSMitigation", &Lua_StatBonuses::GetDSMitigation) - .def("GetDSMitigationOffHand", &Lua_StatBonuses::GetDSMitigationOffHand) - .def("GetTwoHandBluntBlock", &Lua_StatBonuses::GetTwoHandBluntBlock) - .def("GetItemManaRegenCap", &Lua_StatBonuses::GetItemManaRegenCap) - .def("GetGravityEffect", &Lua_StatBonuses::GetGravityEffect) - .def("GetAntiGate", &Lua_StatBonuses::GetAntiGate) - .def("GetMagicWeapon", &Lua_StatBonuses::GetMagicWeapon) - .def("GetIncreaseBlockChance", &Lua_StatBonuses::GetIncreaseBlockChance) - .def("GetPersistantCasting", &Lua_StatBonuses::GetPersistantCasting) - .def("GetXPRateMod", &Lua_StatBonuses::GetXPRateMod) - .def("GetBlockNextSpell", &Lua_StatBonuses::GetBlockNextSpell) - .def("GetImmuneToFlee", &Lua_StatBonuses::GetImmuneToFlee) - .def("GetVoiceGraft", &Lua_StatBonuses::GetVoiceGraft) - .def("GetSpellProcChance", &Lua_StatBonuses::GetSpellProcChance) - .def("GetCharmBreakChance", &Lua_StatBonuses::GetCharmBreakChance) - .def("GetSongRange", &Lua_StatBonuses::GetSongRange) - .def("GetHPToManaConvert", &Lua_StatBonuses::GetHPToManaConvert) - .def("GetNegateEffects", &Lua_StatBonuses::GetNegateEffects) - .def("GetTriggerMeleeThreshold", &Lua_StatBonuses::GetTriggerMeleeThreshold) - .def("GetTriggerSpellThreshold", &Lua_StatBonuses::GetTriggerSpellThreshold) - .def("GetShieldBlock", &Lua_StatBonuses::GetShieldBlock) - .def("GetBlockBehind", &Lua_StatBonuses::GetBlockBehind) - .def("GetCriticalRegenDecay", &Lua_StatBonuses::GetCriticalRegenDecay) - .def("GetCriticalHealDecay", &Lua_StatBonuses::GetCriticalHealDecay) - .def("GetCriticalDotDecay", &Lua_StatBonuses::GetCriticalDotDecay) - .def("GetDivineAura", &Lua_StatBonuses::GetDivineAura) - .def("GetDistanceRemoval", &Lua_StatBonuses::GetDistanceRemoval) - .def("GetFrenziedDevastation", &Lua_StatBonuses::GetFrenziedDevastation) - .def("GetNegateIfCombat", &Lua_StatBonuses::GetNegateIfCombat) - .def("GetScreech", &Lua_StatBonuses::GetScreech) - .def("GetAlterNPCLevel", &Lua_StatBonuses::GetAlterNPCLevel) - .def("GetBerserkSPA", &Lua_StatBonuses::GetBerserkSPA) - .def("GetMetabolism", &Lua_StatBonuses::GetMetabolism) - .def("GetSanctuary", &Lua_StatBonuses::GetSanctuary) - .def("GetFactionModPct", &Lua_StatBonuses::GetFactionModPct) - .def("GetPC_Pet_Flurry", &Lua_StatBonuses::GetPC_Pet_Flurry) - .def("GetPackrat", &Lua_StatBonuses::GetPackrat) - .def("GetBuffSlotIncrease", &Lua_StatBonuses::GetBuffSlotIncrease) - .def("GetDelayDeath", &Lua_StatBonuses::GetDelayDeath) - .def("GetBaseMovementSpeed", &Lua_StatBonuses::GetBaseMovementSpeed) - .def("GetIncreaseRunSpeedCap", &Lua_StatBonuses::GetIncreaseRunSpeedCap) - .def("GetDoubleSpecialAttack", &Lua_StatBonuses::GetDoubleSpecialAttack) - .def("GetFrontalStunResist", &Lua_StatBonuses::GetFrontalStunResist) - .def("GetBindWound", &Lua_StatBonuses::GetBindWound) - .def("GetMaxBindWound", &Lua_StatBonuses::GetMaxBindWound) - .def("GetChannelChanceSpells", &Lua_StatBonuses::GetChannelChanceSpells) - .def("GetChannelChanceItems", &Lua_StatBonuses::GetChannelChanceItems) - .def("GetSeeInvis", &Lua_StatBonuses::GetSeeInvis) - .def("GetTripleBackstab", &Lua_StatBonuses::GetTripleBackstab) - .def("GetFrontalBackstabMinDmg", &Lua_StatBonuses::GetFrontalBackstabMinDmg) - .def("GetFrontalBackstabChance", &Lua_StatBonuses::GetFrontalBackstabChance) - .def("GetConsumeProjectile", &Lua_StatBonuses::GetConsumeProjectile) - .def("GetForageAdditionalItems", &Lua_StatBonuses::GetForageAdditionalItems) - .def("GetSalvageChance", &Lua_StatBonuses::GetSalvageChance) - .def("GetArcheryDamageModifier", &Lua_StatBonuses::GetArcheryDamageModifier) - .def("GetSecondaryDmgInc", &Lua_StatBonuses::GetSecondaryDmgInc) - .def("GetGiveDoubleAttack", &Lua_StatBonuses::GetGiveDoubleAttack) - .def("GetPetCriticalHit", &Lua_StatBonuses::GetPetCriticalHit) - .def("GetPetAvoidance", &Lua_StatBonuses::GetPetAvoidance) - .def("GetCombatStability", &Lua_StatBonuses::GetCombatStability) - .def("GetDoubleRiposte", &Lua_StatBonuses::GetDoubleRiposte) - .def("GetAmbidexterity", &Lua_StatBonuses::GetAmbidexterity) - .def("GetPetMaxHP", &Lua_StatBonuses::GetPetMaxHP) - .def("GetPetFlurry", &Lua_StatBonuses::GetPetFlurry) - .def("GetMasteryofPast", &Lua_StatBonuses::GetMasteryofPast) - .def("GetGivePetGroupTarget", &Lua_StatBonuses::GetGivePetGroupTarget) - .def("GetRootBreakChance", &Lua_StatBonuses::GetRootBreakChance) - .def("GetUnfailingDivinity", &Lua_StatBonuses::GetUnfailingDivinity) - .def("GetItemHPRegenCap", &Lua_StatBonuses::GetItemHPRegenCap) - .def("GetOffhandRiposteFail", &Lua_StatBonuses::GetOffhandRiposteFail) - .def("GetItemATKCap", &Lua_StatBonuses::GetItemATKCap) - .def("GetShieldEquipDmgMod", &Lua_StatBonuses::GetShieldEquipDmgMod) - .def("GetTriggerOnValueAmount", &Lua_StatBonuses::GetTriggerOnValueAmount) - .def("GetStunBashChance", &Lua_StatBonuses::GetStunBashChance) - .def("GetIncreaseChanceMemwipe", &Lua_StatBonuses::GetIncreaseChanceMemwipe) - .def("GetCriticalMend", &Lua_StatBonuses::GetCriticalMend) - .def("GetImprovedReclaimEnergy", &Lua_StatBonuses::GetImprovedReclaimEnergy) - .def("GetPetMeleeMitigation", &Lua_StatBonuses::GetPetMeleeMitigation) - .def("GetIllusionPersistence", &Lua_StatBonuses::GetIllusionPersistence) - .def("Getextra_xtargets", &Lua_StatBonuses::Getextra_xtargets) - .def("GetShroudofStealth", &Lua_StatBonuses::GetShroudofStealth) - .def("GetReduceFallDamage", &Lua_StatBonuses::GetReduceFallDamage) - .def("GetTradeSkillMastery", &Lua_StatBonuses::GetTradeSkillMastery) - .def("GetNoBreakAESneak", &Lua_StatBonuses::GetNoBreakAESneak) - .def("GetFeignedCastOnChance", &Lua_StatBonuses::GetFeignedCastOnChance) - .def("GetDivineSaveChance", &Lua_StatBonuses::GetDivineSaveChance) - .def("GetDeathSave", &Lua_StatBonuses::GetDeathSave) - .def("GetAccuracy", &Lua_StatBonuses::GetAccuracy) - .def("GetSkillDmgTaken", &Lua_StatBonuses::GetSkillDmgTaken) - .def("GetSpellTriggers", &Lua_StatBonuses::GetSpellTriggers) - .def("GetSpellOnKill", &Lua_StatBonuses::GetSpellOnKill) - .def("GetSpellOnDeath", &Lua_StatBonuses::GetSpellOnDeath) - .def("GetCritDmgMob", &Lua_StatBonuses::GetCritDmgMob) - .def("GetSkillReuseTime", &Lua_StatBonuses::GetSkillReuseTime) - .def("GetSkillDamageAmount", &Lua_StatBonuses::GetSkillDamageAmount) - .def("GetHPPercCap", &Lua_StatBonuses::GetHPPercCap) - .def("GetManaPercCap", &Lua_StatBonuses::GetManaPercCap) - .def("GetEndPercCap", &Lua_StatBonuses::GetEndPercCap) - .def("GetFocusEffects", &Lua_StatBonuses::GetFocusEffects) - .def("GetFocusEffectsWorn", &Lua_StatBonuses::GetFocusEffectsWorn) - .def("GetSkillDamageAmount2", &Lua_StatBonuses::GetSkillDamageAmount2) - .def("GetNegateAttacks", &Lua_StatBonuses::GetNegateAttacks) - .def("GetMitigateMeleeRune", &Lua_StatBonuses::GetMitigateMeleeRune) - .def("GetMeleeThresholdGuard", &Lua_StatBonuses::GetMeleeThresholdGuard) - .def("GetSpellThresholdGuard", &Lua_StatBonuses::GetSpellThresholdGuard) - .def("GetMitigateSpellRune", &Lua_StatBonuses::GetMitigateSpellRune) - .def("GetMitigateDotRune", &Lua_StatBonuses::GetMitigateDotRune) - .def("GetManaAbsorbPercentDamage", &Lua_StatBonuses::GetManaAbsorbPercentDamage) - .def("GetImprovedTaunt", &Lua_StatBonuses::GetImprovedTaunt) - .def("GetRoot", &Lua_StatBonuses::GetRoot) - .def("GetAbsorbMagicAtt", &Lua_StatBonuses::GetAbsorbMagicAtt) - .def("GetMeleeRune", &Lua_StatBonuses::GetMeleeRune) - .def("GetAStacker", &Lua_StatBonuses::GetAStacker) - .def("GetBStacker", &Lua_StatBonuses::GetBStacker) - .def("GetCStacker", &Lua_StatBonuses::GetCStacker) - .def("GetDStacker", &Lua_StatBonuses::GetDStacker) - .def("GetLimitToSkill", &Lua_StatBonuses::GetLimitToSkill) - .def("GetSkillProc", &Lua_StatBonuses::GetSkillProc) - .def("GetSkillProcSuccess", &Lua_StatBonuses::GetSkillProcSuccess) - .def("GetPC_Pet_Rampage", &Lua_StatBonuses::GetPC_Pet_Rampage) - .def("GetSkillAttackProc", &Lua_StatBonuses::GetSkillAttackProc) - .def("GetSlayUndead", &Lua_StatBonuses::GetSlayUndead) - .def("GetGiveDoubleRiposte", &Lua_StatBonuses::GetGiveDoubleRiposte) - .def("GetRaiseSkillCap", &Lua_StatBonuses::GetRaiseSkillCap) - .def("GetSEResist", &Lua_StatBonuses::GetSEResist) - .def("GetFinishingBlow", &Lua_StatBonuses::GetFinishingBlow) - .def("GetFinishingBlowLvl", &Lua_StatBonuses::GetFinishingBlowLvl) - .def("GetHeadShot", &Lua_StatBonuses::GetHeadShot) - .def("GetHSLevel", &Lua_StatBonuses::GetHSLevel) - .def("GetAssassinate", &Lua_StatBonuses::GetAssassinate) - .def("GetAssassinateLevel", &Lua_StatBonuses::GetAssassinateLevel) - .def("GetReduceTradeskillFail", &Lua_StatBonuses::GetReduceTradeskillFail); + .def("AC", &Lua_StatBonuses::GetAC) + .def("HP", &Lua_StatBonuses::GetHP) + .def("HPRegen", &Lua_StatBonuses::GetHPRegen) + .def("MaxHP", &Lua_StatBonuses::GetMaxHP) + .def("ManaRegen", &Lua_StatBonuses::GetManaRegen) + .def("EnduranceRegen", &Lua_StatBonuses::GetEnduranceRegen) + .def("Mana", &Lua_StatBonuses::GetMana) + .def("Endurance", &Lua_StatBonuses::GetEndurance) + .def("ATK", &Lua_StatBonuses::GetATK) + .def("STR", &Lua_StatBonuses::GetSTR) + .def("STRCapMod", &Lua_StatBonuses::GetSTRCapMod) + .def("HeroicSTR", &Lua_StatBonuses::GetHeroicSTR) + .def("STA", &Lua_StatBonuses::GetSTA) + .def("STACapMod", &Lua_StatBonuses::GetSTACapMod) + .def("HeroicSTA", &Lua_StatBonuses::GetHeroicSTA) + .def("DEX", &Lua_StatBonuses::GetDEX) + .def("DEXCapMod", &Lua_StatBonuses::GetDEXCapMod) + .def("HeroicDEX", &Lua_StatBonuses::GetHeroicDEX) + .def("AGI", &Lua_StatBonuses::GetAGI) + .def("AGICapMod", &Lua_StatBonuses::GetAGICapMod) + .def("HeroicAGI", &Lua_StatBonuses::GetHeroicAGI) + .def("INT", &Lua_StatBonuses::GetINT) + .def("INTCapMod", &Lua_StatBonuses::GetINTCapMod) + .def("HeroicINT", &Lua_StatBonuses::GetHeroicINT) + .def("WIS", &Lua_StatBonuses::GetWIS) + .def("WISCapMod", &Lua_StatBonuses::GetWISCapMod) + .def("HeroicWIS", &Lua_StatBonuses::GetHeroicWIS) + .def("CHA", &Lua_StatBonuses::GetCHA) + .def("CHACapMod", &Lua_StatBonuses::GetCHACapMod) + .def("HeroicCHA", &Lua_StatBonuses::GetHeroicCHA) + .def("MR", &Lua_StatBonuses::GetMR) + .def("MRCapMod", &Lua_StatBonuses::GetMRCapMod) + .def("HeroicMR", &Lua_StatBonuses::GetHeroicMR) + .def("FR", &Lua_StatBonuses::GetFR) + .def("FRCapMod", &Lua_StatBonuses::GetFRCapMod) + .def("HeroicFR", &Lua_StatBonuses::GetHeroicFR) + .def("CR", &Lua_StatBonuses::GetCR) + .def("CRCapMod", &Lua_StatBonuses::GetCRCapMod) + .def("HeroicCR", &Lua_StatBonuses::GetHeroicCR) + .def("PR", &Lua_StatBonuses::GetPR) + .def("PRCapMod", &Lua_StatBonuses::GetPRCapMod) + .def("HeroicPR", &Lua_StatBonuses::GetHeroicPR) + .def("DR", &Lua_StatBonuses::GetDR) + .def("DRCapMod", &Lua_StatBonuses::GetDRCapMod) + .def("HeroicDR", &Lua_StatBonuses::GetHeroicDR) + .def("Corrup", &Lua_StatBonuses::GetCorrup) + .def("CorrupCapMod", &Lua_StatBonuses::GetCorrupCapMod) + .def("HeroicCorrup", &Lua_StatBonuses::GetHeroicCorrup) + .def("DamageShieldSpellID", &Lua_StatBonuses::GetDamageShieldSpellID) + .def("DamageShield", &Lua_StatBonuses::GetDamageShield) + .def("DamageShieldType", &Lua_StatBonuses::GetDamageShieldType) + .def("SpellDamageShield", &Lua_StatBonuses::GetSpellDamageShield) + .def("SpellShield", &Lua_StatBonuses::GetSpellShield) + .def("ReverseDamageShield", &Lua_StatBonuses::GetReverseDamageShield) + .def("ReverseDamageShieldSpellID", &Lua_StatBonuses::GetReverseDamageShieldSpellID) + .def("ReverseDamageShieldType", &Lua_StatBonuses::GetReverseDamageShieldType) + .def("movementspeed", &Lua_StatBonuses::Getmovementspeed) + .def("haste", &Lua_StatBonuses::Gethaste) + .def("hastetype2", &Lua_StatBonuses::Gethastetype2) + .def("hastetype3", &Lua_StatBonuses::Gethastetype3) + .def("inhibitmelee", &Lua_StatBonuses::Getinhibitmelee) + .def("AggroRange", &Lua_StatBonuses::GetAggroRange) + .def("AssistRange", &Lua_StatBonuses::GetAssistRange) + .def("skillmod", &Lua_StatBonuses::Getskillmod) + .def("skillmodmax", &Lua_StatBonuses::Getskillmodmax) + .def("effective_casting_level", &Lua_StatBonuses::Geteffective_casting_level) + .def("reflect_chance", &Lua_StatBonuses::Getreflect_chance) + .def("singingMod", &Lua_StatBonuses::GetsingingMod) + .def("Amplification", &Lua_StatBonuses::GetAmplification) + .def("brassMod", &Lua_StatBonuses::GetbrassMod) + .def("percussionMod", &Lua_StatBonuses::GetpercussionMod) + .def("windMod", &Lua_StatBonuses::GetwindMod) + .def("stringedMod", &Lua_StatBonuses::GetstringedMod) + .def("songModCap", &Lua_StatBonuses::GetsongModCap) + .def("hatemod", &Lua_StatBonuses::Gethatemod) + .def("EnduranceReduction", &Lua_StatBonuses::GetEnduranceReduction) + .def("StrikeThrough", &Lua_StatBonuses::GetStrikeThrough) + .def("MeleeMitigation", &Lua_StatBonuses::GetMeleeMitigation) + .def("MeleeMitigationEffect", &Lua_StatBonuses::GetMeleeMitigationEffect) + .def("CriticalHitChance", &Lua_StatBonuses::GetCriticalHitChance) + .def("CriticalSpellChance", &Lua_StatBonuses::GetCriticalSpellChance) + .def("SpellCritDmgIncrease", &Lua_StatBonuses::GetSpellCritDmgIncrease) + .def("SpellCritDmgIncNoStack", &Lua_StatBonuses::GetSpellCritDmgIncNoStack) + .def("DotCritDmgIncrease", &Lua_StatBonuses::GetDotCritDmgIncrease) + .def("CriticalHealChance", &Lua_StatBonuses::GetCriticalHealChance) + .def("CriticalHealOverTime", &Lua_StatBonuses::GetCriticalHealOverTime) + .def("CriticalDoTChance", &Lua_StatBonuses::GetCriticalDoTChance) + .def("CrippBlowChance", &Lua_StatBonuses::GetCrippBlowChance) + .def("AvoidMeleeChance", &Lua_StatBonuses::GetAvoidMeleeChance) + .def("AvoidMeleeChanceEffect", &Lua_StatBonuses::GetAvoidMeleeChanceEffect) + .def("RiposteChance", &Lua_StatBonuses::GetRiposteChance) + .def("DodgeChance", &Lua_StatBonuses::GetDodgeChance) + .def("ParryChance", &Lua_StatBonuses::GetParryChance) + .def("DualWieldChance", &Lua_StatBonuses::GetDualWieldChance) + .def("DoubleAttackChance", &Lua_StatBonuses::GetDoubleAttackChance) + .def("TripleAttackChance", &Lua_StatBonuses::GetTripleAttackChance) + .def("DoubleRangedAttack", &Lua_StatBonuses::GetDoubleRangedAttack) + .def("ResistSpellChance", &Lua_StatBonuses::GetResistSpellChance) + .def("ResistFearChance", &Lua_StatBonuses::GetResistFearChance) + .def("Fearless", &Lua_StatBonuses::GetFearless) + .def("IsFeared", &Lua_StatBonuses::GetIsFeared) + .def("IsBlind", &Lua_StatBonuses::GetIsBlind) + .def("StunResist", &Lua_StatBonuses::GetStunResist) + .def("MeleeSkillCheck", &Lua_StatBonuses::GetMeleeSkillCheck) + .def("MeleeSkillCheckSkill", &Lua_StatBonuses::GetMeleeSkillCheckSkill) + .def("HitChance", &Lua_StatBonuses::GetHitChance) + .def("HitChanceEffect", &Lua_StatBonuses::GetHitChanceEffect) + .def("DamageModifier", &Lua_StatBonuses::GetDamageModifier) + .def("DamageModifier2", &Lua_StatBonuses::GetDamageModifier2) + .def("MinDamageModifier", &Lua_StatBonuses::GetMinDamageModifier) + .def("ProcChance", &Lua_StatBonuses::GetProcChance) + .def("ProcChanceSPA", &Lua_StatBonuses::GetProcChanceSPA) + .def("ExtraAttackChance", &Lua_StatBonuses::GetExtraAttackChance) + .def("DoTShielding", &Lua_StatBonuses::GetDoTShielding) + .def("FlurryChance", &Lua_StatBonuses::GetFlurryChance) + .def("HundredHands", &Lua_StatBonuses::GetHundredHands) + .def("MeleeLifetap", &Lua_StatBonuses::GetMeleeLifetap) + .def("Vampirism", &Lua_StatBonuses::GetVampirism) + .def("HealRate", &Lua_StatBonuses::GetHealRate) + .def("MaxHPChange", &Lua_StatBonuses::GetMaxHPChange) + .def("HealAmt", &Lua_StatBonuses::GetHealAmt) + .def("SpellDmg", &Lua_StatBonuses::GetSpellDmg) + .def("Clairvoyance", &Lua_StatBonuses::GetClairvoyance) + .def("DSMitigation", &Lua_StatBonuses::GetDSMitigation) + .def("DSMitigationOffHand", &Lua_StatBonuses::GetDSMitigationOffHand) + .def("TwoHandBluntBlock", &Lua_StatBonuses::GetTwoHandBluntBlock) + .def("ItemManaRegenCap", &Lua_StatBonuses::GetItemManaRegenCap) + .def("GravityEffect", &Lua_StatBonuses::GetGravityEffect) + .def("AntiGate", &Lua_StatBonuses::GetAntiGate) + .def("MagicWeapon", &Lua_StatBonuses::GetMagicWeapon) + .def("IncreaseBlockChance", &Lua_StatBonuses::GetIncreaseBlockChance) + .def("PersistantCasting", &Lua_StatBonuses::GetPersistantCasting) + .def("XPRateMod", &Lua_StatBonuses::GetXPRateMod) + .def("BlockNextSpell", &Lua_StatBonuses::GetBlockNextSpell) + .def("ImmuneToFlee", &Lua_StatBonuses::GetImmuneToFlee) + .def("VoiceGraft", &Lua_StatBonuses::GetVoiceGraft) + .def("SpellProcChance", &Lua_StatBonuses::GetSpellProcChance) + .def("CharmBreakChance", &Lua_StatBonuses::GetCharmBreakChance) + .def("SongRange", &Lua_StatBonuses::GetSongRange) + .def("HPToManaConvert", &Lua_StatBonuses::GetHPToManaConvert) + .def("NegateEffects", &Lua_StatBonuses::GetNegateEffects) + .def("TriggerMeleeThreshold", &Lua_StatBonuses::GetTriggerMeleeThreshold) + .def("TriggerSpellThreshold", &Lua_StatBonuses::GetTriggerSpellThreshold) + .def("ShieldBlock", &Lua_StatBonuses::GetShieldBlock) + .def("BlockBehind", &Lua_StatBonuses::GetBlockBehind) + .def("CriticalRegenDecay", &Lua_StatBonuses::GetCriticalRegenDecay) + .def("CriticalHealDecay", &Lua_StatBonuses::GetCriticalHealDecay) + .def("CriticalDotDecay", &Lua_StatBonuses::GetCriticalDotDecay) + .def("DivineAura", &Lua_StatBonuses::GetDivineAura) + .def("DistanceRemoval", &Lua_StatBonuses::GetDistanceRemoval) + .def("FrenziedDevastation", &Lua_StatBonuses::GetFrenziedDevastation) + .def("NegateIfCombat", &Lua_StatBonuses::GetNegateIfCombat) + .def("Screech", &Lua_StatBonuses::GetScreech) + .def("AlterNPCLevel", &Lua_StatBonuses::GetAlterNPCLevel) + .def("BerserkSPA", &Lua_StatBonuses::GetBerserkSPA) + .def("Metabolism", &Lua_StatBonuses::GetMetabolism) + .def("Sanctuary", &Lua_StatBonuses::GetSanctuary) + .def("FactionModPct", &Lua_StatBonuses::GetFactionModPct) + .def("PC_Pet_Flurry", &Lua_StatBonuses::GetPC_Pet_Flurry) + .def("Packrat", &Lua_StatBonuses::GetPackrat) + .def("BuffSlotIncrease", &Lua_StatBonuses::GetBuffSlotIncrease) + .def("DelayDeath", &Lua_StatBonuses::GetDelayDeath) + .def("BaseMovementSpeed", &Lua_StatBonuses::GetBaseMovementSpeed) + .def("IncreaseRunSpeedCap", &Lua_StatBonuses::GetIncreaseRunSpeedCap) + .def("DoubleSpecialAttack", &Lua_StatBonuses::GetDoubleSpecialAttack) + .def("FrontalStunResist", &Lua_StatBonuses::GetFrontalStunResist) + .def("BindWound", &Lua_StatBonuses::GetBindWound) + .def("MaxBindWound", &Lua_StatBonuses::GetMaxBindWound) + .def("ChannelChanceSpells", &Lua_StatBonuses::GetChannelChanceSpells) + .def("ChannelChanceItems", &Lua_StatBonuses::GetChannelChanceItems) + .def("SeeInvis", &Lua_StatBonuses::GetSeeInvis) + .def("TripleBackstab", &Lua_StatBonuses::GetTripleBackstab) + .def("FrontalBackstabMinDmg", &Lua_StatBonuses::GetFrontalBackstabMinDmg) + .def("FrontalBackstabChance", &Lua_StatBonuses::GetFrontalBackstabChance) + .def("ConsumeProjectile", &Lua_StatBonuses::GetConsumeProjectile) + .def("ForageAdditionalItems", &Lua_StatBonuses::GetForageAdditionalItems) + .def("SalvageChance", &Lua_StatBonuses::GetSalvageChance) + .def("ArcheryDamageModifier", &Lua_StatBonuses::GetArcheryDamageModifier) + .def("SecondaryDmgInc", &Lua_StatBonuses::GetSecondaryDmgInc) + .def("GiveDoubleAttack", &Lua_StatBonuses::GetGiveDoubleAttack) + .def("PetCriticalHit", &Lua_StatBonuses::GetPetCriticalHit) + .def("PetAvoidance", &Lua_StatBonuses::GetPetAvoidance) + .def("CombatStability", &Lua_StatBonuses::GetCombatStability) + .def("DoubleRiposte", &Lua_StatBonuses::GetDoubleRiposte) + .def("Ambidexterity", &Lua_StatBonuses::GetAmbidexterity) + .def("PetMaxHP", &Lua_StatBonuses::GetPetMaxHP) + .def("PetFlurry", &Lua_StatBonuses::GetPetFlurry) + .def("MasteryofPast", &Lua_StatBonuses::GetMasteryofPast) + .def("GivePetGroupTarget", &Lua_StatBonuses::GetGivePetGroupTarget) + .def("RootBreakChance", &Lua_StatBonuses::GetRootBreakChance) + .def("UnfailingDivinity", &Lua_StatBonuses::GetUnfailingDivinity) + .def("ItemHPRegenCap", &Lua_StatBonuses::GetItemHPRegenCap) + .def("OffhandRiposteFail", &Lua_StatBonuses::GetOffhandRiposteFail) + .def("ItemATKCap", &Lua_StatBonuses::GetItemATKCap) + .def("ShieldEquipDmgMod", &Lua_StatBonuses::GetShieldEquipDmgMod) + .def("TriggerOnValueAmount", &Lua_StatBonuses::GetTriggerOnValueAmount) + .def("StunBashChance", &Lua_StatBonuses::GetStunBashChance) + .def("IncreaseChanceMemwipe", &Lua_StatBonuses::GetIncreaseChanceMemwipe) + .def("CriticalMend", &Lua_StatBonuses::GetCriticalMend) + .def("ImprovedReclaimEnergy", &Lua_StatBonuses::GetImprovedReclaimEnergy) + .def("PetMeleeMitigation", &Lua_StatBonuses::GetPetMeleeMitigation) + .def("IllusionPersistence", &Lua_StatBonuses::GetIllusionPersistence) + .def("extra_xtargets", &Lua_StatBonuses::Getextra_xtargets) + .def("ShroudofStealth", &Lua_StatBonuses::GetShroudofStealth) + .def("ReduceFallDamage", &Lua_StatBonuses::GetReduceFallDamage) + .def("TradeSkillMastery", &Lua_StatBonuses::GetTradeSkillMastery) + .def("NoBreakAESneak", &Lua_StatBonuses::GetNoBreakAESneak) + .def("FeignedCastOnChance", &Lua_StatBonuses::GetFeignedCastOnChance) + .def("DivineSaveChance", &Lua_StatBonuses::GetDivineSaveChance) + .def("DeathSave", &Lua_StatBonuses::GetDeathSave) + .def("Accuracy", &Lua_StatBonuses::GetAccuracy) + .def("SkillDmgTaken", &Lua_StatBonuses::GetSkillDmgTaken) + .def("SpellTriggers", &Lua_StatBonuses::GetSpellTriggers) + .def("SpellOnKill", &Lua_StatBonuses::GetSpellOnKill) + .def("SpellOnDeath", &Lua_StatBonuses::GetSpellOnDeath) + .def("CritDmgMob", &Lua_StatBonuses::GetCritDmgMob) + .def("SkillReuseTime", &Lua_StatBonuses::GetSkillReuseTime) + .def("SkillDamageAmount", &Lua_StatBonuses::GetSkillDamageAmount) + .def("HPPercCap", &Lua_StatBonuses::GetHPPercCap) + .def("ManaPercCap", &Lua_StatBonuses::GetManaPercCap) + .def("EndPercCap", &Lua_StatBonuses::GetEndPercCap) + .def("FocusEffects", &Lua_StatBonuses::GetFocusEffects) + .def("FocusEffectsWorn", &Lua_StatBonuses::GetFocusEffectsWorn) + .def("SkillDamageAmount2", &Lua_StatBonuses::GetSkillDamageAmount2) + .def("NegateAttacks", &Lua_StatBonuses::GetNegateAttacks) + .def("MitigateMeleeRune", &Lua_StatBonuses::GetMitigateMeleeRune) + .def("MeleeThresholdGuard", &Lua_StatBonuses::GetMeleeThresholdGuard) + .def("SpellThresholdGuard", &Lua_StatBonuses::GetSpellThresholdGuard) + .def("MitigateSpellRune", &Lua_StatBonuses::GetMitigateSpellRune) + .def("MitigateDotRune", &Lua_StatBonuses::GetMitigateDotRune) + .def("ManaAbsorbPercentDamage", &Lua_StatBonuses::GetManaAbsorbPercentDamage) + .def("ImprovedTaunt", &Lua_StatBonuses::GetImprovedTaunt) + .def("Root", &Lua_StatBonuses::GetRoot) + .def("AbsorbMagicAtt", &Lua_StatBonuses::GetAbsorbMagicAtt) + .def("MeleeRune", &Lua_StatBonuses::GetMeleeRune) + .def("AStacker", &Lua_StatBonuses::GetAStacker) + .def("BStacker", &Lua_StatBonuses::GetBStacker) + .def("CStacker", &Lua_StatBonuses::GetCStacker) + .def("DStacker", &Lua_StatBonuses::GetDStacker) + .def("LimitToSkill", &Lua_StatBonuses::GetLimitToSkill) + .def("SkillProc", &Lua_StatBonuses::GetSkillProc) + .def("SkillProcSuccess", &Lua_StatBonuses::GetSkillProcSuccess) + .def("PC_Pet_Rampage", &Lua_StatBonuses::GetPC_Pet_Rampage) + .def("SkillAttackProc", &Lua_StatBonuses::GetSkillAttackProc) + .def("SlayUndead", &Lua_StatBonuses::GetSlayUndead) + .def("GiveDoubleRiposte", &Lua_StatBonuses::GetGiveDoubleRiposte) + .def("RaiseSkillCap", &Lua_StatBonuses::GetRaiseSkillCap) + .def("SEResist", &Lua_StatBonuses::GetSEResist) + .def("FinishingBlow", &Lua_StatBonuses::GetFinishingBlow) + .def("FinishingBlowLvl", &Lua_StatBonuses::GetFinishingBlowLvl) + .def("HeadShot", &Lua_StatBonuses::GetHeadShot) + .def("HSLevel", &Lua_StatBonuses::GetHSLevel) + .def("Assassinate", &Lua_StatBonuses::GetAssassinate) + .def("AssassinateLevel", &Lua_StatBonuses::GetAssassinateLevel) + .def("ReduceTradeskillFail", &Lua_StatBonuses::GetReduceTradeskillFail); } \ No newline at end of file diff --git a/zone/mob.h b/zone/mob.h index f280f5600..4ba87f2d7 100644 --- a/zone/mob.h +++ b/zone/mob.h @@ -233,7 +233,7 @@ public: inline bool SeeImprovedHide() const { return see_improved_hide; } bool IsInvisible(Mob* other = 0) const; void SetInvisible(uint8 state); - bool AttackAnimation(EQEmu::skills::SkillType &skillinuse, int Hand, const EQEmu::ItemInstance* weapon); + EQEmu::skills::SkillType AttackAnimation(int Hand, const EQEmu::ItemInstance* weapon); //Song bool UseBardSpellLogic(uint16 spell_id = 0xffff, int slot = -1); @@ -1053,6 +1053,8 @@ public: void AddAssistCap() { ++npc_assist_cap; } void DelAssistCap() { --npc_assist_cap; } void ResetAssistCap() { npc_assist_cap = 0; } + int GetWeaponDamage(Mob *against, const EQEmu::ItemData *weapon_item); + int GetWeaponDamage(Mob *against, const EQEmu::ItemInstance *weapon_item, uint32 *hate = nullptr); // Bots HealRotation methods #ifdef BOTS @@ -1199,8 +1201,6 @@ protected: virtual float GetDefensiveProcChances(float &ProcBonus, float &ProcChance, uint16 hand = EQEmu::inventory::slotPrimary, Mob *on = nullptr); virtual float GetSkillProcChances(uint16 ReuseTime, uint16 hand = 0); // hand = MainCharm? uint16 GetWeaponSpeedbyHand(uint16 hand); - int GetWeaponDamage(Mob *against, const EQEmu::ItemData *weapon_item); - int GetWeaponDamage(Mob *against, const EQEmu::ItemInstance *weapon_item, uint32 *hate = nullptr); #ifdef BOTS virtual #endif diff --git a/zone/tune.cpp b/zone/tune.cpp index bbb56217e..36be51905 100644 --- a/zone/tune.cpp +++ b/zone/tune.cpp @@ -596,8 +596,7 @@ int32 Client::GetMeleeDamage(Mob* other, bool GetMinDamage) } } - EQEmu::skills::SkillType skillinuse; - AttackAnimation(skillinuse, Hand, weapon); + EQEmu::skills::SkillType skillinuse = AttackAnimation(Hand, weapon); int damage = 0; uint8 mylevel = GetLevel() ? GetLevel() : 1; @@ -665,16 +664,16 @@ void Mob::Tune_FindAccuaryByHitChance(Mob* defender, Mob *attacker, float hit_ch weapon = attacker->CastToClient()->GetInv().GetItem(EQEmu::inventory::slotPrimary); if(weapon && weapon->IsWeapon()){ - attacker->CastToClient()->AttackAnimation(skillinuse, EQEmu::inventory::slotPrimary, weapon); + skillinuse = attacker->CastToClient()->AttackAnimation(EQEmu::inventory::slotPrimary, weapon); } else { weapon = attacker->CastToClient()->GetInv().GetItem(EQEmu::inventory::slotSecondary); if (weapon && weapon->IsWeapon()) - attacker->CastToClient()->AttackAnimation(skillinuse, EQEmu::inventory::slotSecondary, weapon); + skillinuse = attacker->CastToClient()->AttackAnimation(EQEmu::inventory::slotSecondary, weapon); else { weapon = attacker->CastToClient()->GetInv().GetItem(EQEmu::inventory::slotRange); if (weapon && weapon->IsWeapon()) - attacker->CastToClient()->AttackAnimation(skillinuse, EQEmu::inventory::slotRange, weapon); + skillinuse = attacker->CastToClient()->AttackAnimation(EQEmu::inventory::slotRange, weapon); } } } @@ -745,16 +744,16 @@ void Mob::Tune_FindAvoidanceByHitChance(Mob* defender, Mob *attacker, float hit_ weapon = attacker->CastToClient()->GetInv().GetItem(EQEmu::inventory::slotPrimary); if(weapon && weapon->IsWeapon()){ - attacker->CastToClient()->AttackAnimation(skillinuse, EQEmu::inventory::slotPrimary, weapon); + skillinuse = attacker->CastToClient()->AttackAnimation(EQEmu::inventory::slotPrimary, weapon); } else { weapon = attacker->CastToClient()->GetInv().GetItem(EQEmu::inventory::slotSecondary); if (weapon && weapon->IsWeapon()) - attacker->CastToClient()->AttackAnimation(skillinuse, EQEmu::inventory::slotSecondary, weapon); + skillinuse = attacker->CastToClient()->AttackAnimation(EQEmu::inventory::slotSecondary, weapon); else { weapon = attacker->CastToClient()->GetInv().GetItem(EQEmu::inventory::slotRange); if (weapon && weapon->IsWeapon()) - attacker->CastToClient()->AttackAnimation(skillinuse, EQEmu::inventory::slotRange, weapon); + skillinuse = attacker->CastToClient()->AttackAnimation(EQEmu::inventory::slotRange, weapon); } } }