Jump to content
SubSpace Forum Network

  

9 members have voted

  1. 1. Would you prefer a GUI or Terminal / Command Prompt version?

    • GUI
      6
    • Command Prompt / Termina
      1
    • Either is fine. Just make sure its neat!
      2


Recommended Posts

Posted

As a project i have decided to work on, i am thinking about making a server.cfg gui.

 

Now, i think editing the gui via the command prompt would be the easiest to program.

using a key for selections.

 

Moving via:

1. Directory settings

2. Warbird settings

...

9. Shark settings

N. Next

B. Back

,. Previous menu.

Please enter a selection:

 

Or doing a gui interface with buttons to navigate and text boxes.

I am thinking since i havent done java in a while, that the command prompt / terminal version would be easiest, however i am not completely sure.

I would like some help doing this so i can get back into the pace of things, so if you would like to help, let me know !

Posted

im thinking of 1 simple program

 

im working on the navigational part right now.

I figure adding in the "read" part of it shouldnt be too hard.

then after i get it to read a file well, im going to write it.

 

However the problem i can see is I'd have to completely rewrite the file :/

 

even for 1 line.

 

I had a thinking in my mind that the server.cfg file was layed out the same way as the template.sss file was.

now that i know its NOT... it made a problem for me.

Posted

Hmmm

Riistar's cfgEditor:

cfgedit.png

 

There are a couple of other programs like this at http://www.ssdownloads.com/index.php?act=list&cat=5

 

But Riistar's probably looks the best

 

 

And if you want to edit the .cfg directly, I suggest you use API's already available to read INI files. I only used the windows ones, but I'm sure you can find that easily for any language/platform. That will allow you to read or write only one item at a time without rewriting the whole file as you said. You just have to scan template.sss once to grab the sections and values you need, build your lists or whatever while reading from the .cfg.

cfgEditor.rar

Posted

If you are going to make something for server.cfg, why bother with a command-line version? Though you could build in a command-line just for the sake of it -- who knows, someone might actually find it useful! It could be useful, for example, a zone host (like myself) in keeping certain things in server.cfg (or even server.ini) "unchangeable".

 

Good luck on whatever you make! =D

Posted

Hmmm

Riistar's cfgEditor:

cfgedit.png

 

There are a couple of other programs like this at http://www.ssdownloads.com/index.php?act=list&cat=5

 

But Riistar's probably looks the best

 

 

And if you want to edit the .cfg directly, I suggest you use API's already available to read INI files. I only used the windows ones, but I'm sure you can find that easily for any language/platform. That will allow you to read or write only one item at a time without rewriting the whole file as you said. You just have to scan template.sss once to grab the sections and values you need, build your lists or whatever while reading from the .cfg.

dude... just killed my project <_<

Posted

Just make something for ASSS. Make something that edits the group defs and which commands they can use maybe.

Like have a checkmark for public and private command.

 

Group:

+Public +Private CMD1

-Public +Private CMD2

 

Something like that along with an editor for the staff.conf file to define which users are in that group. That would be cool I guess, although it's easily done in a text editor. But who knows, maybe it will make asss easier for newbs.

Posted (edited)

here is what i have so far:

 

/*
Subspace Server CFG GUI Interface
For ease of editing values to the Server.CFG file

Author: Rootbear75
Date: Feb 2010
*/

  import java.awt.*;
  import java.io.*;
  

   public class ServerCFG //implements Runnable
  {
  	
     static BufferedReader reader =  new BufferedReader(new InputStreamReader(System.in));
     
      public static String getSelection()
     {
        System.out.print("Please enter your selection: ");
        String input = null;
     	//label input;
        try
        {
           input = reader.readLine();
        }
            catch(IOException e)
           {
              e.printStackTrace();
              return null;
           }
        input=input.toUpperCase();
        if(input.equals("EXIT"))
        {
           System.exit(0);
           return null;
        }
        else if(input.equals("SAVE"))
        {
        	//saveFile();
           System.out.println("Your file has been saved.");
           getSelection();
        }
        return input;
     }
     
      public static void run()
     {
        String selection = null;
        cls();
        System.out.print("\n\n\n\n\nWelcome to the ServerCFG editor. Made by Rootbear75");
        try
        {
           Thread.sleep(1500);
        }
            catch(Exception e)
           {
              e.printStackTrace();
           }
           
        cls();
        System.out.print("Please enter a filename or hit ENTER to continue: ");
        selection = getSelection();
     	//if(!selection.equals(null)
     	//loadCFG(selection);
     	//else
     	
     }
     
      public static void cls()
     {   
     
        for(int i=0; i < 100; i++)
           System.out.println("\n");
       /*try 
        {
           Runtime.getRuntime().exec("cmd /c cls");
        } 
            catch (IOException e)
           {
              e.printStackTrace();
           }*/
     }
  	
      public static void main(String[] args)
     {
        run();
     }
  }

 

Now, the original way i was going to do it was to have varaibles for EVERY setting

however sama made a good suggestion and at least for the ships, have a category/key type of variable (i know there is such thing in java)

 

However, for the other settings such as bomb and bullet damage and prizes etc. there are unique settings so for that idk... he said work from the inside out. get the set setting methods and the get settings methods before i work on the navigation....

Edited by rootbear75
Posted

.cfg -> .conf (asss)

.conf -> .cfg (sg)

Error Checker (max value > min value raise error) and others.

Bomb Calculator

Stats (fastest ship/slowest/highest bomb/lowest bomb... etc)

Further Stats (how many bullets at exact energy to destroy ship) etc.

Categorized Editing (all ship speeds/thrusts/bombs/bullets)

 

just some things from the top of my head that could be useful. asss support is #1 thing to focus on, as subgame is pretty much dead to development zones.

 

Good Luck.

Posted (edited)

