PDA

View Full Version : Still looking for the solution to "unable to scribe spe


rockocool
12-04-2003, 08:19 AM
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.

rockocool
12-04-2003, 10:29 AM
http://www.everquestserver.com/forums/viewtopic.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!

Tark
12-04-2003, 12:32 PM
In program client_process.cpp
Client::OPMemorizeSpell
change the line that says

if(GetClass()>0 && GetClass()<16 && (GetLevel() >= spells[memspell->spell_id].classes[GetClass()]))


to say


if(GetClass()>0 && GetClass()<16 && (GetLevel() >= spells[memspell->spell_id].classes[GetClass()-1]))

rockocool
12-04-2003, 02:14 PM
Perfect, finally someone answered! Brother, you are my saver! spells here I come! Didnt realize it is a class mismatch!

Icebluud
12-04-2003, 02:28 PM
I've looked everywhere and I cant find this file to update. anyone else having a hard time?

rockocool
12-04-2003, 03:02 PM
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.

Icebluud
12-04-2003, 03:08 PM
hrm, guess I will learn to compile then..

explorerdk
12-04-2003, 03:50 PM
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 :)

rockocool
12-04-2003, 06:06 PM
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!

jardar
12-05-2003, 09:51 AM
no clue how to make the changes and recompile it. any chance a fixed version of it can be placed for download?

Shawn319
12-05-2003, 09:57 AM
This has been fixed in 0.5.2 for some time now.

jardar
12-05-2003, 10:03 AM
well i have yet to fine 5.2 binaries. If they been released for download, where can i get them?

Trumpcard
12-05-2003, 10:13 AM
Hasnt yet..

Will be available before too long.