Jump to content

Trip Calculator


Recommended Posts

I've created a javascript routine that figures out the shortest route between two sectors. It does take in account for profession, example a TT is allowed passage through high earth.

No idea if this has been done before

http://www.bhughes.com/destination.htm

There are missing sectors, the map I used as input was old. I'm willing to add the rest in and maintain the code if there is interest.

  • Upvote 1
Link to comment
Share on other sites

I tried the flash one, I hadn't seen it before.

I think it's too busy, it's hard to read, the resizing and zoom seem a bit clumsy

The visually plotted course is hard to follow without dragging the map around to see it all

I like mine better, not because I'm full of myself, but because it is as simple as possible, couldn't be any easier to use and doesn't need graphics and loading of flash. The game is my glitter.

Another thing I don't like about the flash one is the list of sectors doesn't prefix with their system name, e.g. aragoth - fenris

I'm sure the firefox problem can be solved, probably just a matter of syntax. I can research that.

I can remove my copyright and link to my website as well, not a problem. I don't even have to host the HTML page, it can be a part of the enb-emulator web.

Link to comment
Share on other sites

nStartID=listFrom.options(listFrom.selectedIndex).value;

should be

nStartID=listFrom.options[listFrom.selectedIndex].value;

options is array, not function. there is many places where this needs the be changed

edit: i'm no javascript expect, but common practise is to use var listFrom=document.getElementById('listFrom'); before you use it.

I see you using <select id=listFrom> (w/o quotes, right way would be <select id="listFrom">) so listFrom is automatically linked to that object. i call it a fluke unless you can point me some sources that explain it.

Link to comment
Share on other sites

bhuges, i have an old tool here called "Travelmate", which was (is) a windows tool for EnB-route calculation.

Its taking also wormhole-skill/level into consideration for calculation.

If you clue me into your algo u using for calculation, im willing to develope a new windows tool.

Link to comment
Share on other sites

bhuges, i have an old tool here called "Travelmate", which was (is) a windows tool for EnB-route calculation.

Its taking also wormhole-skill/level into consideration for calculation.

If you clue me into your algo u using for calculation, im willing to develope a new windows tool.

I never could get it to work with the maps. I always get a "Map is not currently available" message. Could you upload them somewhere (e.g. to the forum) please?

Link to comment
Share on other sites

Updated script with all classes (TS,JS and PP) added new sectors and links according to ST4. I'm not only sure about link Altair III and Aganju. I found in some map it should be Progen Combinate only. Had no time to test it even I do have PP. I did add option for groups to avoid all restricted paths. Here is complete script:

<HTML>
<HEAD>
<script language=javascript>
var m_arrBig=new Array();
m_arrBig[0]=new AreaItem(0,'Alpha Centauri');
m_arrBig[1]=new AreaItem(1,'Antares');
m_arrBig[2]=new AreaItem(2,'Aquitaine');
m_arrBig[3]=new AreaItem(3,'Aragoth');
m_arrBig[4]=new AreaItem(4,'Beta Hydri');
m_arrBig[5]=new AreaItem(5,'Capella');
m_arrBig[6]=new AreaItem(6,'Deneb');
m_arrBig[7]=new AreaItem(7,'Gallina');
m_arrBig[8]=new AreaItem(8,'Sirius');
m_arrBig[9]=new AreaItem(9,'Smugglers Run');
m_arrBig[10]=new AreaItem(10,'Sol');
m_arrBig[11]=new AreaItem(11,'Tau Ceti');
m_arrBig[12]=new AreaItem(12,'Vega');
m_arrBig[13]=new AreaItem(13,'61 Cygni');
m_arrBig[14]=new AreaItem(14,'Altair');
m_arrBig[15]=new AreaItem(15,'Proxima Centauri');
m_arrBig[16]=new AreaItem(16,'Castor');
function AreaItem(nID,sName)
{
 this.id=nID;
 this.name=sName;
}
var m_arrSector=new Array();
// Alpha Centauri
m_arrSector[00]=new SectorItem(00,0,'T','A','Witberg');
m_arrSector[01]=new SectorItem(01,0,'T','A','Zweihander');
m_arrSector[02]=new SectorItem(02,0,'T','A','Zweihander Planet');
m_arrSector[79]=new SectorItem(79,0,'T','A','der Todesengel');
// Antares
m_arrSector[03]=new SectorItem(03,1,'J','A','Antares Frontier');
// Aquitanie
m_arrSector[04]=new SectorItem(04,2,'A','A','Ardus');
// Aragoth
m_arrSector[05]=new SectorItem(05,3,'T','A','Aragoth Prime');
m_arrSector[06]=new SectorItem(06,3,'T','A','Fenris');
m_arrSector[07]=new SectorItem(07,3,'T','A','Freya');
m_arrSector[08]=new SectorItem(08,3,'T','A','Jotunheim');
m_arrSector[09]=new SectorItem(09,3,'T','A','Muspelheim');
m_arrSector[10]=new SectorItem(10,3,'T','A','Odin Rex');
m_arrSector[11]=new SectorItem(11,3,'T','A','Odins Belt');
m_arrSector[12]=new SectorItem(12,3,'T','A','Nifleheim Cloud');
m_arrSector[13]=new SectorItem(13,3,'T','A','Ragnarok');
m_arrSector[14]=new SectorItem(14,3,'T','A','Valkyrie Twins');
m_arrSector[15]=new SectorItem(15,3,'T','A','Varens Girdle');
// Beta Hydri
m_arrSector[16]=new SectorItem(16,4,'T','A','Carpenter');
m_arrSector[17]=new SectorItem(17,4,'T','A','Cooper');
m_arrSector[18]=new SectorItem(18,4,'T','A','Glenn');
m_arrSector[19]=new SectorItem(19,4,'T','A','Glorys Orbit');
m_arrSector[20]=new SectorItem(20,4,'T','A','Grissom');
m_arrSector[21]=new SectorItem(21,4,'T','A','Grissom Planet');
m_arrSector[22]=new SectorItem(22,4,'T','A','Shepard');
m_arrSector[23]=new SectorItem(23,4,'T','A','Slayton');
// Capella
m_arrSector[24]=new SectorItem(24,5,'J','A','Kailaasa');
m_arrSector[25]=new SectorItem(25,5,'J','A','Yokan');
m_arrSector[26]=new SectorItem(26,5,'J','A','Vishaos Cove');
m_arrSector[27]=new SectorItem(27,5,'J','A','Kitiaras Veil');
m_arrSector[28]=new SectorItem(28,5,'J','A','Dahin');
m_arrSector[29]=new SectorItem(29,5,'J','A','Dahin Planet');
// Deneb
m_arrSector[30]=new SectorItem(30,6,'P','A','Roc');
// Gallina
m_arrSector[31]=new SectorItem(31,7,'P','A','Lagarto');
m_arrSector[32]=new SectorItem(32,7,'P','A','Endriago');
m_arrSector[33]=new SectorItem(33,7,'P','A','Endriago Planet');
m_arrSector[34]=new SectorItem(34,7,'P','A','Lagarto Moon');
// Sirius
m_arrSector[35]=new SectorItem(35,8,'J','A','Xipe Totec');
m_arrSector[36]=new SectorItem(36,8,'J','A','Swooping Eagle');
m_arrSector[37]=new SectorItem(37,8,'J','A','Swooping Eagle Planet');
// Smugglers Run
m_arrSector[38]=new SectorItem(38,9,'A','RD','Paramis');
m_arrSector[80]=new SectorItem(80,9,'A','RD','Blackbears Wake');
// Sol
m_arrSector[39]=new SectorItem(39,10,'T','A','Earth');
m_arrSector[40]=new SectorItem(40,10,'J','A','Jupiter');
m_arrSector[41]=new SectorItem(41,10,'J','JD','Europa');
m_arrSector[42]=new SectorItem(42,10,'J','JE','Io');
m_arrSector[43]=new SectorItem(43,10,'T','A','Asteroid Belt Gamma');
m_arrSector[44]=new SectorItem(44,10,'T','A','Asteroid Belt Beta');
m_arrSector[45]=new SectorItem(45,10,'T','A','Asteroid Belt Alpha');
m_arrSector[46]=new SectorItem(46,10,'T','A','Saturn');
m_arrSector[47]=new SectorItem(47,10,'T','A','Akerons Gate');
m_arrSector[48]=new SectorItem(48,10,'P','PS','Mars Beta');
m_arrSector[49]=new SectorItem(49,10,'P','PW','Mars Alpha');
m_arrSector[50]=new SectorItem(50,10,'P','A','Mars');
m_arrSector[51]=new SectorItem(51,10,'T','TE','Luna');
m_arrSector[52]=new SectorItem(52,10,'T','TT','High Earth');
// new Sol starting sectors for JS,TS and PP
m_arrSector[70]=new SectorItem(70,10,'P','PP','Mars Gamma');
m_arrSector[71]=new SectorItem(71,10,'J','PP','Ganymede');
m_arrSector[72]=new SectorItem(72,10,'T','TS','Equatorial Earth');
// new Sol systems
m_arrSector[73]=new SectorItem(73,10,'T','A','Venus');
m_arrSector[74]=new SectorItem(74,10,'T','A','Ceres');
m_arrSector[75]=new SectorItem(75,10,'T','A','Mercury');
m_arrSector[76]=new SectorItem(76,10,'T','A','Pluto and Charon');
m_arrSector[77]=new SectorItem(77,10,'T','A','Uranus');
m_arrSector[78]=new SectorItem(78,10,'T','A','Neptune');
// Tau Ceti
m_arrSector[53]=new SectorItem(53,11,'T','A','New Edinburgh');
m_arrSector[54]=new SectorItem(54,11,'T','A','Inverness');
m_arrSector[55]=new SectorItem(55,11,'T','A','Arduinne');
m_arrSector[56]=new SectorItem(56,11,'T','A','Arduinne Planet');
m_arrSector[57]=new SectorItem(57,11,'T','A','Inverness Planet');
// Vega
m_arrSector[58]=new SectorItem(58,12,'P','A','Primus');
m_arrSector[59]=new SectorItem(59,12,'P','A','Primus Planet');
m_arrSector[60]=new SectorItem(60,12,'P','A','Tarsis');
// 61 Cygni
m_arrSector[61]=new SectorItem(61,13,'T','A','Aganju');
// Altair
m_arrSector[62]=new SectorItem(62,14,'P','A','Altair III');
m_arrSector[63]=new SectorItem(63,14,'P','A','Nastrand Vor');
m_arrSector[64]=new SectorItem(64,14,'P','A','Nastrand Vor Planet');
// Proxima Centauri
m_arrSector[65]=new SectorItem(65,15,'T','A','Adriel Prime');
m_arrSector[66]=new SectorItem(66,15,'T','A','Margesi');
// Castor
m_arrSector[67]=new SectorItem(67,16,'J','A','Ishuan');
m_arrSector[68]=new SectorItem(68,16,'J','A','Menorb');
m_arrSector[69]=new SectorItem(69,16,'J','A','Ishuan Planet');
function SectorItem(nID,nBID,sAlly,sOnly,sName)
{
 this.id=nID;              // sector id #
 this.system_id=nBID;      // system id # 
 this.name=sName;          // text name of sector
 this.alliance=sAlly;      // which alliance, terrain, progen, jenquai
 this.restriction=sOnly;   // A=All etc
 this.links=new Array();   // list of links to other sectors
 this.depth=0;             // used during search for shortest path
 this.next_sector=-1;      // used for final path mapping and display
} 
/////////////////////////
function linkSectors()
{
linkItem(0,1);   // witberg - Zweihander
linkItem(1,2);   // zwei - zwei planet
linkItem(0,7);   // witberg - freya
linkItem(51,1);  // luna, zwei
linkItem(7,47);  // freya - akeron's
linkItem(7,12);  // freya - nif cloud
linkItem(7,8);   // freya - jotunheim
linkItem(8,10);  // jotunheim - odin rex
linkItem(10,11); // odin rex - odins belt
linkItem(11,9);  // odins belt - muspelheim
linkItem(9,5);   // muspelheim - aragoth prime
linkItem(5,15);  // aragoth prime - varens girdle
linkItem(5,14);  // aragoth prime - valkyrie twins
linkItem(15,6);  // varens girdle - fenris
linkItem(14,6);  // valkyrie girdle - fenris
linkItem(29,28); // planet dahin, dahin
linkItem(28,24); // dahin, kailaasa
linkItem(25,24); // kailaasa, yokan
linkItem(28,27); // kitara's veil, dahin
linkItem(27,26); // kitara's veil, vishao's cove
linkItem(26,3);  // vishao's cove, Antares Frontier
linkItem(25,36); // yokan, swooping eagle
linkItem(36,37); // swoop, planet swoop
linkItem(36,35); // swoop, xipe totec
linkItem(35,80); // xipe, smuggler
linkItem(36,18); // swoop, glenn
linkItem(36,41); // swoop, europa (JD)
linkItem(18,16); // glenn, carpenter
linkItem(18,23); // glenn, stayton
linkItem(23,19); // stayton, glory
linkItem(21,20); // grissom planet, grissom
linkItem(20,17); // grissom, cooper
linkItem(20,80); // grissom, smuggler
linkItem(20,22); // grissom, shepard
linkItem(16,22); // carpenter, shepard
linkItem(18,46); // glenn, saturn
linkItem(16,53); // carpenter, new edinburgh
linkItem(53,52); // new edinburgh, high earth (TT)
linkItem(53,54); // new edinburgh, inverness
linkItem(54,57); // inverness, inverness planet
linkItem(54,61); // inverness, aganju (61 cygni)
linkItem(54,55); // inverness, arduinne
linkItem(55,56); // arduinne, arduinne planet
linkItem(0,4);   // witburg, ardus (aquitaine)
linkItem(11,31); // odin's belt, lagarto
linkItem(31,34); // lagarto, lagarto moon
// linkItem(33,34); // endriago, lagarto moon (one way)
linkItem(31,32); // lagarto, endriago
linkItem(32,33); // endriago, endriago planet
linkItem(32,58); // endriago, primus
linkItem(31,48); // lagarto, mars beta (PS)
linkItem(31,30); // lararto, roc (deneb)
linkItem(59,58); // primus, primus planet
linkItem(58,60); // primus, tarsis
linkItem(60,49); // tarsis, mars alpha (PW)
linkItem(40,41); // jupiter, europa (JD)
linkItem(40,42); // jupiter, io (JE)
linkItem(40,46); // jupiter, saturn
linkItem(39,45); // earth, asteroid alpha
linkItem(39,52); // earth, high earth (TT)
linkItem(39,51); // earth, luna (TE)
linkItem(45,46); // alpha, saturn
linkItem(45,44); // alpha, beta
linkItem(44,43); // beta, gamma
linkItem(44,46); // beta, saturn
linkItem(43,50); // gamma, mars
linkItem(43,46); // gamma, saturn
linkItem(50,48); // mars, mars beta (PS)
linkItem(50,49); // mars, mars alpha (PW)
linkItem(46,47); // saturn, akeron's gate
linkItem(62,63); // altair III, Nastrand Vor
linkItem(63,64); // Nastrand Vor, Nastrand Vor Planet
linkItem(32,62); // Endriago, Altair III
linkItem(61,62); // Aganju, Altair III
linkItem(7,65); // Freya, Adriel Prime
linkItem(65,66); // Adriel Prime, Margesi
linkItem(25,68); // Yokan, Menorb
linkItem(68,67); // Menorb, Ishaun
linkItem(67,69); // Ishaun, Ishaun gas giant
linkItem(39,72); // Earth, Equatorial Earth
linkItem(72,66); // Equatorial Earth, Margesi
linkItem(40,71); // Jupiter, Ganymede
linkItem(71,67); // Ganymede, Ishuan
linkItem(50,70); // Mars, Mars Gamma
linkItem(70,62); // Mars Gamma, Altair III
linkItem(45,73); // ABA, Venus
linkItem(73,74); // Venus, Ceres
linkItem(73,75); // Venus, Mercury
linkItem(75,76); // Mercury, Pluto
linkItem(76,77); // Pluto, Uranus
linkItem(76,47); // Pluto, Akeron's Gate
linkItem(77,78); // Uranus, Neptune
linkItem(77,46); // Uranus, Saturn
linkItem(00,79); // Witberg, der Todesengel
linkItem(38,10); // Paramis, Odin Rex
linkItem(38,80); // Paramis, Blackbeards's Wake
linkItem(80,09); // Blackbeards's Wake, Muspelheim
linkItem(80,54); // Blackbeards's Wake, Iverness
}
///////////////////////////////////////
function linkItem(nSect1ID,nSect2ID)
{
 s1=m_arrSector[nSect1ID];
 s2=m_arrSector[nSect2ID];
 s1.links[s1.links.length]=new linkEntry(nSect2ID);   // linked lists of connecting sectors
 s2.links[s2.links.length]=new linkEntry(nSect1ID);
}
/////////////////////////////////////////////////////////
function linkEntry(nSectID)
{
 this.sector_id=nSectID;       // sector that is linked
 this.path_count=0;            // how far away destination is from here
}
/////////////////////////////////////////////////////////
function loadBody()
{
 var i;
 var h1;
 var h2;
 linkSectors();
 h1='<SELECT id="listFrom">';
 h2='<SELECT id="listTo">';
 for (i=0;i<m_arrSector.length;i++)
  {
   h1+='<OPTION VALUE='+m_arrSector[i].id+'>'+m_arrBig[m_arrSector[i].system_id].name+' -- '+m_arrSector[i].name+'</OPTION>';
   h2+='<OPTION VALUE='+m_arrSector[i].id+'>'+m_arrBig[m_arrSector[i].system_id].name+' -- '+m_arrSector[i].name+'</OPTION>';
  }
 h1+='</SELECT>';
 h2+='</SELECT>';
 spanFrom.innerHTML=h1;
 spanTo.innerHTML=h2;
}
///////////////////////////////////////////////////////////
var m_strProfession;  // This is TT, or TE etc.
var m_arrStack;       // The list of sectors from start to finish
///////////////////////////////////////////////////////////
function calcPath()
{
 var nStartID;
 var nFinishID;
 var nDepth;
 var s,i,j;
 for (i=0;i<m_arrSector.length;i++)
  {
   m_arrSector[i].depth=0;
   m_arrSector[i].next_sector=-1;
   for (j=0;j<m_arrSector[i].links.length;j++)    // reset path finding logic values 
    {
     m_arrSector[i].links[j].path_count=0;
    }
  }   
 nStartID=document.all.listFrom.options[document.all.listFrom.selectedIndex].value;         // sector id 'from' drop down box
 nFinishID=document.all.listTo.options[document.all.listTo.selectedIndex].value;            // sector id 'to' drop down box
 m_strProfession=document.all.listProf.options[document.all.listProf.selectedIndex].text;   // profession text, TT etc
 if (nStartID==nFinishID)
  {
   alert('The limit does not exist!\n\n(you picked the same sector twice)');
   return;
  }
 nDepth=1;
 i=testPath(nStartID,nFinishID,nDepth); // go try to find the shortest path between start and finish
 if (i>0)              
  {
   m_arrStack=new Array();              // found a path, clear the display stack array
   showPath(nStartID,nFinishID);        // add sectors the display stack array
   s='<BR>Path For: '+m_strProfession+'<BR>';   // HTML to be displayed below the drop downs
  j=0;
   for (i=0;i<m_arrStack.length;i++)
    {
     s+='<BR>';
     s+=m_arrBig[m_arrSector[m_arrStack[i]].system_id].name+' - ';
     s+=m_arrSector[m_arrStack[i]].name;
     if (m_arrSector[m_arrStack[i]].restriction!='A') s+='   ['+m_strProfession+']';  // each item in stack represents the next sector to the destination
     j++;
    }
   if (j<24)
    {
     for (i=0;i<(24-j);i++)
      {
       s+='<br>';
      }
    }
   spanResult.innerHTML=s;   
  }
 else
  {
   alert('Path for '+m_strProfession+' from '+m_arrSector[nStartID].name+' to '+m_arrSector[nFinishID].name+' not found.');
  }
}
/////////////////////////////////////////////////////////////////////////
// This routine contains the primary logic to find the shortest route
// This is a recursive function, meaning it calls itself 
/////////////////////////////////////////////////////////////////////////
function testPath(a1,a2,nDepth) // returns how far out or 0 if not found
{
 var i1,a,nLen,i2,nHowFar;
 var t='';
 // if the routine has already tried this sector then depth will contain how far along it was when it did try
 // the trick is if the previously tried depth is greater than the current depth (passed as argument to 'testPath')
 // then the routine will attempt to find the destination again, because this time the route would be shorter.
 if (m_arrSector[a1].depth>0 && m_arrSector[a1].depth <= nDepth) return 0;  
 // right away the depth for this sector is now established, or possibly written over (see above)
 m_arrSector[a1].depth=nDepth;
 // If the profession cannot pass through this sector, e.g. progen warrior cannot pass through High Earth, then this route fails.
 if (m_arrSector[a1].restriction!='A')
  {
   if (m_arrSector[a1].restriction!=m_strProfession) // is this a restricted sector ?
     return 0;                                       // then this sector cannot be used as a pathway to the destination
  }                                                  // return of 0 means the calling "testPath" will have to try it's next link
 // now try each link in the sector's list of sectors that are connected to it.
 for (i1=0;i1<m_arrSector[a1].links.length;i1++)
  {
   a=m_arrSector[a1].links[i1].sector_id; // get a connecting sector id # that potentially might link to the destination
   if (a==a2)  // is it a match to the final destination ?
    {
     m_arrSector[a1].next_sector=a2;      // yes, add it to the connecting path of the previous sector
     m_arrSector[a1].path_count=nDepth;   // put in how far it took to get here
     return nDepth;                       // return how far it took to get here
    }
   else
    {
     nHowFar=testPath(a,a2,nDepth+1);                // here is the recursive part, call the testPath with each linked sector to this one, a1
     if (nHowFar>0)                                  // was it able to reach it without doubling back on the path
       m_arrSector[a1].links[i1].path_count=nHowFar; // yes it did reach it, save how many steps it took to get there, compare after all links are tested
    }
  }
 nLen=9999;  // we want the path that took the fewest steps so we start high
 i2=-1;     
 for (i1=0;i1<m_arrSector[a1].links.length;i1++)
  {
   nHowFar=m_arrSector[a1].links[i1].path_count;
   if (nHowFar > 0 && nHowFar < nLen ) // each link's success is tested, looking for the lowest step count
    {
     nLen=nHowFar; 
     i2=i1;
    }  
  }
 if (nLen<9999)
  {
   m_arrSector[a1].next_sector=m_arrSector[a1].links[i2].sector_id;
   return nLen;  // return shortest path to the destination                 // here is where a successful recursion returns to the previous sector's testPath call
  }                                                                         // each sector's list of connecting sectors is tested and the shortest is marked or saved in the run
                                                                            // by putting the sector id of that shortest successful path into the "next_sector" property of this sector.
 return 0; // not found
}
//////////////////////////////////////////////////////////////////////////////////////////////
// showPath is another recursive function, it is simple, just walk the "next_sector" property
// and put the result into a list that will be sorted by the linking sectors.
//////////////////////////////////////////////////////////////////////////////////////////////
function showPath(a1,a2)  // now the work is all done go back and retrace the shortest path
{
 m_arrStack[m_arrStack.length]=a1;
 if (a1==a2) return;
 if (m_arrSector[a1].next_sector < 0)  // Each "next_sector" set above is retrieved, stored into the stack list and showPath is called again.
  {
   alert('Sector #'+a1+' next sector = -1'); // debugging statement
   return;
  }
 showPath(m_arrSector[a1].next_sector,a2);
}
///////////////////////////////////////////////////////////
</SCRIPT>
</HEAD>
<BODY ONLOAD='loadBody();' STYLE='background-Color:MidnightBlue; color:yellow;'>
<b>EnB Trip Calculator</b>
<TABLE>
 <TR>
  <TD>
     Prof:   <SELECT ID="listProf"><OPTION>Grouped<OPTION>TS<OPTION>TE<OPTION>TT<OPTION>JD<OPTION>JE<OPTION>JS<OPTION>PS<OPTION>PW<OPTION>PP<OPTION>RD</SELECT>
     From:   <SPAN ID=spanFrom></SPAN>   
  <TD>
     To:   <SPAN ID=spanTo></SPAN>   <INPUT TYPE=BUTTON VALUE="Calc Path" ONCLICK='calcPath()';>  
 <TR>
  <TD COLSPAN=2>
   <SPAN ID=spanResult>
   <br><br><br><br><br><br><br><br>
   <br><br><br><br><br><br><br><br>
   <br><br><br><br><br><br><br><br>
  </SPAN>