here's the problem im getting to now:

 

  	//[PrizeWeight]
     static int prizeWeight_QuickCharge = 80;
     static int prizeWeight_Energy = 70;
     static int prizeWeight_Rotation = 60;
     static int prizeWeight_Stealth = 30;
     static int prizeWeight_Cloak = 20;
     static int prizeWeight_Antiwarp = 20;
     static int prizeWeight_XRadar = 20;
     static int prizeWeight_Warp = 40;
     static int prizeWeight_Gun = 60;
     static int prizeWeight_Bomb = 50;
     static int prizeWeight_BouncingBullets = 30;
     static int prizeWeight_Thruster = 70;
     static int prizeWeight_TopSpeed = 70;
     static int prizeWeight_Recharge = 60;
     static int prizeWeight_MultiFire = 30;
     static int prizeWeight_Proximity = 30;
     static int prizeWeight_Glue = 20;
     static int prizeWeight_AllWeapons = 10;
     static int prizeWeight_Shields = 10;
     static int prizeWeight_Shrapnel = 40;
     static int prizeWeight_Repel = 40;
     static int prizeWeight_Burst = 30;
     static int prizeWeight_Decoy = 20;
     static int prizeWeight_Thor = 30;
     static int prizeWeight_Portal = 30;
     static int prizeWeight_Brick = 10;
     static int prizeWeight_Rocket = 10;
     static int prizeWeight_MultiPrize = 20;
     
  	//[Warbird]
     static int Warbird_SuperTime=6000;
     static int Warbird_ShieldsTime=4000;
     static int Warbird_Gravity=1500;
     static int Warbird_GravityTopSpeed=100;
     static int Warbird_BulletFireEnergy=20;
     static int Warbird_MultiFireEnergy=30;
     static int Warbird_BombFireEnergy=300;
     static int Warbird_BombFireEnergyUpgrade=50;
     static int Warbird_LandmineFireEnergy=300;
     static int Warbird_LandmineFireEnergyUpgrade=150;
     static int Warbird_BulletSpeed=2000;
     static int Warbird_BombSpeed=2000;
     static int Warbird_BulletFireDelay=25;
     static int Warbird_MultiFireDelay=50;
     static int Warbird_BombFireDelay=150;
     static int Warbird_LandmineFireDelay=125;
     static int Warbird_MultiFireAngle=500;
     static int Warbird_CloakEnergy=100;
     static int Warbird_StealthEnergy=333;
     static int Warbird_AntiWarpEnergy=100;
     static int Warbird_XRadarEnergy=250;
     static int Warbird_MaximumRotation=300;
     static int Warbird_MaximumThrust=19;
     static int Warbird_MaximumSpeed=3250;
     static int Warbird_MaximumRecharge=1150;
     static int Warbird_MaximumEnergy=1700;
     static int Warbird_InitialRotation=210;
     static int Warbird_InitialThrust=16;
     static int Warbird_InitialSpeed=2010;
     static int Warbird_InitialRecharge=400;
     static int Warbird_InitialEnergy=1000;
     static int Warbird_UpgradeRotation=40;
     static int Warbird_UpgradeThrust=2;
     static int Warbird_UpgradeSpeed=250;
     static int Warbird_UpgradeRecharge=166;
     static int Warbird_UpgradeEnergy=100;
     static int Warbird_AfterburnerEnergy=1200;
     static int Warbird_BombThrust=400;
     static int Warbird_BurstSpeed=3000;
     static int Warbird_BurstShrapnel=24;
     static int Warbird_TurretThrustPenalty=1;
     static int Warbird_TurretSpeedPenalty=125;
     static int Warbird_TurretLimit=5;
     static int Warbird_RocketTime=1000;
     static int Warbird_InitialBounty=0;
     static int Warbird_MaxMines=5;
     static int Warbird_RepelMax=3;
     static int Warbird_BurstMax=3;
     static int Warbird_DecoyMax=3;
     static int Warbird_ThorMax=3;
     static int Warbird_BrickMax=3;
     static int Warbird_RocketMax=3;
     static int Warbird_PortalMax=3;
     static int Warbird_InitialRepel=0;
     static int Warbird_InitialBurst=0;
     static int Warbird_InitialBrick=0;
     static int Warbird_InitialRocket=0;
     static int Warbird_InitialThor=0;
     static int Warbird_InitialDecoy=0;
     static int Warbird_InitialPortal=0;
     static int Warbird_BombBounceCount=0;
     static int Warbird_CloakStatus=0;
     static int Warbird_StealthStatus=1;
     static int Warbird_XRadarStatus=1;
     static int Warbird_AntiWarpStatus=1;
     static int Warbird_DamageFactor=30;
     static int Warbird_PrizeShareLimit=100;
     static int Warbird_AttachBounty=12;
     static int Warbird_ShrapnelMax=8;
     static int Warbird_ShrapnelRate=2;
     static int Warbird_MaxGuns=3;
     static int Warbird_MaxBombs=2;
     static int Warbird_InitialGuns=1;
     static int Warbird_InitialBombs=0;
     static int Warbird_EmpBomb=0;
     static int Warbird_SeeMines=0;
     static int Warbird_DoubleBarrel=0;
     static int Warbird_SoccerBallFriction=12;
     static int Warbird_SoccerBallProximity=64;
     static int Warbird_SoccerThrowTime=1200;
     static int Warbird_SoccerBallSpeed=2500

 

I havent even started the other categories...

 

Whole thing so far:

 

 

