Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add Zone ID #1528

Merged
merged 5 commits into from
Jul 2, 2020
Merged

Add Zone ID #1528

merged 5 commits into from
Jul 2, 2020

Conversation

quisquous
Copy link
Owner

This is for #1037.

I think the plan is:

  • land this
  • get Add zoneName to ChangeZone event ngld/OverlayPlugin#138 merged
  • wait for OverlayPlugin release
  • switch to using the new event type
  • add code in raidboss/oopsy to support zoneId
  • add documentation
  • switch raidboss/oopsy over to using zoneId
  • switch various other bits of code using zone names (e.g. lang)
  • remove use of zoneRegex from cactbot files (but don't remove support)

@@ -16787,7 +16787,7 @@ let gFisherData = {
'27509': 2,
'27510': 1,
'27511': 1,
'27512': 2,
'27512': 1,
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

😮

Copy link
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Look, I just run the scripts here.

@quisquous
Copy link
Owner Author

quisquous commented Jun 30, 2020

Any other opinions? Does this name shortening scheme seem reasonable?

The other thing I should mention is that there are a bunch of collisions here, some for CFC names and some for Territory names:

collision: UldahStepsOfNald: 130
collision: UldahStepsOfNald: 182
collision: NewGridania: 132
collision: NewGridania: 183
collision: MorDhona: 156
collision: MorDhona: 335
collision: Mist: 136
collision: Mist: 339
collision: ChocoboSquare: 388
collision: ChocoboSquare: 389
collision: ChocoboSquare: 390
collision: ChocoboSquare: 391
collision: SanctumOfTheTwelve: 392
collision: SanctumOfTheTwelve: 393
collision: ChocoboSquare: 417
collision: ChocoboSquare: 506
collision: EngageEnemyReinforcements: 543
collision: EngageEnemyReinforcements: 547
collision: AvoidEngagedTargets: 546
collision: AvoidEngagedTargets: 551
collision: Alexander: 505
collision: Alexander: 553
collision: TheFeast4On4Training: 525
collision: TheFeast4On4Training: 632
collision: TheFeast4On4Ranked: 527
collision: TheFeast4On4Ranked: 644
collision: MordionGaol: 176
collision: MordionGaol: 728
collision: TheDomanEnclave: 682
collision: TheDomanEnclave: 739
collision: TheInterdimensionalRift: 724
collision: TheInterdimensionalRift: 756
collision: TheDomanEnclave: 759
collision: HeavenOnHigh: 770
collision: HeavenOnHigh: 771
collision: HeavenOnHigh: 772
collision: HeavenOnHigh: 773
collision: HeavenOnHigh: 774
collision: HeavenOnHigh: 775
collision: HeavenOnHigh: 780
collision: HeavenOnHigh: 782
collision: HeavenOnHigh: 783
collision: HeavenOnHigh: 784
collision: HeavenOnHigh: 785
collision: TheInterdimensionalRift: 807
collision: TheInterdimensionalRift: 808
collision: TheInterdimensionalRift: 812
collision: ThePrimaVistaTiringRoom: 735
collision: ThePrimaVistaTiringRoom: 828
collision: TheGoldSaucer: 144
collision: TheGoldSaucer: 832
collision: Lakeland: 813
collision: Lakeland: 877
collision: LyheMheg: 889
collision: LyheMheg: 890
collision: LyheMheg: 891
collision: LyheMheg: 892
collision: LeapOfFaith: 792
collision: LeapOfFaith: 899
collision: TheDiadem: 514
collision: TheDiadem: 901
collision: FrondalesHomeForFriendlessFoundlings: 611
collision: FrondalesHomeForFriendlessFoundlings: 921

Mostly I'm thinking that it's ok to punt on all of these, and if anybody ever needs to know where Frondale's Home For Friendless Foundlings is we can hardcode the script with which id is the right one.

@JLGarber
Copy link
Collaborator

Are those Heaven On High instances actually the ten sets of floors plus the roof, as it looks? If so, it might be worth supporting those just because combat can occur there? I guess the same would go for the Diadem, but that's close enough to open-world content that it's probably unnecessary.

On the StartRegexes for fights.js, is there a reason those haven't been updated to use 15/16 log lines rather than the game lines they're currently using? (Or is it "that's where it was and gathering the data isn't always easy"? It also took me a moment to remember why Kefka is special-cased.)

Other than that, I'm happy with the direction chosen here. I think this will be a good step forward for reducing translation burdens.

Copy link
Owner Author

@quisquous quisquous left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

On the StartRegexes for fights.js, is there a reason those haven't been updated to use 15/16 log lines rather than the game lines they're currently using? (Or is it "that's where it was and gathering the data isn't always easy"? It also took me a moment to remember why Kefka is special-cased.)

No, it's just old, and it only matters to pull counter (and maybe the title goes to the dps meter). They could probably all be dropped at this point because there's auto-pull counter. I don't think it's worth the complexity any more.

'TheOrphansAndTheBrokenBlade': 715,
'ThePalaceOfTheDead': 570,
'ThePalaceOfTheDeadFloors101_110': 598,
'ThePalaceOfTheDeadFloors111_120': 599,
Copy link
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Are those Heaven On High instances actually the ten sets of floors plus the roof, as it looks? If so, it might be worth supporting those just because combat can occur there?

Yes, given that the palace of the dead has unique names for each floor but Heaven on High does not, it seems likely all those collisions are the Heaven on High floors. Do you have ids for these? Maybe this is a TODO followup sort of thing?

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No, I certainly don't. I was just asking because of the coincidence of 11 collisions. Definitely put a TODO in there. I know some of my static members might be going in there in the next week, I'll grab a log if they do.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

how do you get this list @quisquous ?
In ContentFinderConditions for example, they are all labeled correcty (e..g ID 540 would be Heaven-on-High (Floors 1-10))

Copy link
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The ids here are TerritoryType.ID. For example, uwu is:

777,"w1fz","ffxiv/wil_w1/fld/w1fz/level/w1fz",1,"???","","Ultimacy","w1fz/00","LoadingImage#1",2,17,539,False,26,False,0,True,False,False,False,,,,,"QuestBattle#0","",-1,292,-1,False,2,0,0,0,False,False,0,False,False.

The 539 there refers to ContentFinderCondition.ID, e.g.

539,"w1fz","w1fz",1,"InstanceContent#30067",False,2,0,0,"Disciples of War or Magic","ContentMemberType#3",1,0,0,,0,70,70,0,375,False,False,False,False,False,0,False,True,True,False,False,False,True,False,False,False,"the Weapon's Refrain (Ultimate)","Ultimate Raids",0,,1002,"ui/icon/112000/112296.tex",,-1,False,False,False,False,False,False,False,False,False,False,False,False,False,False,False,False,False,False,False,False,False,False,False,False,False,False,False,False,False,False,False,False,False,False,False,False,False,False,False

One example of Heaven-on-High in TerritoryType is:

770,"e3c1","ex2/02_est_e3/cnt/e3c1/level/e3c1",1,"Othard","Othard","Heaven-on-High","","LoadingImage#10",2,31,0,False,0,False,0,True,False,False,False,,,,,"QuestBattle#0","",-1,313,-1,False,2,0,0,0,False,False,0,False,False

The value that is 539 from uwu is 0 in all of the HOH lines. I don't know how to get from that line to 540 in ContentFinderCondition.

Copy link
Contributor

@Akurosia Akurosia Jul 1, 2020

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You could link TerritoryType["Name"] e3c1 to ContentFinderCondition["TerritoryType"] e3c1

ContentFinderCondition
540,"dd002_001","e3c1",1,"InstanceContent#60021",False,2,0,0,"Any Disciple of War or Magic (excluding limited jobs)","ContentMemberType#11",0,0,1,"Knocking on Heaven's Door",0,61,0,0,0,True,True,True,False,False,0,False,False,True,False,False,False,True,False,False,False,"Heaven-on-High (Floors 1-10)","Deep Dungeons",0,,0,"ui/icon/112000/112298.tex",,-1,False,False,False,False,False,False,False,False,False,False,False,False,False,False,False,False,False,False,False,False,False,False,False,False,False,False,False,False,False,False,False,False,False,False,False,False,False,False,False

TerritoryType
770,"e3c1","ex2/02_est_e3/cnt/e3c1/level/e3c1",1,"Othard","Othard","Heaven-on-High","","LoadingImage#10",2,31,0,False,0,False,0,True,False,False,False,,,,,"QuestBattle#0","",-1,313,-1,False,2,0,0,0,False,False,0,False,False

Copy link
Owner Author

@quisquous quisquous Jul 2, 2020

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ok, using the territory name isn't perfect either, because they're not unique, but I can use that as a backup if the id isn't there. Thanks for pointing that out!!

That gives the following:

diff --git a/resources/zone_id.js b/resources/zone_id.js
index 53db82e2..d7a559ee 100644
--- a/resources/zone_id.js
+++ b/resources/zone_id.js
@@ -11,6 +11,7 @@ const ZoneId = {
   'ASleepDisturbed': 914,
   'ASpectacleForTheAges': 533,
   'AccrueEnmityFromMultipleTargets': 540,
+  'AirForceOne': 832,
   'AkadaemiaAnyder': 841,
   'AkhAfahAmphitheatreExtreme': 378,
   'AkhAfahAmphitheatreHard': 377,
@@ -77,6 +78,11 @@ const ZoneId = {
   'CentralAzysLla': 507,
   'CentralShroud': 148,
   'CentralThanalan': 141,
+  'ChocoboRaceCostaDelSol': 389,
+  'ChocoboRaceSagoliiRoad': 390,
+  'ChocoboRaceTranquilPaths': 391,
+  'ChocoboRaceTutorial': 417,
+  'ChocoboSquare': 388,
   'CinderDrift': 897,
   'CinderDriftExtreme': 912,
   'CloudNine': 429,
@@ -148,6 +154,7 @@ const ZoneId = {
   'FlickingSticksAndTakingNames': 219,
   'FortempsManor': 433,
   'Foundation': 418,
+  'FourPlayerMahjongKuitanDisabled': 831,
   'Gangos': 915,
   'Halatali': 162,
   'HalataliHard': 360,
@@ -159,6 +166,17 @@ const ZoneId = {
   'HealMultipleAllies': 550,
   'HeartOfTheCreator': 588,
   'HeartOfTheSworn': 210,
+  'HeavenOnHigh': 780,
+  'HeavenOnHighFloors11_20': 771,
+  'HeavenOnHighFloors1_10': 770,
+  'HeavenOnHighFloors21_30': 772,
+  'HeavenOnHighFloors31_40': 782,
+  'HeavenOnHighFloors41_50': 773,
+  'HeavenOnHighFloors51_60': 783,
+  'HeavenOnHighFloors61_70': 774,
+  'HeavenOnHighFloors71_80': 784,
+  'HeavenOnHighFloors81_90': 775,
+  'HeavenOnHighFloors91_100': 785,
   'HellsKier': 810,
   'HellsKierExtreme': 811,
   'HellsLid': 742,
@@ -191,6 +209,7 @@ const ZoneId = {
   'LimsaLominsaUpperDecks': 128,
   'LongLiveTheQueen': 298,
   'LotusStand': 205,
+  'LovmMasterTournament': 506,
   'LovmPlayerBattleNonRp': 591,
   'LovmPlayerBattleRp': 589,
   'LovmTournament': 590,
@@ -315,6 +334,7 @@ const ZoneId = {
   'TheDiademHard': 515,
   'TheDiademHuntingGrounds': 625,
   'TheDiademHuntingGroundsEasy': 624,
+  'TheDiademTrialsOfTheFury': 630,
   'TheDiademTrialsOfTheMatron': 656,
   'TheDragonsNeck': 142,
   'TheDravanianForelands': 398,
@@ -350,6 +370,7 @@ const ZoneId = {
   'TheFringes': 612,
   'TheGhimlytDark': 793,
   'TheGoblet': 341,
+  'TheGoldSaucer': 144,
   'TheGrandCosmos': 884,
   'TheGreatGubalLibrary': 416,
   'TheGreatGubalLibraryHard': 578,
@@ -378,7 +399,6 @@ const ZoneId = {
   'TheLostCanalsOfUznair': 712,
   'TheLostCityOfAmdapor': 363,
   'TheLostCityOfAmdaporHard': 519,
-  'TheMandervilleTables': 831,
   'TheMinstrelsBalladHadessElegy': 885,
   'TheMinstrelsBalladNidhoggsRage': 566,
   'TheMinstrelsBalladShinryusDomain': 730,

There's still a couple dozen zones that have collisions, but I think that's probably ok? It'd be pretty easy to sort out the real ids for Uldah, New Gridania, Mor Dhona, etc if anybody wanted them.

This is "technically" TerritoryType.ID, but "zone id" is a lot shorter,
matches zoneRegex, and also matches the ffxiv parsing plugin.
@quisquous quisquous merged commit 5fa47b6 into master Jul 2, 2020
@quisquous quisquous deleted the zoneid branch July 2, 2020 21:02
quisquous added a commit that referenced this pull request Jul 2, 2020
This is a follow-up fix from #1528.  OOPS
quisquous added a commit that referenced this pull request Jul 3, 2020
quisquous added a commit that referenced this pull request Jul 7, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants