ACE Generators

From A'Chard
Revision as of 04:16, 31 July 2023 by FX (talk | contribs)
Jump to navigation Jump to search

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 https://github.com/ACEmulator/ACE-World-16PY-Patches/blob/master/Database/Patches/2011-05-LostCityOfNeftet/6%20LandBlockExtendedData/A1A3.sql 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 https://github.com/ACEmulator/ACE-World-16PY/blob/master/Database/3-Core/9%20WeenieDefaults/SQL/Generic/None/05086%20Linkable%20Monster%20Gen%20-%2030%20sec..sql 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