/*
Subspace Server CFG GUI Interface
For ease of editing values to the Server.CFG file

Author: Rootbear75
Date: Feb 2010
*/

  import java.awt.*;
  import java.io.*;
  

   public class ServerCFG //implements Runnable
  {
  	
     static BufferedReader reader =  new BufferedReader(new InputStreamReader(System.in));
     //ALL OF THE DEFAULT VARIABLES:
  	
  	//[PrizeWeight]
     static int prizeWeight_QuickCharge = 80;
     static int prizeWeight_Energy = 70;
     static int prizeWeight_Rotation = 60;
     static int prizeWeight_Stealth = 30;
     static int prizeWeight_Cloak = 20;
     static int prizeWeight_Antiwarp = 20;
     static int prizeWeight_XRadar = 20;
     static int prizeWeight_Warp = 40;
     static int prizeWeight_Gun = 60;
     static int prizeWeight_Bomb = 50;
     static int prizeWeight_BouncingBullets = 30;
     static int prizeWeight_Thruster = 70;
     static int prizeWeight_TopSpeed = 70;
     static int prizeWeight_Recharge = 60;
     static int prizeWeight_MultiFire = 30;
     static int prizeWeight_Proximity = 30;
     static int prizeWeight_Glue = 20;
     static int prizeWeight_AllWeapons = 10;
     static int prizeWeight_Shields = 10;
     static int prizeWeight_Shrapnel = 40;
     static int prizeWeight_Repel = 40;
     static int prizeWeight_Burst = 30;
     static int prizeWeight_Decoy = 20;
     static int prizeWeight_Thor = 30;
     static int prizeWeight_Portal = 30;
     static int prizeWeight_Brick = 10;
     static int prizeWeight_Rocket = 10;
     static int prizeWeight_MultiPrize = 20;
     
  	//[Warbird]
     static int Warbird_SuperTime=6000;
     static int Warbird_ShieldsTime=4000;
     static int Warbird_Gravity=1500;
     static int Warbird_GravityTopSpeed=100;
     static int Warbird_BulletFireEnergy=20;
     static int Warbird_MultiFireEnergy=30;
     static int Warbird_BombFireEnergy=300;
     static int Warbird_BombFireEnergyUpgrade=50;
     static int Warbird_LandmineFireEnergy=300;
     static int Warbird_LandmineFireEnergyUpgrade=150;
     static int Warbird_BulletSpeed=2000;
     static int Warbird_BombSpeed=2000;
     static int Warbird_BulletFireDelay=25;
     static int Warbird_MultiFireDelay=50;
     static int Warbird_BombFireDelay=150;
     static int Warbird_LandmineFireDelay=125;
     static int Warbird_MultiFireAngle=500;
     static int Warbird_CloakEnergy=100;
     static int Warbird_StealthEnergy=333;
     static int Warbird_AntiWarpEnergy=100;
     static int Warbird_XRadarEnergy=250;
     static int Warbird_MaximumRotation=300;
     static int Warbird_MaximumThrust=19;
     static int Warbird_MaximumSpeed=3250;
     static int Warbird_MaximumRecharge=1150;
     static int Warbird_MaximumEnergy=1700;
     static int Warbird_InitialRotation=210;
     static int Warbird_InitialThrust=16;
     static int Warbird_InitialSpeed=2010;
     static int Warbird_InitialRecharge=400;
     static int Warbird_InitialEnergy=1000;
     static int Warbird_UpgradeRotation=40;
     static int Warbird_UpgradeThrust=2;
     static int Warbird_UpgradeSpeed=250;
     static int Warbird_UpgradeRecharge=166;
     static int Warbird_UpgradeEnergy=100;
     static int Warbird_AfterburnerEnergy=1200;
     static int Warbird_BombThrust=400;
     static int Warbird_BurstSpeed=3000;
     static int Warbird_BurstShrapnel=24;
     static int Warbird_TurretThrustPenalty=1;
     static int Warbird_TurretSpeedPenalty=125;
     static int Warbird_TurretLimit=5;
     static int Warbird_RocketTime=1000;
     static int Warbird_InitialBounty=0;
     static int Warbird_MaxMines=5;
     static int Warbird_RepelMax=3;
     static int Warbird_BurstMax=3;
     static int Warbird_DecoyMax=3;
     static int Warbird_ThorMax=3;
     static int Warbird_BrickMax=3;
     static int Warbird_RocketMax=3;
     static int Warbird_PortalMax=3;
     static int Warbird_InitialRepel=0;
     static int Warbird_InitialBurst=0;
     static int Warbird_InitialBrick=0;
     static int Warbird_InitialRocket=0;
     static int Warbird_InitialThor=0;
     static int Warbird_InitialDecoy=0;
     static int Warbird_InitialPortal=0;
     static int Warbird_BombBounceCount=0;
     static int Warbird_CloakStatus=0;
     static int Warbird_StealthStatus=1;
     static int Warbird_XRadarStatus=1;
     static int Warbird_AntiWarpStatus=1;
     static int Warbird_DamageFactor=30;
     static int Warbird_PrizeShareLimit=100;
     static int Warbird_AttachBounty=12;
     static int Warbird_ShrapnelMax=8;
     static int Warbird_ShrapnelRate=2;
     static int Warbird_MaxGuns=3;
     static int Warbird_MaxBombs=2;
     static int Warbird_InitialGuns=1;
     static int Warbird_InitialBombs=0;
     static int Warbird_EmpBomb=0;
     static int Warbird_SeeMines=0;
     static int Warbird_DoubleBarrel=0;
     static int Warbird_SoccerBallFriction=12;
     static int Warbird_SoccerBallProximity=64;
     static int Warbird_SoccerThrowTime=1200;
     static int Warbird_SoccerBallSpeed=2500;
  	
      public static void loadDefaults()
     {
     }
      public static String getSelection()
     {
        System.out.print("\n\nPlease enter your selection: ");
        String input = null;
        try
        {
           input = reader.readLine();
        }
            catch(IOException e)
           {
              e.printStackTrace();
           }
        if(!input.equals("1")||
        		!input.equals("2")||
        		!input.equals("3")||
        		!input.equals("4")||
        		!input.equals("5")||
        		!input.equals("6")||
        		!input.equals("7")||
        		!input.equals("8")||
        		!input.equals("9")||
        		!input.equals("0"))
           input=input.toUpperCase();
        if(input.equals("EXIT"))
        {
           System.exit(0);
           return null;
        }
        else if(input.equals("SAVE"))
        {
        	//saveFile();
           System.out.println("Your file has been saved.");
           getSelection();
        }
        return input;
     }
     
      public static void cls()
     {   
        for(int i=0; i < 30; i++)
           System.out.println("\n");
     }
  	
      public static void main(String[] args)
     {
        String sel = null;
        cls();
        System.out.print("\n\n\n\n\nWelcome to the ServerCFG editor. Made by Rootbear75");
        try
        {
           Thread.sleep(1500);
        }
            catch(Exception e)
           {
              e.printStackTrace();
           }
           
     		//Request Filename / path
        cls();
        System.out.print("Please enter a filename or hit ENTER to continue: ");
        sel = getSelection();
     	/*if(!sel.equals(null)
     	   loadCFG(sel);
     	else*/
        loadDefaults();
     /*	executeCategories();
     	public static void executeCategories()
     	{*/
     	
     	//main program. MAIN MENU
     	category:
        {
           while(true)
           {
              cls();
              System.out.print("      Main Menu"
                 + "\n\nPlease select a category:\n"
                 + "\n 1. Ship Settings (Warbird thru Shark)"
                 + "\n 2. Prize Settings (PrizeWeight and Prize)"
                 + "\n 3. Weapon Settings (Guns, Bombs, Mines, and Shrapnel)"
                 + "\n 4. Special Item Settings (Other weapons and items)"
                 + "\n 5. Flag and PowerBall Settings"
                 + "\n 6. Radar, Kill, and Team Settings"
                 + "\n 7. Other Miscellaneous Settings (Network, Msging and Map)");
              sel = getSelection();
              if(sel.equals("1"))
              {
                 sel = null;
                shipCategory:
                 {
                    cls();
                    System.out.print("   Ship Settings"
                       + "\n\nPlease select a ship you would like to edit:"
                       + "\n 1. Warbird"
                       + "\n 2. Javelin"
                       + "\n 3. Spider"
                       + "\n 4. Leviathan"
                       + "\n 5. Terrier"
                       + "\n 6. Weasel"
                       + "\n 7. Lancaster"
                       + "\n 8. Shark"
                       + "\n\n 0. Main Menu");
                    sel = getSelection();
                    if(sel.equals("0"))
                       break shipCategory;
                 }
              }
              else if(sel.equals("2"))
              {
                 prize:
                 {
                    sel = null;
                 }
              }
             /* else if(sel.equals("3"))
                 continue weapons;
              else if(sel.equals("4"))
                 continue specialItems;
              else if(sel.equals("5"))
                 continue flagPowerball;
              else if(sel.equals("6"))
                 continue radarKillTeam;
              else if(sel.equals("7"))
                 continue miscCategory;*/
           }
        }
        
     }
  }

 

 

Edited by rootbear75
Posted

ok i talked with jowie a bit and made a private internal class inside the program for the ships configs. that way i call warbird.bombDamage instead of Warbird_BombDamage

 

same amount of variables but overall less code :o

 

