//--------------------------------------------------------- // // Casino Rob by brandon6199 for SA-MP 0.2 // //--------------------------------------------------------- #include #include #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]; new gPlayerCheckpointStatus[MAX_PLAYERS]; //Color Defines #define COLOR_GREY 0xAFAFAFAA #define COLOR_GREEN 0x33AA33AA #define COLOR_RED 0xFF0000FF #define COLOR_YELLOW 0xFFFF00AA #define COLOR_PINK 0xFF66FFAA #define COLOR_BLUE 0x0000BBAA #define COLOR_LIGHTBLUE 0x33CCFFAA #define COLOR_DARKRED 0x660000AA #define COLOR_ORANGE 0xFF9900AA #define COLOR_WHITE 0xFFFFFFAA //Team Defines #define TEAM_GROVE 0 #define TEAM_COPS 1 #define TEAM_GROVE_COLOR 0x33AA33AA #define TEAM_COPS_COLOR 0x0000BBAA // Checkpoint Defines #define CHECKPOINT_NONE 0 #define CHECKPOINT_SAFE 1 #define CHECKPOINT_TOWN 2 #define CHECKPOINT_SCORE 3 #define CHECKPOINT_LEAVE 4 //--------------------------------------------------------- forward SetPlayerClass(playerid, classid); //--------------------------------------------------------- // BEGIN THE ACTUAL CODE!!! // BEGIN THE ACTUAL CODE!!! // BEGIN THE ACTUAL CODE!!! // BEGIN THE ACTUAL CODE!!! // BEGIN THE ACTUAL CODE!!! // BEGIN THE ACTUAL CODE!!! // BEGIN THE ACTUAL CODE!!! //--------------------------------------------------------- main() { print("\n----------------------------------"); print("Casino Rob by brandon6199"); print("----------------------------------\n"); } //--------------------------------------------------------- public OnGameModeInit() { print("GameModeInit()"); SetGameModeText("Casino Rob"); ShowNameTags(1); ShowPlayerMarkers(1); AllowInteriorWeapons(1); AddPlayerClass(105,2484.5894,1291.6488,10.8125,263.2205,5,1,32,300,30,500); // Grove AddPlayerClass(106,2481.8582,1271.6160,10.8125,274.4073,28,300,30,500,16,3); // Grove AddPlayerClass(284,2295.6926,2468.7317,10.8203,92.3687,3,1,22,150,029,500); // Cops AddPlayerClass(285,2295.7690,2451.3647,10.8203,92.2518,23,150,31,500,17,500); // Cops AddStaticVehicle(471,-364.8514,2210.9124,41.8772,284.4909,16,16); // quad 1 AddStaticVehicle(471,-396.0703,2231.9834,41.9108,105.7804,16,16); // quad 2 AddStaticVehicle(567,-370.0383,2255.1147,42.2486,99.1563,16,16); // savanna AddStaticVehicle(598,2282.2849,2477.0271,10.5673,359.9103,0,1); // police 1 AddStaticVehicle(598,2277.7959,2477.3606,10.5637,0.8223,0,1); // police 2 AddStaticVehicle(598,2273.3428,2477.7720,10.5640,359.3792,0,1); // police 3 AddStaticVehicle(598,2273.1492,2459.9387,10.5683,359.3797,0,1); // police 4 AddStaticVehicle(598,2282.5408,2442.7351,10.5682,180.3116,0,1); // police 5 AddStaticVehicle(598,2269.1885,2442.9819,10.5627,179.6315,0,1); // police 6 AddStaticVehicle(523,2255.8843,2458.2559,10.3827,1.1034,0,0); // cop bike 1 AddStaticVehicle(523,2255.9705,2476.3459,10.3920,359.0161,0,0); // cop bike 2 AddStaticVehicle(523,2295.1309,2444.5696,10.3906,178.0836,0,0); // cop bike AddStaticVehicle(523,2259.9980,2442.4880,10.3842,358.3316,0,0); // cop bike 4 AddStaticVehicle(497,2332.8928,2384.0200,10.9962,89.3365,0,1); // police mav AddStaticVehicle(567,2524.0105,1266.3029,10.5400,0.4006,16,16); // savanna 1 AddStaticVehicle(567,2523.9783,1281.2521,10.5404,359.7207,16,16); // savanna 2 AddStaticVehicle(567,2524.0188,1299.6293,10.5495,359.8246,16,16); // savanna 3 AddStaticVehicle(492,2514.4680,1309.6660,10.4537,89.1511,16,16); // greenwood 1 AddStaticVehicle(492,2497.4004,1309.8257,10.4576,89.3624,16,16); // greenwood 2 AddStaticVehicle(492,2477.2771,1309.7052,10.4740,90.2629,16,16); // greenwood 3 AddStaticVehicle(581,2499.3132,1257.6030,10.2698,90.7725,16,16); // bf400 1 AddStaticVehicle(581,2490.1511,1257.4797,10.2709,90.7768,16,16); // bf400 2 AddStaticPickup(371,15,2268.8533,1625.9772,94.9219); // parachute AddStaticPickup(371,15,2269.1438,1671.7017,94.9219); // parachute AddStaticPickup(1550,15,2141.2017,1640.9675,993.5761); // moneybag return 1; } //--------------------------------------------------------- public OnPlayerConnect(playerid) { GameTextForPlayer(playerid,"~r~Casino Rob ~w~by brandon6199",5000,5); SetPlayerColor(playerid, COLOR_GREY); // Set the player's color to inactive GivePlayerMoney(playerid,5000); return 1; } //--------------------------------------------------------- public OnPlayerRequestClass(playerid, classid) { printf("OnPlayerRequestClass(%d, %d)", playerid, classid); SetPlayerTeamFromClass(playerid, classid); SetPlayerPos(playerid, 1523.9215,-43.5341,1002.1310); SetPlayerFacingAngle(playerid, 178.1434); SetPlayerCameraPos(playerid, 1523.8665,-47.4997,1002.1310); SetPlayerCameraLookAt(playerid, 1523.9215,-43.5341,1002.1310); PlayerPlaySound(playerid, 1097, 1523.9215,-43.5341,1002.1310); SetPlayerInterior(playerid,2); gPlayerClass[playerid] = classid; switch (classid) { case 0: { GameTextForPlayer(playerid, "~g~Grove", 500, 3); } case 1: { GameTextForPlayer(playerid, "~g~Grove", 500, 3); } case 2: { GameTextForPlayer(playerid, "~b~Cops", 500, 3); } case 3: { GameTextForPlayer(playerid, "~b~Cops", 500, 3); } } return 1; } //--------------------------------------------------------- public OnPlayerSpawn(playerid) { SetPlayerInterior(playerid,0); PlayerPlaySound(playerid, 1069, 0.0,0.0,0.0); switch (gPlayerClass[playerid]) { case 0: { gPlayerCheckpointStatus[playerid] = CHECKPOINT_SAFE; SetPlayerCheckpoint(playerid,2141.2017,1640.9675,993.5761,2.0); SetPlayerInterior(playerid,0); GameTextForPlayer(playerid, "~w~Attack the ~r~Casino!", 5000, 5); SetPlayerColor(playerid,COLOR_GREEN); } case 1: { gPlayerCheckpointStatus[playerid] = CHECKPOINT_SAFE; SetPlayerCheckpoint(playerid,2141.2017,1640.9675,993.5761,2.0); SetPlayerInterior(playerid,0); GameTextForPlayer(playerid, "~w~Attack the ~r~Casino!", 5000, 5); SetPlayerColor(playerid,COLOR_GREEN); } case 2: { SetPlayerInterior(playerid,0); GameTextForPlayer(playerid, "~w~Defend the ~r~Casino!", 5000, 5); SetPlayerColor(playerid,COLOR_BLUE); } case 3: { SetPlayerInterior(playerid,0); GameTextForPlayer(playerid, "~w~Defend the ~r~Casino!", 5000, 5); SetPlayerColor(playerid,COLOR_BLUE); } } return 1; } //--------------------------------------------------------- public OnPlayerEnterCheckpoint(playerid) { switch (gPlayerCheckpointStatus[playerid]) { case CHECKPOINT_SAFE: { GameTextForAll("~w~The ~g~Grove ~w~are attacking the ~r~Safe!", 5000, 5); new safe[256]; format(safe, sizeof(safe), "Take the Moneybag to the Abandoned Town!"); SendClientMessage(playerid,0xAA3333AA,safe); SetPlayerCheckpoint(playerid,-377.3860,2242.1565,42.6185,2.0); PlayerPlaySound(playerid,1058,2505.7527,-1695.8398,13.5523); SetPlayerWantedLevel(playerid,6); gPlayerCheckpointStatus[playerid] = CHECKPOINT_TOWN; } case CHECKPOINT_TOWN: { new score[256]; format(score, sizeof(score), "Return the Moneybag to the back of the house."); SendClientMessage(playerid,0xAA3333AA,score); SetPlayerCheckpoint(playerid,-2451.3394,-1686.1453,1013.5078,2.0); SetPlayerPos(playerid,2465.9448,-1698.2147,1013.5078); SetPlayerInterior(playerid,2); PlayerPlaySound(playerid,1058,2505.7527,-1695.8398,13.5523); gPlayerCheckpointStatus[playerid] = CHECKPOINT_SCORE; } case CHECKPOINT_SCORE: { GameTextForAll("~w~The ~g~Grove ~w~have successfully robbed ~r~Caligula's!", 5000, 5); new other[256]; format(other, sizeof(other), "Congratulations! You have earned $500,000!"); SendClientMessage(playerid,0xAA3333AA,other); GivePlayerMoney(playerid,500000); SetPlayerCheckpoint(playerid,2465.9448,-1698.2147,1013.5078,2.0); PlayerPlaySound(playerid,1058,2505.7527,-1695.8398,13.5523); gPlayerCheckpointStatus[playerid] = CHECKPOINT_LEAVE; } case CHECKPOINT_LEAVE: { SetPlayerPos(playerid,2465.9448,-1698.2147,1013.5078); new leave[256]; format(leave, sizeof(leave), "Go rob the Casino again!"); SendClientMessage(playerid,0xAA3333AA,leave); SetPlayerInterior(playerid,0); PlayerPlaySound(playerid,1058,2505.7527,-1695.8398,13.5523); SetPlayerCheckpoint(playerid,2141.2017,1640.9675,993.5761,2.0); gPlayerCheckpointStatus[playerid] = CHECKPOINT_SAFE; } } return 1; } //--------------------------------------------------------- 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); } else { //Team Killer! new warning[256]; format(warning, sizeof(warning), "Be careful! You have lost 1 point for teamkilling."); SendClientMessage(killerid, 0xFFFF00AA, warning); SendDeathMessage(killerid,playerid,reason); GivePlayerMoney(killerid, -1000); SetPlayerScore(killerid, GetPlayerScore(killerid) - 1); } } return 1; } //--------------------------------------------------------- SetPlayerTeamFromClass(playerid, classid) { if(classid == 0) { gTeam[playerid] = TEAM_GROVE; } else if(classid == 1) { gTeam[playerid] = TEAM_COPS; } } //---------------------------------------------------------