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 06-25-2008, 09:57 AM
So_1337
Dragon
 
Join Date: May 2006
Location: Cincinnati, OH
Posts: 689
Default Setglobal Question:

Very quick question, which I believe should have an easy answer if it's possible.

Code:
sub EVENT_DEATH {
quest::setglobal(aten,1,3,"H108");
}
If I instead wanted that variable above to last forever, I would change "H108" to "F". That's easy. What if I wanted to have it write a timestamp to the database for when the event actually occurred? I guess the first question is, is there a perl value that accomplishes that? Substitute $timestamp or an equivalent? And the second is, since I wouldn't want to put that in the expiration field, is the value field big enough to hold it?

Just looking for an idea on how this might be done. Appreciate any suggestions.
Reply With Quote
  #2  
Old 06-25-2008, 07:53 PM
trevius's Avatar
trevius
Developer
 
Join Date: Aug 2006
Location: USA
Posts: 5,946
Default

Anytime I want to keep track of an event, I simply use the following:

Code:
quest::write("bossdeaths.txt","$mname was killed by $name the $class.");
I think that would be the best way to do what you want, but there is only 1 problem which I too would like resolved; there isn't a way to do a timestamp in this command as far as I can tell. If you could use this command and have it do a timestamp with a $timestamp identifer, that would be awesome. I wonder how hard it would be to get that identifier added into the source. Unfortunately I am not a coder yet, or I would do it myself lol.
__________________
Trevazar/Trevius Owner of: Storm Haven
Everquest Emulator FAQ (Frequently Asked Questions) - Read It!
Reply With Quote
  #3  
Old 06-26-2008, 07:41 AM
So_1337
Dragon
 
Join Date: May 2006
Location: Cincinnati, OH
Posts: 689
Default

Wow, I had no idea there was such a quest::command! I must've skipped over it in the list. That's near enough to what I need, actually. If I need a timestamp, I can check the time the file was last modified after it's been written to. Thanks a ton! =)
Reply With Quote
  #4  
Old 06-27-2008, 03:47 PM
AndMetal
Developer
 
Join Date: Mar 2007
Location: Ohio
Posts: 648
Default

Quote:
Originally Posted by trevius View Post
there isn't a way to do a timestamp in this command as far as I can tell. If you could use this command and have it do a timestamp with a $timestamp identifer, that would be awesome.
This is actually a lot easier than it seems.

Since we are using Perl, we have the benefits of all that Perl offers, including time & localtime.

If you wanted to define a variable $timestamp to have the current time, you could add this to your quest:

Code:
$timestamp = localtime(time);
Simple as that. Then, you could add it to your output file:

Code:
quest::write("bossdeaths.txt","[$timestamp]: $mname was killed by $name the $class.");
__________________
GM-Impossible of 'A work in progress'
A non-legit PEQ DB server
How to create your own non-legit server

My Contributions to the Wiki
Reply With Quote
  #5  
Old 06-27-2008, 11:02 PM
trevius's Avatar
trevius
Developer
 
Join Date: Aug 2006
Location: USA
Posts: 5,946
Default

Sweet! That worked perfectly!

Here is a test quest:

Code:
#test quest

sub EVENT_SAY {

$timestamp = localtime(time);

if ($text =~/Hail/i) {
quest::say ("Why, hello there $name!  Pleasure meeting you here.");
quest::write("test.txt","[$timestamp]: $name, the $class, hailed $mname"); }

}
It put the following output into my test.txt file:
Code:
[Fri Jun 27 21:41:56 2008]: Trevazar, the Warrior, hailed Larren000
Now, if I could only get it to add guildname in somehow, since $uguildid doesn't seem to work. Not a big deal though. Getting that timestamp working was what I wanted the most. Thanks again AndMetal!
__________________
Trevazar/Trevius Owner of: Storm Haven
Everquest Emulator FAQ (Frequently Asked Questions) - Read It!
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 09:02 AM.


 

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