Implementation of Era Dynamis **READ CAREFULLY**#31
Implementation of Era Dynamis **READ CAREFULLY**#31Frankie-hz wants to merge 22 commits intophoenixffxi:betafrom
Conversation
18e2cd4 to
cbc294c
Compare
4edb0a5 to
66fbd3f
Compare
068c550 to
223b9db
Compare
d4886e5 to
2b7f2b6
Compare
765d63f to
14fc932
Compare
Transfer ASB Dynamis BASE
Adds Dynamis Windurst Changes how aggro spawns work - forces the statues to spawn regardless of 1 shotting a statue
CriticalXI
left a comment
There was a problem hiding this comment.
First review session, more to come! Generally seeing a lot of debug prints throughout the files still that could be cleaned up, and a lot of commented out chunks of code unless you plan to come back to those soon.
| } | ||
| } | ||
|
|
||
| -- local currencyHaggle = |
There was a problem hiding this comment.
Large section commented out here, is this still needed? Could use a comment explaining if this needs to stay here.
There was a problem hiding this comment.
Havent gotten to the currency portion of this yet. It might not even be needed. Its from my old code for the time being. I'll add a TODO
|
|
||
| m:addOverride(mobPath .. '.onMobEngage', function(mob, target) | ||
| xi.dynamis.mobOnEngage(mob, target) -- This is for spawning statues on boss aggro | ||
| xi.dynamis.onBossEngage(mob, target) -- TODO: for qufim maybe |
There was a problem hiding this comment.
What exactly is the TODO for qufim here?
There was a problem hiding this comment.
The main boss does certain things, certain resistances based on whats killed in the zone. The only way to update those would be on engage since the mob is up when the instance starts
| -- 5sec less than 10min to prevent zone idle before cleanup fires | ||
| zone:setLocalVar(varNoPlayerTimer, currentTime + 595) | ||
| -- Sync with zone expiration to handle valid hourglass edge cases | ||
| SetServerVariable(varExpiration, currentTime + 595) |
There was a problem hiding this comment.
How is this varExpiration reset back to the normal value if someone comes backs into the zone? The logic seems like the varNoPlayerTimer var would never get cleared because it's changing the varExpiration here.
There was a problem hiding this comment.
Can you explain what you mean by reset to the normal value?
The varExpiration is the server var that updates the hourglasses for everyone. Once there are no members left in dynamis the hourlgasses are then set to have a 10 minute timer. If they happen to go back into the zone -> kill a TE then the time will update accordingly.
Once there is 10 minutes left this block of code wont ever be hit again.
| local zoneTimeRemaining = xi.dynamis.getDynaTimeRemaining(zoneExpiration) | ||
| local newZoneExpiration = zoneExpiration + (60 * minutes) -- Add more time to increase previous expiration point. |
There was a problem hiding this comment.
I think newZoneExpiration should be passed to getDynaTimeRemaining for the correct time to check for the warnings below. The new time might push it past a threshold and it's still checking the old time.
| end | ||
|
|
||
| -- Cleanup Done | ||
| xi.dynamis.cleanupDynamis = function(zone) |
There was a problem hiding this comment.
I'm seeing some things regarding Dynamis aren't cleaned up properly in this function.
- I don't see player char vars being wiped from players when the zone is cleaned up while they're still in the zone.
local playersInZone = zone:getPlayers()
for _, player in pairs(playersInZone) do
xi.dynamis.resetPlayerVars(player, zoneId)
end- Entries in
dynamis_participants, anddynamis_instancesSQL tables aren't being cleaned up from what I can find.
|
|
||
| -- Always register first | ||
| -- luacheck: ignore 113 | ||
| local instanceID = RegisterDynamisInstance(zoneId, player:getID()) |
There was a problem hiding this comment.
Does this matter that you're passing the outside zone ID here vs the dynamis zone?
I affirm:
What does this pull request do?
Implementation of Era Dynamis as a full ID based system.
Zone TODOs:
Mobskills:
Zone Boss Mechanics: