Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <a_samp>
- #include <Cleverbot>
- #include <a_vehicles>
- #include <core>
- #include <float>
- #include <foreach>
- //#include xadmin/XtremeAdmin.inc
- #define RACES
- #define MENUS
- #define DM
- #if defined MENUS
- new Menu:CarM, Menu:Car2M, Menu:Car3M,Menu:Car4M;
- #endif //menus
- #define VEHI_DIS 5.0
- #define MIN_VEHI_ID 400
- #define MAX_VEHI_ID 611
- // "bad" vehicles
- #define vHUNTER 425
- #define vRHINO 432
- #define vHYDRA 520
- #define vSEASPARROW 447
- #define vRCPLANE 464 // rcbaron
- #define vGOBLIN 501
- #define vBLOODRING 504
- #define COLOR_GREY 0xAFAFAFAA
- #define COLOR_PURPLE 0x9933CCAA
- #define COLOR_GREEN 0x33AA33AA
- #define COLOR_RED 0xAA3333AA
- #define COLOR_SYSTEM COLOR_GREY
- #define COLOR_CONFIRM COLOR_GREEN
- #define COLOR_ERROR 0xAA3333AA
- #define COLOR_YELLOW 0xFFFF00AA
- #define COLOR_PINK 0xFF66FFAA
- #define COLOR_BLUE 0x0000BBAA
- #define COLOR_LIGHTBLUE 0x33CCFFAA
- #define COLOR_DARKRED 0x660000AA
- #define COLOR_ORANGE 0xFF9900AA
- #define COLOR_MAGENTA 0xFF00FFFF
- #define COLOR_BRIGHTGREEN 0x7CFC00FF
- #define COLOR_DARKBLUE 0x000080AFF
- #define COLOR_VIOLETRED 0xDB7093FF
- #define COLOR_BROWN 0x8B4513FF
- #define COLOR_GREENYELLOW 0xADFF2FFF
- #define COLOR_THISTLE 0xD8BFD8FF
- #define COLOR_TURQUISE 0x48D1CCFF
- #define COLOR_MAROON 0x800000FF
- #define COLOR_STEELBLUE 0xB0C4DEFF
- #define COLOR_WHITE 0xFFFFFFAA
- #define COLOR_LIGHTGREEN 0x00FF7FFF
- #define COLOR_VIOLET 0xEE82EEFF
- #define COLOR_SILVER 0xC0C0C0FF
- #define messagecolor 0xAA3333AA
- #define TEAM_FAMILY 0
- #define TEAM_BALLAS 1
- #define TEAM_VATTOS 2
- #define TEAM_GOLFER 3
- #define TEAM_POLICE 4
- #define TEAM_PILOT 5
- #define dcmd(%1,%2,%3) if ((strcmp((%3)[1], #%1, true, (%2)) == 0) && ((((%3)[(%2) + 1] == 0) && (dcmd_%1(playerid, "")))||(((%3)[(%2) + 1] == 32) && (dcmd_%1(playerid, (%3)[(%2) + 2]))))) return 1
- #define GetStringArg(%1,%2) for(new x = 0; getarg(%1,x) != '\0'; x++) %2[x] = getarg(%1,x)
- //console chars fix
- #define FixConsole(%1) for(new rSt;rSt<strlen(%1);rSt++) if(%1[rSt]>191 && %1[rSt]<240) %1[rSt]-=64; else if(%1[rSt]>239 && %1[rSt]<256) %1[rSt]-=16; else if (%1[rSt] == 168) %1[rSt]+=72; else if (%1[rSt] == 184) %1[rSt]+=57
- new Text:Help; // website URL and basic command textdraw
- new startMusic[5] = {
- 1187,1062,1068,1076,1097
- };
- static gTeam[MAX_PLAYERS]; // Tracks the team assignment for each player
- #if defined RACES
- forward strtok(const string[],&index);
- new Float:playerx,Float:playery,Float:playerz;
- new pskin[MAX_PLAYERS]; //player skin
- new string64[64]; //commonly used 64 string
- new string256[256]; // commonly used 256 string
- new string128[128]; // commonly used 128 string
- #endif
- new playercar[MAX_PLAYERS] = -1; // assigned to current player-spawned vehicle
- new pname[MAX_PLAYERS][MAX_PLAYER_NAME]; //playername
- // car id stuff
- //anti weapon cheat
- new f_weapons[] = {38};
- new f_killer[MAX_PLAYERS];
- new f_victim[MAX_PLAYERS];
- new f_kills[MAX_PLAYERS][MAX_PLAYERS];
- new vehName[212][24] =
- {
- "Landstalker", "Bravura", "Buffalo", "Linerunner", "Perrenial", "Sentinel", "Dumper", "Firetruck", "Trashmaster",
- "Stretch", "Manana", "Infernus", "Voodoo", "Pony", "Mule", "Cheetah", "Ambulance", "Leviathan", "Moonbeam",
- "Esperanto", "Taxi", "Washington", "Bobcat", "Whoopee", "BF Injection", "Hunter", "Premier", "Enforcer",
- "Securicar", "Banshee", "Predator", "Bus", "Rhino", "Barracks", "Hotknife", "Trailer", "Previon", "Coach",
- "Cabbie", "Stallion", "Rumpo", "RC Bandit", "Romero", "Packer", "Monster", "Admiral", "Squalo", "Seasparrow",
- "Pizzaboy", "Tram", "Trailer", "Turismo", "Speeder", "Reefer", "Tropic", "Flatbed", "Yankee", "Caddy", "Solair",
- "Berkley's RC Van", "Skimmer", "PCJ-600", "Faggio", "Freeway", "RC Baron", "RC Raider", "Glendale", "Oceanic",
- "Sanchez", "Sparrow", "Patriot", "Quad", "Coastguard", "Dinghy", "Hermes", "Sabre", "Rustler", "ZR-350", "Walton",
- "Regina", "Comet", "BMX", "Burrito", "Camper", "Marquis", "Baggage", "Dozer", "Maverick", "News Chopper", "Rancher",
- "FBI Rancher", "Virgo", "Greenwood", "Jetmax", "Hotring", "Sandking", "Blista Compact", "Police Maverick",
- "Boxvillde", "Benson", "Mesa", "RC Goblin", "Hotring Racer A", "Hotring Racer B", "Bloodring Banger", "Rancher",
- "Super GT", "Elegant", "Journey", "Bike", "Mountain Bike", "Beagle", "Cropduster", "Stunt", "Tanker", "Roadtrain",
- "Nebula", "Majestic", "Buccaneer", "Shamal", "Hydra", "FCR-900", "NRG-500", "HPV1000", "Cement Truck", "Tow Truck",
- "Fortune", "Cadrona", "FBI Truck", "Willard", "Forklift", "Tractor", "Combine", "Feltzer", "Remington", "Slamvan",
- "Blade", "Freight", "Streak", "Vortex", "Vincent", "Bullet", "Clover", "Sadler", "Firetruck", "Hustler", "Intruder",
- "Primo", "Cargobob", "Tampa", "Sunrise", "Merit", "Utility", "Nevada", "Yosemite", "Windsor", "Monster", "Monster",
- "Uranus", "Jester", "Sultan", "Stratium", "Elegy", "Raindance", "RC Tiger", "Flash", "Tahoma", "Savanna", "Bandito",
- "Freight Flat", "Streak Carriage", "Kart", "Mower", "Dune", "Sweeper", "Broadway", "Tornado", "AT-400", "DFT-30",
- "Huntley", "Stafford", "BF-400", "News Van", "Tug", "Trailer", "Emperor", "Wayfarer", "Euros", "Hotdog", "Club",
- "Freight Box", "Trailer", "Andromada", "Dodo", "RC Cam", "Launch", "Police Car", "Police Car", "Police Car",
- "Police Ranger", "Picador", "S.W.A.T", "Alpha", "Phoenix", "Glendale", "Sadler", "Luggage", "Luggage", "Stairs",
- "Boxville", "Tiller", "Utility Trailer"
- };
- new Float:gRandomStuntSpawn[3][4] = {
- {1953.9196,-2239.2888,13.5469,96.6900}, //lsairport
- {-2363.1636,-1649.4421,487.4435, 252.50}, //chiliad
- {410.8556,2533.2900,19.1484,90.0}
- };
- new RaceParticipant[MAX_PLAYERS];
- new pvehicleid[MAX_PLAYERS] = -1; // player vehicles id
- new pmodelid[MAX_PLAYERS]; // players vehicles model id
- //new Float:pspeed[MAX_PLAYERS]; //player speed
- new pstate[MAX_PLAYERS]; // current player state (DRIVER, PASSENGER, ON_FOOT)
- new bool:badcar[MAX_PLAYERS]; // car has guns
- new bool:cantrace[MAX_PLAYERS]; //is player banned from races
- new bool:aircraft[MAX_PLAYERS]; //is player in aircraft
- new bool:cancount[MAX_PLAYERS]; //can player use /count command
- #if defined RACES//yrace
- #define MAX_RACECHECKPOINTS 64 // Change if you want more room for checkpoints than this
- #define MAX_BUILDERS 4 // Change if you want more builderslots than this
- #define RACEFILE_VERSION 2 // !!! DO NOT CHANGE !!!
- #define RACE_MENU // Enable race build/load menus
- #define MAX_RACERS 10 //total amt of racers allowed in a race
- new rotationtimer;
- new race1st[MAX_PLAYERS]; // total races placed 1st
- new race2nd[MAX_PLAYERS]; // total races placed 2nd
- new race3rd[MAX_PLAYERS]; //total races placed 3rd
- new MajorityDelay = 60; // Default delay to wait for other racers once half are ready (can be changed ingame via Admin menu)
- new RRotation = 1; // Is automatic Race Rotation enabled by defaul? (can be changed ingame via Admin menu) (-1 = disabled, 0+ = enabled)
- new BuildAdmin = 1; //Require admin privileges for building races? 1) yes, 0) no. (Can be changed ingame in Admin menu)
- new RaceAdmin = 1; //Require admin privileges for starting races? 1) yes, 0) no. (Can be changed ingame in Admin menu)
- new PrizeMode=0; //Mode for winnings: 0 - Fixed, 1 - Dynamic, 2 - Entry fee, 3 - EF+F, 4 EF+D [Admin menu ingame]
- new Prize=10000; //Fixed prize sum (15,000$ for winner, 12,5000$ for 2nd and 10,000$ for 3rd) [Admin menu ingame]
- new DynaMP=1; //Dynamic prize multiplier. (Default: 1$/m) [Admin menu ingame]
- new JoinFee=100; //Amount of $ it costs to /join a race [Admin menu ingame]
- #if defined RACE_MENU
- forward RefreshMenuHeader(playerid,Menu:menu,text[]);
- new Menu:MAdmin, Menu:MPMode, Menu:MPrize, Menu:MDyna, Menu:MBuild, Menu:MLaps;
- new Menu:MRace, Menu:MRacemode, Menu:MFee, Menu:MCPsize, Menu:MDelay;
- #endif //race_menu
- forward RaceRotation();
- // forward GetRaceTick(playerid); // Gets amount of ticks the player was racing
- // forward GetLapTick(playerid); // Gets amount of ticks the player spend on the lap
- forward ReadyRefresh(); // Check the /ready status of players and start the race when ready
- forward RaceSound(playerid,sound); // Plays <sound> for <playerid>
- forward BActiveCP(playerid,sele); // Gives the player selected checkpoint
- forward endrace(); // Ends the race, whether it ended normally or by /endrace. Cleans the variables.
- forward countdown(); // Handles the countdown
- forward mscountdown(); //Majority Start countdown handler
- forward strtok(const string[],&index);
- forward SetNextCheckpoint(playerid); // Gives the next checkpoint for the player during race
- forward ChangeLap(playerid); // Change player's lap, print out time and stuff.
- forward SetRaceCheckpoint(playerid,target,next); // Race-mode checkpoint setter
- forward SetBRaceCheckpoint(playerid,target,next); // Builder-mode checkpoint setter
- forward GetBuilderSlot(playerid); // Get next free builderslot, return 0 if none available
- forward b(playerid); // Quick and dirty fix for the BuilderSlots
- forward Float:Distance(Float:dx1,Float:dy1,Float:dz1,Float:dx2,Float:dy2,Float:dz2);
- forward clearrace(playerid);
- forward startrace();
- forward LoadRace(tmp[]);
- forward CreateRaceMenus();
- new RacePreLoaded;
- new rcount[MAX_PLAYERS];
- new rtimer[MAX_PLAYERS]; //30 sec countdown timer
- new raceclear; // orphan race timer
- new CBuilder[MAX_PLAYER_NAME], CFile[128], CRaceName[64]; //Creator of the race and the filename, for score changing purposes.
- new Ranking; //Finishing order for prizes
- new Countdown;
- new cd; //Countdown time
- new MajStart=0; //Status of the Majority Start timer
- new MajStartTimer; //Majority Start timer
- new mscd; //Majority Start time
- new RaceActive; //Is a race active?
- new RaceStart; //Has race started?
- new Float:RaceCheckpoints[MAX_RACECHECKPOINTS][3]; //Current race CP array
- new LCurrentCheckpoint; //Current race array pointer
- new CurrentCheckpoint[MAX_PLAYERS]; //Current race array pointer array :V
- new CurrentLap[MAX_PLAYERS]; //Current lap array
- new Participants; //Amount of participants
- new ORacelaps, ORacemode; //Saves the laps/mode from file in case they aren't changed
- new Racelaps, Racemode; //If mode/laps has been changed, the new scores won't be saved.
- new TopRacers[6][MAX_PLAYER_NAME]; // Stores 5 top scores, 6th isn't
- new TopRacerTimes[6]; // saved to file, used to simplify
- new TopLappers[6][MAX_PLAYER_NAME];// for() loops on CheckBestLap and
- new TopLapTimes[6]; // CheckBestRace.
- new Float:CPsize; // Checkpoint size for the race
- new Airrace; // Is the race airrace?
- new Float:RLenght; // race lenght
- // Building-related variables
- new BCurrentCheckpoints[MAX_BUILDERS]; //Buildrace array pointers
- new BSelectedCheckpoint[MAX_BUILDERS]; //Selected checkpoint during building
- new RaceBuilders[MAX_PLAYERS]; //Who is building a race?
- new BuilderSlots[MAX_BUILDERS]; //Stores the racebuilder pids
- new Float:BRaceCheckpoints[MAX_BUILDERS][MAX_RACECHECKPOINTS][3]; //Buildrace CP array
- new Bracemode[MAX_BUILDERS];
- new Blaps[MAX_BUILDERS];
- new Float:BCPsize[MAX_BUILDERS];
- new BAirrace[MAX_BUILDERS];
- new Float:startX, Float:startY, Float:startZ;
- new Float:startMod[11][1] = {
- {-5.0},
- {-4.0},
- {-3.0},
- {-2.0},
- {-1.0},
- {0.1},
- {1.0},
- {2.0},
- {3.0},
- {4.0},
- {5.0}
- };
- #endif //races
- #if defined MENUS
- new Menu:MainM, Menu:StuntM, Menu:JumpM, Menu:VoptionsM, Menu:TrainM, Menu:CasinoM, Menu:Weather, Menu:WheelsM, Menu:Wheels2M/*,Menu:PointsM*/; //menus (duh)
- #if defined DM
- new Menu:DMM;
- new Float:gRandomSniperDM[15][4] = {
- {245.2457,1454.9375,43.0946,156.4561},
- {202.1618,1451.9221,43.0946,217.0136},
- {201.1905,1406.3535,44.6503,295.9510},
- {224.9771,1414.5057,29.0093,351.7065},
- {167.3860,1426.0980,26.2369,269.0667},
- {199.8745,1404.2958,60.1355,321.7490},
- {246.7483,1435.1178,23.3703,177.4521},
- {171.9032,1482.9506,10.5859,73.7679},
- {173.0153,1380.6504,10.5859,265.4044},
- {219.9097,1351.5270,10.5859,16.3882},
- {222.6999,1374.4329,25.2934,177.6937},
- {186.8685,1457.9178,55.5781,198.6689},
- {131.7630,1393.0347,26.1517,228.9346},
- {205.3834,1445.8939,10.5859,146.1317},
- {220.0217,1469.6975,23.7344,145.0651}
- };
- new Float:gRandomMilitaryDM[6][4] = {
- {388.4619,1890.8684,17.6406,57.7399},
- {278.9101,1785.4762,17.6406,319.9189},
- {386.3756,2077.8464,17.6406,139.1470},
- {263.7085,2012.7166,17.6406,102.3822},
- {146.7413,1875.8613,17.8359,275.5711},
- {210.9024,1811.1292,21.8672,343.9804}
- };
- new Float:gRandomSawnOffDM[5][4] = {
- {-2442.4468,616.0774,30.3419,2.7500},
- {-2421.6475,645.6965,34.4742,325.4420},
- {-2422.2415,684.0378,35.1570,22.5946},
- {-2469.9136,676.9008,34.2858,104.7514},
- {-2498.4185,614.9011,26.0944,302.8008}
- };
- new Float:gRandomSwordDM[6][4] = {
- {206.3081,-10.9856,1001.2109,304.7189},
- {201.2184,-4.1364,1001.2109,257.4703},
- {217.5962,-4.6303,1001.2109,266.2020},
- {216.7124,-12.6580,1001.2109,82.0439},
- {204.9362,-4.6324,1005.2109,209.8432},
- {209.3385,-12.5224,1005.2109,342.0085}
- };
- new Float:gRandomDeagleDM[9][4] = {
- {-2641.5913,1420.1016,906.4609,135.7372},
- {-2669.4290,1428.5836,906.4609,186.5395},
- {-2674.1355,1400.0565,906.2734,308.7824},
- {-2631.3723,1397.0632,906.4609,107.9548},
- {-2665.5598,1398.7416,912.4063,102.3983},
- {-2658.3435,1391.3290,918.3516,36.9110},
- {-2688.5566,1431.4250,906.4609,244.2966},
- {-2661.0054,1422.7255,912.4063,186.3503},
- {-2673.6501,1423.0334,912.4063,192.7005}
- };
- new Float:gRandomMinigunDM[9][4] = {
- {1413.5502,2157.2302,19.4286,81.1123},
- {1393.5474,2104.7124,11.0156,11.4890},
- {1378.8374,2213.7690,18.9766,130.2852},
- {1368.6378,2194.8867,9.7578,205.4233},
- {1393.9669,2164.9509,9.7578,37.9788},
- {1306.9668,2108.4163,11.0156,316.7018},
- {1301.7860,2202.5928,14.0993,179.3023},
- {1419.1334,2116.5552,29.6907,51.3800},
- {1399.8579,2100.9795,15.0625,12.7770}
- };
- new Float:gRandomRocketDM[4][4] = {
- {501.8544,-21.3491,1000.6797,61.9754},
- {487.7188,-2.7461,1002.3828,178.2440},
- {479.7839,-14.1828,1000.6802,275.9006},
- {486.8539,-24.4962,1003.5737,8.0423}
- };
- //shipdm spawns
- new Float:gRandomShipSpawns[10][3] = {
- {-2308.4480,1546.0233,18.7734}, //ship1
- {-2466.1052,1545.4475,23.6641}, //ship2
- {-2347.9333,1547.7725,26.0469}, //ship3
- {-2375.8469,1541.6355,23.1406}, //ship4
- {-2404.3672,1556.3593,26.0469}, //ship5
- {-2426.9480,1536.9685,26.0469}, //ship6
- {-2437.9360,1556.4310,17.3281}, //ship7
- {-2436.9475,1546.6334,8.3984}, //ship8
- {-2410.7808,1552.0458,2.1172}, //ship9
- {-2389.4875,1554.7893,5.5102} //ship10
- };
- //housedm spawns
- new Float:gRandomHouseDMSpawns[7][3] = {
- {2346.8564,-1174.5005,1031.9766}, //housedm 1
- {2335.3486,-1173.5505,1031.9688}, //housedm 2
- {2325.0847,-1183.8208,1027.9766}, //housedm 3
- {2322.5291,-1175.0282,1027.9766}, //housedm 4
- {2335.7617,-1174.0778,1027.9766}, //housedm 5
- {2338.3323,-1187.0630,1027.9766}, //housedm 6
- {2346.0247,-1186.4976,1027.9766} //housedm 7
- };
- #endif //dm
- //new Menu:CarM, Menu:Car2M, Menu:Car3M,Menu:Car4M;
- new Menu:CarTeleM;
- new Menu:FightM;
- #endif //menus
- //------------------------------------------------------------------------------
- main()
- {
- print("\n----------------------------------");
- print(" Everystuff .03 \n");
- print(" kaisersouse (2012)\n");
- print("----------------------------------\n");
- }
- //------------------------------------------------------------------------------
- public OnGameModeInit()
- {
- SetGameModeText("Everystuff Freeroam|Stunt|DM");
- SetTeamCount(6);
- ShowNameTags(1);
- ShowPlayerMarkers(1);
- SetWorldTime(13);
- SetWeather(11);
- UsePlayerPedAnims();
- for(new i = 0; i < 299; i++) {
- if(IsSkinValid(i)) {
- // Class_Add(i,1860.4724,-2261.4534,13.5469,0,0,0,0,0,0);
- AddPlayerClass(i,1860.4724,-2261.4534,13.5469,0,0,0,0,0,0,0);
- }
- }
- Help = TextDrawCreate(2.000000, 432.000000, "~w~/help /cmd /tele /login /car /dm /anims /chiliad /airport /boneyard /ls /lv /sf /nos /fix /jetpack /flip");
- TextDrawSetOutline(Help, 1);
- TextDrawFont(Help, 3);
- TextDrawSetProportional(Help, 2);
- TextDrawLetterSize(Help, 0.25, 0.75);
- #if defined MENUS
- MainM = CreateMenu("Main Menu",1,200,150,200);
- AddMenuItem(MainM, 0, "Stunt Maps /stunt");
- AddMenuItem(MainM, 0, "Deathmatch /dm");
- AddMenuItem(MainM, 0, "Freeroam /fr");
- AddMenuItem(MainM, 0, "Airports /airport");
- AddMenuItem(MainM, 0, "Trains+Trams /train");
- AddMenuItem(MainM, 0, "Basejumps /basejump");
- AddMenuItem(MainM, 0, "Random Stunts /random");
- AddMenuItem(MainM, 0, "Player Car Menu /car");
- AddMenuItem(MainM, 0, "Vechicle Options /voptions");
- AddMenuItem(MainM, 0, "All Commands /cmd");
- AddMenuItem(MainM, 0, "All Teleports /tele");
- VoptionsM = CreateMenu("Car Options",1,50,120,200);
- AddMenuItem(VoptionsM, 0, "Auto Heal");
- AddMenuItem(VoptionsM, 0, "Auto Flip");
- AddMenuItem(VoptionsM, 0, "Auto Lock");
- AddMenuItem(VoptionsM, 0, "Auto Paint");
- AddMenuItem(VoptionsM, 0, "Auto Wheels");
- AddMenuItem(VoptionsM, 0, "Auto NOS");
- StuntM = CreateMenu("Stunt Menu",1,200,150,200);
- AddMenuItem(StuntM, 0, "Mount Chiliad /chiliad");
- AddMenuItem(StuntM, 0, "LS Airport /lsairport");
- AddMenuItem(StuntM, 0, "Plane Boneyard /boneyard");
- AddMenuItem(StuntM, 0, "Rooftop Highway /roof");
- AddMenuItem(StuntM, 0, "LV Airport /lvairport");
- AddMenuItem(StuntM, 0, "LS Massive Ramp /mj");
- AddMenuItem(StuntM, 0, "Roller Coaster /roller");
- AddMenuItem(StuntM, 0, "Loop Ramp /loopramp");
- AddMenuItem(StuntM, 0, "Abandonded Town /town");
- #if defined DM
- DMM = CreateMenu("Deathmatch",1,200,150,200);
- AddMenuItem(DMM, 0, "Home Invasion");
- AddMenuItem(DMM, 0, "Container Ship");
- AddMenuItem(DMM, 0, "Military / War");
- AddMenuItem(DMM, 0, "Gas Station");
- AddMenuItem(DMM, 0, "SawnOff DM");
- AddMenuItem(DMM, 0, "Sniper DM");
- AddMenuItem(DMM, 0, "RPG Arena");
- AddMenuItem(DMM, 0, "Minigun DM");
- AddMenuItem(DMM, 0, "Katana Fight");
- AddMenuItem(DMM, 0, "Desert Eagle");
- #endif //dm
- CarM = CreateMenu("Vehicles 1",1,200,150,200);
- if(IsValidMenu(CarM)) {
- AddMenuItem(CarM, 0, "Sultan");
- AddMenuItem(CarM, 0, "Infernus");
- AddMenuItem(CarM, 0, "Bullet");
- AddMenuItem(CarM, 0, "Super GT");
- AddMenuItem(CarM, 0, "Flash");
- AddMenuItem(CarM, 0, "Bandito");
- AddMenuItem(CarM, 0, "Club VW");
- AddMenuItem(CarM, 0, "Elegy");
- AddMenuItem(CarM, 0, "Blista Compact");
- AddMenuItem(CarM, 0, "NRG Bike");
- AddMenuItem(CarM, 0, "MORE CARS");
- }
- Car2M = CreateMenu("Vehicles 2",1,200,150,200);
- if(IsValidMenu(Car2M)) {
- AddMenuItem(Car2M, 0, "Bloodring");
- AddMenuItem(Car2M, 0, "Slam Truck");
- AddMenuItem(Car2M, 0, "Monster");
- AddMenuItem(Car2M, 0, "Sanchez");
- AddMenuItem(Car2M, 0, "Impala SS");
- AddMenuItem(Car2M, 0, "Quad ATV");
- AddMenuItem(Car2M, 0, "BF Injection");
- AddMenuItem(Car2M, 0, "Go-Kart");
- AddMenuItem(Car2M, 0, "Dump Truck");
- AddMenuItem(Car2M, 0, "City Bus");
- AddMenuItem(Car2M, 0, "MORE CARS");
- }
- Car3M = CreateMenu("Vehicles 3",1,200,150,200);
- if(IsValidMenu(Car3M)) {
- AddMenuItem(Car3M, 0, "Car Carrier");
- AddMenuItem(Car3M, 0, "BMX Stunt");
- AddMenuItem(Car3M, 0, "Hot Dog Van");
- AddMenuItem(Car3M, 0, "Camper Van");
- AddMenuItem(Car3M, 0, "Freeway Bike");
- AddMenuItem(Car3M, 0, "Vortex Hover");
- AddMenuItem(Car3M, 0, "Trailer Truck");
- AddMenuItem(Car3M, 0, "Police Car");
- AddMenuItem(Car3M, 0, "Police Bike");
- AddMenuItem(Car3M, 0, "Do-Do Plane");
- AddMenuItem(Car3M, 0, "MORE CARS");
- }
- Car4M = CreateMenu("Vehicles 4",1,200,150,200);
- if(IsValidMenu(Car4M)) {
- AddMenuItem(Car4M, 0, "Golf Cart");
- AddMenuItem(Car4M, 0, "Sea-Plane"); //441
- AddMenuItem(Car4M, 0, "Taxi Cab"); // 420
- AddMenuItem(Car4M, 0, "Sabre"); // 475
- AddMenuItem(Car4M, 0, "Limousine"); //409
- AddMenuItem(Car4M, 0, "Squallo Boat"); //446
- AddMenuItem(Car4M, 0, "Train (Tram)"); //449
- AddMenuItem(Car4M, 0, "Train (Streak)"); // 537
- AddMenuItem(Car4M, 0, "Fire Truck"); //407
- AddMenuItem(Car4M, 0, "Dakar Rally"); // 573
- AddMenuItem(Car4M, 0, "Jester"); // 559
- }
- FightM = CreateMenu("Fight Style",1,50,120,150);
- if(IsValidMenu(FightM)) {
- AddMenuItem(FightM, 0, "Normal"); // style 4
- AddMenuItem(FightM, 0, "Boxing"); //5
- AddMenuItem(FightM, 0, "Kung-Fu"); //6
- AddMenuItem(FightM, 0, "Knee/Head"); //7
- AddMenuItem(FightM, 0, "Captain Kirk"); //15
- AddMenuItem(FightM, 0, "Throw Elbows"); //16
- }
- CasinoM = CreateMenu("Casinos",1,200,150,200);
- if(IsValidMenu(CasinoM)) {
- AddMenuItem(CasinoM, 0, "Caligula's");
- AddMenuItem(CasinoM, 0, "Four Dragons");
- }
- Weather = CreateMenu("Weather",1,50,150,200);
- if(IsValidMenu(Weather)) {
- AddMenuItem(Weather,0,"Sunny");
- AddMenuItem(Weather,0,"Cloudy");
- AddMenuItem(Weather,0,"Thunderstorm");
- AddMenuItem(Weather,0,"Foggy");
- AddMenuItem(Weather,0,"Scorching Hot");
- AddMenuItem(Weather,0,"Sandstorm");
- AddMenuItem(Weather,0,"Polluted");
- }
- WheelsM = CreateMenu("Wheels",1,125,150,200); //125,150,200
- if(IsValidMenu(WheelsM)) {
- AddMenuItem(WheelsM,0,"Off-Road"); //1025
- AddMenuItem(WheelsM,0,"Shadow"); //1073
- AddMenuItem(WheelsM,0,"Mega");//1074
- AddMenuItem(WheelsM,0,"Rimshine");//1075
- AddMenuItem(WheelsM,0,"Wires");//1076
- AddMenuItem(WheelsM,0,"Classic");//1077
- AddMenuItem(WheelsM,0,"Twist");//1078
- AddMenuItem(WheelsM,0,"Cutter");//1079
- AddMenuItem(WheelsM,0,"Switch");//1080
- AddMenuItem(WheelsM,0,"MORE WHEELS");
- }
- Wheels2M = CreateMenu("Wheels",1,125,150,200);
- if(IsValidMenu(Wheels2M)) {
- AddMenuItem(Wheels2M,0,"Grove");//1081
- AddMenuItem(Wheels2M,0,"Import");//1082
- AddMenuItem(Wheels2M,0,"Dollar");//1083
- AddMenuItem(Wheels2M,0,"Trance");//1084
- AddMenuItem(Wheels2M,0,"Atomic");//1085
- AddMenuItem(Wheels2M,0,"Ahab");//1096
- AddMenuItem(Wheels2M,0,"Virtual");//1097
- AddMenuItem(Wheels2M,0,"Access");//1098
- AddMenuItem(Wheels2M,0,"MORE WHEELS");
- }
- #endif //menus
- #if defined RACES
- rotationtimer = SetTimer("RaceRotation",150000,1); //2.5 minutes
- RaceActive=0;
- RaceStart=0;
- Ranking=1;
- LCurrentCheckpoint=0;
- Participants=0;
- for(new i;i<MAX_BUILDERS;i++) {
- BuilderSlots[i]=MAX_PLAYERS+1;
- }
- #if defined RACE_MENU
- CreateRaceMenus();
- #endif //race_menu
- #endif //races
- AddPlayerClass(105,2521.8037,-1678.3939,15.4970,74.0388,22,300,25,300,9,300); //FAMILY
- AddPlayerClass(102,1727.8440,-1616.2476,14.9564,2.0701,23,300,29,300,5,300); //BALLAS
- AddPlayerClass(109,2127.6226,-1153.4991,23.9997,341.1662,24,300,31,300,4,300); //VATTOS
- AddPlayerClass(36,-2324.8708,-1622.0394,483.7098,220.8487,28,300,23,300,6,300); //GOLFER
- AddPlayerClass(285,2032.8514,-1404.3136,17.2625,145.4797,24,500,27,1000,3,300); //POLICE
- AddPlayerClass(61,1911.2904,-2310.3076,13.5469,170.7494,30,300,22,300,42,300); //PILOT
- // *********VEHICLES***
- //car cannon
- AddStaticVehicle(590, -549.3493, 2593.8562, 52.9811, 269.4595,-1,-1);
- AddStaticVehicle(590, -549.3493, 2593.8562, 52.9811, 269.4595,-1,-1);
- AddStaticVehicle(590, -549.3493, 2593.8562, 52.9811, 269.4595,-1,-1);
- AddStaticVehicle(590, -549.3493, 2593.8562, 52.9811, 269.4595,-1,-1);
- AddStaticVehicle(590, -549.3493, 2593.8562, 52.9811, 269.4595,-1,-1);
- AddStaticVehicle(590, -549.3493, 2593.8562, 52.9811, 269.4595,-1,-1);
- AddStaticVehicle(590, -549.3493, 2593.8562, 52.9811, 269.4595,-1,-1);
- AddStaticVehicle(590, -549.3493, 2593.8562, 52.9811, 269.4595,-1,-1);
- AddStaticVehicle(590, -549.3493, 2593.8562, 52.9811, 269.4595,-1,-1);
- AddStaticVehicle(590, -549.3493, 2593.8562, 52.9811, 269.4595,-1,-1);
- CreateObject(2395, -508.4950, 2595.0817, 52.4204, 271.4779, 0.0000, 269.9996);
- CreateObject(3502, -539.1016, 2593.7387, 53.4335, 0.0000, 0.0000, 89.9992);
- CreateObject(2395, -489.7726, 2595.0817, 59.0352, 306.7149, 0.0000, 269.9996);
- CreateObject(2395, -498.7724, 2595.0817, 54.1352, 292.1044, 0.0000, 269.9996);
- CreateObject(2395, -503.3226, 2595.0817, 52.8103, 283.5101, 0.0000, 269.9996);
- CreateObject(2395, -493.9974, 2595.0817, 56.3603, 302.4176, 0.0000, 269.9996);
- CreateObject(2395, -505.8226, 2595.0817, 52.4853, 277.4941, 0.0000, 269.9996);
- CreateObject(2395, -500.9500, 2595.0817, 53.3804, 289.0964, 0.0000, 269.9996);
- CreateObject(2395, -496.2724, 2595.0817, 55.1453, 298.1206, 0.0000, 269.9996);
- CreateObject(2395, -491.7724, 2595.0817, 57.7714, 302.6296, 0.0000, 269.9996);
- CreateObject(2395, -507.2475, 2595.0817, 52.4340, 273.4948, 0.0000, 269.9996);
- CreateObject(2395, -504.8226, 2595.0817, 52.5841, 279.6828, 0.0000, 269.9996);
- CreateObject(2395, -502.4500, 2595.0817, 52.9566, 287.0338, 0.0000, 269.9996);
- CreateObject(1426, -493.4859, 2593.7763, 52.5696, 0.0000, 0.0000, 269.9996);
- CreateObject(1426, -498.7359, 2593.7763, 50.2446, 0.0000, 0.0000, 269.9996);
- CreateObject(1426, -496.0609, 2593.7763, 51.2945, 0.0000, 0.0000, 269.9996);
- CreateObject(1426, -490.8109, 2593.7763, 54.2194, 0.0000, 0.0000, 269.9996);
- CreateObject(1426, -490.8109, 2593.7763, 50.6234, 0.0000, 0.0000, 269.9996);
- CreateObject(1426, -488.0108, 2593.7763, 56.0445, 0.0000, 0.0000, 269.9996);
- CreateObject(1426, -488.0108, 2593.7763, 52.4484, 0.0000, 0.0000, 269.9996);
- CreateObject(3074, -540.3167, 2589.8774, 38.8992, 36.9547, 0.0000, 0.0000);
- CreateObject(11492, -552.0051, 2592.4255, 51.9736, 0.0000, 0.0000, 0.0000);
- CreateObject(983, -540.5206, 2593.7246, 55.8438, 0.0000, 0.0000, 0.0000);
- CreateObject(2938, -563.5327, 2592.1850, 54.0492, 0.0000, 0.0000, 0.0000);
- CreateObject(16359, -549.6016, 2593.7011, 53.3519, 0.0000, 0.0000, 90.0000);
- CreateObject(12978, -555.0286, 2593.6738, 51.4694, 0.0000, 0.0000, 90.0000);
- //CHILLIAD
- AddStaticPickup(1242, 2, -2324.8708,-1622.0394,483.7098); // armor chilliad
- AddStaticPickup(370, 2, -2370.2878,-1572.6448,498.3074); // jetpack chilliad
- AddStaticPickup(371, 2, -2313.0522,-1642.8228,483.7031); // parachute chilliad
- AddStaticPickup(371, 2, -2233.3872,-1737.0549,480.8258); // parachute chilliad
- AddStaticPickup(350, 2, -2324.8708,-1622.0394,483.7098); // sawnoff chilliad
- AddStaticPickup(360, 2, -2401.8508,-1632.1577,521.1067); // rocket launcher chilliad
- AddStaticPickup(363, 2, -2238.1636,-1712.2151,480.8667); // det packs chilliad
- //AIRPORT
- AddStaticPickup(371, 2, 1878.4415,-2396.1931,13.5547); // airport parachute
- AddStaticPickup(1242, 2, 1900.4696,-2328.0867,13.5469); // armor airport
- AddStaticPickup(348, 2, 1882.1780,-2310.0657,13.5469); // airport DE
- AddStaticPickup(348, 2, 1882.1780,-2310.0657,13.5469); // airport DE
- AddStaticPickup(348, 2, 1882.1780,-2310.0657,13.5469); // airport DE
- AddStaticPickup(348, 2, 1882.1780,-2310.0657,13.5469); // airport DE
- AddStaticPickup(348, 2, 1882.1780,-2310.0657,13.5469); // airport DE
- AddStaticPickup(352, 2, 1884.1780,-2310.0657,13.5469); // airport mini uzi
- AddStaticPickup(352, 2, 1884.1780,-2310.0657,13.5469); // airport mini uzi
- AddStaticPickup(352, 2, 1884.1780,-2310.0657,13.5469); // airport mini uzi
- AddStaticPickup(352, 2, 1884.1780,-2310.0657,13.5469); // airport mini uzi
- AddStaticPickup(352, 2, 1884.1780,-2310.0657,13.5469); // airport mini uzi
- AddStaticPickup(352, 2, 1884.1780,-2310.0657,13.5469); // airport mini uzi
- AddStaticPickup(352, 2, 1884.1780,-2310.0657,13.5469); // airport mini uzi
- AddStaticPickup(363, 2, 1853.2102,-2327.4004,13.5469); // airport det pack
- AddStaticPickup(360, 2, 2061.7407,-2372.1411,16.1250); // airport rocket 1
- AddStaticPickup(360, 2, 1389.6195,-2600.5029,13.5469); // airport rocket 2
- AddStaticPickup(344, 2, 1644.3447,-2394.0745,13.5547); // airport molotov
- //FAMILY
- AddStaticPickup(1242, 2, 2515.9084,-1682.6433,13.3945); // family armor
- AddStaticPickup(348, 2, 2522.8040,-1682.4972,15.4970); // family DE
- AddStaticPickup(348, 2, 2522.8040,-1682.4972,15.4970); // family DE
- AddStaticPickup(348, 2, 2522.8040,-1682.4972,15.4970); // family DE
- AddStaticPickup(348, 2, 2522.8040,-1682.4972,15.4970); // family DE
- AddStaticPickup(348, 2, 2522.8040,-1682.4972,15.4970); // family DE
- AddStaticPickup(348, 2, 2522.8040,-1682.4972,15.4970); // family DE
- AddStaticPickup(352, 2, 2522.3618,-1680.7299,15.4970); // family mini uzi
- AddStaticPickup(352, 2, 2522.3618,-1680.7299,15.4970); // family mini uzi
- AddStaticPickup(352, 2, 2522.3618,-1680.7299,15.4970); // family mini uzi
- AddStaticPickup(352, 2, 2522.3618,-1680.7299,15.4970); // family mini uzi
- AddStaticPickup(352, 2, 2522.3618,-1680.7299,15.4970); // family mini uzi
- AddStaticPickup(352, 2, 2522.3618,-1680.7299,15.4970); // family mini uzi
- AddStaticPickup(352, 2, 2522.3618,-1680.7299,15.4970); // family mini uzi
- //BALLAS
- AddStaticPickup(1242, 2, 1733.2368,-1611.3384,13.5469); // armor ballas
- AddStaticPickup(348, 2, 1726.1089,-1615.0144,13.5469); // ballas DE
- AddStaticPickup(352, 2, 1726.1062,-1617.2410,13.5469); // ballas mini uzi
- AddStaticPickup(348, 2, 1726.1089,-1615.0144,13.5469); // ballas DE
- AddStaticPickup(352, 2, 1726.1062,-1617.2410,13.5469); // ballas mini uzi
- AddStaticPickup(348, 2, 1726.1089,-1615.0144,13.5469); // ballas DE
- AddStaticPickup(352, 2, 1726.1062,-1617.2410,13.5469); // ballas mini uzi
- AddStaticPickup(348, 2, 1726.1089,-1615.0144,13.5469); // ballas DE
- AddStaticPickup(352, 2, 1726.1062,-1617.2410,13.5469); // ballas mini uzi
- AddStaticPickup(348, 2, 1726.1089,-1615.0144,13.5469); // ballas DE
- AddStaticPickup(352, 2, 1726.1062,-1617.2410,13.5469); // ballas mini uzi
- AddStaticPickup(348, 2, 1726.1089,-1615.0144,13.5469); // ballas DE
- AddStaticPickup(352, 2, 1726.1062,-1617.2410,13.5469); // ballas mini uzi
- AddStaticPickup(348, 2, 1726.1089,-1615.0144,13.5469); // ballas DE
- AddStaticPickup(352, 2, 1726.1062,-1617.2410,13.5469); // ballas mini uzi
- AddStaticPickup(348, 2, 1726.1089,-1615.0144,13.5469); // ballas DE
- AddStaticPickup(352, 2, 1726.1062,-1617.2410,13.5469); // ballas mini uzi
- // VATTOS
- AddStaticPickup(1242, 2, 2121.7217,-1149.2666,24.2893); // armor vattos
- AddStaticPickup(348, 2, 2121.9497,-1157.7094,24.1486); // vattos DE
- AddStaticPickup(352, 2, 2118.4583,-1157.9148,24.2648); // vattos mini uzi
- AddStaticPickup(348, 2, 2121.9497,-1157.7094,24.1486); // vattos DE
- AddStaticPickup(352, 2, 2118.4583,-1157.9148,24.2648); // vattos mini uzi
- AddStaticPickup(348, 2, 2121.9497,-1157.7094,24.1486); // vattos DE
- AddStaticPickup(352, 2, 2118.4583,-1157.9148,24.2648); // vattos mini uzi
- AddStaticPickup(348, 2, 2121.9497,-1157.7094,24.1486); // vattos DE
- AddStaticPickup(352, 2, 2118.4583,-1157.9148,24.2648); // vattos mini uzi
- AddStaticPickup(348, 2, 2121.9497,-1157.7094,24.1486); // vattos DE
- AddStaticPickup(352, 2, 2118.4583,-1157.9148,24.2648); // vattos mini uzi
- AddStaticPickup(348, 2, 2121.9497,-1157.7094,24.1486); // vattos DE
- AddStaticPickup(352, 2, 2118.4583,-1157.9148,24.2648); // vattos mini uzi
- AddStaticPickup(348, 2, 2121.9497,-1157.7094,24.1486); // vattos DE
- AddStaticPickup(352, 2, 2118.4583,-1157.9148,24.2648); // vattos mini uzi
- AddStaticPickup(348, 2, 2121.9497,-1157.7094,24.1486); // vattos DE
- AddStaticPickup(352, 2, 2118.4583,-1157.9148,24.2648); // vattos mini uzi
- //POLICE
- AddStaticPickup(1242, 2, 2022.3368,-1419.1205,16.9922); // armor cop
- //BASEJUMP1
- AddStaticPickup(371, 2, 1574.8966,-1249.2684,277.8787); // basejump1 parachute
- //BASEJUMP2
- AddStaticPickup(371, 2, 1539.4971,-1371.4875,328.3436); // basejump2 parachute
- //BASEJUMP3
- AddStaticPickup(371, 2, -225.1428,1393.6865,172.4141); // basejump3 parachute
- //BASEJUMP4
- AddStaticPickup(371, 2, -2872.1931,2606.3821,271.5319); // basejump4 parachute
- //BASEJUMP5
- AddStaticPickup(371, 2, -341.6077,1601.4565,164.4840); // basejump5 parachute
- //SKYDIVE
- AddStaticPickup(371, 2, 1951.4064,-2436.0005,97.7329); // skydive parachute
- //area69
- AddStaticPickup(352, 2, 265.0037,1880.7461,-30.3906); // mini uzi
- AddStaticPickup(352, 2, 272.2651,1880.4424,-30.3906); // mini uzi
- AddStaticPickup(370, 2, 264.4069,1886.7014,-30.3906); // jetpack
- AddStaticPickup(370, 2, 273.4023,1886.7484,-30.3906); // jetpack
- AddStaticPickup(352, 2, 265.0037,1880.7461,-30.3906); // mini uzi
- AddStaticPickup(352, 2, 272.2651,1880.4424,-30.3906); // mini uzi
- AddStaticPickup(352, 2, 265.0037,1880.7461,-30.3906); // mini uzi
- AddStaticPickup(352, 2, 272.2651,1880.4424,-30.3906); // mini uzi
- AddStaticPickup(352, 2, 265.0037,1880.7461,-30.3906); // mini uzi
- AddStaticPickup(352, 2, 272.2651,1880.4424,-30.3906); // mini uzi
- AddStaticPickup(352, 2, 265.0037,1880.7461,-30.3906); // mini uzi
- AddStaticPickup(352, 2, 272.2651,1880.4424,-30.3906); // mini uzi
- AddStaticPickup(352, 2, 265.0037,1880.7461,-30.3906); // mini uzi
- AddStaticPickup(352, 2, 272.2651,1880.4424,-30.3906); // mini uzi
- AddStaticPickup(352, 2, 265.0037,1880.7461,-30.3906); // mini uzi
- AddStaticPickup(352, 2, 272.2651,1880.4424,-30.3906); // mini uzi
- AddStaticPickup(352, 2, 265.0037,1880.7461,-30.3906); // mini uzi
- AddStaticPickup(352, 2, 272.2651,1880.4424,-30.3906); // mini uzi
- AddStaticPickup(352, 2, 265.0037,1880.7461,-30.3906); // mini uzi
- AddStaticPickup(352, 2, 272.2651,1880.4424,-30.3906); // mini uzi
- AddStaticPickup(352, 2, 265.0037,1880.7461,-30.3906); // mini uzi
- AddStaticPickup(352, 2, 272.2651,1880.4424,-30.3906); // mini uzi
- //******OBJECTS*********
- CreateObject(13592,2070.6694,-2545.4927,22.2113,0,0,0); // big airport loop-de-loop
- CreateVehicle(590, -549.3493, 2593.8562, 52.9811, 269.4595,-1,-1,300);
- CreateVehicle(590, -549.3493, 2593.8562, 52.9811, 269.4595,-1,-1,300);
- CreateVehicle(590, -549.3493, 2593.8562, 52.9811, 269.4595,-1,-1,300);
- CreateVehicle(590, -549.3493, 2593.8562, 52.9811, 269.4595,-1,-1,300);
- CreateVehicle(590, -549.3493, 2593.8562, 52.9811, 269.4595,-1,-1,300);
- CreateVehicle(590, -549.3493, 2593.8562, 52.9811, 269.4595,-1,-1,300);
- CreateVehicle(590, -549.3493, 2593.8562, 52.9811, 269.4595,-1,-1,300);
- CreateVehicle(590, -549.3493, 2593.8562, 52.9811, 269.4595,-1,-1,300);
- CreateVehicle(590, -549.3493, 2593.8562, 52.9811, 269.4595,-1,-1,300);
- CreateVehicle(590, -549.3493, 2593.8562, 52.9811, 269.4595,-1,-1,300);
- CreateObject(2395, -508.4950, 2595.0817, 52.4204, 271.4779, 0.0000, 269.9996);
- CreateObject(3502, -539.1016, 2593.7387, 53.4335, 0.0000, 0.0000, 89.9992);
- CreateObject(2395, -489.7726, 2595.0817, 59.0352, 306.7149, 0.0000, 269.9996);
- CreateObject(2395, -498.7724, 2595.0817, 54.1352, 292.1044, 0.0000, 269.9996);
- CreateObject(2395, -503.3226, 2595.0817, 52.8103, 283.5101, 0.0000, 269.9996);
- CreateObject(2395, -493.9974, 2595.0817, 56.3603, 302.4176, 0.0000, 269.9996);
- CreateObject(2395, -505.8226, 2595.0817, 52.4853, 277.4941, 0.0000, 269.9996);
- CreateObject(2395, -500.9500, 2595.0817, 53.3804, 289.0964, 0.0000, 269.9996);
- CreateObject(2395, -496.2724, 2595.0817, 55.1453, 298.1206, 0.0000, 269.9996);
- CreateObject(2395, -491.7724, 2595.0817, 57.7714, 302.6296, 0.0000, 269.9996);
- CreateObject(2395, -507.2475, 2595.0817, 52.4340, 273.4948, 0.0000, 269.9996);
- CreateObject(2395, -504.8226, 2595.0817, 52.5841, 279.6828, 0.0000, 269.9996);
- CreateObject(2395, -502.4500, 2595.0817, 52.9566, 287.0338, 0.0000, 269.9996);
- CreateObject(1426, -493.4859, 2593.7763, 52.5696, 0.0000, 0.0000, 269.9996);
- CreateObject(1426, -498.7359, 2593.7763, 50.2446, 0.0000, 0.0000, 269.9996);
- CreateObject(1426, -496.0609, 2593.7763, 51.2945, 0.0000, 0.0000, 269.9996);
- CreateObject(1426, -490.8109, 2593.7763, 54.2194, 0.0000, 0.0000, 269.9996);
- CreateObject(1426, -490.8109, 2593.7763, 50.6234, 0.0000, 0.0000, 269.9996);
- CreateObject(1426, -488.0108, 2593.7763, 56.0445, 0.0000, 0.0000, 269.9996);
- CreateObject(1426, -488.0108, 2593.7763, 52.4484, 0.0000, 0.0000, 269.9996);
- CreateObject(3074, -540.3167, 2589.8774, 38.8992, 36.9547, 0.0000, 0.0000);
- CreateObject(11492, -552.0051, 2592.4255, 51.9736, 0.0000, 0.0000, 0.0000);
- CreateObject(983, -540.5206, 2593.7246, 55.8438, 0.0000, 0.0000, 0.0000);
- CreateObject(2938, -563.5327, 2592.1850, 54.0492, 0.0000, 0.0000, 0.0000);
- CreateObject(16359, -549.6016, 2593.7011, 53.3519, 0.0000, 0.0000, 90.0000);
- CreateObject(12978, -555.0286, 2593.6738, 51.4694, 0.0000, 0.0000, 90.0000);
- }
- //------------------------------------------------------------------------------
- public OnGameModeExit() {
- #if defined MENUS
- //DESTROY MENUS
- DestroyMenu(Menu:MainM);
- // DestroyMenu(Menu:PointsM);
- DestroyMenu(Menu:StuntM);
- #if defined DM
- DestroyMenu(Menu:DMM);
- #endif //dm
- #if defined PVEHICLES
- DestroyMenu(Menu:CarM);
- DestroyMenu(Menu:Car2M);
- DestroyMenu(Menu:Car3M);
- DestroyMenu(Menu:Car4M);
- #else
- DestroyMenu(Menu:CarTeleM);
- #endif //pvehicles
- #if defined RACES
- #if defined RACE_MENU
- DestroyMenu(MAdmin);
- DestroyMenu(MPMode);
- DestroyMenu(MPrize);
- DestroyMenu(MDyna);
- DestroyMenu(MBuild);
- DestroyMenu(MLaps);
- DestroyMenu(MRace);
- DestroyMenu(MRacemode);
- DestroyMenu(MFee);
- DestroyMenu(MCPsize);
- DestroyMenu(MDelay);
- #endif // race_menu
- #endif //races
- #endif // menus
- return 1;
- }
- //-----------------------------------------------------------------------
- //COMMANDS
- public OnPlayerCommandText(playerid, cmdtext[]) {
- dcmd(help,4,cmdtext);
- dcmd(tele,4,cmdtext);
- dcmd(cmd,3,cmdtext);
- dcmd(dcar,4,cmdtext);
- dcmd(fix,3,cmdtext);
- dcmd(flip,4,cmdtext);
- dcmd(leave,5,cmdtext);
- dcmd(sf,2,cmdtext);
- dcmd(lv,2,cmdtext);
- dcmd(ls,2,cmdtext);
- dcmd(ammu,4,cmdtext);
- dcmd(desert,6,cmdtext);
- dcmd(cannon,6,cmdtext);
- dcmd(sdance,6,cmdtext);
- dcmd(smoke,5,cmdtext);
- dcmd(kill,4,cmdtext);
- dcmd(pc,2,cmdtext);
- dcmd(bot,3,cmdtext);
- dcmd(magic,5,cmdtext);
- dcmd(lock,4,cmdtext);
- dcmd(unlock,6,cmdtext);
- dcmd(unlockall,9,cmdtext);
- dcmd(wrc,3,cmdtext);
- dcmd(nos,3,cmdtext);
- dcmd(jetpack,7,cmdtext);
- dcmd(skydive,7,cmdtext);
- dcmd(warehouse,9,cmdtext);
- dcmd(rctrack,7,cmdtext);
- dcmd(bikepark,8,cmdtext);
- dcmd(beach,5,cmdtext);
- dcmd(basejump1,9,cmdtext);
- dcmd(basejump2,9,cmdtext);
- dcmd(basejump3,9,cmdtext);
- dcmd(basejump4,9,cmdtext);
- dcmd(basejump5,9,cmdtext);
- dcmd(chiliad,7,cmdtext);
- dcmd(airport,7,cmdtext);
- dcmd(rallyup,7,cmdtext);
- dcmd(boneyard,8,cmdtext);
- dcmd(dirtpit,7,cmdtext);
- dcmd(pyramid,7,cmdtext);
- dcmd(area69,6,cmdtext);
- dcmd(silodm,6,cmdtext);
- dcmd(boardwalk,9,cmdtext);
- dcmd(funpark,7,cmdtext);
- dcmd(locos,5,cmdtext);
- dcmd(waa,3,cmdtext);
- dcmd(canal,5,cmdtext);
- dcmd(ramp,4,cmdtext);
- dcmd(tuner,5,cmdtext);
- #if defined MENUS
- #if defined DM
- dcmd(dm,2,cmdtext);
- #endif //dm
- dcmd(car,3,cmdtext);
- dcmd(car2,4,cmdtext);
- dcmd(car3,4,cmdtext);
- dcmd(car4,4,cmdtext);
- dcmd(casino, 6, cmdtext);
- // dcmd(train,5,cmdtext);
- dcmd(basejump,8,cmdtext);
- dcmd(weather,7,cmdtext);
- #endif
- #if defined RACES
- // dcmd(bet, 3, cmdtext);
- dcmd(racehelp,8,cmdtext); // Racehelp - there's a lot of commands!
- dcmd(buildhelp,9,cmdtext); // Buildhelp - there's a lot of commands!
- dcmd(buildrace,9,cmdtext); // Buildrace - Start building a new race (suprising!)
- dcmd(cp,2,cmdtext); // cp - Add a checkpoint
- dcmd(scp,3,cmdtext); // scp - Select a checkpoint
- dcmd(rcp,3,cmdtext); // rcp - Replace the current checkpoint with a new one
- dcmd(mcp,3,cmdtext); // mcp - Move the selected checkpoint
- dcmd(dcp,3,cmdtext); // dcp - Delete the selected waypoint
- dcmd(join,4,cmdtext);
- dcmd(clearrace,9,cmdtext); // clearrace - Clear the current (new) race.
- dcmd(editrace,8,cmdtext); // editrace - Load an existing race into the builder
- dcmd(saverace,8,cmdtext); // saverace - Save the current checkpoints to a file
- dcmd(setlaps,7,cmdtext); // setlaps - Set amount of laps to drive
- dcmd(racemode,8,cmdtext); // racemode - Set the current racemode
- dcmd(loadrace,8,cmdtext); // loadrace - Load a race from file and start it
- dcmd(startrace,9,cmdtext); // starts the loaded race
- dcmd(leaverace,9,cmdtext); // leave - leave the current race.
- dcmd(endrace,7,cmdtext); // endrace - Complete the current race, clear tables & variables, stop the timer.
- dcmd(racers,6,cmdtext);
- dcmd(deleterace,10,cmdtext);// deleterace - Remove the race from disk
- dcmd(airrace,7,cmdtext); // airrace - Changes the checkpoints to air CPs and back
- dcmd(cpsize,6,cmdtext); // cpsize - changes the checkpoint size
- dcmd(prizemode,9,cmdtext);
- dcmd(setprize,8,cmdtext);
- #if defined RACE_MENU
- dcmd(raceadmin,9,cmdtext);
- dcmd(buildmenu,9,cmdtext);
- #endif // race_menu if(!IsPlayerConnected(playerid)) return 0; // Nitroglycerine's snippet
- #endif //races
- return 1;
- }
- public OnPlayerConnect(playerid)
- {
- SendClientMessage(playerid, COLOR_WHITE, ">>> Everystuff Freeroam|Stunt|DM by kaisersouse <<<");
- SendClientMessage(playerid, 0xFF9900AA, ">>> Type /help or /cmd to get started! Use SUBMISSION key for NOS + vehicle repair. <<<");
- SendClientMessage(playerid, 0xFF9900AA, ">>> Type /car for vehicle menu. Drive into DUAL-SKULL icon to launch vehicle <<<");
- GetPlayerName(playerid,pname[playerid],MAX_PLAYER_NAME);
- GivePlayerMoney(playerid, 100000);
- TextDrawShowForPlayer(playerid, Help);
- playercar[playerid] = -1;
- pvehicleid[playerid] = -1;
- pmodelid[playerid] = 0;
- SetPlayerSkillLevel(playerid,WEAPONSKILL_MICRO_UZI,1000);
- SetPlayerSkillLevel(playerid,WEAPONSKILL_PISTOL_SILENCED,1000);
- SetPlayerSkillLevel(playerid,WEAPONSKILL_PISTOL,1000);
- SetPlayerSkillLevel(playerid,WEAPONSKILL_DESERT_EAGLE,1000);
- SetPlayerSkillLevel(playerid,WEAPONSKILL_SHOTGUN,1000);
- SetPlayerSkillLevel(playerid,WEAPONSKILL_SAWNOFF_SHOTGUN,1000);
- SetPlayerSkillLevel(playerid,WEAPONSKILL_SPAS12_SHOTGUN,1000);
- SetPlayerSkillLevel(playerid,WEAPONSKILL_MP5,1000);
- SetPlayerSkillLevel(playerid,WEAPONSKILL_AK47,1000);
- SetPlayerSkillLevel(playerid,WEAPONSKILL_M4,1000);
- SetPlayerSkillLevel(playerid,WEAPONSKILL_SNIPERRIFLE,1000);
- return 1;
- }
- public OnPlayerDisconnect(playerid, reason)
- {
- if(playercar[playerid] != -1) KillPlayerVehicle(playerid);
- return 1;
- }
- public OnPlayerKeyStateChange(playerid,newkeys,oldkeys)
- {
- if(newkeys & KEY_SUBMISSION && pvehicleid[playerid] != -1)
- {
- SetVehicleHealth(pvehicleid[playerid],1000.0);
- if(pvehicleid[playerid] != -1 && pstate[playerid] == PLAYER_STATE_DRIVER && IsInModVehicle(playerid))
- {
- AddNosToVehicle(playerid,pvehicleid[playerid]);
- PlayerPlaySound(playerid, 1133, 0.0, 0.0, 0.0);
- }
- return 1;
- }
- return 1;
- }
- public OnPlayerStateChange(playerid, newstate, oldstate)
- {
- new vehicleid,modelid;
- pstate[playerid] = newstate;
- vehicleid = GetPlayerVehicleID(playerid);
- modelid = GetVehicleModel(vehicleid);
- // format(string64,sizeof(string64),"playerid %i playercar %i",playerid,playercar[playerid]);
- // SendClientMessageToAll(COLOR_GREY,string64);
- switch(newstate)
- {
- case 1,7,8://onfoot wasted spawned
- {
- if(newstate == 1)
- {
- if(!gTeam[playerid]) SetPlayerWorldBounds(playerid, 9999.00, -9999.00, 9999.00, -9999.00);
- if(oldstate == 2 && pvehicleid[playerid] != -1)
- {
- foreach(Player,i) SetVehicleParamsForPlayer(pvehicleid[playerid],i,false,false);
- }
- }
- badcar[playerid] = false;
- cantrace[playerid] = false;
- aircraft[playerid] = false;
- pvehicleid[playerid] = -1;
- pmodelid[playerid] = 0;
- // if(RaceParticipant[playerid]) LeaveRace(playerid);
- return 1;
- }
- case 2: //driver
- {
- pvehicleid[playerid] = vehicleid;
- pmodelid[playerid] = modelid;
- cancount[playerid] = true;
- // if(modelid == 520) SetPlayerWorldBounds(playerid, 2966.18, -817.4513, 2335.575, 478.7929);
- if(modelid == 525) SendClientMessage(playerid,0xFFFF00AA,"You can use the ACTION KEY to Tow cars");
- if(IsInModVehicle(playerid))
- {
- AddNosToVehicle(playerid,pvehicleid[playerid]);
- SetVehicleNumberPlate(pvehicleid[playerid],"EVRYSTUF");
- }
- // format(string128,sizeof(string128),"Debug: Playerid %i is driving vehicle %i",playerid,pvehicleid[playerid]);
- // SendClientMessageToAll(COLOR_GREY,string128);
- }
- case 3: // passenger
- {
- pvehicleid[playerid] = vehicleid;
- pmodelid[playerid] = modelid;
- cantrace[playerid] = true;
- // format(string128,sizeof(string128),"Debug: Playerid %i is a passenger in vehicle %i",playerid,pvehicleid[playerid]);
- // SendClientMessageToAll(COLOR_GREY,string128);
- }
- }
- if(newstate == 2 || newstate == 3)
- {
- new str[32];
- format(str, sizeof(str), "~g~%s", vehName[pmodelid[playerid]-400]);
- GameTextForPlayer(playerid, str, 3000, 1);
- }
- return 1;
- }
- forward IsComplexVehicle(vehicleid);
- public IsComplexVehicle(vehicleid) {
- new modmodel = GetVehicleModel(vehicleid);
- switch(modmodel) {
- case 425,432,520,447,464,430,590,570,569,538,537,449,611,610,608,607,606,591,584,450,435:{
- return true; // there are complex vehicles (vehicles w/guns or 2nd function..or generally odd behaving vehicles)
- }
- }
- return false;
- }
- forward IsInModVehicle(playerid);
- public IsInModVehicle(playerid) {
- if(IsPlayerInVehicle(playerid,pvehicleid[playerid]) && pstate[playerid] == PLAYER_STATE_DRIVER) {
- switch(pmodelid[playerid]) {
- case 417,425,430,435,441,446,447,448,449,450,452,453,454,460,461,462,463,464,465,468,469,472,473,476,481,484,487,488,493,497,501,509,510,511,512,513,519,520,521,522,523,537,538,539,548,553,563,564,569,570,577,581,584,586,590,591,592,593,594,595,606,607,608,610,611: {
- return false; // these are non moddable vehicles
- }
- default: return true;
- }
- }
- return false;
- }
- forward AddNosToVehicle(playerid,nosid);
- public AddNosToVehicle(playerid,nosid) {
- if(IsPlayerConnected(playerid)) {
- if(cantrace[playerid] == true) return 1;
- if(IsInModVehicle(playerid)) {
- AddVehicleComponent(nosid, 1010);
- PlayerPlaySound(playerid, 1133, 0, 0, 0);
- }
- }
- return 1;
- }
- forward AddHydroToVehicle(playerid,hydroid);
- public AddHydroToVehicle(playerid,hydroid) {
- if(IsPlayerConnected(playerid)) {
- if(cantrace[playerid] == true) return 1;
- #if defined MODS
- if(IsInModVehicle(playerid) && pstate[playerid] == PLAYER_STATE_DRIVER) { //added playerstate check to keep dumbasses from adding hydraulics (shitty handling) at inconvenient times (before/during race)
- AddVehicleComponent(hydroid, 1087);
- PlayerPlaySound(playerid, 1133, 0, 0, 0);
- }
- #else
- SendClientMessage(playerid, COLOR_ERROR, "***DISABLED*** All vehicle mods are TEMPORARILY disabled while we trace the 0x007F crash");
- #endif //mods
- }
- return 1;
- }
- public OnPlayerSpawn(playerid)
- {
- SetPlayerWorldBounds(playerid, 9999.00, -9999.00, 9999.00, -9999.00);
- PlayerPlaySound(playerid, 1188,0.0,0.0,0.0); // id 1188 stops ALL music
- ResetPlayerWeapons(playerid);
- switch(gTeam[playerid])
- {
- case 0:
- {
- new rand = random(sizeof(gRandomStuntSpawn));
- SetPlayerPos(playerid,gRandomStuntSpawn[rand][0], gRandomStuntSpawn[rand][1], gRandomStuntSpawn[rand][2]);
- SetPlayerFacingAngle(playerid,gRandomStuntSpawn[rand][3]);
- SetPlayerVirtualWorld(playerid,0);
- GivePlayerWeapon(playerid, 12, 1);
- GivePlayerWeapon(playerid, 39, 50);
- GivePlayerWeapon(playerid, 40, 50);
- GivePlayerWeapon(playerid, 30, 999);
- GivePlayerWeapon(playerid, 28, 999);
- SetPlayerArmour(playerid,100.0);
- #if defined RACES
- if(RaceParticipant[playerid]) LeaveRace(playerid);
- #endif // races
- SetPlayerInterior(playerid,0);
- }
- case 5: MilitaryDM(playerid);
- case 7: SawnOffDM(playerid);
- case 8: SniperDM(playerid);
- case 9: RocketDM(playerid);
- case 10: MinigunDM(playerid);
- case 13: HouseDM(playerid);
- case 17: GasDM(playerid);
- case 18: ShipDM(playerid);
- case 20: SwordDM(playerid);
- case 21: DeagleDM(playerid);
- case 100: //afk
- {
- SetPlayerPos(playerid, 2324.33, -1144.79, 1050.71);
- SetPlayerInterior(playerid,12);
- SetCameraBehindPlayer(playerid);
- TogglePlayerControllable(playerid, false);
- }
- }
- return 1;
- }
- // -----------------------------------------------------------------------------
- public OnPlayerDeath(playerid, killerid, reason){
- for(new i;i<sizeof(f_weapons);i++) {
- if(f_weapons[i] == reason) {
- f_killer[killerid]++;
- f_victim[playerid]++;
- f_kills[killerid][playerid]++;
- if(f_killer[killerid] >= 3) {
- Kick(killerid);
- for(new j;j<MAX_PLAYERS;j++) {
- if(f_kills[killerid][j] > 0) {
- f_victim[j] -= f_kills[killerid][j];
- f_kills[killerid][j] = 0;
- if(f_victim[j] < 0) f_victim[j] = 0;
- }
- }
- }
- if(f_victim[playerid] >= 3) {
- Kick(playerid);
- for(new j;j<MAX_PLAYERS;j++) {
- if(f_kills[j][playerid] > 0) {
- f_killer[j] -= f_kills[j][playerid];
- f_kills[j][playerid] = 0;
- if(f_killer[j] < 0) f_killer[j] = 0;
- }
- }
- }
- return 1;
- }
- SendDeathMessage(INVALID_PLAYER_ID,playerid,reason);
- return 1;
- }
- return 1;
- }
- //--------------------------------------------------------------------------------------------------
- public OnPlayerRequestClass(playerid, classid)
- {
- SetPlayerInterior(playerid,0);
- SetPlayerPos(playerid,-2669.0994,1593.9785,217.2739);
- SetPlayerFacingAngle(playerid, 76.26);
- SetPlayerCameraPos(playerid,-2671.8096,1595.7000,218.2739);
- SetPlayerCameraLookAt(playerid,-2669.0994,1593.9785,217.2739);
- new rand = random(sizeof(startMusic));
- PlayerPlaySound(playerid, startMusic[rand],-2669.0994,1593.9785,217.2739); //was 1068
- pskin[playerid] = GetPlayerSkin(playerid);
- return 1;
- }
- //------------------------------------------------------------------------------
- forward GameModeExitFunc();
- public GameModeExitFunc()
- {
- GameModeExit();
- return 1;
- }
- //------------------------------------------------------------------------------
- dcmd_cmd(const playerid, const params[])
- {
- new commsg[256];
- format(commsg, sizeof(commsg), "/tele /dm /car /nos /lock /unlock /fix /flip /join /tuner /wrc /jetpack /settime /anims /magic /pc /smoke /sdance /kill /bot");
- SendClientMessage(playerid, 0xFFFF00AA, commsg);
- return 1;
- #pragma unused params
- }
- dcmd_tele(const playerid, const params[])
- {
- SendClientMessage(playerid, 0x7CFC00FF, "/register /login /chiliad, /airport /tuner /basejump1 /basejump2 /basejump3 /basejump4 /basejump5");
- SendClientMessage(playerid, 0x7CFC00FF, "/ls /lv /sf /canal /pyramid /boardwalk /funpark /rallyup /dirtpit /skydive /beach /bikepark /cannon");
- SendClientMessage(playerid, 0x7CFC00FF, "/desert /ammu /area69 /tankwar /silodm /warehouse /rctrack /ramp /casino");
- return 1;
- #pragma unused params
- }
- dcmd_help(const playerid, const params[])
- {
- SendClientMessage(playerid, 0x7CFC00FF, ">> Type /cmd for commands, /tele for teleports.");
- SendClientMessage(playerid, 0x7CFC00FF, "Want to help keep the server running? Check out http://madoshi.net/donate");
- return 1;
- #pragma unused params
- }
- dcmd_jetpack(playerid,params[]) {
- if(pstate[playerid] != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, COLOR_ERROR, "You need to be on-foot to use /jetpack");
- GetPlayerPos(playerid, playerx, playery, playerz);
- if(GetPlayerSpecialAction(playerid) == 2) {
- GetPlayerPos(playerid, playerx, playery, playerz);
- SetPlayerPos(playerid, playerx, playery, playerz);
- return 1;
- }
- GetPlayerPos(playerid, playerx, playery, playerz);
- if(playerz < 0) SetPlayerPos(playerid, playerx, playery, playerz+20);
- return SetPlayerSpecialAction(playerid, SPECIAL_ACTION_USEJETPACK);
- #pragma unused params
- }
- dcmd_nos(const playerid, const params[]) {
- if(IsInModVehicle(playerid))
- {
- AddNosToVehicle(playerid,pvehicleid[playerid]);
- PlayerPlaySound(playerid, 1133, 0.0, 0.0, 0.0);
- }
- #pragma unused params
- return 1;
- }
- dcmd_leave(const playerid, const params[]) {
- SetPlayerWorldBounds(playerid, 9999.00, -9999.00, 9999.00, -9999.00);
- if(gTeam[playerid])
- {
- gTeam[playerid] = 0;
- ResetPlayerWeapons(playerid);
- }
- TogglePlayerControllable(playerid,true);
- #if defined RACES
- if(RaceParticipant[playerid]) LeaveRace(playerid);
- #endif // races
- SetPlayerInterior(playerid,0); // wise to place this before setplayerpos
- SetPlayerPos(playerid, -2324.8708,-1622.0394,483.7098);
- return 1;
- #pragma unused params
- }
- dcmd_flip(const playerid, const params[]) {
- #pragma unused params
- if(pstate[playerid] == PLAYER_STATE_DRIVER) { // NEVER EVER EVER USE SetVehiclePos>EX< for this. It will make ppl leave race + dm just for flipping car over
- new Float:X,Float:Y,Float:Z,Float:Angle;
- GetVehiclePos(pvehicleid[playerid],X,Y,Z);
- GetVehicleZAngle(pvehicleid[playerid],Angle);
- SetVehiclePos(pvehicleid[playerid],X,Y,Z+2);
- SetVehicleZAngle(pvehicleid[playerid],Angle);
- return 1;
- } else return SendClientMessage(playerid,COLOR_ERROR,"Error: You must be in a vehicle.");
- }
- dcmd_fix(const playerid, const params[])
- {
- if(pstate[playerid] != PLAYER_STATE_DRIVER && pstate[playerid] != PLAYER_STATE_PASSENGER) return SendClientMessage(playerid, COLOR_ERROR,"Error: You must be in a vehicle to repair.");
- if(IsComplexVehicle(pvehicleid[playerid]))
- {
- SendClientMessage(playerid, COLOR_RED, "VEHICLE REPAIR Error: You do not have a left-handed screwdriver.");
- return 1;
- }
- else if(pvehicleid[playerid] != -1)
- {
- RepairVehicle(pvehicleid[playerid]);
- }
- return 1;
- #pragma unused params
- }
- dcmd_cannon(const playerid, const params[]) {
- if(pstate[playerid] == PLAYER_STATE_DRIVER && pvehicleid[playerid] != -1) SetVehiclePos(pvehicleid[playerid],-499.3635,2578.3311,53.2842);
- else SetPlayerPos(playerid,-516.7750,2596.8813,53.4154);
- GameTextForPlayer(playerid,"Back into the pipe!!",2500,3);
- return 1;
- #pragma unused params
- }
- #if defined MENUS
- dcmd_dm(const playerid, const params[])
- {
- if(pstate[playerid] == PLAYER_STATE_DRIVER) RemovePlayerFromVehicle(playerid);
- if(IsValidMenu(DMM)) ShowMenuForPlayerEx(DMM, playerid);
- // SendClientMessage(playerid, COLOR_YELLOW, "Use the SPACEBAR to select your choice. Use ENTER to close menu.");
- return 1;
- #pragma unused params
- }
- dcmd_car(const playerid, const params[])
- {
- // KillPlayerVehicle(pvehicleid[playerid]);
- if(IsValidMenu(CarM)) ShowMenuForPlayerEx(CarM, playerid);
- return 1;
- #pragma unused params
- }
- dcmd_car2(const playerid, const params[])
- {
- // KillPlayerVehicle(pvehicleid[playerid]);
- if(IsValidMenu(Car2M)) ShowMenuForPlayerEx(Car2M, playerid);
- // SendClientMessage(playerid, COLOR_YELLOW, "Use the SPACEBAR to select your choice. Use ENTER to close menu.");
- return 1;
- #pragma unused params
- }
- dcmd_car3(const playerid, const params[])
- {
- // KillPlayerVehicle(pvehicleid[playerid]);
- if(IsValidMenu(Car3M)) ShowMenuForPlayerEx(Car3M, playerid);
- // SendClientMessage(playerid, COLOR_YELLOW, "Use the SPACEBAR to select your choice. Use ENTER to close menu.");
- return 1;
- #pragma unused params
- }
- dcmd_car4(const playerid, const params[])
- {
- // KillPlayerVehicle(pvehicleid[playerid]);
- if(IsValidMenu(Car4M)) ShowMenuForPlayerEx(Car4M, playerid);
- // SendClientMessage(playerid, COLOR_YELLOW, "Use the SPACEBAR to select your choice. Use ENTER to close menu.");
- return 1;
- #pragma unused params
- }
- #endif //menus
- dcmd_basejump(const playerid, const params[])
- {
- if(pstate[playerid] == PLAYER_STATE_DRIVER) RemovePlayerFromVehicle(playerid);
- if(IsValidMenu(JumpM)) ShowMenuForPlayerEx(JumpM, playerid);
- // SendClientMessage(playerid, COLOR_YELLOW, "Use the SPACEBAR to select your choice. Use ENTER to close menu.");
- return 1;
- #pragma unused params
- }
- dcmd_train(const playerid, const params[])
- {
- if(pstate[playerid] == PLAYER_STATE_DRIVER) RemovePlayerFromVehicle(playerid);
- if(IsValidMenu(TrainM)) ShowMenuForPlayerEx(TrainM, playerid);
- // SendClientMessage(playerid, COLOR_YELLOW, "Use the SPACEBAR to select your choice. Use ENTER to close menu.");
- return 1;
- #pragma unused params
- }
- dcmd_stunt(const playerid, const params[])
- {
- if(pstate[playerid] == PLAYER_STATE_DRIVER) RemovePlayerFromVehicle(playerid);
- if(IsValidMenu(StuntM)) ShowMenuForPlayerEx(StuntM, playerid);
- return 1;
- #pragma unused params
- }
- dcmd_casino(const playerid, const params[])
- {
- if(IsValidMenu(CasinoM)) ShowMenuForPlayerEx(CasinoM, playerid);
- return 1;
- #pragma unused params
- }
- dcmd_weather(const playerid, const params[])
- {
- #pragma unused params
- if(pstate[playerid] == PLAYER_STATE_DRIVER) RemovePlayerFromVehicle(playerid);
- if(IsValidMenu(Weather)) ShowMenuForPlayerEx(Weather,playerid);
- return 1;
- }
- dcmd_dcar(const playerid, const params[])
- {
- if(playercar[playerid] == -1) SendClientMessage(playerid, COLOR_ERROR, "You do not have a car to destroy. Type /car if you want a vehicle.");
- else KillPlayerVehicle(playerid);
- SendClientMessage(playerid, COLOR_CONFIRM, "Your vehicle has been destroyed. You can spawn a new one using /car.");
- return 1;
- #pragma unused params
- }
- dcmd_wrc(const playerid, const params[])
- {
- CreatePlayerVehicle(playerid,560);
- if(pmodelid[playerid] == 560)
- {
- ChangeVehicleColor(playercar[playerid], 103, 103);
- ChangeVehiclePaintjob(playercar[playerid], 1); // "subaru wrc -ish sort-of" paint job
- AddVehicleComponent(playercar[playerid],1166); // alien front bumper
- AddVehicleComponent(playercar[playerid],1140); // xflo rear bumper
- AddVehicleComponent(playercar[playerid],1032); //alien roof vent
- AddVehicleComponent(playercar[playerid],1139); // xflow wing
- AddVehicleComponent(playercar[playerid],1030); // xflow sideskirt 1
- AddVehicleComponent(playercar[playerid],1031); //xflow sideskirt 2
- AddVehicleComponent(playercar[playerid],1080); // wheels 'switch'
- // AddVehicleComponent(playercar[playerid],1029); //xflow exhaust
- SendClientMessage(playerid, COLOR_CONFIRM, "http://swrt.com");
- }
- return 1;
- #pragma unused params
- }
- dcmd_lock(const playerid, const params[])
- {
- if(pstate[playerid] != PLAYER_STATE_DRIVER) return SendClientMessage(playerid, COLOR_ERROR, "Error: Unable to lock vehicle doors. You must be driver.");
- if(pvehicleid[playerid] != -1)
- {
- foreach(Player,i)
- {
- if(i != playerid)
- {
- SetVehicleParamsForPlayer(pvehicleid[playerid],i,false,true);
- }
- }
- SendClientMessage(playerid, COLOR_CONFIRM, "You have locked the doors of your vehicle");
- }
- return 1;
- #pragma unused params
- }
- dcmd_unlock(const playerid, const params[])
- {
- if(pstate[playerid] != PLAYER_STATE_DRIVER) return SendClientMessage(playerid, COLOR_ERROR, "Error: Unable to unlock vehicle doors");
- if(pvehicleid[playerid] != -1)
- {
- foreach(Player,i) if(i != playerid)
- {
- SetVehicleParamsForPlayer(pvehicleid[playerid],i,false,false);
- }
- SendClientMessage(playerid, COLOR_CONFIRM, "You have unlocked the doors of your vehicle");
- }
- else SendClientMessage(playerid,COLOR_ERROR,"Error: Vehicle already unlocked. To lock vehicle, type /lock");
- return 1;
- #pragma unused params
- }
- dcmd_unlockall(const playerid, const params[])
- {
- if(IsPlayerAdmin(playerid))
- {
- for(new o = 0;o < MAX_VEHICLES; o++)
- {
- foreach(Player,i) SetVehicleParamsForPlayer(o,i,false,false);
- }
- format(string128,sizeof(string128),"Administrator %s has unlocked the doors of all vehicles",pname[playerid]);
- SendClientMessageToAll(COLOR_YELLOW,string128);
- }
- return 1;
- #pragma unused params
- }
- dcmd_pc(const playerid, const params[]) {
- GivePlayerWeapon(playerid, 46, 1);
- SendClientMessage(playerid, COLOR_CONFIRM, "Parachutes! Don't leave home without them!");
- return 1;
- #pragma unused params
- }
- dcmd_bot(const playerid, const params[])
- {
- if(!params[0]) return SendClientMessage(playerid,COLOR_RED,"Usage: /message [Text]");
- new test[128];
- format(test, sizeof(test), "Me: %s", params);
- SendClientMessage(playerid, 0xFFFFFFFF, test);
- format(test, sizeof(test), params);
- SendPlayerMessageToCleverbot(playerid, test);
- // SendClientMessage(playerid, 0xFFFFFFFF, test);
- return 1;
- }
- dcmd_sdance(const playerid, params[]) {
- if(!params[0]) return SendClientMessage(playerid, COLOR_ERROR, "Error: To change paint jobs type '/sdance <0-5>'. Example: /sdance 1");
- new id = strval(params);
- switch(id) {
- case 1: SetPlayerSpecialAction(playerid,5);
- case 2: SetPlayerSpecialAction(playerid,6);
- case 3: SetPlayerSpecialAction(playerid,7);
- case 4: SetPlayerSpecialAction(playerid,8);
- default: SendClientMessage(playerid,COLOR_ERROR,"Error: dance type must be 1 - 4");
- }
- return 1;
- }
- dcmd_smoke(const playerid, const params[]) {
- SetPlayerSpecialAction(playerid, SPECIAL_ACTION_SMOKE_CIGGY);
- return 1;
- #pragma unused params
- }
- dcmd_kill(const playerid, const params[]) {
- RemovePlayerFromVehicle(playerid);
- SetPlayerHealth(playerid, 0);
- return 1;
- #pragma unused params
- }
- //-----------------------------------------------------------
- Float:GetXYInFrontOfPlayer(playerid, &Float:xx, &Float:yy, Float:distance) // Created by Y_Less
- {
- new Float:a;
- GetPlayerPos(playerid, xx, yy, a);
- if(pstate[playerid] == PLAYER_STATE_DRIVER && pvehicleid[playerid]) GetVehicleZAngle(pvehicleid[playerid], a);
- else GetPlayerFacingAngle(playerid, a);
- xx += (distance * floatsin(-a, degrees));
- yy += (distance * floatcos(-a, degrees));
- return a;
- }
- stock Float:GetXYInFrontOfVehicle(vehicleid, &Float:xx, &Float:yy, Float:distance) // Created by Y_Less
- {
- new Float:a;
- GetVehiclePos(vehicleid, xx, yy, a);
- GetVehicleZAngle(vehicleid, a);
- xx += (distance * floatsin(-a, degrees));
- yy += (distance * floatcos(-a, degrees));
- return a;
- }
- dcmd_magic(const playerid, const params[])
- {
- GetPlayerPos(playerid,playerx,playery,playerz);
- GetXYInFrontOfPlayer(playerid, playerx, playery, 25);
- CreateExplosion(playerx,playery,playerz,11,100);
- return 1;
- #pragma unused params
- }
- //------------------------------------------------------------
- //==============================================================================
- //----------------------------- TELEPORTS ------------------------------------
- //==============================================================================
- dcmd_ammu(const playerid, const params[])
- {
- if(gTeam[playerid] || RaceParticipant[playerid]) return SendClientMessage(playerid,COLOR_RED,"You must type /leave to exit the race/DM before you can use this command.");
- SetPlayerPos(playerid,2332.9482,61.5840,26.7058);
- return 1;
- #pragma unused params
- }
- dcmd_ls(const playerid, const params[])
- {
- if(gTeam[playerid] || RaceParticipant[playerid]) return SendClientMessage(playerid,COLOR_RED,"You must type /leave to exit the race/DM before you can use this command.");
- if(pstate[playerid] == PLAYER_STATE_DRIVER && pvehicleid[playerid] != -1) SetVehiclePos(pvehicleid[playerid],1511.2477,-1701.0334,14.0469);
- else SetPlayerPos(playerid,1480.1976,-1640.7338, 14.1484);
- SetPlayerVirtualWorld(playerid,0);
- return 1;
- #pragma unused params
- }
- dcmd_sf(const playerid, const params[])
- {
- if(gTeam[playerid] || RaceParticipant[playerid]) return SendClientMessage(playerid,COLOR_RED,"You must type /leave to exit the race/DM before you can use this command.");
- if(pstate[playerid] == PLAYER_STATE_DRIVER && pvehicleid[playerid] != -1) SetVehiclePos(pvehicleid[playerid],-1686.5302,-420.0526,16.1402);
- else SetPlayerPos(playerid,-1658.0809,-414.6946,14.1484);
- SetPlayerVirtualWorld(playerid,0);
- return 1;
- #pragma unused params
- }
- dcmd_lv(const playerid, const params[])
- {
- if(gTeam[playerid] || RaceParticipant[playerid]) return SendClientMessage(playerid,COLOR_RED,"You must type /leave to exit the race/DM before you can use this command.");
- if(pstate[playerid] == PLAYER_STATE_DRIVER && pvehicleid[playerid] != -1) SetVehiclePos(pvehicleid[playerid],1645.6034,1602.0723,10.8203);
- else SetPlayerPos(playerid,1645.967163, 1625.352295, 18.482553);
- SetPlayerVirtualWorld(playerid,0);
- return 1;
- #pragma unused params
- }
- dcmd_desert(const playerid, const params[])
- {
- if(gTeam[playerid] || RaceParticipant[playerid]) return SendClientMessage(playerid,COLOR_RED,"You must type /leave to exit the race/DM before you can use this command.");
- if(pstate[playerid] == PLAYER_STATE_DRIVER && pvehicleid[playerid] != -1) SetVehiclePos(pvehicleid[playerid],-396.8278,2236.2295,42.4297);
- else SetPlayerPos(playerid,-374.2741,2242.7312,48.0599);
- SetPlayerVirtualWorld(playerid,0);
- return 1;
- #pragma unused params
- }
- dcmd_skydive(const playerid, const params[]) {
- if(gTeam[playerid] || RaceParticipant[playerid]) return SendClientMessage(playerid,COLOR_RED,"You must type /leave to exit the race/DM before you can use this command.");
- SetPlayerInterior(playerid,0); // wise to place this before setplayerpos
- SetPlayerPos(playerid, 1951.4064,-2436.0005,1000.0000);
- SendClientMessage(playerid, 0xFFFF00AA, "You brought the parachute, right?");
- return 1;
- #pragma unused params
- }
- dcmd_warehouse(const playerid, const params[]) {
- if(gTeam[playerid] || RaceParticipant[playerid]) return SendClientMessage(playerid,COLOR_RED,"You must type /leave to exit the race/DM before you can use this command.");
- SetPlayerInterior(playerid,0); // wise to place this before setplayerpos
- SetPlayerPos(playerid, 2131.1143,-2280.1877,20.6643);
- return 1;
- #pragma unused params
- }
- dcmd_rctrack(const playerid, const params[]) {
- if(gTeam[playerid] || RaceParticipant[playerid]) return SendClientMessage(playerid,COLOR_RED,"You must type /leave to exit the race/DM before you can use this command.");
- SetPlayerInterior(playerid,10); // wise to place this before setplayerpos
- SetPlayerPos(playerid, -972.4957,1060.9830,1345.6693);
- return 1;
- #pragma unused params
- }
- dcmd_bikepark(const playerid, const params[]) {
- if(gTeam[playerid] || RaceParticipant[playerid]) return SendClientMessage(playerid,COLOR_RED,"You must type /leave to exit the race/DM before you can use this command.");
- SetPlayerInterior(playerid,0); // wise to place this before setplayerpos
- SetPlayerPos(playerid, 1920.5529,-1356.7454,14.8103);
- return 1;
- #pragma unused params
- }
- dcmd_beach(const playerid, const params[]) {
- if(gTeam[playerid] || RaceParticipant[playerid]) return SendClientMessage(playerid,COLOR_RED,"You must type /leave to exit the race/DM before you can use this command.");
- SetPlayerInterior(playerid,0); // wise to place this before setplayerpos
- SetPlayerPos(playerid, 2858.4048,-2125.3389,10.2529);
- return 1;
- #pragma unused params
- }
- dcmd_basejump1(const playerid, const params[]) {
- if(gTeam[playerid] || RaceParticipant[playerid]) return SendClientMessage(playerid,COLOR_RED,"You must type /leave to exit the race/DM before you can use this command.");
- SetPlayerInterior(playerid,0); // wise to place this before setplayerpos
- SetPlayerPos(playerid, 1574.8966,-1249.2684,277.8787);
- SendClientMessage(playerid, 0xFFFF00AA, "Someday it'll be better without the 'chute.");
- return 1;
- #pragma unused params
- }
- dcmd_basejump2(const playerid, const params[]) {
- if(gTeam[playerid] || RaceParticipant[playerid]) return SendClientMessage(playerid,COLOR_RED,"You must type /leave to exit the race/DM before you can use this command.");
- SetPlayerInterior(playerid,0); // wise to place this before setplayerpos
- SetPlayerPos(playerid, 1539.4971,-1371.4875,328.3436);
- SendClientMessage(playerid, 0xFFFF00AA, "Someday it'll be better without the 'chute.");
- return 1;
- #pragma unused params
- }
- dcmd_basejump3(const playerid, const params[]) {
- if(gTeam[playerid] || RaceParticipant[playerid]) return SendClientMessage(playerid,COLOR_RED,"You must type /leave to exit the race/DM before you can use this command.");
- SetPlayerInterior(playerid,0); // wise to place this before setplayerpos
- SetPlayerPos(playerid, -225.1428,1393.6865,172.4141);
- return 1;
- #pragma unused params
- }
- dcmd_basejump4(const playerid, const params[]) {
- if(gTeam[playerid] || RaceParticipant[playerid]) return SendClientMessage(playerid,COLOR_RED,"You must type /leave to exit the race/DM before you can use this command.");
- SetPlayerInterior(playerid,0); // wise to place this before setplayerpos
- SetPlayerPos(playerid, -2872.1931,2606.3821,271.5319);
- SendClientMessage(playerid, 0xFFFF00AA, "Someday it'll be better without the 'chute.");
- return 1;
- #pragma unused params
- }
- dcmd_basejump5(const playerid, const params[]) {
- if(gTeam[playerid] || RaceParticipant[playerid]) return SendClientMessage(playerid,COLOR_RED,"You must type /leave to exit the race/DM before you can use this command.");
- SetPlayerInterior(playerid,0); // wise to place this before setplayerpos
- SetPlayerPos(playerid, -341.6077,1601.4565,164.4840);
- SendClientMessage(playerid, 0xFFFF00AA, "Someday it'll be better without the 'chute.");
- return 1;
- #pragma unused params
- }
- dcmd_chiliad(const playerid, const params[]) {
- if(gTeam[playerid] || RaceParticipant[playerid]) return SendClientMessage(playerid,COLOR_RED,"You must type /leave to exit the race/DM before you can use this command.");
- SetPlayerInterior(playerid,0); // wise to place this before setplayerpos
- SetPlayerPos(playerid, -2324.8708,-1622.0394,483.7098);
- SendClientMessage(playerid, 0xFFFF00AA, "Oh we'll be comin' down the mountain...");
- return 1;
- #pragma unused params
- }
- dcmd_airport(const playerid, const params[]) {
- if(gTeam[playerid] || RaceParticipant[playerid]) return SendClientMessage(playerid,COLOR_RED,"You must type /leave to exit the race/DM before you can use this command.");
- SetPlayerInterior(playerid,0); // wise to place this before setplayerpos
- SetPlayerPos(playerid, 1911.2904,-2310.3076,13.5469);
- return 1;
- #pragma unused params
- }
- dcmd_rallyup(const playerid, const params[]) {
- if(gTeam[playerid] || RaceParticipant[playerid]) return SendClientMessage(playerid,COLOR_RED,"You must type /leave to exit the race/DM before you can use this command.");
- SetPlayerInterior(playerid,0); // wise to place this before setplayerpos
- SetPlayerPos(playerid, -2409.2947,-2190.0410,34.0391);
- SendClientMessage(playerid, 0xFFFF00AA, "Can I kick the tiiiires??");
- return 1;
- #pragma unused params
- }
- dcmd_boneyard(const playerid, const params[]) {
- if(gTeam[playerid] || RaceParticipant[playerid]) return SendClientMessage(playerid,COLOR_RED,"You must type /leave to exit the race/DM before you can use this command.");
- SetPlayerInterior(playerid,0); // wise to place this before setplayerpos
- SetPlayerPos(playerid, 410.8556,2533.2900,19.1484);
- return 1;
- #pragma unused params
- }
- dcmd_dirtpit(const playerid, const params[]) {
- if(gTeam[playerid] || RaceParticipant[playerid]) return SendClientMessage(playerid,COLOR_RED,"You must type /leave to exit the race/DM before you can use this command.");
- SetPlayerInterior(playerid,0); // wise to place this before setplayerpos
- SetPlayerPos(playerid, 563.2621,914.0405,-42.9609);
- return 1;
- #pragma unused params
- }
- dcmd_pyramid(const playerid, const params[]) {
- if(gTeam[playerid] || RaceParticipant[playerid]) return SendClientMessage(playerid,COLOR_RED,"You must type /leave to exit the race/DM before you can use this command.");
- SetPlayerInterior(playerid,0); // wise to place this before setplayerpos
- SetPlayerPos(playerid, 2355.9192,1512.0405,42.8203);
- return 1;
- #pragma unused params
- }
- dcmd_area69(const playerid, const params[]) {
- if(gTeam[playerid] || RaceParticipant[playerid]) return SendClientMessage(playerid,COLOR_RED,"You must type /leave to exit the race/DM before you can use this command.");
- SetPlayerInterior(playerid,0); // wise to place this before setplayerpos
- SetPlayerPos(playerid, 213.9076,1895.2288,16.3227);
- return 1;
- #pragma unused params
- }
- dcmd_silodm(const playerid, const params[]) {
- if(gTeam[playerid] || RaceParticipant[playerid]) return SendClientMessage(playerid,COLOR_RED,"You must type /leave to exit the race/DM before you can use this command.");
- SetPlayerInterior(playerid,0); // wise to place this before setplayerpos
- SetPlayerPos(playerid, 270.0655,1883.5199,-30.0938);
- return 1;
- #pragma unused params
- }
- dcmd_boardwalk(const playerid, const params[]) {
- if(gTeam[playerid] || RaceParticipant[playerid]) return SendClientMessage(playerid,COLOR_RED,"You must type /leave to exit the race/DM before you can use this command.");
- SetPlayerInterior(playerid,0); // wise to place this before setplayerpos
- SetPlayerPos(playerid, 850.5974,-1841.2968,12.6037);
- return 1;
- #pragma unused params
- }
- dcmd_funpark(const playerid, const params[]) {
- if(gTeam[playerid] || RaceParticipant[playerid]) return SendClientMessage(playerid,COLOR_RED,"You must type /leave to exit the race/DM before you can use this command.");
- SetPlayerInterior(playerid,0); // wise to place this before setplayerpos
- SetPlayerPos(playerid, 381.4741,-2051.8933,7.8359);
- return 1;
- #pragma unused params
- }
- dcmd_locos(const playerid, const params[]) {
- if(gTeam[playerid] || RaceParticipant[playerid]) return SendClientMessage(playerid,COLOR_RED,"You must type /leave to exit the race/DM before you can use this command.");
- SetPlayerInterior(playerid,0); // wise to place this before setplayerpos
- SetPlayerPos(playerid, 2645.3501,-2014.5208,13.5579);
- return 1;
- #pragma unused params
- }
- dcmd_waa(const playerid, const params[]) {
- if(gTeam[playerid] || RaceParticipant[playerid]) return SendClientMessage(playerid,COLOR_RED,"You must type /leave to exit the race/DM before you can use this command.");
- SetPlayerInterior(playerid,0); // wise to place this before setplayerpos
- SetPlayerPos(playerid, -2689.2144,217.7596,4.1797);
- return 1;
- #pragma unused params
- }
- dcmd_canal(const playerid, const params[]) {
- if(gTeam[playerid] || RaceParticipant[playerid]) return SendClientMessage(playerid,COLOR_RED,"You must type /leave to exit the race/DM before you can use this command.");
- SetPlayerInterior(playerid,0); // wise to place this before setplayerpos
- SetPlayerPos(playerid, 2559.4148,-2169.0544,-0.2188);
- SetPlayerFacingAngle(playerid, 226.7265);
- return 1;
- #pragma unused params
- }
- dcmd_ramp(const playerid, const params[]) {
- if(gTeam[playerid] || RaceParticipant[playerid]) return SendClientMessage(playerid,COLOR_RED,"You must type /leave to exit the race/DM before you can use this command.");
- if (IsPlayerInAnyVehicle(playerid))
- {
- new VehicleID = GetPlayerVehicleID(playerid);
- SetVehiclePos(VehicleID, -695.9377,2349.9016,127.6754);
- SetVehicleZAngle(VehicleID, 155.0886);
- SetPlayerInterior(playerid,0);
- return 1;
- }
- else
- {
- SetPlayerInterior(playerid,0); // wise to place this before setplayerpos
- SetPlayerPos(playerid, -658.0438,2300.2881,135.8234);
- return 1;
- #pragma unused params
- }
- }
- //tuner subroutine
- dcmd_tuner(const playerid, const params[])
- {
- if(gTeam[playerid] || RaceParticipant[playerid]) return SendClientMessage(playerid,COLOR_RED,"You must type /leave to exit the race/DM before you can use this command.");
- if (GetPlayerState(playerid) != PLAYER_STATE_DRIVER)
- {
- SendClientMessage(playerid, 0xFFFF00AA, "You must be in a vehicle!");
- return 1;
- }
- new vehicleid = GetPlayerVehicleID(playerid);
- new modelid = GetVehicleModel(vehicleid);
- new modplace;
- switch (modelid)
- {
- case 432,425,520,447: modplace = 1; // War Vehicles
- case 560,562,561,558,565,559: modplace = 2; // WAA
- case 534,535,536,567,575,576: modplace = 3; // LLC
- case 401,402,404,405,
- 409,410,411,412,415,418,
- 419,420,421,422,426,429,
- 436,438,439,442,445,451,
- 458,466,467,474,475,477,
- 478,479,480,489,491,492,
- 496,500,506,507,516,517,
- 518,526,527,529,533,540,
- 541,542,545,546,547,549,
- 550,551,555,566,579,580,
- 585,587,589,600,602,603: modplace = 4; // TF
- default:modplace = 0;
- }
- switch (modplace)
- {
- case 1:GameTextForPlayer(playerid,"I don't think so, Dave.",5000,5);
- case 2:
- {
- SetVehiclePos(vehicleid, -2689.2144,217.7596,4.1797);
- SetVehicleZAngle(vehicleid, 90.0000);
- SetPlayerInterior(playerid,0);
- GameTextForPlayer(playerid,"Wheel Arch Angels",5000,5);
- SendClientMessage(playerid,0xFFFFFFAA, "IF YOUR CLIENT CRASHES,TURN YOUR \
- WINDOWS AUDIO ACCELERATION DOWN");
- }
- case 3:
- {
- SetVehiclePos(vehicleid, 2645.3501,-2014.5208,13.5579);
- SetVehicleZAngle(vehicleid, 169.2511);
- SetPlayerInterior(playerid,0);
- GameTextForPlayer(playerid,"Locos Low",5000,5);
- SendClientMessage(playerid,0xFFFFFFAA, "IF YOUR CLIENT CRASHES,TURN YOUR \
- WINDOWS AUDIO ACCELERATION DOWN");
- }
- case 4:
- {
- SetVehiclePos(vehicleid, -1917.6486,222.2715,35.0352);
- SetVehicleZAngle(vehicleid, 50.3251);
- SetPlayerInterior(playerid,0);
- GameTextForPlayer(playerid,"Transfender",5000,5);
- SendClientMessage(playerid,0xFFFFFFAA, "IF YOUR CLIENT CRASHES,TURN YOUR \
- WINDOWS AUDIO ACCELERATION DOWN");
- }
- default:SendClientMessage(playerid, 0xFFFF00AA, "This vehicle is not modifiable");
- }
- return 1;
- #pragma unused params
- }
- // =============================================================================
- //------------------------ YRACE Commands ----------------------------------
- // =============================================================================
- #if defined RACES
- dcmd_racehelp(const playerid, const params[]) {
- #pragma unused params
- if(IsPlayerAdmin(playerid)) {
- SendClientMessage(playerid, COLOR_GREEN, "Yagu's race script racing help:");
- SendClientMessage(playerid, COLOR_WHITE, "/loadrace [name] to load a track and start it. Use /join (while in vehicle) to join, and /ready");
- SendClientMessage(playerid, COLOR_WHITE, "once at start to begin the race once others are ready as well. /leave to leave");
- SendClientMessage(playerid, COLOR_WHITE, "the race./endrace to aborts the race. /bestlap and /bestrace can be used to");
- SendClientMessage(playerid, COLOR_WHITE, "display record times for the races, you can also specify a race to see the");
- SendClientMessage(playerid, COLOR_WHITE, "times for it. For info on building races, see /buildhelp. For additional");
- SendClientMessage(playerid, COLOR_WHITE, "settings, see /raceadmin.");
- }
- return 1;
- }
- dcmd_buildhelp(const playerid, const params[]) {
- #pragma unused params
- SendClientMessage(playerid, COLOR_GREEN, "Yagu's race script building help:");
- SendClientMessage(playerid, COLOR_WHITE, "/buildrace to start building, /cp for new a checkpoint, /scp to select an old");
- SendClientMessage(playerid, COLOR_WHITE, "checkpoint, /dcp to delete, /mcp to move and /rcp to replace with a new one.");
- SendClientMessage(playerid, COLOR_WHITE, "/editrace to load a race to editor. /saverace [name] to save the race and");
- SendClientMessage(playerid, COLOR_WHITE, "/buildmenu to set racemode/laps/etc. For info on racing itself, see /racehelp");
- SendClientMessage(playerid, COLOR_WHITE, "For additional settings, see /raceadmin.");
- return 1;
- }
- dcmd_buildrace(const playerid, const params[]) {
- #pragma unused params
- if(BuildAdmin == 1 && !IsPlayerAdmin(playerid)) return 1;
- if(RaceBuilders[playerid] != 0) {
- SendClientMessage(playerid, COLOR_YELLOW, "You are already building a race, dork.");
- }
- else if(RaceParticipant[playerid]>0) {
- SendClientMessage(playerid, COLOR_YELLOW, "You are participating in a race, can't build a race.");
- }
- else {
- new slot;
- slot=GetBuilderSlot(playerid);
- if(slot == 0) {
- SendClientMessage(playerid, COLOR_YELLOW, "No builderslots available!");
- return 1;
- }
- format(string128,sizeof(string128),"You are now building a race (Slot: %d)",slot);
- SendClientMessage(playerid, COLOR_GREEN, string128);
- RaceBuilders[playerid]=slot;
- BCurrentCheckpoints[b(playerid)]=0;
- Bracemode[b(playerid)]=0;
- Blaps[b(playerid)]=0;
- BAirrace[b(playerid)] = 0;
- BCPsize[b(playerid)] = 8.0;
- }
- return 1;
- }
- dcmd_cp(const playerid, const params[]) {
- #pragma unused params
- if(RaceBuilders[playerid] != 0 && BCurrentCheckpoints[b(playerid)] < MAX_RACECHECKPOINTS) {
- GetPlayerPos(playerid,playerx,playery,playerz);
- format(string128,sizeof(string128),"Checkpoint %d created: %f,%f,%f.",BCurrentCheckpoints[b(playerid)],playerx,playery,playerz);
- SendClientMessage(playerid, COLOR_GREEN, string128);
- BRaceCheckpoints[b(playerid)][BCurrentCheckpoints[b(playerid)]][0]=playerx;
- BRaceCheckpoints[b(playerid)][BCurrentCheckpoints[b(playerid)]][1]=playery;
- BRaceCheckpoints[b(playerid)][BCurrentCheckpoints[b(playerid)]][2]=playerz;
- BSelectedCheckpoint[b(playerid)]=BCurrentCheckpoints[b(playerid)];
- SetBRaceCheckpoint(playerid,BCurrentCheckpoints[b(playerid)],-1);
- BCurrentCheckpoints[b(playerid)]++;
- }
- else if(RaceBuilders[playerid] != 0 && BCurrentCheckpoints[b(playerid)] == MAX_RACECHECKPOINTS) {
- format(string128,sizeof(string128),"Sorry, maximum amount of checkpoints reached (%d).",MAX_RACECHECKPOINTS);
- SendClientMessage(playerid, COLOR_YELLOW, string128);
- }
- else SendClientMessage(playerid, COLOR_RED, "You are not building a race!");
- return 1;
- }
- dcmd_scp(const playerid, const params[]) {
- new sele, tmp[128], idx;
- tmp = strtok(params, idx);
- if(!tmp[0]) {
- SendClientMessage(playerid, COLOR_WHITE, "USAGE: /scp [checkpoint]");
- return 1;
- }
- sele = strval(tmp);
- if(RaceBuilders[playerid] != 0) {
- if(sele>BCurrentCheckpoints[b(playerid)]-1 || BCurrentCheckpoints[b(playerid)] < 1 || sele < 0) {
- SendClientMessage(playerid, COLOR_YELLOW, "Invalid checkpoint!");
- return 1;
- }
- format(string128,sizeof(string128),"Selected checkpoint %d.",sele);
- SendClientMessage(playerid, COLOR_GREEN, string128);
- BActiveCP(playerid,sele);
- BSelectedCheckpoint[b(playerid)]=sele;
- }
- else {
- SendClientMessage(playerid, COLOR_RED, "You are not building a race!");
- }
- return 1;
- }
- dcmd_rcp(const playerid, const params[]) {
- #pragma unused params
- if(RaceBuilders[playerid] == 0) {
- SendClientMessage(playerid, COLOR_RED, "You are not building a race!");
- return 1;
- }
- else if(BCurrentCheckpoints[b(playerid)] < 1) {
- SendClientMessage(playerid, COLOR_YELLOW, "No checkpoint to replace!");
- return 1;
- }
- GetPlayerPos(playerid,playerx,playery,playerz);
- format(string128,sizeof(string128),"Checkpoint %d replaced: %f,%f,%f.",BSelectedCheckpoint[b(playerid)],playerx,playery,playerz);
- SendClientMessage(playerid, COLOR_GREEN, string128);
- BRaceCheckpoints[b(playerid)][BSelectedCheckpoint[b(playerid)]][0]=playerx;
- BRaceCheckpoints[b(playerid)][BSelectedCheckpoint[b(playerid)]][1]=playery;
- BRaceCheckpoints[b(playerid)][BSelectedCheckpoint[b(playerid)]][2]=playerz;
- BActiveCP(playerid,BSelectedCheckpoint[b(playerid)]);
- return 1;
- }
- dcmd_mcp(const playerid, const params[]) {
- if(RaceBuilders[playerid] == 0) {
- SendClientMessage(playerid, COLOR_RED, "You are not building a race!");
- return 1;
- }
- else if(BCurrentCheckpoints[b(playerid)] < 1) {
- SendClientMessage(playerid, COLOR_YELLOW, "No checkpoint to move!");
- return 1;
- }
- new idx, direction, dir[64];
- dir=strtok(params, idx);
- new Float:amount=floatstr(strtok(params,idx));
- if(amount == 0.0 || (dir[0] != 'x' && dir[0]!='y' && dir[0]!='z')) {
- SendClientMessage(playerid, COLOR_WHITE, "USAGE: /mcp [x,y or z] [amount]");
- return 1;
- }
- if(dir[0] == 'x') direction=0;
- else if(dir[0] == 'y') direction=1;
- else if(dir[0] == 'z') direction=2;
- BRaceCheckpoints[b(playerid)][BSelectedCheckpoint[b(playerid)]][direction]=BRaceCheckpoints[b(playerid)][BSelectedCheckpoint[b(playerid)]][direction]+amount;
- BActiveCP(playerid,BSelectedCheckpoint[b(playerid)]);
- return 1;
- }
- dcmd_dcp(const playerid, const params[]) {
- #pragma unused params
- if(RaceBuilders[playerid] == 0) {
- SendClientMessage(playerid, COLOR_RED, "You are not building a race!");
- return 1;
- }
- else if(BCurrentCheckpoints[b(playerid)] < 1) {
- SendClientMessage(playerid, COLOR_YELLOW, "No checkpoint to delete!");
- return 1;
- }
- for(new i=BSelectedCheckpoint[b(playerid)];i<BCurrentCheckpoints[b(playerid)];i++) {
- BRaceCheckpoints[b(playerid)][i][0]=BRaceCheckpoints[b(playerid)][i+1][0];
- BRaceCheckpoints[b(playerid)][i][1]=BRaceCheckpoints[b(playerid)][i+1][1];
- BRaceCheckpoints[b(playerid)][i][2]=BRaceCheckpoints[b(playerid)][i+1][2];
- }
- BCurrentCheckpoints[b(playerid)]--;
- BSelectedCheckpoint[b(playerid)]--;
- if(BCurrentCheckpoints[b(playerid)] < 1) {
- DisablePlayerRaceCheckpoint(playerid);
- BSelectedCheckpoint[b(playerid)]=0;
- return 1;
- }
- else if(BSelectedCheckpoint[b(playerid)] < 0) {
- BSelectedCheckpoint[b(playerid)]=0;
- }
- BActiveCP(playerid,BSelectedCheckpoint[b(playerid)]);
- SendClientMessage(playerid,COLOR_GREEN,"Checkpoint deleted!");
- return 1;
- }
- dcmd_clearrace(const playerid, const params[]) {
- #pragma unused params
- if(RaceBuilders[playerid] != 0) clearrace(playerid);
- else SendClientMessage(playerid, COLOR_RED, "You are not building a race!");
- return 1;
- }
- dcmd_editrace(const playerid, const params[]) {
- if(RaceBuilders[playerid] == 0) {
- SendClientMessage(playerid, COLOR_RED, "You are not building a race!");
- return 1;
- }
- if(BCurrentCheckpoints[b(playerid)]>0) {
- for(new i=0;i<BCurrentCheckpoints[b(playerid)];i++) {
- BRaceCheckpoints[b(playerid)][i][0]=0.0;
- BRaceCheckpoints[b(playerid)][i][1]=0.0;
- BRaceCheckpoints[b(playerid)][i][2]=0.0;
- }
- BCurrentCheckpoints[b(playerid)]=0;
- }
- new tmp[64],idx;
- tmp = strtok(params, idx);
- if(!tmp[0]) {
- SendClientMessage(playerid, COLOR_WHITE, "USAGE: /editrace [name]");
- return 1;
- }
- new race_name[32],templine[42];
- format(race_name,sizeof(race_name), "%s.yr",tmp);
- if(!fexist(race_name)) {
- format(string128,sizeof(string128), "The race \"%s\" doesn't exist.",tmp);
- SendClientMessage(playerid, COLOR_RED, string128);
- return 1;
- }
- BCurrentCheckpoints[b(playerid)]=-1;
- new File:f, i;
- f = fopen(race_name, io_read);
- fread(f,templine,sizeof(templine));
- if(templine[0] == 'Y') { //Checking if the racefile is v0.2+
- new fileversion;
- strtok(templine,i); // read off YRACE
- fileversion = strval(strtok(templine,i)); // read off the file version
- if(fileversion > RACEFILE_VERSION) {
- format(string128,sizeof(string128),"Race \'%s\' is created with a newer version of YRACE, unable to load.",tmp);
- SendClientMessage(playerid,COLOR_RED,string128);
- return 1;
- }
- strtok(templine,i); // read off RACEBUILDER
- Bracemode[b(playerid)] = strval(strtok(templine,i)); // read off racemode
- Blaps[b(playerid)] = strval(strtok(templine,i)); // read off amount of laps
- if(fileversion >= 2) {
- BAirrace[b(playerid)] = strval(strtok(templine,i));
- BCPsize[b(playerid)] = floatstr(strtok(templine,i));
- }
- else {
- BAirrace[b(playerid)] = 0;
- BCPsize[b(playerid)] = 8.0;
- }
- fread(f,templine,sizeof(templine)); // read off best race times, not saved due to editing the track
- fread(f,templine,sizeof(templine)); // read off best lap times, -||-
- }
- else {//Otherwise add the lines as checkpoints, the file is made with v0.1 (or older) version of the script.
- BCurrentCheckpoints[b(playerid)]++;
- BRaceCheckpoints[b(playerid)][BCurrentCheckpoints[b(playerid)]][0] = floatstr(strtok(templine,i));
- BRaceCheckpoints[b(playerid)][BCurrentCheckpoints[b(playerid)]][1] = floatstr(strtok(templine,i));
- BRaceCheckpoints[b(playerid)][BCurrentCheckpoints[b(playerid)]][2] = floatstr(strtok(templine,i));
- }
- while(fread(f,templine,sizeof(templine),false)) {
- BCurrentCheckpoints[b(playerid)]++;
- i=0;
- BRaceCheckpoints[b(playerid)][BCurrentCheckpoints[b(playerid)]][0] = floatstr(strtok(templine,i));
- BRaceCheckpoints[b(playerid)][BCurrentCheckpoints[b(playerid)]][1] = floatstr(strtok(templine,i));
- BRaceCheckpoints[b(playerid)][BCurrentCheckpoints[b(playerid)]][2] = floatstr(strtok(templine,i));
- }
- fclose(f);
- BCurrentCheckpoints[b(playerid)]++; // # of next CP to be created
- format(string128,sizeof(string128),"Race \"%s\" has been loaded for editing. (%d checkpoints)",tmp,BCurrentCheckpoints[b(playerid)]);
- SendClientMessage(playerid, COLOR_GREEN,string128);
- return 1;
- }
- dcmd_saverace(const playerid, const params[]) {
- if(RaceBuilders[playerid] != 0) {
- new tmp[64], idx;
- tmp = strtok(params, idx);
- if(!tmp[0]) {
- SendClientMessage(playerid, COLOR_WHITE, "USAGE: /saverace [name]");
- return 1;
- }
- if(BCurrentCheckpoints[b(playerid)] < 2) {
- SendClientMessage(playerid, COLOR_YELLOW, "You need atleast 2 checkpoints to save!");
- return 1;
- }
- new race_name[32],templine[42];
- format(race_name, sizeof(race_name), "%s.yr",tmp);
- if(fexist(race_name)) {
- format(string128,sizeof(string128), "Race \"%s\" already exists.",tmp);
- SendClientMessage(playerid, COLOR_RED, string128);
- return 1;
- }
- new File:f, Bcreator[MAX_PLAYER_NAME];
- GetPlayerName(playerid, Bcreator, MAX_PLAYER_NAME);
- f = fopen(race_name,io_write);
- format(templine,sizeof(templine),"YRACE %d %s %d %d %d %f\n", RACEFILE_VERSION, Bcreator, Bracemode[b(playerid)], Blaps[b(playerid)], BAirrace[b(playerid)], BCPsize[b(playerid)]);
- fwrite(f,templine);
- format(templine,sizeof(templine),"A 0 A 0 A 0 A 0 A 0\n"); //Best complete race times
- fwrite(f,templine);
- format(templine,sizeof(templine),"A 0 A 0 A 0 A 0 A 0\n"); //Best lap times
- fwrite(f,templine);
- for(new i = 0; i < BCurrentCheckpoints[b(playerid)];i++) {
- playerx=BRaceCheckpoints[b(playerid)][i][0];
- playery=BRaceCheckpoints[b(playerid)][i][1];
- playerz=BRaceCheckpoints[b(playerid)][i][2];
- format(templine,sizeof(templine),"%f %f %f\n",playerx,playery,playerz);
- fwrite(f,templine);
- }
- fclose(f);
- format(string128,sizeof(string128),"Your race \"%s\" has been saved.",tmp);
- SendClientMessage(playerid, COLOR_GREEN, string128);
- }
- else {
- SendClientMessage(playerid, COLOR_RED, "You are not building a race!");
- }
- return 1;
- }
- dcmd_setlaps(const playerid, const params[]) {
- new tmp[128], idx;
- tmp = strtok(params, idx);
- if(!tmp[0] || strval(tmp) <= 0) {
- SendClientMessage(playerid, COLOR_WHITE, "USAGE: /setlaps [amount of laps (min: 1)]");
- return 1;
- }
- if(RaceBuilders[playerid] != 0) {
- Blaps[b(playerid)] = strval(tmp);
- format(tmp,sizeof(tmp),"Amount of laps set to %d.", Blaps[b(playerid)]);
- SendClientMessage(playerid, COLOR_GREEN, tmp);
- return 1;
- }
- if(RaceAdmin == 1 && !IsPlayerAdmin(playerid)) return 1;
- if(RaceActive == 1 || RaceStart == 1) SendClientMessage(playerid, COLOR_RED, "Race already in progress!");
- else if(LCurrentCheckpoint == 0) SendClientMessage(playerid, COLOR_YELLOW, "No race loaded.");
- else {
- Racelaps=strval(tmp);
- format(tmp,sizeof(tmp),"Amount of laps set to %d for current race.", Racelaps);
- SendClientMessage(playerid, COLOR_GREEN, tmp);
- }
- return 1;
- }
- dcmd_racemode(const playerid, const params[]) {
- new tmp[64], idx, tempmode;
- tmp = strtok(params, idx);
- if(!tmp[0]) {
- SendClientMessage(playerid, COLOR_WHITE, "USAGE: /racemode [0/1/2/3]");
- return 1;
- }
- if(tmp[0] == 'd') tempmode=0;
- else if(tmp[0] == 'r') tempmode=1;
- else if(tmp[0] == 'y') tempmode=2;
- else if(tmp[0] == 'm') tempmode=3;
- else tempmode=strval(tmp);
- if(0 > tempmode || tempmode > 3) {
- SendClientMessage(playerid, COLOR_YELLOW, "Invalid racemode!");
- return 1;
- }
- if(RaceBuilders[playerid] != 0) {
- if(tempmode == 2 && BCurrentCheckpoints[b(playerid)] < 3) {
- SendClientMessage(playerid, COLOR_YELLOW, "Can't set racemode 2 on races with only 2 CPs. Changing to mode 1 instead.");
- Bracemode[b(playerid)] = 1;
- return 1;
- }
- Bracemode[b(playerid)] = tempmode;
- format(tmp,sizeof(tmp),"Racemode set to %d.", Bracemode[b(playerid)]);
- SendClientMessage(playerid, COLOR_GREEN, tmp);
- return 1;
- }
- if(RaceAdmin == 1 && !IsPlayerAdmin(playerid)) return 1;
- if(RaceActive == 1 || RaceStart == 1) SendClientMessage(playerid, COLOR_RED, "Race already in progress!");
- else if(LCurrentCheckpoint == 0) SendClientMessage(playerid, COLOR_YELLOW, "No race loaded.");
- else {
- if(tempmode == 2 && LCurrentCheckpoint < 2) {
- SendClientMessage(playerid, COLOR_YELLOW, "Can't set racemode 2 on races with only 2 CPs. Changing to mode 1 instead.");
- Racemode = 1;
- return 1;
- }
- Racemode=tempmode;
- format(tmp,sizeof(tmp),"Racemode set to %d.", Racemode);
- SendClientMessage(playerid, COLOR_GREEN, tmp);
- }
- return 1;
- }
- dcmd_loadrace(const playerid, const params[]) {
- // if(!IsPlayerAdmin(playerid) && RacePreLoaded == 1) return SendClientMessage(playerid, COLOR_ERROR, "Error: A race is already loaded. Please wait for it to be started.");
- if(RaceActive == 1) return SendClientMessage(playerid, COLOR_ERROR, "Error: A race is already active! Please wait until you see the 'race finish' message to try again.");
- Racemode = 0; Racelaps = 1;
- new tmp[64], idx, fback;
- tmp = strtok(params, idx);
- if(!tmp[0]) {
- SendClientMessage(playerid, COLOR_SYSTEM, "USAGE: /loadrace [name]. Check race list at madoshi.net Everystuff forum for current names");
- return 1;
- }
- fback=LoadRace(tmp);
- if(fback == -1) format(string128,sizeof(string128),"Race doesn't exist! Check race list at madoshi.net Everystuff forum",tmp);
- else if(fback == -2) format(string128,sizeof(string128),"Race \'%s\' is created with a newer version of YRACE, cannot load.",tmp);
- if(fback < 0) {
- SendClientMessage(playerid,COLOR_ERROR,string128);
- return 1;
- }
- format(string128,sizeof(string128),"[RACE LOAD] Race \'%s\' loaded, /startrace to start it.",CRaceName);
- SendClientMessage(playerid,COLOR_SYSTEM,string128);
- printf(string128);
- if(LCurrentCheckpoint<2 && Racemode == 2) {
- Racemode = 1; // Racemode 2 doesn't work well with only 2CPs, and mode 1 is just the same when playing with 2 CPs.
- } // Setting racemode 2 is prevented from racebuilder so this shouldn't happen anyways.
- #if defined RACE_MENU
- if(IsPlayerAdmin(playerid)) {
- if(!IsValidMenu(MRace)) CreateRaceMenus();
- if(Airrace == 0) SetMenuColumnHeader(MRace,0,"Air race: off");
- else SetMenuColumnHeader(MRace,0,"Air race: ON");
- ShowMenuForPlayerEx(MRace,playerid);
- }
- #endif
- return 1;
- }
- dcmd_startrace(const playerid, const params[]) {
- #pragma unused params
- if(LCurrentCheckpoint == 0) SendClientMessage(playerid,COLOR_YELLOW,"No race loaded!");
- else if(RaceActive == 1) SendClientMessage(playerid,COLOR_YELLOW,"Race is already active!");
- else {
- format(string128,sizeof(string128),"<ID:%i> %s has started a race!",playerid,pname[playerid]);
- SendClientMessageToAll(COLOR_LIGHTBLUE,string128);
- startrace();
- }
- return 1;
- }
- dcmd_deleterace(const playerid, const params[]) {
- if((RaceAdmin == 1 || BuildAdmin == 1) && !IsPlayerAdmin(playerid)) return 1;
- new filename[64], idx;
- filename = strtok(params,idx);
- if(!(strlen(filename))) {
- SendClientMessage(playerid, COLOR_WHITE, "USAGE: /deleterace [race]");
- return 1;
- }
- format(filename,sizeof(filename),"%s.yr",filename);
- if(!fexist(filename)) {
- format(string128,sizeof(string128), "The race \"%s\" doesn't exist.",filename);
- SendClientMessage(playerid, COLOR_RED, string128);
- return 1;
- }
- fremove(filename);
- format(string128,sizeof(string128), "The race \"%s\" has been deleted.",filename);
- SendClientMessage(playerid, COLOR_GREEN, string128);
- return 1;
- }
- dcmd_join(const playerid, const params[]) {
- if(RaceActive == 0) return SendClientMessage(playerid, COLOR_ERROR, "Error: There is no race you can join.");
- else if(RaceStart==1) return SendClientMessage(playerid, COLOR_ERROR, "Error: The race has already started, can't join.");
- else if(pstate[playerid] != PLAYER_STATE_DRIVER) return SendClientMessage(playerid,COLOR_ERROR,"Error: You must be driving a vehicle in order to join a race");
- else if(Participants == MAX_RACERS) return SendClientMessage(playerid,COLOR_ERROR,"Error: You cannot join because the race is full. Please wait for the next race.");
- else if(cantrace[playerid] == true || aircraft[playerid] == true) return SendClientMessage(playerid,COLOR_ERROR,"Error: You cannot join the race with your current vehicle. Please choose a different type.");
- else if(gTeam[playerid]) return SendClientMessage(playerid,COLOR_ERROR,"Error: You cannot join a race until you have left the DM area. Type /leave first.");
- // else if(!Airrace && aircraft[playerid] == true) return SendClientMessage(playerid, COLOR_ERROR, "Error: You may only use aircraft in air-races");
- else if(RaceBuilders[playerid] != 0) return SendClientMessage(playerid, COLOR_ERROR, "Error: You are currently building a race, can't join. Use /clearrace to exit build mode.");
- else if(RaceParticipant[playerid] > 0) return SendClientMessage(playerid, COLOR_ERROR, "Error: You have already joined this race!");
- else {
- SendClientMessage(playerid, COLOR_ERROR, "~~~ DO NOT EXIT YOUR VEHICLE. YOU WILL EXIT THE RACE IF YOU LEAVE YOUR VEHICLE ~~~");
- dcmd_lock(playerid,params);
- new vehicleid = pvehicleid[playerid];
- if(RaceActive==1 && RaceStart==0) {
- CurrentCheckpoint[playerid]=0;
- if(Racemode == 3) {
- SetRaceCheckpoint(playerid,LCurrentCheckpoint,LCurrentCheckpoint-1);
- CurrentCheckpoint[playerid]=LCurrentCheckpoint;
- }
- else SetRaceCheckpoint(playerid,0,1);
- new randx = random(sizeof(startMod));
- new randy = random(sizeof(startMod));
- SetVehiclePos(vehicleid,startX+startMod[randx][0], startY+startMod[randy][0], startZ+5);
- // if(pmodelid[playerid] == 522) RemovePlayerFromVehicle(playerid);
- RaceParticipant[playerid]=1;
- CurrentLap[playerid]=0;
- Participants++;
- if(Participants == MAX_RACERS) GameTextForAll("~r~RACE IS FULL!!",2000,3);
- format(string128, sizeof(string128), "[%i] | %s has joined the race!", playerid, pname[playerid], playerid);
- SendClientMessageToAll(COLOR_WHITE, string128);
- SendClientMessage(playerid, COLOR_SYSTEM, "[RACE] You have joined the race. please make room for others in the starting checkpoint!");
- printf("[RACE JOIN] [%i] | %s has joined the race! Slot: %i", playerid,pname[playerid], Participants);
- rcount[playerid] = 30;
- rtimer[playerid] = SetTimerEx("ReadyTimer", 1000, 1, "i", playerid);
- ResetPlayerWeapons(playerid);
- }
- }
- return 1;
- #pragma unused params
- }
- dcmd_leaverace(const playerid, const params[]) {
- LeaveRace(playerid);
- if(!IsPlayerAdmin(playerid)) {
- SetPlayerInterior(playerid,0); // wise to place this before setplayerpos
- SetPlayerPos(playerid, -2324.8708,-1622.0394,483.7098);
- }
- return 1;
- #pragma unused params
- }
- dcmd_endrace(const playerid, const params[]) {
- if(IsPlayerAdmin(playerid)) {
- if(RaceActive==0) {
- SendClientMessage(playerid, COLOR_YELLOW, "There is no race active.");
- return 1;
- }
- else endrace();
- }
- return 1;
- #pragma unused params
- }
- dcmd_racers(const playerid, const params[]) {
- foreach(Player,i) {
- if(RaceParticipant[i]) {
- format(string128, sizeof(string128),"<ID:%i> %s is currently racing",i,pname[i]);
- SendClientMessage(playerid,COLOR_CONFIRM,string128);
- }
- }
- return 1;
- #pragma unused params
- }
- dcmd_airrace(const playerid, const params[]) {
- #pragma unused params
- if(RaceBuilders[playerid] != 0) {
- if(BAirrace[b(playerid)] == 0) {
- SendClientMessage(playerid,COLOR_GREEN,"Air race enabled.");
- BAirrace[b(playerid)]=1;
- }
- else {
- SendClientMessage(playerid,COLOR_GREEN,"Air race disabled.");
- BAirrace[b(playerid)]=0;
- }
- return 1;
- }
- if(RaceAdmin == 1 && !IsPlayerAdmin(playerid)) return 1;
- if(RaceActive == 1 || RaceStart == 1) SendClientMessage(playerid, COLOR_YELLOW, "Race is already in progress!");
- else if(LCurrentCheckpoint == 0) SendClientMessage(playerid, COLOR_YELLOW, "No race loaded!");
- else if(Airrace == 0) {
- SendClientMessage(playerid,COLOR_GREEN,"Air race enabled.");
- Airrace = 1;
- }
- else if(Airrace == 1) {
- SendClientMessage(playerid,COLOR_GREEN,"Air race disabled.");
- Airrace = 0;
- }
- else printf("Error in /airrace detected. RaceActive: %d, RaceStart: %d LCurrentCheckpoint: %d, Airrace: %d", RaceActive,RaceStart,LCurrentCheckpoint,Airrace);
- return 1;
- }
- dcmd_cpsize(const playerid, const params[]) {
- new idx, tmp[64];
- tmp = strtok(params,idx);
- if(!(strlen(tmp)) || floatstr(tmp) <= 0.0) {
- SendClientMessage(playerid,COLOR_WHITE,"USAGE: /cpsize [size]");
- return 1;
- }
- if(RaceBuilders[playerid] != 0) {
- BCPsize[b(playerid)] = floatstr(tmp);
- format(string128,sizeof(string128),"Checkpoint size set to %f",floatstr(tmp));
- SendClientMessage(playerid,COLOR_GREEN,string128);
- return 1;
- }
- if(RaceAdmin == 1 && !IsPlayerAdmin(playerid)) return 1;
- if(RaceActive == 1) SendClientMessage(playerid, COLOR_YELLOW, "Race has already been activated!");
- else if(LCurrentCheckpoint == 0) SendClientMessage(playerid, COLOR_YELLOW, "No race loaded!");
- else {
- CPsize = floatstr(tmp);
- format(string128,sizeof(string128),"Checkpoint size set to %f",floatstr(tmp));
- SendClientMessage(playerid,COLOR_GREEN,string128);
- }
- return 1;
- }
- dcmd_prizemode(const playerid, const params[]) {
- if(!IsPlayerAdmin(playerid)) return 1;
- new idx, tmp;
- tmp=strval(strtok(params,idx));
- if(tmp < 0 || tmp > 4) SendClientMessage(playerid,COLOR_WHITE,"USAGE: /prizemode [0-4]");
- else if(RaceActive == 1) SendClientMessage(playerid,COLOR_YELLOW,"Race is already active!");
- else {
- PrizeMode = tmp;
- format(string128,sizeof(string128),"Prizemode set to %d",PrizeMode);
- SendClientMessage(playerid,COLOR_GREEN,string128);
- }
- return 1;
- }
- dcmd_setprize(const playerid, const params[]) {
- if(!IsPlayerAdmin(playerid)) return 1;
- new idx, tmp;
- tmp = strval(strtok(params, idx));
- if(0 >= tmp) SendClientMessage(playerid,COLOR_WHITE,"USAGE: /setprize [amount]");
- else if(RaceActive == 1) SendClientMessage(playerid,COLOR_YELLOW,"Race is already active!");
- else
- {
- Prize = tmp;
- format(string128,sizeof(string128),"Prize set to %d",Prize);
- SendClientMessage(playerid,COLOR_GREEN,string128);
- }
- return 1;
- }
- #if defined RACE_MENU
- dcmd_raceadmin(const playerid, const params[]) {
- #pragma unused params
- if(!IsPlayerAdmin(playerid)) return 1;
- if(!IsValidMenu(MAdmin)) CreateRaceMenus();
- ShowMenuForPlayerEx(MAdmin,playerid);
- return 1;
- }
- dcmd_buildmenu(const playerid, const params[]) {
- #pragma unused params
- if(BuildAdmin == 1 && !IsPlayerAdmin(playerid)) return 1;
- if(RaceBuilders[playerid] == 0) {
- SendClientMessage(playerid,COLOR_YELLOW,"You are not building a race!");
- return 1;
- }
- if(BAirrace[b(playerid)] == 0) SetMenuColumnHeader(MBuild,0,"Air race: off");
- else SetMenuColumnHeader(MBuild,0,"Air race: on");
- if(!IsValidMenu(MBuild)) CreateRaceMenus();
- ShowMenuForPlayerEx(MBuild,playerid);
- return 1;
- }
- #endif
- public countdown() {
- if(cd>0) {
- format(string64, sizeof(string64), "%d...",cd);
- foreach(Player,i) {
- if(RaceParticipant[i]>1) {
- RaceSound(i,1056);
- GameTextForPlayer(i,string64,1000,3);
- TogglePlayerControllable(i,false);
- }
- }
- }
- else if(cd == 0) {
- RaceStart=1;
- KillTimer(Countdown);
- raceclear = SetTimer("racecleartimer", 3600000, 0); //1 hour race auto-restart
- foreach(Player,i) {
- if(RaceParticipant[i]>1){
- if(rtimer[i]) {
- KillTimer(rtimer[i]);
- rtimer[i] = 0;
- rcount[i] = 0;
- }
- TogglePlayerControllable(i,true);
- RaceSound(i,1057);
- GameTextForPlayer(i,"~g~GO!",3000,3);
- RaceParticipant[i]=4;
- CurrentLap[i]=1;
- if(Racemode == 3) SetRaceCheckpoint(i,LCurrentCheckpoint,LCurrentCheckpoint-1);
- else SetRaceCheckpoint(i,0,1);
- }
- }
- // RaceTick=tickcount();
- }
- cd--;
- }
- public SetNextCheckpoint(playerid) {
- if(Racemode == 0) {
- CurrentCheckpoint[playerid]++;
- if(CurrentCheckpoint[playerid] == LCurrentCheckpoint) {
- SetRaceCheckpoint(playerid,CurrentCheckpoint[playerid],-1);
- RaceParticipant[playerid]=6;
- }
- else SetRaceCheckpoint(playerid,CurrentCheckpoint[playerid],CurrentCheckpoint[playerid]+1);
- }
- else if(Racemode == 1) {
- CurrentCheckpoint[playerid]++;
- if(CurrentCheckpoint[playerid] == LCurrentCheckpoint+1 && CurrentLap[playerid] == Racelaps) {
- SetRaceCheckpoint(playerid,0,-1);
- RaceParticipant[playerid]=6;
- }
- else if (CurrentCheckpoint[playerid] == LCurrentCheckpoint+1 && CurrentLap[playerid] != Racelaps) {
- CurrentCheckpoint[playerid]=0;
- SetRaceCheckpoint(playerid,0,1);
- RaceParticipant[playerid]=5;
- }
- else if(CurrentCheckpoint[playerid] == 1 && RaceParticipant[playerid]==5) {
- ChangeLap(playerid);
- if(LCurrentCheckpoint==1) {
- SetRaceCheckpoint(playerid,CurrentCheckpoint[playerid],0);
- }
- else {
- SetRaceCheckpoint(playerid,CurrentCheckpoint[playerid],2);
- }
- RaceParticipant[playerid]=4;
- }
- else {
- if(LCurrentCheckpoint==1 || CurrentCheckpoint[playerid] == LCurrentCheckpoint) SetRaceCheckpoint(playerid,CurrentCheckpoint[playerid],0);
- else SetRaceCheckpoint(playerid,CurrentCheckpoint[playerid],CurrentCheckpoint[playerid]+1);
- }
- }
- else if(Racemode == 2) {
- if(RaceParticipant[playerid]==4) {
- if(CurrentCheckpoint[playerid] == LCurrentCheckpoint) {// @ Last CP, trigger last-1
- RaceParticipant[playerid]=5;
- CurrentCheckpoint[playerid]=LCurrentCheckpoint-1;
- SetRaceCheckpoint(playerid,CurrentCheckpoint[playerid],CurrentCheckpoint[playerid]-1);
- }
- else if(CurrentCheckpoint[playerid] == LCurrentCheckpoint-1) { // Second last CP, set next accordingly
- CurrentCheckpoint[playerid]++;
- SetRaceCheckpoint(playerid,CurrentCheckpoint[playerid],CurrentCheckpoint[playerid]-1);
- }
- else {
- CurrentCheckpoint[playerid]++;
- SetRaceCheckpoint(playerid,CurrentCheckpoint[playerid],CurrentCheckpoint[playerid]+1);
- }
- }
- else if(RaceParticipant[playerid]==5) {
- if(CurrentCheckpoint[playerid] == 1 && CurrentLap[playerid] == Racelaps) {//Set the finish line
- SetRaceCheckpoint(playerid,0,-1);
- RaceParticipant[playerid]=6;
- }
- else if(CurrentCheckpoint[playerid] == 0) {//At finish line, change lap.
- ChangeLap(playerid);
- if(LCurrentCheckpoint==1) SetRaceCheckpoint(playerid,1,0);
- else SetRaceCheckpoint(playerid,1,2);
- RaceParticipant[playerid]=4;
- }
- else if(CurrentCheckpoint[playerid] == 1) {
- CurrentCheckpoint[playerid]--;
- SetRaceCheckpoint(playerid,0,1);
- }
- else {
- CurrentCheckpoint[playerid]--;
- SetRaceCheckpoint(playerid,CurrentCheckpoint[playerid],CurrentCheckpoint[playerid]-1);
- }
- }
- }
- else if(Racemode == 3) {// Mirror Mode
- CurrentCheckpoint[playerid]--;
- if(CurrentCheckpoint[playerid] == 0) {
- SetRaceCheckpoint(playerid,CurrentCheckpoint[playerid],-1);
- RaceParticipant[playerid]=6;
- }
- else SetRaceCheckpoint(playerid,CurrentCheckpoint[playerid],CurrentCheckpoint[playerid]-1);
- }
- }
- public SetRaceCheckpoint(playerid,target,next) {
- if(next == -1 && Airrace == 0) SetPlayerRaceCheckpoint(playerid,1,RaceCheckpoints[target][0],RaceCheckpoints[target][1],RaceCheckpoints[target][2],0.0,0.0,0.0,CPsize);
- else if(next == -1 && Airrace == 1) SetPlayerRaceCheckpoint(playerid,4,RaceCheckpoints[target][0],RaceCheckpoints[target][1],RaceCheckpoints[target][2],0.0,0.0,0.0,CPsize);
- else if(Airrace == 1) SetPlayerRaceCheckpoint(playerid,3,RaceCheckpoints[target][0],RaceCheckpoints[target][1],RaceCheckpoints[target][2],RaceCheckpoints[next][0],
- RaceCheckpoints[next][1],RaceCheckpoints[next][2],CPsize);
- else SetPlayerRaceCheckpoint(playerid,0,RaceCheckpoints[target][0],RaceCheckpoints[target][1],RaceCheckpoints[target][2],RaceCheckpoints[next][0],RaceCheckpoints[next][1],
- RaceCheckpoints[next][2],CPsize);
- #if defined ONLINE_MAP
- // addDmapIcon(RaceCheckpoints[target][0],RaceCheckpoints[target][1],53);
- #endif
- }
- public SetBRaceCheckpoint(playerid,target,next) {
- new ar = BAirrace[b(playerid)];
- if(next == -1 && ar == 0) SetPlayerRaceCheckpoint(playerid,1,BRaceCheckpoints[b(playerid)][target][0],BRaceCheckpoints[b(playerid)][target][1],
- BRaceCheckpoints[b(playerid)][target][2],0.0,0.0,0.0,BCPsize[b(playerid)]);
- else if(next == -1 && ar == 1) SetPlayerRaceCheckpoint(playerid,4,BRaceCheckpoints[b(playerid)][target][0],
- BRaceCheckpoints[b(playerid)][target][1],BRaceCheckpoints[b(playerid)][target][2],0.0,0.0,0.0,
- BCPsize[b(playerid)]);
- else if(ar == 1) SetPlayerRaceCheckpoint(playerid,3,BRaceCheckpoints[b(playerid)][target][0],BRaceCheckpoints[b(playerid)][target][1],BRaceCheckpoints[b(playerid)][target][2],
- BRaceCheckpoints[b(playerid)][next][0],BRaceCheckpoints[b(playerid)][next][1],BRaceCheckpoints[b(playerid)][next][2],BCPsize[b(playerid)]);
- else SetPlayerRaceCheckpoint(playerid,0,BRaceCheckpoints[b(playerid)][target][0],BRaceCheckpoints[b(playerid)][target][1],BRaceCheckpoints[b(playerid)][target][2],
- BRaceCheckpoints[b(playerid)][next][0],BRaceCheckpoints[b(playerid)][next][1],BRaceCheckpoints[b(playerid)][next][2],BCPsize[b(playerid)]);
- }
- /*
- public GetLapTick(playerid) {
- new tick, lap;
- tick=tickcount();
- if(CurrentLap[playerid]==1) {
- lap=tick-RaceTick;
- LastLapTick[playerid]=tick;
- }
- else {
- lap=tick-LastLapTick[playerid];
- LastLapTick[playerid]=tick;
- }
- return lap;
- }
- public GetRaceTick(playerid)
- {
- new tick, race;
- tick=tickcount();
- race=tick-RaceTick;
- return race;
- }
- */
- public OnPlayerEnterRaceCheckpoint(playerid) {
- if(RaceParticipant[playerid]>0) {// See if the player is participating in a race, allows race builders to do their stuff in peace.
- if(RaceParticipant[playerid] == 6) { // Player reaches the checkered flag.
- RaceSound(playerid,1139);
- if(Ranking<4) {
- if(IsPlayerConnected(playerid)) {
- switch(Ranking) {
- case 1: if(Participants > 1) race1st[playerid]++;
- case 2: race2nd[playerid]++;
- case 3: race3rd[playerid]++;
- }
- format(string128,sizeof(string128),"Race Winning Totals: 1st: %i 2nd: %i 3rd: %i", race1st[playerid],race2nd[playerid],race3rd[playerid]);
- SendClientMessage(playerid,COLOR_YELLOW,string128);
- }
- else SendClientMessage(playerid, COLOR_ERROR, "You are not logged in, so wins cannot be saved. Type /login to count race wins.");
- new winrar;
- if(Participants == 1 && Ranking == 1) winrar=5000;
- else if(Participants == 2 && Ranking == 1) winrar=15000;
- else if(Participants == 2 && Ranking == 2) winrar=10000;
- else if(Participants > 2){
- switch(Ranking) {
- case 1: winrar=50000;
- case 2: winrar=40000;
- case 3: winrar=25000;
- }
- }
- else {
- SendClientMessage(playerid,COLOR_ERROR,"An error occured in race script. Please report error on www.madoshi.net. Heres five bucks.");
- winrar=5;
- }
- if(Ranking == 1 && IsPlayerConnected(playerid)) format(string128,sizeof(string128),"[RACE] %s has finished the race, position: %d. Wins: %i Pot:$%d",pname[playerid],Ranking,race1st[playerid],winrar);
- else format(string128,sizeof(string128),"[RACE] %s has finished the race, position: %d. Pot:$%d",pname[playerid],Ranking,winrar);
- SendClientMessageToAll(COLOR_SYSTEM,string128);
- GivePlayerMoney(playerid,winrar);
- format(string128,sizeof(string128),"You have earned $%d from the race!",winrar);
- SendClientMessage(playerid, COLOR_LIGHTGREEN, string128);
- if(Ranking== 3) {
- foreach(Player,i) {
- if(RaceParticipant[i]>0) {
- LeaveRace(i);
- }
- }
- }
- }
- Ranking++;
- LeaveRace(playerid);
- return 1;
- }
- else if (RaceStart==1) { // Otherwise switch to the next race CP.
- RaceSound(playerid,1138);
- SetNextCheckpoint(playerid);
- }
- else if (RaceStart == 0 && RaceParticipant[playerid]==1) { // Player arrives to the start CP for 1st time
- SendClientMessage(playerid,COLOR_YELLOW,"NOTE: Your controls will be locked once the race countdown starts.");
- RaceParticipant[playerid]=2;
- }
- }
- return 1;
- }
- forward LeaveRace(playerid);
- public LeaveRace(playerid) {
- if(RaceParticipant[playerid] > 0) {
- SendClientMessage(playerid,COLOR_YELLOW,"You have left the race!");
- if(rtimer[playerid]) KillTimer(rtimer[playerid]);
- rcount[playerid] = 0;
- rtimer[playerid] = 0;
- RaceParticipant[playerid]=0;
- DisablePlayerRaceCheckpoint(playerid);
- TogglePlayerControllable(playerid,true);
- Participants--;
- if(RaceStart == 0 && Participants > 0) ReadyRefresh();
- else if(!Participants) endrace();
- }
- return 1;
- }
- public endrace() {
- RaceActive=0;
- RaceStart=0;
- KillTimer(raceclear);
- raceclear = 0;
- for(new i=0;i<LCurrentCheckpoint;i++) {
- RaceCheckpoints[i][0]=0.0;
- RaceCheckpoints[i][1]=0.0;
- RaceCheckpoints[i][2]=0.0;
- }
- LCurrentCheckpoint=0;
- foreach(Player,i) if(RaceParticipant[i]) LeaveRace(i);
- RacePreLoaded = 0;
- Participants=0;
- SendClientMessageToAll(COLOR_YELLOW, "[RACE FINISH] The current race has been finished. Another may be loaded using /loadrace");
- return 1;
- }
- public BActiveCP(playerid,sele) {
- if(BCurrentCheckpoints[b(playerid)]-1 == sele) SetBRaceCheckpoint(playerid,sele,-1);
- else SetBRaceCheckpoint(playerid,sele,sele+1);
- }
- public RaceSound(playerid,sound) {
- GetPlayerPos(playerid,playerx,playery,playerz);
- PlayerPlaySound(playerid,sound,playerx,playery,playerz);
- }
- public ReadyRefresh() {
- if(RaceActive==1) {
- new Waiting=0, Ready=0;
- foreach(Player,i) {
- if((RaceParticipant[i] == 1 || RaceParticipant[i] == 2) && rcount[i]) Waiting++;
- else if(RaceParticipant[i] == 3 && rcount[i] == 1) Ready++;
- }
- if(Waiting==0) {
- foreach(Player,i) {
- if(RaceParticipant[i]) {
- SendClientMessage(i, COLOR_GREEN,"Everyone is ready, the race begins!");
- if(rtimer[i]) KillTimer(rtimer[i]);
- rcount[i] = 0;
- rtimer[i] = 0;
- }
- }
- cd=5;
- Countdown = SetTimer("countdown",1000,1);
- print("[RACE START] The race has started!");
- }
- else if(Ready >= Waiting && MajorityDelay > 0 && MajStart == 0) {
- MajStart=1;
- format(string128,sizeof(string128),"Half of the racers are ready, race starts in %d seconds!", MajorityDelay);
- SendClientMessageToAll(COLOR_GREEN,string128);
- MajStartTimer = SetTimer("mscountdown",10000,1);
- mscd= MajorityDelay;
- }
- }
- }
- public mscountdown() {
- if(RaceStart == 1 || MajStart == 0) {
- MajStart=0;
- KillTimer(MajStartTimer);
- }
- else {
- mscd-=10;
- if(mscd <= 0) {
- foreach(Player,i) {
- /*
- if(RaceParticipant[i] && RaceParticipant[i] != 3) {
- GameTextForPlayer(i,"~r~You didn't make it in time!",6000,3);
- DisablePlayerRaceCheckpoint(i);
- RaceParticipant[i]=0;
- Participants--;
- }
- */
- if(RaceParticipant[i] == 3) {
- SendClientMessage(i,COLOR_GREEN,"Pre-race countdown done, the race beings!");
- if(!rcount[i]) {
- if(rtimer[i]) KillTimer(rtimer[i]);
- rtimer[i] = 0;
- }
- }
- }
- KillTimer(MajStartTimer);
- cd=5;
- Countdown = SetTimer("countdown",1000,1);
- }
- else {
- format(string128,sizeof(string128),"~y~Race starting in ~w~%d~y~ seconds!",mscd);
- SendClientMessageToAll(COLOR_ERROR, string128);
- }
- }
- return 1;
- }
- public ChangeLap(playerid) {
- format(string128,sizeof(string128),"~w~Lap %d/%d", CurrentLap[playerid], Racelaps);
- /* if(Racemode == ORacemode && ORacelaps == Racelaps)
- {
- checklap=CheckBestLap(playerid,LapTime);
- if(checklap==1) format(string128,sizeof(string128),"%s~n~~y~LAP RECORD!",string128);
- }
- */
- CurrentLap[playerid]++;
- if(CurrentLap[playerid] == Racelaps) format(string128,sizeof(string128),"%s~n~~g~Final lap!",string128);
- GameTextForPlayer(playerid,string128,6000,3);
- }
- public GetBuilderSlot(playerid) {
- for(new i;i < MAX_BUILDERS; i++)
- {
- if(!(BuilderSlots[i] < MAX_PLAYERS+1))
- {
- BuilderSlots[i] = playerid;
- RaceBuilders[playerid] = i+1;
- return i+1;
- }
- // continue;
- }
- return 0;
- }
- public b(playerid) return RaceBuilders[playerid]-1;
- public Float:Distance(Float:dx1,Float:dy1,Float:dz1,Float:dx2,Float:dy2,Float:dz2) {
- new Float:temp=floatsqroot((dx1-dx2) * (dx1-dx2) + (dy1-dy2) * (dy1-dy2) + (dz1-dz2) * (dz1-dz2));
- if(temp < 0) temp=temp*(-1);
- return temp;
- }
- public clearrace(playerid) {
- for(new i=0;i<BCurrentCheckpoints[b(playerid)];i++)
- {
- BRaceCheckpoints[b(playerid)][i][0]=0.0;
- BRaceCheckpoints[b(playerid)][i][1]=0.0;
- BRaceCheckpoints[b(playerid)][i][2]=0.0;
- // continue;
- }
- BCurrentCheckpoints[b(playerid)]=0;
- DisablePlayerRaceCheckpoint(playerid);
- SendClientMessage(playerid, COLOR_GREEN, "Your race has been cleared! Use /buildrace to start a new one.");
- BuilderSlots[b(playerid)] = MAX_PLAYERS+1;
- RaceBuilders[playerid]=0;
- }
- public startrace() {
- format(string128,sizeof(string128),"[RACE] \"%s\" race is starting! To join the race get in a car and type /join",CRaceName);
- SendClientMessageToAll(COLOR_YELLOW,string128);
- RaceStart=0;
- RaceActive=1;
- Ranking=1;
- }
- ReturnModeName(mode) {
- new modename[8];
- if(mode == 0) modename="Default";
- else if(mode == 1) modename="Ring";
- else if(mode == 2) modename="Yoyo";
- else if(mode == 3) modename="Mirror";
- return modename;
- }
- public LoadRace(tmp[]) {
- new race_name[32],templine[512];
- format(CRaceName,sizeof(CRaceName), "%s",tmp);
- format(race_name,sizeof(race_name), "%s.yr",tmp);
- if(!fexist(race_name)) return -1; // File doesn't exist
- CFile=race_name;
- LCurrentCheckpoint=-1; RLenght=0; RLenght=0;
- new File:f, i;
- f = fopen(race_name, io_read);
- fread(f,templine,sizeof(templine));
- if(templine[0] == 'Y') {//Checking if the racefile is v0.2+
- new fileversion;
- strtok(templine,i); // read off YRACE
- fileversion = strval(strtok(templine,i)); // read off the file version
- if(fileversion > RACEFILE_VERSION) return -2; // Check if the race is made with a newer version of the racefile format
- CBuilder=strtok(templine,i); // read off RACEBUILDER
- ORacemode = strval(strtok(templine,i)); // read off racemode
- ORacelaps = strval(strtok(templine,i)); // read off amount of laps
- if(fileversion > 1) {
- Airrace = strval(strtok(templine,i)); // read off airrace
- CPsize = floatstr(strtok(templine,i)); // read off CP size
- }
- else { // v1 file format, set to default
- Airrace = 0;
- CPsize = 8.0;
- }
- Racemode=ORacemode; Racelaps=ORacelaps; //Allows changing the modes, but disables highscores if they've been changed.
- fread(f,templine,sizeof(templine)); // read off best race times
- i=0;
- for(new j=0;j<5;j++) {
- TopRacers[j]=strtok(templine,i);
- TopRacerTimes[j]=strval(strtok(templine,i));
- }
- fread(f,templine,sizeof(templine)); // read off best lap times
- i=0;
- for(new j=0;j<5;j++) {
- TopLappers[j]=strtok(templine,i);
- TopLapTimes[j]=strval(strtok(templine,i));
- }
- RacePreLoaded = true;
- }
- else {//Otherwise add the lines as checkpoints, the file is made with v0.1 (or older) version of the script.
- LCurrentCheckpoint++;
- RaceCheckpoints[LCurrentCheckpoint][0] = floatstr(strtok(templine,i));
- RaceCheckpoints[LCurrentCheckpoint][1] = floatstr(strtok(templine,i));
- RaceCheckpoints[LCurrentCheckpoint][2] = floatstr(strtok(templine,i));
- startX = RaceCheckpoints[0][0];
- startY = RaceCheckpoints[0][1];
- startZ = RaceCheckpoints[0][2];
- Racemode=0; ORacemode=0; Racelaps=0; ORacelaps=0; //Enables converting old files to new versions
- CPsize = 8.0; Airrace = 0; // v2 additions
- CBuilder="UNKNOWN";
- for(new j;j<5;j++) {
- TopLappers[j]="A"; TopLapTimes[j]=0; TopRacers[j]="A"; TopRacerTimes[j]=0;
- // continue;
- }
- }
- while(fread(f,templine,sizeof(templine),false)) {
- LCurrentCheckpoint++;
- i=0;
- RaceCheckpoints[LCurrentCheckpoint][0] = floatstr(strtok(templine,i));
- RaceCheckpoints[LCurrentCheckpoint][1] = floatstr(strtok(templine,i));
- RaceCheckpoints[LCurrentCheckpoint][2] = floatstr(strtok(templine,i));
- startX = RaceCheckpoints[0][0];
- startY = RaceCheckpoints[0][1];
- startZ = RaceCheckpoints[0][2];
- if(LCurrentCheckpoint >= 1) {
- RLenght+=Distance(RaceCheckpoints[LCurrentCheckpoint][0],RaceCheckpoints[LCurrentCheckpoint][1],
- RaceCheckpoints[LCurrentCheckpoint][2],RaceCheckpoints[LCurrentCheckpoint-1][0],
- RaceCheckpoints[LCurrentCheckpoint-1][1],RaceCheckpoints[LCurrentCheckpoint-1][2]);
- }
- }
- RacePreLoaded = true;
- fclose(f);
- return 1;
- }
- public RaceRotation() {
- if(!fexist("yrace.rr")) {
- print("ERROR in YRACE's Race Rotation (yrace.rr): yrace.rr doesn't exist!");
- return -1;
- }
- if(RRotation == -1) {
- return -1; // RRotation has been disabled
- }
- if(Participants > 0) {
- return -1; // A race is still active.
- }
- new File:f, templine[32], rotfile[]="yrace.rr", rraces=-1, idx, fback;
- new rracenames[102][32];
- f = fopen(rotfile, io_read);
- while(fread(f,templine,sizeof(templine),false)) {
- idx = 0;
- rraces++;
- rracenames[rraces]=strtok(templine,idx);
- }
- fclose(f);
- RRotation++;
- if(RRotation > rraces) RRotation = 0;
- fback = LoadRace(rracenames[RRotation]);
- if(fback == -1) printf("ERROR in YRACE's Race Rotation (yrace.rr): Race \'%s\' doesn't exist!",rracenames[RRotation]);
- else if (fback == -2) printf("ERROR in YRACE's Race Rotation (yrace.rr): Race \'%s\' is created with a newer version of YRACE",rracenames[RRotation]);
- else if(fback > -1) {
- printf("[RACE] Race \'%s\' Loaded",rracenames[RRotation]);
- startrace();
- }
- return 1;
- }
- #if defined RACE_MENU
- public RefreshMenuHeader(playerid,Menu:menu,text[]) {
- SetMenuColumnHeader(menu,0,text);
- ShowMenuForPlayerEx(menu,playerid);
- }
- public CreateRaceMenus() {
- //Admin menu
- MAdmin = CreateMenu("Admin menu", 1, 25, 170, 220, 25);
- if(IsValidMenu(MAdmin)) {
- AddMenuItem(MAdmin,0,"Set prizemode...");
- AddMenuItem(MAdmin,0,"Set fixed prize...");
- AddMenuItem(MAdmin,0,"Set dynamic prize...");
- AddMenuItem(MAdmin,0,"Set entry fees...");
- AddMenuItem(MAdmin,0,"Majority delay...");
- AddMenuItem(MAdmin,0,"End current race");
- AddMenuItem(MAdmin,0,"Toggle Race Admin [RA]");
- AddMenuItem(MAdmin,0,"Toggle Build Admin [BA]");
- AddMenuItem(MAdmin,0,"Toggle Race Rotation [RR]");
- AddMenuItem(MAdmin,0,"Leave");
- if(RaceAdmin == 1) format(string128,sizeof(string128),"RA: ON");
- else format(string128,sizeof(string128),"RA: off");
- if(BuildAdmin == 1) format(string128,sizeof(string128),"%s BA: ON",string128);
- else format(string128,sizeof(string128),"%s BA: off",string128);
- if(RRotation >= 0) format(string128,sizeof(string128),"%s RR: ON",string128);
- else format(string128,sizeof(string128),"%s RR: off",string128);
- SetMenuColumnHeader(MAdmin,0,string128);
- }
- //Prizemode menu [Admin submenu]
- MPMode = CreateMenu("Set prizemode:", 1, 25, 170, 220, 25);
- if(IsValidMenu(MPMode)) {
- AddMenuItem(MPMode,0,"Fixed");
- AddMenuItem(MPMode,0,"Dynamic");
- AddMenuItem(MPMode,0,"Entry Fee");
- AddMenuItem(MPMode,0,"Entry Fee + Fixed");
- AddMenuItem(MPMode,0,"Entry Fee + Dynamic");
- AddMenuItem(MPMode,0,"Back");
- SetMenuColumnHeader(MPMode,0,"Mode: Fixed");
- }
- //Fixed prize menu
- MPrize = CreateMenu("Fixed prize:", 1, 25, 170, 220, 25);
- if(IsValidMenu(MPrize)) {
- AddMenuItem(MPrize,0,"+100$");
- AddMenuItem(MPrize,0,"+1000$");
- AddMenuItem(MPrize,0,"+10000$");
- AddMenuItem(MPrize,0,"-100$");
- AddMenuItem(MPrize,0,"-1000$");
- AddMenuItem(MPrize,0,"-10000$");
- AddMenuItem(MPrize,0,"Back");
- format(string128,sizeof(string128),"Amount: %d",Prize);
- SetMenuColumnHeader(MPrize,0,string128);
- }
- //Dynamic prize menu
- MDyna = CreateMenu("Dynamic Prize:", 1, 25, 170, 220, 25);
- if(IsValidMenu(MDyna)) {
- AddMenuItem(MDyna,0,"+1x");
- AddMenuItem(MDyna,0,"+5x");
- AddMenuItem(MDyna,0,"-1x");
- AddMenuItem(MDyna,0,"-5x");
- AddMenuItem(MDyna,0,"Leave");
- format(string128,sizeof(string128),"Multiplier: %dx",DynaMP);
- SetMenuColumnHeader(MDyna,0,string128);
- }
- //Build Menu
- MBuild = CreateMenu("Build Menu", 1, 25, 170, 220, 25);
- if(IsValidMenu(MBuild)) {
- AddMenuItem(MBuild,0,"Set laps...");
- AddMenuItem(MBuild,0,"Set racemode...");
- AddMenuItem(MBuild,0,"Checkpoint size...");
- AddMenuItem(MBuild,0,"Toggle air race");
- AddMenuItem(MBuild,0,"Clear the race and exit");
- AddMenuItem(MBuild,0,"Leave");
- SetMenuColumnHeader(MBuild,0,"Air race: off");
- }
- //Laps menu
- MLaps = CreateMenu("Set laps", 1, 25, 170, 220, 25);
- if(IsValidMenu(MLaps)) {
- AddMenuItem(MLaps,0,"+1");
- AddMenuItem(MLaps,0,"+5");
- AddMenuItem(MLaps,0,"+10");
- AddMenuItem(MLaps,0,"-1");
- AddMenuItem(MLaps,0,"-5");
- AddMenuItem(MLaps,0,"-10");
- AddMenuItem(MLaps,0,"Back");
- }
- //Racemode menu
- MRacemode = CreateMenu("Racemode", 1, 25, 170, 220, 25);
- if(IsValidMenu(MRacemode)) {
- AddMenuItem(MRacemode,0,"Default");
- AddMenuItem(MRacemode,0,"Ring");
- AddMenuItem(MRacemode,0,"Yoyo");
- AddMenuItem(MRacemode,0,"Mirror");
- AddMenuItem(MRacemode,0,"Back");
- }
- //Race menu
- MRace = CreateMenu("Race Menu", 1, 25, 170, 220, 25);
- if(IsValidMenu(MRace)) {
- AddMenuItem(MRace,0,"Set laps...");
- AddMenuItem(MRace,0,"Set racemode...");
- AddMenuItem(MRace,0,"Set checkpoint size...");
- AddMenuItem(MRace,0,"Toggle air race");
- AddMenuItem(MRace,0,"Start race");
- AddMenuItem(MRace,0,"Abort new race");
- }
- //Entry fee menu
- MFee = CreateMenu("Entry fees", 1, 25, 170, 220, 25);
- if(IsValidMenu(MFee)) {
- AddMenuItem(MFee,0,"+100");
- AddMenuItem(MFee,0,"+1000");
- AddMenuItem(MFee,0,"+10000");
- AddMenuItem(MFee,0,"-100");
- AddMenuItem(MFee,0,"-1000");
- AddMenuItem(MFee,0,"-10000");
- AddMenuItem(MFee,0,"Back");
- format(string128,sizeof(string128),"Fee: %d$",JoinFee);
- SetMenuColumnHeader(MFee,0,string128);
- }
- //CP size menu
- MCPsize = CreateMenu("CP size", 1, 25, 170, 220, 25);
- if(IsValidMenu(MCPsize)) {
- AddMenuItem(MCPsize,0,"+0.1");
- AddMenuItem(MCPsize,0,"+1");
- AddMenuItem(MCPsize,0,"+10");
- AddMenuItem(MCPsize,0,"-0.1");
- AddMenuItem(MCPsize,0,"-1");
- AddMenuItem(MCPsize,0,"-10");
- AddMenuItem(MCPsize,0,"Back");
- }
- //Majority Delay menu
- MDelay = CreateMenu("Majority Delay", 1, 25, 170, 220, 25);
- if(IsValidMenu(MDelay)) {
- AddMenuItem(MDelay,0,"+10s");
- AddMenuItem(MDelay,0,"+60s");
- AddMenuItem(MDelay,0,"-10s");
- AddMenuItem(MDelay,0,"-60s");
- AddMenuItem(MDelay,0,"Back");
- if(MajorityDelay == 0) format(string128,sizeof(string128),"Delay: disabled");
- else format(string128,sizeof(string128),"Delay: %ds",MajorityDelay);
- SetMenuColumnHeader(MDelay,0,string128);
- }
- }
- #endif
- forward ReadyTimer(playerid);
- public ReadyTimer(playerid) {
- new rtimermsg[128];
- format(rtimermsg, sizeof(rtimermsg), "You have %i seconds~n~to get into position", rcount[playerid]);
- GameTextForPlayer(playerid, rtimermsg, 1000, 3);
- rcount[playerid]--;
- if(rcount[playerid] == 0) {
- GameTextForPlayer(playerid, "You are now ready. Please wait for the other racers to finish taking position.", 5000, 3);
- RaceParticipant[playerid]=3;
- KillTimer(rtimer[playerid]);
- rtimer[playerid] = 0;
- ReadyRefresh();
- }
- return 1;
- }
- forward racecleartimer();
- public racecleartimer() {
- KillTimer(raceclear);
- raceclear = 0;
- SendClientMessageToAll(COLOR_RED, "I think the last race was abandoned. A new one will start soon.");
- endrace();
- print("[ABANDONED RACE] A race was ended automatically.");
- return 1;
- }
- // Needed by Yrace stuff
- //----------------------------------------------------------------
- strtok(const string[], &index) {
- new length = strlen(string);
- while ((index < length) && (string[index] <= ' ')) {
- index++;
- }
- new offset = index;
- new result[20];
- while ((index < length) && (string[index] > ' ') && ((index - offset) < (sizeof(result) - 1))) {
- result[index - offset] = string[index];
- index++;
- }
- result[index - offset] = EOS;
- return result;
- }
- //---------------------------------------------------------------
- //forward IsPlayerInProx(playerid, targetid, distance = 5);
- stock IsPlayerInProx(playerid, targetid, distance = 5) {
- new dist = distance;
- new Float:targetx,Float:targety,Float:targetz;
- GetPlayerPos(playerid, playerx, playery, playerz);
- GetPlayerPos(targetid, targetx, targety, targetz);
- if((playerx > targetx-dist && playerx < targetx+dist) && (playery > targety-dist && playery < targety+dist)) return 1;
- else return 0;
- }
- #endif
- forward CreatePlayerVehicle(playerid, modelid);
- public CreatePlayerVehicle(playerid, modelid) {
- // RemovePlayerFromVehicle(playerid);
- // format(string128,sizeof(string128),"Debug: Playerid %i removed from %i",playerid,pvehicleid[playerid]);
- // SendClientMessageToAll(COLOR_GREY,string128);
- // format(string128,sizeof(string128),"Debug: Playerid %i made it thru killvehicle. new playercar id %i",playerid,playercar[playerid]);
- // SendClientMessageToAll(COLOR_GREY,string128);
- new Float:a;
- GetPlayerFacingAngle(playerid, a);
- GetPlayerPos(playerid, playerx, playery, playerz);
- // if(modelid < MIN_VEHI_ID || modelid > MAX_VEHI_ID) return SendClientMessage(playerid, COLOR_ERROR, "Error: Invalid Vehicle MODELID/NAME. Modelid range 400 - 611");
- if(modelid == 569 || modelid == 570) return SendClientMessage(playerid, COLOR_ERROR, "Error: Models 569 and 570 are buggy and cannot be spawned by players at this time");
- new bad,boat,trailer,train,plane;
- switch(modelid)
- {
- case vHUNTER, vHYDRA, vRHINO, vSEASPARROW, vRCPLANE, vGOBLIN: bad = 1; // gun vehicles
- case 430,446,452,453,454,472,473,484,493,595: boat = 1; //boat
- case 435,450,584,591,606,607,608,610,611: trailer = 1; //trailer
- case 449,537,538,569,570,590: train = 1; //train
- case 417,465,469,487,488,497,548,563,460,476,511,512,513,519,539,553,577,592,593: plane = 1; //planre
- }
- if(RaceParticipant[playerid] && (bad || boat || trailer || train || plane)) return SendClientMessage(playerid,COLOR_ERROR,"Error: You cannot spawn this vehicle during a race. Type /leave to leave the race.");
- if(playercar[playerid] != -1) {
- KillPlayerVehicle(playerid);
- playercar[playerid] = -1;
- }
- playercar[playerid] = CreateVehicle(modelid,playerx,playery,playerz+2,a,-1,-1,480);
- LinkVehicleToInterior(playercar[playerid], GetPlayerInterior(playerid));
- SetVehicleVirtualWorld(playercar[playerid], GetPlayerVirtualWorld(playerid));
- // format(string64,sizeof(string64),"Debug: vehicleid %i created by %i",playercar[playerid],playerid);
- // SendClientMessageToAll(COLOR_GREY,string64);
- PutPlayerInPlayerCar(playerid);
- if(playercar[playerid] != -1) return playercar[playerid];
- else return SendClientMessageToAll(COLOR_GREY,"Debug: OMG CreatePlayerVehicle returned a shitty value!");
- }
- forward KillPlayerVehicle(playerid);
- public KillPlayerVehicle(playerid) {
- // RemovePlayerFromVehicle(playerid);
- // format(string128,sizeof(string128),"Debug: vehicleid %i TO BE KILLED by %i | pvehicleid: %i",playercar[playerid],playerid,pvehicleid[playerid]);
- // SendClientMessageToAll(COLOR_GREY,string128);
- DestroyVehicle(playercar[playerid]);
- pvehicleid[playerid] = GetPlayerVehicleID(playerid);
- playercar[playerid] = -1;
- // format(string128,sizeof(string128),"Debug: playerid %i playercarid now %i vehicleid %i modelid %i",playerid,playercar[playerid],pvehicleid[playerid],pmodelid[playerid]);
- // SendClientMessageToAll(COLOR_GREY,string128);
- return 1;
- }
- forward PutPlayerInPlayerCar(playerid);
- public PutPlayerInPlayerCar(playerid) {
- PutPlayerInVehicle(playerid,playercar[playerid],0);
- // pvehicleid[playerid] = GetPlayerVehicleID(playerid);
- // pmodelid[playerid] = GetVehicleModel(playercar[playerid]);
- // TogglePlayerControllable(playerid,true);
- // format(string64,sizeof(string128),"Debug: I put %i in car %i YAAAAAAAY",playerid,pvehicleid[playerid]);
- // SendClientMessageToAll(COLOR_GREY,string64);
- return 1;
- }
- //------------------------------------------------------------------------------
- public OnPlayerSelectedMenuRow(playerid, row)
- {
- TogglePlayerControllable(playerid,true);
- #if defined MENUS
- new Menu:Current = GetPlayerMenu(playerid);
- if(Current == CarM)
- {
- new modelid = 0;
- SendClientMessage(playerid, COLOR_YELLOW, "Use the SPACEBAR to select your choice. Use ENTER to close menu.");
- switch(row)
- {
- case 0: modelid = 560; //sultan
- case 1: modelid = 411; //infernus
- case 2: modelid = 541; //bullet
- case 3: modelid = 506; //supergt
- case 4: modelid = 565;//flash
- case 5: modelid = 568;//bandito
- case 6: modelid = 589;//club vw
- case 7: modelid = 562;//elegy
- case 8: modelid = 496;//blista
- case 9: modelid = 522;//nrg
- case 10: // more cars
- {
- if(IsValidMenu(Car2M)) ShowMenuForPlayerEx(Car2M, playerid);
- return 1;
- }
- }
- if(modelid) CreatePlayerVehicle(playerid,modelid);
- TogglePlayerControllable(playerid,true);
- return 1;
- }
- else if(Current == Car2M)
- {
- new modelid = 0;
- switch(row)
- {
- case 0: modelid = 504; //bloodring
- case 1: modelid = 535; //slamvan
- case 2: modelid = 556;// monster truck
- case 3: modelid = 468; //sanchez
- case 4: modelid = 567; //savanah
- case 5: modelid = 471; //quad
- case 6: modelid = 424; //bfinjection
- case 7: modelid = 571; //kart
- case 8: modelid = 406; //dumper
- case 9: modelid = 431; //coach
- case 10:
- {
- if(IsValidMenu(Car3M)) ShowMenuForPlayerEx(Car3M, playerid);
- // SendClientMessage(playerid, COLOR_YELLOW, "Use the SPACEBAR to select your choice. Use ENTER to close menu.");
- return 1;
- }
- }
- if(modelid) CreatePlayerVehicle(playerid,modelid);
- TogglePlayerControllable(playerid,true);
- return 1;
- }
- else if(Current == Car3M)
- {
- new modelid = 0;
- switch(row)
- {
- case 0: modelid = 443; //packer
- case 1: modelid = 481; //bmx
- case 2: modelid = 588; //hotdog
- case 3: modelid = 483; //camper
- case 4: modelid = 463; //freeway
- case 5: modelid = 539; //vortex
- case 6: modelid = 514; //petro
- case 7: modelid = 596; //cop car
- case 8: modelid = 523; //cop bike
- case 9: modelid = 593; //dodo
- case 10:
- {
- if(IsValidMenu(Car4M)) ShowMenuForPlayerEx(Car4M, playerid);
- // SendClientMessage(playerid, COLOR_YELLOW, "Use the SPACEBAR to select your choice. Use ENTER to close menu.");
- return 1;
- }
- }
- if(modelid) CreatePlayerVehicle(playerid,modelid);
- TogglePlayerControllable(playerid,true);
- return 1;
- }
- else if(Current == Car4M)
- {
- new modelid = 0;
- switch(row)
- {
- case 0: modelid = 457; // golf cart
- case 1: modelid = 460; // sea plane
- case 2: modelid = 420; // taxi
- case 3: modelid = 475; // sabre
- case 4: modelid = 409; // stretch
- case 5: modelid = 446; // sqaullo
- case 6: modelid = 449; // tram
- case 7: modelid = 537; // train
- case 8: modelid = 407; // fire truck
- case 9: modelid = 573; // dakar rally
- case 10: modelid = 559; // jester
- }
- CreatePlayerVehicle(playerid,modelid);
- if(modelid) CreatePlayerVehicle(playerid,modelid);
- TogglePlayerControllable(playerid,true);
- return 1;
- }
- else if(Current == CasinoM)
- {
- TogglePlayerControllable(playerid,true);
- if(RaceParticipant[playerid] > 0) return SendClientMessage(playerid,COLOR_ERROR,"You are in a DM or AFK area, or you are in a race. Type /leave");
- switch(row)
- {
- case 0: {
- SetPlayerInterior(playerid,1);
- SetPlayerPos(playerid, 2235.1851,1677.9374,1008.3594);// Caligulas
- }
- case 1: {
- SetPlayerInterior(playerid,10);
- SetPlayerPos(playerid, 1994.7236,1017.8349,994.8906); // Four Dragons
- }
- default: return 1;
- }
- return 1;
- }
- else if(Current == FightM)
- {
- if(RaceParticipant[playerid] > 0) return SendClientMessage(playerid,COLOR_ERROR,"You are in a DM or AFK area, or you are in a race. Type /leave");
- new fstyle = 0;
- switch(row)
- {
- case 0: fstyle = FIGHT_STYLE_NORMAL; // normal
- case 1: fstyle = FIGHT_STYLE_BOXING; // boxing
- case 2: fstyle = FIGHT_STYLE_KUNGFU; // kungfu
- case 3: fstyle = FIGHT_STYLE_KNEEHEAD;
- case 4: fstyle = FIGHT_STYLE_GRABKICK;
- case 5: fstyle = FIGHT_STYLE_ELBOW;
- }
- #if defined SAMP03
- SetPlayerFightingStyle(playerid, fstyle);
- SendClientMessage(playerid, COLOR_CONFIRM, "Fighting style changed. Type /fight again to choose a different one.");
- #else
- SendClientMessage(playerid, COLOR_ERROR, "Not implemented (beta)");
- #pragma unused fstyle
- #endif
- return 1;
- }
- else if(Current == JumpM)
- {
- if(RaceParticipant[playerid]) return SendClientMessage(playerid,COLOR_ERROR,"You are in a DM or AFK area, or you are in a race. Type /leave");
- switch(row)
- {
- case 0: SetPlayerPos(playerid, 1574.8966,-1249.2684,277.8787);
- case 1: SetPlayerPos(playerid, 1539.4971,-1371.4875,328.3436);
- case 2: SetPlayerPos(playerid, -225.1428,1393.6865,172.4141);
- case 3: SetPlayerPos(playerid, -2872.1931,2606.3821,271.5319);
- case 4: SetPlayerPos(playerid, -341.6077,1601.4565,164.4840);
- case 5: SetPlayerPos(playerid, -2671.7253,1594.8706,217.2739);
- case 6: SetPlayerPos(playerid, -1282.2144,51.9589,70.4453);
- case 7: SetPlayerPos(playerid, -1791.7642,558.0606,234.8906);
- case 8: SetPlayerPos(playerid, -1753.6783,885.3945,295.8750);
- case 9: SetPlayerPos(playerid, -372.9020,2125.8528,132.8034);
- default: return 1;
- }
- GivePlayerWeapon(playerid,46,1);
- return 1;
- }
- else if(Current == Weather)
- {
- new id;
- switch(row)
- {
- case 0: id = 15; //sunny
- case 1: id = 7; //cloudy
- case 2: id = 16; //tstorm
- case 3: id = 9; //foggy
- case 4: id = 17; //hot
- case 5: id = 19; //sandstorm
- case 6: id = 35; //polluted
- }
- SetPlayerWeather(playerid,id);
- return 1;
- }
- #if defined DM
- else if(Current == DMM)
- {
- // SendClientMessage(playerid, COLOR_YELLOW, "Use the SPACEBAR to select your choice. Use ENTER to close menu.");
- switch(row)
- {
- // case 1: CarDM(playerid); //added respawn - 0 so msg goes out. Must be placed here to avoid exploiting.
- case 0: return HouseDM(playerid);
- case 1: return ShipDM(playerid);
- case 2: return MilitaryDM(playerid);
- case 3: return GasDM(playerid);
- case 4: return SawnOffDM(playerid);
- case 5: return SniperDM(playerid);
- case 6: return RocketDM(playerid);
- case 7: return MinigunDM(playerid);
- // case 8: return GrenadeDM(playerid);
- case 8: return SwordDM(playerid);
- case 9: return DeagleDM(playerid);
- // case 10: return RCTrackDM(playerid);
- default: return 1;
- }
- return 1;
- }
- #endif
- else if(Current == WheelsM)
- {
- new wheelid;
- // SendClientMessage(playerid, COLOR_YELLOW, "Use the SPACEBAR to select your choice. Use ENTER to close menu.");
- switch(row)
- {
- case 0: wheelid = 1025;
- case 1: wheelid = 1073;
- case 2: wheelid = 1074;
- case 3: wheelid = 1075;
- case 4: wheelid = 1076;
- case 5: wheelid = 1077;
- case 6: wheelid = 1078;
- case 7: wheelid = 1079;
- case 8: wheelid = 1080;
- case 9:
- {
- if(IsValidMenu(Wheels2M)) ShowMenuForPlayerEx(Wheels2M, playerid);
- return 1;
- }
- }
- AddVehicleComponent(pvehicleid[playerid],wheelid);
- return 1;
- }
- else if(Current == Wheels2M)
- {
- new wheelid;
- // SendClientMessage(playerid, COLOR_YELLOW, "Use the SPACEBAR to select your choice. Use ENTER to close menu.");
- switch(row)
- {
- case 0: wheelid = 1081;
- case 1: wheelid = 1082;
- case 2: wheelid = 1083;
- case 3: wheelid = 1084;
- case 4: wheelid = 1085;
- case 5: wheelid = 1096;
- case 6: wheelid = 1097;
- case 7: wheelid = 1098;
- case 8:
- {
- if(IsValidMenu(WheelsM)) ShowMenuForPlayerEx(WheelsM, playerid);
- return 1;
- }
- }
- AddVehicleComponent(pvehicleid[playerid],wheelid);
- return 1;
- }
- #if defined RACES
- else if(Current == MAdmin)
- {
- if(row <=4 && RaceActive == 1)
- {
- SendClientMessage(playerid,COLOR_RED,"Race active, cannot change this setting!");
- if(IsValidMenu(MAdmin)) ShowMenuForPlayerEx(MAdmin,playerid);
- return 1;
- }
- if(row == 0) ShowMenuForPlayerEx(MPMode,playerid);
- else if(row == 1) ShowMenuForPlayerEx(MPrize,playerid);
- else if(row == 2) ShowMenuForPlayerEx(MDyna,playerid);
- else if(row == 3) ShowMenuForPlayerEx(MFee,playerid);
- else if(row == 4) ShowMenuForPlayerEx(MDelay,playerid);
- else if(row == 5)
- {
- if(RaceActive == 1) endrace();
- else SendClientMessage(playerid,COLOR_YELLOW,"No race active!");
- ShowMenuForPlayerEx(MAdmin,playerid);
- }
- else if(row == 9) HideMenuForPlayer(MAdmin,playerid);
- else
- {
- if(row == 6 && RaceAdmin == 1) RaceAdmin=0;
- else if(row == 6 && RaceAdmin == 0) RaceAdmin=1;
- else if(row == 7 && BuildAdmin == 1) BuildAdmin=0;
- else if(row == 7 && BuildAdmin == 0) BuildAdmin=1;
- else if(row == 8 && RRotation >= 0) RRotation = -1;
- else RRotation = 0;
- if(RaceAdmin == 1) format(string128,sizeof(string128),"RA: ON");
- else format(string128,sizeof(string128),"RA: off");
- if(BuildAdmin == 1) format(string128,sizeof(string128),"%s BA: ON",string128);
- else format(string128,sizeof(string128),"%s BA: off",string128);
- if(RRotation >= 0) format(string128,sizeof(string128),"%s RR: ON",string128);
- else format(string128,sizeof(string128),"%s RR: off",string128);
- RefreshMenuHeader(playerid,MAdmin,string128);
- }
- return 1;
- }
- else if(Current == MPMode)
- {
- if(row == 5)
- {
- ShowMenuForPlayerEx(MAdmin,playerid);
- return 1;
- }
- PrizeMode = row;
- if (PrizeMode == 0) string128 = "Fixed";
- else if(PrizeMode == 1) string128 = "Dynamic";
- else if(PrizeMode == 2) string128 = "Join Fee";
- else if(PrizeMode == 3) string128 = "Join Fee + Fixed";
- else if(PrizeMode == 4) string128 = "Join Fee + Dynamic";
- format(string128,sizeof(string128),"Mode: %s",string128);
- RefreshMenuHeader(playerid,MPMode,string128);
- return 1;
- }
- else if(Current == MPrize)
- {
- if(row == 6)
- {
- ShowMenuForPlayerEx(MAdmin,playerid);
- return 1;
- }
- if (row == 0) Prize += 100;
- else if(row == 1) Prize += 1000;
- else if(row == 2) Prize += 10000;
- else if(row == 3) Prize -= 100;
- else if(row == 4) Prize -= 1000;
- else if(row == 5) Prize -= 10000;
- if(Prize < 0) Prize = 0;
- format(string128,sizeof(string128),"Amount: %d",Prize);
- RefreshMenuHeader(playerid,MPrize,string128);
- return 1;
- }
- else if(Current == MDyna)
- {
- if(row == 4)
- {
- ShowMenuForPlayerEx(MAdmin,playerid);
- return 1;
- }
- if (row == 0) DynaMP++;
- else if(row == 1) DynaMP+=5;
- else if(row == 2) DynaMP--;
- else if(row == 3) DynaMP-=5;
- else if(DynaMP < 1) DynaMP = 1;
- format(string128,sizeof(string128),"Multiplier: %dx",DynaMP);
- RefreshMenuHeader(playerid,MDyna,string128);
- return 1;
- }
- else if(Current == MBuild)
- {
- if(row == 0)
- {
- format(string128,sizeof(string128),"Laps: %d",Blaps[b(playerid)]);
- SetMenuColumnHeader(MLaps,0,string128);
- ShowMenuForPlayerEx(MLaps,playerid);
- }
- else if(row == 1)
- {
- format(string128,sizeof(string128),"Mode: %s",ReturnModeName(Bracemode[b(playerid)]));
- SetMenuColumnHeader(MRacemode,0,string128);
- ShowMenuForPlayerEx(MRacemode,playerid);
- }
- else if(row == 2)
- {
- format(string128,sizeof(string128),"Size: %0.2f",BCPsize[b(playerid)]);
- SetMenuColumnHeader(MCPsize,0,string128);
- ShowMenuForPlayerEx(MCPsize,playerid);
- }
- else if(row == 3)
- {
- if(BAirrace[b(playerid)] == 0)
- {
- BAirrace[b(playerid)] = 1;
- format(string128,sizeof(string128),"Air race: ON");
- }
- else if(BAirrace[b(playerid)] == 1)
- {
- BAirrace[b(playerid)] = 0;
- format(string128,sizeof(string128),"Air race: off");
- }
- RefreshMenuHeader(playerid,MBuild,string128);
- }
- else if(row == 4)
- {
- clearrace(playerid);
- HideMenuForPlayer(MBuild,playerid);
- return 1;
- }
- else if(row == 5)
- {
- HideMenuForPlayer(MBuild,playerid);
- }
- return 1;
- }
- else if(Current == MLaps)
- {
- if(row == 6)
- {
- if(RaceBuilders[playerid] != 0) ShowMenuForPlayerEx(MBuild,playerid);
- else ShowMenuForPlayerEx(MRace,playerid);
- return 1;
- }
- new change=0;
- if (row == 0) change++;
- else if(row == 1) change+=5;
- else if(row == 2) change+=10;
- else if(row == 3) change--;
- else if(row == 4) change-=5;
- else if(row == 5) change-=10;
- if(RaceBuilders[playerid] != 0) {
- Blaps[b(playerid)] += change;
- if(Blaps[b(playerid)] < 1) Blaps[b(playerid)] = 1;
- format(string128,sizeof(string128),"Laps: %d",Blaps[b(playerid)]);
- RefreshMenuHeader(playerid,MLaps,string128);
- }
- else
- {
- Racelaps += change;
- if(Racelaps < 1) Racelaps = 1;
- format(string128,sizeof(string128),"Laps: %d",Racelaps);
- RefreshMenuHeader(playerid,MLaps,string128);
- }
- return 1;
- }
- else if(Current == MRacemode)
- {
- if(row == 4)
- {
- if(RaceBuilders[playerid] != 0) ShowMenuForPlayerEx(MBuild,playerid);
- else ShowMenuForPlayerEx(MRace,playerid);
- return 1;
- }
- if(RaceBuilders[playerid] != 0)
- {
- Bracemode[b(playerid)]=row;
- if(Bracemode[b(playerid)] == 2 && BCurrentCheckpoints[b(playerid)] < 3)
- {
- SendClientMessage(playerid,COLOR_YELLOW,"Cannot set racemode 2 with only 2 CPs!");
- Bracemode[b(playerid)] = 1;
- }
- format(string128,sizeof(string128),"Mode: %s",ReturnModeName(Bracemode[b(playerid)]));
- RefreshMenuHeader(playerid,MRacemode,string128);
- return 1;
- }
- else
- {
- Racemode = row;
- if(Racemode == 2 && LCurrentCheckpoint < 2)
- {
- SendClientMessage(playerid,COLOR_YELLOW,"Cannot set racemode 2 with only 2 CPs!");
- Racemode = 1;
- }
- format(string128,sizeof(string128),"Mode: %s",ReturnModeName(Racemode));
- RefreshMenuHeader(playerid,MRacemode,string128);
- }
- return 1;
- }
- else if(Current == MRace)
- {
- if(row == 0)
- {
- format(string128,sizeof(string128),"Laps: %d",Racelaps);
- SetMenuColumnHeader(MLaps,0,string128);
- ShowMenuForPlayerEx(MLaps,playerid);
- }
- else if(row == 1)
- {
- format(string128,sizeof(string128),"Mode: %s",ReturnModeName(Racemode));
- SetMenuColumnHeader(MRacemode,0,string128);
- ShowMenuForPlayerEx(MRacemode,playerid);
- }
- else if(row == 2)
- {
- format(string128,sizeof(string128),"Size: %0.2f",CPsize);
- SetMenuColumnHeader(MCPsize,0,string128);
- ShowMenuForPlayerEx(MCPsize,playerid);
- }
- else if(row == 3)
- {
- if(Airrace == 0)
- {
- Airrace = 1;
- format(string128,sizeof(string128),"Air race: ON");
- }
- else if(Airrace == 1)
- {
- Airrace = 0;
- format(string128,sizeof(string128),"Air race: off");
- }
- RefreshMenuHeader(playerid,MRace,string128);
- }
- else if(row == 4)
- {
- if(RaceActive == 0)
- {
- startrace();
- HideMenuForPlayer(MRace,playerid);
- }
- else SendClientMessage(playerid,COLOR_YELLOW,"Race is already active!");
- }
- else if(row == 5) HideMenuForPlayer(MRace,playerid);
- return 1;
- }
- else if(Current == MFee)
- {
- if(row == 6)
- {
- ShowMenuForPlayerEx(MAdmin,playerid);
- return 1;
- }
- if(row == 0) JoinFee +=100;
- if(row == 1) JoinFee +=1000;
- if(row == 2) JoinFee +=10000;
- if(row == 3) JoinFee -=100;
- if(row == 4) JoinFee -=1000;
- if(row == 5) JoinFee -=10000;
- if(JoinFee < 0) JoinFee = 0;
- format(string128,sizeof(string128),"Fee: %d$",JoinFee);
- RefreshMenuHeader(playerid,MFee,string128);
- return 1;
- }
- else if(Current == MCPsize)
- {
- if(row == 6)
- {
- if(RaceBuilders[playerid] != 0) ShowMenuForPlayerEx(MBuild,playerid);
- else ShowMenuForPlayerEx(MRace,playerid);
- return 1;
- }
- new Float:change;
- if(row == 0) change +=0.1;
- if(row == 1) change +=1.0;
- if(row == 2) change +=10.0;
- if(row == 3) change -=0.1;
- if(row == 4) change -=1.0;
- if(row == 5) change -=10.0;
- if(RaceBuilders[playerid] != 0)
- {
- BCPsize[b(playerid)] += change;
- if(BCPsize[b(playerid)] < 1.0) BCPsize[b(playerid)] = 1.0;
- if(BCPsize[b(playerid)] > 32.0) BCPsize[b(playerid)] = 32.0;
- format(string128,sizeof(string128),"Size %0.2f",BCPsize[b(playerid)]);
- RefreshMenuHeader(playerid,MCPsize,string128);
- }
- else
- {
- CPsize += change;
- if(CPsize < 1.0) CPsize = 1.0;
- if(CPsize > 32.0) CPsize = 32.0;
- format(string128,sizeof(string128),"Size %0.2f",CPsize);
- RefreshMenuHeader(playerid,MCPsize,string128);
- }
- return 1;
- }
- else if(Current == MDelay)
- {
- if(row == 4)
- {
- ShowMenuForPlayerEx(MAdmin,playerid);
- return 1;
- }
- if (row == 0) MajorityDelay+=10;
- else if(row == 1) MajorityDelay+=60;
- else if(row == 2) MajorityDelay-=10;
- else if(row == 3) MajorityDelay-=60;
- if(MajorityDelay <= 0)
- {
- MajorityDelay=0;
- format(string128,sizeof(string128),"Delay: disabled");
- }
- else format(string128,sizeof(string128),"Delay: %ds",MajorityDelay);
- RefreshMenuHeader(playerid,MDelay,string128);
- return 1;
- }
- #endif
- #endif //menus
- return 1;
- }
- //------------------------------------------------------------------------------
- #if defined MENUS
- public OnPlayerExitedMenu(playerid)
- {
- new Menu:Current = GetPlayerMenu(playerid);
- HideMenuForPlayer(Current, playerid);
- TogglePlayerControllable(playerid,true);
- return 1;
- }
- forward ShowMenuForPlayerEx(Menu:menuid, playerid);
- public ShowMenuForPlayerEx(Menu:menuid, playerid) {
- if(IsPlayerConnected(playerid)) {
- if(pvehicleid[playerid]) SendClientMessage(playerid, COLOR_YELLOW, "To make selection please use the ACCELERATE or SPACEBAR key! Press ENTER to close.");
- else if(pstate[playerid] == PLAYER_STATE_ONFOOT) SendClientMessage(playerid, COLOR_YELLOW, "To make selection please use the SPACEBAR key! Press ENTER to close.");
- TogglePlayerControllable(playerid,false);
- ShowMenuForPlayer(Menu:menuid,playerid);
- }
- return 1;
- }
- #endif
- stock IsSkinValid(skinid) {
- #define MAX_BAD_SKINS 22
- new badSkins[MAX_BAD_SKINS] = {
- 3, 4, 5, 6, 8, 42, 65, 74, 86,
- 119, 149, 208, 265, 266, 267,
- 268, 269, 270, 271, 272, 273, 289
- };
- if (skinid < 0 || skinid > 299) return false;
- for (new i = 0; i < MAX_BAD_SKINS; i++) if (skinid == badSkins[i]) return false;
- #undef MAX_BAD_SKINS
- return true;
- }
- #if defined DM
- forward MilitaryDM(playerid);
- public MilitaryDM(playerid) {
- if(RaceParticipant[playerid]) return SendClientMessage(playerid,COLOR_ERROR,"You must type /leave before entering another DM zone");
- new rand = random(sizeof(gRandomMilitaryDM));
- SetPlayerPosEx(playerid, gRandomMilitaryDM[rand][0], gRandomMilitaryDM[rand][1], gRandomMilitaryDM[rand][2]+2);
- SetPlayerWorldBounds(playerid, 537.1823, -128.4566, 2370.609, 1576.513);
- ResetPlayerWeapons(playerid);
- // SetPlayerVirtualWorldEx(playerid,WORLD_DM);
- GivePlayerWeapon(playerid,16,100);
- GivePlayerWeapon(playerid,31,999);
- GivePlayerWeapon(playerid,35,500);
- SetPlayerSkin(playerid,287);
- gTeam[playerid] = 5;
- return 1;
- }
- forward SawnOffDM(playerid);
- public SawnOffDM(playerid) {
- if(RaceParticipant[playerid]) return SendClientMessage(playerid,COLOR_ERROR,"You must type /leave before entering another DM zone");
- SetPlayerInterior(playerid, 0);
- new rand = random(sizeof(gRandomSawnOffDM));
- SetPlayerPosEx(playerid, gRandomSawnOffDM[rand][0], gRandomSawnOffDM[rand][1], gRandomSawnOffDM[rand][2],gRandomSawnOffDM[rand][3]);
- SetPlayerWorldBounds(playerid, -2394.683, -2502.838, 716.3557, 598.0067);
- ResetPlayerWeapons(playerid);
- // SetPlayerVirtualWorldEx(playerid,WORLD_DM);
- GivePlayerWeapon(playerid, 26, 999);
- gTeam[playerid] = 7;
- return 1;
- }
- forward SniperDM(playerid);
- public SniperDM(playerid) {
- if(RaceParticipant[playerid]) return SendClientMessage(playerid,COLOR_ERROR,"You must type /leave before entering another DM zone");
- new rand = random(sizeof(gRandomSniperDM));
- SetPlayerPosEx(playerid, gRandomSniperDM[rand][0], gRandomSniperDM[rand][1], gRandomSniperDM[rand][2],gRandomSniperDM[rand][3]);
- SetPlayerWorldBounds(playerid, 362.0141, 46.7115, 1529.802, 1272.888);
- // SetPlayerVirtualWorldEx(playerid,WORLD_DM);
- ResetPlayerWeapons(playerid);
- GivePlayerWeapon(playerid, 34, 999);
- SetPlayerArmour(playerid, 100);
- gTeam[playerid] = 8;
- return 1;
- }
- forward RocketDM(playerid);
- public RocketDM(playerid) {
- if(RaceParticipant[playerid]) return SendClientMessage(playerid,COLOR_ERROR,"You must type /leave before entering another DM zone");
- new rand = random(sizeof(gRandomRocketDM));
- SetPlayerPosEx(playerid, gRandomRocketDM[rand][0], gRandomRocketDM[rand][1], gRandomRocketDM[rand][2],gRandomRocketDM[rand][3],17);
- SetPlayerWorldBounds(playerid, 887.5186, 116.7788, 385.3699, -326.9805);
- // SetPlayerVirtualWorldEx(playerid,WORLD_DM);
- ResetPlayerWeapons(playerid);
- GivePlayerWeapon(playerid, 35, 500);
- SetPlayerArmour(playerid, 100);
- gTeam[playerid] = 9;
- return 1;
- }
- forward MinigunDM(playerid);
- public MinigunDM(playerid) {
- if(RaceParticipant[playerid]) return SendClientMessage(playerid,COLOR_ERROR,"You must type /leave before entering another DM zone");
- new rand = random(sizeof(gRandomMinigunDM));
- SetPlayerPosEx(playerid, gRandomMinigunDM[rand][0], gRandomMinigunDM[rand][1], gRandomMinigunDM[rand][2]+2,gRandomMinigunDM[rand][3]);
- SetPlayerWorldBounds(playerid, 1422.014, 1269.725, 2233.659, 2098.277);
- // SetPlayerVirtualWorldEx(playerid,WORLD_DM);
- ResetPlayerWeapons(playerid);
- GivePlayerWeapon(playerid,38,999);
- gTeam[playerid] = 10;
- return 1;
- }
- forward HouseDM(playerid);
- public HouseDM(playerid) {
- if(RaceParticipant[playerid]) return SendClientMessage(playerid,COLOR_ERROR,"You must type /leave before entering another DM zone");
- new rand = random(sizeof(gRandomHouseDMSpawns));
- SetPlayerPosEx(playerid, gRandomHouseDMSpawns[rand][0], gRandomHouseDMSpawns[rand][1], gRandomHouseDMSpawns[rand][2],0.0,5);
- SetPlayerWorldBounds(playerid, 2493.814, 2204.798, -1062.067, -1417.363);
- // SetPlayerVirtualWorldEx(playerid,WORLD_DM);
- ResetPlayerWeapons(playerid);
- GivePlayerWeapon(playerid, 25, 999);
- GivePlayerWeapon(playerid, 24, 999);
- GivePlayerWeapon(playerid, 29, 999);
- GivePlayerWeapon(playerid, 31, 999);
- GivePlayerWeapon(playerid, 32, 999);
- gTeam[playerid] = 13;
- return 1;
- }
- forward GasDM(playerid);
- public GasDM(playerid) {
- if(RaceParticipant[playerid]) return SendClientMessage(playerid,COLOR_ERROR,"You must type /leave before entering another DM zone");
- SetPlayerPosEx(playerid, -1324.4618,2676.7446,49.6320,86.5);
- SetPlayerWorldBounds(playerid, -1144.432, -1401.345, 2802.69, 2545.777);
- // SetPlayerVirtualWorldEx(playerid,WORLD_DM);
- ResetPlayerWeapons(playerid);
- GivePlayerWeapon(playerid, 37, 999);
- gTeam[playerid] = 17;
- return 1;
- }
- forward ShipDM(playerid);
- public ShipDM(playerid) {
- if(RaceParticipant[playerid]) return SendClientMessage(playerid,COLOR_ERROR,"You must type /leave before entering another DM zone");
- new rand = random(sizeof(gRandomShipSpawns));
- SetPlayerPosEx(playerid, gRandomShipSpawns[rand][0], gRandomShipSpawns[rand][1], gRandomShipSpawns[rand][2]);
- SetPlayerWorldBounds(playerid, -2195.441, -2580.811, 1658.258, 1448.057);
- // SetPlayerVirtualWorldEx(playerid,WORLD_DM);
- ResetPlayerWeapons(playerid);
- GivePlayerWeapon(playerid, 25, 900);
- GivePlayerWeapon(playerid, 24, 900);
- GivePlayerWeapon(playerid, 29, 900);
- GivePlayerWeapon(playerid, 31, 900);
- GivePlayerWeapon(playerid, 32, 900);
- gTeam[playerid] = 18;
- return 1;
- }
- forward SwordDM(playerid);
- public SwordDM(playerid) {
- if(RaceParticipant[playerid]) return SendClientMessage(playerid,COLOR_ERROR,"You must type /leave before entering another DM zone");
- new rand = random(sizeof(gRandomSwordDM));
- SetPlayerPosEx(playerid, gRandomSwordDM[rand][0], gRandomSwordDM[rand][1], gRandomSwordDM[rand][2], gRandomSwordDM[rand][3],5);
- gTeam[playerid] = 20;
- // SetPlayerVirtualWorldEx(playerid,WORLD_DM);
- ResetPlayerWeapons(playerid);
- GivePlayerWeapon(playerid, 8,1);
- return 1;
- }
- forward DeagleDM(playerid);
- public DeagleDM(playerid) {
- if(RaceParticipant[playerid]) return SendClientMessage(playerid,COLOR_ERROR,"You must type /leave before entering another DM zone");
- new rand = random(sizeof(gRandomDeagleDM));
- SetPlayerPosEx(playerid, gRandomDeagleDM[rand][0], gRandomDeagleDM[rand][1], gRandomDeagleDM[rand][2], gRandomDeagleDM[rand][3],3);
- SetPlayerArmour(playerid,0.0);
- SetPlayerHealth(playerid,40.0);
- gTeam[playerid] = 21;
- // SetPlayerVirtualWorldEx(playerid,WORLD_DM);
- ResetPlayerWeapons(playerid);
- GivePlayerWeapon(playerid, 24,999);
- return 1;
- }
- #endif //dm
- //forward SetPlayerPosEx
- SetPlayerPosEx(playerid, Float:x, Float:y, Float:z, Float:a=0.0, Interior=0)
- {
- if(IsPlayerInAnyVehicle(playerid)) RemovePlayerFromVehicle(playerid);
- SetPlayerPos(playerid, x, y, z);
- SetPlayerFacingAngle(playerid, a);
- SetPlayerInterior(playerid, Interior);
- SetCameraBehindPlayer(playerid);
- return 1;
- }
- //forward SetVehiclePosEx(playerid, vehicleid, Float:x, Float:y, Float:z, Float:a=0.0, Interior=0);
- SetVehiclePosEx(playerid, vehicleid, Float:x, Float:y, Float:z, Float:a=0.0, Interior=0)
- {
- if(pvehicleid[playerid])
- {
- EnableStuntBonusForPlayer(playerid, false);
- if((pmodelid[playerid] != 406 && (cantrace[playerid]) || aircraft[playerid])) return SendClientMessage(playerid,COLOR_ERROR,"Error: This vehicle type is not allowed to teleport.");
- new trailer;
- if(IsTrailerAttachedToVehicle(vehicleid))
- {
- trailer = GetVehicleTrailer(vehicleid);
- }
- SetPlayerInterior(playerid, Interior);
- // SetPlayerVirtualWorldEx(playerid,World);
- SetVehiclePos(vehicleid, x, y, z);
- SetVehicleZAngle(vehicleid, a);
- LinkVehicleToInterior(vehicleid, Interior);
- SetVehicleVirtualWorld(vehicleid,pworld[playerid]);
- if(trailer)
- {
- LinkVehicleToInterior(trailer, Interior);
- AttachTrailerToVehicle(trailer,vehicleid);
- }
- SetCameraBehindPlayer(playerid);
- EnableStuntBonusForPlayer(playerid, true);
- return SendClientMessage(playerid,COLOR_SYSTEM,"You may have to exit the vehicle to force some objects to draw.");
- }
- return 1;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement