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-11-2013, 01:21 AM
Maceblade
Hill Giant
 
Join Date: Jun 2010
Posts: 231
Default Another door Question

I have been searching for days now to try and figure out why keyed doors are not functioning properly and came up empty handed. IS there a way you can find a door id #? Because I think im just gonna add them to my current doors table so then that way there I can control them from there.

Right now none of my PoTimeb doors are working. I killed every trial in the first phase and it wont let players open doors.

So I figured I could add the doors and their ID's to the table and remove their restrictions or am I wrong? I personally wouldnt care if every door in the game were taken out at this point.
Reply With Quote
  #2  
Old 02-11-2013, 01:55 AM
c0ncrete's Avatar
c0ncrete
Dragon
 
Join Date: Dec 2009
Posts: 719
Default

you could always add an EVENT_CLICKDOOR sub to global_player.pl and then gmsay the $doorid that was clicked on to determine what your scripts should be looking for.

troubleshooting potime isn't going to be fun, i can tell you that much.
__________________
I muck about @ The Forge.
say(rand 99>49?'try '.('0x'.join '',map{unpack 'H*',chr rand 256}1..2):'incoherent nonsense')while our $Noport=1;
Reply With Quote
  #3  
Old 02-11-2013, 06:02 PM
Maceblade
Hill Giant
 
Join Date: Jun 2010
Posts: 231
Default

Im not sure why it works now but I was able to get it to work with just clicking and not adding a sub. I changed the variable "forceopen" and now all doors work.
Reply With Quote
  #4  
Old 02-11-2013, 06:28 PM
sorvani
Dragon
 
Join Date: May 2010
Posts: 965
Default

Using forceopen is not the best way to handle it anymore. the ability to unlock a locked door was added over a year ago.

look at what i did here in Charasis the other day to clean that one up. you could skip the entire relock part since once you unlock them, they are suposed to stay unlock in PoTimeB.

Code:
Index: D:/eq/SVN/projecteqquests/quests/charasis/player.pl
===================================================================
--- D:/eq/SVN/projecteqquests/quests/charasis/player.pl	(revision 1060)
+++ D:/eq/SVN/projecteqquests/quests/charasis/player.pl	(revision 1061)
@@ -1,74 +1,83 @@
 sub EVENT_CLICKDOOR {
-   if($doorid == 8 || $doorid == 264){
-      if($client->KeyRingCheck(20511) || $client->KeyRingCheck(17274)){
-        quest::forcedooropen(8);
-      }
-      elsif(plugin::check_hasitem($client, 20511)) {
-        quest::forcedooropen(8);
-       }
-      elsif(plugin::check_hasitem($client, 17274)) {
-        $client->KeyRingAdd(17274);
-        quest::forcedooropen(8);
-       }
-   }    
-   if($doorid == 10 || $doorid == 266){
-         if($client->KeyRingCheck(20513) || $client->KeyRingCheck(17274)){
-           quest::forcedooropen(10);
-         }
-         elsif(plugin::check_hasitem($client, 20513)) {
-           quest::forcedooropen(10);
-          }
-         elsif(plugin::check_hasitem($client, 17274)) {
-           $client->KeyRingAdd(17274);
-           quest::forcedooropen(10);
-          }
-   }    
-   if($doorid == 11 || $doorid == 267){
-            if($client->KeyRingCheck(20511) || $client->KeyRingCheck(17274)){
-              quest::forcedooropen(11);
-            }
-            elsif(plugin::check_hasitem($client, 20512)) {
-              quest::forcedooropen(11);
-             }
-            elsif(plugin::check_hasitem($client, 17274)) {
-              $client->KeyRingAdd(17274);
-              quest::forcedooropen(11);
-             }
-   }  
-   if($doorid == 35 || $doorid == 291){
-         if($client->KeyRingCheck(20515) || $client->KeyRingCheck(17274)){
-           quest::forcedooropen(35);
-         }
-         elsif(plugin::check_hasitem($client, 20515)) {
-           quest::forcedooropen(35);
-          }
-         elsif(plugin::check_hasitem($client, 17274)) {
-           $client->KeyRingAdd(17274);
-           quest::forcedooropen(35);
-          }
-   }
-   if($doorid == 40 || $doorid == 296){
-         if($client->KeyRingCheck(20514) || $client->KeyRingCheck(17274)){
-           quest::forcedooropen(40);
-         }
-         elsif(plugin::check_hasitem($client, 20514)) {
-           quest::forcedooropen(40);
-          }
-         elsif(plugin::check_hasitem($client, 17274)) {
-           $client->KeyRingAdd(17274);
-           quest::forcedooropen(40);
-          }
-   } 
-   if($doorid == 46 || $doorid == 302){
-         if($client->KeyRingCheck(20516) || $client->KeyRingCheck(17274)){
-           quest::forcedooropen(46);
-         }
-         elsif(plugin::check_hasitem($client, 20516)) {
-           quest::forcedooropen(46);
-          }
-         elsif(plugin::check_hasitem($client, 17274)) {
-           $client->KeyRingAdd(17274);
-           quest::forcedooropen(46);
-          }
-         }
-        }
\ No newline at end of file
+  if($doorid == 8){
+    if($client->KeyRingCheck(17274)){
+      OPEN_DOORS(8,0);
+    } elsif(plugin::check_hasitem($client, 17274)) {
+      OPEN_DOORS(8,1);
+    }
+  } elsif($doorid == 10){
+    if($client->KeyRingCheck(17274)){
+      OPEN_DOORS(10,0);
+    } elsif(plugin::check_hasitem($client, 17274)) {
+      OPEN_DOORS(10,1);
+    }
+  } elsif($doorid == 11){
+    if($client->KeyRingCheck(17274)){
+      OPEN_DOORS(11,0);
+    } elsif(plugin::check_hasitem($client, 17274)) {
+      OPEN_DOORS(11,1);
+    }
+  } elsif($doorid == 35){
+    if($client->KeyRingCheck(17274)){
+      OPEN_DOORS(35,0);
+    } elsif(plugin::check_hasitem($client, 17274)) {
+      OPEN_DOORS(35,1);
+    }
+  } elsif($doorid == 40){
+    if($client->KeyRingCheck(17274)){
+      OPEN_DOORS(40,0);
+    } elsif(plugin::check_hasitem($client, 17274)) {
+      OPEN_DOORS(40,1);
+    }
+  } elsif($doorid == 46){
+    if($client->KeyRingCheck(17274)){
+      OPEN_DOORS(46,0);
+    } elsif(plugin::check_hasitem($client, 17274)) {
+      OPEN_DOORS(46,1);
+    }
+  }
+}
+
+sub OPEN_DOORS {
+  #EVENT_CLICKDOOR executes before the rest of the door processing
+  #so by unlocking and removing the lockpick value we can simulate live behavior
+  #and not incorrectly show that the door is locked and we are not holding the key.
+  
+  #remove lockpiock and key item.
+  $entity_list->FindDoor($_[0])->SetLockPick(0);
+  $entity_list->FindDoor($_[0])->SetKeyItem(0);
+  #send locked message
+  $client->Message(4,"This is locked...");
+  #add to keyring if specified
+  if($_[1] == 1) {
+    $client->KeyRingAdd(17274);
+  }
+  #send open message
+  $client->Message(4,"You got it open!");
+  #set 2 second timer to relock door. use door as timer.
+  #doors stay open longer than 2 seconds.
+  quest::settimer($_[0],2);
+}
+
+sub EVENT_TIMER {
+  if($timer == 8 || $timer == 11) {
+    LOCK_DOORS($timer,20511);
+  } elsif($timer == 10) {
+    LOCK_DOORS($timer,20513);
+  } elsif($timer == 35) {
+    LOCK_DOORS($timer,20515);
+  } elsif($timer == 40) {
+    LOCK_DOORS($timer,20514);
+  } elsif($timer == 46) {
+    LOCK_DOORS($timer,20516);
+  } else {
+    #should never happen
+    quest::stopalltimers();
+  }
+}
+
+sub LOCK_DOORS {
+  $entity_list->FindDoor($_[0])->SetKeyItem($_[1]);
+  $entity_list->FindDoor($_[0])->SetLockPick(201);
+  quest::stoptimer($_[0]);
+}
\ No newline at end of file
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 05:35 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