Max Number of Spells in spells_us.txt?
I am trying to find a way to allow my players to level from 70 to 75 in a non-traditional manor. Basically, in the current top tier zone I am making, there will be drops for a quest that will allow players to level up to 75 even though the server cap is set to 70.
I have decided to use a current spell file download from SOE or from Lucy (either should work fine). Almost all of the current 1-70 spells seem to work fine for the most part with only minor bugs seen so far. The issue is that it doesn't seem to load the entire spell database as far as I can tell, cause many of the 70+ spells just don't show up after using the spell scriber. I recall reading somewhere (but I can't find it now) that there is a limit of 9k or maybe 10k spells set to be loaded by the emu. I am guessing that is the reason why many are missing, because the exceeded the cut-off. I know that items have a max number that is able to be created by default and I don't think the itemIDs can exceed something like 100k. This is another reason I think spells may work this same way. I know that some of the spells just won't work because some of them have new features that aren't supported in the emu yet. That is fine with me. I can remove any that don't work properly, or any that I don't want players to have from server-side and they just won't be scribed or castable. I can edit that stuff later, so that isn't a big concern. I would like to know if anyone knows how to up the max amount of spells that can be loaded by the emu, or if there even really is a max number. Maybe I am incorrect in thinking that. It could just be that some aren't showing up in-game because they have features in them that aren't supported, so they won't even load properly or something. I have tried compiling the source in the past, but I was never able to get it to work properly. I am sure that if someone could find the code I need to change to correct the issue I am having, I could give it a try again and get it working with enough effort, lol. Of course, I wouldn't complain if there was a rule to adjust settings like max number of items to load or max number of spells. I am not concerned about max itemID number, I am just mentioning it, because it seems like it could be similar to that issue. I really wanted to find a way to do this without requiring a file download for the clients, but I don't think that is possible. I tried just editing some current spells in the same spell line and upgrading them so there would be 1 spell per level from 71 to 75 for each class. Unfortunately, the client side spell file is responsible for more than I had imagined. I was hoping it would only show the wrong spell info, but it also determines cast times and even stat adjustments from buffs. An example was that I used the spell holy armor to make a new group buff for clerics that would be an upgrade to CoV. The spell worked as intended, but the HPs don't show up properly in the inventory stats screen even though they show up with #showstats properly. Also, it would appear that the spell only took 2 seconds to cast, but then would just do nothing until the 20 seconds of cast time passed that was set for the actual upgraded spell on the server. This is just too buggy and too hard for my players to keep track of. Thanks in advance for any information on this. I will be making another post in relation to this non-traditional leveling method, since stats don't show up properly due to skill caps getting rolled over, but I will leave that for another post in another section. |
I remember the post you're talking about, but have no idea where it wound up. I thought I replied to it, but I wasn't able to find one.
What I do remember is that, when the spells are loaded into shared memory (see EMuShareMem/Spells.cpp), it creates a dynamically sized array (max spell ID + 1 according to the source), so it shouldn't matter how many spells you have. The exception to this was an old way of loading the information, in which it was defined as exactly 3602 spell records (see zone/spdat.h). |
as of this year builds ( I am using 1090 rigth now) you CANNOT load more than 10k spells (and from what I know you never could - I tried)
I have been telling this to devs for a while now- please resize array to 20k :cool: |
Quote:
It's one of those things in the titanium client that can't be tricked, sadly. Your best bet is to copy the spells you want (There's a number of them) and put a spells_us.txt available for download. Unfortunately the client doesn't have a download option for them, nor does it come bug-free if you don't download it. (Not to mention some of the fields are too long for the titanium client anyhow...) But that's the only thing you can do. Limits, limits, oh how i'd love if they wern't there. |
Well, the number of fields seems to be fine. They all work just great with the spell editor I am using which requires a standard 203 number of fields for every line in the file. It gives errors if any lines don't have that many fields and I get no errors on the downloaded version from Live.
Does anyone know how I would up the max number of spells in the source? Can I just adjust how many the array loads up? I went through with the spell editor and changed every field of every player usable spell that didn't have a value that the spell editor understands, which I assume means it is something that Titanium doesn't have support for. So, I think that should stop me from getting errors when casting those spells. I also removed all spells that are placeholders, test spells and even the multi version spell from level 71+ (I only left the original and removed RK II and RK III). Now I just need a way for it to allow me to load them all. |
Quote:
So, if I am reading what Secrets wrote correctly, the 10000 limit is built into the client and NOT the emu? I tried searching through the emu code, but I don't understand code well enough to be sure that there isn't any issues with the server that might cause spells above 10000 to not show up properly when cast. They do actually cast, but no buff icons show up and the buff message doesn't appear. Oddly, the worn off message still does appear... If I am using the live version of the spells_us.txt file on both client and server, I can do a scribe spell and it seems to load all up to 9999. Anything above that shows up as "unknown spell" in the spell book and you are unable to scribe it or see any benefits from it. I am no coder, but I read through alot of the emu code trying to understand how it loads the spells file. First I see this: files.h Code:
#ifndef SPELLS_FILE Then I look for that: net.cpp Code:
#ifdef NEW_LoadSPDat Another thing I checked out is: spells.h Code:
struct MMFSpells_Struct { items.h Code:
#define MMF_EQMAX_ITEMS 100000 spdat.h Code:
#define SPELL_UNKNOWN 0xFFFF emusharemem.h Code:
//////////// Emusharemem.cpp Code:
if (Loaded()) { The SPELL_UNKNOWN stands out because the spells show up as "unknown spell" in the spell book and that is what is in the message when you #scribespells 75 for spell IDs over 9999. client_packet.cpp Code:
//Validity check for memorized If it is the client that limits this, is there any possible chance that the files could be changed or maybe update 1 or 2 from live that will up this? I highly doubt it, but worth asking lol. |
good work Trev!!
I need 20k spell limit like air - I am unable to make my new classes wihout them |
All times are GMT -4. The time now is 10:30 AM. |
Powered by vBulletin®, Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.