Phallax
05-24-2010, 02:03 AM
Shrink was Dungeon only for quite some time. Its anywhere here.
Source:
http://everquest.allakhazam.com/history/patches-2002-2.html
- Shaman and Beastlord Shrink spell has had its location restriction
removed.
Zones like CazicThule, City of Mist, Karnors, acted as both outside and dungeons and shrink worked there. May be a few others as well, dont believe poFear acted as both but do believe poHate did.
Gorroth
05-24-2010, 05:43 AM
Shrink worked in any zones classified as "dungeon", that includes Crushbone, Blackburrow, High Keep, Cazic Thule, City of Mist, Karnor's and probably a few others, even though you could use outdoor spells while in the zone.
The only place I remember where I couldn't shrink myself was vast open spaces like the Karanas. Shrink potion still worked there though, I think.
Not sure it's worth the coding annoyance. /shrug
Phallax
05-24-2010, 12:56 PM
its not about being worth it or not, its about it being classic =P
Skaff
05-24-2010, 06:25 PM
its not about being worth it or not, its about it being classic =P
That is true!
However, it appears that it might be an easy fix and really should require no "code" to fix. A method is already there to snag all of the blocked spells from a zone.
// from zone/zone.cpp
void Zone::LoadBlockedSpells(int32 zoneid)
{
//stuff...
}
I didn't see the scheme listed in "The EQEmulator Database Schema" section of the wiki (http://www.eqemulator.net/wiki/wikka.php?wakka=CategoryDatabaseSchema), but I eventually come across the "blocked_spells" table within the SQL scripts to create the base tables from PEQ download. That table appears to hold a giant list of all of the "no no" spells per zone. Unless additions have been made to that table, only Paineel "should" have those shrink restrictions. The schema for the "blocked_spells" table and the one instance of where the shrink restriction was used is below.
CREATE TABLE `altadv_vars` (
`skill_id` int(11) NOT NULL default '0',
`name` varchar(128) default NULL,
`cost` int(11) default NULL,
`max_level` int(11) default NULL,
`hotkey_sid` int(10) unsigned NOT NULL default '0',
`hotkey_sid2` int(10) unsigned NOT NULL default '0',
`title_sid` int(10) unsigned NOT NULL default '0',
`desc_sid` int(10) unsigned NOT NULL default '0',
`type` tinyint(3) unsigned NOT NULL default '1',
`spellid` int(10) unsigned NOT NULL default '0',
`prereq_skill` int(10) unsigned NOT NULL default '0',
`prereq_minpoints` int(10) unsigned NOT NULL default '0',
`spell_type` int(10) unsigned NOT NULL default '0',
`spell_refresh` int(10) unsigned NOT NULL default '0',
`classes` int(10) unsigned NOT NULL default '65534',
`berserker` int(10) unsigned NOT NULL default '0',
`class_type` int(10) unsigned NOT NULL default '0',
`cost_inc` tinyint(4) NOT NULL default '0',
`aa_expansion` tinyint(3) unsigned NOT NULL default '3',
`special_category` int(10) unsigned NOT NULL default '4294967295',
`sof_type` tinyint(3) unsigned NOT NULL default '1',
`sof_cost_inc` tinyint(3) NOT NULL default '0',
`sof_max_level` tinyint(3) unsigned NOT NULL default '1',
`sof_next_skill` int(10) unsigned NOT NULL default '0',
`clientver` tinyint(3) unsigned NOT NULL default '1',
PRIMARY KEY (`skill_id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
...
(3,345,2,75,0,0,0,10000,10000,10000,'You cannot shrink in this zone.','Prevent Shrink in Paineel')
...
So it appears that some simple entries (per zone) could solve the problem. Just make sure you use the right spell id (345)! :) I still think that there might be a better solution (or used to be). However, the patch notes you listed does make me think that some structure changes facilitated an easy change.
I did explore the possibility of spell restriction list based off information from the "zone" table. The one attribute that looked possible was "ztype". However, after analyzing some of the entries for some of the zones and reading some of the documentation on "ztype" from (http://www.eqemulator.net/wiki/wikka.php?wakka=EQEmuDBSchemazone) and reading though some more code, it does appear that "ztype" variable is a bit of a mystery and not really used. The only "special" checks really appear to deal with binds, combat, levitation, outdoor casting, city zones and hot zones.
Haynar
05-24-2010, 11:21 PM
This is already on our list of things to fix. FYI.
Thanks.
Haynar
vBulletin® v3.8.11, Copyright ©2000-2025, vBulletin Solutions Inc.