JavaScript is required to use Bungie.net

Форумы

впервые опубликовано в:BungieNetPlatform
4/1/2016 10:40:09 AM
6
There should be a specificActivityHash property (or something along those lines) which will return you the definition with all the possible skulls.
English

Публикуется на языке:

 

Играйте достойно. Потратьте минутку на ознакомление с нашими правилами, прежде чем отправлять вашу запись. Отмена Изменить Создать боевую группу Опубликовать

  • I have tried using the manifest on the specificActivityHash, which is equal to the regular activityHash from GetAdvisors. This is the code for the nightfall activity from GetAdvisors: [spoiler]"nightfall": { "activityBundleHash": 1749151224, "specificActivityHash": 2989915775, "expirationDate": "2016-04-05T09:00:00Z", "tiers": [ { "activityHash": 2989915775, "specificActivityHash": 2989915775, "isCompleted": false, "isSuccessful": false, "activeRewardIndexes": [ 0 ], "skullIndexes": [ 0, 1, 8, 9, 18 ] }[/spoiler] When I take the activityHash and call the Manifest/Activity with the hash value, this is the response I get: [spoiler]{{ "Response": { "data": { "requestedId": 2989915775, "activity": { "activityHash": 2989915775, "activityName": "The Undying Mind", "activityDescription": "An ancient Mind, feared by the Vex themselves, hides among the channels of the Black Garden. Find this machine and end its existence.", "icon": "/img/theme/destiny/icons/node_strike_nightfall.png", "releaseIcon": "/img/misc/missing_icon.png", "releaseTime": 0, "activityLevel": 42, "completionFlagHash": 4149837810, "activityPower": 0.0, "minParty": 1, "maxParty": 3, "maxPlayers": 3, "destinationHash": 4072959335, "placeHash": 2809578934, "activityTypeHash": 575572995, "tier": 1, "pgcrImage": "/img/theme/destiny/bgs/pgcrs/strike_undying_mind.jpg", "rewards": [], "skulls": [], "isPlaylist": false, "hash": 2989915775, "index": 0 } } }, "ErrorCode": 1, "ThrottleSeconds": 0, "ErrorStatus": "Success", "Message": "Ok", "MessageData": {} }}[/spoiler]

    Публикуется на языке:

     

    Играйте достойно. Потратьте минутку на ознакомление с нашими правилами, прежде чем отправлять вашу запись. Отмена Изменить Создать боевую группу Опубликовать

  • Ah, so what you'll really want to do in this case is take the activityBundleHash, use that hash to lookup the activity in the Activities definitions database, and use the skullIndexes against that data. The reason why it is this way is complicated, for two reasons: one, that the notion of "activity bundles" became something nearly meaningless which makes the contracts confusing. Two, because where you have to go to look up skull indexes is different for every advisor. 1) Activity bundles When we first defined the advisor contracts, we pictured them being rendered in views similar to the game director. (this is also why the pivot on this data is super awkward, where you have to dig into activities data to find out whether they happen to be Nightfall activities for example). Activity Bundles were an attempt to provide information about logically grouped activities in the game UI, which was ultimately something that couldn't be maintained as the game became more complex and the Director's data began to be used in more creative and less data mine-able ways. Their hashes still represent the "canonical" activity ID of the activity as it appears in the in-game director, however: and as such, you can use those hashes to look up the actual activity's definition in the Activity definitions database... though often the "canonical" activity doesn't provide what you want. (for example, it may merely be a playlist, when you want to know the specific activity within that playlist that will be launched) However, both the "canonical" activity and the "specific" activity are needed, because... 2) Skull information can be sourced from a variety of places Our definitions are sourced directly from game data, and sometimes designers choose to put this kind of skull information on specific activities... other times they choose to put it on the playlist. Still other times, they define it not in our content but rather in code related to the event itself. (This latter situation is the reason why the "Scripted skull definitions" exist, and is why Prison of Elders advisors refer to scripted skull hashes rather than skull indexes!) Conclusion: This will be getting better soon! (tm) Part of the work we've been doing while getting ready for the April release has actually been to make an attempt at standardizing the output of some of this data, so you don't have to do as much guessing. When I first created the Advisor contracts, I didn't realize just how flexible that information was going to have to be and how much freedom the designers had to put this data in different locations, and the contracts suffer for it. The new contracts, which I will go into more detail on once they're solidified, will exist side-by-side with the old data: but it's going to provide a lot more of this information for you, so you won't have to guess about where to look to get the details.

    Публикуется на языке:

     

    Играйте достойно. Потратьте минутку на ознакомление с нашими правилами, прежде чем отправлять вашу запись. Отмена Изменить Создать боевую группу Опубликовать

  • Изменено (Spartain): 4/1/2016 8:41:39 PM
    Edit: incorrect, see VThorn's post. You need a second SQL Query on the DestinyScriptedSkullDefinition table to get info about the skulls. SELECT * FROM DestinyScriptedSkullDefinition WHERE id = aSkullIndex Curiosity getting me again.. @VThornheart how come the schema differs for the ids? Why indexes rather than the standard hash?

    Публикуется на языке:

     

    Играйте достойно. Потратьте минутку на ознакомление с нашими правилами, прежде чем отправлять вашу запись. Отмена Изменить Создать боевую группу Опубликовать

  • Aye, it's due to this: Our definitions are sourced directly from game data, and sometimes designers choose to put this kind of skull information on specific activities... other times they choose to put it on the playlist. Still other times, they define it not in our content but rather in code related to the event itself. (This latter situation is the reason why the "Scripted skull definitions" exist, and is why Prison of Elders advisors refer to scripted skull hashes rather than skull indexes!)

    Публикуется на языке:

     

    Играйте достойно. Потратьте минутку на ознакомление с нашими правилами, прежде чем отправлять вашу запись. Отмена Изменить Создать боевую группу Опубликовать

  • Изменено (VThornheart): 4/1/2016 8:29:42 PM
    Ah yeah, so ScriptedSkullDefinitions are currently only meaningful to Prison of Elders skulls. I go into a bit more detail above as to how this came to pass, but whenever you see a skullIndex you should use the skulls associated with one of the activities on the Advisor data: if we ever refer to ScriptedSkulldefinitions, they will be exclusively referred to by hash. The reason why we do this is because ScriptedSkullDefinitions are globally uniquely identifiable by hash, whereas the "normal" skulls are defined per activity, and can theoretically be different on every Activity (thus the hash would be relatively meaningless on a global level). In practice, Scripted Skulls and Activity skulls *appear* to be the same: but there's nothing stopping the game designers from pivoting on that and making them entirely different, due to the different ways in which they source their data. Tomorrow they could turn POE skulls into entirely new skulls that you don't see anywhere else, and suddenly the two wouldn't be able to be matched up coincidentally as they are now. All of the awkwardness in how we refer to skulls is an attempt to protect ourselves from the possibility of that happening. With the new "Activity Advisors" that we'll be releasing sometime around the April release (details forthcoming, as they're still in flux even now), the advisors will never refer to either of them directly: instead, the current thought is that we'll pay the cost to send you the data already interpreted into strings and icons... so you won't have to know or care whether it came from Scripted Skulls, the Playlist, the specific Activity or a combination of those... you'll just get a list of icon paths and strings that you can render. Part of me hates that because it will be sending redundant data, and part of me likes that you won't have to guess at how you should access and use this information. It's still in flux though... an alternative implementation I am currently considering is whether we should go ahead and make yet another fabricated set of Definitions that combine these concepts, and you'd index into those... but you'd always have one explicit set of "Advisor Activity Definitions" to index into rather than having to magically know where to look. My only hesitation on this is that I have come to regret nearly every definition-based abstraction of the underlying game system that I have ever made ("Special Events", and "Activity Bundles" come immediately to mind, and I regret them both in their own ways), and if I don't think this through carefully we'll just have another regrettable abstraction to something that turned out to be too complex and subject to change to abstract. There's also the problem of whether this can actually even be abstracted in such a way and still let us figure out at runtime which pieces of the definition are still relevant, or whether this abstraction will really just result in as many headaches for you as you currently have. I'm running through this space literally as we speak, so it's close on my mind. Anyways, that's what's in my head at the moment. I will keep you all posted.

    Публикуется на языке:

     

    Играйте достойно. Потратьте минутку на ознакомление с нашими правилами, прежде чем отправлять вашу запись. Отмена Изменить Создать боевую группу Опубликовать

  • After further investigation, I've decided that we're not going the Definition-driven route, at least not yet. But work on this feature continues, I'll let you all know when this gets somewhere that we can share with you what it'll look like.

    Публикуется на языке:

     

    Играйте достойно. Потратьте минутку на ознакомление с нашими правилами, прежде чем отправлять вашу запись. Отмена Изменить Создать боевую группу Опубликовать

У вас нет прав для просмотра этих материалов.
;
preload icon
preload icon
preload icon