Project 1999

Project 1999 (/forums/index.php)
-   Resolved Issues (/forums/forumdisplay.php?f=14)
-   -   Game Mechanics: Shrink = dungeon only (/forums/showthread.php?t=8126)

Phallax 05-24-2010 02:03 AM

Shrink = dungeon only
 
Shrink was Dungeon only for quite some time. Its anywhere here.

Source:

http://everquest.allakhazam.com/hist...es-2002-2.html

Quote:

- 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

Quote:

Originally Posted by Phallax (Post 65469)
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.

Code:

// 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...DatabaseSchema), 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.

Code:

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...muDBSchemazone) 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


All times are GMT -4. The time now is 12:58 PM.

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