2249 lines
62 KiB
C#
2249 lines
62 KiB
C#
using System;
|
|
using System.Collections;
|
|
using System.Collections.Generic;
|
|
using System.Runtime.CompilerServices;
|
|
using UnityEngine;
|
|
|
|
[Serializable]
|
|
public class Settings : MonoBehaviour
|
|
{
|
|
[HideInInspector]
|
|
public int showBox = 0;
|
|
[HideInInspector]
|
|
public bool simplified = true;
|
|
public AudioSource gameMusic;
|
|
public AudioClip[] musicTracks;
|
|
public PhysicMaterial zorbPhysics;
|
|
[HideInInspector]
|
|
public int renderLevel = 0;
|
|
[HideInInspector]
|
|
public int renderAdjustMax = 0;
|
|
[HideInInspector]
|
|
public float renderViewCap = 1000f;
|
|
public bool enteredfullscreen = false;
|
|
[HideInInspector]
|
|
public bool renderAutoAdjust = false;
|
|
[HideInInspector]
|
|
public int renderAdjustTime = 8;
|
|
[HideInInspector]
|
|
public bool showHints = true;
|
|
[HideInInspector]
|
|
public float serverUpdateTime = 0.00f;
|
|
[HideInInspector]
|
|
public float colorUpdateTime = 0.00f;
|
|
public bool colorCustom = false;
|
|
public bool disableHints = false;
|
|
public Color fogColor = Color.clear;
|
|
|
|
// /*UNUSED, DEPRECATED*/ private bool useFog = true;
|
|
// /*UNUSED, DEPRECATED*/ private bool detailedObjects = true;
|
|
// /*UNUSED, DEPRECATED*/ private bool useParticles = true;
|
|
// /*UNUSED, DEPRECATED*/ private bool useTrails = true;
|
|
public bool useMinimap = true;
|
|
// /*UNUSED, DEPRECATED*/ private bool foliage = true;
|
|
// /*UNUSED, DEPRECATED*/ private bool terrainQuality = true;
|
|
// /*UNUSED, DEPRECATED*/ private bool terrainDetail = true;
|
|
// /*UNUSED, DEPRECATED*/ private bool terrainLighting = true;
|
|
public int useMusic = 1;
|
|
public bool useSfx = true;
|
|
public int useHypersound = 0;
|
|
// /*UNUSED, DEPRECATED*/ private bool syncFps = false;
|
|
// /*UNUSED, DEPRECATED*/ private bool playerOnlyLight = false;
|
|
// /*UNUSED, DEPRECATED*/ private Vector2 scrollPosition;
|
|
[HideInInspector]
|
|
public SSAOEffect camSSAO;
|
|
public ContrastStretchEffect camContrast;
|
|
|
|
[HideInInspector]
|
|
public string txt;
|
|
[HideInInspector]
|
|
public string str;
|
|
[HideInInspector]
|
|
public string serverString;
|
|
[HideInInspector]
|
|
public string bannedIPs;
|
|
public static string serverDefault;
|
|
|
|
public string serverWelcome = "";
|
|
|
|
public int camMode = 0;
|
|
public int camChase = 0;
|
|
public float camDist = 0;
|
|
public bool flightCam = false;
|
|
public bool gyroCam = false;
|
|
public bool quarryCam = false;
|
|
|
|
public float worldGrav = -9.81f;
|
|
public float worldFog = 0.001f;
|
|
public float worldViewDist = 5000f;
|
|
public float lavaFog = 0.005f;
|
|
public float lavaAlt = -300.00f;
|
|
public float laserSpeed = 180.00f;
|
|
public float laserGrav = 0f;
|
|
public float laserRico = 0f;
|
|
public bool laserLocking;
|
|
|
|
public float resetTime;
|
|
public bool lasersAllowed = true;
|
|
public bool lasersFatal = false;
|
|
public bool lasersOptHit = false;
|
|
public float ramoSpheres = 0f;
|
|
public float zorbSpeed = 7f;
|
|
public float zorbAgility = 0f;
|
|
public float zorbBounce = 0.5f;
|
|
public bool minimapAllowed = true;
|
|
public bool hideNames = false;
|
|
public bool botsCanFire = true;
|
|
public bool botsCanDrive = true;
|
|
|
|
public int[] firepower;
|
|
public float[] laserLock;
|
|
|
|
public bool buggyAllowed = true;
|
|
public bool buggyFlightSlip = false;
|
|
public bool buggySmartSuspension = true;
|
|
public bool buggyNewPhysics = false;
|
|
public bool buggyAWD = true;
|
|
public float buggyCG = -0.40f;
|
|
public float buggyPower = 1.00f;
|
|
public float buggySpeed = 30.00f;
|
|
public bool buggyFlightLooPower = false;
|
|
public float buggyFlightDrag = 300.00f;
|
|
public float buggyFlightAgility = 1.00f;
|
|
public float buggyTr = 1.00f;
|
|
public float buggySh = 70.00f;
|
|
public float buggySl = 50.00f;
|
|
|
|
public bool tankAllowed = true;
|
|
public float tankPower = 2000.00f;
|
|
public float tankSpeed = 25.00f;
|
|
public float tankGrip = 0.1f;
|
|
public float tankCG = -0.20f;
|
|
|
|
public bool hoverAllowed = true;
|
|
public float hoverHeight = 15.00f;
|
|
public float hoverHover = 100.00f;
|
|
public float hoverRepel = 2.50f;
|
|
public float hoverThrust = 220.0f;
|
|
|
|
public bool jetAllowed = true;
|
|
public float jetHDrag = 0.01f;
|
|
public float jetDrag = 0.001f;
|
|
public float jetSteer = 20;
|
|
public float jetLift = 0.5f;
|
|
public float jetStall = 20;
|
|
|
|
public int networkMode = 0;
|
|
public int networkPhysics = 0;
|
|
public float networkInterpolation = 0.0f;
|
|
public bool isAdmin = false;
|
|
|
|
public void Start()
|
|
{
|
|
simplified = true;
|
|
getPrefs();
|
|
updatePrefs(); //Init music
|
|
if (GameData.userName == "Aubrey (admin)")
|
|
{
|
|
isAdmin = true;
|
|
}
|
|
}
|
|
|
|
public void getPrefs()
|
|
{
|
|
renderLevel = PlayerPrefs.GetInt("renderLevel", 4);
|
|
renderViewCap = PlayerPrefs.GetFloat("viewCap", 1000f);
|
|
Application.targetFrameRate = (int)PlayerPrefs.GetFloat("targetFrameRate", 100f);
|
|
renderAutoAdjust = false;
|
|
showHints = PlayerPrefs.GetInt("showHints", 1) != 0;
|
|
useMusic = PlayerPrefs.GetInt("useMusic", 1);
|
|
useSfx = PlayerPrefs.GetInt("useSfx", 1) != 0;
|
|
useHypersound = PlayerPrefs.GetInt("useHypersound", 0);
|
|
useMinimap = PlayerPrefs.GetInt("useMinimap", 1) != 0;
|
|
camMode = PlayerPrefs.GetInt("cam", 1);
|
|
camChase = PlayerPrefs.GetInt("camChase", 1);
|
|
camDist = PlayerPrefs.GetFloat("camDist", 0.01f);
|
|
flightCam = PlayerPrefs.GetInt("flightCam", 0) != 0;
|
|
gyroCam = PlayerPrefs.GetInt("gyroCam", 0) != 0;
|
|
quarryCam = PlayerPrefs.GetInt("quarryCam", 0) != 0;
|
|
}
|
|
|
|
public void showDialogGame()
|
|
{
|
|
GUILayout.Label("Resolution:");
|
|
if (GUILayout.Button((!Screen.fullScreen ?
|
|
"Enter" :
|
|
"Exit") + " Fullscreen (0)"))
|
|
{
|
|
toggleFullscreen();
|
|
}
|
|
|
|
if (
|
|
Screen.fullScreen ||
|
|
Application.platform == RuntimePlatform.OSXPlayer ||
|
|
Application.platform == RuntimePlatform.WindowsPlayer)
|
|
{
|
|
GUILayout.BeginHorizontal();
|
|
if (
|
|
(Screen.resolutions[0].width < Screen.width ||
|
|
Screen.resolutions[0].height < Screen.height) &&
|
|
GUILayout.Button("<<", GUILayout.Width(28)))
|
|
{
|
|
for (int i = Screen.resolutions.Length - 1; i >= 0; i--)
|
|
{
|
|
if (!((Screen.resolutions[i].width <= Screen.width &&
|
|
Screen.resolutions[i].height < Screen.height) ||
|
|
(Screen.resolutions[i].width < Screen.width &&
|
|
Screen.resolutions[i].height <= Screen.height)))
|
|
{
|
|
continue;
|
|
}
|
|
Screen.SetResolution(
|
|
Screen.resolutions[i].width,
|
|
Screen.resolutions[i].height,
|
|
Screen.fullScreen);
|
|
break;
|
|
}
|
|
}
|
|
GUILayout.Label(Screen.width + "X" + Screen.height);
|
|
if (
|
|
(Screen.resolutions[Screen.resolutions.Length - 1].width > Screen.width ||
|
|
Screen.resolutions[Screen.resolutions.Length - 1].height > Screen.height) &&
|
|
GUILayout.Button(">>", GUILayout.Width(28)))
|
|
{
|
|
foreach (Resolution res in Screen.resolutions)
|
|
{
|
|
if (!((res.width >= Screen.width &&
|
|
res.height > Screen.height) ||
|
|
(res.width > Screen.width &&
|
|
res.height >= Screen.height))) continue;
|
|
Screen.SetResolution(
|
|
res.width,
|
|
res.height,
|
|
Screen.fullScreen);
|
|
break;
|
|
}
|
|
}
|
|
GUILayout.EndHorizontal();
|
|
}
|
|
|
|
GUILayout.FlexibleSpace();
|
|
GUILayout.Space(20f);
|
|
GUILayout.Label("Rendering Quality:");
|
|
|
|
GUILayout.BeginHorizontal();
|
|
if (renderLevel == 1)
|
|
{
|
|
GUILayout.Label("Fastest");
|
|
}
|
|
else if (renderLevel == 2)
|
|
{
|
|
GUILayout.Label("Fast");
|
|
}
|
|
else if (renderLevel == 3)
|
|
{
|
|
GUILayout.Label("Simple");
|
|
}
|
|
else if (renderLevel == 4)
|
|
{
|
|
GUILayout.Label("Good");
|
|
}
|
|
else if (renderLevel == 5)
|
|
{
|
|
GUILayout.Label("Beautiful");
|
|
}
|
|
else if (renderLevel == 6)
|
|
{
|
|
GUILayout.Label("Fantastic");
|
|
}
|
|
|
|
GUILayout.Label("(" + Game.Controller.fps.ToString("f0") + " FPS)");
|
|
|
|
GUILayout.EndHorizontal();
|
|
|
|
GUILayout.BeginHorizontal();
|
|
if (renderLevel > 1)
|
|
{
|
|
if (GUILayout.Button("<<"))
|
|
{
|
|
renderLevel--;
|
|
PlayerPrefs.SetInt("renderLevel", renderLevel);
|
|
updatePrefs();
|
|
}
|
|
}
|
|
|
|
if (renderLevel > 1 && renderLevel < 6)
|
|
{
|
|
GUILayout.Space(5f);
|
|
}
|
|
|
|
if (renderLevel < 6)
|
|
{
|
|
if (GUILayout.Button(">>"))
|
|
{
|
|
renderLevel++;
|
|
PlayerPrefs.SetInt("renderLevel", renderLevel);
|
|
updatePrefs();
|
|
}
|
|
}
|
|
GUILayout.EndHorizontal();
|
|
|
|
GUILayout.Space(10f);
|
|
GUILayout.Label(
|
|
"Visibility Cap: (" +
|
|
(renderViewCap == 1000f ?
|
|
"MAX" :
|
|
Mathf.Floor(renderViewCap).ToString()) +
|
|
")");
|
|
float cg = GUILayout.HorizontalSlider(
|
|
renderViewCap,
|
|
200f,
|
|
1000f);
|
|
if (renderViewCap != cg)
|
|
{
|
|
renderViewCap = cg;
|
|
PlayerPrefs.SetFloat("viewCap", cg);
|
|
updatePrefs();
|
|
}
|
|
|
|
GUILayout.Space(5f);
|
|
GUILayout.Label(
|
|
"FPS Cap: (" +
|
|
(Application.targetFrameRate == -1 ?
|
|
"MAX" :
|
|
Application.targetFrameRate.ToString()) +
|
|
")");
|
|
|
|
if (Application.targetFrameRate == -1)
|
|
{
|
|
Application.targetFrameRate = 100;
|
|
}
|
|
cg = GUILayout.HorizontalSlider(
|
|
Application.targetFrameRate,
|
|
10f,
|
|
100f);
|
|
if ((float)Application.targetFrameRate != cg)
|
|
{
|
|
Application.targetFrameRate = (int)cg;
|
|
PlayerPrefs.SetFloat("targetFrameRate", cg);
|
|
}
|
|
if (
|
|
Application.targetFrameRate == 0 ||
|
|
Application.targetFrameRate == 100)
|
|
{
|
|
Application.targetFrameRate = -1;
|
|
}
|
|
|
|
GUILayout.FlexibleSpace();
|
|
GUILayout.Space(20f);
|
|
GUILayout.Label("Interface:");
|
|
|
|
if (minimapAllowed && GUILayout.Toggle(useMinimap, "Enable Minimap") != useMinimap)
|
|
{
|
|
useMinimap = !useMinimap;
|
|
PlayerPrefs.SetInt("useMinimap", useMinimap ? 1 : 0);
|
|
updatePrefs();
|
|
}
|
|
|
|
if (GUILayout.Toggle(showHints, "Enable Settings Advisor") != showHints)
|
|
{
|
|
showHints = !showHints;
|
|
PlayerPrefs.SetInt("showHints", showHints ? 1 : 0);
|
|
updatePrefs();
|
|
}
|
|
|
|
GUILayout.FlexibleSpace();
|
|
GUILayout.Space(20f);
|
|
GUILayout.Label("Audio:");
|
|
|
|
if (GUILayout.Toggle(useSfx, "Sound Effects Enabled") != useSfx)
|
|
{
|
|
useSfx = !useSfx;
|
|
PlayerPrefs.SetInt("useSfx", useSfx ? 1 : 0);
|
|
}
|
|
|
|
if (GUILayout.Toggle(useMusic == 0, "No Music") != (useMusic == 0))
|
|
{
|
|
useMusic = 0;
|
|
PlayerPrefs.SetInt("useMusic", 0);
|
|
updatePrefs();
|
|
}
|
|
|
|
if (GUILayout.Toggle(useMusic == 1, "Classic") != (useMusic == 1))
|
|
{
|
|
useMusic = 1;
|
|
PlayerPrefs.SetInt("useMusic", 1);
|
|
updatePrefs();
|
|
}
|
|
if (GUILayout.Toggle(useMusic == 2, "Ambient") != (useMusic == 2))
|
|
{
|
|
useMusic = 2;
|
|
PlayerPrefs.SetInt("useMusic", 2);
|
|
updatePrefs();
|
|
}
|
|
if (GUILayout.Toggle(useMusic == 3, "Carefree") != (useMusic == 3))
|
|
{
|
|
useMusic = 3;
|
|
PlayerPrefs.SetInt("useMusic", 3);
|
|
updatePrefs();
|
|
}
|
|
|
|
if (GUILayout.Toggle(useHypersound == 1, "HyperSound") != (useHypersound == 1))
|
|
{
|
|
useHypersound = ((useHypersound != 1) ? 1 : 0);
|
|
PlayerPrefs.SetInt("useHypersound", (useHypersound != 0) ? 1 : 0);
|
|
updatePrefs();
|
|
}
|
|
}
|
|
|
|
public void showDialogPlayer()
|
|
{
|
|
GUILayout.Space(20f);
|
|
|
|
if (resetTime > 0f)
|
|
{
|
|
GUILayout.Label(
|
|
"Reset In " +
|
|
(10f - (Time.time - resetTime)));
|
|
}
|
|
else if (
|
|
resetTime > -1f &&
|
|
GUILayout.Button("Reset My Position (/r)"))
|
|
{
|
|
resetTime = Time.time;
|
|
Game.Player.rigidbody.isKinematic = true;
|
|
Game.Messaging.broadcast(
|
|
Game.Player.name +
|
|
" Resetting in 10 seconds...");
|
|
}
|
|
|
|
if (zorbSpeed != 0f)
|
|
{
|
|
GUILayout.Space(10f);
|
|
if (GUILayout.Button(
|
|
(Game.PlayerVeh.zorbBall ?
|
|
"Deactivate" :
|
|
"Activate") +
|
|
" My Xorb (/x)"))
|
|
{
|
|
Game.Player.networkView.RPC(
|
|
"sZ",
|
|
RPCMode.All,
|
|
!Game.PlayerVeh.zorbBall);
|
|
}
|
|
}
|
|
|
|
GUILayout.Space(20f);
|
|
|
|
GUILayout.Label("Camera Mode:");
|
|
|
|
//Ride (1, alt)
|
|
//Chase (2)
|
|
//Soar (5)
|
|
//Spectate
|
|
//Wander
|
|
|
|
//Distance (3-4)
|
|
//GyRide (6)
|
|
//HyperCam
|
|
|
|
if (GUILayout.Toggle(camMode == 0, "Ride (1, alt)") != (camMode == 0))
|
|
{
|
|
camMode = 0;
|
|
PlayerPrefs.SetInt("cam", 0);
|
|
}
|
|
if (GUILayout.Toggle(camMode == 1, "Chase (2)") != (camMode == 1))
|
|
{
|
|
camMode = 1;
|
|
PlayerPrefs.SetInt("cam", 1);
|
|
}
|
|
if (GUILayout.Toggle(camMode == 2, "Soar(5)") != (camMode == 2))
|
|
{
|
|
camMode = 2;
|
|
PlayerPrefs.SetInt("cam", 2);
|
|
}
|
|
if (GUILayout.Toggle(camMode == 3, "Spectate(6)") != (camMode == 3))
|
|
{
|
|
camMode = 3;
|
|
PlayerPrefs.SetInt("cam", 3);
|
|
}
|
|
if (GUILayout.Toggle(camMode == 4, "Roam") != (camMode == 4))
|
|
{
|
|
camMode = 4;
|
|
PlayerPrefs.SetInt("cam", 4);
|
|
}
|
|
|
|
if (GUILayout.Toggle(gyroCam, "GyRide Enabled (7)") != gyroCam)
|
|
{
|
|
gyroCam = !gyroCam;
|
|
PlayerPrefs.SetInt("gyroCam", gyroCam ? 1 : 0);
|
|
}
|
|
|
|
if (GUILayout.Toggle(flightCam, "HyperCam Enabled") != flightCam)
|
|
{
|
|
flightCam = !flightCam;
|
|
PlayerPrefs.SetInt("flightCam", flightCam ? 1 : 0);
|
|
}
|
|
|
|
if (GUILayout.Toggle(quarryCam, "QuarryCam Enabled") != quarryCam)
|
|
{
|
|
quarryCam = !quarryCam;
|
|
PlayerPrefs.SetInt("quarryCam", quarryCam ? 1 : 0);
|
|
}
|
|
|
|
float cg;
|
|
if (camMode == 0)
|
|
{
|
|
GUILayout.Space(10f);
|
|
GUILayout.Label("(Press (2) or (esc) keys to unlock your cursor)");
|
|
GUILayout.Space(10f);
|
|
}
|
|
|
|
else if (camMode == 1)
|
|
{
|
|
GUILayout.Space(5f);
|
|
GUILayout.Label("Chase Strategy:");
|
|
if (GUILayout.Toggle(camChase == 0, "Smooth") != (camChase == 0))
|
|
{
|
|
camChase = 0;
|
|
PlayerPrefs.SetInt("camChase", 0);
|
|
}
|
|
if (GUILayout.Toggle(camChase == 1, "Agile") != (camChase == 1))
|
|
{
|
|
camChase = 1;
|
|
PlayerPrefs.SetInt("camChase", 1);
|
|
}
|
|
if (GUILayout.Toggle(camChase == 2, "Arcade") != (camChase == 2))
|
|
{
|
|
camChase = 2;
|
|
PlayerPrefs.SetInt("camChase", 2);
|
|
}
|
|
GUILayout.Space(5f);
|
|
GUILayout.Label("Chase Distance: (3-4)");
|
|
cg = GUILayout.HorizontalSlider(camDist, 0f, 20f);
|
|
if (camDist != cg)
|
|
{
|
|
camDist = cg;
|
|
PlayerPrefs.SetFloat("camDist", cg);
|
|
}
|
|
}
|
|
|
|
else if (camMode == 3 || camMode == 4)
|
|
{
|
|
GUILayout.Space(10f);
|
|
GUILayout.Label("(Move camera with UIOJKL keys)");
|
|
GUILayout.Space(10f);
|
|
}
|
|
|
|
GUILayout.FlexibleSpace();
|
|
|
|
GUILayout.FlexibleSpace();
|
|
GUILayout.Space(20f);
|
|
GUILayout.Label("Vehicle Color:");
|
|
if (Game.PlayerVeh.isIt != 0 && Game.Players.Count > 1)
|
|
{
|
|
GUILayout.Label("(You are quarry, and therefore green)");
|
|
}
|
|
|
|
if (GUILayout.Button((!colorCustom) ?
|
|
"Random Coloring" :
|
|
"Randomize Coloring"))
|
|
{
|
|
StartCoroutine_Auto(ramdomizeVehicleColor());
|
|
}
|
|
|
|
GUILayout.BeginHorizontal();
|
|
cg = GUILayout.HorizontalSlider(
|
|
Game.PlayerVeh.vehicleColor.r,
|
|
0f,
|
|
1f);
|
|
if (Game.PlayerVeh.vehicleColor.r != cg)
|
|
{
|
|
Game.PlayerVeh.vehicleColor.r = cg;
|
|
updateVehicleAccent();
|
|
updateVehicleColor();
|
|
}
|
|
GUILayout.Label("Red", GUILayout.Width(65f));
|
|
GUILayout.EndHorizontal();
|
|
GUILayout.BeginHorizontal();
|
|
cg = GUILayout.HorizontalSlider(
|
|
Mathf.Min(
|
|
Mathf.Lerp(
|
|
0.1f,
|
|
0.8f,
|
|
(Game.PlayerVeh.vehicleColor.r +
|
|
Game.PlayerVeh.vehicleColor.b) / 2f),
|
|
Game.PlayerVeh.vehicleColor.g),
|
|
0f,
|
|
Mathf.Lerp(
|
|
0.1f,
|
|
0.8f,
|
|
(Game.PlayerVeh.vehicleColor.r +
|
|
Game.PlayerVeh.vehicleColor.b) / 2f));
|
|
if (Game.PlayerVeh.vehicleColor.g != cg)
|
|
{
|
|
Game.PlayerVeh.vehicleColor.g = cg;
|
|
updateVehicleAccent();
|
|
updateVehicleColor();
|
|
}
|
|
GUILayout.Label("Green", GUILayout.Width(65f));
|
|
GUILayout.EndHorizontal();
|
|
GUILayout.BeginHorizontal();
|
|
cg = GUILayout.HorizontalSlider(
|
|
Game.PlayerVeh.vehicleColor.b,
|
|
0f,
|
|
1f);
|
|
if (Game.PlayerVeh.vehicleColor.b != cg)
|
|
{
|
|
Game.PlayerVeh.vehicleColor.b = cg;
|
|
updateVehicleAccent();
|
|
updateVehicleColor();
|
|
}
|
|
GUILayout.Label("Blue", GUILayout.Width(65f));
|
|
GUILayout.EndHorizontal();
|
|
|
|
GUILayout.Space(5f);
|
|
GUILayout.Label("Accent Color:");
|
|
|
|
GUILayout.BeginHorizontal();
|
|
cg = GUILayout.HorizontalSlider(
|
|
Game.PlayerVeh.vehicleAccent.r,
|
|
0f,
|
|
1f);
|
|
if (Game.PlayerVeh.vehicleAccent.r != cg)
|
|
{
|
|
Game.PlayerVeh.vehicleAccent.r = cg;
|
|
updateVehicleColor();
|
|
}
|
|
GUILayout.Label("Red", GUILayout.Width(65f));
|
|
GUILayout.EndHorizontal();
|
|
GUILayout.BeginHorizontal();
|
|
cg = GUILayout.HorizontalSlider(
|
|
Game.PlayerVeh.vehicleAccent.g,
|
|
0f,
|
|
1f);
|
|
if (Game.PlayerVeh.vehicleAccent.g != cg)
|
|
{
|
|
Game.PlayerVeh.vehicleAccent.g = cg;
|
|
updateVehicleColor();
|
|
}
|
|
GUILayout.Label("Green", GUILayout.Width(65f));
|
|
GUILayout.EndHorizontal();
|
|
GUILayout.BeginHorizontal();
|
|
cg = GUILayout.HorizontalSlider(
|
|
Game.PlayerVeh.vehicleAccent.b,
|
|
0f,
|
|
1f);
|
|
if (Game.PlayerVeh.vehicleAccent.b != cg)
|
|
{
|
|
Game.PlayerVeh.vehicleAccent.b = cg;
|
|
updateVehicleColor();
|
|
}
|
|
GUILayout.Label("Blue", GUILayout.Width(65f));
|
|
GUILayout.EndHorizontal();
|
|
|
|
GUILayout.FlexibleSpace();
|
|
}
|
|
|
|
public void showDialogPlayers()
|
|
{
|
|
GUILayout.FlexibleSpace();
|
|
|
|
if (
|
|
Game.Controller.isHost &&
|
|
Game.Controller.unauthPlayers.Count > 0)
|
|
{
|
|
GUILayout.Label("Joining Players:");
|
|
|
|
for (
|
|
int i = 0;
|
|
i < Game.Controller.unauthPlayers.Count;
|
|
i++)
|
|
{
|
|
GUILayout.Space(10f);
|
|
GUILayout.Label(Game.Controller.unauthPlayers[i].n);
|
|
GUILayout.TextArea(Game.Controller.unauthPlayers[i].p.externalIP);
|
|
GUILayout.BeginHorizontal();
|
|
if (GUILayout.Button("Evict"))
|
|
{
|
|
networkView.RPC(
|
|
"dN",
|
|
Game.Controller.unauthPlayers[i].p,
|
|
2);
|
|
if (Network.isServer)
|
|
{
|
|
Network.CloseConnection(
|
|
Game.Controller.unauthPlayers[i].p,
|
|
true);
|
|
}
|
|
else
|
|
{
|
|
networkView.RPC(
|
|
"cC",
|
|
RPCMode.Server,
|
|
Game.Controller.unauthPlayers[i].p,
|
|
Game.Controller.unauthPlayers[i].n,
|
|
0);
|
|
}
|
|
}
|
|
else if (
|
|
GUILayout.Button("Invite") &&
|
|
!(bool)Game.Controller.authenticatedPlayers[Game.Controller.unauthPlayers[i].p])
|
|
{
|
|
if (Network.isServer)
|
|
{
|
|
Game.Controller.authenticatedPlayers.Add(
|
|
Game.Controller.unauthPlayers[i].p,
|
|
1);
|
|
}
|
|
else
|
|
{
|
|
networkView.RPC(
|
|
"pI",
|
|
RPCMode.Server,
|
|
Game.Controller.unauthPlayers[i].p,
|
|
Game.Controller.unauthPlayers[i].n);
|
|
}
|
|
}
|
|
GUILayout.EndHorizontal();
|
|
}
|
|
|
|
GUILayout.FlexibleSpace();
|
|
|
|
GUILayout.Space(20f);
|
|
GUILayout.Label("Active Players:");
|
|
}
|
|
|
|
// /*UNUSED*/ GameObject[] gos;
|
|
Vehicle veh;
|
|
VehicleNet vehNet;
|
|
foreach (DictionaryEntry plrE in Game.Players)
|
|
{
|
|
veh = (Vehicle)plrE.Value;
|
|
GameObject go = veh.gameObject;
|
|
vehNet = (VehicleNet)go.GetComponentInChildren(typeof(VehicleNet));
|
|
GUILayout.Space(10f);
|
|
GUILayout.Label(plrE.Key + (veh.isPlayer ? " (Me)" : ""));
|
|
GUILayout.TextArea(
|
|
(go.networkView.isMine ?
|
|
"" :
|
|
(vehNet ?
|
|
Mathf.RoundToInt(vehNet.ping * 1000) +
|
|
" png - " +
|
|
Mathf.RoundToInt(vehNet.jitter * 1000) +
|
|
" jtr" +
|
|
veh.netCode +
|
|
"\n" :
|
|
"")) +
|
|
(vehNet && veh.networkMode == 2 ?
|
|
Mathf.RoundToInt(vehNet.calcPing) +
|
|
" CalcPng - " +
|
|
Mathf.RoundToInt(vehNet.rpcPing) +
|
|
" TmstmpOfst\n" :
|
|
"") +
|
|
(Network.isServer ?
|
|
go.networkView.owner.externalIP +
|
|
" " +
|
|
go.networkView.owner.ipAddress :
|
|
"") +
|
|
"\n" +
|
|
go.networkView.viewID.ToString() +
|
|
" " +
|
|
veh.networkMode /*+ "/" + go.networkView.owner.ToString()*/,
|
|
GUILayout.Height(30));
|
|
GUILayout.BeginHorizontal();
|
|
if (
|
|
(Game.Controller.isHost || isAdmin) &&
|
|
!veh.isBot &&
|
|
!go.networkView.isMine &&
|
|
GUILayout.Button("Evict"))
|
|
{
|
|
Game.Messaging.broadcast(
|
|
go.name +
|
|
" was evicted by "
|
|
+ Game.Player.name);
|
|
if (Network.isServer)
|
|
{
|
|
networkView.RPC(
|
|
"dN",
|
|
((Vehicle)plrE.Value).networkView.owner,
|
|
2);
|
|
((Vehicle)plrE.Value).networkView.RPC(
|
|
"dN",
|
|
RPCMode.All,
|
|
2);
|
|
Network.CloseConnection(
|
|
((Vehicle)plrE.Value).networkView.owner,
|
|
true);
|
|
}
|
|
else
|
|
{
|
|
networkView.RPC(
|
|
"cC",
|
|
RPCMode.Server,
|
|
((Vehicle)plrE.Value).networkView.owner,
|
|
plrE.Key,
|
|
1);
|
|
}
|
|
}
|
|
else if (
|
|
(Game.Controller.isHost || isAdmin) &&
|
|
!veh.isBot &&
|
|
!go.networkView.isMine &&
|
|
GUILayout.Button("Ban"))
|
|
{
|
|
Game.Messaging.broadcast(
|
|
go.name +
|
|
" was banned by " +
|
|
Game.Player.name);
|
|
if (Network.isServer)
|
|
{
|
|
bannedIPs += (bannedIPs != "" ? "\n" : "") +
|
|
((Vehicle)plrE.Value).networkView.owner.ipAddress +
|
|
" " +
|
|
go.name;
|
|
networkView.RPC(
|
|
"dN",
|
|
((Vehicle)plrE.Value).networkView.owner,
|
|
2);
|
|
((Vehicle)plrE.Value).networkView.RPC(
|
|
"dN",
|
|
RPCMode.All,
|
|
2);
|
|
Network.CloseConnection(
|
|
((Vehicle)plrE.Value).networkView.owner,
|
|
true);
|
|
Game.Controller.registerHost();
|
|
}
|
|
else
|
|
{
|
|
networkView.RPC(
|
|
"cC",
|
|
RPCMode.Server,
|
|
((Vehicle)plrE.Value).networkView.owner,
|
|
plrE.Key,
|
|
2);
|
|
}
|
|
}
|
|
GUILayout.EndHorizontal();
|
|
GUILayout.FlexibleSpace();
|
|
}
|
|
|
|
if (Game.Controller.isHost)
|
|
{
|
|
GUILayout.Space(20f);
|
|
GUILayout.Label("Banned Players:");
|
|
if (bannedIPs != "" && GUILayout.Button("Unban All"))
|
|
{
|
|
bannedIPs = "";
|
|
Game.Controller.StartCoroutine_Auto(Game.Controller.registerHost());
|
|
updateServerPrefs();
|
|
}
|
|
string cm = GUILayout.TextField(bannedIPs);
|
|
if (cm != bannedIPs)
|
|
{
|
|
bannedIPs = cm;
|
|
updateServerPrefs();
|
|
}
|
|
}
|
|
}
|
|
|
|
public void showDialogServer()
|
|
{
|
|
if (Game.Controller.isHost || isAdmin)
|
|
{
|
|
if (GUILayout.Button(">> Default All <<"))
|
|
{
|
|
Game.Controller.networkView.RPC(
|
|
"sSS",
|
|
RPCMode.All,
|
|
serverDefault);
|
|
}
|
|
|
|
GUILayout.Space(20f);
|
|
GUILayout.Label("Server Name:");
|
|
string cm = GUILayout.TextField(Game.Controller.serverName, 45);
|
|
if (cm != Game.Controller.serverName)
|
|
{
|
|
Game.Controller.serverName = cm;
|
|
updateServerPrefs();
|
|
}
|
|
|
|
GUILayout.Space(20f);
|
|
GUILayout.Label("Server Features:");
|
|
|
|
Game.Controller.serverHidden = GUILayout.Toggle(
|
|
Game.Controller.serverHidden,
|
|
"Hide Server from List");
|
|
if (
|
|
Game.Controller.serverHidden &&
|
|
Game.Controller.hostRegistered)
|
|
{
|
|
Game.Controller.unregisterHost();
|
|
updateServerPrefs();
|
|
}
|
|
else if (
|
|
!Game.Controller.serverHidden &&
|
|
!Game.Controller.hostRegistered)
|
|
{
|
|
Game.Controller.StartCoroutine_Auto(Game.Controller.registerHostSet());
|
|
updateServerPrefs();
|
|
}
|
|
|
|
GUILayout.BeginHorizontal();
|
|
GUILayout.Label("Password?");
|
|
cm = GUILayout.TextField(Game.Controller.serverPassword);
|
|
if (cm != Game.Controller.serverPassword)
|
|
{
|
|
Game.Controller.serverPassword = cm;
|
|
updateServerPrefs();
|
|
}
|
|
GUILayout.EndHorizontal();
|
|
|
|
GUILayout.Label("Welcome Message:");
|
|
cm = GUILayout.TextField(serverWelcome);
|
|
if (cm != serverWelcome)
|
|
{
|
|
serverWelcome = cm;
|
|
updateServerPrefs();
|
|
}
|
|
|
|
GUILayout.Space(20f);
|
|
GUILayout.Label("Game Features:");
|
|
|
|
if (GUILayout.Toggle(
|
|
minimapAllowed,
|
|
"Minimap enabled") != minimapAllowed)
|
|
{
|
|
minimapAllowed = !minimapAllowed;
|
|
updateServerPrefs();
|
|
}
|
|
|
|
if (GUILayout.Toggle(
|
|
hideNames,
|
|
"Camouflage Badges") != hideNames)
|
|
{
|
|
hideNames = !hideNames;
|
|
updateServerPrefs();
|
|
}
|
|
|
|
if (GUILayout.Toggle(
|
|
ramoSpheres != 0f,
|
|
"RORBs Enabled") != (ramoSpheres != 0f))
|
|
{
|
|
ramoSpheres = ((ramoSpheres != 0f) ? 0f : 0.5f);
|
|
if (ramoSpheres != 0f)
|
|
{
|
|
zorbSpeed = 7f;
|
|
}
|
|
updateServerPrefs();
|
|
}
|
|
|
|
float cg;
|
|
if (ramoSpheres != 0f)
|
|
{
|
|
GUILayout.BeginHorizontal();
|
|
cg = GUILayout.HorizontalSlider(
|
|
ramoSpheres,
|
|
0.001f,
|
|
1f);
|
|
if (ramoSpheres != cg)
|
|
{
|
|
ramoSpheres = cg;
|
|
updateServerPrefs();
|
|
}
|
|
GUILayout.Label("Size", GUILayout.Width(65f));
|
|
GUILayout.EndHorizontal();
|
|
|
|
if (GUILayout.Toggle(
|
|
zorbSpeed != 0f,
|
|
"XORBs Available") != (zorbSpeed != 0f))
|
|
{
|
|
zorbSpeed = ((zorbSpeed != 0f) ? 0 : 7);
|
|
updateServerPrefs();
|
|
}
|
|
|
|
if (zorbSpeed != 0f)
|
|
{
|
|
GUILayout.BeginHorizontal();
|
|
cg = GUILayout.HorizontalSlider(zorbSpeed, 0.001f, 14f);
|
|
if (zorbSpeed != cg)
|
|
{
|
|
zorbSpeed = cg;
|
|
updateServerPrefs();
|
|
}
|
|
GUILayout.Label("X Speed", GUILayout.Width(65f));
|
|
GUILayout.EndHorizontal();
|
|
|
|
GUILayout.BeginHorizontal();
|
|
cg = GUILayout.HorizontalSlider(zorbAgility, -7f, 7f);
|
|
if (zorbAgility != cg)
|
|
{
|
|
zorbAgility = cg;
|
|
updateServerPrefs();
|
|
}
|
|
GUILayout.Label("X Agility", GUILayout.Width(65f));
|
|
GUILayout.EndHorizontal();
|
|
|
|
GUILayout.BeginHorizontal();
|
|
cg = GUILayout.HorizontalSlider(zorbBounce, 0f, 1f);
|
|
if (zorbBounce != cg)
|
|
{
|
|
zorbBounce = cg;
|
|
updateServerPrefs();
|
|
}
|
|
GUILayout.Label("X Bounce", GUILayout.Width(65f));
|
|
GUILayout.EndHorizontal();
|
|
|
|
}
|
|
|
|
GUILayout.Space(10f);
|
|
}
|
|
|
|
if (GUILayout.Toggle(
|
|
lasersAllowed,
|
|
"Lasers enabled") != lasersAllowed)
|
|
{
|
|
lasersAllowed = !lasersAllowed;
|
|
updateServerPrefs();
|
|
}
|
|
|
|
if (lasersAllowed)
|
|
{
|
|
if (
|
|
ramoSpheres != 0f &&
|
|
GUILayout.Toggle(lasersOptHit, "L Hit ORBs") != lasersOptHit)
|
|
{
|
|
lasersOptHit = !lasersOptHit;
|
|
updateServerPrefs();
|
|
}
|
|
if (GUILayout.Toggle(
|
|
lasersFatal,
|
|
"L Hits Rematerialize") != lasersFatal)
|
|
{
|
|
lasersFatal = !lasersFatal;
|
|
updateServerPrefs();
|
|
}
|
|
|
|
GUILayout.BeginHorizontal();
|
|
cg = GUILayout.HorizontalSlider(laserSpeed, 20f, 340f);
|
|
if ((float)laserSpeed != cg)
|
|
{
|
|
laserSpeed = (int)cg;
|
|
updateServerPrefs();
|
|
}
|
|
GUILayout.Label("Lsr Spd", GUILayout.Width(65f));
|
|
GUILayout.EndHorizontal();
|
|
|
|
GUILayout.BeginHorizontal();
|
|
cg = GUILayout.HorizontalSlider(laserGrav, 0f, 1f);
|
|
if (laserGrav != cg)
|
|
{
|
|
laserGrav = cg;
|
|
updateServerPrefs();
|
|
}
|
|
GUILayout.Label("Lsr Gvt", GUILayout.Width(65f));
|
|
GUILayout.EndHorizontal();
|
|
|
|
GUILayout.BeginHorizontal();
|
|
cg = GUILayout.HorizontalSlider(laserRico, 0f, 1f);
|
|
if (laserRico != cg)
|
|
{
|
|
laserRico = cg;
|
|
updateServerPrefs();
|
|
}
|
|
GUILayout.Label("Lsr Rco", GUILayout.Width(65f));
|
|
GUILayout.EndHorizontal();
|
|
|
|
GUILayout.Space(10f);
|
|
}
|
|
|
|
GUILayout.BeginHorizontal();
|
|
cg = GUILayout.HorizontalSlider(
|
|
worldGrav,
|
|
0.81f * -1f,
|
|
18.81f * -1f);
|
|
if (worldGrav != cg)
|
|
{
|
|
worldGrav = cg;
|
|
updateServerPrefs();
|
|
}
|
|
GUILayout.Label("Gravity", GUILayout.Width(65f));
|
|
GUILayout.EndHorizontal();
|
|
|
|
GUILayout.BeginHorizontal();
|
|
cg = GUILayout.HorizontalSlider(worldViewDist, 300f, 9700f);
|
|
if (worldViewDist != cg)
|
|
{
|
|
worldViewDist = cg;
|
|
updateServerPrefs();
|
|
}
|
|
GUILayout.Label("Visibility", GUILayout.Width(65f));
|
|
GUILayout.EndHorizontal();
|
|
|
|
if ((bool)World.sea)
|
|
{
|
|
GUILayout.BeginHorizontal();
|
|
cg = GUILayout.HorizontalSlider(
|
|
lavaFog,
|
|
0.015f,
|
|
0.01f * -1f);
|
|
if (lavaFog != cg)
|
|
{
|
|
lavaFog = cg;
|
|
updateServerPrefs();
|
|
}
|
|
GUILayout.Label("Sea Vis", GUILayout.Width(65f));
|
|
GUILayout.EndHorizontal();
|
|
|
|
GUILayout.BeginHorizontal();
|
|
cg = GUILayout.HorizontalSlider(lavaAlt, -100f, 100f);
|
|
if (lavaAlt != cg)
|
|
{
|
|
lavaAlt = cg;
|
|
updateServerPrefs();
|
|
}
|
|
GUILayout.Label("Sea Alt", GUILayout.Width(65f));
|
|
GUILayout.EndHorizontal();
|
|
}
|
|
|
|
GUILayout.Space(20f);
|
|
GUILayout.Label("Bots:");
|
|
|
|
if (GUILayout.Toggle(botsCanFire, "Can Fire") != botsCanFire)
|
|
{
|
|
botsCanFire = !botsCanFire;
|
|
updateServerPrefs();
|
|
}
|
|
|
|
if (GUILayout.Toggle(botsCanDrive, "Can Drive") != botsCanDrive)
|
|
{
|
|
botsCanDrive = !botsCanDrive;
|
|
updateServerPrefs();
|
|
}
|
|
|
|
GUILayout.Space(10f);
|
|
|
|
GUILayout.BeginHorizontal();
|
|
if (
|
|
GUILayout.Button("Add Bot") &&
|
|
Game.Controller.botsInGame < int.MaxValue)
|
|
{
|
|
Game.Controller.StartCoroutine_Auto(Game.Controller.addBot());
|
|
}
|
|
if (Game.Controller.botsInGame > 0)
|
|
{
|
|
GUILayout.Space(5f);
|
|
if (GUILayout.Button("Axe Bot"))
|
|
{
|
|
Game.Controller.StartCoroutine_Auto(Game.Controller.axeBot());
|
|
}
|
|
}
|
|
GUILayout.EndHorizontal();
|
|
|
|
GUILayout.Space(20f);
|
|
GUILayout.Label("Buggy:");
|
|
|
|
if (GUILayout.Toggle(buggyAllowed, "Available") != buggyAllowed)
|
|
{
|
|
buggyAllowed = !buggyAllowed;
|
|
updateServerPrefs();
|
|
}
|
|
if (buggyAllowed)
|
|
{
|
|
if (GUILayout.Toggle(
|
|
buggyFlightSlip,
|
|
"Stall Blending") != buggyFlightSlip)
|
|
{
|
|
buggyFlightSlip = !buggyFlightSlip;
|
|
updateServerPrefs();
|
|
}
|
|
if (GUILayout.Toggle(
|
|
buggyFlightLooPower,
|
|
"Powered Loops") != buggyFlightLooPower)
|
|
{
|
|
buggyFlightLooPower = !buggyFlightLooPower;
|
|
updateServerPrefs();
|
|
}
|
|
if (GUILayout.Toggle(
|
|
buggySmartSuspension,
|
|
"Smart Suspension") != buggySmartSuspension)
|
|
{
|
|
buggySmartSuspension = !buggySmartSuspension;
|
|
updateServerPrefs();
|
|
}
|
|
|
|
GUILayout.BeginHorizontal();
|
|
cg = GUILayout.HorizontalSlider(buggyFlightDrag, 50f, 550f);
|
|
if (buggyFlightDrag != cg)
|
|
{
|
|
buggyFlightDrag = cg;
|
|
updateServerPrefs();
|
|
}
|
|
GUILayout.Label("Fl Speed", GUILayout.Width(65f));
|
|
GUILayout.EndHorizontal();
|
|
|
|
GUILayout.BeginHorizontal();
|
|
cg = GUILayout.HorizontalSlider(
|
|
buggyFlightAgility,
|
|
0.5f,
|
|
1.5f);
|
|
if (buggyFlightAgility != cg)
|
|
{
|
|
buggyFlightAgility = cg;
|
|
updateServerPrefs();
|
|
}
|
|
GUILayout.Label("Fl Agility", GUILayout.Width(65f));
|
|
GUILayout.EndHorizontal();
|
|
|
|
GUILayout.BeginHorizontal();
|
|
cg = GUILayout.HorizontalSlider(
|
|
buggyCG,
|
|
-0.1f,
|
|
-0.7f);
|
|
if (buggyCG != cg)
|
|
{
|
|
buggyCG = cg;
|
|
updateServerPrefs();
|
|
}
|
|
GUILayout.Label("Stability", GUILayout.Width(65f));
|
|
GUILayout.EndHorizontal();
|
|
|
|
GUILayout.BeginHorizontal();
|
|
cg = GUILayout.HorizontalSlider(buggyPower, 0.5f, 1.5f);
|
|
if (buggyPower != cg)
|
|
{
|
|
buggyPower = cg;
|
|
updateServerPrefs();
|
|
}
|
|
GUILayout.Label("Power", GUILayout.Width(65f));
|
|
GUILayout.EndHorizontal();
|
|
|
|
GUILayout.BeginHorizontal();
|
|
cg = GUILayout.HorizontalSlider(buggySpeed, 5f, 55f);
|
|
if (buggySpeed != cg)
|
|
{
|
|
buggySpeed = cg;
|
|
updateServerPrefs();
|
|
}
|
|
GUILayout.Label("Speed", GUILayout.Width(65f));
|
|
GUILayout.EndHorizontal();
|
|
|
|
GUILayout.BeginHorizontal();
|
|
cg = GUILayout.HorizontalSlider(buggyTr, 0.1f, 1.9f);
|
|
if (buggyTr != cg)
|
|
{
|
|
buggyTr = cg;
|
|
updateServerPrefs();
|
|
}
|
|
GUILayout.Label("Traction", GUILayout.Width(65f));
|
|
GUILayout.EndHorizontal();
|
|
|
|
GUILayout.BeginHorizontal();
|
|
cg = GUILayout.HorizontalSlider(buggySh, 20f, 120f);
|
|
if (buggySh != cg)
|
|
{
|
|
buggySh = cg;
|
|
updateServerPrefs();
|
|
}
|
|
GUILayout.Label("Shocks", GUILayout.Width(65f));
|
|
GUILayout.EndHorizontal();
|
|
|
|
if (lasersAllowed)
|
|
{
|
|
GUILayout.BeginHorizontal();
|
|
cg = GUILayout.HorizontalSlider(firepower[0], 0f, 3f);
|
|
if ((float)firepower[0] != cg)
|
|
{
|
|
firepower[0] = (int)cg;
|
|
updateServerPrefs();
|
|
}
|
|
GUILayout.Label("Firepower", GUILayout.Width(65f));
|
|
GUILayout.EndHorizontal();
|
|
|
|
GUILayout.BeginHorizontal();
|
|
cg = GUILayout.HorizontalSlider(laserLock[0], 0f, 1f);
|
|
if (laserLock[0] != cg)
|
|
{
|
|
laserLock[0] = cg;
|
|
updateServerPrefs();
|
|
}
|
|
GUILayout.Label("Lsr Lck", GUILayout.Width(65f));
|
|
GUILayout.EndHorizontal();
|
|
}
|
|
|
|
}
|
|
|
|
GUILayout.Space(20f);
|
|
GUILayout.Label("Tank:");
|
|
|
|
if (GUILayout.Toggle(tankAllowed, "Available") != tankAllowed)
|
|
{
|
|
tankAllowed = !tankAllowed;
|
|
updateServerPrefs();
|
|
}
|
|
|
|
if (tankAllowed)
|
|
{
|
|
GUILayout.BeginHorizontal();
|
|
cg = GUILayout.HorizontalSlider(tankCG, 1f, 1.4f * -1f);
|
|
if (tankCG != cg)
|
|
{
|
|
tankCG = cg;
|
|
updateServerPrefs();
|
|
}
|
|
GUILayout.Label("Stability", GUILayout.Width(65f));
|
|
GUILayout.EndHorizontal();
|
|
|
|
GUILayout.BeginHorizontal();
|
|
cg = GUILayout.HorizontalSlider(tankGrip, 0f, 0.2f);
|
|
if (tankGrip != cg)
|
|
{
|
|
tankGrip = cg;
|
|
updateServerPrefs();
|
|
}
|
|
GUILayout.Label("Grip", GUILayout.Width(65f));
|
|
GUILayout.EndHorizontal();
|
|
|
|
GUILayout.BeginHorizontal();
|
|
cg = GUILayout.HorizontalSlider(tankSpeed, 10f, 40f);
|
|
if (tankSpeed != cg)
|
|
{
|
|
tankSpeed = cg;
|
|
updateServerPrefs();
|
|
}
|
|
GUILayout.Label("Speed", GUILayout.Width(65f));
|
|
GUILayout.EndHorizontal();
|
|
|
|
GUILayout.BeginHorizontal();
|
|
cg = GUILayout.HorizontalSlider(tankPower, 500f, 3500f);
|
|
if (tankPower != cg)
|
|
{
|
|
tankPower = cg;
|
|
updateServerPrefs();
|
|
}
|
|
GUILayout.Label("Power", GUILayout.Width(65f));
|
|
GUILayout.EndHorizontal();
|
|
|
|
if (lasersAllowed)
|
|
{
|
|
GUILayout.BeginHorizontal();
|
|
cg = GUILayout.HorizontalSlider(firepower[2], 0f, 3f);
|
|
if ((float)firepower[2] != cg)
|
|
{
|
|
firepower[2] = (int)cg;
|
|
updateServerPrefs();
|
|
}
|
|
GUILayout.Label("Firepower", GUILayout.Width(65f));
|
|
GUILayout.EndHorizontal();
|
|
|
|
GUILayout.BeginHorizontal();
|
|
cg = GUILayout.HorizontalSlider(laserLock[2], 0f, 1f);
|
|
if (laserLock[2] != cg)
|
|
{
|
|
laserLock[2] = cg;
|
|
updateServerPrefs();
|
|
}
|
|
GUILayout.Label("Lsr Lck", GUILayout.Width(65f));
|
|
GUILayout.EndHorizontal();
|
|
}
|
|
}
|
|
|
|
GUILayout.Space(20f);
|
|
GUILayout.Label("Hovercraft:");
|
|
|
|
if (GUILayout.Toggle(hoverAllowed, "Available") != hoverAllowed)
|
|
{
|
|
hoverAllowed = !hoverAllowed;
|
|
updateServerPrefs();
|
|
}
|
|
|
|
if (hoverAllowed)
|
|
{
|
|
GUILayout.BeginHorizontal();
|
|
cg = GUILayout.HorizontalSlider(hoverHeight, 5f, 25f);
|
|
if (hoverHeight != cg)
|
|
{
|
|
hoverHeight = cg;
|
|
updateServerPrefs();
|
|
}
|
|
GUILayout.Label("Height", GUILayout.Width(65f));
|
|
GUILayout.EndHorizontal();
|
|
|
|
GUILayout.BeginHorizontal();
|
|
cg = GUILayout.HorizontalSlider(hoverHover, 20f, 180f);
|
|
if (hoverHover != cg)
|
|
{
|
|
hoverHover = cg;
|
|
updateServerPrefs();
|
|
}
|
|
GUILayout.Label("Hover", GUILayout.Width(65f));
|
|
GUILayout.EndHorizontal();
|
|
|
|
GUILayout.BeginHorizontal();
|
|
cg = GUILayout.HorizontalSlider(hoverRepel, 0.5f, 4.5f);
|
|
if (hoverRepel != cg)
|
|
{
|
|
hoverRepel = cg;
|
|
updateServerPrefs();
|
|
}
|
|
GUILayout.Label("Repulsion", GUILayout.Width(65f));
|
|
GUILayout.EndHorizontal();
|
|
|
|
GUILayout.BeginHorizontal();
|
|
cg = GUILayout.HorizontalSlider(hoverThrust, 20f, 420f);
|
|
if (hoverThrust != cg)
|
|
{
|
|
hoverThrust = cg;
|
|
updateServerPrefs();
|
|
}
|
|
GUILayout.Label("Thrust", GUILayout.Width(65f));
|
|
GUILayout.EndHorizontal();
|
|
|
|
if (lasersAllowed)
|
|
{
|
|
GUILayout.BeginHorizontal();
|
|
cg = GUILayout.HorizontalSlider(firepower[1], 0f, 3f);
|
|
if ((float)firepower[1] != cg)
|
|
{
|
|
firepower[1] = (int)cg;
|
|
updateServerPrefs();
|
|
}
|
|
GUILayout.Label("Firepower", GUILayout.Width(65f));
|
|
GUILayout.EndHorizontal();
|
|
|
|
GUILayout.BeginHorizontal();
|
|
cg = GUILayout.HorizontalSlider(laserLock[1], 0f, 1f);
|
|
if (laserLock[1] != cg)
|
|
{
|
|
laserLock[1] = cg;
|
|
updateServerPrefs();
|
|
}
|
|
GUILayout.Label("Lsr Lck", GUILayout.Width(65f));
|
|
GUILayout.EndHorizontal();
|
|
}
|
|
}
|
|
|
|
GUILayout.Space(20f);
|
|
GUILayout.Label("Jet:");
|
|
|
|
if (GUILayout.Toggle(jetAllowed, "Available") != jetAllowed)
|
|
{
|
|
jetAllowed = !jetAllowed;
|
|
updateServerPrefs();
|
|
}
|
|
|
|
if (jetAllowed)
|
|
{
|
|
GUILayout.BeginHorizontal();
|
|
cg = GUILayout.HorizontalSlider(jetHDrag, 0.005f, 0.015f);
|
|
if (jetHDrag != cg)
|
|
{
|
|
jetHDrag = cg;
|
|
updateServerPrefs();
|
|
}
|
|
GUILayout.Label("HoverDrag", GUILayout.Width(65f));
|
|
GUILayout.EndHorizontal();
|
|
|
|
GUILayout.BeginHorizontal();
|
|
cg = GUILayout.HorizontalSlider(jetDrag, 0.0005f, 0.0015f);
|
|
if (jetDrag != cg)
|
|
{
|
|
jetDrag = cg;
|
|
updateServerPrefs();
|
|
}
|
|
GUILayout.Label("Drag", GUILayout.Width(65f));
|
|
GUILayout.EndHorizontal();
|
|
|
|
GUILayout.BeginHorizontal();
|
|
cg = GUILayout.HorizontalSlider(jetSteer, 5f, 35f);
|
|
if ((float)jetSteer != cg)
|
|
{
|
|
jetSteer = (int)cg;
|
|
updateServerPrefs();
|
|
}
|
|
GUILayout.Label("Agility", GUILayout.Width(65f));
|
|
GUILayout.EndHorizontal();
|
|
|
|
GUILayout.BeginHorizontal();
|
|
cg = GUILayout.HorizontalSlider(jetLift, 0.1f, 0.9f);
|
|
if (jetLift != cg)
|
|
{
|
|
jetLift = cg;
|
|
updateServerPrefs();
|
|
}
|
|
GUILayout.Label("Lift", GUILayout.Width(65f));
|
|
GUILayout.EndHorizontal();
|
|
|
|
GUILayout.BeginHorizontal();
|
|
cg = GUILayout.HorizontalSlider(jetStall, 1f, 39f);
|
|
if ((float)jetStall != cg)
|
|
{
|
|
jetStall = (int)cg;
|
|
updateServerPrefs();
|
|
}
|
|
GUILayout.Label("Stall", GUILayout.Width(65f));
|
|
GUILayout.EndHorizontal();
|
|
|
|
if (lasersAllowed)
|
|
{
|
|
GUILayout.BeginHorizontal();
|
|
cg = GUILayout.HorizontalSlider(firepower[3], 0f, 3f);
|
|
if ((float)firepower[3] != cg)
|
|
{
|
|
firepower[3] = (int)cg;
|
|
updateServerPrefs();
|
|
}
|
|
GUILayout.Label("Firepower", GUILayout.Width(65f));
|
|
GUILayout.EndHorizontal();
|
|
|
|
GUILayout.BeginHorizontal();
|
|
cg = GUILayout.HorizontalSlider(laserLock[3], 0f, 1f);
|
|
if (laserLock[3] != cg)
|
|
{
|
|
laserLock[3] = cg;
|
|
updateServerPrefs();
|
|
}
|
|
GUILayout.Label("Lsr Lck", GUILayout.Width(65f));
|
|
GUILayout.EndHorizontal();
|
|
}
|
|
}
|
|
|
|
GUILayout.Space(20f);
|
|
GUILayout.Label("Network Mode:");
|
|
|
|
if (GUILayout.Toggle(networkMode == 0, "UDP") != (networkMode == 0))
|
|
{
|
|
networkMode = 0;
|
|
updateServerPrefs();
|
|
}
|
|
if (GUILayout.Toggle(networkMode == 1, "RDC") != (networkMode == 1))
|
|
{
|
|
networkMode = 1;
|
|
updateServerPrefs();
|
|
}
|
|
if (GUILayout.Toggle(networkMode == 2, "RPC") != (networkMode == 2))
|
|
{
|
|
networkMode = 2;
|
|
updateServerPrefs();
|
|
}
|
|
|
|
if (networkMode == 0)
|
|
{
|
|
GUILayout.Label("\"UDP\" is the fastest mode, but may result in players with \"No Connection\"");
|
|
}
|
|
else if (networkMode == 1)
|
|
{
|
|
GUILayout.Label("\"RDC\" sacrifices speed for reliability");
|
|
}
|
|
else
|
|
{
|
|
GUILayout.Label("\"RPC\" guarantees reliability at the expense of speed");
|
|
}
|
|
|
|
GUILayout.Space(20f);
|
|
GUILayout.Label("Network Physics:");
|
|
|
|
if (GUILayout.Toggle(networkPhysics == 0, "Advanced") != (networkPhysics == 0))
|
|
{
|
|
networkPhysics = 0;
|
|
updateServerPrefs();
|
|
}
|
|
if (GUILayout.Toggle(networkPhysics == 1, "Enhanced") != (networkPhysics == 1))
|
|
{
|
|
networkPhysics = 1;
|
|
updateServerPrefs();
|
|
}
|
|
if (GUILayout.Toggle(networkPhysics == 2, "Simplified") != (networkPhysics == 2))
|
|
{
|
|
networkPhysics = 2;
|
|
updateServerPrefs();
|
|
}
|
|
|
|
if (networkPhysics == 0)
|
|
{
|
|
GUILayout.Label("\"Advanced\" is optimized for smooth movement and realistic collisions over the internet");
|
|
}
|
|
else if (networkPhysics == 1)
|
|
{
|
|
GUILayout.Label("\"Enhanced\" provides maximum movement precision at the cost of higher processor and network load");
|
|
}
|
|
else
|
|
{
|
|
GUILayout.Label("\"Simplified\" provides smooth movement and maximum framerates in games which don't need highly accurate vehicle collisions");
|
|
}
|
|
|
|
GUILayout.Space(20f);
|
|
GUILayout.Label("Network Interpolation:");
|
|
|
|
GUILayout.BeginHorizontal();
|
|
cg = GUILayout.HorizontalSlider(networkInterpolation, 0f, 0.5f);
|
|
if (networkInterpolation != cg)
|
|
{
|
|
networkInterpolation = cg;
|
|
updateServerPrefs();
|
|
}
|
|
GUILayout.Label((!(networkInterpolation < 0.01f)) ? (networkInterpolation * 1000f + " ms") : "Auto", GUILayout.Width(65f));
|
|
GUILayout.EndHorizontal();
|
|
|
|
}
|
|
else
|
|
{
|
|
GUILayout.Space(20f);
|
|
GUILayout.Label("(NOTE: all these parameters are adjustable only by the server host. You can't change anything in this window)");
|
|
GUILayout.Space(60f);
|
|
|
|
GUILayout.Toggle(minimapAllowed, "Minimap enabled");
|
|
GUILayout.Toggle(hideNames, "Camouflage Badges");
|
|
|
|
GUILayout.Toggle(ramoSpheres != 0f, "RORBs Enabled");
|
|
if (ramoSpheres != 0f)
|
|
{
|
|
GUILayout.BeginHorizontal();
|
|
GUILayout.HorizontalSlider(ramoSpheres, 0.001f, 1f);
|
|
GUILayout.Label("Size", GUILayout.Width(65f));
|
|
GUILayout.EndHorizontal();
|
|
|
|
GUILayout.Toggle(zorbSpeed != 0f, "XORBs Available");
|
|
if (zorbSpeed != 0f)
|
|
{
|
|
GUILayout.BeginHorizontal();
|
|
GUILayout.HorizontalSlider(zorbSpeed, 0.001f, 14f);
|
|
GUILayout.Label("X Speed", GUILayout.Width(65f));
|
|
GUILayout.EndHorizontal();
|
|
GUILayout.BeginHorizontal();
|
|
GUILayout.HorizontalSlider(zorbAgility, -7f, 7f);
|
|
GUILayout.Label("X Agility", GUILayout.Width(65f));
|
|
GUILayout.EndHorizontal();
|
|
GUILayout.BeginHorizontal();
|
|
GUILayout.HorizontalSlider(zorbBounce, 0f, 1f);
|
|
GUILayout.Label("X Bounce", GUILayout.Width(65f));
|
|
GUILayout.EndHorizontal();
|
|
}
|
|
GUILayout.Space(10f);
|
|
}
|
|
|
|
GUILayout.Toggle(lasersAllowed, "Lasers enabled");
|
|
if (lasersAllowed)
|
|
{
|
|
if (ramoSpheres != 0f)
|
|
{
|
|
GUILayout.Toggle(lasersOptHit, "L Hit ORBs");
|
|
}
|
|
GUILayout.Toggle(lasersFatal, "L Hits Rematerialize");
|
|
GUILayout.BeginHorizontal();
|
|
GUILayout.HorizontalSlider(laserSpeed, 20f, 340f);
|
|
GUILayout.Label("Lsr Spd", GUILayout.Width(65f));
|
|
GUILayout.EndHorizontal();
|
|
GUILayout.BeginHorizontal();
|
|
GUILayout.HorizontalSlider(laserGrav, 0f, 1f);
|
|
GUILayout.Label("Lsr Gvt", GUILayout.Width(65f));
|
|
GUILayout.EndHorizontal();
|
|
GUILayout.BeginHorizontal();
|
|
GUILayout.HorizontalSlider(laserRico, 0f, 1f);
|
|
GUILayout.Label("Lsr Rco", GUILayout.Width(65f));
|
|
GUILayout.EndHorizontal();
|
|
GUILayout.Space(10f);
|
|
}
|
|
GUILayout.BeginHorizontal();
|
|
|
|
GUILayout.HorizontalSlider(worldGrav, 0.81f * -1f, 18.81f * -1f);
|
|
GUILayout.Label("Gravity", GUILayout.Width(65f));
|
|
GUILayout.EndHorizontal();
|
|
|
|
GUILayout.BeginHorizontal();
|
|
GUILayout.HorizontalSlider(worldViewDist, 500f, 9500f);
|
|
GUILayout.Label("Visibility", GUILayout.Width(65f));
|
|
GUILayout.EndHorizontal();
|
|
|
|
if ((bool)World.sea)
|
|
{
|
|
GUILayout.BeginHorizontal();
|
|
GUILayout.HorizontalSlider(lavaFog, 0.015f, 0.01f * -1f);
|
|
GUILayout.Label("Lava Fog", GUILayout.Width(65f));
|
|
GUILayout.EndHorizontal();
|
|
|
|
GUILayout.BeginHorizontal();
|
|
GUILayout.HorizontalSlider(lavaAlt, -100f, 100f);
|
|
GUILayout.Label("Lava Alt", GUILayout.Width(65f));
|
|
GUILayout.EndHorizontal();
|
|
}
|
|
|
|
GUILayout.Space(20f);
|
|
GUILayout.Label("Bots:");
|
|
GUILayout.Toggle(botsCanFire, "Can Fire");
|
|
GUILayout.Toggle(botsCanDrive, "Can Drive");
|
|
|
|
GUILayout.Space(20f);
|
|
GUILayout.Label("Buggy:");
|
|
GUILayout.Toggle(buggyAllowed, "Available");
|
|
if (buggyAllowed)
|
|
{
|
|
GUILayout.Toggle(buggyFlightSlip, "Stall Blending");
|
|
GUILayout.Toggle(buggyFlightLooPower, "Powered Loops");
|
|
GUILayout.Toggle(buggySmartSuspension, "Smart Suspension");
|
|
GUILayout.BeginHorizontal();
|
|
GUILayout.HorizontalSlider(buggyFlightDrag, 50f, 550f);
|
|
GUILayout.Label("Fl Speed", GUILayout.Width(65f));
|
|
GUILayout.EndHorizontal();
|
|
GUILayout.BeginHorizontal();
|
|
GUILayout.HorizontalSlider(buggyFlightAgility, 0.5f, 1.5f);
|
|
GUILayout.Label("Fl Agility", GUILayout.Width(65f));
|
|
GUILayout.EndHorizontal();
|
|
GUILayout.BeginHorizontal();
|
|
GUILayout.HorizontalSlider(buggyCG, 0.1f * -1f, 0.7f * -1f);
|
|
GUILayout.Label("Stability", GUILayout.Width(65f));
|
|
GUILayout.EndHorizontal();
|
|
GUILayout.BeginHorizontal();
|
|
GUILayout.HorizontalSlider(buggyPower, 0.5f, 1.5f);
|
|
GUILayout.Label("Power", GUILayout.Width(65f));
|
|
GUILayout.EndHorizontal();
|
|
GUILayout.BeginHorizontal();
|
|
GUILayout.HorizontalSlider(buggySpeed, 5f, 55f);
|
|
GUILayout.Label("Speed", GUILayout.Width(65f));
|
|
GUILayout.EndHorizontal();
|
|
GUILayout.BeginHorizontal();
|
|
GUILayout.HorizontalSlider(buggyTr, 0.1f, 1.9f);
|
|
GUILayout.Label("Traction", GUILayout.Width(65f));
|
|
GUILayout.EndHorizontal();
|
|
GUILayout.BeginHorizontal();
|
|
GUILayout.HorizontalSlider(buggySh, 20f, 120f);
|
|
GUILayout.Label("Shocks", GUILayout.Width(65f));
|
|
GUILayout.EndHorizontal();
|
|
if (lasersAllowed)
|
|
{
|
|
GUILayout.BeginHorizontal();
|
|
GUILayout.HorizontalSlider(firepower[0], 0f, 3f);
|
|
GUILayout.Label("Firepower", GUILayout.Width(65f));
|
|
GUILayout.EndHorizontal();
|
|
GUILayout.BeginHorizontal();
|
|
GUILayout.HorizontalSlider(laserLock[0], 0f, 1f);
|
|
GUILayout.Label("Lsr Lck", GUILayout.Width(65f));
|
|
GUILayout.EndHorizontal();
|
|
}
|
|
}
|
|
|
|
GUILayout.Space(20f);
|
|
GUILayout.Label("Tank:");
|
|
GUILayout.Toggle(tankAllowed, "Available");
|
|
if (tankAllowed)
|
|
{
|
|
GUILayout.BeginHorizontal();
|
|
GUILayout.HorizontalSlider(tankCG, 1f, 1.4f * -1f);
|
|
GUILayout.Label("Stability", GUILayout.Width(65f));
|
|
GUILayout.EndHorizontal();
|
|
GUILayout.BeginHorizontal();
|
|
GUILayout.HorizontalSlider(tankGrip, 0f, 0.2f);
|
|
GUILayout.Label("Grip", GUILayout.Width(65f));
|
|
GUILayout.EndHorizontal();
|
|
GUILayout.BeginHorizontal();
|
|
GUILayout.HorizontalSlider(tankSpeed, 10f, 40f);
|
|
GUILayout.Label("Speed", GUILayout.Width(65f));
|
|
GUILayout.EndHorizontal();
|
|
GUILayout.BeginHorizontal();
|
|
GUILayout.HorizontalSlider(tankPower, 500f, 3500f);
|
|
GUILayout.Label("Power", GUILayout.Width(65f));
|
|
GUILayout.EndHorizontal();
|
|
if (lasersAllowed)
|
|
{
|
|
GUILayout.BeginHorizontal();
|
|
GUILayout.HorizontalSlider(firepower[2], 0f, 3f);
|
|
GUILayout.Label("Firepower", GUILayout.Width(65f));
|
|
GUILayout.EndHorizontal();
|
|
GUILayout.BeginHorizontal();
|
|
GUILayout.HorizontalSlider(laserLock[2], 0f, 1f);
|
|
GUILayout.Label("Lsr Lck", GUILayout.Width(65f));
|
|
GUILayout.EndHorizontal();
|
|
}
|
|
}
|
|
|
|
GUILayout.Space(20f);
|
|
GUILayout.Label("Hovercraft:");
|
|
GUILayout.Toggle(hoverAllowed, "Available");
|
|
if (hoverAllowed)
|
|
{
|
|
GUILayout.BeginHorizontal();
|
|
GUILayout.HorizontalSlider(hoverHeight, 5f, 25f);
|
|
GUILayout.Label("Height", GUILayout.Width(65f));
|
|
GUILayout.EndHorizontal();
|
|
GUILayout.BeginHorizontal();
|
|
GUILayout.HorizontalSlider(hoverHover, 20f, 180f);
|
|
GUILayout.Label("Hover", GUILayout.Width(65f));
|
|
GUILayout.EndHorizontal();
|
|
GUILayout.BeginHorizontal();
|
|
GUILayout.HorizontalSlider(hoverRepel, 0.5f, 4.5f);
|
|
GUILayout.Label("Repulsion", GUILayout.Width(65f));
|
|
GUILayout.EndHorizontal();
|
|
GUILayout.BeginHorizontal();
|
|
GUILayout.HorizontalSlider(hoverThrust, 20f, 420f);
|
|
GUILayout.Label("Thrust", GUILayout.Width(65f));
|
|
GUILayout.EndHorizontal();
|
|
if (lasersAllowed)
|
|
{
|
|
GUILayout.BeginHorizontal();
|
|
GUILayout.HorizontalSlider(firepower[1], 0f, 3f);
|
|
GUILayout.Label("Firepower", GUILayout.Width(65f));
|
|
GUILayout.EndHorizontal();
|
|
GUILayout.BeginHorizontal();
|
|
GUILayout.HorizontalSlider(laserLock[1], 0f, 1f);
|
|
GUILayout.Label("Lsr Lck", GUILayout.Width(65f));
|
|
GUILayout.EndHorizontal();
|
|
}
|
|
}
|
|
|
|
|
|
GUILayout.Space(20f);
|
|
GUILayout.Label("Jet:");
|
|
GUILayout.Toggle(jetAllowed, "Available");
|
|
if (jetAllowed)
|
|
{
|
|
GUILayout.BeginHorizontal();
|
|
GUILayout.HorizontalSlider(jetHDrag, 0.005f, 0.015f);
|
|
GUILayout.Label("HoverDrag", GUILayout.Width(65f));
|
|
GUILayout.EndHorizontal();
|
|
GUILayout.BeginHorizontal();
|
|
GUILayout.HorizontalSlider(jetDrag, 0.0005f, 0.0015f);
|
|
GUILayout.Label("Drag", GUILayout.Width(65f));
|
|
GUILayout.EndHorizontal();
|
|
GUILayout.BeginHorizontal();
|
|
GUILayout.HorizontalSlider(jetSteer, 5f, 35f);
|
|
GUILayout.Label("Agility", GUILayout.Width(65f));
|
|
GUILayout.EndHorizontal();
|
|
GUILayout.BeginHorizontal();
|
|
GUILayout.HorizontalSlider(jetLift, 0.1f, 0.9f);
|
|
GUILayout.Label("Lift", GUILayout.Width(65f));
|
|
GUILayout.EndHorizontal();
|
|
GUILayout.BeginHorizontal();
|
|
GUILayout.HorizontalSlider(jetStall, 1f, 39f);
|
|
GUILayout.Label("Stall", GUILayout.Width(65f));
|
|
GUILayout.EndHorizontal();
|
|
if (lasersAllowed)
|
|
{
|
|
GUILayout.BeginHorizontal();
|
|
GUILayout.HorizontalSlider(firepower[3], 0f, 3f);
|
|
GUILayout.Label("Firepower", GUILayout.Width(65f));
|
|
GUILayout.EndHorizontal();
|
|
GUILayout.BeginHorizontal();
|
|
GUILayout.HorizontalSlider(laserLock[3], 0f, 1f);
|
|
GUILayout.Label("Lsr Lck", GUILayout.Width(65f));
|
|
GUILayout.EndHorizontal();
|
|
}
|
|
}
|
|
|
|
GUILayout.Space(20f);
|
|
GUILayout.Label("Networking:");
|
|
GUILayout.Toggle(networkMode == 0, "UDP");
|
|
GUILayout.Toggle(networkMode == 1, "RDC");
|
|
GUILayout.Toggle(networkMode == 2, "RPC");
|
|
GUILayout.Toggle(networkPhysics == 0, "Advanced");
|
|
GUILayout.Toggle(networkPhysics == 1, "Enhanced");
|
|
GUILayout.Toggle(networkPhysics == 2, "Simplified");
|
|
GUILayout.BeginHorizontal();
|
|
GUILayout.HorizontalSlider(networkInterpolation, 0f, 0.5f);
|
|
GUILayout.Label(
|
|
(networkInterpolation < 0.01 ?
|
|
"Auto" :
|
|
(networkInterpolation * 1000) + " ms"),
|
|
GUILayout.Width(65));
|
|
GUILayout.EndHorizontal();
|
|
}
|
|
|
|
GUILayout.Label("nTime: " + Mathf.RoundToInt((float)Network.time));
|
|
|
|
GUILayout.Space(20f);
|
|
GUILayout.Label("Settings I/O:");
|
|
serverString = GUILayout.TextField(serverString);
|
|
if (
|
|
Game.Controller.isHost &&
|
|
GUILayout.Button("Apply Custom\nSettings"))
|
|
{
|
|
Game.Controller.networkView.RPC(
|
|
"sSS",
|
|
RPCMode.All,
|
|
serverString);
|
|
}
|
|
}
|
|
|
|
public void updatePrefs()
|
|
{
|
|
|
|
/*
|
|
1 Fastest
|
|
2 Fast
|
|
3 Simple
|
|
4 Good
|
|
5 Beautiful
|
|
6 Fantastic
|
|
*/
|
|
|
|
//This can be automatically overwritten by the _Core GUI, so make sure it is whatever the user set it to when entering a game.
|
|
renderLevel = PlayerPrefs.GetInt("renderLevel", 4);
|
|
|
|
//Laser Locking
|
|
laserLocking = false;
|
|
for (int i = 0; i < laserLock.Length; i++)
|
|
{
|
|
if (laserLock[i] > 0f)
|
|
{
|
|
laserLocking = true;
|
|
break;
|
|
}
|
|
}
|
|
|
|
//LOD Distance
|
|
if (renderLevel > 4)
|
|
{
|
|
World.lodDist = 1000;
|
|
}
|
|
else if (renderLevel > 3)
|
|
{
|
|
World.lodDist = 400;
|
|
}
|
|
else if (renderLevel > 2)
|
|
{
|
|
World.lodDist = 75;
|
|
}
|
|
else
|
|
{
|
|
World.lodDist = 0;
|
|
}
|
|
|
|
//Rendering Effects
|
|
if (renderLevel > 4)
|
|
{
|
|
camContrast.enabled = true;
|
|
|
|
if (renderLevel > 5)
|
|
{
|
|
camSSAO.enabled = true;
|
|
camSSAO.m_Downsampling = 2;
|
|
}
|
|
else
|
|
{
|
|
camSSAO.enabled = false;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
camSSAO.enabled = false;
|
|
camContrast.enabled = false;
|
|
}
|
|
|
|
if (Game.Settings.networkPhysics == 2)
|
|
{
|
|
Network.sendRate = 10f;
|
|
}
|
|
else
|
|
{
|
|
Network.sendRate = 15f;
|
|
}
|
|
|
|
if (ramoSpheres == 0f)
|
|
{
|
|
zorbSpeed = 0f;
|
|
}
|
|
if (useMusic == 0)
|
|
{
|
|
gameMusic.enabled = false;
|
|
if (gameMusic.isPlaying)
|
|
{
|
|
gameMusic.Stop();
|
|
}
|
|
}
|
|
else
|
|
{
|
|
gameMusic.enabled = true;
|
|
gameMusic.pitch = 1f;
|
|
gameMusic.clip = musicTracks[useMusic - 1];
|
|
if (!gameMusic.isPlaying)
|
|
{
|
|
gameMusic.Play();
|
|
}
|
|
}
|
|
|
|
GameObject.Find("MiniMap").camera.enabled = minimapAllowed && useMinimap;
|
|
|
|
QualitySettings.currentLevel = (QualityLevel)(renderLevel - 1);
|
|
|
|
Time.fixedDeltaTime = ((renderLevel <= 3) ? 0.025f : 0.02f);
|
|
|
|
Camera.main.farClipPlane = ((renderViewCap != 1000f) ?
|
|
Mathf.Min(renderViewCap, worldViewDist) :
|
|
worldViewDist);
|
|
worldFog = Mathf.Lerp(
|
|
0.007f,
|
|
0.0003f,
|
|
Camera.main.farClipPlane / 6000f);
|
|
|
|
if (World.terrains != null)
|
|
{
|
|
foreach (Terrain trn in World.terrains)
|
|
{
|
|
//Details: Rocks, trees, etc
|
|
trn.treeCrossFadeLength = 30f;
|
|
if (renderLevel > 4)
|
|
{ //Fantastic, Beautiful
|
|
trn.detailObjectDistance = 300f;
|
|
trn.treeDistance = 600f;
|
|
trn.treeMaximumFullLODCount = 100;
|
|
trn.treeBillboardDistance = 150f;
|
|
}
|
|
else if (renderLevel > 3)
|
|
{ //Good
|
|
trn.detailObjectDistance = 200f;
|
|
trn.treeDistance = 500f;
|
|
trn.treeMaximumFullLODCount = 50;
|
|
trn.treeBillboardDistance = 100f;
|
|
}
|
|
else if (renderLevel > 2)
|
|
{ //Simple
|
|
trn.detailObjectDistance = 150f;
|
|
trn.treeDistance = 300f;
|
|
trn.treeMaximumFullLODCount = 10;
|
|
trn.treeBillboardDistance = 75f;
|
|
}
|
|
else
|
|
{ //Fast, Fastest
|
|
trn.detailObjectDistance = 0f;
|
|
trn.treeDistance = 0f;
|
|
trn.treeMaximumFullLODCount = 0;
|
|
trn.treeBillboardDistance = 0f;
|
|
}
|
|
|
|
//Textures
|
|
trn.basemapDistance = 1500f;
|
|
|
|
//Heightmap Resolution
|
|
if (renderLevel > 5)
|
|
{
|
|
trn.heightmapMaximumLOD = 0;
|
|
trn.heightmapPixelError = 5f;
|
|
}
|
|
else if (renderLevel > 2)
|
|
{
|
|
trn.heightmapMaximumLOD = 0;
|
|
trn.heightmapPixelError = 15f;
|
|
}
|
|
else if (renderLevel > 1)
|
|
{
|
|
trn.heightmapMaximumLOD = 0;
|
|
trn.heightmapPixelError = 50f;
|
|
}
|
|
else
|
|
{
|
|
trn.heightmapMaximumLOD = 1;
|
|
trn.heightmapPixelError = 50f;
|
|
}
|
|
|
|
/*if (renderLevel > 4)
|
|
{
|
|
trn.lighting = TerrainLighting.Pixel;
|
|
}
|
|
else
|
|
{
|
|
trn.lighting = TerrainLighting.Lightmap;
|
|
}*/
|
|
}
|
|
}
|
|
|
|
Physics.gravity = new Vector3(0f, worldGrav, 0f);
|
|
if ((bool)World.sea)
|
|
{
|
|
Vector3 wspos = World.sea.position;
|
|
wspos.y = lavaAlt;
|
|
World.sea.position = wspos;
|
|
}
|
|
zorbPhysics.bouncyness = zorbBounce;
|
|
|
|
updateObjects();
|
|
}
|
|
|
|
public void updateServerPrefs()
|
|
{
|
|
serverUpdateTime = Time.time + 3f;
|
|
updatePrefs();
|
|
}
|
|
|
|
public IEnumerator ramdomizeVehicleColor()
|
|
{
|
|
while (!Game.PlayerVeh) yield return null;
|
|
|
|
Color pvcol = Game.PlayerVeh.vehicleColor;
|
|
pvcol.r = UnityEngine.Random.value * 0.7f;
|
|
pvcol.b = UnityEngine.Random.value * 0.7f;
|
|
pvcol.g = UnityEngine.Random.value * Mathf.Lerp(
|
|
0.1f,
|
|
0.8f,
|
|
((Game.PlayerVeh.vehicleColor.r +
|
|
Game.PlayerVeh.vehicleColor.b) / 2)) * 0.7f;
|
|
Game.PlayerVeh.vehicleColor = pvcol;
|
|
|
|
colorCustom = false;
|
|
updateVehicleAccent();
|
|
saveVehicleColor();
|
|
Game.PlayerVeh.setColor();
|
|
}
|
|
|
|
public void updateVehicleAccent()
|
|
{
|
|
float num = -0.25f;
|
|
Game.PlayerVeh.vehicleAccent.r = Mathf.Max(
|
|
0f,
|
|
Game.PlayerVeh.vehicleColor.r + num);
|
|
Game.PlayerVeh.vehicleAccent.g = Mathf.Max(
|
|
0f,
|
|
Game.PlayerVeh.vehicleColor.g + num);
|
|
Game.PlayerVeh.vehicleAccent.b = Mathf.Max(
|
|
0f,
|
|
Game.PlayerVeh.vehicleColor.b + num);
|
|
}
|
|
|
|
public void updateVehicleColor()
|
|
{
|
|
colorUpdateTime = Time.time + 3f;
|
|
colorCustom = true;
|
|
Game.PlayerVeh.setColor();
|
|
}
|
|
|
|
public void saveVehicleColor()
|
|
{
|
|
PlayerPrefs.SetInt("vehColCustom", colorCustom ? 1 : 0);
|
|
PlayerPrefs.SetFloat("vehColR", Game.PlayerVeh.vehicleColor.r);
|
|
PlayerPrefs.SetFloat("vehColG", Game.PlayerVeh.vehicleColor.g);
|
|
PlayerPrefs.SetFloat("vehColB", Game.PlayerVeh.vehicleColor.b);
|
|
PlayerPrefs.SetFloat("vehColAccR", Game.PlayerVeh.vehicleAccent.r);
|
|
PlayerPrefs.SetFloat("vehColAccG", Game.PlayerVeh.vehicleAccent.g);
|
|
PlayerPrefs.SetFloat("vehColAccB", Game.PlayerVeh.vehicleAccent.b);
|
|
Game.Player.networkView.RPC(
|
|
"sC",
|
|
RPCMode.Others,
|
|
Game.PlayerVeh.vehicleColor.r,
|
|
Game.PlayerVeh.vehicleColor.g,
|
|
Game.PlayerVeh.vehicleColor.b,
|
|
Game.PlayerVeh.vehicleAccent.r,
|
|
Game.PlayerVeh.vehicleAccent.g,
|
|
Game.PlayerVeh.vehicleAccent.b);
|
|
}
|
|
|
|
public string packServerPrefs()
|
|
{
|
|
return
|
|
"lasr:" + (lasersAllowed ? 1 : 0) + ";" +
|
|
"lsrh:" + (lasersFatal ? 1 : 0) + ";" +
|
|
"lsro:" + (lasersOptHit ? 1 : 0) + ";" +
|
|
"mmap:" + (minimapAllowed ? 1 : 0) + ";" +
|
|
"camo:" + (hideNames ? 1 : 0) + ";" +
|
|
"rorb:" + ramoSpheres + ";" +
|
|
"xspd:" + zorbSpeed + ";" +
|
|
"xagt:" + zorbAgility + ";" +
|
|
"xbnc:" + zorbBounce + ";" +
|
|
"grav:" + worldGrav * -1f + ";" +
|
|
"wvis:" + worldViewDist + ";" +
|
|
"lfog:" + lavaFog + ";" +
|
|
"lalt:" + lavaAlt + ";" +
|
|
"lspd:" + laserSpeed + ";" +
|
|
"lgvt:" + laserGrav + ";" +
|
|
"lrco:" + laserRico + ";" +
|
|
|
|
"botfire:" + (botsCanFire ? 1 : 0) + ";" +
|
|
"botdrive:" + (botsCanDrive ? 1 : 0) + ";" +
|
|
|
|
"bugen:" + (buggyAllowed ? 1 : 0) + ";" +
|
|
"bugflsl:" + (buggyFlightSlip ? 1 : 0) + ";" +
|
|
"bugflpw:" + (buggyFlightLooPower ? 1 : 0) + ";" +
|
|
"bugawd:" + (buggyAWD ? 1 : 0) + ";" +
|
|
"bugspn:" + (buggySmartSuspension ? 1 : 0) + ";" +
|
|
"bugfldr:" + buggyFlightDrag + ";" +
|
|
"bugflag:" + buggyFlightAgility + ";" +
|
|
"bugcg:" + buggyCG + ";" +
|
|
"bugpow:" + buggyPower + ";" +
|
|
"bugspd:" + buggySpeed + ";" +
|
|
"bugtr:" + buggyTr + ";" +
|
|
"bugsl:" + buggySl + ";" +
|
|
"bugsh:" + buggySh + ";" +
|
|
"bugfp:" + firepower[0] + ";" +
|
|
"bugll:" + laserLock[0] + ";" +
|
|
|
|
"tnken:" + (tankAllowed ? 1 : 0) + ";" +
|
|
"tnkpow:" + tankPower + ";" +
|
|
"tnkgrp:" + tankGrip + ";" +
|
|
"tnkspd:" + tankSpeed + ";" +
|
|
"tnkcg:" + tankCG + ";" +
|
|
"tnkfp:" + firepower[2] + ";" +
|
|
"tnkll:" + laserLock[2] + ";" +
|
|
|
|
"hvren:" + (hoverAllowed ? 1 : 0) + ";" +
|
|
"hvrhe:" + hoverHeight + ";" +
|
|
"hvrhv:" + hoverHover + ";" +
|
|
"hvrrp:" + hoverRepel + ";" +
|
|
"hvrth:" + hoverThrust + ";" +
|
|
"hvrfp:" + firepower[1] + ";" +
|
|
"hvrll:" + laserLock[1] + ";" +
|
|
|
|
"jeten:" + (jetAllowed ? 1 : 0) + ";" +
|
|
"jethd:" + jetHDrag + ";" +
|
|
"jetd:" + jetDrag + ";" +
|
|
"jets:" + jetSteer + ";" +
|
|
"jetl:" + jetLift + ";" +
|
|
"jetss:" + jetStall + ";" +
|
|
"jetfp:" + firepower[3] + ";" +
|
|
"jetll:" + laserLock[3] + ";" +
|
|
|
|
"netm:" + networkMode + ";" +
|
|
"netph:" + networkPhysics + ";" +
|
|
"netin:" + networkInterpolation + ";" +
|
|
"";
|
|
}
|
|
|
|
public void updateObjects()
|
|
{
|
|
foreach (ParticleEmitter pE in FindObjectsOfType(typeof(ParticleEmitter)))
|
|
{
|
|
pE.emit = (renderLevel >= 3);
|
|
}
|
|
|
|
foreach (Light light in FindObjectsOfType(typeof(Light)))
|
|
{
|
|
if (light.name != "VehicleLight") continue;
|
|
light.enabled = false;
|
|
}
|
|
|
|
foreach (GameObject go in FindObjectsOfType(typeof(GameObject)))
|
|
{
|
|
go.SendMessage("OnPrefsUpdated", SendMessageOptions.DontRequireReceiver);
|
|
}
|
|
}
|
|
|
|
public void toggleFullscreen()
|
|
{
|
|
Resolution resolution = Screen.resolutions[Screen.resolutions.Length - 1];
|
|
if (!Screen.fullScreen)
|
|
{
|
|
Screen.SetResolution(resolution.width, resolution.height, true);
|
|
if (Application.platform == RuntimePlatform.OSXDashboardPlayer)
|
|
{
|
|
enteredfullscreen = true;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (
|
|
Application.platform == RuntimePlatform.WindowsWebPlayer ||
|
|
Application.platform == RuntimePlatform.OSXWebPlayer ||
|
|
Application.platform == RuntimePlatform.OSXDashboardPlayer)
|
|
{
|
|
Screen.fullScreen = false;
|
|
}
|
|
else
|
|
{
|
|
resolution = Screen.resolutions[Screen.resolutions.Length - 2];
|
|
Screen.SetResolution(resolution.width, resolution.height, false);
|
|
}
|
|
if (enteredfullscreen)
|
|
{
|
|
enteredfullscreen = false;
|
|
}
|
|
}
|
|
}
|
|
}
|