</TABLE>
Visit: <A HREF='http://www.bhughes.com/'>www.bhughes.com</A><BR><BR>
c 2010     Brian L Hughes
</BODY>
</HTML>
Link to comment
Share on other sites

Added the following sectors

m_arrSector[70]=new SectorItem(70,10,'P','PP','Mars Gamma');

m_arrSector[71]=new SectorItem(71,9,'A','RD','Paramis');

m_arrSector[72]=new SectorItem(72,10,'T','TS','Equatorial Earth');

m_arrSector[73]=new SectorItem(73,10,'J','JS','Ganymede');

added TS, JS, and PP to the dropdown

linked in Ragnarok to it's surrounding sectors Jot and Freya

I found javascript cookie code and put in logic so your current profession is remembered the next time you visit the web page

Link to comment
Share on other sites

  • 6 years later...

Yes i know this is a very very old post. How ever i took the above linked trip planer/ calculator html page and compiled it to a exe (that is all i did no tweaks no changes looks and works exactly like the html web based version but in a handy exe format. Credit goes fully to the original creator i just needed something a little more local and compact. It is a resizable 300x800 window on launch wish the program allowed it to be a tiny bit smaller as on a 1280x 800 screen it would fit perfectly beside a windowed enb window.

 

any how here it is

https://goo.gl/zjFVO9

little suckers bigger than i thought at 5.9 mb but eh part of the process lol

 

screen shot of me using it and the forum post included

 

exe version of bhughes destinations web app trip planer.jpg

  • Upvote 1
Link to comment
Share on other sites

  • 3 years later...
  • 4 weeks later...

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...