EQEmulator Forums

EQEmulator Forums (https://www.eqemulator.org/forums/index.php)
-   Spell Support (https://www.eqemulator.org/forums/forumdisplay.php?f=664)
-   -   spells_us.txt files (https://www.eqemulator.org/forums/showthread.php?t=38369)

RabbitRa 06-10-2014 04:15 PM

spells_us.txt files
 
Not sure if this is really the place to post this question however, here goes anyway. I am looking to see if anyone has documentation around this file. I am looking to see if the particular fields with in this file has any documentation. I know there are some scripts in the server install that imports this file into the database so I would assume that the fields are mapped somewhere however. searches here in the forums and in the Wiki do not really turn up anything useful.

Bob

Zaela_S 06-10-2014 04:26 PM

I believe the struct in /common/spdat.h has the fields in the order they are in the file (plus helpful comments):

Code:

struct SPDat_Spell_Struct
{
/* 000 */        int id;        // not used
/* 001 */        char name[64]; // Name of the spell
/* 002 */        char player_1[32]; // "PLAYER_1"
/* 003 */        char teleport_zone[64];        // Teleport zone, pet name summoned, or item summoned
/* 004 */        char you_cast[64]; // Message when you cast
/* 005 */        char other_casts[64]; // Message when other casts
/* 006 */        char cast_on_you[64]; // Message when spell is cast on you
/* 007 */        char cast_on_other[64]; // Message when spell is cast on someone else
/* 008 */        char spell_fades[64]; // Spell fades
/* 009 */        float range;
/* 010 */        float aoerange;
/* 011 */        float pushback;
/* 012 */        float pushup;
/* 013 */        uint32 cast_time; // Cast time
/* 014 */        uint32 recovery_time; // Recovery time
/* 015 */        uint32 recast_time; // Recast same spell time
/* 016 */        uint32 buffdurationformula;
/* 017 */        uint32 buffduration;
/* 018 */        uint32 AEDuration;        // sentinel, rain of something
/* 019 */        uint16 mana; // Mana Used
/* 020 */        int base[EFFECT_COUNT];        //various purposes
/* 032 */        int base2[EFFECT_COUNT]; //various purposes
/* 044 */        int32 max[EFFECT_COUNT];
/* 056 */        //uint16 icon; // Spell icon
/* 057 */        //uint16 memicon; // Icon on membarthing
/* 058 */        int32 components[4]; // reagents
/* 062 */        int component_counts[4]; // amount of regents used
/* 066 */        int NoexpendReagent[4];        // focus items (Need but not used; Flame Lick has a Fire Beetle Eye focus.)
// If it is a number between 1-4 it means components[number] is a focus and not to expend it
// If it is a valid itemid it means this item is a focus as well
/* 070 */        uint16 formula[EFFECT_COUNT]; // Spell's value formula
/* 082 */        //int LightType; // probaly another effecttype flag
/* 083 */        int8 goodEffect; //0=detrimental, 1=Beneficial, 2=Beneficial, Group Only
/* 084 */        int Activated; // probably another effecttype flag
/* 085 */        int resisttype;
/* 086 */        int effectid[EFFECT_COUNT];        // Spell's effects
/* 098 */        SpellTargetType targettype;        // Spell's Target
/* 099 */        int basediff; // base difficulty fizzle adjustment
/* 100 */        SkillUseTypes skill;
/* 101 */        int8 zonetype; // 01=Outdoors, 02=dungeons, ff=Any
/* 102 */        int8 EnvironmentType;
/* 103 */        int8 TimeOfDay;
/* 104 */        uint8 classes[PLAYER_CLASS_COUNT]; // Classes, and their min levels
/* 120 */        uint8 CastingAnim;
/* 121 */        //uint8 TargetAnim;
/* 122 */        //uint32 TravelType;
/* 123 */        uint16 SpellAffectIndex;
/* 124 */        int8 disallow_sit; // 124: high-end Yaulp spells (V, VI, VII, VIII [Rk 1, 2, & 3], & Gallenite's Bark of Fury
/* 125 */        // 125: Words of the Skeptic
/* 126 */        int8 deities[16];        // Deity check. 201 - 216 per http://www.eqemulator.net/wiki/wikka.php?wakka=DeityList
// -1: Restrict to Deity; 1: Restrict to Deity, but only used on non-Live (Test Server "Blessing of ...") spells; 0: Don't restrict
/* 142 */        // 142: between 0 & 100
// 143: always set to 0
/* 144 */        //int16 new_icon // Spell icon used by the client in uifiles/default/spells??.tga, both for spell gems & buff window. Looks to depreciate icon & memicon
/* 145 */        //int16 spellanim; // Doesn't look like it's the same as #doanim, so not sure what this is
/* 146 */        int8 uninterruptable;        // Looks like anything != 0 is uninterruptable. Values are mostly -1, 0, & 1 (Fetid Breath = 90?)
/* 147 */        int16 ResistDiff;
/* 148 */        int8 dot_stacking_exempt; // If 1 doesn't stack with self cast by others. If -1 (not implemented) doesn't stack with same effect (???)
/* 149 */        //int deletable;
/* 150 */        uint16 RecourseLink;
/* 151 */        bool no_partial_resist;        // 151: -1, 0, or 1
// 152 & 153: all set to 0
/* 154 */        int8 short_buff_box;        // != 0, goes to short buff box.
/* 155 */        int descnum; // eqstr of description of spell
/* 156 */        //int typedescnum; // eqstr of type description
/* 157 */        int effectdescnum; // eqstr of effect description
/* 158 */ //Category Desc ID 3
/* 159 */        //bool npc_no_los;
/* 161 */        bool reflectable;
/* 162 */        int bonushate;
/* 163 */
/* 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 */
/* 173 */        int HateAdded;
/* 174 */        int EndurUpkeep;
/* 175 */        int numhitstype; // defines which type of behavior will tick down the numhit counter.
/* 176 */        int numhits;
/* 177 */        int pvpresistbase;
/* 178 */        int pvpresistcalc;
/* 179 */        int pvpresistcap;
/* 180 */        int spell_category;
/* 181 */
/* 185 */        int8 can_mgb; // 0=no, -1 or 1 = yes
/* 186 */        int dispel_flag;
/* 189 */        int MinResist;
/* 190 */        int MaxResist;
/* 191 */        uint8 viral_targets;
/* 192 */        uint8 viral_timer;
/* 193 */        int NimbusEffect;
/* 194 */        float directional_start; //Cone Start Angle:
/* 195 */        float directional_end; // Cone End Angle:
/* 196 */
/* 197 */        bool not_extendable;
/* 198- 199 */
/* 200 */        bool suspendable; // buff is suspended in suspended buff zones
/* 201 - 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
/* 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
/* 215 - 218 */
/* 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
        uint8 DamageShieldType; // This field does not exist in spells_us.txt
};


RabbitRa 06-10-2014 07:18 PM

Zelda_S,

Thanks for the reply and the info from the headers file. I will run thought the headers and see what I can make from them. My programming skills are a bit limited to mainly being a script junkie so header files are a little bit out of my "Norm" but I think I can get most of what I need from here. The help is appreciated.

Bob


All times are GMT -4. The time now is 01:18 PM.

Powered by vBulletin®, Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.