/*
Subspace Server CFG GUI Interface
For ease of editing values to the Server.CFG file

Author: Rootbear75
Date: Feb 2010
*/

  import java.awt.*;
  import java.io.*;
  

   public class ServerCFG //implements Runnable
  {
  	
     static BufferedReader reader =  new BufferedReader(new InputStreamReader(System.in));
     //ALL OF THE DEFAULT VARIABLES:
  	
  	//[PrizeWeight]
     static int prizeWeight_QuickCharge = 80;
     static int prizeWeight_Energy = 70;
     static int prizeWeight_Rotation = 60;
     static int prizeWeight_Stealth = 30;
     static int prizeWeight_Cloak = 20;
     static int prizeWeight_Antiwarp = 20;
     static int prizeWeight_XRadar = 20;
     static int prizeWeight_Warp = 40;
     static int prizeWeight_Gun = 60;
     static int prizeWeight_Bomb = 50;
     static int prizeWeight_BouncingBullets = 30;
     static int prizeWeight_Thruster = 70;
     static int prizeWeight_TopSpeed = 70;
     static int prizeWeight_Recharge = 60;
     static int prizeWeight_MultiFire = 30;
     static int prizeWeight_Proximity = 30;
     static int prizeWeight_Glue = 20;
     static int prizeWeight_AllWeapons = 10;
     static int prizeWeight_Shields = 10;
     static int prizeWeight_Shrapnel = 40;
     static int prizeWeight_Repel = 40;
     static int prizeWeight_Burst = 30;
     static int prizeWeight_Decoy = 20;
     static int prizeWeight_Thor = 30;
     static int prizeWeight_Portal = 30;
     static int prizeWeight_Brick = 10;
     static int prizeWeight_Rocket = 10;
     static int prizeWeight_MultiPrize = 20;
     
     	
  	//[Warbird]
     static int Warbird_SuperTime=6000;
     static int Warbird_ShieldsTime=4000;
     static int Warbird_Gravity=1500;
     static int Warbird_GravityTopSpeed=100;
     static int Warbird_BulletFireEnergy=20;
     static int Warbird_MultiFireEnergy=30;
     static int Warbird_BombFireEnergy=300;
     static int Warbird_BombFireEnergyUpgrade=50;
     static int Warbird_LandmineFireEnergy=300;
     static int Warbird_LandmineFireEnergyUpgrade=150;
     static int Warbird_BulletSpeed=2000;
     static int Warbird_BombSpeed=2000;
     static int Warbird_BulletFireDelay=25;
     static int Warbird_MultiFireDelay=50;
     static int Warbird_BombFireDelay=150;
     static int Warbird_LandmineFireDelay=125;
     static int Warbird_MultiFireAngle=500;
     static int Warbird_CloakEnergy=100;
     static int Warbird_StealthEnergy=333;
     static int Warbird_AntiWarpEnergy=100;
     static int Warbird_XRadarEnergy=250;
     static int Warbird_MaximumRotation=300;
     static int Warbird_MaximumThrust=19;
     static int Warbird_MaximumSpeed=3250;
     static int Warbird_MaximumRecharge=1150;
     static int Warbird_MaximumEnergy=1700;
     static int Warbird_InitialRotation=210;
     static int Warbird_InitialThrust=16;
     static int Warbird_InitialSpeed=2010;
     static int Warbird_InitialRecharge=400;
     static int Warbird_InitialEnergy=1000;
     static int Warbird_UpgradeRotation=40;
     static int Warbird_UpgradeThrust=2;
     static int Warbird_UpgradeSpeed=250;
     static int Warbird_UpgradeRecharge=166;
     static int Warbird_UpgradeEnergy=100;
     static int Warbird_AfterburnerEnergy=1200;
     static int Warbird_BombThrust=400;
     static int Warbird_BurstSpeed=3000;
     static int Warbird_BurstShrapnel=24;
     static int Warbird_TurretThrustPenalty=1;
     static int Warbird_TurretSpeedPenalty=125;
     static int Warbird_TurretLimit=5;
     static int Warbird_RocketTime=1000;
     static int Warbird_InitialBounty=0;
     static int Warbird_MaxMines=5;
     static int Warbird_RepelMax=3;
     static int Warbird_BurstMax=3;
     static int Warbird_DecoyMax=3;
     static int Warbird_ThorMax=3;
     static int Warbird_BrickMax=3;
     static int Warbird_RocketMax=3;
     static int Warbird_PortalMax=3;
     static int Warbird_InitialRepel=0;
     static int Warbird_InitialBurst=0;
     static int Warbird_InitialBrick=0;
     static int Warbird_InitialRocket=0;
     static int Warbird_InitialThor=0;
     static int Warbird_InitialDecoy=0;
     static int Warbird_InitialPortal=0;
     static int Warbird_BombBounceCount=0;
     static int Warbird_CloakStatus=0;
     static int Warbird_StealthStatus=1;
     static int Warbird_XRadarStatus=1;
     static int Warbird_AntiWarpStatus=1;
     static int Warbird_DamageFactor=30;
     static int Warbird_PrizeShareLimit=100;
     static int Warbird_AttachBounty=12;
     static int Warbird_ShrapnelMax=8;
     static int Warbird_ShrapnelRate=2;
     static int Warbird_MaxGuns=3;
     static int Warbird_MaxBombs=2;
     static int Warbird_InitialGuns=1;
     static int Warbird_InitialBombs=0;
     static int Warbird_EmpBomb=0;
     static int Warbird_SeeMines=0;
     static int Warbird_DoubleBarrel=0;
     static int Warbird_SoccerBallFriction=12;
     static int Warbird_SoccerBallProximity=64;
     static int Warbird_SoccerThrowTime=1200;
     static int Warbird_SoccerBallSpeed=2500;
     
  		//[Javelin]
     static int Javelin_SuperTime=6000;
     static int Javelin_ShieldsTime=4000;
     static int Javelin_Gravity=1500;
     static int Javelin_GravityTopSpeed=100;
     static int Javelin_BulletFireEnergy=20;
     static int Javelin_MultiFireEnergy=30;
     static int Javelin_BombFireEnergy=300;
     static int Javelin_BombFireEnergyUpgrade=50;
     static int Javelin_LandmineFireEnergy=300;
     static int Javelin_LandmineFireEnergyUpgrade=150;
     static int Javelin_BulletSpeed=2000;
     static int Javelin_BombSpeed=2000;
     static int Javelin_BulletFireDelay=25;
     static int Javelin_MultiFireDelay=50;
     static int Javelin_BombFireDelay=150;
     static int Javelin_LandmineFireDelay=125;
     static int Javelin_MultiFireAngle=500;
     static int Javelin_CloakEnergy=100;
     static int Javelin_StealthEnergy=333;
     static int Javelin_AntiWarpEnergy=100;
     static int Javelin_XRadarEnergy=250;
     static int Javelin_MaximumRotation=300;
     static int Javelin_MaximumThrust=17;
     static int Javelin_MaximumSpeed=3750;
     static int Javelin_MaximumRecharge=1150;
     static int Javelin_MaximumEnergy=1700;
     static int Javelin_InitialRotation=200;
     static int Javelin_InitialThrust=15;
     static int Javelin_InitialSpeed=2200;
     static int Javelin_InitialRecharge=400;
     static int Javelin_InitialEnergy=1000;
     static int Javelin_UpgradeRotation=40;
     static int Javelin_UpgradeThrust=2;
     static int Javelin_UpgradeSpeed=250;
     static int Javelin_UpgradeRecharge=166;
     static int Javelin_UpgradeEnergy=100;
     static int Javelin_AfterburnerEnergy=1200;
     static int Javelin_BombThrust=400;
     static int Javelin_BurstSpeed=3000;
     static int Javelin_BurstShrapnel=24;
     static int Javelin_TurretThrustPenalty=1;
     static int Javelin_TurretSpeedPenalty=125;
     static int Javelin_TurretLimit=5;
     static int Javelin_RocketTime=1000;
     static int Javelin_InitialBounty=0;
     static int Javelin_MaxMines=5;
     static int Javelin_RepelMax=3;
     static int Javelin_BurstMax=3;
     static int Javelin_DecoyMax=3;
     static int Javelin_ThorMax=3;
     static int Javelin_BrickMax=3;
     static int Javelin_RocketMax=3;
     static int Javelin_PortalMax=3;
     static int Javelin_InitialRepel=0;
     static int Javelin_InitialBurst=0;
     static int Javelin_InitialBrick=0;
     static int Javelin_InitialRocket=0;
     static int Javelin_InitialThor=0;
     static int Javelin_InitialDecoy=0;
     static int Javelin_InitialPortal=0;
     static int Javelin_BombBounceCount=0;
     static int Javelin_CloakStatus=0;
     static int Javelin_StealthStatus=1;
     static int Javelin_XRadarStatus=1;
     static int Javelin_AntiWarpStatus=1;
     static int Javelin_DamageFactor=30;
     static int Javelin_PrizeShareLimit=100;
     static int Javelin_AttachBounty=12;
     static int Javelin_ShrapnelMax=8;
     static int Javelin_ShrapnelRate=2;
     static int Javelin_MaxGuns=3;
     static int Javelin_MaxBombs=2;
     static int Javelin_InitialGuns=1;
     static int Javelin_InitialBombs=0;
     static int Javelin_EmpBomb=0;
     static int Javelin_SeeMines=0;
     static int Javelin_DoubleBarrel=0;
     static int Javelin_SoccerBallFriction=12;
     static int Javelin_SoccerBallProximity=64;
     static int Javelin_SoccerThrowTime=1200;
     static int Javelin_SoccerBallSpeed=2500;
  	
      public static void loadDefaults()
     {
     }
      public static String getSelection()
     {
        System.out.print("\n\nPlease enter your selection: ");
        String input = null;
        try
        {
           input = reader.readLine();
        }
            catch(IOException e)
           {
              e.printStackTrace();
           }
        if(!input.equals("1")||
        		!input.equals("2")||
        		!input.equals("3")||
        		!input.equals("4")||
        		!input.equals("5")||
        		!input.equals("6")||
        		!input.equals("7")||
        		!input.equals("8")||
        		!input.equals("9")||
        		!input.equals("0"))
           input=input.toUpperCase();
        if(input.equals("EXIT"))
        {
           System.exit(0);
           return null;
        }
        else if(input.equals("SAVE"))
        {
        	//saveFile();
           System.out.println("Your file has been saved.");
           getSelection();
        }
        return input;
     }
     
      public static void cls()
     {   
        for(int i=0; i < 30; i++)
           System.out.println("\n");
     }
  	
      public static void main(String[] args)
     {
        String sel = null;
        cls();
        System.out.print("\n\n\n\n\nWelcome to the ServerCFG editor. Made by Rootbear75");
        try
        {
           Thread.sleep(1500);
        }
            catch(Exception e)
           {
              e.printStackTrace();
           }
           
     		//Request Filename / path
        cls();
        System.out.print("Please enter a filename or hit ENTER to continue: ");
        sel = getSelection();
     	/*if(!sel.equals(null)
     	   loadCFG(sel);
     	else*/
        loadDefaults();
     /*	executeCategories();
     	public static void executeCategories()
     	{*/
     	
     	//main program. MAIN MENU
     	category:
        {
           while(true)
           {
              cls();
              System.out.print("      Main Menu"
                 + "\n\nPlease select a category:\n"
                 + "\n 1. Ship Settings (Warbird thru Shark)"
                 + "\n 2. Prize Settings (PrizeWeight and Prize)"
                 + "\n 3. Weapon Settings (Guns, Bombs, Mines, and Shrapnel)"
                 + "\n 4. Special Item Settings (Other weapons and items)"
                 + "\n 5. Flag and PowerBall Settings"
                 + "\n 6. Radar, Kill, and Team Settings"
                 + "\n 7. Other Miscellaneous Settings (Network, Msging and Map)");
              sel = getSelection();
              if(sel.equals("1"))
              {
                 sel = null;
                shipCategory:
                 {
                    cls();
                    System.out.print("   Ship Settings"
                       + "\n\nPlease select a ship you would like to edit:"
                       + "\n 1. Warbird"
                       + "\n 2. Javelin"
                       + "\n 3. Spider"
                       + "\n 4. Leviathan"
                       + "\n 5. Terrier"
                       + "\n 6. Weasel"
                       + "\n 7. Lancaster"
                       + "\n 8. Shark"
                       + "\n\n 0. Main Menu");
                    sel = getSelection();
                    if(sel.equals("0"))
                       break shipCategory;
                 }
              }
              else if(sel.equals("2"))
              {
                 prize:
                 {
                    sel = null;
                 }
              }
             /* else if(sel.equals("3"))
                 continue weapons;
              else if(sel.equals("4"))
                 continue specialItems;
              else if(sel.equals("5"))
                 continue flagPowerball;
              else if(sel.equals("6"))
                 continue radarKillTeam;
              else if(sel.equals("7"))
                 continue miscCategory;*/
           }
        }   
     }
  
      private class ShipConfig
     {
     
        String shipType = null;
         private ShipConfig(String type, int a, int b, int c, int d, int e, int f, int g,
         int h, int i, int j, int k, int l, int m, int n, int o, int p, int q, int r, int s,
         int t, int u, int v, int w, int x, int y, int z, int aa, int ab, int ac, int ad, int ae,
         int af, int ag, int ah, int ai, int aj, int ak, int al, int am, int an, int ao, int ap,
         int aq, int ar, int as, int at, int au, int av, int aw, int ax, int ay, int az, int ba,
         int bb, int bc, int bd, int be, int bf, int bg, int bh, int bi, int bj, int bk, int bl,
         int bm, int bn, int bo, int bp, int bq, int br, int bs, int bt, int bu, int bv, int bw,
         int bx, int by, int bz, int ca, int cb, int cc, int cd)
        {
           int superTime=a;
           int shieldsTime=b;
           int gravity=c;
           int gravityTopSpeed=d;
           int bulletFireEnergy=e;
           int multiFireEnergy=f;
           int bombFireEnergy=g;
           int bombFireEnergyUpgrade=h;
           int landmineFireEnergy=i;
           int landmineFireEnergyUpgrade=j;
           int bulletSpeed=k;
           int bombSpeed=l;
           int bulletFireDelay=m;
           int multiFireDelay=o;
           int bombFireDelay=p;
           int landmineFireDelay=q;
           int multiFireAngle=r;
           int cloakEnergy=s;
           int stealthEnergy=t;
           int antiWarpEnergy=u;
           int xRadarEnergy=v;
           int maximumRotation=w;
           int maximumThrust=x;
           int maximumSpeed=y;
           int maximumRecharge=z;
           int maximumEnergy=aa;
           int initialRotation=ab;
           int initialThrust=ac;
           int initialSpeed=ad;
           int initialRecharge=ae;
           int initialEnergy=af;
           int upgradeRotation=ag;
           int upgradeThrust=ah;
           int upgradeSpeed=ai;
           int upgradeRecharge=aj;
           int upgradeEnergy=ak;
           int afterburnerEnergy=al;
           int bombThrust=am;
           int burstSpeed=an;
           int burstShrapnel=ao;
           int turretThrustPenalty=ap;
           int turretSpeedPenalty=aq;
           int turretLimit=ar;
           int rocketTime=as;
           int initialBounty=at;
           int maxMines=au;
           int repelMax=av;
           int burstMax=aw;
           int decoyMax=ax;
           int thorMax=ay;
           int brickMax=az;
           int rocketMax=ba;
           int portalMax=bb;
           int initialRepel=bc;
           int initialBurst=bd;
           int initialBrick=be;
           int initialRocket=bf;
           int initialThor=bg;
           int initialDecoy=bh;
           int initialPortal=bi;
           int bombBounceCount=bj;
           int cloakStatus=bk;
           int stealthStatus=bl;
           int xRadarStatus=bm;
           int antiWarpStatus=bn;
           int damageFactor=bo;
           int prizeShareLimit=bp;
           int attachBounty=bq;
           int shrapnelMax=br;
           int shrapnelRate=bs;
           int maxGuns=bt;
           int maxBombs=bu;
           int initialGuns=bv;
           int initialBombs=bw;
           int empBomb=bx;
           int seeMines=by;
           int doubleBarrel=bz;
           int soccerBallFriction=ca;
           int soccerBallProximity=cb;
           int soccerThrowTime=cc;
           int soccerBallSpeed=cd;
           
           shipType = type;
        }
        
         private String getShipType()
        {
           return shipType;
        }
     }
  }

