ACE Generators: Difference between revisions
No edit summary |
No edit summary |
||
Line 1: | Line 1: | ||
[[Category:ACE]] | [[Category:ACE]] | ||
Latest revision as of 03:13, 18 March 2024
ACE Generators
vendors can have generators
regenlocationtype has flags for both shop and treasure
however they aren't supported at the same time, according to the current code
in theory it would be trivial to modify the code to support them both at the same time
like a 1 or 2-line change
actually i'm mistaken, it is supported
so yeah it looks like you could have a vendor that generates lootgen treasure, same as any other generator or monster corpse etc.
you might need to change this flag to true
("vendor_shop_uses_generator", new Property<bool>(false, "enables or disables vendors using generator system in addition to createlist to create artificial scarcity")),
28282 Linkable Monster Gen - 10 Sec
15274 Linkable Monster Gen - 1 Min
24129 Linkable Monster Gen - 2 Min
07923 Linkable Monster Gen - 3 Min
07932 Linkable Monster Gen - 4 Min
07924 Linkable Monster Gen - 5 Min
04219 Linkable Monster Gen - 7 Min
07925 Linkable Monster Gen - 10 Min
03955 Linkable Monster Gen - 15 Min
07926 Linkable Monster Gen - 20 Min
15759 Linkable Item Gen - 10 Sec
05085 Linkable Item Gen - 25 Sec
04142 Linkable Item Gen - 2 Min
RipleyToday at 12:03 PM
rate can be increase by enabling the override_encounter_spawn_rates option and then changing encounter_delay and encounter_regen_interval
can try encounter_delay at 300 and encounter_regen_interval at 60 for basically a spawn every 5 mins for the overworld generators
RegenInterval is the generator "heartbeat"
it's how often the generator checks if things need to respawn
so that generator would check if things are ready to respawn every 60 seconds
delay is what you would probably consider the "real" regen interval
so things will take 800 seconds to respawn, but the regen interval provides a small amount of rng/sync to it
with that generator, things will take a minimum of 800 seconds to respawn, and a maximum of 860 seconds
depending on when the thing died in relation to the generator heartbeat
that method also syncs things up, so if i kill 1 2 3 4 5 monsters, with 10s in between each kill, when they respawn, they arent going to come in 1 at a time, every 10s on the dot
that would be too predictable, and would make the respawn cycles easier to kill
i would be able to kill the respawns without any other adds also attacking me
RipleyToday at 12:37 PM
set to 0
regen that is
whenever you don't want regen, its always 0
delay is for how long a profile can hold the slot it spawned after its been killed
DridToday at 12:41 PM
noted on that. Ill clean up those other gens
RipleyToday at 12:41 PM
so you've got 4/4 and you have 5 profiles. each profile is 1/1 with a delay of 300. it will spawn 4 of those profiles and if one of them is killed, the 5th profile won't be immediately selected because the slot is still being held through the delay. once the delay is over, ONE of the two unspawned will be selected
======
GeneratorDestructionType = Generator's destruction
GeneratorEndDestructionType = Generator's disabled
GeneratorEndDestructionType is fired when Generator is Disabled
disabling coming via event offs, day/night switches, time end reached
GeneratorDestructionType fires when Generator is Destroyed (WorldObject.Destroy)
- Delay in generator "profile" the bottom section is for regen.
WHERE TYPE
Undef = 0x00,
OnTop = 0x01,
Scatter = 0x02,
Specific = 0x04,
Contain = 0x08,
Wield = 0x10,
Shop = 0x20,
Treasure = 0x40,
Checkpoint = Contain | Wield | Shop, // 56
OnTopTreasure = OnTop | Treasure, // 65
ScatterTreasure = Scatter | Treasure, // 66
SpecificTreasure = Specific | Treasure, // 68
ContainTreasure = Contain | Treasure, // 72
WieldTreasure = Wield | Treasure, // 80
ShopTreasure = Shop | Treasure // 96
WHEN TYPE
[Flags]
public enum RegenerationType : uint
{
Undef = 0x0,
Destruction = 0x1,
PickUp = 0x2,
Death = 0x4
}
public enum GeneratorDestruct
{
Undef,
Nothing,
Destroy,
Kill
Linkable Generators for Dungeons
lets look at a very basic layout
in the above link, the first four are static objects
they never respawn and were pcapped in the static guid range
the generator of course wasn't pcapped, but those objects following it were, and they were in the dynamic guid range which tells us
that for whatever reason they linked them to a generator.. for the cavern npc and forge npc, they could have been static as well but for the 3 target drudges,
you want them to respawn when killed
so in concept, the use of linkable gens is so you don't have to make new generator objects to spawn one or more objects
if you're not building a generator that is going to be used in lots of places, it makes sense to just setup one or more linkables,
depending on conditions you want to impose (like 2 min, 5 min, etc), in a landblock, map out where each object is intended
to respawn at and then link it back to the generator
the guids for any objects linked is essentially thrown away and never seen by players
the generator uses the link to determine what, where and how many to spawn, using the generator's placeholder object to define the where, how many and under what conditions
guids are always in a specific format, 0x7[LBID]###
lbid is that first four of loc, after that its incremental from 000
Ripley12/09/2019
so if you're in an area that has pcapped existing statics, you start +1 from the highest static
if you're in a completely barren area its 000
so like landblock ABCD is empty, the first guid is 0x7ABCD000
I just usually search the landblock_instance table for a specific landblock ID, and use +1 the highest GUID for that landblock
and don't use a GUID from the dynamic range, or the object will get culled
It's more or less range specific to the landblock
Ripley12/09/2019
yes, anything in instances is 0x70000000 to 0x7FFFFFFF
it is scoped per landblock as Ziang says, so for ABCD, 0x7ABCD000 to 0x7ABCDFFF
if you get to FFF of a landblock, you've got bigger issues
a thing is entered in to the "spawn map, a concept, not a real thing" and then linked to a linkable generator.. when the server starts up, it collects up those links and uses it to dynamically build a working generator that is not unlike a "completed" generator
last four numbers in loc, W X Y Z.. if X and/or Y are not 0, your char will do very odd things.. most likely applies to most creatures as well</nowiki>