Guest User

OGame Panel Script

a guest
May 9th, 2013
91
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. // @grant               metadata
  2. // @require     http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js
  3.  
  4. /*
  5.  * This creates a custom panel to show basic info you can make in excel spreadsheet
  6.  * This DOES NOT automatically do ANYTHING for you as that's illegal( aside from some basic math )
  7.  * This DOES NOT remove any Ads placed by GameForge or affliates as that is not tolerated.
  8.  * This DOES NOT give you any distinct advantage over another player as it merely displays information you can find in game and calculate yourself
  9.  * using a calculator or spreadsheet program. These calculations are also performed by AntiGame plugin for FireFox
  10.  *
  11.  * You are free to modify/copy/use any and all parts of this script as you please as long as it complies to GameForge OGame rules and regulations;
  12.  * subject to change without notice as reserved by GameForge.
  13.  *
  14.  * Things you are not allowed to do with this script unless given permission to by GameForge.
  15.  * You are NOT allowed to hide, remove, or otherwise obscure the officers bar. ( OGame equiv. of a cash shop )
  16.  * You are NOT allowed to hide, remove, or otherwise obscure the mmonet bar at the top of the page. ( GameForge Ad, hidden when you buy commander. )
  17.  * You are NOT allowed to hide, remove, or otherwise obscure the "Merchant", "Recruit Officers", or "Shop" menu items.
  18.  * You are most likely NOT allowed to hide, remove, or otherwise obscure the OGame logo ( this would fall under the copyright act if I'm not mistaken )
  19.  */
  20.  
  21. var metal = 0;
  22. var crystal = 0;
  23. var deuterium = 0;
  24.  
  25. // populates cookies
  26. var _COOKIE = function() {
  27.     var data = {};
  28.     for( var i = 0; i < document.cookie.split( ' ' ).length; i++ )
  29.         data[ document.cookie.split( ' ' )[ i ].trim().split( '=' )[ 0 ] ] = document.cookie.split( ' ' )[ i ].trim().split( '=' )[ 1 ].trim().replace( ';' , '' );
  30.     return data;
  31. };
  32.  
  33. // sets a cookie
  34. var setCookie = function( name , value , expireHr ) {
  35.     var d = new Date();
  36.     var t = new Date();
  37.     d.setTime( t.getTime() + ( 3600000 * expireHr ) );
  38.     document.cookie = name + '=' + escape( value ) + ';expires=' + d.toGMTString();
  39. };
  40.  
  41. // calculates the maximum amount of any ship one can build with the current resources
  42. var buildMax = function( m , c , d ) {
  43.     var a = 0;
  44.  
  45.     var rm , rc , rd = 0;
  46.     rm = metal;
  47.     rc = crystal;
  48.     rd = deuterium;
  49.  
  50.     while( rm > m && rc > c && rd > d ) {
  51.         a++;
  52.         rm -= m; rc -= c; rd -= d;
  53.     }
  54.  
  55.     return a;
  56. };
  57.  
  58. var appendInfo = function( id , label , m , c, d, parent ) {
  59.     var res = $( document.createElement( 'div' ) ).attr( 'id' , id ).html( '<b>'+label+':</b> ' + ( buildMax( m , c , d ) ).toString().replace(/\B(?=(\d{3})+(?!\d))/g, ',') );
  60.     if( parent )
  61.         res.appendTo( parent );
  62. };
  63.  
  64. var updateResources = function() {
  65.     if( $( 'span#resources_metal' ).length ) {
  66.         metal = parseInt( $( 'span#resources_metal' ).html().replace( /\./g , '' ) );
  67.     } else {
  68.         metal = parseInt( _COOKIE()[ 'metal' ] );
  69.     }
  70.  
  71.     if( $( 'span#resources_crystal' ).length ) {
  72.         crystal = parseInt( $( 'span#resources_crystal' ).html().replace( /\./g , '' ) );
  73.     } else {
  74.         crystal = parseInt( _COOKIE()[ 'crystal' ] );
  75.     }
  76.  
  77.     if( $( 'span#resources_deuterium' ).length ) {
  78.         deuterium = parseInt( $( 'span#resources_deuterium' ).html().replace( /\./g , '' ) );
  79.     } else {
  80.         deuterium = parseInt( _COOKIE()[ 'deuterium' ] );
  81.     }
  82.  
  83.     setCookie( 'metal' , metal , 1 );
  84.     setCookie( 'crystal' , crystal , 1 );
  85.     setCookie( 'deuterium' , deuterium , 1 );
  86.  
  87.     if( $( 'div#resource-metal' ).length )
  88.         $( 'div#resource-metal' ).html( '<b>Metal:</b> ' + metal.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ',') );
  89.     if( $( 'div#resource-crystal' ).length )
  90.         $( 'div#resource-crystal' ).html( '<b>Crystal:</b> ' + crystal.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ',') );
  91.     if( $( 'div#resource-deuterium' ).length )
  92.         $( 'div#resource-deuterium' ).html( '<b>Deuterium:</b> ' + deuterium.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ',') );
  93.  
  94.     if( $( 'div#fleet-builder-lf' ) )
  95.         $( 'div#fleet-builder-lf' ).html( '<b>Light Fighter:</b> ' + ( buildMax( 3000 , 1000 , 0 ) ).toString().replace(/\B(?=(\d{3})+(?!\d))/g, ',') );
  96.     if( $( 'div#fleet-builder-hf' ).length )
  97.         $( 'div#fleet-builder-hf' ).html( '<b>Heavy Fighter:</b> ' + ( buildMax( 6000 , 4000 , 0 ) ).toString().replace(/\B(?=(\d{3})+(?!\d))/g, ',') );
  98.     if( $( 'div#fleet-builder-cr' ).length )
  99.         $( 'div#fleet-builder-cr' ).html( '<b>Cruiser:</b> ' + ( buildMax( 20000 , 7000 , 2000 ) ).toString().replace(/\B(?=(\d{3})+(?!\d))/g, ',') );
  100.     if( $( 'div#fleet-builder-bs' ).length )
  101.         $( 'div#fleet-builder-bs' ).html( '<b>Battleship:</b> ' + ( buildMax( 45000 , 15000 , 0 ) ).toString().replace(/\B(?=(\d{3})+(?!\d))/g, ',') );
  102.     if( $( 'div#fleet-builder-bc' ).length )
  103.         $( 'div#fleet-builder-bc' ).html( '<b>Battlecruiser:</b> ' + ( buildMax( 30000 , 40000 , 15000 ) ).toString().replace(/\B(?=(\d{3})+(?!\d))/g, ',') );
  104.     if( $( 'div#fleet-builder-bb' ).length )
  105.         $( 'div#fleet-builder-bb' ).html( '<b>Bomber:</b> ' + ( buildMax( 50000 , 25000 , 15000 ) ).toString().replace(/\B(?=(\d{3})+(?!\d))/g, ',') );
  106.     if( $( 'div#fleet-builder-de' ).length )
  107.         $( 'div#fleet-builder-de' ).html( '<b>Destroyer:</b> ' + ( buildMax( 60000 , 50000 , 15000 ) ).toString().replace(/\B(?=(\d{3})+(?!\d))/g, ',') );
  108.     if( $( 'div#fleet-builder-ds' ).length )
  109.         $( 'div#fleet-builder-ds' ).html( '<b>Deathstar:</b> ' + ( buildMax( 5000000 , 4000000 , 1000000 ) ).toString().replace(/\B(?=(\d{3})+(?!\d))/g, ',') );
  110.  
  111.     if( $( 'div#fleet-builder-sc' ).length )
  112.         $( 'div#fleet-builder-sc' ).html( '<b>Small Cargo:</b> ' + ( buildMax( 2000 , 2000 , 0 ) ).toString().replace(/\B(?=(\d{3})+(?!\d))/g, ',') );
  113.     if( $( 'div#fleet-builder-lc' ).length )
  114.         $( 'div#fleet-builder-lc' ).html( '<b>Large Cargo:</b> ' + ( buildMax( 6000 , 6000 , 0 ) ).toString().replace(/\B(?=(\d{3})+(?!\d))/g, ',') );
  115.     if( $( 'div#fleet-builder-cs' ).length )
  116.         $( 'div#fleet-builder-cs' ).html( '<b>Colony Ship:</b> ' + ( buildMax( 10000 , 20000 , 10000 ) ).toString().replace(/\B(?=(\d{3})+(?!\d))/g, ',') );
  117.     if( $( 'div#fleet-builder-rc' ).length )
  118.         $( 'div#fleet-builder-rc' ).html( '<b>Recycler:</b> ' + ( buildMax( 10000 , 6000 , 2000 ) ).toString().replace(/\B(?=(\d{3})+(?!\d))/g, ',') );
  119.     if( $( 'div#fleet-builder-ep' ).length )
  120.         $( 'div#fleet-builder-ep' ).html( '<b>Espionage Probe:</b> ' + ( buildMax( 0 , 1000 , 0 ) ).toString().replace(/\B(?=(\d{3})+(?!\d))/g, ',') );
  121.     if( $( 'div#fleet-builder-ss' ).length )
  122.         $( 'div#fleet-builder-ss' ).html( '<b>Solar Satellite:</b> ' + ( buildMax( 0 , 2000 , 500 ) ).toString().replace(/\B(?=(\d{3})+(?!\d))/g, ',') );
  123.  
  124.     setTimeout( updateResources , 1000 );
  125. };
  126.  
  127. updateResources();
  128.  
  129. // shrink planet listing
  130. $( 'a.planetlink img.planetPic' ).hide();
  131. $( 'div#planetList' ).children().css( 'margin-bottom', '5px' ).css( 'height', 'auto' );
  132. $( 'a.moonlink' ).css( {
  133.     'top': '0px'
  134. } );
  135. $( 'a.constructionIcon' ).css( {
  136.     'top': '0px'
  137. } );
  138.  
  139. // translucent planet listing until mouse hover
  140. $( 'div#myWorlds' ).css( {
  141.     'opacity': 0.2 ,
  142.     'position': 'relative',
  143.     'top': '0px'
  144. } ).mouseover( function() {
  145.     $( this ).css( 'opacity' , 0.7 );
  146. } ).mouseout( function() {
  147.     $( this ).css( 'opacity' , 0.2 );
  148. } );
  149.  
  150. ( function() {
  151.     var container = $( document.createElement( 'div' ) );
  152.     container.css( {
  153.         'position': 'absolute',
  154.         'top': '56px',
  155.         'left': '10px',
  156.         'width': '222px',
  157.         'z-index': '0',
  158.         'color': '#DDD'
  159.     } ).appendTo( document.body );
  160.  
  161.     // Resource Info
  162.     var menu = $( document.createElement( 'div' ) ).attr( 'class' , 'content-box-s' ).appendTo( container ).css( {
  163.         'cursor': 'pointer'
  164.     } ).click( function() {
  165.         $( 'div#resource-info' ).toggle( 0 );
  166.     } );
  167.     var header = $( document.createElement( 'div' ) ).attr( 'class' , 'header' ).appendTo( menu );
  168.     $( document.createElement( 'h3' ) ).html( 'Resources' ).appendTo( header );
  169.     var res = $( document.createElement( 'div' ) ).attr( 'id' , 'resource-info' ).appendTo( container ).css( {
  170.         'margin-left': '10px'
  171.     } );
  172.        
  173.     $( document.createElement( 'div' ) ).attr( 'id' , 'resource-metal' ).html( '<b>Metal:</b> ' + metal.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ',') ).appendTo( res );
  174.     $( document.createElement( 'div' ) ).attr( 'id' , 'resource-crystal' ).html( '<b>Crystal:</b> ' + crystal.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ',') ).appendTo( res );
  175.     $( document.createElement( 'div' ) ).attr( 'id' , 'resource-deuterium' ).html( '<b>Deuterium:</b> ' + deuterium.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ',') ).appendTo( res );
  176.     $( document.createElement( 'div' ) ).attr( 'id' , 'resource-total' ).html( '<b>Total:</b> ' + ( metal + crystal + deuterium ).toString().replace(/\B(?=(\d{3})+(?!\d))/g, ',') ).appendTo( res );
  177.  
  178.     // Transport Info
  179.     var menu = $( document.createElement( 'div' ) ).attr( 'class' , 'content-box-s' ).appendTo( container ).css( {
  180.         'cursor': 'pointer'
  181.     } ).click( function() {
  182.         $( 'div#transport-info' ).toggle( 0 );
  183.     } );
  184.     var header = $( document.createElement( 'div' ) ).attr( 'class' , 'header' ).appendTo( menu );
  185.     $( document.createElement( 'h3' ) ).html( 'Transport' ).appendTo( header );
  186.     var res = $( document.createElement( 'div' ) ).attr( 'id' , 'transport-info' ).appendTo( container ).css( {
  187.         'margin-left': '10px'
  188.     } );
  189.  
  190.     $( document.createElement( 'div' ) ).attr( 'id' , 'transport-lc' ).html( '<b>Large Cargo:</b> ' + ( Math.ceil( ( metal + crystal + deuterium ) / 25000 ) ).toString().replace(/\B(?=(\d{3})+(?!\d))/g, ',') ).appendTo( res );
  191.     $( document.createElement( 'div' ) ).attr( 'id' , 'transport-sc' ).html( '<b>Small Cargo:</b> ' + ( Math.ceil( ( metal + crystal + deuterium ) / 5000 ) ).toString().replace(/\B(?=(\d{3})+(?!\d))/g, ',') ).appendTo( res );
  192.     $( document.createElement( 'div' ) ).attr( 'id' , 'transport-rc' ).html( '<b>Recycler:</b> ' + ( Math.ceil( ( metal + crystal + deuterium ) / 20000 ) ).toString().replace(/\B(?=(\d{3})+(?!\d))/g, ',') ).appendTo( res );
  193.  
  194.     // Fleet Builder
  195.     var menu = $( document.createElement( 'div' ) ).attr( 'class' , 'content-box-s' ).appendTo( container ).css( {
  196.         'cursor': 'pointer'
  197.     } ).click( function() {
  198.         $( 'div#fleet-builder-info' ).toggle( 0 );
  199.     } );
  200.     var header = $( document.createElement( 'div' ) ).attr( 'class' , 'header' ).appendTo( menu );
  201.     $( document.createElement( 'h3' ) ).html( 'Fleet Builder' ).appendTo( header );
  202.     var res = $( document.createElement( 'div' ) ).attr( 'id' , 'fleet-builder-info' ).appendTo( container ).css( {
  203.         'margin-left': '10px'
  204.     } );
  205.  
  206.     appendInfo( 'fleet-builder-lf' , 'Light Fighter' , 3000 , 1000 , 0 , res );
  207.     appendInfo( 'fleet-builder-hf' , 'Heavy Fighter' , 6000 , 4000 , 0 , res );
  208.     appendInfo( 'fleet-builder-cr' , 'Cruiser' , 20000 , 7000 , 2000 , res );
  209.     appendInfo( 'fleet-builder-bs' , 'Battleship' , 45000 , 15000 , 0 , res );
  210.     appendInfo( 'fleet-builder-bc' , 'Battlecruiser' , 30000 , 40000 , 15000 , res );
  211.     appendInfo( 'fleet-builder-bb' , 'Bomber' , 50000 , 25000 , 15000 , res );
  212.     appendInfo( 'fleet-builder-be' , 'Destroyer' , 60000 , 50000 , 15000 , res );
  213.     appendInfo( 'fleet-builder-ds' , 'Deathstar' , 5000000 , 4000000 , 1000000 , res );
  214.  
  215.     appendInfo( 'fleet-builder-sc' , 'Small Cargo' , 2000 , 2000 , 0 , res );
  216.     appendInfo( 'fleet-builder-lc' , 'Large Cargo' , 6000 , 6000 , 0 , res );
  217.     appendInfo( 'fleet-builder-cs' , 'Colony Ship' , 10000 , 20000 , 10000 , res );
  218.     appendInfo( 'fleet-builder-rc' , 'Recycler' , 10000 , 6000 , 2000 , res );
  219.     appendInfo( 'fleet-builder-ep' , 'Espionage Probe' , 0 , 1000 , 0 , res );
  220.     appendInfo( 'fleet-builder-ss' , 'Solar Satellite' , 0 , 2000 , 500 , res );
  221.  
  222.     // Defense Builder
  223.     var menu = $( document.createElement( 'div' ) ).attr( 'class' , 'content-box-s' ).appendTo( container ).css( {
  224.         'cursor': 'pointer'
  225.     } ).click( function() {
  226.         $( 'div#defense-builder-info' ).toggle( 0 );
  227.     } );
  228.     var header = $( document.createElement( 'div' ) ).attr( 'class' , 'header' ).appendTo( menu );
  229.     $( document.createElement( 'h3' ) ).html( 'Defense Builder' ).appendTo( header );
  230.     var res = $( document.createElement( 'div' ) ).attr( 'id' , 'defense-builder-info' ).appendTo( container ).css( {
  231.         'margin-left': '10px'
  232.     } );
  233.  
  234.     appendInfo( 'defense-builder-rl' , 'Rocket Launcher' , 2000 , 0 , 0 , res );
  235.     appendInfo( 'defense-builder-ll' , 'Light Laser' , 1500 , 500 , 0 , res );
  236.     appendInfo( 'defense-builder-hl' , 'Heavy Laser' , 6000 , 2000 , 0 , res );
  237.     appendInfo( 'defense-builder-gc' , 'Guass Cannon' , 20000 , 15000 , 2000 , res );
  238.     appendInfo( 'defense-builder-ic' , 'Ion Cannon' , 2000 , 6000 , 0 , res );
  239.     appendInfo( 'defense-builder-pt' , 'Plasma Turret' , 50000 , 50000 , 30000 , res );
  240.     appendInfo( 'defense-builder-abm' , 'Anti-Ballistic Missile' , 8000 , 0 , 2000 , res );
  241.     appendInfo( 'defense-builder-ipm' , 'Interplanetary Missile' , 12500 , 2500 , 10000 , res );
  242. } )();
Advertisement
Add Comment
Please, Sign In to add comment