Designing Spells

Creating the Spells and Abilities for EQ2Emulator

Moderator: Team Members

Post Reply
User avatar
thefoof
Retired
Posts: 630
Joined: Wed Nov 07, 2012 7:36 pm
Location: Florida

Re: Designing Spells

Post by thefoof » Sat Dec 07, 2013 11:04 pm

I'm going to start dirges, also do we have a way to not start a recast until after a spell has ended/been cancelled? Will need to add that if not.

Jabantiz
Lead Developer
Posts: 2912
Joined: Wed Jul 25, 2007 2:52 pm
Location: California

Re: Designing Spells

Post by Jabantiz » Sun Dec 08, 2013 4:59 pm

No we don't support recast after the spell ends.

Necro spells are done up to 20 to the best of my ability, I didn't do the roots, a buff, or the level 20 caster pet. I did collect the pet spells during CoE beta, are they hidden in the spell list somewhere or did they never get parsed? Also is there a way to edit npc's spell lists? at least create a list as we can add the list in LUA.

User avatar
thefoof
Retired
Posts: 630
Joined: Wed Nov 07, 2012 7:36 pm
Location: Florida

Re: Designing Spells

Post by thefoof » Mon Dec 09, 2013 6:35 am

Did most of the Dirge spells level 1-20, following is a list of spells I couldn't script completely and what functionality they need:


*Shroud - I need to tweak stealth a bit so it will work better for spells, could script this now but want to do it right

*Daro's Dull Blade - requires flanking/behind mechanics

*Verlien's Keen of Despair - mit debuff is scripted, needs snare support

*Selo's Accelerando (speed buff) - scripted but speed needs to be added into spellbonuses for it to work properly

*Jael's Dreadful Deprivation (range attack) - need a way to consume ammo

*Evade - need a way to reduce hate

Jabantiz
Lead Developer
Posts: 2912
Joined: Wed Jul 25, 2007 2:52 pm
Location: California

Re: Designing Spells

Post by Jabantiz » Mon Dec 09, 2013 12:58 pm

thefoof wrote:*Evade - need a way to reduce hate[/b]
AddHate(Target, -20) will reduce hate by 20

User avatar
John Adams
Retired
Posts: 9684
Joined: Thu Jul 26, 2007 6:27 am
EQ2Emu Server: EQ2Emulator Test Center
Characters: John
Location: Arizona
Contact:

Re: Designing Spells

Post by John Adams » Mon Dec 09, 2013 2:45 pm

Jabantiz wrote:I did collect the pet spells during CoE beta, are they hidden in the spell list somewhere or did they never get parsed? Also is there a way to edit npc's spell lists? at least create a list as we can add the list in LUA.
Are you saying the pet spells are not in the Spells list now from SOE API? If they are, there is a RAW button that will sync what we know about the spell with your raw data collects.

Your collected spell data is in a raw format, and is not included in this run of spells because (as I discovered) tons of shit seemed to change or be missing (ie., you only have tier 9 mostly due to the buffs in Beta). I don't want to push Raw spell data into the SOE data until we are 100% sure we need it, which is when you tell me SOE doesn't have it - but guaranteed it is in-game.

User avatar
thefoof
Retired
Posts: 630
Joined: Wed Nov 07, 2012 7:36 pm
Location: Florida

Re: Designing Spells

Post by thefoof » Mon Dec 09, 2013 3:54 pm

Jabantiz wrote:
thefoof wrote:*Evade - need a way to reduce hate[/b]
AddHate(Target, -20) will reduce hate by 20
Lol thanks :mrgreen:

Jabantiz
Lead Developer
Posts: 2912
Joined: Wed Jul 25, 2007 2:52 pm
Location: California

Re: Designing Spells

Post by Jabantiz » Mon Dec 09, 2013 4:16 pm

I glanced over the list quickly, late at night, will grab a spell name from a log later tonight and do a search

Jabantiz
Lead Developer
Posts: 2912
Joined: Wed Jul 25, 2007 2:52 pm
Location: California

Re: Designing Spells

Post by Jabantiz » Mon Dec 09, 2013 5:48 pm

Grim Embrace is a pet spell (1189-NecroPetsSpells.log), this is a spell the necro's pet gets players do not get this spell, I could not find it on our list and it is not is SOE.DATA as far as I can tell, I tend to suck searching the API though.

User avatar
John Adams
Retired
Posts: 9684
Joined: Thu Jul 26, 2007 6:27 am
EQ2Emu Server: EQ2Emulator Test Center
Characters: John
Location: Arizona
Contact:

Re: Designing Spells

Post by John Adams » Mon Dec 09, 2013 6:02 pm

Just looked in my old parser logs:
16:09:43 I DB: Using database 'eq2_rawdata' at localhost
16:09:45 I Parser: Loading Data from Packet Log: 1189-NecroPetsSpells.log
16:09:47 I Parser: Loading Version Information...
16:09:47 I Parser: Verifying Opcodes...
16:09:47 I Parser: Using version '1189', version_range1: 1189 and version_range2: 1189
16:09:47 I Parser: Loading Language Type...
16:09:47 W Parser: Could not determine language type.  Defaulting to US English!
16:09:47 W Parser: CONSOLIDATION mode...
16:09:47 I Parser: Processing Spawns...
16:09:47 D Parser: 	Zone Maps...
16:09:47 D Parser: 	Spawns...
16:09:51 I Merchant: Processing Merchant Items...
16:09:51 I Parser: Processing Spells and related data...
16:09:51 D Parser: 	Special Spells...
16:09:51 D Parser: 	Spells...
16:09:51 D Parser: 	AA List...
16:10:02 D Parser: 	Traits....
16:10:02 D Parser: 	Advancements...
16:10:02 I Parser: Processing Titles...
16:10:02 I Parser: Processing Recipes...
16:10:02 I Parser: Processing Recipe Details...
16:10:02 I Parser: Processing Recipe Info...
16:10:02 I Parser: Processing POI Names...
16:10:02 I Parser: Processing POI Locations...
16:10:02 I Parser: Processing Factions...
16:10:02 I Parser: Processing Collections...
16:10:02 I Results: Took: 18 seconds. Processed file '1189-NecroPetsSpells.log'
16:10:02 I Results: Parsed:
16:10:02 I Results: 	2148 Spawn Packets (80 unique, 23 new)
16:10:02 I Results: 	19 Pet Names
16:10:02 I Results: 	4 Abilities Packets (4 unique, 0 new)
16:10:02 I Results: 	19 Traditions Packets (19 unique, 0 new)
16:10:02 I Results: 	9 Trainings Packets (9 unique, 0 new)
16:10:02 I Results: 	3504 Class AA Packets (146 unique, 3504 new)
16:10:02 I Results: 	7 Factions Packets (7 unique, 0 new)
16:10:02 I Results: 	1 Titles Packets (1 unique, 0 new)
I do not see any Spells from that log, just AA, Traits, Trainings. And I could not find Grim Embrace on SOE data either, probably because it's not a spell a player gets.

Jabantiz
Lead Developer
Posts: 2912
Joined: Wed Jul 25, 2007 2:52 pm
Location: California

Re: Designing Spells

Post by Jabantiz » Mon Dec 09, 2013 6:09 pm

And I could not find Grim Embrace on SOE data either, probably because it's not a spell a player gets.
That's what I figured, odd it didn't parse though, here is the packet from the log

Code: Select all

-- OP_ClientCmdMsg::OP_EqExamineInfoCmd --
10/24/2012 16:49:39
69.174.200.156 -> 192.168.1.3
0000:	01 3A C1 01 00 00 FF 75 02 00 00 00 00 01 FE 3E .:.....u.......>
0010:	83 C1 B4 3E 13 E4 01 FF FF 3B 01 04 00 7F 00 00 ...>.....;......
0020:	00 00 00 00 E3 D3 98 24 00 03 00 00 00 00 09 00 .......$........
0030:	00 1F 00 00 00 00 00 3B 00 90 E1 87 40 00 00 00 .......;....@...
0040:	00 00 00 00 00 02 00 2C 00 49 6E 66 6C 69 63 74 .......,.Inflict
0050:	73 20 31 38 39 36 20 2D 20 32 35 33 37 20 70 6F s 1896 - 2537 po
0060:	69 73 6F 6E 20 64 61 6D 61 67 65 20 6F 6E 20 74 ison damage on t
0070:	61 72 67 65 74 64 00 3A 00 49 6E 66 6C 69 63 74 argetd.:.Inflict
0080:	73 20 32 39 35 20 2D 20 34 39 32 20 70 6F 69 73 s 295 - 492 pois
0090:	6F 6E 20 64 61 6D 61 67 65 20 6F 6E 20 74 61 72 on damage on tar
00A0:	67 65 74 20 65 76 65 72 79 20 33 20 73 65 63 6F get every 3 seco
00B0:	6E 64 73 64 01 00 00 00 00 00 00 00 F0 41 78 00 ndsd.........Ax.
00C0:	00 00 78 00 00 00 04 00 01 00 00 01 6D E7 2B 3F ..x.........m.+?
00D0:	00 00 00 00 00 00 00 00 00 00 00 00 0C 47 72 69 .............Gri
00E0:	6D 20 45 6D 62 72 61 63 65 00 00 00 C1 B4 3E 13 m Embrace.....>.
00F0:	E4 01 FF FF 3B 01 04 00 7F 00 00 00 00 00 00 E3 ....;...........
0100:	D3 98 24 00 03 00 00 00 00 09 00 00 1F 00 00 00 ..$.............
0110:	00 00 3B 00 90 E1 87 40 00 00 00 00 00 00 00 00 ..;....@........
0120:	02 00 2C 00 49 6E 66 6C 69 63 74 73 20 32 31 31 ..,.Inflicts 211
0130:	32 20 2D 20 32 38 30 33 20 70 6F 69 73 6F 6E 20 2 - 2803 poison 
0140:	64 61 6D 61 67 65 20 6F 6E 20 74 61 72 67 65 74 damage on target
0150:	64 00 3A 00 49 6E 66 6C 69 63 74 73 20 32 37 31 d.:.Inflicts 271
0160:	20 2D 20 34 35 31 20 70 6F 69 73 6F 6E 20 64 61  - 451 poison da
0170:	6D 61 67 65 20 6F 6E 20 74 61 72 67 65 74 20 65 mage on target e
0180:	76 65 72 79 20 33 20 73 65 63 6F 6E 64 73 64 01 very 3 secondsd.
0190:	00 00 00 00 00 00 00 F0 41 78 00 00 00 78 00 00 ........Ax...x..
01A0:	00 04 00 01 00 00 01 6D E7 2B 3F 00 00 00 00 00 .......m.+?.....
01B0:	00 00 00 00 00 00 00 0C 47 72 69 6D 20 45 6D 62 ........Grim Emb
01C0	72 61 63 65 00 00 00                            race...
No big deal right now, pets currently do rather well without any spells as it is just thought I would bring it up for future reference

