All pastes #640365 Raw Edit

Unnamed

public text v1 · immutable
#640365 ·published 2007-07-31 10:55 UTC
rendered paste body
//                             Sherman Dam Break-in GM 0.1
//                                 Coded by Chiarboss
//                                       ©2007
//                 Dont edit code or part of it without my permission
//                To get permission contact: marco.chiarelli@hotmail.it


#include <a_samp>
#pragma tabsize 0

#define TEAM_ATTACK 1
#define TEAM_DEFENCE 2

#define CHECKPOINT_NONE 0
#define CHECKPOINT_CALIGULA 1
#define CHECKPOINT_AIRPORT 2
#define CHECKPOINT_SHERMAN1 3
#define CHECKPOINT_SHERMAN2 4
#define CHECKPOINT_RAY 5
#define CHECKPOINT_KACC 6

#define DEFENCE_WIN 0
#define ATTACK_WIN 1

//colori
#define COLOR_GREY 0xAFAFAFAA
#define COLOR_GREEN 0x33AA33AA
#define COLOR_RED 0xAA3333AA
#define COLOR_YELLOW 0xFFFF00AA
//-------------------------------------------------------------------------
forward DefenceWin();
forward GameModeExitFunc();
forward Update0();
forward Update1();
forward ExitVehicle(playerid);
//-------------------------------------------------------------------------
new gTeam[MAX_PLAYERS];
new gPlayerClass[MAX_PLAYERS];
new gPlayerCheckpointStatus[MAX_PLAYERS];
new consecutive[MAX_PLAYERS];
new st;
new inexplo;
new invehicle[MAX_PLAYERS];
new inshop[MAX_PLAYERS];
new tk[MAX_PLAYERS];
new inairport[MAX_PLAYERS];
new inray[MAX_PLAYERS];
new removev;
new gRoundTimer;
new gRoundTime = 1200000;
new gRoundUpdate0 = 300000;
new gRoundUpdate1 = 900000;
//-------------------------------------------------------------------------
main()
{
   print("\nLoaded Sherman Dam Break-in GM 0.1\n");
}
//-------------------------------------------------------------------------
public OnGameModeInit()
{
   UsePlayerPedAnims();
   SetGameModeText("Sherman Dam Break-in GM 0.1");
   ShowPlayerMarkers(1);
   ShowNameTags(1);
   SetWorldTime(7);
   SetTeamCount(2);
   gRoundTimer = SetTimer("DefenceWin", gRoundTime, 0);
   SetTimer("Update0", gRoundUpdate0, 0);
   SetTimer("Update1", gRoundUpdate1, 0);
   inexplo = 0;
   st = 0;

   AddPlayerClass(287,2168.1194,1678.6793,10.8203,93.8138,0,0,0,0,0,0);
   AddPlayerClass(294,-828.4722,1967.8661,7.0000,186.7677,0,0,0,0,0,0);
   AddPlayerClass(294,-594.8962,1975.9142,7.0000,167.8006,0,0,0,0,0,0);

   AddStaticVehicle(432,2108.6594,1683.2080,10.5273,90.6530,0,0);
   AddStaticVehicle(432,-796.4164,2443.9121,157.0537,38.1263,0,0);
   AddStaticVehicle(432,-774.9176,2438.1721,157.0856,304.6629,0,0);
   AddStaticVehicle(432,-767.8898,2414.9910,157.0676,248.1868,0,0);
   AddStaticVehicle(432,-786.1514,2399.2346,156.7656,199.6895,0,0);
   AddStaticVehicle(447,-618.4994,1802.7914,0.8262,75.6742,13,124);
   AddStaticVehicle(476,1287.9806,1403.6949,11.5293,243.5030,119,117);
   AddStaticVehicle(476,1283.6156,1386.5103,11.5419,272.1057,89,91);
   AddStaticVehicle(553,1459.0042,1751.6881,12.1480,182.0888,116,9);
   AddStaticVehicle(553,1499.0662,1752.5410,12.1579,180.9566,116,9);
   AddStaticVehicle(553,1461.4415,1628.6957,12.1415,179.2513,116,9);
   AddStaticVehicle(553,1493.1433,1627.5371,12.1504,180.0271,116,9);
   AddStaticVehicle(553,1434.5272,1505.9254,12.1468,179.5356,116,9);
   AddStaticVehicle(588,-907.5217,1996.4999,60.8192,358.4760,13,124);
   AddStaticVehicle(548,-795.9123,2414.3711,158.5281,83.2206,0,0);
   AddStaticVehicle(598,2118.6438,1644.7252,10.4950,102.7650,0,1);
   AddStaticVehicle(521,2124.9121,1684.5918,10.0832,34.9981,44,68);
   AddStaticVehicle(523,2139.3687,1683.4556,10.0865,224.3105,1,0);
   AddStaticVehicle(420,2136.0461,1712.9703,10.5294,61.9722,6,1);
   AddStaticVehicle(420,2109.5334,1721.3896,10.5305,81.4388,6,1);
   AddStaticVehicle(427,2172.5049,1670.7118,10.9522,90.9776,0,1);
   AddStaticVehicle(427,2172.4875,1673.9496,10.9523,92.0971,0,1);
   AddStaticVehicle(427,2172.3638,1677.1737,10.9520,92.2242,0,1);
   AddStaticVehicle(427,2172.2437,1680.3688,10.9523,93.2887,0,1);
   AddStaticVehicle(427,2172.0188,1683.5275,10.9520,94.4577,0,1);
   AddStaticVehicle(427,2171.9478,1686.5872,10.9523,94.2898,0,1);
   AddStaticVehicle(461,2162.6965,1649.4224,10.6628,67.1045,65,1);
   AddStaticVehicle(461,2163.2717,1654.8124,10.6289,203.4182,65,1);
   AddStaticVehicle(420,1714.0078,1467.8071,10.5098,343.4581,6,1);
   AddStaticVehicle(402,1679.2280,1316.6279,10.6431,180.4150,90,90);
   AddStaticVehicle(521,1670.1116,1297.7041,10.3811,359.4012,87,118);
   AddStaticVehicle(567,1641.6333,1299.2090,10.6994,270.5966,97,96);
   AddStaticVehicle(519,1283.4996,1361.3173,11.5412,271.1681,1,6);
   AddStaticVehicle(519,1282.9691,1324.8823,11.5077,275.0476,7,6);
   AddStaticVehicle(415,1319.1040,1279.1709,10.5972,0.9657,62,1);
   AddStaticVehicle(468,-656.2997,2315.4631,138.1148,33.1422,6,6);
   AddStaticVehicle(460,-816.4113,2222.7375,42.3036,268.1870,1,3);
   AddStaticVehicle(460,-1029.2809,2237.2266,42.3354,260.8091,1,3);
   AddStaticVehicle(446,-861.8010,2045.7997,40.0589,40.2494,3,1);
   AddStaticVehicle(446,-800.5129,2076.6377,40.0745,21.2339,3,1);
   AddStaticVehicle(472,-754.1030,2090.2605,40.0859,10.6473,1,1);
   AddStaticVehicle(472,-714.9983,2094.2422,40.1306,2.2419,1,1);
   AddStaticVehicle(472,-670.7050,2096.9866,40.0881,351.7869,1,1);
   AddStaticVehicle(446,-630.9896,2085.7473,40.1147,341.2050,3,1);
   AddStaticVehicle(446,-582.6732,2064.6392,40.1338,327.3508,3,1);
   AddStaticVehicle(568,-441.3251,2215.7852,42.2279,189.4196,41,29);
   AddStaticVehicle(568,-422.2955,2225.2556,42.2757,0.0619,41,29);
   AddStaticVehicle(568,-371.7713,2234.5740,42.3614,285.9787,41,29);
   AddStaticVehicle(568,-360.1161,2203.4263,42.3028,113.6460,41,29);
   AddStaticVehicle(595,-819.6913,1974.3712,0.1565,212.9742,7,0);
   AddStaticVehicle(595,-794.3525,1986.4963,0.1797,211.1877,7,0);
   AddStaticVehicle(595,-774.6002,1995.8279,0.2046,208.6543,7,0);
   AddStaticVehicle(595,-758.5159,2004.4506,0.2495,216.6229,7,0);
   AddStaticVehicle(595,-740.9033,2010.8550,0.1804,188.1494,7,0);
   AddStaticVehicle(595,-717.6025,2012.7607,0.2647,185.2788,7,0);
   AddStaticVehicle(595,-693.1346,2013.7623,0.1525,179.1454,7,0);
   AddStaticVehicle(595,-663.5667,2009.2891,0.1862,168.5919,7,0);
   AddStaticVehicle(595,-639.4858,2002.0438,0.2461,151.0208,7,0);
   AddStaticVehicle(595,-622.5505,1993.4152,0.2186,154.1874,7,0);
   AddStaticVehicle(595,-605.4793,1986.6122,0.1611,154.7078,7,0);
   AddStaticVehicle(473,-796.8062,1813.2437,-0.2561,178.0240,1,1);
   AddStaticVehicle(539,-817.1433,1810.0961,6.3601,257.6780,16,3);
   AddStaticVehicle(539,-817.7199,1815.0702,6.3602,258.5105,16,3);
   AddStaticVehicle(539,-818.6281,1821.0846,6.3601,250.8575,16,3);
   AddStaticVehicle(514,-922.1779,2008.5720,61.5029,308.2941,66,42);
   AddStaticVehicle(470,2545.4875,2790.6111,10.8001,180.7214,0,0);
   AddStaticVehicle(404,2545.4734,2759.2034,10.5788,180.3534,113,1);
   AddStaticVehicle(404,2541.1711,2759.3005,10.5484,180.1443,113,1);
   AddStaticVehicle(542,2570.4070,2747.3474,10.5502,359.3741,84,87);
   AddStaticVehicle(487,2567.3267,2814.7434,27.9799,269.0231,6,116);
   AddStaticVehicle(487,2560.3228,2844.2458,27.9787,270.0135,6,116);


return 1;
}
//-------------------------------------------------------------------------
public Update0()
{
GameTextForAll("~n~~y~Time Remaining: ~w~15 minutes!", 3000, 3);
return 1;
}
//-------------------------------------------------------------------------
public Update1()
{
GameTextForAll("~n~~y~Time Remaining: ~w~5 minutes!", 3000, 3);
return 1;
}
//-------------------------------------------------------------------------
public OnPlayerConnect(playerid)
{
   SendClientMessage(playerid, 0xFF8A00AA, "Welcome to Sherman Dam Break-in GM 0.1 [coded by Chiarboss]");
   SendClientMessage(playerid, 0xFFFFFFAA, "Type /about if you don't now how this mode work");
   SendClientMessage(playerid,0xFFFF00AA,"Type /objectives for see the all objectives");
   GameTextForPlayer(playerid, "~g~- ~r~Sherman Dam ~y~Break-in ~g~-", 6000, 1);
   SendClientMessage(playerid,COLOR_RED,"Choice a character!");
   GivePlayerMoney(playerid, 10000);
   SetPlayerColor(playerid, COLOR_GREY); // Set the player's color to inactive
   inshop[playerid] = 0;
   invehicle[playerid] = 0;
   inairport[playerid] = 0;
   inray[playerid] = 0;

return 1;
}
//-------------------------------------------------------------------------
public OnPlayerText(playerid)
{
printf("OnPlayerText(%d)", playerid);
return 1;
}
//-------------------------------------------------------------------------
public OnPlayerInfoChange(playerid)
{
printf("OnPlayerInfoChange(%d)");
return 1;
}
//-------------------------------------------------------------------------
public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
{
new string[256];
new name[MAX_PLAYER_NAME];
if ( vehicleid == 1 || vehicleid == 2 || vehicleid == 3 || vehicleid == 4 || vehicleid == 5 || vehicleid == 6 || vehicleid == 7 || vehicleid == 8) {
GetPlayerName(playerid,name, sizeof(name));
format(string, sizeof(string), "..:: %s entered into Offensive Vehicle ::..", name);
SendClientMessageToAll(0xAA3333AA,string);
}

if ( vehicleid == 15) {
GetPlayerName(playerid,name, sizeof(name));
format(string, sizeof(string), "..:: %s entered into the secret CARGOBOB ::..", name);
SendClientMessageToAll(0xAA3333AA,string);
}

if ( vehicleid == 14) {
 if(GetPlayerScore(playerid) >= 3) {
  SetVehicleParamsForPlayer(82, playerid, 0, 0);
  removev = SetTimer("ExitVehicle", 30000, 0);
  invehicle[playerid] ++;
  GetPlayerName(playerid,name, sizeof(name));
  format(string, sizeof(string), "- Welcome to Hot Dog Armory, %s; -", name);
  SendClientMessage(playerid, 0xFF8A00AA, string);
  SendClientMessage(playerid, 0xFF8A00AA, "Here you can buy");
  SendClientMessage(playerid, 0xFF8A00AA, "----------------------------------");
  SendClientMessage(playerid, 0xFF8A00AA, "/ammunation [1000$]");
  SendClientMessage(playerid, 0xFF8A00AA, "/pistol [1200$]");
  SendClientMessage(playerid, 0xFF8A00AA, "----------------------------------");
}
else
{
   SetVehicleParamsForPlayer(31, playerid, 0, 1);
   if(gTeam[playerid] == TEAM_ATTACK) {GameTextForPlayer(playerid,"~n~~r~You ~w~dont have ~r~enough points! ~w~Kill to earn and ~r~come back!",3000,3);}
   else if(gTeam[playerid] == TEAM_DEFENCE) {GameTextForPlayer(playerid,"~n~~g~You ~w~dont have ~g~enough points! ~w~Kill to earn and ~g~come back!",3000,3);}
}
}

   printf("OnPlayerEnterVehicle(%d, %d, %d)", playerid, vehicleid, ispassenger);
return 1;
}
//-------------------------------------------------------------------------
public OnPlayerExitVehicle(playerid, vehicleid)
{
new string[256];
new name[MAX_PLAYER_NAME];
if ( vehicleid == 1 || vehicleid == 2 || vehicleid == 3 || vehicleid == 4 || vehicleid == 5 || vehicleid == 6 || vehicleid == 7 || vehicleid == 8) {
GetPlayerName(playerid,name, sizeof(name));
format(string, sizeof(string), "..:: %s exited from Offensive Vehicle ::..", name);
SendClientMessageToAll(0xAA3333AA,string);
}
if ( vehicleid == 15) {
GetPlayerName(playerid,name, sizeof(name));
format(string, sizeof(string), "..:: %s exited from the secret CARGOBOB ::..", name);
SendClientMessageToAll(0xAA3333AA,string);
}
printf("OnPlayerExitVehicle(%d, %d)", playerid, vehicleid);
return 1;
}
//-------------------------------------------------------------------------
public ExitVehicle(playerid)
{
   invehicle[playerid] = 0;
   SendClientMessage(playerid,0xFF8A00AA, "The invehicle variable has been disabled");
return 1;
}
//-------------------------------------------------------------------------
public OnPlayerSpawn(playerid) {
 SetPlayerInterior(playerid,0);
 PlayerPlaySound(playerid, 1098, 0, 0, 0);
 SendClientMessage(playerid, 0xFF8A00AA, "Type /shop to enter in your Personal Shop.");
 consecutive[playerid] = 0;

 if (gTeam[playerid] == TEAM_ATTACK) {
   GivePlayerWeapon(playerid, 24, 2000);
   GivePlayerWeapon(playerid, 27, 1500);
   GivePlayerWeapon(playerid, 30, 1250);
   SetPlayerColor(playerid,COLOR_RED); // Red
  if(inairport[playerid] == 0) {
  if(inray[playerid] == 0) {
   SetPlayerCheckpoint(playerid,2168.1194,1678.6793,10.8203,23.0);
   gPlayerCheckpointStatus[playerid] = CHECKPOINT_CALIGULA;
   }
   }
  if(inairport[playerid] == 1) {
   SetPlayerPos(playerid,1477.3075,1717.1224,10.8125);
   gPlayerCheckpointStatus[playerid] = CHECKPOINT_SHERMAN1;
   SetPlayerCheckpoint(playerid, -655.9024,2096.2085,60.3828, 1);
   }
  if(inray[playerid] == 1) {
  SetPlayerPos(playerid,-605.3276,1934.8464,7.0000);
  gPlayerCheckpointStatus[playerid] = CHECKPOINT_KACC;
  SetPlayerCheckpoint(playerid, 2613.9790,2721.8391,38.2143,10);
  }
}

 else if(gTeam[playerid] == TEAM_DEFENCE) {
   SetPlayerColor(playerid,COLOR_GREEN); // Green
   gPlayerCheckpointStatus[playerid] = CHECKPOINT_NONE;
   GameTextForPlayer(playerid,"~n~~g~Defend ~y~all objectives...", 5000, 3);
   GivePlayerWeapon(playerid, 23, 2000);
   GivePlayerWeapon(playerid, 25, 1500);
   GivePlayerWeapon(playerid, 31, 1100);
 }
return 1;
}
//-------------------------------------------------------------------------
public DefenceWin() {

	EndTheRound(DEFENCE_WIN);
return 1;
}
//-------------------------------------------------------------------------
//+----------------------+--------------------------+
//|   AntiTeamkill 0.3   |   Coded by Franc[e]sco   |
//|                      |   noffaganzo@hotmail.it  |
//|                      |            and           |
//|                      |   Yom yomki@hotmail.fr   |
//+----------------------+--------------------------+
//|   Dont edit the code without my permission.     |
//| To get permission contact noffaganzo@hotmail.it |
//+- - - - - - - - - - - Updates - - - - - - - - - -+
//| Yom - added console message when kick           |
//+-------------------------------------------------+
public OnPlayerDeath(playerid, killerid, reason)

