These forums have been archived and are now read-only.

The new forums are live and can be found at https://forums.eveonline.com/

EVE Technology Lab

 
  • Topic is locked indefinitely.
 

Are agents and storyline agents relationships in the data dump

Author
Caius Sivaris
Dark Nexxus
S0ns Of Anarchy
#1 - 2013-12-09 15:04:22 UTC
Hello,

I'm trying to get from the datadump, given a regular mission agent, to which storyline agent it will send you. The information is not obviously in the agtAgents table, nor could I guess in which other table the relationship could be hidden.

I semi suspect it's not in the DB but calculated at runtime, as I got the storyline agent for an agent I use change.

Anyone got better luck finding that information?
Elmore Jones
New Eden Mining Organisation
The Craftsmen
#2 - 2013-12-09 17:33:44 UTC
I think you'd need to work that out in code. When a story line flags up (correct me if my assumption is wrong) the game will send you to the nearest story agent for that faction + corp. If the corp has no story agents then just the nearest story agent of that faction.

If you just want occasional references you could list the story agents per corp/faction and then check for closest with dotlan's navigation functions. For programmatic checks I'd suggest you look at Navbot source code for a C# implementation of jumps in route (including security filter). The actual definitions are found in EveMarketTool > Code > map.cs and are made to lookup from csv file resources from the datadump. It's only a small amount of work to change it to reading SQL though (the update to NavBot I'm working on includes this already).

+++ Reality Error 404 - Reboot Cosmos +++

Paka-Tegat Birshiri
Paragon Material Extraction and Processing
#3 - 2013-12-09 21:53:55 UTC
It's not, unfortunately. However, there's no mystery as to how the game picks storyline agents, so you can create it programmatically yourself. The storyline "partner" algorithm is such:

When you complete the 16th mission (all of which are the same type, for the same faction):

  1. Filter to only agents that are a member of the 16th agents faction.

    • Note #1: Corp has nothing to do with it. For example, Emperor Family has storyline agents. However, if you work for Sadhqish Sanerih or Vamdigeen Ahain in Mimen, your storyline mission comes from Gatsya Tagana, a Zoar & Sons agent in Mimen.
    • Note #2: The first 15 missions have no bearing on Storyline agent selection. I can run 15 L3 Amarr distribution missions for 15 different agents, and if I run the 16th with Sadhqish in Mimen, my storyline will come from Gatsya. (I actually forget what happens if I run, say 15 Amarr distribution missions and 1 Caldari distribution mission... I think the counters are separate?)
    • Note #3: The Level and Division of the Storyline Agent has no bearing on the Level and Division of the storyline missions given. If I run 16 L3 Amarr distribution missions, I get an L3 storyline mission. It could be courier, trade, or encounter, but it will be L3, regardless of the Storyline Agent's level.

  2. Find the nearest Storyline agent.

    • Note #4: If two agents are an equal distance away (only jumps are counted, so in our Mimen example, the distance is 0), the agent with the lower agentID has priority.

  3. If there is not already a pending storyline mission from that agent, offer storyline. If there is already a pending storyline mission from that agent, eliminate this agent and return to Step 2.

    • Note #5: This is a crafty way to get storyline missions from your desired corp, even if your desired corp isn't first in line. For example, if your desired corp would be the second agent in line, you'd do 16 missions, let the mission offer linger, and then do another 16. The second storyline offer (with the first one still in the journal) would come from your desired corp.



I have a simple webapp that can be used to find storyline partners... I used it once upon a time to grind standings on Trade Alts... a horrible, horrible experience, but it's how I know about Mimen. Unfortunately, it's really not optimized for any sort of traffic, so it's internal only, but I've code snippets that I can help with if you're struggling.
Rob Crowley
State War Academy
#4 - 2013-12-10 14:02:14 UTC
Paka-Tegat Birshiri wrote:
When you complete the 16th mission (all of which are the same type, for the same faction)
Last time I checked it was "same level, same faction", mission type had no relevance, so different mission types went on the same storyline counter as long as they were same level, same faction. I doubt that it has changed since then.

Quote:
(I actually forget what happens if I run, say 15 Amarr distribution missions and 1 Caldari distribution mission... I think the counters are separate?)
Yes, different factions have separate counters.

Quote:
Find the nearest Storyline agent.
I've always wondered: nearest to where? The location of the 16th agent, your location when you turn in the 16th mission or your location when you get the storyline notification?
Paka-Tegat Birshiri
Paragon Material Extraction and Processing
#5 - 2013-12-10 14:54:20 UTC  |  Edited by: Paka-Tegat Birshiri
Rob Crowley wrote:
SNIP

Quote:
Find the nearest Storyline agent.
I've always wondered: nearest to where? The location of the 16th agent, your location when you turn in the 16th mission or your location when you get the storyline notification?


Nearest to the location of the 16th agent.

However, just in case someone is reading this from a missions perspective instead of a technology perspective, the Storyline offer won't always pop up immediately after completing the 16th mission. I never quite figured out the trigger: Sometimes it was immediate, sometimes it took a few jumps, sometimes I was in the middle of the 1st mission of the next set of 16 when it would show up in the journal.

But in all cases, it was the nearest then lowest agentID agent to the location of the agent that had given me the 16th completed mission.

EDIT: One thing to note: Since agents in EVE are static, you only have to do the "storyline partner" calculation once, provided you cache the result. This makes reverse lookup doable once you blow a ton of CPU cycles figuring out partners: "Which agent Y do I need to run in order to get storyline missions from agent X?"