Null Spell Editor
Greetings,
I started building this just as a clone of the Ailia & Bleh Editor (the GUI layout is almost identical) with a few minor changes to fit my needs. It kept evolving over a few months of work off and on to the point that I didn't feel embarrassed at the thought of releasing it. So here it is! Screenshots File Loading Spell Editing Features:
Install Directions
Known Issues
Disclaimer I have tested this pretty heavily but I do not guarantee that it wont hiccup or even explode. Please make backups before using this, and please post here if you have any problems. |
Wow, that looks pretty amazing! Nice work and thanks for sharing that :D
I have your first bug report though; I am unable to load the skills.h file by browsing locally. It just seems to ignore it, or maybe it is loading for the spdat.h file instead when I try to load skills.h. The spdat.h file seems to load fine though. Also, the spell file itself loads fine. It's awesome you set it to be that flexible as well as for it to be able to automatically adapt for the future. EDIT: Another bug seems to be that it will not connect to my database either. I created a new user to test it out, and verified I could connect with that new user via Navicat, but your tool just times out. |
Just ran it briefly this morning, and it works very nicely.
You did a good job on incorporating the movies and editing in one package, and my hat is off to you - good job. GeorgeS |
I stickied the thread for the time being. Haven't checked it out but it sounds nice from what is described here.
|
Thanks for the comments and I hope you get some good use out of it.
Quote:
Quote:
|
Yeah, the DB is on another PC on my LAN. I was finally able to get it all working by using IE instead of Firefox. I may still need to mess around with the Firefox settings to get it working properly. Either way, the tool is pretty impressive :)
|
Wow this is very impressive. Thank you so much for this!
|
I fixed the local skills.h load and put up a new version, enjoy!
|
The new version works great, thanks! I got skills.h to load locally just fine this time. You may want to specify on that screen that it wants zone/spdat.h and common/skills.h, because there is also a zone/skills.h file.
I can connect to my DB after running your .bat file, I just had to restart Firefox. One minor detail is that the most recent upload seems to contain your assets and history folders outside of the NullSpellEdit folder as well as within it. Not a big deal, but thought it might be worth mentioning to reduce possible confusion. Also, would it be possible to have a config file to save your file/DB loading settings so you don't have to set them each time you start up the editor? Another minor suggestion would be to set the default URLs for loading spdat.h and skills.h to use the trunk instead of the spells branch. I haven't used the tool much yet, but so far I am impressed. I like how it automatically updates the icon and effect video as soon as you start altering either of those fields. Does the tool use the new icon types or are they an older version of icons? I don't know if spells might use a different gem icon and buff icon offhand, but if so, it might be nice to show both types. |
I put up a new version that will save your loading preferences. I also added a button to reset them and a check box for password inclusion. The default remote location for spdat and skills are now pointing at the trunk instead of the spellsbranch.
The additional icon previews will take a bit more time then I have at the moment, but its definitely something I can work in eventually. Thanks for the requests Trevius! edit: I spoke too soon, small problem with the spdat and skills file preference saving, ill have a new version up soon. |
So apparently the object I am using to bring up the file browser window doesn't expose the absolute path of the file that is selected...
This means that I cannot save off the path to use later. You can enter a local file path in the URL field then click 'Load URL' and it will load the file for you and save the path. Ill look into it some more and if I think of a better option ill put it in later on. |
Thanks for the changes/fixes so far :D
It looks like the skills.h is still being a bit flakey, though. I am able to load from URL like you suggested by putting my local path in there for spdat.h, but it fails for skills.h: F:\EQEmuServer\zone\spdat.h F:\EQEmuServer\common\skills.h Probably related to the problem with browsing for the local file that was happening before. |
Ok, I finally reproduced the error that you are getting. The only way I could get it to react the way that you are describing is to extract the zip to a new folder and not run trustfall.bat for that folder. The bug is that the status label is getting set to complete for spdat.h even though its getting a flash player error in the background preventing it from loading.
Try running trustfall.bat and see if that doesn't clear up the problem. |
Thanks. It looks like everything is working great now. All of the information is saving properly with 1 exception; The spell file location doesn't save. I think if you added a field for the location like the other files, it could be saved.
|
Database Error
When I try to load the spell file from the database I get an error that says, "Database Error". I can load the spell file locally, and I can connect to the database, but if I click "From Database" it gives me the above error.
I also have an issue with writing changes or full write to database. The former does nothing and the latter just drops my entire spells_new table. I'm not sure what the issue is. I've tried it out on two different PCs, neither worked right. I'd very much like to get this working because for one, it's sexy, and for two, since I'm rather anal retentive about making sure every detail is complete, importing spell files after minor changes to one thing (which I do a lot, ugh) takes up quite a bit of time and having the option to apply the changes directly to the database would be much appreciated. Thanks in advance. |
Hey, nice job on the editor! Looking good.
I'm not sure if you are taking feature requests yet, but you mentioned your editor reads the new_icon field. I was interested in quality checking some of my spell gems.. and your editor looks perfect to see the stats and the graphics simultaneously. However, I use a different lineup of gem placement and pictures. Is there some way to replace what is loaded for the pictures? Once again, nice job! This is the most attractive spell editor I've seen yet. Had no issues running it across a LAN. |
I have not been able to add in the new_icon preview yet, but when I do ill make sure to have it loaded from an external file (and ill move the other icons over also) so you can swap them out with whatever you want so long as it keeps the same dimensions as the original.
|
Quote:
If it is the above problem, I just need to update the SQL queries and it should be good to go, but I am unsure of the best approach to keep things like this from breaking in the future. maybe expose the expected field list so it doesn't take a recompile to fix? |
I'm using the latest SVN 1549.
I'm not sure if it makes a difference but I had to drop the items table because it was faulty with the server code and imported the items table from one of GeorgeS' compiled server/databse zips on his page. Without doing so would cause an error when starting the server, but it works perfectly with GeorgeS' items table. EDIT When I look at the database in Heidi there's a table called "db_version" that says 1535 however. |
You are most likely missing this SQL Update which affected the items table in rev1542
|
I don't suppose you mean source the update, because I've tried that every which way I can and it spams nothing but errors saying either duplicate column or can't drop a column.
How would I apply the update? |
Hmm, so I updated to the latest revision 1589 and it still gives me the database error.
|
Can you send me a list of column names in your spells_new table?
|
Certainly Null. And thanks for helping.
Going from left to right I have: id name player_1 teleport_zone you_cast other_casts cast_on_you cast_on_other spell_fades range aoerange pushback pushup cast_time recovery_time recast_time buffdurationformula buffduration AEDuration mana effect_base_value1 effect_base_value2 effect_base_value3 effect_base_value4 effect_base_value5 effect_base_value6 effect_base_value7 effect_base_value8 effect_base_value9 effect_base_value10 effect_base_value11 effect_base_value12 effect_limit_value1 effect_limit_value2 effect_limit_value3 effect_limit_value4 effect_limit_value5 effect_limit_value6 effect_limit_value7 effect_limit_value8 effect_limit_value9 effect_limit_value10 effect_limit_value11 effect_limit_value12 max1 max2 max3 max4 max5 max6 max7 max8 max9 max10 max11 max12 icon memicon components1 components2 components3 components4 component_counts1 component_counts2 component_counts3 component_counts4 NoexpendReagent1 NoexpendReagent2 NoexpendReagent3 NoexpendReagent4 formula1 formula2 formula3 formula4 formula5 formula6 formula7 formula8 formula9 formula10 formula11 formula12 LightType goodEffect Activated resisttype effectid1 effectid2 effectid3 effectid4 effectid5 effectid6 effectid7 effectid8 effectid9 effectid10 effectid11 effectid12 targettype basediff skill zonetype EnvironmentType TimeOfDay classes1 classes2 classes3 classes4 classes5 classes6 classes7 classes8 classes9 classes10 classes11 classes12 classes13 classes14 classes15 classes16 CastingAnim TargetAnim TravelType SpellAffectIndex field124 field125 deities1 deities2 deities3 deities4 deities5 deities6 deities7 deities8 deities9 deities10 deities11 deities12 deities13 deities14 deities15 deities16 field142 field143 new_icon spellanim uninterruptable ResistDiff dot_stacking_exempt deleteable <--- noticed the typo on the database, should be deletable) RecourseLink field151 field152 field153 short_buff_box descnum typedescnum effectdescnum field158 field159 field160 field161 bonushate field163 field164 field165 EndurCost EndurTimerIndex field168 field169 field170 field171 field172 HateAdded EndurUpkeep field175 numhits pvpresistbase pvpresistcalc pvpresistcap spell_category field181 field182 field183 field184 can_mgb nodispell npc_category npc_usefulness field189 field190 field191 field192 nimbuseffect field194 field195 field196 field197 field198 field199 field200 field201 field202 field203 field204 field205 field206 spellgroup field208 field209 field210 field211 allowrest field213 field214 That should do it. I hope it helps rectify the problem. And I hope I didn't make too many grammatical errors. =P Let me know if you need anything else from me. Cheers! |
I think I see the problem, ill put up a new build after work tonight.
|
v1.1.9
Here is a new version that has updated table queries. I might make these queries pulled from a file in the future so I can avoid having to put up a new build every time a field name gets changed.
I am leaving up the previous version also (link is on the first post) for people who don't need/want to update their db version for whatever reason. Null Spell Editor v1.1.9 Null Spell Editor v1.1.9 (no videos) Enjoy! |
still does not work for me on newest db Rev it just wipes the table and stops
|
Thanks for the update, Null! I will give it a shot this weekend :)
I am sure it was due to my change to identify the nimbus effect field out of the list of unknowns. I wish we knew more fields, but those higher ones are hard to figure out. |
Thanks Null! It that fixed that issue!
However... (always that however in lurking somewhere, isn't there? =/ ) After testing the update a bit on two different PCs, I've discovered a few things I thought I should bring to your attention. 1. Creating a new spell via "copy" command and writing changes to the database works with both Firefox and IE on both PCs. But if you alter a spell, for instance just the name of the new spell AFTER you write the new spell to the database it will not change anything. This applies to all spells currently in the database already. It appears that anything that already exists in the database is not being overridden when writing changes to the database. I think of all functions available with your editor, that one would be essential as it saves a lot of time having to export to Spell IO to make changes to any spells that already exist. I'm not sure if this is an actual function of this feature, to re-write changes over existing spell entries, or not. But logic tells me that's the way you designed it to function. It just isn't, unfortunately. 2. This one is quite minor because there's an easy work around, but the bottom of the login portion (the reset and submit buttons specifically) of the editor is cut off on my 19 inch CRT monitor running 10x7 resolution. Changing my resolution to 16x12 certainly fixes that issue, but of course text is so small you practically have to face-plant the monitor to read entries in the database. I don't have a problem on my laptop because it naturally runs a higher resolution than my desktop does, and that's the PC I use for my server. Like I said a minor issue. Might I suggest a fix to widen the login screen horizontally, so it doesn't extend so much vertically? I think that would certainly fix any and all issues regarding different user resolution settings, and we all know that everyone has their preferences that vary as much as the people themselves. Thanks again Null, you're the man! |
Quote:
So if you want to get the spells in your spells_us.txt into your database, you will need to import from file, then full write to the database. Then any other time you want to load your spells, you can do so directly from the database and just save off a spells_us.txt when you need to make a version for your players. If this isn't the problem that you are having, can you give me step by step instructions of what you are doing so I can reproduce it? Quote:
|
Quote:
Can you double check that the fields in your database are the same as the fields listed by AudioGarden21? If they are, can you check that the user that are you using to log into mysql has proper permissions to insert/update? |
The version is v1.19, and im using Root to login the spell fields Look the same but i might of missed one so exported them from my db and Pasted em here,
btw thanks for the Super fast responce and all your hard word on this Fine Tool `id` `name` `player_1` `teleport_zone` `you_cast` `other_casts` `cast_on_you` `cast_on_other` `spell_fades` `range` `aoerange` `pushback` `pushup` `cast_time` `recovery_time` `recast_time` `buffdurationformula` `buffduration` `AEDuration` `mana` `effect_base_value1` `effect_base_value2` `effect_base_value3` `effect_base_value4` `effect_base_value5` `effect_base_value6` `effect_base_value7` `effect_base_value8` `effect_base_value9` `effect_base_value10` `effect_base_value11` `effect_base_value12` `effect_limit_value1` `effect_limit_value2` `effect_limit_value3` `effect_limit_value4` `effect_limit_value5` `effect_limit_value6` `effect_limit_value7` `effect_limit_value8` `effect_limit_value9` `effect_limit_value10` `effect_limit_value11` `effect_limit_value12` `max1` `max2` `max3` `max4` `max5` `max6` `max7` `max8` `max9` `max10` `max11` `max12` `icon` `memicon` `components1` `components2` `components3` `components4` `component_counts1` `component_counts2` `component_counts3` `component_counts4` `NoexpendReagent1` `NoexpendReagent2` `NoexpendReagent3` `NoexpendReagent4` `formula1` `formula2` `formula3` `formula4` `formula5` `formula6` `formula7` `formula8` `formula9` `formula10` `formula11` `formula12` `LightType` `goodEffect` `Activated` `resisttype` `effectid1` `effectid2` `effectid3` `effectid4` `effectid5` `effectid6` `effectid7` `effectid8` `effectid9` `effectid10` `effectid11` `effectid12` `targettype` `basediff` `skill` `zonetype` `EnvironmentType` `TimeOfDay` `classes1` `classes2` `classes3` `classes4` `classes5` `classes6` `classes7` `classes8` `classes9` `classes10` `classes11` `classes12` `classes13` `classes14` `classes15` `classes16` `CastingAnim` `TargetAnim` `TravelType` `SpellAffectIndex` `field124` `field125` `deities1` `deities2` `deities3` `deities4` `deities5` `deities6` `deities7` `deities8` `deities9` `deities10` `deities11` `deities12` `deities13` `deities14` `deities15` `deities16` `field142` `field143` `new_icon` `spellanim` `uninterruptable` `ResistDiff` `dot_stacking_exempt` `deleteable` `RecourseLink` `field151` `field152` `field153` `short_buff_box` `descnum` `typedescnum` `effectdescnum` `field158` `field159` `field160` `field161` `bonushate` `field163` `field164` `field165` `EndurCost` `EndurTimerIndex` `field168` `field169` `field170` `field171` `field172` `HateAdded` `EndurUpkeep` `field175` , `numhits` `pvpresistbase` `pvpresistcalc` `pvpresistcap` `spell_category` `field181` `field182` `field183` `field184` `can_mgb` `nodispell` `npc_category` `npc_usefulness` `field189` `field190` `field191` `field192` `nimbuseffect` `field194` `field195` `field196` `field197` `field198` `field199` `field200` `field201` `field202` `field203` `field204` `field205` `field206` `spellgroup` `field208` `field209` `field210` `field211` `allowrest` `field213` `field214` |
Yea, they are identical...
When you login, are the drop down menus for all the pages populated? If they are not then it might be tripping up on the file parsing for the *.h files. Are you using the most recent version of Flash? The only other thing I can think of is that Flash is throwing an error silently... If you download and install the debug version of flash player then you will get error popups when flash has a problem. The only issue with the debug version is that -many- websites, even well known ones have all sorts of runtime errors that you will have to click past/ignore. Here is a link to the IE debug player Here is a link to the Firefox/Opera/Chrome debug player |
Yep all the menu items are there and no errors from the Flash debug version, could it have something to do with the fact im running Mysql 5.1x instead of 5.0x?
|
I'm using 5.1 at home so probably not.
Can you try manually running these queries against your spells_new and let me know what happens? TRUNCATE TABLE spells_new; INSERT INTO spells_new(id, name, player_1, teleport_zone, you_cast, other_casts, cast_on_you, cast_on_other, spell_fades, range, aoerange, pushback, pushup, cast_time, recovery_time, recast_time, buffdurationformula, buffduration, AEDuration, mana, effect_base_value1, effect_base_value2, effect_base_value3, effect_base_value4, effect_base_value5, effect_base_value6, effect_base_value7, effect_base_value8, effect_base_value9, effect_base_value10, effect_base_value11, effect_base_value12, effect_limit_value1, effect_limit_value2, effect_limit_value3, effect_limit_value4, effect_limit_value5, effect_limit_value6, effect_limit_value7, effect_limit_value8, effect_limit_value9, effect_limit_value10, effect_limit_value11, effect_limit_value12, max1, max2, max3, max4, max5, max6, max7, max8, max9, max10, max11, max12, icon, memicon, components1, components2, components3, components4, component_counts1, component_counts2, component_counts3, component_counts4, NoexpendReagent1, NoexpendReagent2, NoexpendReagent3, NoexpendReagent4, formula1, formula2, formula3, formula4, formula5, formula6, formula7, formula8, formula9, formula10, formula11, formula12, LightType, goodEffect, Activated, resisttype, effectid1, effectid2, effectid3, effectid4, effectid5, effectid6, effectid7, effectid8, effectid9, effectid10, effectid11, effectid12, targettype, basediff, skill, zonetype, EnvironmentType, TimeOfDay, classes1, classes2, classes3, classes4, classes5, classes6, classes7, classes8, classes9, classes10, classes11, classes12, classes13, classes14, classes15, classes16, CastingAnim, TargetAnim, TravelType, SpellAffectIndex, field124, field125, deities1, deities2, deities3, deities4, deities5, deities6, deities7, deities8, deities9, deities10, deities11, deities12, deities13, deities14, deities15, deities16, field142, field143, new_icon, spellanim, uninterruptable, ResistDiff, dot_stacking_exempt, deleteable, RecourseLink, field151, field152, field153, short_buff_box, descnum, typedescnum, effectdescnum, field158, field159, field160, field161, bonushate, field163, field164, field165, EndurCost, EndurTimerIndex, field168, field169, field170, field171, field172, HateAdded, EndurUpkeep, field175, numhits, pvpresistbase, pvpresistcalc, pvpresistcap, spell_category, field181, field182, field183, field184, can_mgb, nodispell, npc_category, npc_usefulness, field189, field190, field191, field192, nimbuseffect, field194, field195, field196, field197, field198, field199, field200, field201) VALUES(3,"Summon Corpse","PLAYER_1","","","","","","",10000,0,0,0,5 000,2250,12000,0,0,0,700,70,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,25 12,2106,17355,-1,-1,-1,1,1,1,1,-1,-1,-1,-1,100,100,100,100,100,100,100,100,100,100,100,100, 0,1,0,0,91,254,254,254,254,254,254,254,254,254,254 ,254,5,20,14,-1,0,0,255,255,255,255,51,255,255,255,255,255,255,2 55,255,255,255,255,43,0,0,4,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,100,0,109,83,0,0,0,0,0,0,0,0,0,3,125 ,64,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,101,49 ,52,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0); |
SQL Error (1064): You have an error in your SQL syntax: Check the Manual Thate corresponds to your Mysql server version for the right syntax to use near 'range, aoerange, puchback, pushup, cast_time, recovery_time. recast_time. buffdu' at line 1
|
I know exactly what he's talking about Null. I had this issue before your update as well.
Forgive me if I hadn't explained the issue as clearly as I thought. So allow me to reiterate what's happening for me. Step 1. Log into the database, Load URLS and spell file from database works great now. Step 2. Copy any spell in the list, then click "Write Changes to Database". Check HeidiSQL and the new spell is visible, there is a copy of a custom spell of mine called "Recall". Database shows "Copy of Recall". Step 3. Change the name of the copy of the custom spell to "Copy of Recall Test", then click "Write Changes to Database". Check HeidiSQL and the file name is exactly the same as it was before, "Copy of Recall". No change took place. The only function that works for me and "Write Changes to Database" is the "Copy" function. The Delete function doesn't work, nor does altering any data on a spell, including something simple like the name. GaG's issue stems from the same issue as "Write Changes to Database". Neither functions are doing what they're supposed to do, which is alter the database. As for "Full Write to Database" it will clear the database (it did this to me before I even posted on this thread), but it won't write anything. Writing changes to database, full write, and delete do not write anything unfortunately. The only thing that actually writes any change to the database is the "Copy" function. You can copy something, alter it, then write that change to the database, but after you write that change you can no longer write further changes to that same spell you just copied. Basically a one-shot deal. This applies also to spells that are in the spells_new file already. It appears that the ability to write completely new rows is functioning only with the "Copy" function (as seen in the case when copying a spell and writing a whole new row) but you cannot update a spell after it has been inserted and saved into a row on the database. I hope I've made it a little more clear this time around. You've been a great help with this tool and your support for it. I'm behind it all the way and I hope that we here in this thread can make it the highlight of spell editing tools. Love ya George but you have enough tools that we all love, so you can share some of the lime-light. =p You've done a great job Null, keep it up! |
v1.1.10
I am pretty sure I fixed the problem. Apparently I rolled my face across the keyboard when I was updating my queries and caused a whole mess of issues. I added an error message so next time this happens it will be more apparent.
Null Spell Editor v1.1.10 Null Spell Editor v1.1.10 (No Videos) Let me know if you have any other issues. |
Quote:
EDIT Congratulations on a job well done Null. You are the frickin' man. Now all you have left is that minor issue we discussed earlier (I don't really care one way or another as long as the function of the program is operable) and you can call this a finished product ready for shipping. I'm quite excited to have this fix to writing changes to the database because it saves me soooo much time testing spells. Before this fix I had to make the adjustments to the spell I was working on, export it, then use the GeorgeS' Spell IO program, which would take about 1 minute or 2 to finalize. Considering I only want to make a few minor adjustments to a single spell at a time, you can see how that adds up... With this new version I can bypass all of that completely by just writing the changes and ignoring spells that are already there. Thank you so much Null. You're a life saver. I've actually put off spell adjustments until this was fixed because I simply dreaded all the time involved in doing so. Way to go Null, way to go. You're my new hero. P.S. - Null for President! *throws ticker tape* EDIT 2 I just tested the "Delete" function and it's still on the fritz. Not that I care because deleting a spell manually isn't a big deal. As long as write changes works, I'm a happy camper. I just thought you'd like to know though. I also tested "Full Write to Database" and that is functioning beautifully too. It does the full write AND removes spells that were deleted using the "Delete" function which fails to do it's job. So everything is in pristine order other than the login screen layout and delete function, so once you've addressed those issues you're golden hoss. P.S. - Your "Full Write to Database" function is probably 100 times faster than Spell IO. It literally takes about 3 seconds. A superior spell editor to anything else I've used. |
I have a fixes for delete and the positioning issue you were having, but I want to test it in the morning when I am a bit more sober.
|
All times are GMT -4. The time now is 02:31 AM. |
Powered by vBulletin®, Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.