Go Back   EQEmulator Home > EQEmulator Forums > Support > Spell Support

Spell Support Broken Spells? Want them Fixed? Request it here.

Reply
 
Thread Tools Display Modes
  #1  
Old 06-10-2014, 04:15 PM
RabbitRa
Fire Beetle
 
Join Date: Nov 2009
Posts: 2
Default 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
Reply With Quote
  #2  
Old 06-10-2014, 04:26 PM
Zaela_S
Hill Giant
 
Join Date: Jun 2012
Posts: 216
Default

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
};
Reply With Quote
  #3  
Old 06-10-2014, 07:18 PM
RabbitRa
Fire Beetle
 
Join Date: Nov 2009
Posts: 2
Default

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
Reply With Quote
Reply


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump

   

All times are GMT -4. The time now is 10:32 AM.


 

Everquest is a registered trademark of Daybreak Game Company LLC.
EQEmulator is not associated or affiliated in any way with Daybreak Game Company LLC.
Except where otherwise noted, this site is licensed under a Creative Commons License.
       
Powered by vBulletin®, Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Template by Bluepearl Design and vBulletin Templates - Ver3.3