Go Back   EQEmulator Home > EQEmulator Forums > Quests > Quests::Q&A

Quests::Q&A This is the quest support section

Reply
 
Thread Tools Display Modes
  #1  
Old 02-05-2010, 05:48 PM
dreamseer
Fire Beetle
 
Join Date: Feb 2010
Location: York
Posts: 22
Default How to Stop players casting certain spells in certain areas

There are areas in EQ where certain spells don’t work or can’t be cast
SOW inside
Velketor's Labyrinth levitate etc.

I would like to prevent gate and teleport in certain areas
I’m hoping it’s possible with an invisible npc
Reply With Quote
  #2  
Old 02-05-2010, 05:57 PM
Derision
Developer
 
Join Date: Feb 2004
Location: UK
Posts: 1,540
Default

Take a look at the blocked_spells table in the database:

Code:
mysql> describe blocked_spells;
+-------------+-----------------------+------+-----+---------+----------------+
| Field       | Type                  | Null | Key | Default | Extra          |
+-------------+-----------------------+------+-----+---------+----------------+
| id          | int(11)               | NO   | PRI | NULL    | auto_increment |
| spellid     | mediumint(8) unsigned | NO   |     | 0       |                |
| type        | tinyint(4)            | NO   |     | 0       |                |
| zoneid      | int(4)                | NO   |     | 0       |                |
| x           | float                 | NO   |     | 0       |                |
| y           | float                 | NO   |     | 0       |                |
| z           | float                 | NO   |     | 0       |                |
| x_diff      | float                 | NO   |     | 0       |                |
| y_diff      | float                 | NO   |     | 0       |                |
| z_diff      | float                 | NO   |     | 0       |                |
| message     | varchar(255)          | NO   |     |         |                |
| description | varchar(255)          | NO   |     |         |                |
+-------------+-----------------------+------+-----+---------+----------------+
I've never actually messed with it, but as I undertand it, it will block spell spellid (or all spells of type 'type' in zone zoneid in the cube centered at x,y,z with dimensions +/- x_diff, y_diff, z_diff from being cast and send the client 'message' if the spell is blocked.

To block a spell in the whole zone, set x,y,z to 0 and x_diff,y_diff,z_diff to a large number (10000 is typically what is used for the current entries in that table).

Browsing the entries in the table should give you an idea of what to do.

EDIT: Looking at the source, it appears if 'type' is 1, then the spell is blocked zonewide, or if 'type' is 2, then it is blocked only within the cube specified by x,y,z,x_diff,y_diff,z_diff.

Last edited by Derision; 02-05-2010 at 06:07 PM..
Reply With Quote
  #3  
Old 02-05-2010, 05:58 PM
trevius's Avatar
trevius
Developer
 
Join Date: Aug 2006
Location: USA
Posts: 5,946
Default

SoW and Levitate blocking are done on a per-zone basis and are set in the zones table itself. But, if you want to stop specific spells from being cast in a whole zone or just part of it, you can use the blocked_spells table to setup what you want blocked and exactly where to block it. There should already be some examples in your table, so you can figure out how to use it based on that.

Edit: Foiled by Derision!
__________________
Trevazar/Trevius Owner of: Storm Haven
Everquest Emulator FAQ (Frequently Asked Questions) - Read It!
Reply With Quote
  #4  
Old 02-08-2010, 09:37 PM
dreamseer
Fire Beetle
 
Join Date: Feb 2010
Location: York
Posts: 22
Default

Wow you guys are the best .... and the more I learn the more I appreciate the design of Everquest.

Thanks guys
Reply With Quote
Reply


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump

   

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


 

Everquest is a registered trademark of Daybreak Game Company LLC.
EQEmulator is not associated or affiliated in any way with Daybreak Game Company LLC.
Except where otherwise noted, this site is licensed under a Creative Commons License.
       
Powered by vBulletin®, Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Template by Bluepearl Design and vBulletin Templates - Ver3.3