User avatar
John Adams
Retired
Posts: 9684
Joined: Thu Jul 26, 2007 6:27 am
EQ2Emu Server: EQ2Emulator Test Center
Characters: John
Location: Arizona
Contact:

Re: Designing Spells

Post by John Adams » Mon Dec 09, 2013 6:17 pm

Even if Parser already had it, it would at least have found 1 unique, 0 new... so that packet is 100% exactly the same as a player-held spell? subtype, nothing is different? How does it look in Anal? Has to be a reason it got skipped.

How did you collect it, too? Curious only because of all the other spells that players don't get directly that we're going to have to invent.

I forgot to answer this:
Jabantiz wrote:Also is there a way to edit npc's spell lists? at least create a list as we can add the list in LUA.
Yes, NPC spell lists are in the editor as well, you just can't access that editor until I finish refactoring the spawn class.

The table is "spawn_npc_spells", if you wanted to build one locally and give me the SQL inserts later. It's a list_id (so multiple spawns can share 1 list), the spell ID and tier. Then you stick that list in the spawn_npcs table `spell_list_id` and you can even have a `secondary_spell_list_id`. Same with skills.

Jabantiz
Lead Developer
Posts: 2912
Joined: Wed Jul 25, 2007 2:52 pm
Location: California

Re: Designing Spells

Post by Jabantiz » Mon Dec 09, 2013 7:45 pm

How did you collect it, too? Curious only because of all the other spells that players don't get directly that we're going to have to invent.
Necro's and Conj have a possess minion spell allowing you to take control of your pet, when you do your hotbar is wiped clear and all the spells the pet has is put on your hotbar. I just examined them from there for all levels and versions of the pet.

I don't have the opcodes for that version any more so I didn't use anal, manually looked it up. Will try to compare it with other spells to see if there is a difference in the examine.

User avatar
thefoof
Retired
Posts: 630
Joined: Wed Nov 07, 2012 7:36 pm
Location: Florida

LUA Tables

Post by thefoof » Mon Dec 09, 2013 8:28 pm

Gonna pitch an idea about something let me know some opinions :mrgreen:, so currently if an luaspell has > 1 target, you can't directly access the other targets. Obviously a few ways we could do this, I've read some stuff on LUA tables but not sure how complicated they are to use in scripts.

So if we didn't want to use tables another way we could do this would be, make a function to pull the size of a group, and run a while or for loop like we do in the server with another function to pull the spawn ->at(i). Example:

Code: Select all

local i = 0
while i < GetSpellTargetSize() do
    spawn = GetSpellTargetAtIndex(i)
    SomeFunction(spawn)
    i = i+1
end
Just might be a little easier to read than lua tables, but I haven't used those so I'm not really sure. This isn't really something I have an immediate use for, but I'm sure we will at some point. I'm ok with either solution, would just like to know which would be the prefered method

Jabantiz
Lead Developer
Posts: 2912
Joined: Wed Jul 25, 2007 2:52 pm
Location: California

Re: Designing Spells

Post by Jabantiz » Mon Dec 09, 2013 9:13 pm

GetGroup() returns a LUA table, or nil if not in a group, I have only had to use it once so far but here is an example
http://mmoemulators.com:9301/eq2db/edit ... ell_script

There are a few others that will also return a LUA table like GetHateList() and GetEncounterList(), I think there are others but can't remember off hand.

EDIT: This is just to show examples of how lua tables work

User avatar
thefoof
Retired
Posts: 630
Joined: Wed Nov 07, 2012 7:36 pm
Location: Florida

Re: Designing Spells

Post by thefoof » Mon Dec 09, 2013 11:32 pm

The next class I plan to work on are wardens, will take them 1-20. Going to work on them off and on though, adding some needed server support as well in the various areas we need it.

Post Reply

Who is online

Users browsing this forum: No registered users and 0 guests