{
new string[256];
new name[MAX_PLAYER_NAME];

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);
  GivePlayerMoney(playerid, -1000);
  GameTextForPlayer(playerid, "~n~~y~Wasted!", 1000, 3);
  GameTextForPlayer(killerid, "~n~~y~Good shot!", 1000, 3);
  DisablePlayerCheckpoint(playerid);
  gPlayerCheckpointStatus[playerid] = CHECKPOINT_NONE;
  	consecutive[killerid]++;
	st++;
	GetPlayerName(killerid,name, sizeof(name));
	if(st == 1)
	{
        format(string, sizeof(string), "%s made the first kill! +3 kills to him!",name);
        SetPlayerScore(killerid, GetPlayerScore(killerid) + 2);
        SendClientMessageToAll(COLOR_YELLOW,string);
	}
    if(consecutive[killerid] == 5)
    {
        format(string, sizeof(string), "%s is rockin' out!",name);
        SendClientMessageToAll(COLOR_YELLOW,string);
	}
	else if(consecutive[killerid] == 6)
	{
        format(string, sizeof(string), "OMG! %s is pwning you all!",name);
        SendClientMessageToAll(COLOR_YELLOW,string);
	}
	else if(consecutive[killerid] == 7)
	{
        format(string, sizeof(string), "WOW! %s ~w~is an omicide fury!",name);
        SendClientMessageToAll(COLOR_YELLOW,string);
	}
	else if(consecutive[killerid] >= 8)
	{
 		format(string, sizeof(string), "%s: the king of the server... 0.0",name);
        SendClientMessageToAll(COLOR_YELLOW,string);
	}

}
//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)
{
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_GREEN, string);
}
}
}
return 1;
}
//-------------------------------------------------------------------------
stock SetupPlayerForClassSelection(playerid)
{
	SetPlayerInterior(playerid,9);
	SetPlayerFacingAngle(playerid,0.0);
	SetPlayerPos(playerid,315.7802,972.0253,1961.8705);
	SetPlayerCameraPos(playerid,315.7802,975.0253,1961.8705);
	SetPlayerCameraLookAt(playerid,315.7802,972.0253,1961.8705);
	return;
}
//-------------------------------------------------------------------------
public OnPlayerRequestClass(playerid, classid)

