#include #include static gTeam[MAX_PLAYERS]; // Tracks the team assignment for each player #define TEAM_RED 1 #define TEAM_BLUE 2 #define TEAM_RED_COLOR 0xAA0000FF #define TEAM_BLUE_COLOR 0x3333AAAA #define COLOR_GREEN 0x33AA33AA #define COLOR_LIGHTBLUE 0x4040FFAA #define COLOR_LIGHTRED 0xFF2121AA #define COLOR_DARKBLUE 0x0000C0AA #define COLOR_DARKRED 0xC00000AA #define COLOR_RED 0xAA3333AA // RED #define COLOR_GREEN1 0x33AA33FF // GREEN #define GAME_ROUNDLIMIT 10 forward SetPlayerToTeamColor(playerid); forward SetupPlayerForClassSelection(playerid, classid); forward SetPlayerTeamFromClass(playerid,classid); forward SendPlayerFormattedText(playerid, const str[], color); forward attach(); forward buildblue(playerid); forward buildred(playerid); forward ExitTheGameMode(playerid); forward Exit(); forward tune(vehicleid); new gObjectiveReached=0; new gredScore=0; new gBlueScore=0; new truckred; new trailerred; new truckblue; new trailerblue; new pickupblue1; new pickupred1; new boundary; new bluezone; new redzone; new tk[MAX_PLAYERS]; main() { print("\n----------------------------------"); print("Baserace v1.0 by XChaos"); print("----------------------------------\n"); } public OnGameModeInit() { truckred = AddStaticVehicle(514,2426,-1649,14.4130,180,3,3); // truckred trailerred = AddStaticVehicle(450,2426,-1639,14.3107,180,3,3); // trailerred truckblue = AddStaticVehicle(514,876,-1253,16.0662,0,2,2); // truckblue trailerblue = AddStaticVehicle(450,876,-1263,16.0662,0,2,2); // trailerblue //Blue Vehicles CreateVehicle(426, 2473.389648, -1692.279663, 13.174879, 360, 2, 2, 120); CreateVehicle(402, 2484.451172, -1683.837891, 13.153580, 271, 2, 2, 120); CreateVehicle(415, 2507.868408, -1686.187256, 13.382275, 44, 2, 2, 120); CreateVehicle(445, 2506.340332, -1678.003296, 13.202512, 316, 2, 2, 120); CreateVehicle(467, 2473.109619, -1681.608765, 13.224833, 327, 2, 2, 120); CreateVehicle(480, 2460.169434, -1671.386597, 13.319103, 360, 2, 2, 120); CreateVehicle(471, 2454.721191, -1671.590942, 13.319701, 360, 2, 2, 120); CreateVehicle(478, 2502.229004, -1656.173706, 13.243270, 56, 2, 2, 120); CreateVehicle(477, 2483.768555, -1654.298218, 13.127489, 89, 2, 2, 120); CreateVehicle(554, 2443.474609, -1646.283447, 13.296807, 179, 2, 2, 120); CreateVehicle(405, 2376.552490, -1664.049438, 13.811875, 90, 2, 2, 120); CreateVehicle(413, 2403.538574, -1644.630005, 13.811875, 181, 2, 2, 120); CreateVehicle(422, 2384.220215, -1644.915527, 13.788892, 360, 2, 2, 120); //Red Vehicles CreateVehicle(400,845.9137,-1199.3220,17,180.9539,3,3, 120); CreateVehicle(401,851.3794,-1198.2346,17,180.3556,3,3, 120); CreateVehicle(402,883.4802,-1197.2079,17,180.7407,3,3, 120); CreateVehicle(405,828.8291,-1207.1685,17,270.8887,3,3, 120); CreateVehicle(424,853.9090,-1227.8312,16,270.9954,3,3, 120); CreateVehicle(434,867.2651,-1286.2450,14,0,3,3, 120); CreateVehicle(542,850.2413,-1294.6011,14,270.2073,3,3, 120); CreateVehicle(558,851.3859,-1285.4800,14,270.5576,3,3, 120); CreateVehicle(566,854.5298,-1272.0676,15,270.3849,3,3, 120); CreateVehicle(480,884.6514,-1252.2334,15,360.6153,3,3, 120); CreateVehicle(412,897.9283,-1270.0790,15,90.9283,3,3, 120); CreateVehicle(422,923.3892,-1293.1055,14,90.9967,3,3, 120); CreateVehicle(415,914.4268,-1229.6899,17,270.9797,3,3, 120); CreateVehicle(491,904.6953,-1239.3925,16.2,0,3,3, 120); //trucks tuning AddVehicleComponent(1, 1010); AddVehicleComponent(1, 1087); AddVehicleComponent(3, 1010); AddVehicleComponent(3, 1087); //vehicles tuning-blue AddVehicleComponent(5, 1075); AddVehicleComponent(6, 1074); AddVehicleComponent(7, 1073); AddVehicleComponent(8, 1079); AddVehicleComponent(9, 1080); AddVehicleComponent(10, 1081); AddVehicleComponent(11, 1082); AddVehicleComponent(12, 1085); AddVehicleComponent(13, 1096); AddVehicleComponent(14, 1097); AddVehicleComponent(15, 1098); AddVehicleComponent(16, 1075); AddVehicleComponent(17, 1074); //vehicles tuning-red AddVehicleComponent(18, 1075); AddVehicleComponent(19, 1074); AddVehicleComponent(20, 1073); AddVehicleComponent(21, 1079); AddVehicleComponent(22, 1080); AddVehicleComponent(23, 1081); AddVehicleComponent(24, 1082); AddVehicleComponent(25, 1085); AddVehicleComponent(26, 1096); AddVehicleComponent(27, 1097); AddVehicleComponent(28, 1098); AddVehicleComponent(29, 1075); AddVehicleComponent(30, 1098); AddVehicleComponent(31, 1074); //Blue AddPlayerClass(66,2473.8394,-1685.4305,13.4964,317.9517,22,100,0,0,0,0); AddPlayerClass(24,2473.8394,-1685.4305,13.4964,317.9517,22,100,0,0,0,0); AddPlayerClass(69,2473.8394,-1685.4305,13.4964,317.9517,22,100,0,0,0,0); AddPlayerClass(36,2495.1265,-1683.4967,13.3388,6.3909,22,100,0,0,0,0); AddPlayerClass(202,2495.1265,-1683.4967,13.3388,6.3909,22,100,0,0,0,0); AddPlayerClass(25,2495.1265,-1683.4967,13.3388,6.3909,22,100,0,0,0,0); AddPlayerClass(34,2495.1265,-1683.4967,13.3388,6.3909,22,100,0,0,0,0); AddPlayerClass(81,2512.8096,-1673.8990,13.5132,75.8472,22,100,0,0,0,0); AddPlayerClass(187,2512.8096,-1673.8990,13.5132,75.8472,22,100,0,0,0,0); AddPlayerClass(198,2512.8096,-1673.8990,13.5132,75.8472,22,100,0,0,0,0); //Red AddPlayerClass(170,915.1438,-1252.2168,15.6641,88.0300,22,100,0,0,0,0); AddPlayerClass(189,915.1438,-1252.2168,15.6641,88.0300,22,100,0,0,0,0); AddPlayerClass(219,915.1438,-1252.2168,15.6641,88.0300,22,100,0,0,0,0); AddPlayerClass(19,865.3112,-1249.0709,14.9317,270.2221,22,100,0,0,0,0); AddPlayerClass(35,865.3112,-1249.0709,14.9317,270.2221,22,100,0,0,0,0); AddPlayerClass(22,865.3112,-1249.0709,14.9317,270.2221,22,100,0,0,0,0); AddPlayerClass(40,865.3112,-1249.0709,14.9317,270.2221,22,100,0,0,0,0); AddPlayerClass(80,867.6617,-1205.1372,16.9766,179.3153,22,100,0,0,0,0); AddPlayerClass(243,867.6617,-1205.1372,16.9766,179.3153,22,100,0,0,0,0); AddPlayerClass(97,867.6617,-1205.1372,16.9766,179.3153,22,100,0,0,0,0); CreateObject(14548, 928.540161, -1761.661743, 550.805176, 6.8755, 0, 360); CreateObject(14553, 928.131775, -1764.428589, 549.726257, 8.5944, 0, 360); CreateObject(14548, 2456.537109, -2163.348633, 552.761719, 7.7349, 0, 0); CreateObject(14553, 2456.585693, -2167.343506, 551.841003, 8.5944, 0, 0); CreateObject(14553, 2492.363037, -1668.766235, -15.246347, 359.1406, 0, 0); CreateObject(14548, 2493.688477, -1678.766968, -2.369736, 12.0321, 0, 0); CreateObject(14548, 912.191711, -1226.393555, 3.178259, 12.0321, 0, 0); CreateObject(14553, 915.928711, -1236.127686, -7.465097, 2.5783, 0, 0); pickupblue1 = CreatePickup(1248,2,2469.5,-1646.9603,13.4717);//gtaIII pickup (teleport to the plane) pickupred1 = CreatePickup(1248,2,912.5315,-1235.2003,17.2109);//gtaIII pickup (teleport to the plane) boundary = GangZoneCreate(46.7115, -3047.926, 3012.892, -373.692); bluezone = GangZoneCreate(2071.699, -1855.563, 2630.716, -1520.005); redzone = GangZoneCreate(736.9036, -1417.363, 1246.484, -1089.701); ShowPlayerMarkers(1); SetTimer("attach", 3000, 1); SetGameModeText("Baserace v1.0"); return 1; } public OnGameModeExit() { print("GameModeExit"); return 1; } //============================================================================== public attach() { if (!IsTrailerAttachedToVehicle(truckred)){ AttachTrailerToVehicle(trailerred, truckred); } if (!IsTrailerAttachedToVehicle(truckblue)){ AttachTrailerToVehicle(trailerblue, truckblue); } } //------------------------------------------------------------------------------ public SetupPlayerForClassSelection(playerid, classid) { if(classid == 0 || classid == 1 || classid == 2 || classid == 3 || classid == 4 || classid == 5 || classid == 6 || classid == 7 || classid == 8 || classid == 9) { SetPlayerInterior(playerid, 8); SetPlayerPos(playerid,2805.5713,-1172.0177,1025.5703); // 2494.2473,-1692.3293,23.6778 SetPlayerCameraPos(playerid,2808.5713,-1172.0177,1026.5703); // 2494.2473,-1697.3293,23.6778 SetPlayerCameraLookAt(playerid,2805.5713,-1172.0177,1025.5703); // 2494.2473,-1692.3293,23.6778 SetPlayerFacingAngle(playerid,270); // 180 } else if(classid == 10 || classid == 11 || classid == 12 || classid == 13 || classid == 14 || classid == 15 || classid == 16 || classid == 17 || classid == 18 || classid == 19) { SetPlayerInterior(playerid, 8); SetPlayerPos(playerid,2812.7700,-1172.3342,1025.5778); // 909.5185,-1235.4344,20.3676 SetPlayerCameraPos(playerid,2809.7700,-1172.3342,1026.5778); // 914.5185,-1235.4344,20.3676 SetPlayerCameraLookAt(playerid,2812.7700,-1172.3342,1025.5778); // 909.5185,-1235.4344,20.3676 SetPlayerFacingAngle(playerid,90); // 270 } return 1; } public OnPlayerRequestClass(playerid, classid) { SetupPlayerForClassSelection(playerid, classid); SetPlayerTeamFromClass(playerid,classid); if(classid == 0 || classid == 1 || classid == 2 || classid == 3 || classid == 4 || classid == 5 || classid == 6 || classid == 7 || classid == 8 || classid == 9) { GameTextForPlayer(playerid,"~b~BLUE ~w~TEAM",1000,5); } else if(classid == 10 || classid == 11 || classid == 12 || classid == 13 || classid == 14 || classid == 15 || classid == 16 || classid == 17 || classid == 18 || classid == 19) { GameTextForPlayer(playerid,"~r~RED ~w~TEAM",1000,5); } return 1; } public SetPlayerTeamFromClass(playerid,classid) { // Set their team number based on the class they selected. if(classid == 0 || classid == 1 || classid == 2 || classid == 3 || classid == 4 || classid == 5 || classid == 6 || classid == 7 || classid == 8 || classid == 9) { gTeam[playerid] = TEAM_BLUE; } else if(classid == 10 || classid == 11 || classid == 12 || classid == 13 || classid == 14 || classid == 15 || classid == 16 || classid == 17 || classid == 18 || classid == 19) { gTeam[playerid] = TEAM_RED; } } public SetPlayerToTeamColor(playerid) { if(gTeam[playerid] == TEAM_RED) { SetPlayerColor(playerid,TEAM_RED_COLOR); // red } else if(gTeam[playerid] == TEAM_BLUE) { SetPlayerColor(playerid,TEAM_BLUE_COLOR); // blue } } public OnPlayerRequestSpawn(playerid) { return 1; } public OnPlayerConnect(playerid) { SendPlayerFormattedText(playerid, "/level to see the level of the teams", COLOR_GREEN); return 1; } public OnPlayerDisconnect(playerid, reason) { return 1; } public OnPlayerSpawn(playerid) { GangZoneShowForPlayer(playerid, boundary, 0xFFFFFF40); GangZoneShowForPlayer(playerid, bluezone, 0x0000FF30); GangZoneShowForPlayer(playerid, redzone, 0xFF000030); SetPlayerWorldBounds(playerid, 3012.892, 46.7115, -373.692, -3047.926); SetPlayerToTeamColor(playerid); if(gTeam[playerid] == TEAM_RED) { SetPlayerInterior(playerid, 0); SetVehicleParamsForPlayer(truckblue,playerid,1,1); // objective; unlocked SetVehicleParamsForPlayer(truckred,playerid,1,0); SetPlayerCheckpoint(playerid,896.3365,-1232.6586,16,10.0); GameTextForPlayer(playerid, "Capture our ~r~RED ~w~Truck and bring it back!", 5000,5); } else if(gTeam[playerid] == TEAM_BLUE) { SetPlayerInterior(playerid, 0); SetVehicleParamsForPlayer(truckred,playerid,1,1); // objective; unlocked SetVehicleParamsForPlayer(truckblue,playerid,1,0); SetPlayerCheckpoint(playerid,2479.8726,-1663.0012,13,10.0); GameTextForPlayer(playerid, "Capture our ~b~BLUE ~w~Truck and bring it back!", 5000,5); } ResetPlayerMoney(playerid); GivePlayerMoney(playerid, 2500); return 1; } //------------------------------------------------------------------------------ public OnPlayerDeath(playerid, killerid, reason) { if(killerid == INVALID_PLAYER_ID) { SendDeathMessage(INVALID_PLAYER_ID,playerid,reason); } //VALID KILL else { if(gTeam[killerid] != gTeam[playerid]) { SendDeathMessage(killerid,playerid,reason); SetPlayerScore(killerid,GetPlayerScore(killerid)+1); GivePlayerMoney(killerid, 1000); } //TEAM KILL else { SendClientMessage(killerid, COLOR_RED, "No teamkilling! Be careful the next time!"); SendDeathMessage(killerid,playerid,reason); SetPlayerScore(killerid,GetPlayerScore(killerid)-1); GivePlayerMoney(killerid, -2000); new Float:x; new Float:y; new Float:z; GetPlayerPos(playerid, x, y, z); z = 1000; SetPlayerPos(killerid, Float:x, Float:y, Float:z); tk[killerid] ++; if(tk[killerid] == 2) { SendClientMessage(killerid, COLOR_RED, "Once again and you will be kicked!"); } if(tk[killerid] >= 3) { new string[256]; new name[MAX_PLAYER_NAME]; GetPlayerName(killerid,name, sizeof(name)); printf(" -A.T.K Script-: %s kicked for teamkilling",name); Kick(killerid); format(string, sizeof(string), "The AntiTeamkill system kicked %s for teamkilling!",name); SendClientMessageToAll(COLOR_GREEN1, string); } } } return 1; } public OnVehicleSpawn(vehicleid) { if ((vehicleid==1)||(vehicleid==3)||(vehicleid==5)||(vehicleid==6)||(vehicleid==7)||(vehicleid==8)||(vehicleid==9) ||(vehicleid==10)||(vehicleid==11)||(vehicleid==12)||(vehicleid==13)||(vehicleid==14)||(vehicleid==15)||(vehicleid==16) ||(vehicleid==17)||(vehicleid==18)||(vehicleid==19)||(vehicleid==20)||(vehicleid==21)||(vehicleid==22)||(vehicleid==23) ||(vehicleid==24)||(vehicleid==25)||(vehicleid==26)||(vehicleid==27)||(vehicleid==28)||(vehicleid==29)||(vehicleid==30) ||(vehicleid==31)) { SetTimerEx("tune",2000,0,"%d",vehicleid); } return 1; } public tune(vehicleid) { //trucks AddVehicleComponent(1, 1010); AddVehicleComponent(1, 1087); AddVehicleComponent(3, 1010); AddVehicleComponent(3, 1087); //blue AddVehicleComponent(5, 1075); AddVehicleComponent(6, 1074); AddVehicleComponent(7, 1073); AddVehicleComponent(8, 1079); AddVehicleComponent(9, 1080); AddVehicleComponent(10, 1081); AddVehicleComponent(11, 1082); AddVehicleComponent(12, 1085); AddVehicleComponent(13, 1096); AddVehicleComponent(14, 1097); AddVehicleComponent(15, 1098); AddVehicleComponent(16, 1075); AddVehicleComponent(17, 1074); //red AddVehicleComponent(18, 1075); AddVehicleComponent(19, 1074); AddVehicleComponent(20, 1073); AddVehicleComponent(21, 1079); AddVehicleComponent(22, 1080); AddVehicleComponent(23, 1081); AddVehicleComponent(24, 1082); AddVehicleComponent(25, 1085); AddVehicleComponent(26, 1096); AddVehicleComponent(27, 1097); AddVehicleComponent(28, 1098); AddVehicleComponent(29, 1075); AddVehicleComponent(30, 1098); AddVehicleComponent(31, 1074); } public OnVehicleDeath(vehicleid, killerid) { if (vehicleid == truckblue){ for(new i=0; i