rendered paste body/*
Drift/Race/Tune/Stunt GM
By: Splitx
Thx To: Kevin433 For Login/Register System
Thx To: Yagu's Race Filterscript v0.4a
Thx To: Full house script by Antironix
Thx To: Every 1 That Helped Me out
-------------------------------------
!!DO NOT!!
Take Credits For This Script And Dont Say YOU Made It
-------------------------------------
YOU Can
Edit The Script And Use It On Ur Server xD But Leave My Credits And The Other Credits
*/
//Includes
//Defines
#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
#include <a_samp>
#include <float>
#include <file>
#include <dudb>
#include <YSI_Objects>
#define MAX_RACECHECKPOINTS 64
#define MAX_BUILDERS 4
#define RACEFILE_VERSION 2
#define MENUSYSTEM
#define MAX_HOUSES 2
#define MAX_RENTCOST 1000
#define MIN_RENTCOST 500
#define MAX_BUY_CARS 8
#define CAR_DELIVER_TIME 1 //The time that it takes that your car will be delivered. In hours.
//colors
#define COLOR_GREY 0xBEBEBEAA
#define COLOR_WHITE 0xFFFFFFAA
#define COLOR_GREEN 0x33AA33AA
#define COLOR_GRAD5 0xE3E3E3FF
#define COLOR_GRAD1 0xB4B5B7FF
#define COLOR_DRIFT 0x8A2BE2FF
#define COLOR_RACE 0xBEBEBEAA
#define COLOR_TUNE 0x000000AA
#define COLOR_RED 0xAA3333AA
#define COLOR_YELLOW 0xFFFF00AA
#define COLOR_GREEN 0x33AA33AA
#define COLOR_WHITE 0xFFFFFFAA
#define COLOR_STUNT 0x00FFFFAA
//pragmas
#pragma tabsize 0
//new
//The houses
new HOUSE_STATS = 0; //0 Means housestats on pickup pickup, 1 means only housestats on /housestats command.
//buyable cars
enum CarInfo {CarModel,CarName[24],CarCost};
new Buyable_Cars[MAX_BUY_CARS][CarInfo] =
{
{411,"Infernus",50000},
{522,"NRG-500",50000},
{451,"Turismo",50000},
{541,"Bullet",50000},
{415,"Cheetah",50000},
{429,"Banshee",50000},
{494,"Hotring",50000},
{556,"Monster",50000}
};
#define Cost_Admiral 50000
//----------------------------
//----------------------------
#define c_y 0xFFFF00AA
#define c_r 0xAA3333AA
new HousePickup[MAX_HOUSES];
new playerinterior[MAX_PLAYERS]=-1;
new inhousepickup;
new playericonhouse[MAX_PLAYERS];
new Float:housex, Float:housey, Float:housez;
new housemapicon[MAX_PLAYERS];
new bool:KillVeh[MAX_VEHICLES] = false;
forward rentfee();
forward newcar();
forward KillVehicle(carid);
enum HouseInfo
{
Name[24],
Renter[24],
Rentable,
Rentcost,
Cost,
Sell,
Interior,
Locked,
Float:InteriorX,
Float:InteriorY,
Float:InteriorZ,
Float:iconx,
Float:icony,
Float:iconz,
Rentfee
}
new hInfo[MAX_HOUSES][HouseInfo];
enum HouseCarInfo
{
HouseCar,
GotCar,
Houseid,
CarModel,
Float:CarX,
Float:CarY,
Float:CarZ,
CarColor1,
CarColor2,
Respawn_Delay,
NewCar
}
new cInfo[MAX_HOUSES][HouseCarInfo];
//The Mission´s
new Float:VehCP[3][3] = //[3] = amount of coords [3] = size of string
{
{-1046.6548,448.9770,14.5396},
{2784.0300,-2416.5308,13.6346},
{-2029.8876,157.2540,28.8359}
};
//Other
new Text:Textdraw000;
new Text:Textdraw1000;
new Text:Textdraw2;
new Text:Textdraw3;
new Text:Textdraw0;
new Text:Textdraw1;
new Menu:VehliceMenu;
new Menu:Vehlice2Menu;
new Menu:Stationwagons;
new Menu:TwoDoors;
new Menu:TwoDoors2;
new Menu:ForeDoors;
new Menu:ForeDoors2;
new Menu:RC;
new Menu:Muscle;
new Menu:Street;
new Menu:Lowriders;
new Menu:Sport;
new Menu:Vans;
new Menu:Transport;
new Menu:Recreation;
new Menu:Bikes;
new Menu:Boats;
new Menu:Work;
new Menu:Work2;
new Menu:Planes;
new Menu:Planes2;
new Menu:Gouverment;
new Menu:Gouverment2;
new Menu:HangOn;
new Menu:Special;
new Fire;
new NrgLock[MAX_PLAYERS];
new FireLock[MAX_PLAYERS];
new LoadLock[MAX_PLAYERS];
new MajorityDelay = 120;
new RRotation = 0;
new RRotationDelay = 600000;
new BuildAdmin = 1;
new RaceAdmin = 1;
new PrizeMode=0;
new Prize=30000;
new DynaMP=1;
new JoinFee=1000;
new gPlayerLogged[MAX_PLAYERS];
new gPlayerAccount[MAX_PLAYERS];
new Pot=0;
new Ranking;
new PrizeMP;
new Countdown;
new cd;
new MajStart=0;
new MajStartTimer;
new mscd;
new RaceActive;
new RaceStart;
new Float:RaceCheckpoints[MAX_RACECHECKPOINTS][3];
new LCurrentCheckpoint;
new CurrentCheckpoint[MAX_PLAYERS];
new CurrentLap[MAX_PLAYERS];
new RaceParticipant[MAX_PLAYERS];
new Participants;
new PlayerVehicles[MAX_PLAYERS];
new ORacelaps, ORacemode;
new OAirrace, Float:OCPsize;
new Racelaps, Racemode;
new ScoreChange;
new RaceTick;
new LastLapTick[MAX_PLAYERS];
new TopRacers[6][MAX_PLAYER_NAME];
new TopRacerTimes[6];
new TopLappers[6][MAX_PLAYER_NAME];
new TopLapTimes[6];
new Float:CPsize;
new Airrace;
new Float:RLenght, Float:LLenght;
new BCurrentCheckpoints[MAX_BUILDERS];
new RaceBuilders[MAX_PLAYERS];
new BuilderSlots[MAX_BUILDERS];
new Float:BRaceCheckpoints[MAX_BUILDERS][MAX_RACECHECKPOINTS][3];
new Float:BCPsize[MAX_BUILDERS];
new BAirrace[MAX_BUILDERS];
//The Count
new Count = 5;
new CountText[5][5] ={
"~g~1",
"~y~2",
"~r~3",
"~r~4",
"~r~5"
};
#if defined MENUSYSTEM
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
//Forward
forward contimer();
forward FireS();
forward NrgUnlock(playerid);
forward FireUnlock(playerid);
forward LoadUnlock(playerid);
forward CountDown();
forward ShowStats(playerid,targetid);
forward OnPlayerUpdate(playerid);
forward Encrypt(string[]);
forward OnPlayerLogin(playerid,const string[]);
forward PayDay (playerid);
forward RaceRotation();
forward LockRacers();
forward UnlockRacers();
forward SaveScores();
forward GetRaceTick(playerid);
forward GetLapTick(playerid);
forward ReadyRefresh();
forward RaceSound(playerid,sound);
forward BActiveCP(playerid,sele);
forward endrace();
forward countdown();
forward mscountdown();
forward SetNextCheckpoint(playerid);
forward CheckBestLap(playerid, laptime);
forward CheckBestRace(playerid,racetime);
forward ChangeLap(playerid);
forward SetRaceCheckpoint(playerid,target,next);
forward SetBRaceCheckpoint(playerid,target,next);
forward LoadTimes(playerid,timemode,tmp[]);
forward IsNotAdmin(playerid);
forward GetBuilderSlot(playerid);
forward b(playerid);
forward Float:Distance(Float:x1,Float:y1,Float:z1,Float:x2,Float:y2,Float:z2);
forward clearrace(playerid);
forward startrace();
forward LoadRace(tmp[]);
forward CreateRaceMenus();
new ystring[128];
new CBuilder[MAX_PLAYER_NAME], CFile[64], CRaceName[128];
new RotationTimer;
enum pInfo
{
pPassword[128],
pKills,
pDeaths,
pCash,
};
new PlayerInfo[MAX_PLAYERS][pInfo];
//------------------------------------------------------------------------------
main()
{
print("\n----------------------------------");
print(" Drift/Race/Tune/Stunt GM");
print(" By: Splitx");
print("Thx To: Kevin433 For Login/Register System");
print("Thx To: Yagu's Race Filterscript v0.4a");
print("Thx To: Full house script by Antironix");
print("----------------------------------\n");
}
//------------------------------------------------------------------------------
public OnGameModeInit()
{
SetGameModeText("Drift/Race/Tune/Stunt"); // The Game mode name
AllowAdminTeleport(1); // Allow! The Rcon ADMIN To Tp via The Map
ShowNameTags(1);
ShowPlayerMarkers(1);
SetWorldTime(12); // The Time
UsePlayerPedAnims(); //This Is For CJ´s Run Style
RaceActive=0;
Ranking=1;
LCurrentCheckpoint=0;
Participants=0;
for(new i;i<MAX_BUILDERS;i++)
{
BuilderSlots[i]=MAX_PLAYERS+1;
}
if(RRotation != -1) SetTimer("RaceRotation",RRotationDelay,1);
#if defined MENUSYSTEM
CreateRaceMenus();
#endif
//Payday
SetTimer("PayDay", 300000,1);
//Timer objects
SetTimer("Timer",500,1);
//Classes
//Team Drift
AddPlayerClass(108,1240.0455,-2037.1292,59.9424,264.1106,0,0,0,0,0,0);
AddPlayerClass(123,1240.0455,-2037.1292,59.9424,264.1106,0,0,0,0,0,0);
//Team Tune
AddPlayerClass(115,-2694.6809,229.2315,4.3359,284.4549,0,0,0,0,0,0);
AddPlayerClass(188,-2694.6809,229.2315,4.3359,284.4549,0,0,0,0,0,0);
//Team Race
AddPlayerClass(247,1240.0455,-2037.1292,59.9424,264.1106,0,0,0,0,0,0);
AddPlayerClass(181,1396.1069,-2509.1196,13.5547,239.4767,0,0,0,0,0,0);
//Team Stunt
AddPlayerClass(101,1698.6154,1608.4980,10.7019,105.3526,0,0,0,0,0,0);
AddPlayerClass(100,1698.6154,1608.4980,10.7019,105.3526,0,0,0,0,0,0);
//Houses
AddHouse(0, 1442.9769,-629.5287,95.7186, 2317.8201,-1024.7500,1050.2109, 0, 0, 9);
AddHouse(1, 1980.9896,-1719.0171,17.0304, 328.1465, 1478.4457,1084.4375, 0, 0, 15);
AddHouseCar(0, 429, 1454.3051,-636.2531,95.4855, 0, 0, 5*60*1000);//5 min respawn
SetTimer("rentfee", 1*60*60*1000, 1);//1 hour
SetTimer("newcar", CAR_DELIVER_TIME*60*10*1000,1);//1 hour
//Cars
//Race Cars
AddStaticVehicle(451,1397.9125,-2518.2009,13.2528,267.5043,36,36); // RaceCar
AddStaticVehicle(451,1398.0685,-2514.0159,13.2561,271.0031,125,125); // RaceCar
AddStaticVehicle(415,1397.8141,-2522.0728,13.3178,269.4274,40,1); // RaceCar
AddStaticVehicle(415,1397.8174,-2526.2612,13.3179,271.7157,62,1); // RaceCar
AddStaticVehicle(411,1397.8837,-2531.2397,13.2740,271.8963,64,1); // RaceCar
AddStaticVehicle(411,1397.8503,-2536.6169,13.2740,271.4503,123,1); // RaceCar
AddStaticVehicle(402,1398.0322,-2540.7202,13.3785,269.3202,22,22); // RaceCar
AddStaticVehicle(402,1397.8870,-2545.4836,13.3786,268.7772,30,30); // RaceCar
AddStaticVehicle(411,434.4354,2487.6829,16.1927,91.0787,123,1); // car Dessert Ap
AddStaticVehicle(411,433.8886,2492.2461,16.2171,88.0609,116,1); // car Dessert Ap
AddStaticVehicle(415,434.0526,2498.2852,16.2627,89.4243,40,1); // car Dessert Ap
AddStaticVehicle(415,434.3282,2503.9727,16.2616,88.8173,62,1); // car Dessert Ap
AddStaticVehicle(451,433.8639,2510.0225,16.2002,85.9235,36,36); // car Dessert Ap
AddStaticVehicle(451,433.8287,2515.7344,16.2402,87.0963,16,16); // car Dessert Ap
//Drift Cars
AddStaticVehicle(603,1244.7191,-2043.7236,59.7027,267.6138,75,77); // Drift car
AddStaticVehicle(603,1244.7743,-2039.3174,59.7028,269.6292,18,1); // Drift car
AddStaticVehicle(562,1244.4263,-2035.0356,59.5318,272.3605,35,1); // Drift car
AddStaticVehicle(562,1244.4778,-2031.8578,59.5294,269.7017,17,1); // Drift car
AddStaticVehicle(494,1244.8781,-2027.5726,59.7547,267.3006,36,13); // Drift car
AddStaticVehicle(494,1244.8787,-2024.1432,59.7542,269.0692,42,30); // Drift car
AddStaticVehicle(415,1244.7257,-2020.2172,59.6344,272.3509,25,1); // Drift car
AddStaticVehicle(415,1244.7291,-2016.3115,59.6306,271.3358,36,1); // Drift car
AddStaticVehicle(415,2308.8079,1387.7050,42.5921,0.9302,92,1); // Car Drift Place 2
AddStaticVehicle(562,2305.7244,1387.7603,42.4792,0.2820,11,1); // Car Drift Place 2
AddStaticVehicle(562,2302.2944,1387.4388,42.4810,3.3863,116,1); // Car Drift Place 2
AddStaticVehicle(494,2299.2241,1387.7865,42.7157,358.6081,42,33); // Car Drift Place 2
AddStaticVehicle(494,2295.3511,1387.8523,42.7154,358.5255,54,36); // Car Drift Place 2
AddStaticVehicle(415,2312.5159,1387.3010,42.5930,359.2944,75,1); // Car Drift Place 2
AddStaticVehicle(562,-2416.8879,-588.7526,132.3090,216.2498,92,1); // Drift Place 3
AddStaticVehicle(562,-2414.1951,-587.5865,132.3074,215.7954,92,1); // Drift Place 3
AddStaticVehicle(562,-2411.7129,-585.3605,132.3084,215.6292,92,1); // Drift Place 3
AddStaticVehicle(562,-2409.1533,-583.5892,132.3092,214.5522,92,1); // Drift Place 3
AddStaticVehicle(415,-2399.7788,-612.9139,132.4193,36.6766,0,1); // Drift Place 3
AddStaticVehicle(415,-2397.1777,-611.6749,132.4204,34.7285,0,1); // Drift Place 3
AddStaticVehicle(415,-2394.7380,-609.5941,132.4189,36.0448,0,1); // Drift Place 3
AddStaticVehicle(415,-2392.1421,-608.1600,132.4194,32.9267,0,1); // Drift Place 3
AddStaticVehicle(494,-2396.1489,-594.1603,132.5437,125.9284,75,79); // Drift Place 3
AddStaticVehicle(494,-2394.7021,-597.8128,132.5439,126.6801,75,79); // Drift Place 3
AddStaticVehicle(494,-2398.3345,-592.3273,132.5437,125.1606,75,79); // Drift Place 3
AddStaticVehicle(494,-2400.5339,-590.1197,132.5438,125.3016,75,79); // Drift Place 3
AddStaticVehicle(562,-345.7710,1515.4310,75.0191,0.8900,35,1); // Car big ear
AddStaticVehicle(562,-339.8235,1514.9597,75.0188,1.1072,35,1); // Car big ear
AddStaticVehicle(562,-333.4804,1516.0933,75.0176,0.2676,35,1); // Car big ear
AddStaticVehicle(494,-327.3193,1515.8364,75.2547,359.7574,36,13); // Car big ear
AddStaticVehicle(494,-321.0045,1514.9034,75.2540,359.1989,36,13); // Car big ear
AddStaticVehicle(494,-314.8265,1516.4387,75.2522,1.9450,36,13); // Car big ear
AddStaticVehicle(415,-264.9444,1542.9677,75.1286,133.0805,36,1); // Car big ear
AddStaticVehicle(415,-270.8604,1546.9063,75.1320,136.5329,36,1); // Car big ear
AddStaticVehicle(415,-275.0788,1552.5321,75.1323,136.5559,36,1); // Car big ear
AddStaticVehicle(411,-280.1234,1557.6625,75.0864,134.6831,64,1); // Car big ear
AddStaticVehicle(411,-285.1519,1562.3802,75.0865,133.3128,64,1); // Car big ear
//Tune Cars
AddStaticVehicle(562,-2693.1997,238.1145,3.9956,269.7431,113,1); // TuneCar
AddStaticVehicle(562,-2692.9773,234.3783,3.9960,270.1290,101,1); // TuneCar
AddStaticVehicle(558,-2693.1082,229.5907,3.9664,269.0911,116,1); // TuneCar
AddStaticVehicle(558,-2683.6304,236.4099,3.9662,184.8736,117,1); // TuneCar
AddStaticVehicle(559,-2680.1694,236.8950,3.9923,187.2038,58,8); // TuneCar
AddStaticVehicle(559,-2675.8523,236.7651,3.9923,181.7573,60,1); // TuneCar
AddStaticVehicle(560,-2660.5483,230.3254,4.0427,60.9345,9,39); // TuneCar
AddStaticVehicle(560,-2659.9221,233.8745,4.0410,90.5287,17,1); // TuneCar
AddStaticVehicle(561,-2660.2234,237.0837,4.1520,91.1869,8,17); // TuneCar
//Stunt Cars
AddStaticVehicle(522,1714.0773,1592.4402,9.8178,97.6158,1,1); // nrg
AddStaticVehicle(522,1714.1119,1588.6697,9.9631,93.8279,1,1); // nrg
AddStaticVehicle(522,1713.9835,1585.1272,10.0985,85.6056,1,1); // nrg
AddStaticVehicle(522,1713.6199,1580.8899,10.2090,83.7569,1,1); // nrg
AddStaticVehicle(522,1713.2813,1576.6313,10.2903,84.8411,1,1); // nrg
AddStaticVehicle(522,1713.0928,1573.0151,10.3553,79.3453,1,1); // nrg
AddStaticVehicle(522,1724.5016,1626.4858,9.0802,64.1138,1,1); // nrg
AddStaticVehicle(522,1726.5542,1632.8008,8.8249,78.0478,1,1); // nrg
// objecta
Object_Object();
CreateDynamicObject(1391, 2881.978271, -2149.827637, 35.577919, 0.0000, 0.0000, 303.7500);
CreateDynamicObject(1388, 2881.764648, -2149.993652, 48.116982, 0.0000, 0.0000, 33.7500);
CreateDynamicObject(1392, 2860.357422, -2117.803955, 51.996094, 0.0000, 0.0000, 213.7500);
CreateDynamicObject(1381, 2860.246094, -2117.842041, 51.977718, 0.0000, 0.0000, 0.0000);
CreateDynamicObject(929, 2860.666504, -2118.972412, 54.381554, 0.0000, 0.0000, 33.7500);
CreateDynamicObject(943, 2862.522705, -2121.793701, 54.186241, 0.0000, 0.0000, 213.7500);
CreateDynamicObject(1618, 2879.483643, -2146.406494, 4.006145, 0.0000, 0.0000, 303.7500);
CreateDynamicObject(1635, 2879.154541, -2146.151855, 5.093186, 0.0000, 0.0000, 303.7500);
CreateDynamicObject(1689, 2880.040527, -2147.259277, 8.315084, 0.0000, 0.0000, 33.7500);
CreateDynamicObject(12957, 2861.019043, -2136.552002, 5.983595, 0.0000, 0.0000, 0.0000);
CreateDynamicObject(13591, 2881.108643, -2130.291260, 6.018476, 0.0000, 0.0000, 315.0000);
//bigj
CreateDynamicObject(4168, 2647.039795, -1047.841187, 120.885414, 0.0000, 48.9878, 0.0000);
CreateDynamicObject(1634, 2692.656982, -1048.065918, 68.211380, 10.3132, 0.0000, 90.0000);
CreateDynamicObject(1634, 2691.144043, -1043.908813, 69.087082, 10.3132, 0.0000, 90.0000);
CreateDynamicObject(1634, 2690.452148, -1052.271240, 69.461884, 10.3132, 0.0000, 90.0000);
CreateDynamicObject(6342, 2887.271240, -1057.041870, 37.623451, 0.0000, 270.6186, 267.4991);
CreateDynamicObject(1634, 2914.481934, -1053.301392, 73.794777, 42.9718, 0.0000, 270.0000);
CreateDynamicObject(1634, 2914.499512, -1049.427612, 73.774681, 42.9718, 0.0000, 270.0000);
CreateDynamicObject(4168, 2745.138428, -1057.632324, 37.688751, 0.0000, 306.7150, 337.5000);
CreateDynamicObject(1634, 2752.533203, -1054.888184, 48.021450, 351.4056, 0.0000, 236.2501);
CreateDynamicObject(1634, 2755.654297, -1057.005127, 49.914959, 5.1566, 0.0000, 236.2501);
CreateDynamicObject(1634, 2757.653320, -1058.285156, 52.387562, 21.4859, 359.1406, 236.2501);
CreateDynamicObject(1634, 2811.991455, -1077.768555, 94.484390, 0.0000, 0.0000, 258.7500);
CreateDynamicObject(1634, 2816.491943, -1078.661133, 97.348984, 12.8916, 0.0000, 258.7500);
CreateDynamicObject(1634, 2820.638428, -1079.450928, 101.450943, 24.9237, 0.0000, 258.7500);
CreateDynamicObject(1634, 2823.565918, -1080.027100, 105.935127, 36.9558, 0.0000, 258.7500);
CreateDynamicObject(1634, 2691.783691, -1052.135010, 68.884262, 12.0321, 0.0000, 90.0000);
CreateDynamicObject(1634, 2691.829834, -1043.867188, 68.609596, 13.7510, 0.0000, 90.0000);
CreateDynamicObject(1634, 2829.453125, -1049.523438, 21.458626, 341.0924, 0.0000, 90.0000);
CreateDynamicObject(1634, 2829.525146, -1045.392822, 21.459278, 341.0924, 0.0000, 90.0000);
CreateDynamicObject(6342, 2964.904053, -1058.002197, 20.129627, 0.0000, 270.6186, 87.4990);
CreateDynamicObject(6342, 3048.321777, -1066.721924, 4.752734, 339.3735, 270.6186, 267.4990);
CreateDynamicObject(1634, 3086.324707, -1066.644531, 29.259064, 24.0642, 0.0000, 270.0000);
CreateDynamicObject(1634, 3241.135742, -1072.951660, 32.203125, 22.3454, 0.0000, 270.0000);
CreateDynamicObject(6342, 3195.134277, -1069.694824, 19.682137, 326.4820, 270.6186, 87.4991);
CreateDynamicObject(4168, 3350.458252, -1073.779663, 36.584511, 0.0000, 1.7189, 0.0000);
CreateDynamicObject(6342, 3543.389648, -1078.715332, 18.706869, 335.9358, 270.6186, 87.4991);
CreateDynamicObject(1634, 3419.254395, -1073.709595, 35.731327, 0.0000, 0.0000, 270.0000);
CreateDynamicObject(1634, 3426.751953, -1073.725220, 40.160374, 11.1727, 0.0000, 270.0000);
CreateDynamicObject(6342, 3600.688477, -1067.446899, 50.570251, 322.1848, 29.2213, 223.3935);
CreateDynamicObject(1634, 3589.251221, -1081.554565, 22.552620, 6.8755, 0.0000, 292.5000);
CreateDynamicObject(1634, 3591.239502, -1080.776611, 24.401611, 27.5020, 0.0000, 292.5000);
CreateDynamicObject(1634, 3591.628174, -1085.059692, 23.016743, 6.8755, 0.0000, 292.5000);
CreateDynamicObject(1634, 3589.945557, -1087.973022, 21.630356, 12.8916, 0.0000, 292.5000);
CreateDynamicObject(1634, 3588.010010, -1090.159424, 22.523523, 5.1566, 0.0000, 281.2500);
CreateDynamicObject(1634, 3589.184082, -1090.198853, 23.898586, 18.9076, 0.0000, 281.2500);
CreateDynamicObject(1634, 3588.931641, -1089.860229, 24.410027, 26.6425, 344.5301, 281.2500);
CreateDynamicObject(1634, 3591.639160, -1082.226807, 25.197229, 26.6425, 344.5301, 281.2500);
CreateDynamicObject(1634, 3591.531494, -1083.561279, 26.257868, 44.6907, 344.5301, 281.2500);
CreateDynamicObject(971, 2596.667969, -1049.172119, 173.672180, 270.6186, 0.0000, 1.7189);
//jum
CreateDynamicObject(4168, 2198.258789, -174.778198, 0.868295, 0.0000, 0.0000, 348.7500);
CreateDynamicObject(4168, 2065.033936, -141.981735, 0.861437, 0.0000, 0.0000, 343.5934);
CreateDynamicObject(4168, 1931.438110, -102.675148, 0.868473, 0.0000, 0.0000, 343.5934);
CreateDynamicObject(1634, 1905.234009, -92.427834, 2.095461, 0.0000, 0.0000, 67.5000);
CreateDynamicObject(1634, 1899.100220, -89.869598, 6.344386, 14.6104, 0.0000, 67.5000);
CreateDynamicObject(1634, 1894.441162, -87.914726, 11.942719, 30.0803, 0.0000, 67.5000);
CreateDynamicObject(1634, 1891.499146, -86.728668, 18.221397, 44.6907, 0.0000, 67.5000);
//StuntZOne
CreateDynamicObject(1634, 1477.882080, 1207.438843, 11.117630, 0.0000, 0.0000, 180.0000);
CreateDynamicObject(1634, 1477.857056, 1203.463135, 14.641050, 24.0642, 0.0000, 180.0000);
CreateDynamicObject(1634, 1477.865234, 1201.007813, 19.322962, 46.4095, 0.0000, 180.0000);
CreateDynamicObject(1634, 1477.878784, 1199.927490, 24.744240, 60.1605, 0.0000, 180.0000);
CreateDynamicObject(1634, 1477.903320, 1200.207886, 31.430532, 73.9115, 0.8594, 180.0000);
CreateDynamicObject(1634, 1477.828247, 1201.490234, 36.473537, 86.8030, 0.8594, 180.0000);
CreateDynamicObject(4168, 1478.146729, 1275.121948, 32.991570, 0.0000, 0.0000, 270.0000);
CreateDynamicObject(1634, 1478.209229, 1344.856812, 33.973713, 0.0000, 0.0000, 0.0000);
CreateDynamicObject(1634, 1478.186279, 1349.698975, 37.681175, 19.7670, 0.0000, 0.0000);
CreateDynamicObject(1634, 1478.189697, 1353.017090, 41.889687, 34.3775, 0.0000, 0.0000);
CreateDynamicObject(1634, 1478.179932, 1355.062500, 46.554382, 48.1284, 0.0000, 0.0000);
CreateDynamicObject(1634, 1478.162354, 1356.145874, 51.975304, 58.4416, 0.0000, 0.0000);
CreateDynamicObject(1634, 1478.176147, 1356.233154, 57.727669, 69.6143, 0.0000, 0.0000);
CreateDynamicObject(1634, 1478.187622, 1355.321045, 62.648430, 80.7870, 0.0000, 0.0000);
CreateDynamicObject(4168, 1478.308716, 1281.223389, 58.338135, 0.0000, 0.0000, 270.0000);
CreateDynamicObject(1634, 1478.171631, 1215.489624, 59.549492, 0.0000, 0.0000, 180.0000);
CreateDynamicObject(1634, 1478.139526, 1211.973877, 63.196587, 26.6425, 0.0000, 180.0000);
CreateDynamicObject(1634, 1478.106201, 1210.535522, 67.426888, 48.9878, 0.0000, 180.0000);
CreateDynamicObject(1634, 1478.137329, 1209.611572, 72.593910, 61.0199, 0.0000, 180.0000);
CreateDynamicObject(1634, 1478.126831, 1209.805664, 78.252747, 73.9115, 0.0000, 180.0000);
CreateDynamicObject(4168, 1478.170898, 1289.272339, 82.114304, 0.0000, 0.0000, 90.0000);
CreateDynamicObject(1634, 1478.172241, 1211.047607, 83.179230, 85.0842, 0.0000, 180.0000);
CreateDynamicObject(4168, 1478.270264, 1424.086426, 87.224632, 0.0000, 355.7028, 90.0000);
CreateDynamicObject(4168, 1478.273682, 1558.704468, 109.587738, 0.0000, 345.3896, 90.0000);
CreateDynamicObject(4168, 1478.179199, 1688.066895, 153.640091, 0.0000, 336.7952, 90.0000);
CreateDynamicObject(4168, 1478.079590, 1822.360962, 182.304977, 0.0000, 359.1406, 90.0000);
CreateDynamicObject(6342, 1468.813110, 1976.265137, 50.646446, 1.7189, 291.2451, 236.9550);
CreateDynamicObject(4168, 1481.945557, 1929.096069, 122.880646, 348.8273, 61.8794, 116.6423);
CreateDynamicObject(970, 1470.675171, 1892.041748, 183.968781, 0.0000, 0.0000, 0.0000);
CreateDynamicObject(970, 1475.070313, 1892.139404, 183.817642, 0.0000, 0.0000, 0.0000);
CreateDynamicObject(970, 1477.330322, 1889.887329, 183.799225, 0.0000, 0.0000, 270.0000);
CreateDynamicObject(972, 1474.192261, 1871.541016, 182.954193, 0.0000, 0.0000, 0.0000);
CreateDynamicObject(972, 1471.020264, 1847.138184, 182.619888, 0.0000, 0.0000, 347.9679);
CreateDynamicObject(971, 1486.861816, 1895.290771, 183.404205, 86.8030, 359.1406, 180.0000);
CreateDynamicObject(6342, 1468.267090, 1979.177612, 48.172829, 353.9839, 297.2612, 247.8184);
CreateDynamicObject(971, 1461.637695, 2004.728516, 14.593355, 122.8994, 206.1607, 287.0745);
CreateDynamicObject(6342, 1410.175659, 2006.473389, 42.900719, 323.9037, 327.3415, 296.3335);
CreateDynamicObject(6342, 1369.836792, 2003.086304, 58.486191, 305.8555, 342.8113, 324.6176);
CreateDynamicObject(1634, 1342.251953, 1993.718872, 94.457382, 38.6747, 313.5905, 114.7692);
CreateDynamicObject(1634, 1341.604370, 1991.512085, 98.281235, 54.1445, 310.1527, 131.9580);
CreateDynamicObject(1634, 1342.151855, 1989.475708, 102.714050, 66.1766, 289.5262, 153.4441);
CreateDynamicObject(4168, 1418.136597, 1985.515015, 102.290016, 0.0000, 0.0000, 0.0000);
CreateDynamicObject(2780, 1487.065430, 1994.478638, 102.358528, 0.0000, 0.0000, 0.0000);
CreateDynamicObject(2780, 1487.359253, 1976.245483, 102.352531, 0.0000, 0.0000, 180.0000);
CreateDynamicObject(2780, 1487.163696, 1979.995239, 102.352531, 0.0000, 0.0000, 180.0000);
CreateDynamicObject(2780, 1487.836914, 1990.967163, 102.357315, 0.0000, 0.0000, 0.0000);
CreateDynamicObject(1225, 1487.472534, 1989.868652, 102.609810, 0.0000, 0.0000, 0.0000);
CreateDynamicObject(1225, 1480.801025, 1991.884155, 102.609810, 0.0000, 0.0000, 0.0000);
CreateDynamicObject(1225, 1480.973877, 1991.526978, 102.609810, 0.0000, 0.0000, 0.0000);
CreateDynamicObject(1225, 1481.249634, 1990.964355, 102.609810, 0.0000, 0.0000, 0.0000);
CreateDynamicObject(1225, 1481.577637, 1990.095215, 102.609810, 0.0000, 0.0000, 0.0000);
CreateDynamicObject(1225, 1481.752930, 1989.489868, 102.609810, 0.0000, 0.0000, 0.0000);
CreateDynamicObject(1225, 1481.798218, 1988.837891, 102.609810, 0.0000, 0.0000, 0.0000);
CreateDynamicObject(1225, 1481.810791, 1987.678467, 102.609810, 0.0000, 0.0000, 0.0000);
CreateDynamicObject(1225, 1481.755127, 1987.170898, 102.609810, 0.0000, 0.0000, 0.0000);
CreateDynamicObject(1225, 1481.625244, 1986.510620, 102.609810, 0.0000, 0.0000, 0.0000);
CreateDynamicObject(1225, 1481.290527, 1985.497681, 102.609810, 0.0000, 0.0000, 0.0000);
CreateDynamicObject(1225, 1480.804932, 1984.547729, 102.609810, 0.0000, 0.0000, 0.0000);
CreateDynamicObject(1225, 1480.392578, 1983.840820, 102.602020, 0.0000, 0.0000, 0.0000);
CreateDynamicObject(1225, 1479.737427, 1983.072876, 102.602020, 0.0000, 0.0000, 0.0000);
CreateDynamicObject(1225, 1478.968994, 1982.074463, 102.602020, 0.0000, 0.0000, 0.0000);
CreateDynamicObject(1225, 1478.938110, 1981.513306, 102.766083, 0.0000, 0.0000, 0.0000);
CreateDynamicObject(1225, 1478.713013, 1980.759766, 102.766083, 0.0000, 0.0000, 0.0000);
CreateDynamicObject(1225, 1478.587891, 1979.334229, 102.766083, 0.0000, 0.0000, 0.0000);
CreateDynamicObject(1225, 1478.614990, 1978.366699, 102.766083, 0.0000, 0.0000, 0.0000);
CreateDynamicObject(1225, 1482.980957, 1963.268677, 78.782730, 0.0000, 0.0000, 0.0000);
CreateDynamicObject(1225, 1478.484985, 1977.553589, 102.766083, 0.0000, 0.0000, 0.0000);
CreateDynamicObject(2780, 1480.209229, 1993.111206, 102.365318, 0.0000, 0.0000, 0.0000);
CreateDynamicObject(2780, 1480.051025, 1980.346680, 102.360329, 0.0000, 0.0000, 0.0000);
CreateDynamicObject(2780, 1475.922485, 1980.173584, 102.360329, 0.0000, 0.0000, 0.0000);
CreateDynamicObject(2780, 1478.138794, 1994.519043, 102.367538, 0.0000, 0.0000, 0.0000);
CreateDynamicObject(2780, 1487.011230, 1988.310791, 102.204056, 0.0000, 0.0000, 0.0000);
CreateDynamicObject(2780, 1486.895264, 1985.032227, 102.204056, 0.0000, 0.0000, 0.0000);
CreateDynamicObject(2780, 1483.791016, 1989.720093, 102.204056, 0.0000, 0.0000, 0.0000);
CreateDynamicObject(2780, 1483.666260, 1986.157959, 102.204056, 0.0000, 0.0000, 0.0000);
CreateDynamicObject(2780, 1483.662842, 1985.434326, 102.204056, 0.0000, 0.0000, 0.0000);
CreateDynamicObject(1634, 1476.570190, 1839.638306, 11.109818, 0.0000, 0.0000, 0.0000);
CreateDynamicObject(1634, 1476.615723, 1843.823120, 14.325544, 20.6265, 0.0000, 0.0000);
CreateDynamicObject(1634, 1476.638062, 1846.675903, 18.315964, 36.0963, 0.0000, 0.0000);
CreateDynamicObject(1634, 1476.678467, 1848.925293, 23.287676, 44.6907, 0.0000, 0.0000);
CreateDynamicObject(1634, 1476.696533, 1850.161255, 27.966009, 56.7228, 0.0000, 0.0000);
CreateDynamicObject(1634, 1476.792114, 1850.383301, 33.027973, 67.8954, 0.0000, 0.0000);
CreateDynamicObject(1634, 1476.897827, 1849.680298, 38.145294, 77.3492, 0.0000, 0.0000);
CreateDynamicObject(1634, 1476.858765, 1848.184204, 42.891556, 86.8030, 0.0000, 0.0000);
CreateDynamicObject(4168, 1477.386108, 1754.171265, 53.108765, 0.0000, 0.0000, 270.0000);
CreateDynamicObject(1634, 1477.239258, 1660.787720, 11.109818, 0.0000, 0.0000, 0.0000);
CreateDynamicObject(1634, 1571.867798, 1393.061890, 11.145630, 0.0000, 0.0000, 247.5000);
CreateDynamicObject(1634, 1576.654907, 1391.072144, 14.698470, 19.7670, 0.0000, 247.5000);
CreateDynamicObject(1634, 1612.146729, 1409.314209, 21.828461, 3.4377, 0.0000, 348.7500);
CreateDynamicObject(1634, 1613.146362, 1414.286743, 25.627312, 18.9076, 0.0000, 348.7500);
CreateDynamicObject(1634, 1621.582397, 1623.024292, 11.117630, 2.5783, 0.0000, 270.0000);
CreateDynamicObject(1634, 1626.230225, 1623.007813, 14.354559, 16.3293, 0.0000, 270.0000);
CreateDynamicObject(1634, 1480.737549, 1985.409180, 103.493584, 0.0000, 0.0000, 270.0000);
CreateDynamicObject(2780, 1477.333008, 1989.061401, 102.199760, 0.0000, 0.0000, 0.0000);
CreateDynamicObject(2780, 1475.363525, 1982.104126, 102.196266, 0.0000, 0.0000, 0.0000);
CreateDynamicObject(4168, 1582.807495, 1985.307617, 109.345680, 0.0000, 0.0000, 0.0000);
CreateDynamicObject(4168, 1710.889648, 1985.297485, 146.756622, 0.0000, 327.3414, 0.0000);
CreateDynamicObject(4168, 1826.066528, 1985.271973, 224.326782, 0.0000, 324.7631, 0.0000);
CreateDynamicObject(4168, 1940.136597, 1985.287109, 304.890137, 0.0000, 324.7631, 0.0000);
CreateDynamicObject(4168, 2053.960449, 1985.294678, 385.283691, 0.0000, 324.7631, 0.0000);
CreateDynamicObject(4168, 2167.672119, 1985.219849, 465.582306, 0.0000, 324.7631, 0.0000);
CreateDynamicObject(4168, 2280.990967, 1985.229004, 545.613281, 0.0000, 324.7631, 0.0000);
CreateDynamicObject(1634, 1653.582397, 1985.182861, 109.181953, 1.7189, 0.0000, 270.0000);
CreateDynamicObject(4168, 2394.504883, 1985.217773, 625.773071, 0.0000, 324.7631, 0.0000);
CreateDynamicObject(4168, 2508.179688, 1985.236572, 706.055786, 0.0000, 324.7631, 0.0000);
CreateDynamicObject(4168, 2621.977783, 1985.260254, 786.440735, 0.0000, 324.7631, 0.0000);
CreateDynamicObject(4168, 2735.274902, 1985.263550, 866.456055, 0.0000, 324.7631, 0.0000);
CreateDynamicObject(4168, 2846.536621, 1985.189819, 945.042114, 0.0000, 324.7631, 0.0000);
CreateDynamicObject(4168, 2959.043945, 1985.222412, 1024.504761, 0.0000, 324.7631, 0.0000);
CreateDynamicObject(4168, 3072.274902, 1985.240356, 1104.494263, 0.0000, 324.7631, 0.0000);
CreateDynamicObject(4168, 3192.392822, 1985.225830, 1172.664185, 0.0000, 335.9358, 0.0000);
CreateDynamicObject(4168, 3326.308838, 1985.254028, 1200.173828, 0.0000, 0.8594, 0.0000);
CreateDynamicObject(4168, 3435.661621, 1986.902344, 1141.185791, 2.5783, 55.8633, 0.0000);
CreateDynamicObject(4168, 3509.664307, 1992.192017, 1022.902222, 2.5783, 60.1605, 0.0000);
CreateDynamicObject(4168, 3571.549316, 1997.555054, 900.338135, 2.5783, 66.1766, 0.0000);
CreateDynamicObject(4168, 3627.759521, 2003.256104, 773.140930, 2.5783, 66.1766, 0.0000);
CreateDynamicObject(1634, 3654.251221, 2005.614136, 714.630554, 289.5262, 0.0000, 270.0000);
CreateDynamicObject(1634, 3657.047852, 2005.604614, 712.175293, 298.1206, 0.0000, 270.0000);
CreateDynamicObject(1634, 1651.684448, 1985.223511, 108.606918, 347.9679, 0.8594, 270.0000);
CreateDynamicObject(1634, 1547.943359, 1228.782715, 11.109818, 0.0000, 0.0000, 180.0000);
CreateDynamicObject(1634, 1547.880737, 1223.922974, 14.679590, 18.9076, 0.0000, 180.0000);
CreateDynamicObject(1634, 1547.885376, 1222.004395, 17.573147, 31.7992, 0.0000, 180.0000);
CreateDynamicObject(1634, 1547.876953, 1222.601440, 17.912239, 42.1124, 0.0000, 180.0000);
CreateDynamicObject(1634, 1591.320557, 1449.475952, 10.875505, 0.0000, 359.1406, 270.0000);
CreateDynamicObject(1634, 1595.846191, 1449.592773, 13.900642, 16.3293, 359.1406, 270.0000);
CreateDynamicObject(1634, 1597.980347, 1449.560547, 16.035223, 28.3614, 359.1406, 270.0000);
CreateDynamicObject(1634, 1598.840088, 1449.530762, 17.420830, 36.0963, 359.1406, 270.0000);
CreateDynamicObject(1634, 1599.050415, 1449.594849, 18.418556, 45.5501, 359.1406, 270.0000);
CreateDynamicObject(1634, 1598.908691, 1449.613647, 18.473267, 54.1445, 359.1406, 270.0000);
CreateDynamicObject(1634, 1431.696533, 1594.993286, 11.110296, 2.5783, 359.1406, 270.0000);
CreateDynamicObject(1634, 1436.656128, 1594.819580, 14.489010, 17.1887, 6.8755, 269.1406);
CreateDynamicObject(1634, 1440.678711, 1594.320679, 18.635239, 28.3614, 13.7510, 268.2811);
CreateDynamicObject(1634, 1443.239624, 1593.469360, 23.085150, 42.9718, 25.7831, 262.2651);
CreateDynamicObject(1634, 1444.824707, 1591.626343, 28.755381, 55.0039, 35.2369, 251.9518);
//drag area
CreateDynamicObject(18450, 293.003784, 2485.787598, 15.977594, 0.0000, 0.0000, 0.0000);
CreateDynamicObject(18450, 372.619446, 2485.817627, 15.927568, 0.0000, 0.0000, 0.0000);
CreateDynamicObject(18450, 213.296387, 2485.812256, 15.977560, 0.0000, 0.0000, 0.0000);
CreateDynamicObject(18450, 134.145950, 2485.781250, 16.027571, 0.0000, 0.0000, 0.0000);
CreateDynamicObject(18450, 59.502281, 2485.720215, 16.027597, 0.0000, 0.0000, 0.0000);
CreateDynamicObject(18450, 372.615570, 2501.814941, 15.927599, 0.0000, 0.0000, 0.0000);
CreateDynamicObject(18450, 214.374207, 2501.710693, 15.977571, 0.0000, 0.0000, 0.0000);
CreateDynamicObject(18450, 137.475006, 2501.677979, 16.002598, 0.0000, 0.0000, 0.0000);
CreateDynamicObject(18450, 59.526283, 2501.643066, 16.002598, 0.0000, 0.0000, 0.0000);
CreateDynamicObject(18450, 292.834747, 2501.722168, 15.927572, 0.0000, 0.0000, 0.0000);
CreateDynamicObject(3463, 381.628632, 2493.838867, 11.042543, 0.0000, 0.0000, 90.0000);
CreateDynamicObject(1262, 381.787354, 2501.281494, 21.905968, 0.0000, 0.0000, 270.0000);
CreateDynamicObject(1262, 381.805054, 2486.545410, 21.955929, 0.0000, 0.0000, 270.0000);
CreateDynamicObject(1633, 415.798676, 2505.424561, 15.534685, 351.4056, 0.0000, 90.0000);
CreateDynamicObject(1633, 415.915802, 2501.259033, 15.509686, 351.4056, 0.0000, 90.0000);
CreateDynamicObject(1633, 415.939392, 2497.250732, 15.509686, 351.4056, 0.0000, 90.0000);
CreateDynamicObject(1633, 415.949921, 2489.736084, 15.559685, 351.4056, 0.0000, 90.0000);
CreateDynamicObject(1633, 415.984192, 2485.696289, 15.559685, 351.4056, 0.0000, 90.0000);
CreateDynamicObject(1633, 415.971954, 2481.586426, 15.559685, 351.4056, 0.0000, 90.0000);
CreateDynamicObject(4597, 385.492493, 2491.856934, 15.977598, 0.0000, 0.0000, 90.0000);
CreateDynamicObject(4597, 385.498962, 2478.250732, 15.979744, 0.0000, 0.0000, 90.0000);
CreateDynamicObject(8841, 6.382350, 2493.402100, 12.449644, 357.4217, 0.0000, 90.0000);
//Textdraws
Textdraw000 = TextDrawCreate(71.000000,141.000000,"INFO");
Textdraw1000 = TextDrawCreate(19.000000,167.000000,"MADE BY: SPLITX");
Textdraw2 = TextDrawCreate(18.000000,181.000000,"GM-NAME: HERE");
Textdraw3 = TextDrawCreate(17.000000,194.000000,"M-NAME: HERE");
TextDrawAlignment(Textdraw000,0);
TextDrawAlignment(Textdraw1000,0);
TextDrawAlignment(Textdraw2,0);
TextDrawAlignment(Textdraw3,0);
TextDrawBackgroundColor(Textdraw000,0xffffffff);
TextDrawBackgroundColor(Textdraw1000,0xffffffff);
TextDrawBackgroundColor(Textdraw2,0xffffffff);
TextDrawBackgroundColor(Textdraw3,0xffffffff);
TextDrawFont(Textdraw000,2);
TextDrawLetterSize(Textdraw0,0.899999,1.900000);
TextDrawFont(Textdraw1000,2);
TextDrawLetterSize(Textdraw1,0.499999,1.000000);
TextDrawFont(Textdraw2,2);
TextDrawLetterSize(Textdraw2,0.499999,1.000000);
TextDrawFont(Textdraw3,2);
TextDrawLetterSize(Textdraw3,0.499999,1.000000);
TextDrawColor(Textdraw000,0x000000ff);
TextDrawColor(Textdraw1000,0x000000ff);
TextDrawColor(Textdraw2,0x000000ff);
TextDrawColor(Textdraw3,0x000000ff);
TextDrawSetOutline(Textdraw000,1);
TextDrawSetOutline(Textdraw1000,1);
TextDrawSetOutline(Textdraw2,1);
TextDrawSetOutline(Textdraw3,1);
TextDrawSetProportional(Textdraw000,1);
TextDrawSetProportional(Textdraw1000,1);
TextDrawSetProportional(Textdraw2,1);
TextDrawSetProportional(Textdraw3,1);
TextDrawSetShadow(Textdraw000,1);
TextDrawSetShadow(Textdraw1000,1);
TextDrawSetShadow(Textdraw2,1);
TextDrawSetShadow(Textdraw3,1);
//
Textdraw0 = TextDrawCreate(547.000000,54.000000,"V 0.1");
Textdraw1 = TextDrawCreate(9.000000,431.000000,"DRIFT/RACE/TUNE/STUNT");
TextDrawAlignment(Textdraw0,0);
TextDrawAlignment(Textdraw1,0);
TextDrawBackgroundColor(Textdraw0,0x0000ffff);
TextDrawBackgroundColor(Textdraw1,0x0000ffff);
TextDrawFont(Textdraw0,3);
TextDrawLetterSize(Textdraw0,1.000000,0.999999);
TextDrawFont(Textdraw1,1);
TextDrawLetterSize(Textdraw1,1.000000,1.000000);
TextDrawColor(Textdraw0,0xff0000ff);
TextDrawColor(Textdraw1,0xff0000ff);
TextDrawSetOutline(Textdraw0,1);
TextDrawSetOutline(Textdraw1,1);
TextDrawSetProportional(Textdraw0,1);
TextDrawSetProportional(Textdraw1,1);
TextDrawSetShadow(Textdraw0,4);
TextDrawSetShadow(Textdraw1,10);
//menu
VehliceMenu = CreateMenu("Vehicle Page 1",10,200,200,400,35);
AddMenuItem(VehliceMenu, 0, "Stationwagons & SUV");
AddMenuItem(VehliceMenu, 0, "2-Doors");
AddMenuItem(VehliceMenu, 0, "4-Doors");
AddMenuItem(VehliceMenu, 0, "RC");
AddMenuItem(VehliceMenu, 0, "Muscle");
AddMenuItem(VehliceMenu, 0, "Street");
AddMenuItem(VehliceMenu, 0, "Lowriders");
AddMenuItem(VehliceMenu, 0, "SportCars & StreetRacers");
AddMenuItem(VehliceMenu, 0, "(Mini) Vans");
AddMenuItem(VehliceMenu, 0, "Next...");
Vehlice2Menu = CreateMenu("Vehicle Page 2",9,200,200,400,35);
AddMenuItem(Vehlice2Menu, 0, "Transport");
AddMenuItem(Vehlice2Menu, 0, "Recreation");
AddMenuItem(Vehlice2Menu, 0, "Bikes & Moter Cycles");
AddMenuItem(Vehlice2Menu, 0, "Boats");
AddMenuItem(Vehlice2Menu, 0, "Work-on-street Cars");
AddMenuItem(Vehlice2Menu, 0, "Planes");
AddMenuItem(Vehlice2Menu, 0, "Gouverment");
AddMenuItem(Vehlice2Menu, 0, "Hang-on");
AddMenuItem(Vehlice2Menu, 0, "Special");
Stationwagons = CreateMenu("Stationwagons & SUV:",10,200,200,400,35);
AddMenuItem(Stationwagons, 0, "Huntley");
AddMenuItem(Stationwagons, 0, "Landstalker");
AddMenuItem(Stationwagons, 0, "Mesa");
AddMenuItem(Stationwagons, 0, "Moonbeam");
AddMenuItem(Stationwagons, 0, "Perennial");
AddMenuItem(Stationwagons, 0, "Rancher");
AddMenuItem(Stationwagons, 0, "Regina");
AddMenuItem(Stationwagons, 0, "Romero");
AddMenuItem(Stationwagons, 0, "Solair");
AddMenuItem(Stationwagons, 0, "Stratum");
TwoDoors = CreateMenu("2-Doors:",10,200,200,400,35);
AddMenuItem(TwoDoors, 0, "Alpha");
AddMenuItem(TwoDoors, 0, "Blista Compact");
AddMenuItem(TwoDoors, 0, "Bravura");
AddMenuItem(TwoDoors, 0, "Buccaneer");
AddMenuItem(TwoDoors, 0, "Cadrona");
AddMenuItem(TwoDoors, 0, "Club");
AddMenuItem(TwoDoors, 0, "Esperanto");
AddMenuItem(TwoDoors, 0, "Feltzer");
AddMenuItem(TwoDoors, 0, "Fortune");
AddMenuItem(TwoDoors, 0, "Next..");
TwoDoors2 = CreateMenu("2-Doors:",10,200,200,400,35);
AddMenuItem(TwoDoors2, 0, "Hermes");
AddMenuItem(TwoDoors2, 0, "Hustler");
AddMenuItem(TwoDoors2, 0, "Majestic");
AddMenuItem(TwoDoors2, 0, "Manana");
AddMenuItem(TwoDoors2, 0, "Picador");
AddMenuItem(TwoDoors2, 0, "Previon");
AddMenuItem(TwoDoors2, 0, "Stallion");
AddMenuItem(TwoDoors2, 0, "Tampa");
AddMenuItem(TwoDoors2, 0, "Virgo");
AddMenuItem(TwoDoors2, 0, "Windsor");
ForeDoors = CreateMenu("4-Doors:",10,200,200,400,35);
AddMenuItem(ForeDoors, 0, "Admiral");
AddMenuItem(ForeDoors, 0, "Elegant");
AddMenuItem(ForeDoors, 0, "Emperor");
AddMenuItem(ForeDoors, 0, "Glendale");
AddMenuItem(ForeDoors, 0, "Greenwood");
AddMenuItem(ForeDoors, 0, "Intruder");
AddMenuItem(ForeDoors, 0, "Merit");
AddMenuItem(ForeDoors, 0, "Nebula");
AddMenuItem(ForeDoors, 0, "Oceanic");
AddMenuItem(ForeDoors, 0, "Next..");
ForeDoors2 = CreateMenu("4-Doors:",10,200,200,400,35);
AddMenuItem(ForeDoors2, 0, "Premier");
AddMenuItem(ForeDoors2, 0, "Primo");
AddMenuItem(ForeDoors2, 0, "Sentinel");
AddMenuItem(ForeDoors2, 0, "Stafford");
AddMenuItem(ForeDoors2, 0, "Stretch");
AddMenuItem(ForeDoors2, 0, "Sunrise");
AddMenuItem(ForeDoors2, 0, "Tahoma");
AddMenuItem(ForeDoors2, 0, "Vincent");
AddMenuItem(ForeDoors2, 0, "Washington");
AddMenuItem(ForeDoors2, 0, "Willard");
RC = CreateMenu("RC Cars:",6,200,200,400,35);
AddMenuItem(RC, 0, "RC Bandit");
AddMenuItem(RC, 0, "RC Baron");
AddMenuItem(RC, 0, "RC Cam");
AddMenuItem(RC, 0, "RC Goblin");
AddMenuItem(RC, 0, "RC Raider");
AddMenuItem(RC, 0, "RC Tiger");
Muscle = CreateMenu("Muscle Cars:",4,200,200,400,35);
AddMenuItem(Muscle, 0, "Buffalo");
AddMenuItem(Muscle, 0, "Clover");
AddMenuItem(Muscle, 0, "Phoenix");
AddMenuItem(Muscle, 0, "Sabre");
Street = CreateMenu("Street Racers:",5,200,200,400,35);
AddMenuItem(Street, 0, "Elegy");
AddMenuItem(Street, 0, "Flash");
AddMenuItem(Street, 0, "Jester");
AddMenuItem(Street, 0, "Sultan");
AddMenuItem(Street, 0, "Uranus");
Lowriders = CreateMenu("Lowriders:",7,200,200,400,35);
AddMenuItem(Lowriders, 0, "Blade");
AddMenuItem(Lowriders, 0, "Broadway");
AddMenuItem(Lowriders, 0, "Remington");
AddMenuItem(Lowriders, 0, "Savanna");
AddMenuItem(Lowriders, 0, "Slamvan");
AddMenuItem(Lowriders, 0, "Tornado");
AddMenuItem(Lowriders, 0, "Voodoo");
Sport = CreateMenu("Sport Cars:",11,200,200,400,35);
AddMenuItem(Sport, 0, "Banshee");
AddMenuItem(Sport, 0, "Bullet");
AddMenuItem(Sport, 0, "Cheetah");
AddMenuItem(Sport, 0, "Comet");
AddMenuItem(Sport, 0, "Euros");
AddMenuItem(Sport, 0, "Hotknife");
AddMenuItem(Sport, 0, "Hotring Racer");
AddMenuItem(Sport, 0, "Infernus");
AddMenuItem(Sport, 0, "Super GT");
AddMenuItem(Sport, 0, "Turismo");
AddMenuItem(Sport, 0, "ZR 350");
Vans = CreateMenu("(Mini) Vans:",11,200,200,400,35);
AddMenuItem(Vans, 0, "Bobcat");
AddMenuItem(Vans, 0, "Berkley's RC Van");
AddMenuItem(Vans, 0, "Burrito");
AddMenuItem(Vans, 0, "Hotdog");
AddMenuItem(Vans, 0, "Mr Whoopee");
AddMenuItem(Vans, 0, "Newsvan");
AddMenuItem(Vans, 0, "Pony");
AddMenuItem(Vans, 0, "Rumpo");
AddMenuItem(Vans, 0, "Sadler");
AddMenuItem(Vans, 0, "Walton");
AddMenuItem(Vans, 0, "Yosemite");
Transport = CreateMenu("Transport:",11,200,200,400,35);
AddMenuItem(Transport, 0, "Baggage");
AddMenuItem(Transport, 0, "Brown Streak");
AddMenuItem(Transport, 0, "Bus");
AddMenuItem(Transport, 0, "Cabbie");
AddMenuItem(Transport, 0, "Coach");
AddMenuItem(Transport, 0, "Forklift");
AddMenuItem(Transport, 0, "Freight");
AddMenuItem(Transport, 0, "Securicar");
AddMenuItem(Transport, 0, "Taxi");
AddMenuItem(Transport, 0, "Towtruck");
AddMenuItem(Transport, 0, "Tug");
Recreation = CreateMenu("Recreation:",12,200,200,400,35);
AddMenuItem(Recreation, 0, "Bandito");
AddMenuItem(Recreation, 0, "BF Injection");
AddMenuItem(Recreation, 0, "Bloodring Banger");
AddMenuItem(Recreation, 0, "Caddy");
AddMenuItem(Recreation, 0, "Camper");
AddMenuItem(Recreation, 0, "Dune");
AddMenuItem(Recreation, 0, "Journey");
AddMenuItem(Recreation, 0, "Kart");
AddMenuItem(Recreation, 0, "Monster");
AddMenuItem(Recreation, 0, "Mower");
AddMenuItem(Recreation, 0, "Sandking");
AddMenuItem(Recreation, 0, "Quad Bike");
Bikes = CreateMenu("Bikes & MotorCycles:",12,200,200,400,35);
AddMenuItem(Bikes, 0, "Bike");
AddMenuItem(Bikes, 0, "BF-400");
AddMenuItem(Bikes, 0, "BMX");
AddMenuItem(Bikes, 0, "Faggio");
AddMenuItem(Bikes, 0, "FCR-900");
AddMenuItem(Bikes, 0, "Freeway");
AddMenuItem(Bikes, 0, "Mountain Bike");
AddMenuItem(Bikes, 0, "NRG-500");
AddMenuItem(Bikes, 0, "PCJ-600");
AddMenuItem(Bikes, 0, "Pizzaboy");
AddMenuItem(Bikes, 0, "Sanchez");
AddMenuItem(Bikes, 0, "Wayfarer");
Boats = CreateMenu("Boats:",11,200,200,400,35);
AddMenuItem(Boats, 0, "Coast Guard");
AddMenuItem(Boats, 0, "Dinghy");
AddMenuItem(Boats, 0, "Jetmax");
AddMenuItem(Boats, 0, "Launch");
AddMenuItem(Boats, 0, "Marquis");
AddMenuItem(Boats, 0, "Predator");
AddMenuItem(Boats, 0, "Reefer");
AddMenuItem(Boats, 0, "Speeder");
AddMenuItem(Boats, 0, "Squalo");
AddMenuItem(Boats, 0, "Tropic");
AddMenuItem(Boats, 0, "Vortex");
Work = CreateMenu("Work-Traffic:",10,200,200,400,35);
AddMenuItem(Work, 0, "Benson");
AddMenuItem(Work, 0, "Boxville");
AddMenuItem(Work, 0, "Black Boxville");
AddMenuItem(Work, 0, "Cement Truck");
AddMenuItem(Work, 0, "Combine Harvester");
AddMenuItem(Work, 0, "DFT-30");
AddMenuItem(Work, 0, "Dozer");
AddMenuItem(Work, 0, "Dumper");
AddMenuItem(Work, 0, "Flatbed");
AddMenuItem(Work, 0, "Next..");
Work2 = CreateMenu("Work-Traffic:",10,200,200,400,35);
AddMenuItem(Work2, 0, "Linerunner");
AddMenuItem(Work2, 0, "Mule");
AddMenuItem(Work2, 0, "Packer");
AddMenuItem(Work2, 0, "Roadtrain");
AddMenuItem(Work2, 0, "Sweeper");
AddMenuItem(Work2, 0, "Tanker");
AddMenuItem(Work2, 0, "Tractor");
AddMenuItem(Work2, 0, "Trashmaster");
AddMenuItem(Work2, 0, "Utility Van");
AddMenuItem(Work2, 0, "Yankee");
Planes = CreateMenu("Planes & Heli's:",9,200,200,400,35);
AddMenuItem(Planes, 0, "Andromada");
AddMenuItem(Planes, 0, "AT 400");
AddMenuItem(Planes, 0, "Beagle");
AddMenuItem(Planes, 0, "Cargobob");
AddMenuItem(Planes, 0, "Cropduster");
AddMenuItem(Planes, 0, "Dodo");
AddMenuItem(Planes, 0, "Leviathan");
AddMenuItem(Planes, 0, "Maverick");
AddMenuItem(Planes, 0, "Next..");
Planes2 = CreateMenu("Planes & Heli's:",9,200,200,400,35);
AddMenuItem(Planes2, 0, "Nevada");
AddMenuItem(Planes2, 0, "News Chopper");
AddMenuItem(Planes2, 0, "Raindance");
AddMenuItem(Planes2, 0, "Rustler");
AddMenuItem(Planes2, 0, "Seasparrow");
AddMenuItem(Planes2, 0, "Shamal");
AddMenuItem(Planes2, 0, "Skimmer");
AddMenuItem(Planes2, 0, "Sparrow");
AddMenuItem(Planes2, 0, "Stuntplane");
Gouverment = CreateMenu("Government:",9,200,200,400,35);
AddMenuItem(Gouverment, 0, "Ambulance");
AddMenuItem(Gouverment, 0, "Barracks");
AddMenuItem(Gouverment, 0, "Enforcer");
AddMenuItem(Gouverment, 0, "FBI Rancher");
AddMenuItem(Gouverment, 0, "FBI Truck");
AddMenuItem(Gouverment, 0, "Fire Truck");
AddMenuItem(Gouverment, 0, "Fire Truck2");
AddMenuItem(Gouverment, 0, "HPV1000");
AddMenuItem(Gouverment, 0, "Next..");
Gouverment2 = CreateMenu("Gouverment:",8,200,200,400,35);
AddMenuItem(Gouverment2, 0, "Hunter");
AddMenuItem(Gouverment2, 0, "Hydra");
AddMenuItem(Gouverment2, 0, "Patriot");
AddMenuItem(Gouverment2, 0, "Police");
AddMenuItem(Gouverment2, 0, "Police Maverick");
AddMenuItem(Gouverment2, 0, "Ranger");
AddMenuItem(Gouverment2, 0, "Rhino");
AddMenuItem(Gouverment2, 0, "S.W.A.T.");
HangOn = CreateMenu("Hang on's:",10,200,200,400,35);
AddMenuItem(HangOn, 0, "Baggage box");
AddMenuItem(HangOn, 0, "Container");
AddMenuItem(HangOn, 0, "Frees");
AddMenuItem(HangOn, 0, "Freight flat");
AddMenuItem(HangOn, 0, "Container 2");
AddMenuItem(HangOn, 0, "Container 3");
AddMenuItem(HangOn, 0, "Stairs");
AddMenuItem(HangOn, 0, "Streak carriage");
AddMenuItem(HangOn, 0, "Petrot");
AddMenuItem(HangOn, 0, "Utility");
Special = CreateMenu("Special:",5,200,200,400,35);
AddMenuItem(Special, 0, "Crashed Glendale");
AddMenuItem(Special, 0, "Crashed Sadler");
AddMenuItem(Special, 0, "Tram");
AddMenuItem(Special, 0, "Lure Rancher");
AddMenuItem(Special, 0, "Freight box");
return 1;
}
public OnPlayerRequestClass(playerid, classid)
{
if(classid == 0)
{GameTextForPlayer(playerid, "~y~Team Drift", 1000, 3);
SetPlayerColor(playerid,COLOR_DRIFT);}
else if(classid == 1)
{GameTextForPlayer(playerid, "~y~Team Drift", 1000, 3);
SetPlayerColor(playerid,COLOR_TUNE);}
else if(classid == 2)
{GameTextForPlayer(playerid, "~g~Team Tune", 1000, 3);
SetPlayerColor(playerid,COLOR_TUNE);}
else if(classid == 3)
{GameTextForPlayer(playerid, "~g~Team Tune", 1000, 3);
SetPlayerColor(playerid,COLOR_TUNE);}
else if(classid == 4)
{GameTextForPlayer(playerid, "~r~Team Race", 1000, 3);
SetPlayerColor(playerid,COLOR_RACE);}
else if(classid == 5)
{GameTextForPlayer(playerid, "~r~Team Race", 1000, 3);
SetPlayerColor(playerid,COLOR_RACE);}
else if(classid == 6)
{GameTextForPlayer(playerid, "~b~Team Stunt", 1000, 3);
SetPlayerColor(playerid,COLOR_STUNT);}
else if(classid == 7)
{GameTextForPlayer(playerid, "~b~Team Stunt", 1000, 3);
SetPlayerColor(playerid,COLOR_STUNT);}
if(classid == 0)
{
SetPlayerPos(playerid, 1177.2856,-2036.8947,69.1484);
SetPlayerCameraPos(playerid, 1177.285644, -2038.894653, 69.148437);
SetPlayerCameraLookAt(playerid, 1177.2856,-2036.8947,69.1484);
}
return 1;
}
public OnPlayerText(playerid, text[])
{
for(new i=0; i<256; i++) {
if (strfind(text[i], "fuck", true) == 0) {
for(new a=0; a<256; a++) {
if (a >= i && a < i+strlen("fuck")) text[a]='*';
}
}
}
for(new i=0; i<256; i++) {
if (strfind(text[i], "bitch", true) == 0) {
for(new a=0; a<256; a++) {
if (a >= i && a < i+strlen("bitch")) text[a]='*';
}
}
}
for(new i=0; i<256; i++) {
if (strfind(text[i], "wtf", true) == 0) {
for(new a=0; a<256; a++) {
if (a >= i && a < i+strlen("wtf")) text[a]='*';
}
}
}
for(new i=0; i<256; i++) {
if (strfind(text[i], "ffs", true) == 0) {
for(new a=0; a<256; a++) {
if (a >= i && a < i+strlen("ffs")) text[a]='*';
}
}
}
for(new i=0; i<256; i++) {
if (strfind(text[i], "omfg", true) == 0) {
for(new a=0; a<256; a++) {
if (a >= i && a < i+strlen("omfg")) text[a]='*';
}
}
}
return 1;
}
public OnPlayerConnect(playerid)
{
TextDrawShowForAll(Textdraw0);
TextDrawShowForAll(Textdraw1);
SetTimer("contimer",60000,1);
TextDrawShowForPlayer(playerid,Textdraw000);
TextDrawShowForPlayer(playerid,Textdraw1000);
TextDrawShowForPlayer(playerid,Textdraw2);
TextDrawShowForPlayer(playerid,Textdraw3);
new pName[MAX_PLAYER_NAME];
new string[48];
GetPlayerName(playerid, pName, sizeof(pName));
format(string, sizeof(string), "(( Server: %s has joined the server. ))", pName);
SendClientMessageToAll(COLOR_YELLOW, string);
SendClientMessage(playerid, COLOR_GREEN, "Welcome");
SendClientMessage(playerid, COLOR_GREEN, "Do");
SendClientMessage(playerid, COLOR_GREEN, "/help For help /Commands For Commands!");
SendClientMessage(playerid, COLOR_GREEN, "/credits For credits");
SendClientMessage(playerid, COLOR_RED, "DM Not Allowd DM = BAN");
SendClientMessage(playerid, COLOR_RED, "Dont Use Kill This Server is BAD word protected");
SendClientMessage(playerid, COLOR_GREEN, "Dont have a Account Do /register <password> (only if u want to save ur data)");
SendClientMessage(playerid, COLOR_GREEN, "Have a Account Do /login <password> (only if u want to save ur data)");
GivePlayerMoney(playerid, 20000);
SetPlayerColor(playerid, COLOR_RED);
return 1;
}
AddHouse(houseid, Float:iconX, Float:iconY, Float:iconZ, Float:interiorX, Float:interiorY, Float:interiorZ, Costa, Sella, Interiora)
{
new house[256];
format(house, sizeof(house), "Houses/houseid%d",houseid);
if(!dini_Exists(house))
{
dini_Create(house);
format(hInfo[houseid][Name], 24, "ForSale");
dini_Set(house, "Name", "ForSale");
format(hInfo[houseid][Renter], 24, "ForRent");
dini_Set(house, "Renter", "ForRent");
hInfo[houseid][Rentable] = 0;
dini_IntSet(house, "Rentable", 0);
hInfo[houseid][Rentcost] = 0;
dini_IntSet(house, "Rentcost", 0);
hInfo[houseid][Cost] = Costa;
dini_IntSet(house, "Cost", Costa);
hInfo[houseid][Sell] = Sella;
dini_IntSet(house, "Sell", Sella);
hInfo[houseid][Interior] = Interiora;
dini_IntSet(house, "Interior", Interiora);
hInfo[houseid][Locked] = 1;
dini_IntSet(house, "Locked", 1);
hInfo[houseid][InteriorX] = interiorX;
hInfo[houseid][InteriorY] = interiorY;
hInfo[houseid][InteriorZ] = interiorZ;
dini_FloatSet(house, "X", interiorX);
dini_FloatSet(house, "Y", interiorY);
dini_FloatSet(house, "Z", interiorZ);
dini_IntSet(house, "RentPay", 0);
dini_IntSet(house, "RentGet", 0);
cInfo[houseid][HouseCar] = 429;
dini_IntSet(house, "HouseCar", 0);
cInfo[houseid][CarModel] = 429;
dini_IntSet(house, "CarModel", 0);
cInfo[houseid][CarX] = 0;
cInfo[houseid][CarY] = 0;
cInfo[houseid][CarZ] = 0;
dini_FloatSet(house, "CarX", 0);
dini_FloatSet(house, "CarY", 0);
dini_FloatSet(house, "CarZ", 0);
cInfo[houseid][CarColor1] = 0;
cInfo[houseid][CarColor2] = 0;
dini_FloatSet(house, "CarColor1", 0);
dini_FloatSet(house, "CarColor2", 0);
cInfo[houseid][GotCar] = 0;
format(house, sizeof(house),"Houseid%d Has Been Created!",houseid);
print(house);
}
else
{
format(hInfo[houseid][Name], 24, dini_Get(house, "Name"));
format(hInfo[houseid][Renter], 24, dini_Get(house, "Renter"));
hInfo[houseid][Rentable] = dini_Int(house, "Rentable");
hInfo[houseid][Rentcost] = dini_Int(house, "Rentcost");
hInfo[houseid][Cost] = dini_Int(house, "Cost");
hInfo[houseid][Sell] = dini_Int(house, "Sell");
hInfo[houseid][Interior] = dini_Int(house, "Interior");
hInfo[houseid][Locked] = dini_Int(house, "Locked");
hInfo[houseid][InteriorX] = dini_Float(house, "X");
hInfo[houseid][InteriorY] = dini_Float(house, "Y");
hInfo[houseid][InteriorZ] = dini_Float(house, "Z");
}
hInfo[houseid][iconx]=iconX;
hInfo[houseid][icony]=iconY;
hInfo[houseid][iconz]=iconZ;
format(house, sizeof(house), "Houses/houseid%d",houseid);
if(strcmp(hInfo[playericonhouse[houseid]][Name],"ForSale",true)==0)
{
HousePickup[houseid] = CreatePickup(1273, 23, iconX, iconY, iconZ);//not bought
}
else
{
HousePickup[houseid] = CreatePickup(1272,23, iconX, iconY, iconZ);//bought
}
}
AddHouseCar(houseid, modelid, Float:Carx, Float:Cary, Float:Carz, color1, color2, respawn_delay)
{
new house[256];
format(house, sizeof(house), "Houses/houseid%d",houseid);
if(dini_Exists(house))
{
new str[256];
cInfo[houseid][GotCar] = 1;
if(!dini_Isset(house, "CarModel"))
{
dini_IntSet(house, "CarModel", modelid);
cInfo[houseid][CarModel] = modelid;
}
else
{
cInfo[houseid][CarModel] = dini_Int(house, "CarModel");
}
cInfo[houseid][CarX] = Carx;
cInfo[houseid][CarY] = Cary;
cInfo[houseid][CarZ] = Carz;
dini_FloatSet(house, "CarX", Carx);
dini_FloatSet(house, "CarY", Cary);
dini_FloatSet(house, "CarZ", Carz);
cInfo[houseid][CarColor1] = color1;
cInfo[houseid][CarColor2] = color2;
dini_IntSet(house, "CarColor1", color1);
dini_IntSet(house, "CarColor2", color2);
dini_IntSet(house, "Respawn_Delay", respawn_delay);
cInfo[houseid][Respawn_Delay] = respawn_delay;
cInfo[houseid][HouseCar] = CreateVehicle(cInfo[houseid][CarModel], Carx, Cary, Carz, 0.0, color1, color2, respawn_delay);
format(str, sizeof(str), "Housecar of houseid%d created!", houseid);
print(str);
}
}
stock SpawnPlayerAtHouse(playerid)
{
new str1[256],pname[24],str[256];
GetPlayerName(playerid, pname, sizeof(pname));
format(str1, sizeof(str1), "Houses/Users/%s", udb_encode(pname));
if (dini_Exists(str1))
{
if(dini_Int(str1,"Houseid")!=-255)
{
new Float:x,Float:y,Float:z;
str = dini_Get(str1,"SpawnInt");
SetPlayerInterior(playerid, strval(str));
playerinterior[playerid] = strval(str);
x = dini_Float(str1,"SpawnX");
y = dini_Float(str1,"SpawnY");
z = dini_Float(str1,"SpawnZ");
SetPlayerPos(playerid, x, y, z);
}
}
return 1;
}
public OnPlayerDisconnect(playerid, reason)
{
Object_OnPlayerDisconnect(playerid, reason);
if(RaceParticipant[playerid]>=1)
{
if(Participants==1) //Last participant leaving, ending race.
{
endrace();
}
if(RaceParticipant[playerid] < 3 && RaceStart == 0 && !(RaceParticipant[playerid]==3 && RaceStart == 1))
{ //Doing readycheck since someone left, but not if they disconnected during countdown.
ReadyRefresh();
}
Participants--;
RaceParticipant[playerid]=0;
DisablePlayerRaceCheckpoint(playerid);
}
if(RaceBuilders[playerid] != 0)
{
DisablePlayerRaceCheckpoint(playerid);
for(new i;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;
}
BuilderSlots[b(playerid)] = MAX_PLAYERS+1;
RaceBuilders[playerid] = 0;
}
new pName[MAX_PLAYER_NAME];
new string[56];
GetPlayerName(playerid, pName, sizeof(pName));
switch(reason)
{
case 0: format(string, sizeof(string), "(( Server: %s has left the server. !Timeout! ))", pName);
case 1: format(string, sizeof(string), "(( Server: %s has left the server. !Leaving! ))", pName);
case 2: format(string, sizeof(string), "(( Server: %s has left the server. !Kicked! ))", pName);
}
SendClientMessageToAll(COLOR_YELLOW, string);
OnPlayerUpdate(playerid);
gPlayerLogged[playerid] = 0;
return 1;
}
public OnPlayerSpawn(playerid)
{
GameTextForPlayer(playerid,"~r~W~g~e~r~l~g~c~y~o~b~m~y~e",2500,3);
SpawnPlayerAtHouse(playerid);
}
GetHouseStats(playerid, pickupid)
{
for(new i=0;i<MAX_HOUSES;i++)
{
if(pickupid==HousePickup[i])
{
if(HOUSE_STATS==0)
{
new str2[256];
format(str2, sizeof(str2), "Owned by: %s", hInfo[i][Name]);
SendClientMessage(playerid, c_y, str2);
if(strcmp(hInfo[i][Renter],"ForRent",true))
{
format(str2, sizeof(str2), "Rented by: %s", hInfo[i][Renter]);
SendClientMessage(playerid, c_y, str2);
}
format(str2,sizeof(str2),"Cost: %i",hInfo[i][Cost]);
SendClientMessage(playerid, c_y, str2);
inhousepickup = GetTickCount();
}
playericonhouse[playerid] = i;
}
}
}
public OnPlayerSelectedMenuRow(playerid, row)
{
TogglePlayerControllable(playerid, 1);
SetCameraBehindPlayer(playerid);
new Menu:Current = GetPlayerMenu(playerid);
new Float:x, Float:y, Float:z, Float:a;
GetPlayerFacingAngle(playerid,a);
GetPlayerPos(playerid, x, y, z);
if (Current == VehliceMenu)
{
switch(row) {
case 0: {ShowMenuForPlayer(Stationwagons, playerid); TogglePlayerControllable(playerid, 0);}
case 1: {ShowMenuForPlayer(TwoDoors, playerid); TogglePlayerControllable(playerid, 0);}
case 2: {ShowMenuForPlayer(ForeDoors, playerid); TogglePlayerControllable(playerid, 0);}
case 3: {ShowMenuForPlayer(RC, playerid); TogglePlayerControllable(playerid, 0);}
case 4: {ShowMenuForPlayer(Muscle, playerid); TogglePlayerControllable(playerid, 0);}
case 5: {ShowMenuForPlayer(Street, playerid); TogglePlayerControllable(playerid, 0);}
case 6: {ShowMenuForPlayer(Lowriders, playerid); TogglePlayerControllable(playerid, 0);}
case 7: {ShowMenuForPlayer(Sport, playerid); TogglePlayerControllable(playerid, 0);}
case 8: {ShowMenuForPlayer(Vans, playerid); TogglePlayerControllable(playerid, 0);}
case 9: {ShowMenuForPlayer(Vehlice2Menu, playerid); TogglePlayerControllable(playerid, 0);}
}
}
if (Current == Vehlice2Menu)
{
switch(row) {
case 0: {ShowMenuForPlayer(Transport, playerid); TogglePlayerControllable(playerid, 0);}
case 1: {ShowMenuForPlayer(Recreation, playerid); TogglePlayerControllable(playerid, 0);}
case 2: {ShowMenuForPlayer(Bikes, playerid); TogglePlayerControllable(playerid, 0);}
case 3: {ShowMenuForPlayer(Boats, playerid); TogglePlayerControllable(playerid, 0);}
case 4: {ShowMenuForPlayer(Work, playerid); TogglePlayerControllable(playerid, 0);}
case 5: {ShowMenuForPlayer(Planes, playerid); TogglePlayerControllable(playerid, 0);}
case 6: {ShowMenuForPlayer(Gouverment, playerid); TogglePlayerControllable(playerid, 0);}
case 7: {ShowMenuForPlayer(HangOn, playerid); TogglePlayerControllable(playerid, 0);}
case 8: {ShowMenuForPlayer(Special, playerid); TogglePlayerControllable(playerid, 0);}
}
}
if (Current == Stationwagons)
{
switch(row) {
case 0: {CreateVehicle(579, x, y, z, a,-1,-1,-1); }
case 1: {CreateVehicle(400, x, y, z, a,-1,-1,-1); }
case 2: {CreateVehicle(500, x, y, z, a,-1,-1,-1); }
case 3: {CreateVehicle(418, x, y, z, a,-1,-1,-1); }
case 4: {CreateVehicle(404, x, y, z, a,-1,-1,-1); }
case 5: {CreateVehicle(489, x, y, z, a,-1,-1,-1); }
case 6: {CreateVehicle(479, x, y, z, a,-1,-1,-1); }
case 7: {CreateVehicle(442, x, y, z, a,-1,-1,-1); }
case 8: {CreateVehicle(458, x, y, z, a,-1,-1,-1); }
case 9: {CreateVehicle(561, x, y, z, a,-1,-1,-1); }
}}
if (Current == TwoDoors)
{
switch(row) {
case 0: {CreateVehicle(602, x, y, z, a,-1,-1,-1); }
case 1: {CreateVehicle(496, x, y, z, a,-1,-1,-1); }
case 2: {CreateVehicle(401, x, y, z, a,-1,-1,-1); }
case 3: {CreateVehicle(518, x, y, z, a,-1,-1,-1); }
case 4: {CreateVehicle(527, x, y, z, a,-1,-1,-1); }
case 5: {CreateVehicle(589, x, y, z, a,-1,-1,-1); }
case 6: {CreateVehicle(419, x, y, z, a,-1,-1,-1); }
case 7: {CreateVehicle(533, x, y, z, a,-1,-1,-1); }
case 8: {CreateVehicle(526, x, y, z, a,-1,-1,-1); }
case 9: {ShowMenuForPlayer(TwoDoors2, playerid); }
}}
if (Current == TwoDoors2)
{
switch(row) {
case 0: {CreateVehicle(474, x, y, z, a,-1,-1,-1); }
case 1: {CreateVehicle(545, x, y, z, a,-1,-1,-1); }
case 2: {CreateVehicle(517, x, y, z, a,-1,-1,-1); }
case 3: {CreateVehicle(410, x, y, z, a,-1,-1,-1); }
case 4: {CreateVehicle(600, x, y, z, a,-1,-1,-1); }
case 5: {CreateVehicle(436, x, y, z, a,-1,-1,-1); }
case 6: {CreateVehicle(439, x, y, z, a,-1,-1,-1); }
case 7: {CreateVehicle(549, x, y, z, a,-1,-1,-1); }
case 8: {CreateVehicle(491, x, y, z, a,-1,-1,-1); }
case 9: {CreateVehicle(555, x, y, z, a,-1,-1,-1); }
}}
if (Current == ForeDoors)
{
switch(row) {
case 0: {CreateVehicle(445, x, y, z, a,-1,-1,-1); }
case 1: {CreateVehicle(504, x, y, z, a,-1,-1,-1); }
case 2: {CreateVehicle(585, x, y, z, a,-1,-1,-1); }
case 3: {CreateVehicle(466, x, y, z, a,-1,-1,-1); }
case 4: {CreateVehicle(492, x, y, z, a,-1,-1,-1); }
case 5: {CreateVehicle(546, x, y, z, a,-1,-1,-1); }
case 6: {CreateVehicle(551, x, y, z, a,-1,-1,-1); }
case 7: {CreateVehicle(516, x, y, z, a,-1,-1,-1); }
case 8: {CreateVehicle(467, x, y, z, a,-1,-1,-1); }
case 9: {ShowMenuForPlayer(ForeDoors2, playerid); }
}}
if (Current == ForeDoors2)
{
switch(row) {
case 0: {CreateVehicle(426, x, y, z, a,-1,-1,-1); }
case 1: {CreateVehicle(547, x, y, z, a,-1,-1,-1); }
case 2: {CreateVehicle(405, x, y, z, a,-1,-1,-1); }
case 3: {CreateVehicle(580, x, y, z, a,-1,-1,-1); }
case 4: {CreateVehicle(409, x, y, z, a,-1,-1,-1); }
case 5: {CreateVehicle(550, x, y, z, a,-1,-1,-1); }
case 6: {CreateVehicle(566, x, y, z, a,-1,-1,-1); }
case 7: {CreateVehicle(540, x, y, z, a,-1,-1,-1); }
case 8: {CreateVehicle(421, x, y, z, a,-1,-1,-1); }
case 9: {CreateVehicle(529, x, y, z, a,-1,-1,-1); }
}}
if (Current == RC)
{
switch(row) {
case 0: {CreateVehicle(441, x, y, z, a,-1,-1,-1); }
case 1: {CreateVehicle(464, x, y, z, a,-1,-1,-1); }
case 2: {CreateVehicle(594, x, y, z, a,-1,-1,-1); }
case 3: {CreateVehicle(501, x, y, z, a,-1,-1,-1); }
case 4: {CreateVehicle(465, x, y, z, a,-1,-1,-1); }
case 5: {CreateVehicle(564, x, y, z, a,-1,-1,-1); }
}}
if (Current == Muscle)
{
switch(row) {
case 0: {CreateVehicle(402, x, y, z, a,-1,-1,-1); }
case 1: {CreateVehicle(542, x, y, z, a,-1,-1,-1); }
case 2: {CreateVehicle(603, x, y, z, a,-1,-1,-1); }
case 3: {CreateVehicle(475, x, y, z, a,-1,-1,-1); }
}}
if (Current == Street)
{
switch(row) {
case 0: {CreateVehicle(562, x, y, z, a,-1,-1,-1); }
case 1: {CreateVehicle(565, x, y, z, a,-1,-1,-1); }
case 2: {CreateVehicle(559, x, y, z, a,-1,-1,-1); }
case 3: {CreateVehicle(560, x, y, z, a,-1,-1,-1); }
case 4: {CreateVehicle(558, x, y, z, a,-1,-1,-1); }
}}
if (Current == Lowriders)
{
switch(row) {
case 0: {CreateVehicle(536, x, y, z, a,-1,-1,-1); }
case 1: {CreateVehicle(575, x, y, z, a,-1,-1,-1); }
case 2: {CreateVehicle(534, x, y, z, a,-1,-1,-1); }
case 3: {CreateVehicle(567, x, y, z, a,-1,-1,-1); }
case 4: {CreateVehicle(535, x, y, z, a,-1,-1,-1); }
case 5: {CreateVehicle(576, x, y, z, a,-1,-1,-1); }
case 6: {CreateVehicle(412, x, y, z, a,-1,-1,-1); }
}}
if (Current == Sport)
{
switch(row) {
case 0: {CreateVehicle(429, x, y, z, a,-1,-1,-1); }
case 1: {CreateVehicle(541, x, y, z, a,-1,-1,-1); }
case 2: {CreateVehicle(415, x, y, z, a,-1,-1,-1); }
case 3: {CreateVehicle(480, x, y, z, a,-1,-1,-1); }
case 4: {CreateVehicle(587, x, y, z, a,-1,-1,-1); }
case 5: {CreateVehicle(434, x, y, z, a,-1,-1,-1); }
case 6: {CreateVehicle(494, x, y, z, a,-1,-1,-1); }
case 7: {CreateVehicle(411, x, y, z, a,-1,-1,-1); }
case 8: {CreateVehicle(506, x, y, z, a,-1,-1,-1); }
case 9: {CreateVehicle(451, x, y, z, a,-1,-1,-1); }
case 10: {CreateVehicle(477, x, y, z, a,-1,-1,-1); }
}}
if (Current == Vans)
{
switch(row) {
case 0: {CreateVehicle(422, x, y, z, a,-1,-1,-1); }
case 1: {CreateVehicle(459, x, y, z, a,-1,-1,-1); }
case 2: {CreateVehicle(482, x, y, z, a,-1,-1,-1); }
case 3: {CreateVehicle(588, x, y, z, a,-1,-1,-1); }
case 4: {CreateVehicle(423, x, y, z, a,-1,-1,-1); }
case 5: {CreateVehicle(582, x, y, z, a,-1,-1,-1); }
case 6: {CreateVehicle(413, x, y, z, a,-1,-1,-1); }
case 7: {CreateVehicle(440, x, y, z, a,-1,-1,-1); }
case 8: {CreateVehicle(543, x, y, z, a,-1,-1,-1); }
case 9: {CreateVehicle(478, x, y, z, a,-1,-1,-1); }
case 10: {CreateVehicle(554, x, y, z, a,-1,-1,-1); }
}}
if (Current == Transport)
{
switch(row) {
case 0: {CreateVehicle(485, x, y, z, a,-1,-1,-1); }
case 1: {CreateVehicle(538, x, y, z, a,-1,-1,-1); }
case 2: {CreateVehicle(431, x, y, z, a,-1,-1,-1); }
case 3: {CreateVehicle(438, x, y, z, a,-1,-1,-1); }
case 4: {CreateVehicle(437, x, y, z, a,-1,-1,-1); }
case 5: {CreateVehicle(530, x, y, z, a,-1,-1,-1); }
case 6: {CreateVehicle(537, x, y, z, a,-1,-1,-1); }
case 7: {CreateVehicle(428, x, y, z, a,-1,-1,-1); }
case 8: {CreateVehicle(420, x, y, z, a,-1,-1,-1); }
case 9: {CreateVehicle(525, x, y, z, a,-1,-1,-1); }
case 10: {CreateVehicle(583, x, y, z, a,-1,-1,-1); }
}}
if (Current == Recreation)
{
switch(row) {
case 0: {CreateVehicle(568, x, y, z, a,-1,-1,-1); }
case 1: {CreateVehicle(424, x, y, z, a,-1,-1,-1); }
case 2: {CreateVehicle(504, x, y, z, a,-1,-1,-1); }
case 3: {CreateVehicle(457, x, y, z, a,-1,-1,-1); }
case 4: {CreateVehicle(483, x, y, z, a,-1,-1,-1); }
case 5: {CreateVehicle(573, x, y, z, a,-1,-1,-1); }
case 6: {CreateVehicle(508, x, y, z, a,-1,-1,-1); }
case 7: {CreateVehicle(571, x, y, z, a,-1,-1,-1); }
case 8: {CreateVehicle(556, x, y, z, a,-1,-1,-1); }
case 9: {CreateVehicle(572, x, y, z, a,-1,-1,-1); }
case 10: {CreateVehicle(495, x, y, z, a,-1,-1,-1); }
case 11: {CreateVehicle(471, x, y, z, a,-1,-1,-1); }
}}
if (Current == Bikes)
{
switch(row) {
case 0: {CreateVehicle(509, x, y, z, a,-1,-1,-1); }
case 1: {CreateVehicle(581, x, y, z, a,-1,-1,-1); }
case 2: {CreateVehicle(481, x, y, z, a,-1,-1,-1); }
case 3: {CreateVehicle(462, x, y, z, a,-1,-1,-1); }
case 4: {CreateVehicle(521, x, y, z, a,-1,-1,-1); }
case 5: {CreateVehicle(463, x, y, z, a,-1,-1,-1); }
case 6: {CreateVehicle(510, x, y, z, a,-1,-1,-1); }
case 7: {CreateVehicle(522, x, y, z, a,-1,-1,-1); }
case 8: {CreateVehicle(461, x, y, z, a,-1,-1,-1); }
case 9: {CreateVehicle(448, x, y, z, a,-1,-1,-1); }
case 10: {CreateVehicle(468, x, y, z, a,-1,-1,-1); }
case 11: {CreateVehicle(586, x, y, z, a,-1,-1,-1); }
}}
if (Current == Boats)
{
switch(row) {
case 0: {CreateVehicle(472, x, y, z, a,-1,-1,-1); }
case 1: {CreateVehicle(473, x, y, z, a,-1,-1,-1); }
case 2: {CreateVehicle(493, x, y, z, a,-1,-1,-1); }
case 3: {CreateVehicle(595, x, y, z, a,-1,-1,-1); }
case 4: {CreateVehicle(484, x, y, z, a,-1,-1,-1); }
case 5: {CreateVehicle(430, x, y, z, a,-1,-1,-1); }
case 6: {CreateVehicle(453, x, y, z, a,-1,-1,-1); }
case 7: {CreateVehicle(452, x, y, z, a,-1,-1,-1); }
case 8: {CreateVehicle(446, x, y, z, a,-1,-1,-1); }
case 9: {CreateVehicle(454, x, y, z, a,-1,-1,-1); }
case 10: {CreateVehicle(539, x, y, z, a,-1,-1,-1); }
}}
if (Current == Work)
{
switch(row) {
case 0: {CreateVehicle(499, x, y, z, a,-1,-1,-1); }
case 1: {CreateVehicle(498, x, y, z, a,-1,-1,-1); }
case 2: {CreateVehicle(609, x, y, z, a,-1,-1,-1); }
case 3: {CreateVehicle(524, x, y, z, a,-1,-1,-1); }
case 4: {CreateVehicle(532, x, y, z, a,-1,-1,-1); }
case 5: {CreateVehicle(578, x, y, z, a,-1,-1,-1); }
case 6: {CreateVehicle(486, x, y, z, a,-1,-1,-1); }
case 7: {CreateVehicle(406, x, y, z, a,-1,-1,-1); }
case 8: {CreateVehicle(455, x, y, z, a,-1,-1,-1); }
case 9: {ShowMenuForPlayer(Work2, playerid); }
}}
if (Current == Work2)
{
switch(row) {
case 0: {CreateVehicle(403, x, y, z, a,-1,-1,-1); }
case 1: {CreateVehicle(414, x, y, z, a,-1,-1,-1); }
case 2: {CreateVehicle(443, x, y, z, a,-1,-1,-1); }
case 3: {CreateVehicle(515, x, y, z, a,-1,-1,-1); }
case 4: {CreateVehicle(574, x, y, z, a,-1,-1,-1); }
case 5: {CreateVehicle(514, x, y, z, a,-1,-1,-1); }
case 6: {CreateVehicle(531, x, y, z, a,-1,-1,-1); }
case 7: {CreateVehicle(408, x, y, z, a,-1,-1,-1); }
case 8: {CreateVehicle(552, x, y, z, a,-1,-1,-1); }
case 9: {CreateVehicle(456, x, y, z, a,-1,-1,-1); }
}}
if (Current == Planes)
{
switch(row) {
case 0: {CreateVehicle(592, x, y, z, a,-1,-1,-1); }
case 1: {CreateVehicle(577, x, y, z, a,-1,-1,-1); }
case 2: {CreateVehicle(511, x, y, z, a,-1,-1,-1); }
case 3: {CreateVehicle(548, x, y, z, a,-1,-1,-1); }
case 4: {CreateVehicle(512, x, y, z, a,-1,-1,-1); }
case 5: {CreateVehicle(593, x, y, z, a,-1,-1,-1); }
case 6: {CreateVehicle(417, x, y, z, a,-1,-1,-1); }
case 7: {CreateVehicle(487, x, y, z, a,-1,-1,-1); }
case 8: {ShowMenuForPlayer(Planes2, playerid); }
}}
if (Current == Planes2)
{
switch(row) {
case 0: {CreateVehicle(553, x, y, z, a,-1,-1,-1); }
case 1: {CreateVehicle(488, x, y, z, a,-1,-1,-1); }
case 2: {CreateVehicle(563, x, y, z, a,-1,-1,-1); }
case 3: {CreateVehicle(476, x, y, z, a,-1,-1,-1); }
case 4: {CreateVehicle(447, x, y, z, a,-1,-1,-1); }
case 5: {CreateVehicle(519, x, y, z, a,-1,-1,-1); }
case 6: {CreateVehicle(460, x, y, z, a,-1,-1,-1); }
case 7: {CreateVehicle(469, x, y, z, a,-1,-1,-1); }
case 8: {CreateVehicle(513, x, y, z, a,-1,-1,-1); }
}}
if (Current == Gouverment)
{
switch(row) {
case 0: {CreateVehicle(416, x, y, z, a,-1,-1,-1); }
case 1: {CreateVehicle(433, x, y, z, a,-1,-1,-1); }
case 2: {CreateVehicle(427, x, y, z, a,-1,-1,-1); }
case 3: {CreateVehicle(490, x, y, z, a,-1,-1,-1); }
case 4: {CreateVehicle(528, x, y, z, a,-1,-1,-1); }
case 5: {CreateVehicle(544, x, y, z, a,-1,-1,-1); }
case 6: {CreateVehicle(407, x, y, z, a,-1,-1,-1); }
case 7: {CreateVehicle(523, x, y, z, a,-1,-1,-1); }
case 8: {ShowMenuForPlayer(Gouverment2, playerid); }
}}
if (Current == Gouverment2)
{
switch(row) {
case 0: {CreateVehicle(425, x, y, z, a,-1,-1,-1); }
case 1: {CreateVehicle(520, x, y, z, a,-1,-1,-1); }
case 2: {CreateVehicle(470, x, y, z, a,-1,-1,-1); }
case 3: {CreateVehicle(596, x, y, z, a,-1,-1,-1); }
case 4: {CreateVehicle(497, x, y, z, a,-1,-1,-1); }
case 5: {CreateVehicle(599, x, y, z, a,-1,-1,-1); }
case 6: {CreateVehicle(432, x, y, z, a,-1,-1,-1); }
case 7: {CreateVehicle(601, x, y, z, a,-1,-1,-1); }
}}
if (Current == HangOn)
{
switch(row) {
case 0: {CreateVehicle(606, x, y, z, a,-1,-1,-1); }
case 1: {CreateVehicle(591, x, y, z, a,-1,-1,-1); }
case 2: {CreateVehicle(610, x, y, z, a,-1,-1,-1); }
case 3: {CreateVehicle(569, x, y, z, a,-1,-1,-1); }
case 4: {CreateVehicle(435, x, y, z, a,-1,-1,-1); }
case 5: {CreateVehicle(450, x, y, z, a,-1,-1,-1); }
case 6: {CreateVehicle(608, x, y, z, a,-1,-1,-1); }
case 7: {CreateVehicle(570, x, y, z, a,-1,-1,-1); }
case 8: {CreateVehicle(584, x, y, z, a,-1,-1,-1); }
case 9: {CreateVehicle(611, x, y, z, a,-1,-1,-1); }
}}
if (Current == Special)
{
switch(row) {
case 0: {CreateVehicle(604, x, y, z, a,-1,-1,-1); }
case 1: {CreateVehicle(605, x, y, z, a,-1,-1,-1); }
case 2: {CreateVehicle(505, x, y, z, a,-1,-1,-1); }
case 3: {CreateVehicle(449, x, y, z, a,-1,-1,-1); }
case 4: {CreateVehicle(590, x, y, z, a,-1,-1,-1); }
}}
return 1;
}
public OnPlayerExitedMenu(playerid)
{
new Menu:Current = GetPlayerMenu(playerid);
if (Current == Stationwagons || TwoDoors || TwoDoors2 || ForeDoors || ForeDoors2 || RC || Muscle || Street || Lowriders || Sport || Vans || Transport || Recreation || Bikes || Boats || Work || Work2 || Planes || Planes2 || Gouverment || Gouverment2 || HangOn || Special)
{
TogglePlayerControllable(playerid, 0);
ShowMenuForPlayer(VehliceMenu, playerid);
}
else {
TogglePlayerControllable(playerid, 0);
}
return 1;
}
public OnPlayerEnterCheckpoint(playerid)
{
if(!IsPlayerInAnyVehicle(playerid))
{
SendClientMessage(playerid, COLOR_YELLOW, "You Are Not in A Car!");
GameTextForPlayer(playerid,"~r~You Are Not in A Car!",2500,5);
}
else
{
GivePlayerMoney(playerid, 10000);
DisablePlayerCheckpoint(playerid);
SetPlayerHealth(playerid,0);
RemovePlayerFromVehicle(playerid);
GameTextForPlayer(playerid,"~g~$$$$$$$~b~10.000~g~$$$$$$$",2500,5);
}
return 1;
}
public OnPlayerDeath(playerid, killerid, reason)
{
SendDeathMessage(killerid, playerid,reason);
GameTextForPlayer(playerid,"~r~DEAD",2000,5);
new kills = PlayerInfo[playerid][pKills];
SetPlayerScore(playerid, kills);
new Float:Health;
GetPlayerHealth(playerid, Health);
if(Health == 0.0)
{
PlayerInfo[playerid][pDeaths] += 1;
}
GivePlayerMoney(killerid,2000);
PlayerInfo[killerid][pKills] = PlayerInfo[killerid][pKills] + 1;
return 1;
}
public NrgUnlock(playerid)
{
NrgLock[playerid] = 0;
}
public contimer()
{
TextDrawDestroy(Textdraw3);
TextDrawDestroy(Textdraw2);
TextDrawDestroy(Textdraw1000);
TextDrawDestroy(Textdraw000);
}
public FireUnlock(playerid)
{
FireLock[playerid] = 0;
}
public LoadUnlock(playerid)
{
LoadLock[playerid] = 0;
}
public FireS()
{
new playerid;
new Float:x, Float:y, Float:z;
GetPlayerPos(playerid, x, y, z);
CreateExplosion(x,y,z +20.00,6,300);
DestroyObject(Fire);
}
public LockRacers()
{
for(new i;i<MAX_PLAYERS;i++)
{
if(RaceParticipant[i] != 0)
{
TogglePlayerControllable(i,0);
if(IsPlayerInAnyVehicle(i)) PlayerVehicles[i]=GetPlayerVehicleID(i);
else PlayerVehicles[i]=0;
}
}
}
public UnlockRacers()
{
for(new i;i<MAX_PLAYERS;i++)
{
if(RaceParticipant[i]>0)
{
TogglePlayerControllable(i,1);
if(PlayerVehicles[i] != 0)
{
PutPlayerInVehicle(i,PlayerVehicles[i],0);
PlayerVehicles[i]=0;
}
}
}
}
public countdown() {
if(RaceStart == 0) // Locking players, setting the reward and
{
RaceStart=1;
LockRacers();
new tmpprize, OPot;
OPot=Pot;
if(PrizeMode == 1 || PrizeMode == 4)
{
if(Racemode == 0 || Racemode == 3) tmpprize = floatround(RLenght);
else if(Racemode == 1) tmpprize = floatround(LLenght * Racelaps);
else if(Racemode == 2) tmpprize = floatround(RLenght * 2 * Racelaps);
}
tmpprize *= DynaMP;
if(PrizeMode == 0 || PrizeMode == 3) Pot += Prize;
else if(PrizeMode == 1 || PrizeMode == 4) Pot += tmpprize;
if(Participants == 1) Pot=OPot; // Only 1 racer, force reward to entrance fees.
}
if(cd>0)
{
format(ystring, sizeof(ystring), "%d...",cd);
for(new i=0;i<MAX_PLAYERS;i++)
{
if(RaceParticipant[i]>1)
{
RaceSound(i,1056);
GameTextForPlayer(i,ystring,1000,3);
}
}
}
else if(cd == 0)
{
format(ystring, sizeof(ystring), "~g~GO!",cd);
KillTimer(Countdown);
for(new i=0;i<MAX_PLAYERS;i++)
{
if(RaceParticipant[i]>1)
{
RaceSound(i,1057);
GameTextForPlayer(i,ystring,3000,3);
RaceParticipant[i]=4;
CurrentLap[i]=1;
if(Racemode == 3) SetRaceCheckpoint(i,LCurrentCheckpoint,LCurrentCheckpoint-1);
else SetRaceCheckpoint(i,0,1);
}
}
UnlockRacers();
RaceTick=tickcount();
}
cd--;
}
public SetNextCheckpoint(playerid)
{
if(Racemode == 0) // Default Mode
{
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) // Ring Mode
{
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) // Yoyo-mode
{
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);
}
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]>=1) // 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.
{
new name[MAX_PLAYER_NAME], LapTime, RaceTime;
LapTime=GetLapTick(playerid);
RaceTime=GetRaceTick(playerid);
GetPlayerName(playerid, name, MAX_PLAYER_NAME);
RaceParticipant[playerid]=0;
RaceSound(playerid,1139);
format(ystring,sizeof(ystring),"%s has finished the race, position: %d",name,Ranking);
if (Ranking < 4) SendClientMessageToAll(COLOR_GREEN,ystring);
else SendClientMessage(playerid,COLOR_GREEN,ystring);
if(Racemode == ORacemode && ORacelaps == Racelaps)
{
new LapString[10],RaceString[10], laprank, racerank;
LapString=BeHuman(LapTime);
RaceString=BeHuman(RaceTime);
format(ystring,sizeof(ystring),"~w~Racetime: %s",RaceString);
if(ORacemode!=0) format(ystring,sizeof(ystring),"%s~n~Laptime: %s",ystring,LapString);
laprank=CheckBestLap(playerid,LapTime);
if(laprank == 1)
{
format(ystring,sizeof(ystring),"%s~n~~y~LAP RECORD!",ystring);
}
racerank=CheckBestRace(playerid,RaceTime);
if(racerank == 1)
{
format(ystring,sizeof(ystring),"%s~n~~y~TRACK RECORD!",ystring);
}
GameTextForPlayer(playerid,ystring,13000,3);
}
if(Ranking<4)
{
new winrar;
if(Ranking == 1 && Participants == 1) winrar=Pot; // If the player was only participant, give the whole pot.
else if(Ranking == 1 && Participants == 2) winrar=Pot/6*4; // If only 2 participants, give 4/6ths of the pot.
else winrar=Pot/6*PrizeMP; // Otherwise 3/6ths, 2/6ths and 1/6th.
GivePlayerMoney(playerid,winrar);
format(ystring,sizeof(ystring),"You have earned $%d from the race!",winrar);
PrizeMP--;
SendClientMessage(playerid,COLOR_GREEN,ystring);
}
Ranking++;
Participants--;
DisablePlayerRaceCheckpoint(playerid);
if(Participants == 0)
{
endrace();
}
}
else if (RaceStart == 0 && RaceParticipant[playerid]==1) // Player arrives to the start CP for 1st time
{
SendClientMessage(playerid,COLOR_YELLOW,"Type /ready when you are ready to start.");
SendClientMessage(playerid,COLOR_YELLOW,"NOTE: Your controls will be locked once the countdown starts.");
RaceParticipant[playerid]=2;
}
else if (RaceStart==1) // Otherwise switch to the next race CP.
{
RaceSound(playerid,1138);
SetNextCheckpoint(playerid);
}
}
return 1;
}
public endrace()
{
SaveScores(); //If the race had already started, and mode & laps are as originally, save the lapscores and racescores.
for(new i=0;i<LCurrentCheckpoint;i++)
{
RaceCheckpoints[i][0]=0.0;
RaceCheckpoints[i][1]=0.0;
RaceCheckpoints[i][2]=0.0;
}
LCurrentCheckpoint=0;
for(new i=0;i<MAX_PLAYERS;i++)
{
LastLapTick[i]=0;
DisablePlayerRaceCheckpoint(i);
if(RaceParticipant[i]==3) //Player was still /ready-locked, unlocking.
{
TogglePlayerControllable(i,1);
if(PlayerVehicles[i] != 0)
{
PutPlayerInVehicle(i,PlayerVehicles[i],0);
PlayerVehicles[i]=0;
}
}
RaceParticipant[i]=0;
}
RaceActive=0;
RaceStart=0;
Participants=0;
Pot = 0;
PrizeMP = 3;
SendClientMessageToAll(COLOR_YELLOW, "The current race has been finished.");
}
public BActiveCP(playerid,sele)
{
if(BCurrentCheckpoints[b(playerid)]-1 == sele) SetBRaceCheckpoint(playerid,sele,-1);
else SetBRaceCheckpoint(playerid,sele,sele+1);
}
public RaceSound(playerid,sound)
{
new Float:x,Float:y,Float:z;
GetPlayerPos(playerid,x,y,z);
PlayerPlaySound(playerid,sound,x,y,z);
}
public ReadyRefresh()
{
if(RaceActive==1) //No countdown if no race is active (could occur with /leave)
{
new Waiting=0, Ready=0;
for(new i=0;i<MAX_PLAYERS;i++)
{
if(RaceParticipant[i] == 1 || RaceParticipant[i] == 2) Waiting++;
else if(RaceParticipant[i] == 3) Ready++;
}
if(Waiting==0)
{
SendClientMessageToAll(COLOR_GREEN,"Everyone is ready, the race begins!");
cd=5;
Countdown = SetTimer("countdown",1000,1);
}
else if(Ready >= Waiting && MajorityDelay > 0 && MajStart == 0)
{
MajStart=1;
format(ystring,sizeof(ystring),"Half of the racers are ready, race starts in %d seconds!", MajorityDelay);
SendClientMessageToAll(COLOR_GREEN,ystring);
MajStartTimer = SetTimer("mscountdown",10000,1);
mscd= MajorityDelay;
}
}
}
public mscountdown()
{
if(RaceStart == 1 || MajStart == 0)
{
MajStart=0;
KillTimer(MajStartTimer);
}
else
{
mscd-=10;
if(mscd <= 0)
{
for(new i;i<MAX_PLAYERS;i++)
{
if(RaceParticipant[i] != 3 && RaceParticipant[i] != 0)
{
GameTextForPlayer(i,"~r~You didn't make it in time!",6000,3);
DisablePlayerRaceCheckpoint(i);
RaceParticipant[i]=0;
Participants--;
}
else if (RaceParticipant[i]!=0) SendClientMessage(i,COLOR_GREEN,"Pre-race countdown done, the race beings!");
}
KillTimer(MajStartTimer);
cd=5;
Countdown = SetTimer("countdown",1000,1);
}
else
{
new hurry_string[64];
format(ystring,sizeof(ystring),"~y~Race starting in ~w~%d~y~ seconds!",mscd);
format(hurry_string,sizeof(hurry_string),"%s~n~~r~HURRY UP AND /READY",ystring);
for(new i;i<MAX_PLAYERS;i++)
{
if(RaceParticipant[i] < 3 && mscd < 31) GameTextForPlayer(i,hurry_string,6000,3);
else if(RaceParticipant[i] > 0) GameTextForPlayer(i,ystring,6000,3);
}
}
}
}
public CheckBestLap(playerid,laptime)
{
if(TopLapTimes[4]<laptime && TopLapTimes[4] != 0 || Racemode == 0)
{
return 0; // If the laptime is more than the previous 5th on the top list, skip to end
} // Or the race is gamemode 0 where laps don't really apply
for(new i;i<5;i++)
{
if(TopLapTimes[i] == 0)
{
new playername[MAX_PLAYER_NAME];
GetPlayerName(playerid,playername,MAX_PLAYER_NAME);
TopLappers[i]=playername;
TopLapTimes[i]=laptime;
ScoreChange=1;
return i+1;
}
else if(TopLapTimes[i] > laptime)
{
for(new j=4;j>=i;j--)
{
TopLapTimes[j+1]=TopLapTimes[j];
TopLappers[j+1]=TopLappers[j];
}
new playername[MAX_PLAYER_NAME];
GetPlayerName(playerid,playername,MAX_PLAYER_NAME);
TopLapTimes[i]=laptime;
TopLappers[i]=playername;
ScoreChange=1;
return i+1;
}
}
return -1; //Shouldn't get here.
}
public CheckBestRace(playerid,racetime)
{
if(TopRacerTimes[4]<racetime && TopRacerTimes[4] != 0) return 0;
for(new i;i<5;i++)
{
if(TopRacerTimes[i] == 0)
{
new playername[MAX_PLAYER_NAME];
GetPlayerName(playerid,playername,MAX_PLAYER_NAME);
TopRacers[i]=playername;
TopRacerTimes[i]=racetime;
ScoreChange=1;
return i+1;
}
else if(TopRacerTimes[i] > racetime)
{
for(new j=4;j>=i;j--)
{
TopRacerTimes[j+1]=TopRacerTimes[j];
TopRacers[j+1]=TopRacers[j];
}
new playername[MAX_PLAYER_NAME];
GetPlayerName(playerid,playername,MAX_PLAYER_NAME);
TopRacerTimes[i]=racetime;
TopRacers[i]=playername;
ScoreChange=1;
return i+1;
}
}
return -1; //Shouldn't get here.
}
public SaveScores()
{
if(ScoreChange == 1)
{
fremove(CFile);
new File:f,Float:x,Float:y,Float:z, templine[512];
f = fopen(CFile,io_write);
format(templine,sizeof(templine),"YRACE %d %s %d %d %d %f\n", RACEFILE_VERSION, CBuilder, ORacemode, ORacelaps, OAirrace, OCPsize);
fwrite(f,templine);
format(templine,sizeof(templine),"%s %d %s %d %s %d %s %d %s %d\n",
TopRacers[0],TopRacerTimes[0],TopRacers[1], TopRacerTimes[1], TopRacers[2],TopRacerTimes[2],
TopRacers[3],TopRacerTimes[3],TopRacers[4], TopRacerTimes[4]);
fwrite(f,templine);
format(templine,sizeof(templine),"%s %d %s %d %s %d %s %d %s %d\n",
TopLappers[0],TopLapTimes[0],TopLappers[1], TopLapTimes[1], TopLappers[2],TopLapTimes[2],
TopLappers[3],TopLapTimes[3],TopLappers[4], TopLapTimes[4]);
fwrite(f,templine);
for(new i = 0; i < LCurrentCheckpoint+1;i++)
{
x=RaceCheckpoints[i][0];
y=RaceCheckpoints[i][1];
z=RaceCheckpoints[i][2];
format(templine,sizeof(templine),"%f %f %f\n",x,y,z);
fwrite(f,templine);
}
fclose(f);
}
ScoreChange=0;
}
public ChangeLap(playerid)
{
new LapTime, TimeString[10], checklap;
LapTime=GetLapTick(playerid);
TimeString=BeHuman(LapTime);
format(ystring,sizeof(ystring),"~w~Lap %d/%d - time: %s", CurrentLap[playerid], Racelaps, TimeString);
if(Racemode == ORacemode && ORacelaps == Racelaps)
{
checklap=CheckBestLap(playerid,LapTime);
if(checklap==1) format(ystring,sizeof(ystring),"%s~n~~y~LAP RECORD!",ystring);
}
CurrentLap[playerid]++;
if(CurrentLap[playerid] == Racelaps) format(ystring,sizeof(ystring),"%s~n~~g~Final lap!",ystring);
GameTextForPlayer(playerid,ystring,6000,3);
}
BeHuman(ticks)
{
new HumanTime[10], minutes, seconds, secstring[2], msecstring[3];
minutes=ticks/60000;
ticks=ticks-(minutes*60000);
seconds=ticks/1000;
ticks=ticks-(seconds*1000);
if(seconds <10) format(secstring,sizeof(secstring),"0%d",seconds);
else format(secstring,sizeof(secstring),"%d",seconds);
format(HumanTime,sizeof(HumanTime),"%d:%s",minutes,secstring);
if(ticks < 10) format(msecstring,sizeof(msecstring),"00%d", ticks);
else if(ticks < 100) format(msecstring,sizeof(msecstring),"0%d",ticks);
else format(msecstring,sizeof(msecstring),"%d",ticks);
format(HumanTime,sizeof(HumanTime),"%s.%s",HumanTime,msecstring);
return HumanTime;
}
public LoadTimes(playerid,timemode,tmp[])
{
new temprace[67], idx;
format(temprace,sizeof(temprace),"%s.yr",tmp);
if(strlen(tmp))
{
if(!fexist(temprace))
{
format(ystring,sizeof(ystring),"Race \'%s\' doesn't exist!",tmp);
SendClientMessage(playerid,COLOR_YELLOW,ystring);
return 1;
}
else
{
new File:f, templine[256], TBuilder[MAX_PLAYER_NAME], TempLapper[MAX_PLAYER_NAME], TempLap;
idx=0;
f = fopen(temprace, io_read);
fread(f,templine,sizeof(templine)); // Read header-line
if(templine[0] == 'Y') //Checking if the racefile is v0.2+
{
new fileversion;
strtok(templine,idx); // read off YRACE
fileversion = strval(strtok(templine,idx)); // read off the file version
if(fileversion > RACEFILE_VERSION) // Check if the race is made with a newer version of the racefile format
{
format(ystring,sizeof(ystring),"Race \'%s\' is created with a newer version of YRACE, unable to load.",tmp);
SendClientMessage(playerid,COLOR_RED,ystring);
return 1;
}
TBuilder=strtok(templine,idx); // read off RACEBUILDER
fread(f,templine,sizeof(templine)); // read off best race times
if(timemode ==1) fread(f,templine,sizeof(templine)); // read off best lap times
idx=0;
if(timemode == 0) format(ystring,sizeof(ystring),"%s by %s - Best race times:",tmp,TBuilder);
else if(timemode == 1) format(ystring,sizeof(ystring),"%s by %s - Best laps:",tmp,TBuilder);
else return 1;
SendClientMessage(playerid,COLOR_GREEN,ystring);
for(new i=0;i<5;i++)
{
TempLapper=strtok(templine,idx);
TempLap=strval(strtok(templine,idx));
if(TempLap == 0)
{
format(ystring,sizeof(ystring),"%d. None yet",i+1);
i=6;
}
else format(ystring,sizeof(ystring),"%d. %s - %s",i+1,BeHuman(TempLap),TempLapper);
SendClientMessage(playerid,COLOR_GREEN,ystring);
}
return 1;
}
else
{
format(ystring,sizeof(ystring),"Race \'%s\' doesn't contain any time data.",tmp);
SendClientMessage(playerid,COLOR_GREEN,ystring);
return 1;
}
}
}
return 0;
}
public IsNotAdmin(playerid)
{
if (!IsPlayerAdmin(playerid))
{
SendClientMessage(playerid, COLOR_RED, "You need to be an admin to use this command!");
return 1;
}
return 0;
}
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;
}
}
return 0;
}
public b(playerid) return RaceBuilders[playerid]-1;
public Float:Distance(Float:x1,Float:y1,Float:z1,Float:x2,Float:y2,Float:z2)
{
new Float:temp=floatsqroot((x1-x2) * (x1-x2) + (y1-y2) * (y1-y2) + (z1-z2) * (z1-z2));
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;
}
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(ystring,128,"Race \'%s\' is about to start, type /join to join!",CRaceName);
SendClientMessageToAll(COLOR_GREEN,ystring);
if(Racemode == 0) format(ystring,sizeof(ystring),"default");
else if(Racemode == 1) format(ystring,sizeof(ystring),"ring");
else if(Racemode == 2) format(ystring,sizeof(ystring),"yoyo");
else if(Racemode == 3) format(ystring,sizeof(ystring),"mirror");
format(ystring,sizeof(ystring),"Racemode: %s Laps: %d",ystring,Racelaps);
if(PrizeMode >= 2) format(ystring,sizeof(ystring),"%s Join fee: %d",ystring,JoinFee);
if(Airrace == 1) format(ystring,sizeof(ystring),"%s AIR RACE",ystring);
if(Racemode == 0 || Racemode == 3) format(ystring,sizeof(ystring),"%s Track lenght: %0.2fkm", ystring, RLenght/1000);
else if(Racemode == 1) format(ystring,sizeof(ystring),"%s Lap lenght: %.2fkm, Total: %.2fkm", ystring, LLenght/1000, LLenght * Racelaps / 1000);
SendClientMessageToAll(COLOR_GREEN,ystring);
RaceStart=0;
RaceActive=1;
ScoreChange=0;
Ranking=1;
PrizeMP=3;
}
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;
}
OAirrace = Airrace;
OCPsize = CPsize;
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));
}
}
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));
Racemode=0; ORacemode=0; Racelaps=0; ORacelaps=0; //Enables converting old files to new versions
CPsize = 8.0; Airrace = 0; // v2 additions
OCPsize = CPsize; OAirrace = Airrace; // v2 additions
CBuilder="UNKNOWN";
for(new j;j<5;j++)
{
TopLappers[j]="A"; TopLapTimes[j]=0; TopRacers[j]="A"; TopRacerTimes[j]=0;
}
}
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));
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]);
}
}
LLenght = RLenght + Distance(RaceCheckpoints[LCurrentCheckpoint][0],RaceCheckpoints[LCurrentCheckpoint][1],
RaceCheckpoints[LCurrentCheckpoint][2],RaceCheckpoints[0][0],RaceCheckpoints[0][1],
RaceCheckpoints[0][2]);
fclose(f);
return 1;
}
public RaceRotation()
{
if(!fexist("yrace.rr"))
{
printf("ERROR in YRACE's Race Rotation (yrace.rr): yrace.rr doesn't exist!");
return -1;
}
if(RRotation == -1)
{
KillTimer(RotationTimer);
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, rracenames[32][32], idx, fback;
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 startrace();
return 1;
}
#if defined MENUSYSTEM
public RefreshMenuHeader(playerid,Menu:menu,text[])
{
SetMenuColumnHeader(menu,0,text);
ShowMenuForPlayer(menu,playerid);
}
public CreateRaceMenus()
{
//Admin menu
MAdmin = CreateMenu("Admin menu", 1, 25, 170, 220, 25);
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(ystring,sizeof(ystring),"RA: ON");
else format(ystring,sizeof(ystring),"RA: off");
if(BuildAdmin == 1) format(ystring,sizeof(ystring),"%s BA: ON",ystring);
else format(ystring,sizeof(ystring),"%s BA: off",ystring);
if(RRotation >= 0) format(ystring,sizeof(ystring),"%s RR: ON",ystring);
else format(ystring,sizeof(ystring),"%s RR: off",ystring);
SetMenuColumnHeader(MAdmin,0,ystring);
//Prizemode menu [Admin submenu]
MPMode = CreateMenu("Set prizemode:", 1, 25, 170, 220, 25);
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);
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(ystring,sizeof(ystring),"Amount: %d",Prize);
SetMenuColumnHeader(MPrize,0,ystring);
//Dynamic prize menu
MDyna = CreateMenu("Dynamic Prize:", 1, 25, 170, 220, 25);
AddMenuItem(MDyna,0,"+1x");
AddMenuItem(MDyna,0,"+5x");
AddMenuItem(MDyna,0,"-1x");
AddMenuItem(MDyna,0,"-5x");
AddMenuItem(MDyna,0,"Leave");
format(ystring,sizeof(ystring),"Multiplier: %dx",DynaMP);
SetMenuColumnHeader(MDyna,0,ystring);
//Build Menu
MBuild = CreateMenu("Build Menu", 1, 25, 170, 220, 25);
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);
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);
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);
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);
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(ystring,sizeof(ystring),"Fee: %d$",JoinFee);
SetMenuColumnHeader(MFee,0,ystring);
//CP size menu
MCPsize = CreateMenu("CP size", 1, 25, 170, 220, 25);
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);
AddMenuItem(MDelay,0,"+10s");
AddMenuItem(MDelay,0,"+60s");
AddMenuItem(MDelay,0,"-10s");
AddMenuItem(MDelay,0,"-60s");
AddMenuItem(MDelay,0,"Back");
if(MajorityDelay == 0) format(ystring,sizeof(ystring),"Delay: disabled");
else format(ystring,sizeof(ystring),"Delay: %ds",MajorityDelay);
SetMenuColumnHeader(MDelay,0,ystring);
}
public OnPlayerCommandText(playerid, cmdtext[])
{
//House commands
dcmd(buy,3,cmdtext);
dcmd(sell,4,cmdtext);
dcmd(enter,5,cmdtext);
dcmd(exit,4,cmdtext);
dcmd(lock,4,cmdtext);
dcmd(unlock,6,cmdtext);
dcmd(home,4,cmdtext);
dcmd(setrent,7,cmdtext);
dcmd(rent,4,cmdtext);
dcmd(unrent,6,cmdtext);
dcmd(house,5,cmdtext);
dcmd(housestats,10,cmdtext);
dcmd(getrent,7,cmdtext);
dcmd(payrent,7,cmdtext);
dcmd(ordercar,8,cmdtext);
//Admin veh sel
if(strcmp(cmdtext, "/veh", true) == 0)
{
if(IsPlayerAdmin(playerid))
{
TogglePlayerControllable(playerid, 0);
ShowMenuForPlayer(VehliceMenu,playerid);
}
else
{
SendClientMessage(playerid, COLOR_RED,"OMG NOT ALLOWED");
}
return 1;
}
//Admin Help
if(strcmp(cmdtext, "/ah", true) == 0)
{
if(IsPlayerAdmin(playerid))
{
SendClientMessage(playerid, COLOR_RED,"*******[AdminHELP For NOOB ADMINS!!]****************");
SendClientMessage(playerid, COLOR_RED,"/veh xD");
}
else
{
SendClientMessage(playerid, COLOR_RED,"OMG NOT ALLOWED");
}
return 1;
}
//join
if (strcmp(cmdtext, "/join", true)==0)
{
if(RaceBuilders[playerid] != 0)
{
SendClientMessage(playerid, COLOR_YELLOW, "You are currently building a race, can't join. Use /clearrace to exit build mode.");
return 1;
}
if(RaceParticipant[playerid]>0)
{
SendClientMessage(playerid, COLOR_YELLOW, "You've already joined the race!");
}
else if(RaceActive==1 && RaceStart==0)
{
if(PrizeMode >= 2 && GetPlayerMoney(playerid) < JoinFee)
{
format(ystring,sizeof(ystring),"You don't have enough money to join the race! (Join fee: %d$)",JoinFee);
SendClientMessage(playerid, COLOR_YELLOW, ystring);
return 1;
}
else if (PrizeMode >= 2)
{
new tempval;
tempval=(-1)*JoinFee;
GivePlayerMoney(playerid,tempval);
Pot+=JoinFee;
}
CurrentCheckpoint[playerid]=0;
if(Racemode == 3)
{
SetRaceCheckpoint(playerid,LCurrentCheckpoint,LCurrentCheckpoint-1);
CurrentCheckpoint[playerid]=LCurrentCheckpoint;
}
else SetRaceCheckpoint(playerid,0,1);
RaceParticipant[playerid]=1;
CurrentLap[playerid]=0;
SendClientMessage(playerid, COLOR_GREEN, "You have joined the race, go to the start!");
Participants++;
}
else if(RaceActive==1 && RaceStart==1)
{
SendClientMessage(playerid, COLOR_YELLOW, "The race has already started, can't join.");
}
else
{
SendClientMessage(playerid, COLOR_YELLOW, "There is no race you can join.");
}
return 1;
}
//Ready
if (strcmp(cmdtext, "/Ready", true)==0)
{
new PState=GetPlayerState(playerid);
if(RaceParticipant[playerid]==2 && PState != PLAYER_STATE_PASSENGER)
{
SendClientMessage(playerid,COLOR_GREEN,"You are now ready. Type /ready again to cancel.");
RaceParticipant[playerid]=3;
ReadyRefresh();
}
else if (RaceParticipant[playerid]==3 && RaceStart==0)
{
SendClientMessage(playerid,COLOR_YELLOW,"You are now not ready. Type /ready when you are.");
RaceParticipant[playerid]=2;
}
else if (PState == PLAYER_STATE_PASSENGER) SendClientMessage(playerid,COLOR_YELLOW,"You need to be driving for yourself!");
else if(RaceParticipant[playerid] == 1) SendClientMessage(playerid,COLOR_YELLOW,"You must have visited the starting CP to /ready.");
else SendClientMessage(playerid,COLOR_YELLOW,"You have not participated in a race.");
return 1;
}
//car locking code
if (strcmp(cmdtext, "/lock", true)==0)
{
if(IsPlayerInAnyVehicle(playerid))
{
new State=GetPlayerState(playerid);
if(State!=PLAYER_STATE_DRIVER)
{
SendClientMessage(playerid,0xFFFF00AA,"You can only lock the doors as the driver.");
return 1;
}
new i;
for(i=0;i<MAX_PLAYERS;i++)
{
if(i != playerid)
{
SetVehicleParamsForPlayer(GetPlayerVehicleID(playerid),i, 0, 1);
}
}
SendClientMessage(playerid, 0xFFFF00AA, "Vehicle locked!");
new Float:pX, Float:pY, Float:pZ;
GetPlayerPos(playerid,pX,pY,pZ);
PlayerPlaySound(playerid,1056,pX,pY,pZ);
}
else
{
SendClientMessage(playerid, 0xFFFF00AA, "You're not in a vehicle!");
}
return 1;
}
if (strcmp(cmdtext, "/unlock", true)==0)
{
if(IsPlayerInAnyVehicle(playerid))
{
new State=GetPlayerState(playerid);
if(State!=PLAYER_STATE_DRIVER)
{
SendClientMessage(playerid,0xFFFF00AA,"You can only unlock the doors as the driver.");
return 1;
}
new i;
for(i=0;i<MAX_PLAYERS;i++)
{
SetVehicleParamsForPlayer(GetPlayerVehicleID(playerid),i, 0, 0);
}
SendClientMessage(playerid, 0xFFFF00AA, "Vehicle unlocked!");
new Float:pX, Float:pY, Float:pZ;
GetPlayerPos(playerid,pX,pY,pZ);
PlayerPlaySound(playerid,1057,pX,pY,pZ);
}
else
{
SendClientMessage(playerid, 0xFFFF00AA, "You're not in a vehicle!");
}
return 1;
}
//FireWorks
if (strcmp(cmdtext, "/fire", true)==0)
{
if(FireLock[playerid] == 0)
{
SendClientMessage(playerid, COLOR_YELLOW, "FireWork Was Succful Shooted");
GameTextForPlayer(playerid,"~r~FireWork ~y~Was ~g~Succful Shooted",2500,5);
new Float:X;
new Float:Y;
new Float:Z;
GetPlayerPos(playerid, X, Y, Z);
MoveObject(Fire, X,Y,Z+50.00,7.0);
SetTimer("FireS", 4000,0);
FireLock[playerid] = 1;
SetTimerEx("FireUnlock", 120000, 0, "i", playerid);
}
else if(FireLock[playerid] == 1)
SendClientMessage(playerid, COLOR_RED, "Omg U Can ONLY Shoot FireWorks every 2MIN!");
{
return 1;
}
}
//LoadFire
if (strcmp(cmdtext, "/load", true)==0)
{
if(LoadLock[playerid] == 0)
{
SendClientMessage(playerid, COLOR_YELLOW, "FireWork Was Succful Placed");
GameTextForPlayer(playerid,"~r~FireWork ~y~Was ~g~Succful Placed",2500,5);
new Float:X;
new Float:Y;
new Float:Z;
GetPlayerPos(playerid, X, Y, Z);
Fire = CreateObject(3786, X,Y,Z,0,0,0);
LoadLock[playerid] = 1;
SetTimerEx("LoadUnlock", 120000, 0, "i", playerid);
}
else if(LoadLock[playerid] == 1)
SendClientMessage(playerid, COLOR_RED, "Omg U Can ONLY Load FireWorks every 2MIN!");
{
return 1;
}
}
//Nrg
if(strcmp(cmdtext, "/nrg", true)==0)
{
if(NrgLock[playerid] == 0)
{
SendClientMessage(playerid, COLOR_YELLOW, "Nrg Spawned Sueccful You Can Only Spawn 1 Nrg Every 2 min");
GameTextForPlayer(playerid,"~r~Nrg-500 ~y~Spawned ~g~Sueccful",2500,5);
new Float:X,Float:Y,Float:Z;
GetPlayerPos(playerid, X,Y,Z);
CreateVehicle(522, X,Y,Z,0,-1,-1,-1);
new tmpcar = GetPlayerVehicleID(playerid);
SetVehiclePos(tmpcar, X,Y,Z);
NrgLock[playerid] = 1;
SetTimerEx("NrgUnlock", 120000, 0, "i", playerid);
}
else if(NrgLock[playerid] == 1)
SendClientMessage(playerid, COLOR_RED, "Omg U Can ONLY Spawn 1 Nrg every 2MIN!");
{
return 1;
}
}
//Stop mission
if (strcmp(cmdtext, "/stop", true)==0)
{
DisablePlayerCheckpoint(playerid);
SendClientMessage(playerid, COLOR_YELLOW, "Mission Stopped Sueccful");
GameTextForPlayer(playerid,"~r~Mission ~y~Stopped ~g~Sueccful",2500,5);
}
if(!strcmp(cmdtext, "/me", true, 3))
{
if(cmdtext[3] == 0) {
SendClientMessage(playerid, 0xFF0000FF, "USAGE: /me [action]");
return 1;
}
new str[128];
GetPlayerName(playerid, str, sizeof(str));
format(str, sizeof(str), "* %s %s", str, cmdtext[4]);
SendClientMessageToAll(0x9932CCFF, str);
return 1;
}
if (strcmp(cmdtext, "/count", true)==0)
{
if(Count >= 5)
{
CountDown();
return 1;
}
else
{
SendClientMessage(playerid, 0xFFFF00AA, "An countdown is already running! Wait untill its over first!!");
return 1;
}
}
if (strcmp(cmdtext, "/flip", true)==0)
{
new VehicleID, Float:X, Float:Y, Float:Z;
GetPlayerPos(playerid, X, Y, Z);
VehicleID = GetPlayerVehicleID(playerid);
SetVehiclePos(VehicleID, X, Y, Z);
SetVehicleZAngle(VehicleID, 0);
return 1;
}
if(strcmp(cmdtext, "/kill", true) == 0)
{
SetPlayerHealth(playerid,0);
return 1;
}
if(strcmp(cmdtext, "/fix", true) == 0)
{
SetVehicleHealth(playerid,1000);
return 1;
}
//Commands
if(strcmp(cmdtext, "/commands", true) == 0) {
SendClientMessage(playerid, COLOR_GREEN, "*********[Commands]***********");
SendClientMessage(playerid, COLOR_GREEN, "/count /Me <text> /flip /credits /tph /kill /stop /mhelp /Stats /ah (admin)");
SendClientMessage(playerid, COLOR_GREEN, "/nrg /loadw (loads fire work on 5 StaR! Roof /firew (To shoot Fire Work) /loadb(cannon),/fireb");
return 1;
}
//Help
if(strcmp(cmdtext, "/help", true) == 0) {
SendClientMessage(playerid, COLOR_GREEN, "*********[Help]***********");
SendClientMessage(playerid, COLOR_GREEN, "/Commands For Commands");
SendClientMessage(playerid, COLOR_GREEN, "/credits For Credits");
SendClientMessage(playerid, COLOR_GREEN, "/tph For Tp Commands");
return 1;
}
//Credits
if(strcmp(cmdtext, "/credits", true) == 0) {
SendClientMessage(playerid, COLOR_GREEN, "*********[CREDITS]***********");
SendClientMessage(playerid, COLOR_GREEN, "*******Made By: Splitx*******");
SendClientMessage(playerid, COLOR_GREEN, "*******Drift/Race/Tune/Stunt*******");
SendClientMessage(playerid, COLOR_GREEN, "*Thx To: Kevin433 For Login/Register System / And Yagu for The Race FS*");
SendClientMessage(playerid, COLOR_GREEN, "*Thx To Every 1 That Helped Me out!*");
SendClientMessage(playerid, COLOR_GREEN, "********************************");
return 1;
}
if(strcmp(cmdtext, "/tph", true) == 0) {
SendClientMessage(playerid, COLOR_GREEN, "*********[TelePortHelp]***********");
SendClientMessage(playerid, COLOR_GREEN, "/race For Race Tp /Bigj For Big Jump");
SendClientMessage(playerid, COLOR_GREEN, "/race2 For Race Tp /jum For Jump!");
SendClientMessage(playerid, COLOR_GREEN, "/drift for drift tp");
SendClientMessage(playerid, COLOR_GREEN, "/drift2 for drift tp");
SendClientMessage(playerid, COLOR_GREEN, "/drift3 for drift tp");
SendClientMessage(playerid, COLOR_GREEN, "/drift4 for drift tp");
SendClientMessage(playerid, COLOR_GREEN, "/tune For Spawn at all cars");
SendClientMessage(playerid, COLOR_GREEN, "/tunels = Trans frender");
SendClientMessage(playerid, COLOR_GREEN, "/tunesf = Wheel Arch Angels");
SendClientMessage(playerid, COLOR_GREEN, "/stunt For Stunt Zone");
SendClientMessage(playerid, COLOR_GREEN, "********************************");
return 1;
}
if(strcmp(cmdtext, "/mhelp", true) == 0) {
SendClientMessage(playerid, COLOR_GREEN, "*********[MiSSioN-HeLp]***********");
SendClientMessage(playerid, COLOR_GREEN, "Every Payday A mission will come! go to The Red marKer *IN* A Car To sell it And u will Get 10.000");
SendClientMessage(playerid, COLOR_GREEN, "To Stip The Mission Type /stop");
SendClientMessage(playerid, COLOR_GREEN, "********************************");
return 1;
}
//Drift
if(!strcmp(cmdtext,"/drift",true))
{
if (GetPlayerState(playerid) == 2)
{
new tmpcar = GetPlayerVehicleID(playerid);
SetVehiclePos(tmpcar, 1253.2285,-2037.4835,59.2695);
}
else
{
SetPlayerPos(playerid, 1253.2285,-2037.4835,59.2695);
}
return 1;
}
//Drift2
if(!strcmp(cmdtext,"/drift2",true))
{
if (GetPlayerState(playerid) == 2)
{
new tmpcar = GetPlayerVehicleID(playerid);
SetVehiclePos(tmpcar, 2274.8635,1389.8893,42.4733);
}
else
{
SetPlayerPos(playerid, 2274.8635,1389.8893,42.4733);
}
return 1;
}
//DRift3
if(!strcmp(cmdtext,"/drift3",true))
{
if (GetPlayerState(playerid) == 2)
{
new tmpcar = GetPlayerVehicleID(playerid);
SetVehiclePos(tmpcar, -2411.0278,-607.6990,132.6415);
}
else
{
SetPlayerPos(playerid, -2411.0278,-607.6990,132.6415);
}
return 1;
}
//Drift4
if(!strcmp(cmdtext,"/drift4",true))
{
if (GetPlayerState(playerid) == 2)
{
new tmpcar = GetPlayerVehicleID(playerid);
SetVehiclePos(tmpcar, -346.4654,1524.0566,75.3473);
}
else
{
SetPlayerPos(playerid, -346.4654,1524.0566,75.3473);
}
return 1;
}
//Tune
if(!strcmp(cmdtext,"/tune",true))
{
if (GetPlayerState(playerid) == 2)
{
new tmpcar = GetPlayerVehicleID(playerid);
SetVehiclePos(tmpcar, -2667.7813,223.1301,3.8615);
}
else
{
SetPlayerPos(playerid, -2667.7813,223.1301,3.8615);
}
return 1;
}
//Tunels
if(!strcmp(cmdtext,"/tunels",true))
{
if (GetPlayerState(playerid) == 2)
{
new tmpcar = GetPlayerVehicleID(playerid);
SetVehiclePos(tmpcar, 1039.0768,-1037.3727,31.7109);
}
else
{
SetPlayerPos(playerid, 1039.0768,-1037.3727,31.7109);
}
return 1;
}
//Tunesf
if(!strcmp(cmdtext,"/tunesf",true))
{
if (GetPlayerState(playerid) == 2)
{
new tmpcar = GetPlayerVehicleID(playerid);
SetVehiclePos(tmpcar, -2702.9797,215.2987,4.1797);
}
else
{
SetPlayerPos(playerid, -2702.9797,215.2987,4.1797);
}
return 1;
}
//Rece
if(!strcmp(cmdtext,"/race",true))
{
if (GetPlayerState(playerid) == 2)
{
new tmpcar = GetPlayerVehicleID(playerid);
SetVehiclePos(tmpcar, 1396.1069,-2509.1196,13.5547);
}
else
{
SetPlayerPos(playerid, 1396.1069,-2509.1196,13.5547);
}
return 1;
}
//Race2
if(!strcmp(cmdtext,"/race2",true))
{
if (GetPlayerState(playerid) == 2)
{
new tmpcar = GetPlayerVehicleID(playerid);
SetVehiclePos(tmpcar, 451.4817,2507.4277,19.4912);
}
else
{
SetPlayerPos(playerid, 451.4817,2507.4277,19.4912);
}
return 1;
}
//Stunt
if(!strcmp(cmdtext,"/stunt",true))
{
if (GetPlayerState(playerid) == 2)
{
new tmpcar = GetPlayerVehicleID(playerid);
SetVehiclePos(tmpcar, 1698.6154,1608.4980,10.7019);
}
else
{
SetPlayerPos(playerid, 1698.6154,1608.4980,10.7019);
}
return 1;
}
//Big jump
if(!strcmp(cmdtext,"/bigj",true))
{
if (GetPlayerState(playerid) == 2)
{
new tmpcar = GetPlayerVehicleID(playerid);
SetVehiclePos(tmpcar, 2602.7456,-1047.9460,172.5956);
}
else
{
SetPlayerPos(playerid, 2602.7456,-1047.9460,172.5956);
}
return 1;
}
//Jump
if(!strcmp(cmdtext,"/Jum",true))
{
if (GetPlayerState(playerid) == 2)
{
new tmpcar = GetPlayerVehicleID(playerid);
SetVehiclePos(tmpcar, 2249.0579,-184.9091,1.3464);
}
else
{
SetPlayerPos(playerid, 2249.0579,-184.9091,1.3464);
}
return 1;
}
//login
new cmd[256];
new idx;
cmd = strtok(cmdtext, idx);
new tmp[256];
new playername[MAX_PLAYER_NAME];
if (strcmp(cmd, "/login", true) ==0 )
{
if(IsPlayerConnected(playerid))
{
new tmppass[64];
if(gPlayerLogged[playerid] == 1)
{
SendClientMessage(playerid, COLOR_GREY, " You are already logged in.");
return 1;
}
tmp = strtok(cmdtext, idx);
if(!strlen(tmp))
{
SendClientMessage(playerid, COLOR_GREY, " USAGE: /login [password]");
return 1;
}
strmid(tmppass, tmp, 0, strlen(cmdtext), 255);
Encrypt(tmppass);
OnPlayerLogin(playerid,tmppass);
}
return 1;
}
if (strcmp(cmd, "/register", true)==0)
{
new string[265];
tmp = strtok(cmdtext, idx);
if(!strlen(tmp))
{
SendClientMessage(playerid, COLOR_GREY, "USAGE: /register [password]");
return 1;
}
if (gPlayerAccount[playerid] == 1)
{
SendClientMessage(playerid, COLOR_GREY, " That name is already registered");
return 1;
}
strmid(PlayerInfo[playerid][pPassword], tmp, 0, strlen(cmdtext), 255);
Encrypt(PlayerInfo[playerid][pPassword]);
GetPlayerName(playerid, playername, sizeof(playername));
format(string, sizeof(string), "%s.cer", playername);
new File: file = fopen(string, io_read);
if (file)
{
SendClientMessage(playerid, COLOR_GREY, " That name is already registered");
fclose(file);
return 1;
}
new File:hFile;
hFile = fopen(string, io_append);
new var[32];//
format(var, 32, "%s\n", PlayerInfo[playerid][pPassword]);fwrite(hFile, var);
format(var, 32, "Kills=%d\n",PlayerInfo[playerid][pKills]);fwrite(hFile, var);
format(var, 32, "Deaths=%d\n",PlayerInfo[playerid][pDeaths]);fwrite(hFile, var);
PlayerInfo[playerid][pCash] = GetPlayerMoney(playerid);
format(var, 32, "Money=%d\n",PlayerInfo[playerid][pCash]);fwrite(hFile, var);
fclose(hFile);
SendClientMessage(playerid, COLOR_WHITE, "Succesfully Registered!");
SendClientMessage(playerid, COLOR_WHITE, "Next time you connect, type /login <password> to log in.");
OnPlayerLogin(playerid,PlayerInfo[playerid][pPassword]);
return 1;
}
if (strcmp(cmd, "/stats", true) == 0)
{
if(IsPlayerConnected(playerid))
{
if (gPlayerLogged[playerid] != 0)
{
ShowStats(playerid,playerid);
}
else
{
SendClientMessage(playerid, COLOR_GRAD1, " You are not Logged in !");
}
}
return 1;
}
return 0;
}
dcmd_sell(playerid,params[])
{
#pragma unused params
new timestamp = GetTickCount();
if(timestamp - inhousepickup > 5000)
{
SendClientMessage(playerid, c_r, "You are not in a house icon!");
return 1;
}
new str[255],str1[256],pname[24];
GetPlayerName(playerid, pname, 24);
format(str1, sizeof(str1), "Houses/houseid%d", playericonhouse[playerid]);
if (strcmp(hInfo[playericonhouse[playerid]][Name],pname,false)) return SendClientMessage(playerid, c_r, "This house isn't yours!");
SendClientMessage(playerid, c_y, "You have sold your house!");
format(str, sizeof(str), "%s has sold houseid 0",pname);
print(str);
GivePlayerMoney(playerid, hInfo[playericonhouse[playerid]][Sell]);
dini_Set(str1, "Name", "ForSale");
hInfo[playericonhouse[playerid]][Locked] = dini_IntSet(str1,"Locked",1);
format(hInfo[playericonhouse[playerid]][Name],255,"ForSale");
format(str1, sizeof(str1), "Houses/Users/%s", udb_encode(pname));
if (!dini_Exists(str1)) dini_Create(str1);
dini_IntSet(str1, "Houseid", -255);
DestroyPickup(HousePickup[playericonhouse[playerid]]);
HousePickup[playericonhouse[playerid]] = CreatePickup(1273, 23, hInfo[playericonhouse[playerid]][iconx], hInfo[playericonhouse[playerid]][icony], hInfo[playericonhouse[playerid]][iconz]);
RemovePlayerMapIcon(playerid, housemapicon[playerid]);
return 1;
}
dcmd_buy(playerid,params[])
{
#pragma unused params
new timestamp = GetTickCount();
if(timestamp - inhousepickup > 5000)
{
SendClientMessage(playerid, c_r, "You are not in a house icon!");
return 1;
}
new str[255],str1[255],pname[24];
GetPlayerName(playerid, pname, 24);
format(str1, sizeof(str1), "Houses/Users/%s", udb_encode(pname));
if(dini_Exists(str1))
{
if (dini_Int(str1, "Houseid")!=-255) return SendClientMessage(playerid, c_r, "You can only buy one house!");
}
format(str1, sizeof(str1), "Houses/houseid%d", playericonhouse[playerid]);
if (strcmp(hInfo[playericonhouse[playerid]][Name],"ForSale",true)) return SendClientMessage(playerid, c_r, "This house isn't for sale!");
if(GetPlayerMoney(playerid)<hInfo[playericonhouse[playerid]][Cost]) return SendClientMessage(playerid, c_r, "Not enough money!");
SendClientMessage(playerid, c_y, "You have bought the house!");
format(str, sizeof(str), "%s has bought houseid 0",pname);
print(str);
GivePlayerMoney(playerid, -hInfo[playericonhouse[playerid]][Cost]);
dini_Set(str1, "Name", pname);
hInfo[playericonhouse[playerid]][Name]=pname;
hInfo[playericonhouse[playerid]][Locked] = dini_IntSet(str1,"Locked",0);
format(str1, sizeof(str1), "Houses/Users/%s", udb_encode(pname));
if (!dini_Exists(str1)) dini_Create(str1);
new Float:sy, Float:sx, Float:sz;
dini_IntSet(str1, "Houseid", playericonhouse[playerid]);
if(!dini_Isset(str1,"Rentid"))
{
dini_IntSet(str1, "Rentid", -255);
}
GetPlayerPos(playerid, sx,sy,sz);
dini_FloatSet(str1, "SpawnX", sx);
dini_FloatSet(str1, "SpawnY", sy);
dini_FloatSet(str1, "SpawnZ", sz);
dini_IntSet(str1, "SpawnInt", GetPlayerInterior(playerid));
DestroyPickup(HousePickup[playericonhouse[playerid]]);
HousePickup[playericonhouse[playerid]] = CreatePickup(1272, 23, hInfo[playericonhouse[playerid]][iconx], hInfo[playericonhouse[playerid]][icony], hInfo[playericonhouse[playerid]][iconz]);
return 1;
}
dcmd_lock(playerid,params[])
{
#pragma unused params
new timestamp = GetTickCount();
if(timestamp - inhousepickup > 5000)
{
SendClientMessage(playerid, c_r, "You are not in a house icon!");
return 1;
}
new str1[256],pname[24];
GetPlayerName(playerid, pname, 24);
format(str1, sizeof(str1), "Houses/houseid%d", playericonhouse[playerid]);
if(strcmp(hInfo[playericonhouse[playerid]][Name],pname,true)==0)
{
SendClientMessage(playerid, c_y, "You have locked your house!");
dini_IntSet(str1,"Locked",1);
hInfo[playericonhouse[playerid]][Locked] = 1;
}
else if(strcmp(hInfo[playericonhouse[playerid]][Renter],pname,true)==0)
{
SendClientMessage(playerid, c_y, "You have locked your house!");
dini_IntSet(str1,"Locked",1);
hInfo[playericonhouse[playerid]][Locked] = 1;
}
else
{
SendClientMessage(playerid, c_r, "This house isn't yours!");
}
return 1;
}
dcmd_unlock(playerid,params[])
{
#pragma unused params
new timestamp = GetTickCount();
if(timestamp - inhousepickup > 5000)
{
SendClientMessage(playerid, c_r, "You are not in a house icon!");
return 1;
}
new str1[256],pname[24];
GetPlayerName(playerid, pname, 24);
format(str1, sizeof(str1), "Houses/houseid%d", playericonhouse[playerid]);
if(strcmp(hInfo[playericonhouse[playerid]][Name],pname,true)==0)
{
SendClientMessage(playerid, c_y, "You have unlocked your house!");
dini_IntSet(str1,"Locked",0);
hInfo[playericonhouse[playerid]][Locked] = 0;
}
else if(strcmp(hInfo[playericonhouse[playerid]][Renter],pname,true)==0)
{
SendClientMessage(playerid, c_y, "You have unlocked your house!");
dini_IntSet(str1,"Locked",0);
hInfo[playericonhouse[playerid]][Locked] = 0;
}
else
{
SendClientMessage(playerid, c_r, "This house isn't yours!");
}
return 1;
}
dcmd_enter(playerid,params[])
{
#pragma unused params
new timestamp = GetTickCount();
if(timestamp - inhousepickup > 5000)
{
SendClientMessage(playerid, c_r, "You are not in a house icon!");
return 1;
}
new str1[255],pname[24];
GetPlayerPos(playerid, housex, housey, housez);
format(str1, sizeof(str1), "Houses/houseid%d", playericonhouse[playerid]);
GetPlayerName(playerid, pname, 24);
if(hInfo[playericonhouse[playerid]][Locked]==1) return SendClientMessage(playerid, c_r, "This house is locked!");
SendClientMessage(playerid, c_y, "You entered the house!");
SetPlayerInterior(playerid, hInfo[playericonhouse[playerid]][Interior]);
SetPlayerPos(playerid, hInfo[playericonhouse[playerid]][InteriorX], hInfo[playericonhouse[playerid]][InteriorY], hInfo[playericonhouse[playerid]][InteriorZ]);
playerinterior[playerid] = hInfo[playericonhouse[playerid]][Interior];
return 1;
}
dcmd_exit(playerid,params[])
{
#pragma unused params
if(GetPlayerInterior(playerid)==playerinterior[playerid])
{
SetPlayerPos(playerid, housex, housey, housez);
SetPlayerInterior(playerid, 0);
}
else
{
SendClientMessage(playerid, c_r, "You have not entered a house!");
}
return 1;
}
dcmd_home(playerid,params[])
{
#pragma unused params
new str1[256],pname[24];
GetPlayerName(playerid, pname, 24);
format(str1, sizeof(str1), "Houses/Users/%s", udb_encode(pname));
if(!dini_Exists(str1)) return SendClientMessage(playerid, c_r, "You don't own a house!");
if(dini_Int(str1, "Houseid")!=-255)
{
housemapicon[playerid] = SetPlayerMapIcon(playerid,31,hInfo[dini_Int(str1, "Houseid")][iconx], hInfo[dini_Int(str1, "Houseid")][icony], hInfo[dini_Int(str1, "Houseid")][iconz],31,c_y);
}
else if (dini_Int(str1, "Rentid")!=-255)
{
housemapicon[playerid] = SetPlayerMapIcon(playerid,31,hInfo[dini_Int(str1, "Rentid")][iconx], hInfo[dini_Int(str1, "Rentid")][icony], hInfo[dini_Int(str1, "Rentid")][iconz],31,c_y);
}
else
{
SendClientMessage(playerid, c_r, "You don't own a house!");
}
return 1;
}
dcmd_setrent(playerid,params[])
{
new timestamp = GetTickCount();
if(timestamp - inhousepickup > 5000)
{
SendClientMessage(playerid, c_r, "You are not in a house icon!");
return 1;
}
new str[255],str1[256],pname[24];
GetPlayerName(playerid, pname, 24);
format(str1, sizeof(str1), "Houses/houseid%d", playericonhouse[playerid]);
str = dini_Get(str1,"Name");
if (strcmp(str,pname,true)) return SendClientMessage(playerid, c_r, "This house isn't yours!");
new rentcost, rentable;
if (sscanf(params, "dd", rentable, rentcost)) return SendClientMessage(playerid, c_r, "USAGE: /setrent [0/1] [Rentcost]");
else if (rentcost<MIN_RENTCOST)
{
format(str, sizeof(str), "The minimum rentcost is $%i.", MIN_RENTCOST);
SendClientMessage(playerid, c_r, str);
return 1;
}
else if (rentcost>MAX_RENTCOST)
{
format(str, sizeof(str), "The maximum rentcost is $%i.", MAX_RENTCOST);
SendClientMessage(playerid, c_r, str);
return 1;
}
else if(rentable==1)
{
SendClientMessage(playerid, c_y, "Your house is now rentable!");
hInfo[playericonhouse[playerid]][Rentable] = 1;
dini_IntSet(str1, "Rentable", 1);
hInfo[playericonhouse[playerid]][Rentcost] = rentcost;
dini_IntSet(str1, "Rentcost", rentcost);
return 1;
}
else if(rentable==0)
{
SendClientMessage(playerid, c_y, "Your house is now not rentable!");
hInfo[playericonhouse[playerid]][Rentable] = 0;
dini_IntSet(str1, "Rentable", 0);
hInfo[playericonhouse[playerid]][Rentcost] = rentcost;
dini_IntSet(str1, "Rentcost", rentcost);
return 1;
}
return 1;
}
dcmd_rent(playerid,params[])
{
#pragma unused params
new timestamp = GetTickCount();
if(timestamp - inhousepickup > 5000)
{
SendClientMessage(playerid, c_r, "You are not in a house icon!");
return 1;
}
new str[255],str1[256],str5[255],pname[24];
GetPlayerName(playerid, pname, 24);
format(str1, sizeof(str1), "Houses/houseid%d", playericonhouse[playerid]);
format(str5, sizeof(str5), "Houses/Users/%s", udb_encode(pname));
if(dini_Isset(str5, "Rentid"))
{
if (dini_Int(str5, "Rentid")!=-255) return SendClientMessage(playerid, c_r, "You can only rent one house at a time!");
}
str = dini_Get(str1,"Name");
if (strcmp(str,"ForSale",true)==0) return SendClientMessage(playerid, c_r, "This house has no owner!");
if(hInfo[playericonhouse[playerid]][Rentable]==0 || strcmp(hInfo[playericonhouse[playerid]][Renter], "ForRent", true)==0) return SendClientMessage(playerid, c_r, "This house is not rentable!");
if(GetPlayerMoney(playerid)<hInfo[playericonhouse[playerid]][Rentcost]) return SendClientMessage(playerid, c_r, "Not enough money!");
dini_Set(str1, "Renter", udb_encode(pname));
format(hInfo[playericonhouse[playerid]][Renter], 24, udb_encode(pname));
dini_IntSet(str5, "Rentid", playericonhouse[playerid]);
format(str1, sizeof(str1), "You have rented this house, it will cost you $%i an hour!", hInfo[playericonhouse[playerid]][Rentcost]);
SendClientMessage(playerid, c_y, str1);
return 1;
}
dcmd_unrent(playerid,params[])
{
#pragma unused params
new timestamp = GetTickCount();
if(timestamp - inhousepickup > 5000)
{
SendClientMessage(playerid, c_r, "You are not in a house icon!");
return 1;
}
new str1[256],pname[24];
GetPlayerName(playerid, pname, 24);
format(str1, sizeof(str1), "Houses/houseid%d", playericonhouse[playerid]);
if(strcmp(hInfo[playericonhouse[playerid]][Renter], pname, true)) return SendClientMessage(playerid, c_r, "You aren't renting this house!");
dini_Set(str1, "Renter", "ForRent");
format(hInfo[playericonhouse[playerid]][Renter], 24, "ForRent");
format(str1, sizeof(str1), "Houses/Users/%s", udb_encode(pname));
dini_IntSet(str1, "Rentid", -255);
SendClientMessage(playerid, c_y, "You have unrented this house!");
return 1;
}
dcmd_house(playerid,params[])
{
#pragma unused params
SendClientMessage(playerid, c_y, "-------------");
SendClientMessage(playerid, c_y, "House options");
SendClientMessage(playerid, c_y, "-------------");
SendClientMessage(playerid, c_y, "/setrent [0/1] [Cost] - House owner");
SendClientMessage(playerid, c_y, "/ordercar [CarName] - House owner");
SendClientMessage(playerid, c_y, "/getrent - House owner");
SendClientMessage(playerid, c_y, "/lock - Renter/Owner");
SendClientMessage(playerid, c_y, "/unlock - Renter/Owner");
SendClientMessage(playerid, c_y, "/payrent - Renter");
SendClientMessage(playerid, c_y, "/unrent - Renter");
SendClientMessage(playerid, c_y, "/rent - Guest");
SendClientMessage(playerid, c_y, "-------------");
return 1;
}
dcmd_housestats(playerid,params[])
{
#pragma unused params
new timestamp = GetTickCount();
if(timestamp - inhousepickup > 5000)
{
SendClientMessage(playerid, c_r, "You are not in a house icon!");
return 1;
}
new str[256];
format(str, sizeof(str), "Owner: %s", hInfo[playericonhouse[playerid]][Name]);
SendClientMessage(playerid, c_y, str);
format(str, sizeof(str), "Cost: $%d", hInfo[playericonhouse[playerid]][Cost]);
SendClientMessage(playerid, c_y, str);
format(str, sizeof(str), "Renter: %s", hInfo[playericonhouse[playerid]][Renter]);
SendClientMessage(playerid, c_y, str);
format(str, sizeof(str), "Rentcost: $%d / hour", hInfo[playericonhouse[playerid]][Rentcost]);
SendClientMessage(playerid, c_y, str);
return 1;
}
dcmd_getrent(playerid,params[])
{
#pragma unused params
new timestamp = GetTickCount();
if(timestamp - inhousepickup > 5000)
{
SendClientMessage(playerid, c_r, "You are not in a house icon!");
return 1;
}
new pname[24];
GetPlayerName(playerid, pname, 24);
if(strcmp(hInfo[playericonhouse[playerid]][Name],pname,true)==0)
{
new str[255];
SendClientMessage(playerid, c_y, "You collected the money of the renter!");
format(str, sizeof(str), "Houses/houseid%d", playericonhouse[playerid]);
GivePlayerMoney(playerid, dini_Int(str, "RentGet"));
dini_IntSet(str, "RentGet", 0);
}
else
{
SendClientMessage(playerid, c_r, "This house isn't yours!");
}
return 1;
}
dcmd_payrent(playerid,params[])
{
#pragma unused params
new timestamp = GetTickCount();
if(timestamp - inhousepickup > 5000)
{
SendClientMessage(playerid, c_r, "You are not in a house icon!");
return 1;
}
new pname[24];
GetPlayerName(playerid, pname, 24);
if(strcmp(hInfo[playericonhouse[playerid]][Renter],pname,true)==0)
{
new str[255];
format(str, sizeof(str), "Houses/houseid%d", playericonhouse[playerid]);
if(GetPlayerMoney(playerid)<dini_Int(str, "RentPay")) return SendClientMessage(playerid, c_r, "You don't have enough money to pay the house owner!");
SendClientMessage(playerid, c_y, "You have payed the money to the owner!");
GivePlayerMoney(playerid, -dini_Int(str, "RentPay"));
dini_IntSet(str, "RentPay", 0);
}
else
{
SendClientMessage(playerid, c_r, "You aren't renting this house!");
}
return 1;
}
dcmd_ordercar(playerid,params[])
{
#pragma unused params
new timestamp = GetTickCount();
if(timestamp - inhousepickup > 5000)
{
SendClientMessage(playerid, c_r, "You are not in a house icon!");
return 1;
}
new pname[24];
GetPlayerName(playerid, pname, 24);
if(strcmp(hInfo[playericonhouse[playerid]][Name],pname,true)==0)
{
new carname[40];
if (sscanf(params, "s", carname))
{
SendClientMessage(playerid, c_r, "USAGE: /ordercar [CarName]");
}
else
{
new str[256], abc;
for(new i=0;i<MAX_BUY_CARS;i++)
{
if(strcmp(carname,Buyable_Cars[i][CarName],true)==0)
{
if(GetPlayerMoney(playerid)<Buyable_Cars[i][CarCost]) return SendClientMessage(playerid, c_r, "Not enough money!");
GivePlayerMoney(playerid, GetPlayerMoney(playerid)-Buyable_Cars[i][CarCost]);
cInfo[playericonhouse[playerid]][CarModel] = Buyable_Cars[i][CarModel];
format(str, sizeof(str), "Houses/houseid%d", playericonhouse[playerid]);
dini_IntSet(str, "CarModel", Buyable_Cars[i][CarModel]);
format(str, sizeof(str), "You have ordered the %s for $%d!", carname, Buyable_Cars[i][CarCost]);
SendClientMessage(playerid, c_y, str);
SendClientMessage(playerid, c_y, "It will take some time when your car will be delivered.");
cInfo[playericonhouse[playerid]][NewCar] = 1;
abc = 1;
}
}
if(abc==0)
{
SendClientMessage(playerid, c_r, "Wrong vehicle name!");
abc=0;
}
}
}
else
{
SendClientMessage(playerid, c_r, "This house isn't yours!");
}
return 1;
}
public newcar()
{
for(new carid=0;carid<MAX_HOUSES;carid++)
{
if(cInfo[carid][NewCar]==1)
{
cInfo[carid][NewCar]=0;
KillVehicle(cInfo[carid][HouseCar]);
cInfo[carid][HouseCar] = CreateVehicle(cInfo[carid][CarModel], cInfo[carid][CarX], cInfo[carid][CarY], cInfo[carid][CarZ], 0.0, cInfo[carid][CarColor1], cInfo[carid][CarColor2], cInfo[carid][Respawn_Delay]);
}
}
}
public KillVehicle(carid)
{
for (new i=0;i<MAX_PLAYERS;i++)
{
if(IsPlayerInVehicle(i, carid))
{
RemovePlayerFromVehicle(i);
KillVeh[carid] = true;
SetVehicleToRespawn(carid);
SendClientMessage(i, c_r, "System: Your car has been destroyed.");
SendClientMessage(i, c_r, "Reason: House system.");
}
else
{
KillVeh[carid] = true;
SetVehicleToRespawn(carid);
}
}
}
public OnVehicleSpawn(vehicleid)
{
for(new i=0;i<MAX_HOUSES;i++)
{
if(KillVeh[cInfo[i][HouseCar]]==true)
{
KillVeh[cInfo[i][HouseCar]] = false;
DestroyVehicle(cInfo[i][HouseCar]);
}
}
}
public rentfee()
{
new str[255],str2[255],pname[24];
for(new houseid=0;houseid<MAX_HOUSES;houseid++)
{
print("f");
format(str, sizeof(str), "Houses/houseid%d", houseid);
if(strcmp(hInfo[houseid][Renter], "ForRent", true))
{
for(new ii=0;ii<MAX_PLAYERS;ii++)
{
if(IsPlayerConnected(ii))
{
GetPlayerName(ii, pname, 24);
if(strcmp(hInfo[houseid][Renter], pname, true)==0)
{
format(str2, sizeof(str2), "You have to pay $%d for the hour you have rented the hous!", hInfo[houseid][Rentcost]);
SendClientMessage(ii, c_y, str2);
dini_IntSet(str, "RentGet", dini_Int(str, "RentGet")+hInfo[houseid][Rentcost]);
dini_IntSet(str, "RentPay", dini_Int(str, "RentPay")+hInfo[houseid][Rentcost]);
hInfo[houseid][Rentfee]=1;
}
}
}
if(hInfo[houseid][Rentfee]==0)
{
if(strcmp(hInfo[houseid][Renter],"ForRent"))
{
dini_IntSet(str, "RentGet", dini_Int(str, "RentGet")+hInfo[houseid][Rentcost]);
dini_IntSet(str, "RentPay", dini_Int(str, "RentPay")+hInfo[houseid][Rentcost]);
}
}
hInfo[houseid][Rentfee]=0;
}
}
}
public OnPlayerPickUpPickup(playerid, pickupid)
{
GetHouseStats(playerid, pickupid);
return 0;
}
stock sscanf(string[], format[], {Float,_}:...)
{
new
formatPos = 0,
stringPos = 0,
paramPos = 2,
paramCount = numargs();
while (paramPos < paramCount && string[stringPos])
{
switch (format[formatPos++])
{
case '\0':
{
return 0;
}
case 'i', 'd':
{
new
neg = 1,
num = 0,
ch = string[stringPos];
if (ch == '-')
{
neg = -1;
ch = string[++stringPos];
}
do
{
stringPos++;
if (ch >= '0' && ch <= '9')
{
num = (num * 10) + (ch - '0');
}
else
{
return 1;
}
}
while ((ch = string[stringPos]) && ch != ' ');
setarg(paramPos, 0, num * neg);
}
case 'h', 'x':
{
new
ch,
num = 0;
while ((ch = string[stringPos++]))
{
switch (ch)
{
case 'x', 'X':
{
num = 0;
continue;
}
case '0' .. '9':
{
num = (num << 4) | (ch - '0');
}
case 'a' .. 'f':
{
num = (num << 4) | (ch - ('a' - 10));
}
case 'A' .. 'F':
{
num = (num << 4) | (ch - ('A' - 10));
}
case ' ':
{
break;
}
default:
{
return 1;
}
}
}
setarg(paramPos, 0, num);
}
case 'c':
{
setarg(paramPos, 0, string[stringPos++]);
}
case 'f':
{
new tmp[25];
strmid(tmp, string, stringPos, stringPos+sizeof(tmp)-2);
setarg(paramPos, 0, _:floatstr(tmp));
}
case 's', 'z':
{
new
i = 0,
ch;
if (format[formatPos])
{
while ((ch = string[stringPos++]) && ch != ' ')
{
setarg(paramPos, i++, ch);
}
if (!i) return 1;
}
else
{
while ((ch = string[stringPos++]))
{
setarg(paramPos, i++, ch);
}
}
stringPos--;
setarg(paramPos, i, '\0');
}
default:
{
continue;
}
}
while (string[stringPos] && string[stringPos] != ' ')
{
stringPos++;
}
while (string[stringPos] == ' ')
{
stringPos++;
}
paramPos++;
}
while (format[formatPos] == 'z') formatPos++;
return format[formatPos];
}
public PayDay(playerid)
{
for (new i; i < MAX_PLAYERS; i++)
{
if (IsPlayerConnected(i))
{
new randomize=random(sizeof(VehCP));
SetPlayerCheckpoint(playerid, VehCP[randomize][0],VehCP[randomize][1],VehCP[randomize][2],30);
GivePlayerMoney(i, 10000);
GameTextForPlayer(i,"~g~PAY~r~DAY ~b~10.000", 2500, 3);
SendClientMessage(playerid, COLOR_GREEN, "*********[PaYDaY]***********");
SendClientMessage(playerid, COLOR_YELLOW, "Hint: Go to the Checkpoint To sell The car Do /stop To Stop the mission");
SendClientMessage(playerid, COLOR_GREEN, "***********10.000***********");
}
}
}
public CountDown(){
if (Count > 0){
GameTextForAll( CountText[Count-1], 2500, 3);
Count--;
SetTimer("CountDown", 1000, 0);
}
else{
GameTextForAll("~g~Go! Go! Go!", 2500, 3);
Count = 5;
}
return 1;
}
public Encrypt(string[])
{
for(new x=0; x < strlen(string); x++)
{
string[x] += (3^x) * (x % 15);
if(string[x] > (0xff))
{
string[x] -= 64;
}
}
return 1;
}
public OnPlayerLogin(playerid,const string[])
{
new pname2[MAX_PLAYER_NAME];
new pname3[MAX_PLAYER_NAME];
new string2[64];
new string3[128];
GetPlayerName(playerid, pname2, sizeof(pname2));
format(string2, sizeof(string2), "%s.cer", pname2);
new File: UserFile = fopen(string2, io_read);
if (UserFile)
{
new valtmp[128];
fread(UserFile, valtmp);strmid(PlayerInfo[playerid][pPassword], valtmp, 0, strlen(valtmp)-1, 255);
if ((strcmp(PlayerInfo[playerid][pPassword], string, true, strlen(valtmp)-1) == 0))
{
new key[128],val[128];
new Data[128];
while(fread(UserFile,Data,sizeof(Data)))
{
key = ini_GetKey(Data);
if( strcmp( key , "Kills" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][pKills] = strval( val ); }
if( strcmp( key , "Deaths" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][pDeaths] = strval( val ); }
if( strcmp( key , "Money" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][pCash] = strval( val ); }
GivePlayerMoney(playerid,PlayerInfo[playerid][pCash]);
}
fclose(UserFile);
gPlayerLogged[playerid] = 1;
gPlayerAccount[playerid] = 1;
new kills = PlayerInfo[playerid][pKills];
SetPlayerScore(playerid, kills);
GetPlayerName(playerid, pname3, sizeof(pname3));
format(string3, sizeof(string3), "Welcome %s, you have been succesfully logged in!", pname3);
SendClientMessage(playerid, COLOR_WHITE,string3);
}
else
{
SendClientMessage(playerid, COLOR_GREY, " Password does not match your name");
fclose(UserFile);
}
}
return 1;
}
public OnPlayerUpdate(playerid)
{
if(IsPlayerConnected(playerid))
{
if(gPlayerLogged[playerid])
{
new string3[32];
new pname3[MAX_PLAYER_NAME];
GetPlayerName(playerid, pname3, sizeof(pname3));
format(string3, sizeof(string3), "%s.cer", pname3);
new File: pFile = fopen(string3, io_write);
if (pFile)
{
new var[32];
format(var, 32, "%s\n", PlayerInfo[playerid][pPassword]);fwrite(pFile, var);
fclose(pFile);
new File: hFile = fopen(string3, io_append);
PlayerInfo[playerid][pCash] = GetPlayerMoney(playerid);
format(var, 32, "Kills=%d\n",PlayerInfo[playerid][pKills]);fwrite(hFile, var);
format(var, 32, "Deaths=%d\n",PlayerInfo[playerid][pDeaths]);fwrite(hFile, var);
format(var, 32, "Money=%d\n",PlayerInfo[playerid][pCash]);fwrite(hFile, var);
fclose(hFile);
}
}
}
return 1;
}
stock ini_GetKey( line[] )
{
new keyRes[128];
keyRes[0] = 0;
if ( strfind( line , "=" , true ) == -1 ) return keyRes;
strmid( keyRes , line , 0 , strfind( line , "=" , true ) , sizeof( keyRes) );
return keyRes;
}
stock ini_GetValue( line[] )
{
new valRes[128];
valRes[0]=0;
if ( strfind( line , "=" , true ) == -1 ) return valRes;
strmid( valRes , line , strfind( line , "=" , true )+1 , strlen( line ) , sizeof( valRes ) );
return valRes;
}
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;
}
public ShowStats(playerid,targetid)
{
if(IsPlayerConnected(playerid)&&IsPlayerConnected(targetid))
{
new cash = GetPlayerMoney(targetid);
new deaths = PlayerInfo[targetid][pDeaths];
new kills = PlayerInfo[targetid][pKills];
new name[MAX_PLAYER_NAME];
GetPlayerName(targetid, name, sizeof(name));
new Float:px,Float:py,Float:pz;
GetPlayerPos(targetid, px, py, pz);
new coordsstring[256];
SendClientMessage(playerid, COLOR_GREEN,"_______________________________________");
format(coordsstring, sizeof(coordsstring),"*** %s ***",name);
SendClientMessage(playerid, COLOR_WHITE,coordsstring);
format(coordsstring, sizeof(coordsstring), "Kills:[%d] Deaths:[%d] Cash:[$%d]",kills,deaths,cash);
SendClientMessage(playerid, COLOR_GRAD5,coordsstring);
SendClientMessage(playerid, COLOR_GREEN,"_______________________________________");
}
}
#endif