//------------------------------------------------------------------------------ // // ShadowDemon`s Cars for SA-MP 0.1 // //------------------------------------------------------------------------------ #include #include #include //Global stuff and defines for our gamemode static gTeam[MAX_PLAYERS]; // Tracks the team assignment for each player new gPlayerClass[MAX_PLAYERS]; //Color Defines #define COLOR_GREY 0xAFAFAFAA #define COLOR_GREEN 0x33AA33AA #define COLOR_PURPLE 0xA020F0AA #define COLOR_YELLOW 0xFFFF00AA #define COLOR_CYAN 0x00FFFFAA #define COLOR_RED 0xAA3333AA #define COLOR_DARKRED 0x660000AA #define COLOR_PINK 0xFF66FFAA #define COLOR_LIGHTBLUE 0x33CCFFAA #define COLOR_ORANGE 0xFF9900AA #define COLOR_BLUE 0x0000BBAA #define COLOR_WHITE 0xFFFFFFFF //Team Defines #define TEAM_MECHANIC 0 // Round duration new gRoundTime = 360000000000000; // 60 mins //new gRoundTime = 900000; //15 mins //new gRoundTime = 300000; // 5 mins new countdown=0; new COUNTDOWN_TIMER; new test[255]; //------------------------------------------------------------------------------ main() { print("\n----------------------------------"); print(" Cars by ShadowDemon (2006)\n"); print("----------------------------------\n"); } //------------------------------------------------------------------------------ public OnGameModeInit() { SetGameModeText("ShadowDemon`s Cars"); SetTeamCount(1); ShowNameTags(1); ShowPlayerMarkers(1); SetWorldTime(18); AddPlayerClass(50,-1982.2970,288.3539,34.9712,274.4560,5,1,29,300,30,300); //Mechanic AddStaticVehicle(587,-1949.1479,256.8493,34.8965,66.2597,53,1); // car1 AddStaticVehicle(602,-1947.3796,261.9798,34.8985,65.1618,53,1); // car2 AddStaticVehicle(541,-1949.1479,251.8493,34.8965,66.2597,53,1); // car3 AddStaticVehicle(562,-1947.3796,246.9798,34.8985,65.1618,53,1); // car4 AddStaticVehicle(402,-1949.1479,241.8493,34.8965,66.2597,53,1); // car5 AddStaticVehicle(411,-1947.3796,236.9798,34.8985,65.1618,53,1); // car6 AddStaticVehicle(559,-1949.1479,231.8493,34.8965,66.2597,53,1); // car7 AddStaticVehicle(560,-1947.3796,226.9798,34.8985,65.1618,53,1); // car8 AddStaticVehicle(506,-1949.1479,221.8493,34.8965,66.2597,53,1); // car9 AddStaticVehicle(439,-1947.3796,286.9798,34.8985,65.1618,53,1); // car10 AddStaticVehicle(451,-1949.1479,281.8493,34.8965,66.2597,53,1); // car11 AddStaticVehicle(558,-1947.3796,278.9798,34.8985,65.1618,53,1); // car12 AddStaticVehicle(439,-1949.1479,271.8493,34.8965,66.2597,53,1); // car13 AddStaticVehicle(415,-1949.1479,266.8493,34.8965,66.2597,53,1); // car13 //Pickups AddStaticPickup(370, 15, 2191.0342,-1155.7056,33.0883); // jetpack AddStaticPickup(370, 15, 1146.6971,-1181.0649,31.5915); // jetpack AddStaticPickup(370, 15, 1119.1736,-2012.9319,73.9926); // jetpack SetTimer("GameModeExitFunc", gRoundTime, 0); return 1; } //------------------------------------------------------------------------------ public COUNTDOWN() { countdown++; // add one if (countdown >= 4) { countdown = 0; SendClientMessageToAll(COLOR_WHITE, "GO!!!!"); KillTimer(COUNTDOWN_TIMER); } else { format(test, sizeof(test), "%i...", countdown); SendClientMessageToAll(COLOR_WHITE, test); } } //------------------------------------------------------------------------------ public OnPlayerConnect(playerid) { GameTextForPlayer(playerid,"ShadowDemon: ~r~Cars",5000,5); SendClientMessage(playerid, COLOR_YELLOW, "Welcome to ShadowDemon Races."); SendClientMessage(playerid,COLOR_YELLOW,"(Type /help to comand list)"); GivePlayerMoney(playerid, 5000); SetPlayerColor(playerid, COLOR_GREY); // Set the player's color to inactive return 1; } //------------------------------------------------------------------------------ public OnPlayerSpawn(playerid) { SetPlayerInterior(playerid,0); if(gTeam[playerid] == TEAM_MECHANIC) { SetPlayerColor(playerid,COLOR_RED); // Red } SendClientMessage(playerid, COLOR_WHITE, "respawned"); return 1; } //------------------------------------------------------------------------------ public OnPlayerCommandText(playerid, cmdtext[]) { new string[256]; new cmd[256]; new tmp[256]; new amount, idx; if(strcmp(cmd, "/countdown", true) == 0) { countdown = 0; // reset COUNTDOWN_TIMER = SetTimer("COUNTDOWN", 500, true); return 1; } return 0; } //------------------------------------------------------------------------------ public OnPlayerDeath(playerid, killerid, reason) { if(killerid == INVALID_PLAYER_ID) { SendDeathMessage(INVALID_PLAYER_ID,playerid,reason); } else { if(gTeam[killerid] != gTeam[playerid]) { // Valid kill SendDeathMessage(killerid,playerid,reason); SetPlayerScore(killerid,GetPlayerScore(killerid)+1); GivePlayerMoney(killerid, 1000); } else { //Team Killer! SetPlayerScore(killerid, GetPlayerScore(killerid) + 1); SendDeathMessage(killerid,playerid,reason); GivePlayerMoney(killerid, 1000); } } return 1; } //------------------------------------------------------------------------------ public SetupPlayerForClassSelection(playerid) { SetPlayerInterior(playerid,14); SetPlayerPos(playerid,258.4893,-41.4008,1002.0234); SetPlayerFacingAngle(playerid, 90.0); SetPlayerCameraPos(playerid,256.0815,-43.0475,1003.0234); SetPlayerCameraLookAt(playerid,258.4893,-41.4008,1002.0234); } //------------------------------------------------------------------------------ public OnPlayerRequestClass(playerid, classid) { SetPlayerClass(playerid, classid); SetupPlayerForClassSelection(playerid); gPlayerClass[playerid] = classid; switch (classid) { case 0: { GameTextForPlayer(playerid, "~g~Mechanic", 500, 3); } } return 1; } //------------------------------------------------------------------------------ public GameModeExitFunc() { GameModeExit(); return 1; } //------------------------------------------------------------------------------ SetPlayerClass(playerid, classid) { if(classid == 0) { gTeam[playerid] = TEAM_MECHANIC; } } //------------------------------------------------------------------------------