rendered paste body//---------------------------------------------------------
//
// Casino Rob by brandon6199 for SA-MP 0.2
//
//---------------------------------------------------------
#include <a_samp>
#include <a_objects>
#include <a_players>
#include <a_vehicles>
#include <string>
//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;
}
}
//---------------------------------------------------------