EQEmulator Forums

EQEmulator Forums (https://www.eqemulator.org/forums/index.php)
-   Support::Windows Servers (https://www.eqemulator.org/forums/forumdisplay.php?f=587)
-   -   Character's (https://www.eqemulator.org/forums/showthread.php?t=32232)

KingMort 10-05-2010 01:02 PM

Character's
 
If this is posted in the wrong section , I apologize


Ran into some funny issues when completely re-making / organizing our spells file.

What I really want to do at this point is wipe out everyone's spell books, and discs. (Later of course to refund them)

Of course this is a simple matter with a Hail npc or Player script. But to do it with an SQL query has proven to be pretty rough..

Am I correct to assume that data is stored in Character_ under the extprofile BLOB ?

But is there no way to access said data ? If so what would the query look like to remove spells and discs from all chars (if you don't mind going that far)

Thank you in advance to anyone who can help this old troll find the answer to this puzzling ordeal.

KM

Akkadius 10-05-2010 02:15 PM

Quote:

Originally Posted by KingMort (Post 192641)
If this is posted in the wrong section , I apologize


Ran into some funny issues when completely re-making / organizing our spells file.

What I really want to do at this point is wipe out everyone's spell books, and discs. (Later of course to refund them)

Of course this is a simple matter with a Hail npc or Player script. But to do it with an SQL query has proven to be pretty rough..

Am I correct to assume that data is stored in Character_ under the extprofile BLOB ?

But is there no way to access said data ? If so what would the query look like to remove spells and discs from all chars (if you don't mind going that far)

Thank you in advance to anyone who can help this old troll find the answer to this puzzling ordeal.

KM


Mort, one thing you can do simply because this is most likely an issue that could really ruin things... On all of your sub EVENT_ENTERZONE 's for your player.pl you could generate a script that wipes all of their spells and gives all of them back to a certain level. Put a qglobal on it so it doesn't happen twice, only to them logging in for the first time.

Only reason I say this is because you can't really query against a blob unless there is some way that I haven't heard of. But here, I just woke up, so this should be a good enough example...

Assuming you have a bunch of spell ID's that are messed up and out of order now, this is how I would do it...

Code:

sub EVENT_ENTERZONE{
        if(!$qglobals{"OperationNuke"}){ ### If they don't have flag, give it to them, a one time operation
        $client->UnscribeSpellAll(); ###Wipe Spells, requires force update
        $client->UntrainDiscAll();        ###Wipe Discs, requires force update
        quest::traindiscs(1, 90);
        quest::scribespells(1, 90);
        quest::setglobal("OperationNuke",1,5,"F");
        $client->Save();
        $client->Disconnect();
        }
}

You could also put something like this on an NPC, depends on how urgent you find this matter. But that should definitely get the job done for you. They will need to rezone or recamp to see the abilities again.

KingMort 10-05-2010 02:26 PM

Why do people keep moving my posts to Windows Servers , I don't run Windows !!!!


Anyway yeah that's probably the only option we will have is a script.

Tabasco 10-05-2010 03:31 PM

I had to do something similar when I changed the xp formula on my server, but I ended up moving every player to a safe zone rather than edit a bunch of player.pl scripts. (My population consists mainly of adventurous types who are used to my testing so nobody minded. That's probably not an option on a server that sees actual traffic.)

Since then I've implemented a truly global player script that runs in unison with the per-zone player script. I can get you some diffs for it if you're interested.

Akkadius 10-05-2010 03:33 PM

Quote:

Originally Posted by Tabasco (Post 192651)
I had to do something similar when I changed the xp formula on my server, but I ended up moving every player to a safe zone rather than edit a bunch of player.pl scripts. (My population consists mainly of adventurous types who are used to my testing so nobody minded. That's probably not an option on a server that sees actual traffic.)

Since then I've implemented a truly global player script that runs in unison with the per-zone player script. I can get you some diffs for it if you're interested.

I have all of my player.pl scripts governed by a plugin that governs all of the player.pl scripts so you only have to change one script. But, I can also see Mort just putting it on an NPC.

KingMort 10-05-2010 04:57 PM

Thanks for the help.


All times are GMT -4. The time now is 01:06 PM.

Powered by vBulletin®, Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.