Still looking for the solution to "unable to scribe spe
It happens to my 5.1 server and most 5.1 server I have tried to connect to.
I have seen dozens of posts regarding this issue, and sounds like it is because some old scrolls in the item table that pointed to wrong spells. But after I checked the item table (from tcsmyworld's latest database), take minor shielding scroll for example, both the nodrop one with a star in the name and the normal one, they both point to spell 288. And I checked spell_en.txt, it is indeed spell 288. And I can also use #cast 288 to cast this spell in game. So I dont understand where does the mismatch come to play? Is it because of the level requirement of that spell? then which field has that information in which table, and how can I correct this problem without having to manually correct them one by one? Any help will be highly appreciated! Because for now I see dozens of 5.1 servers lying around with this problem not being taken care of. I feel bad I am not smart enough to solve it, but please someone who knows the way to go throw me (and other server ops) a solution so everybody is happy again. |
http://www.everquestserver.com/forum...ic.php?t=11538
Here is the thread in world building forum seeking for answers to same questions, I have a more thorough description of the symptom there. I hope whoever knows the cure please help your buddy server-ops. Or at least either point me to a working database for 5.1, or point me to the link of 5.2-DR1 source code which is compatilble with tcsmyworld's database. Again I know it is not the code problem, as several developers repeated in several recent thread I read regarding this issue. If it is the database problem, please let us know if there is a solution or not. thanks! |
In program client_process.cpp
Client::OPMemorizeSpell change the line that says Code:
if(GetClass()>0 && GetClass()<16 && (GetLevel() >= spells[memspell->spell_id].classes[GetClass()])) to say Code:
if(GetClass()>0 && GetClass()<16 && (GetLevel() >= spells[memspell->spell_id].classes[GetClass()-1])) |
Perfect, finally someone answered! Brother, you are my saver! spells here I come! Didnt realize it is a class mismatch!
|
I've looked everywhere and I cant find this file to update. anyone else having a hard time?
|
It is in zone folder. So change it and recompile, then replace the new zone.exe to your server folder. Other files no need to change.
Again, thanks so much Tark! I love this world with spells. |
hrm, guess I will learn to compile then..
|
This is the nearest in client_process.cpp i come to the line posted..
if(GetLevel() >= spells[memspell->spell_id].classes[GetClass()]) QueuePacket(app); else{ Message(13, "Unexpected error: Class cant use this spell at your level!"); return; } Is it the right one ? can't seem to find it elsewhere... Noob that I am in this prg :) |
The GetClass()>0 && GetClass()<16 is just a class check, to make sure it is a valid player class. So yes that is the sentense. The class()-1 means the new database shifted the player class by 1 compare to old database. Not easy to catch though when I thought it was a spell id mismatch.
Hey, now I become someone who answer questions! A couple of hours ago I was still the one looking for answers! |
no clue how to make the changes and recompile it. any chance a fixed version of it can be placed for download?
|
This has been fixed in 0.5.2 for some time now.
|
well i have yet to fine 5.2 binaries. If they been released for download, where can i get them?
|
Hasnt yet..
Will be available before too long. |
All times are GMT -4. The time now is 07:31 AM. |
Powered by vBulletin®, Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.