{
printf("OnPlayerRequestClass(%d, %d)", playerid, classid);
SetupPlayerForClassSelection(playerid);
SetPlayerClass(playerid, classid);
gPlayerClass[playerid] = classid;

switch (classid) {

   case 0:

   {
   GameTextForPlayer(playerid, "~n~~r~Attack~n~~n~~w~Weapon: ~r~Desert Eagle, Combat Shotgun, AK47.", 5000, 3);
   }

   case 1,2:

   {
   GameTextForPlayer(playerid, "~n~~g~Defence~n~~n~~w~Weapon: ~g~Silenced Pistol, Shotgun, M4.", 5000, 3);
   }

}
return 1;
}
//-------------------------------------------------------------------------
SetPlayerClass(playerid, classid) {

if(classid == 0) {

gTeam[playerid] = TEAM_ATTACK;

} else if(classid == 1 || classid == 2) {

gTeam[playerid] = TEAM_DEFENCE;
}
}
//-------------------------------------------------------------------------
public OnPlayerEnterCheckpoint(playerid) {
new playervehicleid = GetPlayerVehicleID(playerid);

  switch (gPlayerCheckpointStatus[playerid]) {

		  case CHECKPOINT_CALIGULA: {
		  gPlayerCheckpointStatus[playerid] = CHECKPOINT_AIRPORT;
		  SetPlayerCheckpoint(playerid, 1477.3075,1717.1224,10.8125,5.0);
		  GameTextForPlayer(playerid,"~n~~r~Go ~w~to ~y~LV Airport!",5000,3);
		  }



		  case CHECKPOINT_AIRPORT: {
	  inairport[playerid] = 1;
      gPlayerCheckpointStatus[playerid] = CHECKPOINT_SHERMAN1;
				  SetPlayerCheckpoint(playerid, -655.9024,2096.2085,60.3828, 1);
      GameTextForPlayer(playerid, "~n~~r~Take ~w~a ~y~airplane ~w~and ~n~~r~go ~w~to ~r~disable ~n~~w~the ~r~first electrical circuit!", 5000, 3);
    }

    case CHECKPOINT_SHERMAN1: {
      gPlayerCheckpointStatus[playerid] = CHECKPOINT_SHERMAN2;
				  SetPlayerCheckpoint(playerid, -643.2387,2145.8738,60.3828, 1);
				  GameTextForPlayer(playerid, "~n~~r~Disable ~w~the ~r~second electrical circuit!", 5000, 3);
		  }

		  case CHECKPOINT_SHERMAN2: {
      gPlayerCheckpointStatus[playerid] = CHECKPOINT_RAY;
				  SetPlayerCheckpoint(playerid, -605.3276,1934.8464,7.0000, 2.5);
				  GameTextForPlayer(playerid, "~n~~r~Put ~w~the bomb on the ~r~principal control panel!", 5000, 3);
			 }

    case CHECKPOINT_RAY: {
	  inairport[playerid] = 0;
	  inray[playerid] = 1;
      gPlayerCheckpointStatus[playerid] = CHECKPOINT_KACC;
      SetVehicleParamsForPlayer(15,playerid,1,0);
				  SetPlayerCheckpoint(playerid, 2613.9790,2721.8391,38.2143, 10);
				  GameTextForPlayer(playerid, "~n~~r~Take ~w~the ~y~secret CARGOBOB ~w~and take it to the ~r~K.A.C.C. base!", 5000, 3);
			 }

				case CHECKPOINT_KACC: {
				  if (playervehicleid == 15 && gTeam[playerid] == TEAM_ATTACK) {
				    DisablePlayerCheckpoint(playerid);
        gPlayerCheckpointStatus[playerid] = CHECKPOINT_NONE;
	       EndTheRound(ATTACK_WIN);
      } else {
				    GameTextForPlayer(playerid, "~n~~w~You ~r~are not ~w~in the ~y~secret CARGOBOB!", 5000, 3);
			   }
	   }

   default: {
			  DisablePlayerCheckpoint(playerid);
   }
	}
	return 1;
}
//-------------------------------------------------------------------------
public OnVehicleDeath(vehicleid) {
  if (vehicleid == 15) {
    inexplo ++;
    if (inexplo >= 2) {
      EndTheRound(DEFENCE_WIN);
    }
  }
return 1;
}
//-------------------------------------------------------------------------
EndTheRound(winner) {
  switch (winner) {

    case ATTACK_WIN: {
      GameTextForAll("~n~~w~The attackers ~r~have carried ~w~to destination the ~y~secret CARGOBOB", 5000, 6);
      KillTimer(gRoundTimer);
    }

    case DEFENCE_WIN: {
      GameTextForAll("~n~~w~The ~y~secret CARGOBOB ~g~was successfully defended!", 5000, 6);
    }
  }

	 SetTimer("GameModeExitFunc", 5000, 0);
  for (new i=0; i<MAX_PLAYERS; i++) {
    if (IsPlayerConnected(i)) {
	     TogglePlayerControllable(i,0);
	   }
	 }
}
//-------------------------------------------------------------------------
public GameModeExitFunc()
{
for (new i=0; i<MAX_PLAYERS; i++) {
    if (IsPlayerConnected(i)) {
     SendClientMessage(i,0xFF8A00AA,"Thanks for have played at Sherman Dam Break-in GM 0.1");
	   }
	 }
	GameModeExit();
}
//-------------------------------------------------------------------------
public OnPlayerCommandText(playerid, cmdtext[])
{

 new string[256];
 new cmd[256];
 new idx;


 cmd = strtok(cmdtext, idx);

if(strcmp(cmd, "/objectives", true)==0){
SendClientMessage(playerid,0xFFFF00AA,"- First and second electric circuit at the Sherman Dam;");
SendClientMessage(playerid,0xFFFF00AA,"- Control panel on the Waterway;");
SendClientMessage(playerid,0xFFFF00AA,"- secret CARGOBOB;");
return 1;
}

if(strcmp(cmd, "/about", true)==0){
SendClientMessage(playerid,0xFFFFFFAA,"Sherman Dam Break-in GM 0.1");
SendClientMessage(playerid,0xFFFFFFAA,"This gamemode was created by Chiarboss;");
SendClientMessage(playerid,0xFFFFFFAA,"Do NOT copy this gamemode code or part of it.");
return 1;
}

if(strcmp(cmd, "/cmdlist", true)==0){
SendClientMessage(playerid,0xFFFF00AA,"/cmdlist ;");
SendClientMessage(playerid,0xFFFF00AA,"/objectives ;");
SendClientMessage(playerid,0xFFFF00AA,"/about ;");
SendClientMessage(playerid,0xFFFF00AA,"/shophelp ;");
SendClientMessage(playerid,0xFFFF00AA,"/hotdoghelp ;");
SendClientMessage(playerid,0xFFFF00AA,"/tips ;");
return 1;
}

if (strcmp(cmd, "/shophelp", true)==0) {
    SendClientMessage(playerid,0xFFFF00AA,"If you are spawned, press /shop for enter in your Personal Shop;");
    SendClientMessage(playerid,0xFFFF00AA,"Type /shotgun if you want buy a Shotgun for 1000$;");
    SendClientMessage(playerid,0xFFFF00AA,"type /sawnoff if you want buy a Sawn Off Shotgun for 1200$. Type /combat if you want");
    SendClientMessage(playerid,0xFFFF00AA,"buy a Combat Shotgun for 2000$. Every time that you choose an option,");
    SendClientMessage(playerid,0xFFFF00AA,"you will newly press /armory.");
    return 1;
  }

if(strcmp(cmd, "/hotdoghelp", true)==0){
SendClientMessage(playerid,0xFFFF00AA,"If you try to enter in the Hot Dog Van in Sherman Dam,");
SendClientMessage(playerid,0xFFFF00AA,"press /ammunation if you want teleport yourself at Fort Carson Ammunation for 1000$;");
SendClientMessage(playerid,0xFFFF00AA,"press /mac10 for buy a Mac10 for 1200$; press /rifle for buy a Rifle for 2000$;");
SendClientMessage(playerid,0xFFFF00AA,"If you have not bought nothing in 30 seconds, the relative invehicle1 variable");
SendClientMessage(playerid,0xFFFF00AA,"it will come automatically disabled.");
SendClientMessage(playerid,0xFFFF00AA,"W: If you dont have at least three points, you will not be able to use it.");
return 1;
}

if(strcmp(cmd, "/shop", true)==0)
{
  inshop[playerid] ++;
  new pname[MAX_PLAYER_NAME];
  GetPlayerName(playerid,pname, sizeof(pname));
  format(string, sizeof(string), "- Welcome to your Personal Shop, %s; -", pname);
  SendClientMessage(playerid, 0xFF8A00AA, string);
  SendClientMessage(playerid, 0xFF8A00AA, "Here you can buy:");
  SendClientMessage(playerid, 0xFF8A00AA, "----------------------------------");
  SendClientMessage(playerid, 0xFF8A00AA, "/shotgun [1000$]");
  SendClientMessage(playerid, 0xFF8A00AA, "/sawnoff [1200$]");
  SendClientMessage(playerid, 0xFF8A00AA, "/combat [2000$]");
  SendClientMessage(playerid, 0xFF8A00AA, "----------------------------------");
return 1;
}

if (strcmp(cmd, "/shotgun", true)==0) {
 if (inshop[playerid] == 1) {
  if(GetPlayerMoney(playerid) >= 1000){
  SendClientMessage(playerid, 0xFF8A00AA, "- You have bought a Shotgun for 1000$. -");
  GivePlayerWeapon(playerid, 25, 99999);
  GivePlayerMoney(playerid, -1000);
  inshop[playerid] = 0;
} else {
 SendClientMessage(playerid, 0xFF8A00AA, "You dont have enough money! Kill to earn and come back!");
}
return 1;
}
}

if (strcmp(cmd, "/sawnoff", true)==0) {
 if (inshop[playerid] == 1) {
  if(GetPlayerMoney(playerid) >= 1200){
  SendClientMessage(playerid, 0xFF8A00AA, "- You have bought a Sawn Off Shotgun for 1200$. -");
  GivePlayerWeapon(playerid, 26, 99999);
  GivePlayerMoney(playerid, -1200);
  inshop[playerid] = 0;
} else {
 SendClientMessage(playerid, 0xFF8A00AA, "You dont have enough money! Kill to earn and come back!");
}
return 1;
}
}

if (strcmp(cmd, "/combat", true)==0) {
 if (inshop[playerid] == 1) {
  if(GetPlayerMoney(playerid) >= 2000){
  SendClientMessage(playerid, 0xFF8A00AA, "- You have bought a Combat Shotgun for 2000$. -");
  GivePlayerWeapon(playerid, 27, 99999);
  GivePlayerMoney(playerid, -2000);
  inshop[playerid] = 0;
} else {
 SendClientMessage(playerid, 0xFF8A00AA, "You dont have enough money! Kill to earn and come back!");
}
return 1;
}
}

if(strcmp(cmd, "/ammunation", true) == 0)
{

if(invehicle[playerid] == 1)
{
if(GetPlayerMoney(playerid) >= 1000)
	{
        new name[MAX_PLAYER_NAME];
	    GetPlayerName(playerid,name, sizeof(name));
             format(string, sizeof(string), "- %s teleported to Fort Carson Ammunation for 1000$. -",name);
             SetPlayerPos(playerid,-314.9772,828.3542,14.2422);
 SendClientMessageToAll(0xFF8A00AA,string);
 GivePlayerMoney(playerid, -1000);
 invehicle[playerid] = 0;
 KillTimer(removev);
}
else
{
   SendClientMessage(playerid, 0xFF8A00AA, "You dont have enough money! Kill to earn and come back!");
}
return 1;
}
}

if(strcmp(cmd, "/pistol", true) == 0)
{

if(invehicle[playerid] == 1)
{
if(GetPlayerMoney(playerid) >= 1200)
	{
        new name[MAX_PLAYER_NAME];
	    GetPlayerName(playerid,name, sizeof(name));
             format(string, sizeof(string), "- %s bought a Pistol for 1200$. -",name);
 SendClientMessageToAll(0xFF8A00AA,string);
 GivePlayerMoney(playerid, -1200);
 GivePlayerWeapon(playerid,22,99999);
 invehicle[playerid] = 0;
 KillTimer(removev);
}
else
{
   SendClientMessage(playerid, 0xFF8A00AA, "You dont have enough money! Kill to earn and come back!");
}
return 1;
}
}

return 0;
}
//-------------------------------------------------------------------------
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;
}