Yes, can do.
Spoiler:
package java.game;
import java.io. *;
import java.util. *;
import java.util.resource. *;
import java.game. *;
import java.render. *; // Text
import java.render.osd. *; // Text
import java.sound. *;
import java.render.osd.dialog. *; // Dialog Window
import java.game.parts. *;
import java.game.parts.enginepart. *;
public class Cooldown_map extends Track
{
final static String MapName = "Cooldown";
final static String MapDescription = "Fucking amazing!!! \n \n Bots: cooldown1 to cooldown10";
final static String MapAuthor = "Lexotic/Cooldown";
final static ResourceRef MapImage = new ResourceRef(Maps.Addon_Maps.Cooldown_map: 0x0005r); // map picture
final static float TS_Version = 1.0; // do not touch! : D
final static int RivalOption = 0;
int defaultCar = cars.racers: 0x0000r; // se não existir o save do carro ficará sem carro no lugar
Bot raceBot1;
Vector3 raceBot1_posStart;
Ypr raceBot1_oriStart;
Bot raceBot2;
Vector3 raceBot2_posStart;
Ypr raceBot2_oriStart;
Bot raceBot3;
Vector3 raceBot3_posStart;
Ypr raceBot3_oriStart;
Bot raceBot4;
Vector3 raceBot4_posStart;
Ypr raceBot4_oriStart;
Bot raceBot5;
Vector3 raceBot5_posStart;
Ypr raceBot5_oriStart;
Bot raceBot6;
Vector3 raceBot6_posStart;
Ypr raceBot6_oriStart;
Bot raceBot7;
Vector3 raceBot7_posStart;
Ypr raceBot7_oriStart;
Bot raceBot8;
Vector3 raceBot8_posStart;
Ypr raceBot8_oriStart;
Bot raceBot9;
Vector3 raceBot9_posStart;
Ypr raceBot9_oriStart;
Bot raceBot10;
Vector3 raceBot10_posStart;
Ypr raceBot10_oriStart;
public Cooldown_map()
{
posStart = new Vector3(-19.206, -9.683, -15.888); // The position of your car
oriStart = new Ypr(0.000, 0.000, 0.000); // Rotation of your car
if(RivalOption == 1)
{
raceBot1_posStart = new Vector3(-5.843, -9.683, -13.564); // The position of the car number 1
raceBot1_oriStart = new Ypr(0.000, 0.000, 0.000); // Car rotation number 1
raceBot2_posStart = new Vector3(-7.987, -9.683, -13.564); // The position of the car number 2
raceBot2_oriStart = new Ypr(0.000, 0.000, 0.000); // Car rotation number 2
raceBot3_posStart = new Vector3(-2.858, -9.683, -14.972); // Position of the car number 3
raceBot3_oriStart = new Ypr(0.000, 0.000, 0.000); // Car rotation number 3
raceBot4_posStart = new Vector3(-11.817, -9.683, -15.206); // The position of the car number 4
raceBot4_oriStart = new Ypr(0.000, 0.000, 0.000); // Car rotation number 4
raceBot5_posStart = new Vector3(-14.491, -9.683, -15.206); // The position of the car number 5
raceBot5_oriStart = new Ypr(0.000, 0.000, 0.000); // Car rotation number 5
raceBot6_posStart = new Vector3(5.614, -9.683, -22.354); // Position of the car number 6
raceBot6_oriStart = new Ypr(1.571, 0.000, 0.000); // Car rotation number 6
raceBot7_posStart = new Vector3(2.507, -9.683, -17.321); // Position of the car number 7
raceBot7_oriStart = new Ypr(0.785, 0.000, 0.000); // Car rotation number 7
raceBot8_posStart = new Vector3(-1.775, -9.683, -42.522); // Position of the car number 8
raceBot8_oriStart = new Ypr(1.571, 0.000, 0.000); // Car rotation number 8
raceBot9_posStart = new Vector3(3.352, -9.683, -42.522); // Position of the car number 9
raceBot9_oriStart = new Ypr(1.571, 0.000, 0.000); // Car rotation number 9
raceBot10_posStart = new Vector3(8.316, -9.683, -42.522); // Position of the car number 10
raceBot10_oriStart = new Ypr(1.571, 0.000, 0.000); // Car rotation number 10
}
map = new GroundRef(Maps.Addon_Maps.Cooldown_map: 0x00000001r);
}
public void StartMap()
{
new Cooldown_map_Options(). display();
}
public void enter(GameState prev_state)
{
Frontend.loadingScreen.show(new ResourceRef(Maps.Addon_Maps.Cooldown_map:0x0005r));
GfxEngine.flush();
super.enter(prev_state);
if(RivalOption == 1)
{
raceBot1 = new Bot(Math.random() * 59, 3, 1, 2.0, 2.0, 20.0);
raceBot2 = new Bot(Math.random() * 59, 3, 1, 2.0, 2.0, 20.0);
raceBot3 = new Bot(Math.random() * 59, 3, 1, 2.0, 2.0, 20.0);
raceBot4 = new Bot(Math.random() * 59, 3, 1, 2.0, 2.0, 20.0);
raceBot5 = new Bot(Math.random() * 59, 3, 1, 2.0, 2.0, 20.0);
raceBot6 = new Bot(Math.random() * 59, 3, 1, 2.0, 2.0, 20.0);
raceBot7 = new Bot(Math.random() * 59, 3, 1, 2.0, 2.0, 20.0);
raceBot8 = new Bot(Math.random() * 59, 3, 1, 2.0, 2.0, 20.0);
raceBot9 = new Bot(Math.random() * 59, 3, 1, 2.0, 2.0, 20.0);
raceBot10 = new Bot(Math.random() * 59, 3, 1, 2.0, 2.0, 20.0);
if(File.exists(GameLogic.carSaveDir + "cooldown1"))
raceBot1.createCar(map, GameLogic.carSaveDir + "cooldown1");
else
raceBot1.createCar(map, new Vehicle(map, defaultCar, 1.0, 1.0, 1.0, 1.0, 1.0));
if(File.exists(GameLogic.carSaveDir + "cooldown2"))
raceBot2.createCar(map, GameLogic.carSaveDir + "cooldown2");
else
raceBot2.createCar(map, new Vehicle(map, defaultCar, 1.0, 1.0, 1.0, 1.0, 1.0));
if(File.exists(GameLogic.carSaveDir + "cooldown3"))
raceBot3.createCar(map, GameLogic.carSaveDir + "cooldown3");
else
raceBot3.createCar(map, new Vehicle(map, defaultCar, 1.0, 1.0, 1.0, 1.0, 1.0));
if(File.exists(GameLogic.carSaveDir + "cooldown4"))
raceBot4.createCar(map, GameLogic.carSaveDir + "cooldown4");
else
raceBot4.createCar(map, new Vehicle(map, defaultCar, 1.0, 1.0, 1.0, 1.0, 1.0));
if(File.exists(GameLogic.carSaveDir + "cooldown5"))
raceBot5.createCar(map, GameLogic.carSaveDir + "cooldown5");
else
raceBot5.createCar(map, new Vehicle(map, defaultCar, 1.0, 1.0, 1.0, 1.0, 1.0));
if(File.exists(GameLogic.carSaveDir + "cooldown6"))
raceBot6.createCar(map, GameLogic.carSaveDir + "cooldown6");
else
raceBot6.createCar(map, new Vehicle(map, defaultCar, 1.0, 1.0, 1.0, 1.0, 1.0));
if(File.exists(GameLogic.carSaveDir + "cooldown7"))
raceBot7.createCar(map, GameLogic.carSaveDir + "cooldown7");
else
raceBot7.createCar(map, new Vehicle(map, defaultCar, 1.0, 1.0, 1.0, 1.0, 1.0));
if(File.exists(GameLogic.carSaveDir + "cooldown8"))
raceBot8.createCar(map, GameLogic.carSaveDir + "cooldown8");
else
raceBot8.createCar(map, new Vehicle(map, defaultCar, 1.0, 1.0, 1.0, 1.0, 1.0));
if(File.exists(GameLogic.carSaveDir + "cooldown9"))
raceBot9.createCar(map, GameLogic.carSaveDir + "cooldown9");
else
raceBot9.createCar(map, new Vehicle(map, defaultCar, 1.0, 1.0, 1.0, 1.0, 1.0));
if(File.exists(GameLogic.carSaveDir + "cooldown10"))
raceBot10.createCar(map, GameLogic.carSaveDir + "cooldown10");
else
raceBot10.createCar(map, new Vehicle(map, defaultCar, 1.0, 1.0, 1.0, 1.0, 1.0));
raceBot1.brain.queueEvent(null, EVENT_COMMAND, "AI_params 15.5 2.5");
raceBot1.car.queueEvent(null, EVENT_COMMAND, "reset");
raceBot1.car.queueEvent(null, EVENT_COMMAND, "reload");
raceBot1.car.setMatrix(raceBot1_posStart, raceBot1_oriStart);
raceBot1.car.setParent(map);
raceBot1.car.wakeUp();
raceBot1.car.queueEvent(null, EVENT_COMMAND, "brake");
raceBot1.car.queueEvent(null, EVENT_COMMAND, "set");
raceBot2.brain.queueEvent(null, EVENT_COMMAND, "AI_params 15.5 2.5");
raceBot2.car.queueEvent(null, EVENT_COMMAND, "reset");
raceBot2.car.queueEvent(null, EVENT_COMMAND, "reload");
raceBot2.car.setMatrix(raceBot2_posStart, raceBot2_oriStart);
raceBot2.car.setParent(map);
raceBot2.car.wakeUp();
raceBot2.car.queueEvent(null, EVENT_COMMAND, "brake");
raceBot2.car.queueEvent(null, EVENT_COMMAND, "set");
raceBot3.brain.queueEvent(null, EVENT_COMMAND, "AI_params 15.5 2.5");
raceBot3.car.queueEvent(null, EVENT_COMMAND, "reset");
raceBot3.car.queueEvent(null, EVENT_COMMAND, "reload");
raceBot3.car.setMatrix(raceBot3_posStart, raceBot3_oriStart);
raceBot3.car.setParent(map);
raceBot3.car.wakeUp();
raceBot3.car.queueEvent(null, EVENT_COMMAND, "brake");
raceBot3.car.queueEvent(null, EVENT_COMMAND, "set");
raceBot4.brain.queueEvent(null, EVENT_COMMAND, "AI_params 15.5 2.5");
raceBot4.car.queueEvent(null, EVENT_COMMAND, "reset");
raceBot4.car.queueEvent(null, EVENT_COMMAND, "reload");
raceBot4.car.setMatrix(raceBot4_posStart, raceBot4_oriStart);
raceBot4.car.setParent(map);
raceBot4.car.wakeUp();
raceBot4.car.queueEvent(null, EVENT_COMMAND, "brake");
raceBot4.car.queueEvent(null, EVENT_COMMAND, "set");
raceBot5.brain.queueEvent(null, EVENT_COMMAND, "AI_params 15.5 2.5");
raceBot5.car.queueEvent(null, EVENT_COMMAND, "reset");
raceBot5.car.queueEvent(null, EVENT_COMMAND, "reload");
raceBot5.car.setMatrix(raceBot5_posStart, raceBot5_oriStart);
raceBot5.car.setParent(map);
raceBot5.car.wakeUp();
raceBot5.car.queueEvent(null, EVENT_COMMAND, "brake");
raceBot5.car.queueEvent(null, EVENT_COMMAND, "set");
raceBot6.brain.queueEvent(null, EVENT_COMMAND, "AI_params 15.5 2.5");
raceBot6.car.queueEvent(null, EVENT_COMMAND, "reset");
raceBot6.car.queueEvent(null, EVENT_COMMAND, "reload");
raceBot6.car.setMatrix(raceBot6_posStart, raceBot6_oriStart);
raceBot6.car.setParent(map);
raceBot6.car.wakeUp();
raceBot6.car.queueEvent(null, EVENT_COMMAND, "brake");
raceBot6.car.queueEvent(null, EVENT_COMMAND, "set");
raceBot7.brain.queueEvent(null, EVENT_COMMAND, "AI_params 15.5 2.5");
raceBot7.car.queueEvent(null, EVENT_COMMAND, "reset");
raceBot7.car.queueEvent(null, EVENT_COMMAND, "reload");
raceBot7.car.setMatrix(raceBot7_posStart, raceBot7_oriStart);
raceBot7.car.setParent(map);
raceBot7.car.wakeUp();
raceBot7.car.queueEvent(null, EVENT_COMMAND, "brake");
raceBot7.car.queueEvent(null, EVENT_COMMAND, "set");
raceBot8.brain.queueEvent(null, EVENT_COMMAND, "AI_params 15.5 2.5");
raceBot8.car.queueEvent(null, EVENT_COMMAND, "reset");
raceBot8.car.queueEvent(null, EVENT_COMMAND, "reload");
raceBot8.car.setMatrix(raceBot8_posStart, raceBot8_oriStart);
raceBot8.car.setParent(map);
raceBot8.car.wakeUp();
raceBot8.car.queueEvent(null, EVENT_COMMAND, "brake");
raceBot8.car.queueEvent(null, EVENT_COMMAND, "set");
raceBot9.brain.queueEvent(null, EVENT_COMMAND, "AI_params 15.5 2.5");
raceBot9.car.queueEvent(null, EVENT_COMMAND, "reset");
raceBot9.car.queueEvent(null, EVENT_COMMAND, "reload");
raceBot9.car.setMatrix(raceBot9_posStart, raceBot9_oriStart);
raceBot9.car.setParent(map);
raceBot9.car.wakeUp();
raceBot9.car.queueEvent(null, EVENT_COMMAND, "brake");
raceBot9.car.queueEvent(null, EVENT_COMMAND, "set");
raceBot10.brain.queueEvent(null, EVENT_COMMAND, "AI_params 15.5 2.5");
raceBot10.car.queueEvent(null, EVENT_COMMAND, "reset");
raceBot10.car.queueEvent(null, EVENT_COMMAND, "reload");
raceBot10.car.setMatrix(raceBot10_posStart, raceBot10_oriStart);
raceBot10.car.setParent(map);
raceBot10.car.wakeUp();
raceBot10.car.queueEvent(null, EVENT_COMMAND, "brake");
raceBot10.car.queueEvent(null, EVENT_COMMAND, "set");
}
}
public void exit(GameState next_state)
{
super.exit(next_state);
}
}
public class Cooldown_map_Options extends Dialog
{
final static int CMD_BACK = 15;
final static int CMD_OK = 16;
final static int CMD_GAMEMODE = 20;
final static int CMD_GAMEMODE2 = 21;
Menu m;
Style Menu_Center, Menu_Left;
int CurrentMode;
int CurrentMode2;
Button opt1;
Button opt2;
public Cooldown_map_Options()
{
super( GameLogic.player.controller, DF_MODAL|DF_FULLSCREEN|DF_HIGHPRI|DF_DARKEN, "TRACK OPTIONS", "" );
Menu_Center = new Style( 0.40, 0.13, Frontend.mediumFont, Text.ALIGN_CENTER, Osd.RRT_TEST );
Menu_Left = new Style( 0.40, 0.13, Frontend.mediumFont, Text.ALIGN_LEFT, Osd.RRT_TEST );
osd.createBG( new ResourceRef(Maps.Addon_Maps.Cooldown_map:0x0005r) );
m = osd.createMenu( Menu_Left, -0.1, -0.6, 0, Osd.MD_VERTICAL );
opt1 = m.addItem( "ON", CMD_GAMEMODE, null );
opt2 = m.addItem( "Set Time", CMD_GAMEMODE2, null );
osd.createText( "Bots:" , Frontend.mediumFont, Text.ALIGN_RIGHT, -0.10, -0.62 );
osd.createText( "Time:" , Frontend.mediumFont, Text.ALIGN_RIGHT, -0.10, -0.49 );
CurrentMode = 1;
Cooldown_map.RivalOption = 1;
CurrentMode2 = 0;
m = osd.createMenu( Menu_Center, -0.4, 0.9, 0, Osd.MD_HORIZONTAL );
m.addItem( "OK", CMD_OK );
m = osd.createMenu( Menu_Center, 0.4, 0.9, 0, Osd.MD_HORIZONTAL );
m.addItem( "BACK", CMD_BACK );
super.show();
}
public void osdCommand( int cmd )
{
if( cmd == CMD_GAMEMODE )
{
if( CurrentMode == 0 )
{
Cooldown_map.RivalOption = 1;
opt1.changeLabelText( "ON" );
CurrentMode = 1;
}
else
if( CurrentMode == 1 )
{
Cooldown_map.RivalOption = 2;
opt1.changeLabelText( "OFF" );
CurrentMode = 0;
}
}
else
if( cmd == CMD_GAMEMODE2 )
{
if( CurrentMode2 == 0 )
{
opt2.changeLabelText( "Midday" );
CurrentMode2 = 1;
GameLogic.setTime( 12*3600 );
}
else
if( CurrentMode2 == 1 )
{
opt2.changeLabelText( "Evening" );
CurrentMode2 = 2;
GameLogic.setTime( 19.5*3600 );
}
else
if( CurrentMode2 == 2 )
{
opt2.changeLabelText( "Midnight" );
CurrentMode2 = 3;
GameLogic.setTime( 24*3600 );
}
else
if( CurrentMode2 == 3 )
{
opt2.changeLabelText( "Morning" );
CurrentMode2 = 0;
GameLogic.setTime( 8*3600 );
}
}
else
if( cmd == CMD_BACK )
{
osd.hide();
super.hide();
}
else
if( cmd == CMD_OK )
{
osd.hide();
super.hide();
GameLogic.changeActiveSection( new Cooldown_map() );
}
}
}