Posted (edited)

so here is a earlyEARLY version... but this is essentially how its going to be thru the entirety

 

for settings editing, Only the spectator in the Ships settings menu works right now.

 

Source is also attached.

ServerCFG.zip

 

PS: i tried to make a jar file, but it wouldnt work whenever i did it ...

 

Source here if you dont want to download:

 

/*
Subspace Server CFG GUI Interface
For ease of editing values to the Server.CFG file

Author: Rootbear75
Date: Feb 2010
*/

  import java.io.*;
  

   public class ServerCFG
  {
  	//Standard input reader varaible.
     static BufferedReader reader =  new BufferedReader(new InputStreamReader(System.in));
     
  	
  	//ALL OF THE DEFAULT VARIABLES:
     static int prizeWeight_QuickCharge = 80;
     static int prizeWeight_Energy = 70;
     static int prizeWeight_Rotation = 60;
     static int prizeWeight_Stealth = 30;
     static int prizeWeight_Cloak = 20;
     static int prizeWeight_Antiwarp = 20;
     static int prizeWeight_XRadar = 20;
     static int prizeWeight_Warp = 40;
     static int prizeWeight_Gun = 60;
     static int prizeWeight_Bomb = 50;
     static int prizeWeight_BouncingBullets = 30;
     static int prizeWeight_Thruster = 70;
     static int prizeWeight_TopSpeed = 70;
     static int prizeWeight_Recharge = 60;
     static int prizeWeight_MultiFire = 30;
     static int prizeWeight_Proximity = 30;
     static int prizeWeight_Glue = 20;
     static int prizeWeight_AllWeapons = 10;
     static int prizeWeight_Shields = 10;
     static int prizeWeight_Shrapnel = 40;
     static int prizeWeight_Repel = 40;
     static int prizeWeight_Burst = 30;
     static int prizeWeight_Decoy = 20;
     static int prizeWeight_Thor = 30;
     static int prizeWeight_Portal = 30;
     static int prizeWeight_Brick = 10;
     static int prizeWeight_Rocket = 10;
     static int prizeWeight_MultiPrize = 20;
     
     static int bullet_bulletDamageLevel = 200;
     static int bullet_bulletDamageUpgrade = 100;
     static int bullet_bulletAliveTime=550;
  	
     static int bomb_bombDamageLevel = 750;
     static int bomb_bombAliveTime = 6000;
     static int bomb_bombExplodeDelay = 150;
     static int bomb_bombExplodePixels = 80;
     static int bomb_proximityDistance = 3;
     static int bomb_jitterTime = 72;
     static int bomb_bombSafety = 1;
     static int bomb_eBombShutdownTime = 400;
     static int bomb_eBombDamagePercent = 1000;
     static int bomb_bBombDamagePercent = 1000;
  	
     static int mine_mineAliveTime = 12000;
     static int mine_teamMaxMines = 12;
  	
     static int shrapnel_shrapnelSpeed = 3000;
     static int shrapnel_inactiveShrapDamage = 3;
     static int shrapnel_shrapnelDamagePercent = 1000;
     static int shrapnel_random = 1;
  	
     static int burst_burstDamageLevel = 515;
  	
     static int toggle_antiWarpPixels = 1500;
  	
     static int prize_multiPrizeCount = 10;
     static int prize_prizeFactor = 1000;
     static int prize_prizeDelay = 300;
     static int prize_prizeHideCount = 30;
     static int prize_minimumVirtual = 256;
     static int prize_upgradeVirtual = 6;
     static int prize_prizeMaxExist = 8000;
     static int prize_prizeMinExist = 4000;
     static int prize_prizeNegativeFactor = 300;
     static int prize_deathPrizeTime = 800;
     static int prize_engineShutdownTime = 700;
     static int prize_takePrizeReliable = 0;
     
     static int flag_flaggerOnRadar = 1;
     static int flag_flaggerKillMultiplier = 2;
     static int flag_flaggerGunUpgrade = 0;
     static int flag_flaggerBombUpgrade = 0;
     static int flag_flaggerFireCostPercent = 1000;
     static int flag_flaggerDamagePercent = 1000;
     static int flag_flaggerBombFireDelay = 0;
     static int flag_flaggerSpeedAdjustment = 0;
     static int flag_flaggerThrustAdjustment = 0;
     static int flag_carryFlags = 1;
     static int flag_flagDropDelay = 0;
     static int flag_flagDropResetReward = 0;
     static int flag_enterGameFlaggingDelay = 12000;
     static int flag_noDataFlagDropDelay = 500;
  	
     static int soccer_ballBounce = 1;
     static int soccer_allowBombs = 1;
     static int soccer_allowGuns = 1;
     static int soccer_passDelay = 20;
     static int soccer_mode = 1;
     static int soccer_ballBankDelay = 200;
     static int soccer_useFlagger = 0;
     static int soccer_ballLocation = 0;
  	
     static int radar_radarMode = 0;
     static int radar_radarNeutralSize = 128;
     static int radar_mapZoomFactor = 10;
  	
     static int team_maxFrequency = 9999;
     static int team_maxPerTeam = 0;
     static int team_maxPerPrivateTeam = 0;
  	
     static int kill_maxBonus = 0;
     static int kill_maxPenalty = 0;
     static int kill_rewardBase = 0;
     static int kill_bountyIncreaseForKill = 6;
     static int kill_enterDelay = 200;
  	
     static int repel_speed = 5000;
     static int repel_time = 225;
     static int repel_distance = 512;
  	
     static int message_reliable = 0;
     static int message_allowAudioMessages = 1;
  	
     static int wormhole_gravityBombs = 1;
     static int wormhole_switchTime = 0;
  	
     static int latency_sendRoutePercent = 500;
     static int latency_clientSlowPacketSampleSize = 100;
     static int latency_s2cNoDataKickoutDelay = 500;
  	
     static int brick_time = 12000;
  	
     static int rocket_thrust = 25;
     static int rocket_speed = 5500;
  	
     static int door_delay = 400;
     static int door_mode = -1;
  	
     static int misc_warpPointDelay = 6000;
     static int misc_decoyAliveFactor = 3000;
     static int misc_bounceFactor = 22;
     static int misc_sendPositionDelay = 10;
     static int misc_slowFrameCheck = 0;
     static int misc_allowSavedShips = 1;
     static int misc_safetyLimit = 90000;
     static int misc_frequencyShift = 900;
     static int misc_tickerDelay = 1000;
     static int misc_extraPositionData = 0;
     static int misc_warpRadiusLimit = 1024;
     static int misc_activateAppShutdownTime = 1500;
     static int misc_nearDeathLevel = 0;
     static int misc_victoryMusic = 1;
     
     static int cost_purchaseAnytime = 0;
     static int cost_recharge;
     static int cost_energy;
     static int cost_rotation;
     static int cost_stealth;
     static int cost_cloak;
     static int cost_xRadar;
     static int cost_gun;
     static int cost_bomb;
     static int cost_bounce;
     static int cost_thrust;
     static int cost_speed;
     static int cost_multiFire;
     static int cost_prox;
     static int cost_super;
     static int cost_shield;
     static int cost_shrap;
     static int cost_antiWarp;
     static int cost_repel;
     static int cost_burst;
     static int cost_decoy;
     static int cost_thor;
     static int cost_brick;
     static int cost_rocket;
     static int cost_portal;
     
     static int spectator_hideFlags;
     static int spectator_noXRadar;
  	
     static String notes_settingName = "Default Settings";
     static String notes_maker = "ServerCFG Editor";
     static String notes_coMaker = "Rootbear75";
     static String notes_mapName = "";
     static String notes_mapper = "";
     static String notes_note1 = "This settings file";
     static String notes_note2 = "was generated via";
     static String notes_note3 = "the ServerCFG Editor";
     static String notes_note4 = "made by Rootbear75.";
     static String notes_note5 = "These settings are SVS";
  	
     static int custom_saveStatsTime;
  	
  	//rather than making a variable for each individual ship / setting pair,
  	// it's easier to make a class ShipConfig that has each variable initialized in it.
     static ShipConfig[] ships = new ShipConfig[8];
        	
  	//Used to select which ship is being edited
     static int currentShip;
        	
  	//Easier than trying to do this every time I want input.		
      public static String getSelection()
     {
        System.out.print("\n\nPlease enter your selection: ");
        String input = null;
        try
        {
           input = reader.readLine();
        }
            catch(IOException e)
           {
              e.printStackTrace();
           }
          //I found that a number.toUpperCase changes it so i had to make the program ignore 0-9
        if(!input.equals("1")||
        		!input.equals("2")||
        		!input.equals("3")||
        		!input.equals("4")||
        		!input.equals("5")||
        		!input.equals("6")||
        		!input.equals("7")||
        		!input.equals("8")||
        		!input.equals("9")||
        		!input.equals("0"))
           input=input.toUpperCase();
           
     		//Standard exit. Can be used anywhere in the menus.
        if(input.equals("EXIT"))
        {
           
           System.exit(0);
           return null;
        }
        
        //Standard save. Will be implemented at a later time (shown via saveFile() pseudocode.
        //Saves the file and asks for more input in case you want to save, then change more things.
        else if(input.equals("SAVE"))
        {
        	//saveFile();  The string below will be part of that method...
           System.out.println("Your file has been saved.");
           getSelection();
        }
        else if(input.equals("HELP"))
        {
           printHelp();
        }
        else if(input.equals("LOAD"))
        {
        //loadFile();
           System.out.print("File at path: \"null\" has been loaded.");
           getSelection();
        }
        return input;
     }
     
  	//clears the screen. Very crude way of doing it but I couldn't find an easier way.
      private static void cls()
     {   
        for(int i=0; i < 30; i++)
           System.out.println("\n");
     }
     
      private static void printHelp()
     {
        cls();
        System.out.print("This is the help file for the ServerCFG Editor made by Rootbear75."
           + "\n\nUse the numbered keys on your keyboard to make your selection."
           + "\nWhen the program asks you for input, the following commands can be used:"
           + "\n  help:  Will display this help menu."
           + "\n  save:  Will save whatever settings are currently set.\n          (Defaults if nothing has been changed)"
           +"\n         This program can generate default SVS settings for you. "
           +"\n           Just save it when you start the program."
           +"\n  exit: Exits the program without saving.I suggest you use save before you quit."
           +"\n\n\n If you have any other questions or concerns, do not hesitate to\n contact me in game or email: rootbear75@gmail.com"
           +"\n\n\n I hope you enjoy this program.");
        pause();
        cls();
        System.out.print("            ServerCFG Editor (C) Copyright 2010 TKHeaven Productions."
           + "\n\n This program is distributed under the terms"
           + "of the GNU General Public License version 3.\n\n"
           + "\n                     For license rights, please visit: \n                    http://www.gnu.org/licenses/gpl.txt\n\n\n\n");
        pause();
     }
  	
      private static int num(String in)
     {
        try
        {
           return Integer.parseInt(in);
        }
            catch(Exception e)
           {
              System.out.print("\n\nExpecting a number for input. Please try again.");
           }
        return -1;
     }
     
  	
  	//Easy way to pause the screen so that someone can see what is outputted before the program continues.
  	//Crude way of doing it, but it works.
      private static void pause()
     {
        System.out.print("\n\nPress ENTER to continue.");
        String input = null;
        try
        {
           input = reader.readLine();
        }
            catch(IOException e)
           {
              e.printStackTrace();
           }
      
     }
     
      private static void error()
     {
        System.out.print("Setting not saved. Invalid argument passed. ");
        pause();
     }
  	
      public static void main(String[] args)
     {
        for(int x = 0; x < 8; x++)
           ships[x] = new ShipConfig();
     
        String sel = null;
        int selNum = 0;
        cls();
        System.out.print("\n\n\n\n\nWelcome to the ServerCFG editor. Made by Rootbear75");
        try
        {
           Thread.sleep(1500);
        }
            catch(Exception e)
           {
              e.printStackTrace();
           }
           
     		//Request Filename / path
        cls();
        System.out.print("Please enter a filename or hit ENTER to continue: ");
        sel = getSelection();
     	/*if(!sel.equals(null)
     		   loadCFG(sel);
     	else*/
     	
     	//main program. MAIN MENU
     	//LABEL: Categories. I use a lot of labels throughout this program.
     	//Makes upward navigation easier (labels). (I.E. From editing a bomb setting back to the main menu fast.)
        while(true)
        {
           category:
           {
              cls();
              System.out.print("      Main Menu"
                 + "\n\nPlease select a category:\n"
                 + "\n 1. Ship and Spectator Settings (Warbird thru Shark)"
                 + "\n 2. Prize Settings (PrizeWeight and Prize)"
                 + "\n 3. Weapon Settings (Guns, Bombs, Mines, etc.)"
                 + "\n 4. Special Item Settings (Other weapons and items)"
                 + "\n 5. Flag, Turf, PowerBall, KOTH, and Score Settings"
                 + "\n 6. Radar, Kill, and Team Settings"
                 + "\n 7. Other Miscellaneous Settings (Network, Msging and Map)");
              sel = getSelection();
              if(sel.equals("1"))
              {
                 while(true)
                 {
                    sel = null;
                    
                    cls();
                    System.out.print("   Ship Settings"
                          + "\n\nPlease select a ship you would like to edit:"
                          + "\n 1. Warbird"
                          + "\n 2. Javelin"
                          + "\n 3. Spider"
                          + "\n 4. Leviathan"
                          + "\n 5. Terrier"
                          + "\n 6. Weasel"
                          + "\n 7. Lancaster"
                          + "\n 8. Shark"
                          + "\n 9. Spectator"
                          + "\n\n 0. Main Menu");
                    sel = getSelection();
                  
                    if(sel.equals("1"))
                       currentShip = 0;
                    else if(sel.equals("2"))
                       currentShip = 1;
                    else if(sel.equals("3"))
                       currentShip = 2;
                    else if(sel.equals("4"))
                       currentShip = 3;
                    else if(sel.equals("5"))
                       currentShip = 4;
                    else if(sel.equals("6"))
                       currentShip = 5;
                    else if(sel.equals("7"))
                       currentShip = 6;
                    else if(sel.equals("8"))
                       currentShip = 7;
                    else if(sel.equals("0"))
                       break category;
                    else if(sel.equals("9"))
                    {
                       while(true)
                       {
                          cls();
                          System.out.print("     Spectator Settings"
                                   + "\n\nPlease select which setting you would like to edit:"
                                   + "\n 1. HideFlags"
                                   + "\n 2. NoXRadar"
                                   + "\n\nOr press ENTER to go back.");
                          sel =	getSelection();
                          if(sel.equals("1"))
                          {
                             cls();
                             System.out.print("                   Hide Flags"
                                      + "\n\n Description: Determines if flags are to be shown to \n              spectators when they are dropped (1=can't see them)"
                                      + "\n\n Expected Values: 0 or 1"
                                      + "\n Current Value: " + spectator_hideFlags);
                             sel = getSelection();
                             if(sel.equals("1")||sel.equals("0"))
                             {
                                spectator_hideFlags = num(sel);
                                System.out.println("\nNew setting is: " + spectator_hideFlags); 
                                pause();
                             }
                             else
                                error();
                          }
                          else if(sel.equals("2"))
                          {
                             cls();
                             System.out.print("                   No XRadar"
                                      + "\n\n Description: Determines if spectators are allowed to have XRadar (0=yes, 1=no)"
                                      + "\n\n Expected Values: 0 or 1"
                                      + "\n Current Value:  " + spectator_noXRadar);
                             sel = getSelection();
                             if(sel.equals("1")||sel.equals("0"))
                             {
                                spectator_noXRadar = num(sel);
                                System.out.println("\n\nNew setting is: " + spectator_noXRadar); 
                                pause();
                             }
                             else
                                error();
                          }
                          else
                             break;
                       }
                    }
                       
                    else
                       continue;
                 }
                    
              }
              
              else if(sel.equals("2"))
              {
                 while(true)
                 {
                    sel = null;
                 }              
              }
             /* else if(sel.equals("3"))
                 continue weapons;
              else if(sel.equals("4"))
                 continue specialItems;
              else if(sel.equals("5"))
                 continue flagPowerball;
              else if(sel.equals("6"))
                 continue radarKillTeam;
              else if(sel.equals("7"))
                 continue miscCategory;*/
           		
           }
        }   
     }
  
      private static class ShipConfig
     {
         private ShipConfig()
        {
           int superTime;
           int shieldsTime;
           int gravity;
           int gravityTopSpeed;
           int bulletFireEnergy;
           int multiFireEnergy;
           int bombFireEnergy;
           int bombFireEnergyUpgrade;
           int landmineFireEnergy;
           int landmineFireEnergyUpgrade;
           int bulletSpeed;
           int bombSpeed;
           int bulletFireDelay;
           int multiFireDelay;
           int bombFireDelay;
           int landmineFireDelay;
           int multiFireAngle;
           int cloakEnergy;
           int stealthEnergy;
           int antiWarpEnergy;
           int xRadarEnergy;
           int maximumRotation;
           int maximumThrust;
           int maximumSpeed;
           int maximumRecharge;
           int maximumEnergy;
           int initialRotation;
           int initialThrust;
           int initialSpeed;
           int initialRecharge;
           int initialEnergy;
           int upgradeRotation;
           int upgradeThrust;
           int upgradeSpeed;
           int upgradeRecharge;
           int upgradeEnergy;
           int afterburnerEnergy;
           int bombThrust;
           int burstSpeed;
           int burstShrapnel;
           int turretThrustPenalty;
           int turretSpeedPenalty;
           int turretLimit;
           int rocketTime;
           int initialBounty;
           int maxMines;
           int repelMax;
           int burstMax;
           int decoyMax;
           int thorMax;
           int brickMax;
           int rocketMax;
           int portalMax;
           int initialRepel;
           int initialBurst;
           int initialBrick;
           int initialRocket;
           int initialThor;
           int initialDecoy;
           int initialPortal;
           int bombBounceCount;
           int cloakStatus;
           int stealthStatus;
           int xRadarStatus;
           int antiWarpStatus;
           int damageFactor;
           int prizeShareLimit;
           int attachBounty;
           int shrapnelMax;
           int shrapnelRate;
           int maxGuns;
           int maxBombs;
           int initialGuns;
           int initialBombs;
           int empBomb;
           int seeMines;
           int doubleBarrel;
           int soccerBallFriction;
           int soccerBallProximity;
           int soccerThrowTime;
           int soccerBallSpeed;
        }
     }
  }

 

 

