Export many things

This commit is contained in:
KimLS 2017-05-15 15:46:19 -07:00
parent 0fd6815f81
commit 28fd766278
15 changed files with 438 additions and 282 deletions

View File

@ -8,6 +8,7 @@
#include <functional>
#include <memory>
#include <map>
#include <unordered_map>
#include <queue>
#include <list>
@ -155,13 +156,13 @@ namespace EQ
uint16_t sequence_in;
uint16_t sequence_out;
std::map<uint16_t, Packet*> packet_queue;
std::unordered_map<uint16_t, Packet*> packet_queue;
DynamicPacket fragment_packet;
uint32_t fragment_current_bytes;
uint32_t fragment_total_bytes;
std::map<uint16_t, DaybreakSentPacket> sent_packets;
std::unordered_map<uint16_t, DaybreakSentPacket> sent_packets;
};
DaybreakStream m_streams[4];

View File

@ -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) {

View File

@ -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

View File

@ -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() {

View File

@ -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

View File

@ -7,6 +7,9 @@
#include <list>
#include <map>
#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_<Events>("Event")
.enum_("constants")
@ -1857,4 +1892,57 @@ luabind::scope lua_register_appearance() {
];
}
luabind::scope lua_register_classes() {
return luabind::class_<Classes>("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

View File

@ -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
#endif

View File

@ -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_<Lua_Mob, Lua_Entity>("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() {

View File

@ -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

View File

@ -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<int>(base_damage);
}
if (luabind::type(min_damage) == LUA_TNUMBER) {
hit.min_damage = luabind::object_cast<int>(min_damage);
}
if (luabind::type(damage_done) == LUA_TNUMBER) {
hit.damage_done = luabind::object_cast<int>(damage_done);
}

View File

@ -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(),

View File

@ -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<NativeType*>(d_)
#define Lua_Safe_Call_Bool() if(!d_) { return false; } NativeType *self = reinterpret_cast<NativeType*>(d_)
#define Lua_Safe_Call_Int() if(!d_) { return 0; } NativeType *self = reinterpret_cast<NativeType*>(d_)
#define Lua_Safe_Call_Real() if(!d_) { return 0.0; } NativeType *self = reinterpret_cast<NativeType*>(d_)
#define Lua_Safe_Call_String() if(!d_) { return ""; } NativeType *self = reinterpret_cast<NativeType*>(d_)
#define Lua_Safe_Call_Class(type) if(!d_) { return type(); } NativeType *self = reinterpret_cast<NativeType*>(d_)
#else
#define Lua_Safe_Call_Void() NativeType *self = reinterpret_cast<NativeType*>(d_)
#define Lua_Safe_Call_Bool() NativeType *self = reinterpret_cast<NativeType*>(d_)
#define Lua_Safe_Call_Int() NativeType *self = reinterpret_cast<NativeType*>(d_)
#define Lua_Safe_Call_Real() NativeType *self = reinterpret_cast<NativeType*>(d_)
#define Lua_Safe_Call_String() NativeType *self = reinterpret_cast<NativeType*>(d_)
#define Lua_Safe_Call_Class(type) NativeType *self = reinterpret_cast<NativeType*>(d_)
#endif
template<typename T>
class Lua_Ptr

View File

@ -1281,259 +1281,259 @@ int32 Lua_StatBonuses::GetReduceTradeskillFail(int idx) const {
luabind::scope lua_register_stat_bonuses() {
return luabind::class_<Lua_StatBonuses>("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);
}

View File

@ -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

View File

@ -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);
}
}
}