Project 1999

Go Back   Project 1999 > Blue Community > Blue Server Chat

Closed Thread
 
Thread Tools Display Modes
  #91  
Old 12-23-2013, 02:58 PM
Raavak Raavak is offline
Planar Protector

Raavak's Avatar

Join Date: Aug 2010
Location: Creepin' inta your back door.
Posts: 2,038
Default

There are plenty of people reading this that know how it works, but I don't. I think the spawn is determined from the moment the mob dies with a /random generated number, and is therefore set. This number or time is then accessible by a GM with a command, like /spawntimer #. I'm also sure extended windows screws some of this up and it is re-randomed at the end of the window. But, like I said, I don't know... these are guesses. Jeremy, Loly, etc would know (or a P99 coder if they can share).
__________________
[60 Sorcerer] Rakpartha (Erudite)
[60 High Priest] Doktyr (Dwarf)
[45 Shadow Knight] Elandrea (Dark Elf)
Last edited by Raavak; 12-23-2013 at 03:00 PM..
  #92  
Old 12-23-2013, 03:02 PM
Splorf22 Splorf22 is offline
Planar Protector


Join Date: Mar 2011
Posts: 3,237
Default

Quote:
Originally Posted by Raavak [You must be logged in to view images. Log in or Register.]
There are plenty of people reading this that know how it works, but I don't. I think the spawn is determined from the moment the mob dies with a /random generated number, and is therefore set. This number or time is then accessible by a GM with a command, like /spawntimer #. I'm also sure extended windows screws some of this up and it is re-randomed at the end of the window. But, like I said, I don't know... these are guesses.
It would be natural but silly to implement extended windows this way; after all you know whether the timer will fall in the last 25% of the window when you make the initial dice roll. So something like this would work:

Code:
int respawn_ticks(base, variance)
{
    int window = random(0, variance);

    if(variance-window < ONE_DAY && random(0, 100) > 75)
       return respawn_ticks(base+window, ONE_DAY);
   else
      return base+window;
}
__________________
Raev | Loraen | Sakuragi <The A-Team> | Solo Artist Challenge | Farmer's Market
Quote:
Originally Posted by Arteker
in words of anal fingers, just a filthy spaniard
  #93  
Old 12-23-2013, 03:03 PM
Aeolwind Aeolwind is offline
Developer

Aeolwind's Avatar

Join Date: Oct 2009
Location: Watauga, TN
Posts: 1,641
Send a message via AIM to Aeolwind Send a message via MSN to Aeolwind Send a message via Yahoo to Aeolwind
Default

Quote:
Originally Posted by Splorf22 [You must be logged in to view images. Log in or Register.]
In questmgr.cpp there exists:

This appears to do exactly what you want: it updates the database and communicates with the other zone servers if necessary. Is the QuestManager stuff not available from your perl scripts? Or is it difficult to get the NPC id? I poked around in the source a bit more and it *looks* like a static global id per mob, but maybe not.

Anyway, basically I agree with Jeremy: it simply cannot be that hard to implement this, and it would be huge for the community.
QuestManager is the deprecated naming for quest::UpdateSpawnTimer(int32 id, int32 newTime)

Historically the NPC ID has been a problem across zones for the functions I've tried to use. The Spawn2 info is what it is looking for, but then it fans out?

Bear in mind, this could totally be an EBKAC error as well. Logically trying to derive Perl functions with no experience with the language was fun. Let me tinker and see if I can blow up the test server again get this working over Christmas.

But this also wouldn't work for the Sleeper scripting, so I may not put a ton of effort in. As there is no indication that weekly repops are even being considered.
__________________
I have walked my way since the beginning of time. Sometimes I give, sometimes I take & it is mine to know which and when.

Quote:
Originally Posted by Nilbog
If all the polls I have done up until now fully counted, you would be playing on some abomination of a PVP server with 2-10 boxing based on votes from people named xcm234nv and adfa234.
Last edited by Aeolwind; 12-23-2013 at 03:09 PM..
  #94  
Old 12-23-2013, 03:16 PM
Splorf22 Splorf22 is offline
Planar Protector


Join Date: Mar 2011
Posts: 3,237
Default

If you want I can get in IIRC and maybe help somewhat . . somehow

also:

Quote:
Originally Posted by Aeolwind
As there is no indication that weekly repops are even being considered
Well there is this: http://www.project1999.com/forums/sh...008#post745008
__________________
Raev | Loraen | Sakuragi <The A-Team> | Solo Artist Challenge | Farmer's Market
Quote:
Originally Posted by Arteker
in words of anal fingers, just a filthy spaniard
Last edited by Splorf22; 12-23-2013 at 03:21 PM..
  #95  
Old 12-23-2013, 03:26 PM
heazels heazels is offline
Sarnak


Join Date: Oct 2013
Posts: 230
Default

the database will have the time the mob is supposed to spawn stored...the server doesnt perform checks every tick to see if spawns. Therefor all you need to do is create a command to update the database time of spawn. Which in this case appears to be easily done by calling SetTimer(newTime);
  #96  
Old 12-23-2013, 03:41 PM
doraf doraf is offline
Kobold


Join Date: Oct 2009
Location: Santa Barbara, CA.
Posts: 193
Default

Quote:
Originally Posted by heazels [You must be logged in to view images. Log in or Register.]
the database will have the time the mob is supposed to spawn stored...the server doesnt perform checks every tick to see if spawns. Therefor all you need to do is create a command to update the database time of spawn. Which in this case appears to be easily done by calling SetTimer(newTime);
^
__________________
Doraf - 60 Cleric
  #97  
Old 12-23-2013, 03:47 PM
Aeolwind Aeolwind is offline
Developer

Aeolwind's Avatar

Join Date: Oct 2009
Location: Watauga, TN
Posts: 1,641
Send a message via AIM to Aeolwind Send a message via MSN to Aeolwind Send a message via Yahoo to Aeolwind
Default

Quote:
Originally Posted by Splorf22 [You must be logged in to view images. Log in or Register.]
If you want I can get in IIRC and maybe help somewhat . . somehow

also:



Well there is this: http://www.project1999.com/forums/sh...008#post745008
Fairly old post. Would be nice for you guys though.

And SetTime sets the server time iirc which has no effect on spawntimes. Like, none of the times in game, server or spawn times are interconnected in the least.

Oh and to answer an earlier question, spawn time info is not really viewable. And there isn't a GM command to see spawn times.
__________________
I have walked my way since the beginning of time. Sometimes I give, sometimes I take & it is mine to know which and when.

Quote:
Originally Posted by Nilbog
If all the polls I have done up until now fully counted, you would be playing on some abomination of a PVP server with 2-10 boxing based on votes from people named xcm234nv and adfa234.
  #98  
Old 12-23-2013, 03:47 PM
Splorf22 Splorf22 is offline
Planar Protector


Join Date: Mar 2011
Posts: 3,237
Default

The way I read that function is that it is not so simple:

Each zone will have a timer for each mob (presumably a 4 byte integer that is checked every tick). Updating those timers is complicated by the fact that they may be in different processes running on different computers. Also, mobs that matter will be in the database so that their repop timers will persist through reboots and zone crashes and such.

Fortunately, that code appears to do exactly what is necessary: first it updates the SQL database, then it modifies any local zone timers, and then it sends update messages over the network to tell the other zone servers to update the spawn timers if necessary. Granted, I could be wrong about all this - it's never easy to jump into a decently sized piece of code and figure out what's going on.
__________________
Raev | Loraen | Sakuragi <The A-Team> | Solo Artist Challenge | Farmer's Market
Quote:
Originally Posted by Arteker
in words of anal fingers, just a filthy spaniard
  #99  
Old 12-23-2013, 08:50 PM
Juevento Juevento is offline
Sarnak

Juevento's Avatar

Join Date: Jul 2013
Posts: 292
Default

Well thanks for ruining this self congratulatory post with your brogramming chatter.

Anyways thanks to the server staff for the unexpected bit of fun yesterday. It was great to see all the different guilds knocking down targets.
  #100  
Old 12-23-2013, 10:22 PM
kotton05 kotton05 is offline
Banned


Join Date: Sep 2012
Posts: 1,732
Default

Thanks for repop and the brogramming talk look like Chinese to me
Closed Thread


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 04:09 PM.


Everquest is a registered trademark of Daybreak Game Company LLC.
Project 1999 is not associated or affiliated in any way with Daybreak Game Company LLC.
Powered by vBulletin®
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.