mirror of
https://github.com/EQEmu/Server.git
synced 2026-09-04 02:06:50 +00:00
Merge branch 'master' into web_interface
This commit is contained in:
+15
-7
@@ -1710,7 +1710,7 @@ void SharedDatabase::LoadSpells(void *data, int max_spells) {
|
||||
for (y = 0; y < 16; y++)
|
||||
sp[tempid].deities[y]=atoi(row[126+y]);
|
||||
|
||||
sp[tempid].uninterruptable=atoi(row[146]);
|
||||
sp[tempid].uninterruptable=atoi(row[146]) != 0;
|
||||
sp[tempid].ResistDiff=atoi(row[147]);
|
||||
sp[tempid].dot_stacking_exempt=atoi(row[148]);
|
||||
sp[tempid].RecourseLink = atoi(row[150]);
|
||||
@@ -1726,6 +1726,7 @@ void SharedDatabase::LoadSpells(void *data, int max_spells) {
|
||||
|
||||
sp[tempid].EndurCost=atoi(row[166]);
|
||||
sp[tempid].EndurTimerIndex=atoi(row[167]);
|
||||
sp[tempid].IsDisciplineBuff = atoi(row[168]) != 0;
|
||||
sp[tempid].HateAdded=atoi(row[173]);
|
||||
sp[tempid].EndurUpkeep=atoi(row[174]);
|
||||
sp[tempid].numhitstype = atoi(row[175]);
|
||||
@@ -1741,19 +1742,26 @@ void SharedDatabase::LoadSpells(void *data, int max_spells) {
|
||||
sp[tempid].viral_targets = atoi(row[191]);
|
||||
sp[tempid].viral_timer = atoi(row[192]);
|
||||
sp[tempid].NimbusEffect = atoi(row[193]);
|
||||
sp[tempid].directional_start = (float)atoi(row[194]);
|
||||
sp[tempid].directional_end = (float)atoi(row[195]);
|
||||
sp[tempid].directional_start = static_cast<float>(atoi(row[194]));
|
||||
sp[tempid].directional_end = static_cast<float>(atoi(row[195]));
|
||||
sp[tempid].not_extendable = atoi(row[197]) != 0;
|
||||
sp[tempid].suspendable = atoi(row[200]) != 0;
|
||||
sp[tempid].viral_range = atoi(row[201]);
|
||||
sp[tempid].spellgroup=atoi(row[207]);
|
||||
sp[tempid].rank = atoi(row[208]);
|
||||
sp[tempid].powerful_flag=atoi(row[209]);
|
||||
sp[tempid].CastRestriction = atoi(row[211]);
|
||||
sp[tempid].AllowRest = atoi(row[212]) != 0;
|
||||
sp[tempid].NotOutofCombat = atoi(row[213]) != 0;
|
||||
sp[tempid].NotInCombat = atoi(row[214]) != 0;
|
||||
sp[tempid].InCombat = atoi(row[213]) != 0;
|
||||
sp[tempid].OutofCombat = atoi(row[214]) != 0;
|
||||
sp[tempid].aemaxtargets = atoi(row[218]);
|
||||
sp[tempid].maxtargets = atoi(row[219]);
|
||||
sp[tempid].persistdeath = atoi(row[224]) != 0;
|
||||
sp[tempid].min_dist = atof(row[227]);
|
||||
sp[tempid].min_dist_mod = atof(row[228]);
|
||||
sp[tempid].max_dist = atof(row[229]);
|
||||
sp[tempid].max_dist_mod = atof(row[230]);
|
||||
sp[tempid].min_range = static_cast<float>(atoi(row[231]));
|
||||
sp[tempid].DamageShieldType = 0;
|
||||
}
|
||||
mysql_free_result(result);
|
||||
@@ -1767,7 +1775,7 @@ void SharedDatabase::LoadSpells(void *data, int max_spells) {
|
||||
|
||||
int SharedDatabase::GetMaxBaseDataLevel() {
|
||||
char errbuf[MYSQL_ERRMSG_SIZE];
|
||||
char *query = "SELECT MAX(level) FROM base_data";
|
||||
const char *query = "SELECT MAX(level) FROM base_data";
|
||||
MYSQL_RES *result;
|
||||
MYSQL_ROW row;
|
||||
int32 ret = 0;
|
||||
@@ -1818,7 +1826,7 @@ bool SharedDatabase::LoadBaseData() {
|
||||
void SharedDatabase::LoadBaseData(void *data, int max_level) {
|
||||
char *base_ptr = reinterpret_cast<char*>(data);
|
||||
char errbuf[MYSQL_ERRMSG_SIZE];
|
||||
char *query = "SELECT * FROM base_data ORDER BY level, class ASC";
|
||||
const char *query = "SELECT * FROM base_data ORDER BY level, class ASC";
|
||||
MYSQL_RES *result;
|
||||
MYSQL_ROW row;
|
||||
|
||||
|
||||
@@ -1040,6 +1040,15 @@ bool IsCastonFadeDurationSpell(uint16 spell_id)
|
||||
return false;
|
||||
}
|
||||
|
||||
bool IsPowerDistModSpell(uint16 spell_id)
|
||||
{
|
||||
if (IsValidSpell(spell_id) &&
|
||||
(spells[spell_id].max_dist_mod || spells[spell_id].min_dist_mod) && spells[spell_id].max_dist > spells[spell_id].min_dist)
|
||||
return true;
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
uint32 GetPartialMeleeRuneReduction(uint32 spell_id)
|
||||
{
|
||||
for (int i = 0; i < EFFECT_COUNT; ++i)
|
||||
|
||||
+20
-12
@@ -131,10 +131,10 @@ typedef enum {
|
||||
/* 41 */ ST_Group = 0x29,
|
||||
/* 42 */ ST_Directional = 0x2a, //ae around this target between two angles
|
||||
/* 43 */ ST_GroupClientAndPet = 0x2b,
|
||||
/* 44 */ ST_Beam = 0x2c, //like directional but facing in front of you always
|
||||
/* 44 */ //ST_Beam = 0x2c, //like directional but facing in front of you always
|
||||
/* 45 */ //ST_Ring = 0x2d, // Like a mix of PB ae + rain spell(has ae duration)
|
||||
/* 46 */ ST_TargetsTarget = 0x2e, // uses the target of your target
|
||||
/* 47 */ //ST_PetMaster = 0x2e, // uses the master as target
|
||||
/* 47 */ ST_PetMaster = 0x2f, // uses the master as target
|
||||
} SpellTargetType;
|
||||
|
||||
typedef enum {
|
||||
@@ -697,8 +697,8 @@ struct SPDat_Spell_Struct
|
||||
/* 164 */ // for most spells this appears to mimic ResistDiff
|
||||
/* 166 */ int EndurCost;
|
||||
/* 167 */ int8 EndurTimerIndex;
|
||||
/* 168 */ //int IsDisciplineBuff; //Will goto the combat window when cast
|
||||
/* 169 */
|
||||
/* 168 */ bool IsDisciplineBuff; //Will goto the combat window when cast
|
||||
/* 169 - 172*/ //These are zero for ALL spells
|
||||
/* 173 */ int HateAdded;
|
||||
/* 174 */ int EndurUpkeep;
|
||||
/* 175 */ int numhitstype; // defines which type of behavior will tick down the numhit counter.
|
||||
@@ -721,23 +721,30 @@ struct SPDat_Spell_Struct
|
||||
/* 197 */ bool not_extendable;
|
||||
/* 198- 199 */
|
||||
/* 200 */ bool suspendable; // buff is suspended in suspended buff zones
|
||||
/* 201 - 202 */
|
||||
/* 201 */ int viral_range;
|
||||
/* 202 */
|
||||
/* 203 */ //int songcap; // individual song cap (how live currently does it, not implemented)
|
||||
/* 204 - 206 */
|
||||
/* 207 */ int spellgroup;
|
||||
/* 208 */ // int rank - increments AA effects with same name
|
||||
/* 208 */ int rank; //increments AA effects with same name
|
||||
/* 209 */ int powerful_flag; // Need more investigation to figure out what to call this, for now we know -1 makes charm spells not break before their duration is complete, it does alot more though
|
||||
/* 210 */ // bool DurationFrozen; ???
|
||||
/* 211 */ int CastRestriction; //Various restriction categories for spells most seem targetable race related but have also seen others for instance only castable if target hp 20% or lower or only if target out of combat
|
||||
/* 212 */ bool AllowRest;
|
||||
/* 213 */ bool NotOutofCombat; //Fail if cast out of combat
|
||||
/* 214 */ bool NotInCombat; //Fail if cast in combat
|
||||
/* 213 */ bool InCombat; //Allow spell if target is in combat
|
||||
/* 214 */ bool OutofCombat; //Allow spell if target is out of combat
|
||||
/* 215 - 217 */
|
||||
/* 219 */ int aemaxtargets; //
|
||||
/* 219 */ int maxtargets; // is used for beam and ring spells for target # limits (not implemented)
|
||||
/* 220 - 223 */
|
||||
/* 218 */ int aemaxtargets; //Is used for various AE effects
|
||||
/* 219 */ int maxtargets; //Is used for beam and ring spells for target # limits (not implemented)
|
||||
/* 220 - 223 */
|
||||
/* 224 */ bool persistdeath; // buff doesn't get stripped on death
|
||||
/* 225 - 236 */ // Not in DB
|
||||
/* 225 - 226 */
|
||||
/* 227 */ float min_dist; //spell power modified by distance from caster (Min Distance)
|
||||
/* 228 */ float min_dist_mod; //spell power modified by distance from caster (Modifier at Min Distance)
|
||||
/* 229 */ float max_dist; //spell power modified by distance from caster (Max Distance)
|
||||
/* 230 */ float max_dist_mod; //spell power modified by distance from caster (Modifier at Max Distance)
|
||||
/* 231 */ float min_range; //Min casting range
|
||||
/* 232 - 236 */
|
||||
uint8 DamageShieldType; // This field does not exist in spells_us.txt
|
||||
};
|
||||
|
||||
@@ -838,6 +845,7 @@ bool IsPersistDeathSpell(uint16 spell_id);
|
||||
bool IsSuspendableSpell(uint16 spell_id);
|
||||
uint32 GetMorphTrigger(uint32 spell_id);
|
||||
bool IsCastonFadeDurationSpell(uint16 spell_id);
|
||||
bool IsPowerDistModSpell(uint16 spell_id);
|
||||
uint32 GetPartialMeleeRuneReduction(uint32 spell_id);
|
||||
uint32 GetPartialMagicRuneReduction(uint32 spell_id);
|
||||
uint32 GetPartialMeleeRuneAmount(uint32 spell_id);
|
||||
|
||||
Reference in New Issue
Block a user