EDIT: Update Feb 17, 2010 (3am)

Edited by rootbear75
  • 2 weeks later...
Posted (edited)

Working on the ships editing part now.

 

I have an array of class ShipConfig (which is basically a class of variables....

having a few problems getting stuck in infinite loops but i think ill get it eventually...

 

Updated Source and class file. .JAR file is not updated. Use "Java ServerCFG" to run...

 

EDIT: Problem im having is where it displays the ship settings, and you can go to P1 for 1st 20 settings, etc...

 

I have it exiting the loop by recognizing that the character at 0 in the input string should be a digit, then execute the setShipSetting(shipType, setting num)

 

having problems using charAt and isDigit() saying isDigit cannot be dereferenced... idk

 

essentially if you type 1 in, it processes it as a string because you could type other things as well

 

SO i want this:

char c = selection.charAt(0); //First character of input string... DOESNT MATTER IF THE NUMBER IS 10 or 43... if it's a digit then continue
//YES I SEE A PROBLEM: SOMEONE COULD POTENTIALLY DO: 4F or w/e... ill work on that...
if(c.isDigit()) //If character at index is a digit then:
{
selNum = num(selection); //turns input string into an integer.
setShipSetting(ship[currentShip], selNum); //Sends the current ship number (0-7) to set ship setting, then tells it which setting to edit. There is a switch/case in setShipSetting()
//ships[] is an array of shipConfigs, and currentShip is the index that changes depending on which ship you select at the ship selection screen.
}

ServerCFG.zip

Edited by rootbear75

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

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...