All pastes #759180 Raw Edit

Someone

public text v1 · immutable
·published 2007-11-02 22:22 UTC
rendered paste body
//                              Prison Break GM 0.1b
//                              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

static gTeam[MAX_PLAYERS];
new score1=0;
new score2=0,scoredex=0;
new nplayers=0;

new randCHECK;
new gPlayerCheckpointStatus[MAX_PLAYERS];

enum PlayerSpawnInfo {
	Float:PlayerX,
	Float:PlayerY,
	Float:PlayerZ,
	Float:PlayerAngle
}

enum CheckpointSpawnInfo {
	Float:CheckX,
	Float:CheckY,
	Float:CheckZ,
}

new Float:gRandomSpawns[][PlayerSpawnInfo] =
{
	{294.9862,182.8244,1007.1719,176.6981},
	{291.1122,168.0318,1007.1794,5.1582},
	{232.1261,162.4986,1003.0234,271.0125},
	{236.7538,139.3263,1003.0234,356.0715},
	{208.7920,146.8226,1003.0234,178.8916},
	{214.3057,168.2244,1003.0234,174.2150},
	{215.8343,183.1265,1003.0313,179.8550},
	{210.7516,179.6956,1003.0378,264.9141},
	{209.8513,159.1564,1003.0234,264.6241}
};

new gRandomCheckpoints[][CheckpointSpawnInfo] =
{
	{2178.2871,2293.3889,10.8203},
    {2211.6868,2327.3047,10.8203},
    {2127.5640,2371.0303,10.8203},
    {2359.0493,2323.0769,8.1406},
    {2193.5957,2472.7678,10.8203},
    {2281.6025,2432.7834,-7.4531},
    {2384.4941,2470.2891,10.8203},
    {2298.8030,2574.9543,10.8227},
    {2389.2944,2692.3281,11.0156},
    {2491.6633,2773.0374,10.8001},
    {2243.6897,2727.8953,10.8203},
    {2413.5327,2815.1245,10.8203},
    {2526.1074,2537.0901,10.8203},
    {2407.4429,2551.1665,21.8750}
};

new gRandomWeapons[]={25,26,27,28,29,32};

//colori
#define COLOR_GREY 0xAFAFAFAA
#define COLOR_GREEN 0x33AA33AA
#define COLOR_YELLOW 0xFFFF00AA
#define COLOR_BLUE 0x1111AAFF
#define COLOR_PINK 0xFF66FFAA
#define COLOR_LIGHTBLUE 0x33CCFFAA
#define COLOR_DARKRED 0x660000AA
#define COLOR_ORANGE 0xFF9900AA
#define COLOR_RED 0xAA3333AA

#define TEAM_EVA 1
#define TEAM_POLICE 2

#define CHECK_SHOP 1
#define CHECK_REMORA 2

#define WARNING "You dont have enough money! Kill to earn and come back!"
//-------------------------------------------------------------------------
new tk[MAX_PLAYERS];
new consecutive[MAX_PLAYERS];
new st;
new inarmory[MAX_PLAYERS],armory,Menu:gMenu;
new briefing[MAX_PLAYERS],superbriefing[MAX_PLAYERS],briefingex,remora[MAX_PLAYERS];
new invehicle[MAX_PLAYERS],inshop[MAX_PLAYERS];
new removev[MAX_PLAYERS],removep[MAX_PLAYERS];
new gRoundTimer,DMTime;
//-------------------------------------------------------------------------
forward DMTimer();
forward ExitVehicle(playerid);
forward GameModeExitFunc();
//-------------------------------------------------------------------------
main()
{
   print("\nLoaded Prison Break GM 0.1\n");
}
//-------------------------------------------------------------------------
public OnGameModeInit() {

 	st = 0;
 	armory = 1;
 	briefingex = 1;
 	AllowInteriorWeapons(1);
    UsePlayerPedAnims();
    SetGameModeText("Prison Break GM 0.1b");
    ShowPlayerMarkers(1);
    ShowNameTags(1);
    DMTime = 1200;
    gRoundTimer = SetTimer("DMTimer", 900, 1);
    SetTimer("showkills",600000,0);
    
    AddStaticVehicle(598,2313.8635,2485.2583,3.0189,89.5957,0,1);
    AddStaticVehicle(598,2250.9019,2431.3232,3.0195,357.9146,0,1);
    AddStaticVehicle(598,2307.7917,2430.6523,-7.7086,358.7066,0,1);
    AddStaticVehicle(598,2303.3462,2430.6445,-7.7064,358.8187,0,1);
    AddStaticVehicle(427,2299.1582,2460.2100,3.4052,269.4389,0,1);
    AddStaticVehicle(427,2313.7556,2494.6633,-7.3212,90.2865,0,1);
    AddStaticVehicle(601,2228.5059,2458.8682,-7.6945,134.8329,1,1);
    AddStaticVehicle(432,2290.2031,2412.6062,10.5861,230.7378,1,1);
    AddStaticVehicle(433,2273.7000,2445.0596,10.9522,0.2772,4,4);
    AddStaticVehicle(433,2260.5081,2476.4238,10.9522,179.1590,4,4);
    AddStaticVehicle(497,2295.7390,2434.4946,47.1543,90.9098,0,1);
    AddStaticVehicle(417,2264.1208,2453.2156,47.1533,180.8143,11,6);
    AddStaticVehicle(522,2476.8210,2530.5593,21.4514,356.5124,8,82);
    AddStaticVehicle(506,2352.9023,2577.9810,10.5331,0.4087,7,7);
    //AddStaticVehicle(487,2359.0356,2412.9688,10.7050,269.5229,-1,-1);
    
    AddPlayerClass(0,189.0006,178.6303,1003.0234,269.5417,0,0,0,0,0,0);
    AddPlayerClass(104,193.6156,178.7599,1003.0234,271.6625,0,0,0,0,0,0);
    AddPlayerClass(247,189.9293,158.7564,1003.0234,272.2658,0,0,0,0,0,0);
    AddPlayerClass(248,196.7741,158.9106,1003.0234,267.8791,0,0,0,0,0,0);
    AddPlayerClass(282,0.0,0.0,0.0,0.0,0,0,0,0,0,0);
    
    AddStaticPickup(349, 15, 221.1082,170.7055,1003.0234);
    AddStaticPickup(342, 15, 215.3978,182.2558,1003.0313);
    AddStaticPickup(342, 15, 212.5045,182.3825,1003.0313);
    AddStaticPickup(346, 15, 208.8048,146.3170,1003.0234);
    AddStaticPickup(335, 15, 211.5125,146.6538,1003.0234);
    AddStaticPickup(358, 15, 2261.2910,2435.0044,46.9766);
    AddStaticPickup(358, 15, 2260.8521,2456.4946,46.9766);

    gMenu = CreateMenu("LVPD Shop",2, 200.0, 125.0, 220.0, 50.0);

    SetMenuColumnHeader(gMenu,0,"Element");
    SetMenuColumnHeader(gMenu,1,"Price");

    AddMenuItem(gMenu,0,"100-hp");
    AddMenuItem(gMenu,0,"Armour");
    AddMenuItem(gMenu,0,"Cshotgun");
    AddMenuItem(gMenu,0,"AK47");
    AddMenuItem(gMenu,0,"Rifle");
    AddMenuItem(gMenu,0,"Molotov");
    AddMenuItem(gMenu,0,"RPG");
    AddMenuItem(gMenu,1,"1000$");
    AddMenuItem(gMenu,1,"1200$");
    AddMenuItem(gMenu,1,"2000$");
    AddMenuItem(gMenu,1,"4500$");
    AddMenuItem(gMenu,1,"5000$");
    AddMenuItem(gMenu,1,"7200$");
    AddMenuItem(gMenu,1,"10000$");
    
    SetWorldTime(20);
    
    Checkpoint();
    
return 1;
}
//-------------------------------------------------------------------------
stock Checkpoint() {
randCHECK = random(sizeof(gRandomCheckpoints));
return;
}
//-------------------------------------------------------------------------
public DMTimer()
{
new tmp[256];
    if(DMTime != 0.0) {
    DMTime --;
    format(tmp, sizeof tmp, "~n~~n~~n~~n~~n~~n~~n~~n~~n~~n~~n~~y~%s", TimeConvert(DMTime));
    } else {
    CheckScore();
    return 1;
    }

	if(DMTime == 900) {
	for(new i=0; i<MAX_PLAYERS; i++) {
	if(gTeam[i] == TEAM_EVA) {
	GameTextForPlayer(i,"~n~~r~Time Remaining: ~w~5 minutes!", 3000, 3);
	}
	else {
	GameTextForPlayer(i,"~n~~b~Time Remaining: ~w~5 minutes!", 3000, 3);
	}
	}
    return 1;
    }
    else if(DMTime == 600) {
    if(nplayers!=0){
	new tmpnak[256];
	format(tmpnak,sizeof(tmpnak),"~n~~r~Eva Team: ~w~%d points ~n~~b~ Cops Team: ~w~%d points",score1,score2);
	GameTextForAll(tmpnak,3000,3);}
	return 1;
	}
    else if(DMTime == 300) {
   	for(new i=0; i<MAX_PLAYERS; i++) {
	if(gTeam[i] == TEAM_EVA) {
	GameTextForPlayer(i,"~n~~r~Time Remaining: ~w~5 minutes!", 3000, 3);
	}
	else {
	GameTextForPlayer(i,"~n~~b~Time Remaining: ~w~5 minutes!", 3000, 3);
	}
	}
    return 1;
    }
    else if(DMTime < 11) {
    GameTextForAll(tmp,1000,3);
    for(new i=0; i<MAX_PLAYERS; i++)PlayerPlaySound(i,1057,0,0,0);
    return 1;
    }

 	return 0;
}
//-------------------------------------------------------------------------
TimeConvert(seconds) {
	new tmp[256];
 	new minutes = floatround(seconds/60);
	seconds -= minutes*60;
	format(tmp, sizeof(tmp), "%d:%02d", minutes, seconds);
	return tmp;
}
//-------------------------------------------------------------------------
public OnPlayerSelectedMenuRow(playerid,row) {
new name[MAX_PLAYER_NAME];
new price,weapon,wguns,wname[256],stringshop[256];
GetPlayerName(playerid,name,sizeof(name));
switch(row) {
case 0:price=1000;
case 1:price=1200;
case 2:{price=2000;weapon=27;wguns=99999;wname="Combat Shotgun";}
case 3:{price=4500;weapon=30;wguns=99999;wname="AK47";}
case 4:{price=5000;weapon=33;wguns=500;wname="Rifle";}
case 5:{price=7200;weapon=18;wguns=10;wname="Molotov Pack";}
case 6:{price=10000;weapon=35;wguns=5;wname="RPG";}
}

if(GetPlayerMoney(playerid) >= price) {
ResetVariables(playerid);
if(row == 0) {
SetPlayerHealth(playerid,100);
format(stringshop,sizeof(stringshop),"- %s recharged his healthbar for 1000$ -",name);
SendClientMessageToAll(0xFF8A00AA,stringshop);
return 1;
}
else if(row == 1) {
SetPlayerArmour(playerid,100);
format(stringshop,sizeof(stringshop),"- %s bought a Beretta Armour for 1200$ -",name);
SendClientMessageToAll(0xFF8A00AA,stringshop);
return 1;
}
}else{return SendClientMessage(playerid,COLOR_RED,WARNING),ShowMenuForPlayer(gMenu,playerid);}

if(GetPlayerMoney(playerid) >= price) {
ResetVariables(playerid);
GivePlayerMoney(playerid,-price);
GivePlayerWeapon(playerid,weapon,wguns);
format(stringshop,sizeof(stringshop),"- %s bought a %s for %d$ -",name,wname,price);
for(new i=0; i<MAX_PLAYERS; i++) {
if(briefingex == 1 && briefing[i] == 1 || superbriefing[i] == 1) {
SendClientMessage(i,COLOR_RED,stringshop);
return true;
}
}
}else{SendClientMessage(playerid,0xFF8A00AA,WARNING);ShowMenuForPlayer(gMenu,playerid);}

return 1;
}
//-------------------------------------------------------------------------
stock ResetVariables(playerid) {
KillTimer(removep[playerid]);
TogglePlayerControllable(playerid,1);
SetPlayerPos(playerid,258.6853,188.9287,1008.1719);
inshop[playerid] = 0;
return;
}
public OnPlayerExitedMenu(playerid) {ResetVariables(playerid);return 1;}
//-------------------------------------------------------------------------
public OnPlayerConnect(playerid) {

    SendClientMessage(playerid, 0xFF8A00AA, "Welcome to Prison Break GM 0.1b [coded by Chiarboss]");
    SendClientMessage(playerid, 0xFF8A00AA, "Big thanks to [FBI]vale for inspiring me.");
    SendClientMessage(playerid, 0xFFFFFFAA, "Type /about if you don't now how this mode work");
    SendClientMessage(playerid, 0xFFFF00AA, "Type /help for knowing the rules of GM");
    GameTextForPlayer(playerid, "~g~- ~r~Prison Break ~g~-", 6000, 1);
    SendClientMessage(playerid,COLOR_RED,"Choice a character!");
    GivePlayerMoney(playerid, 10000);
    SetPlayerColor(playerid, COLOR_GREY); // Set the player's color to inactive
    briefing[playerid] = 1;
    inarmory[playerid] = 0;
    invehicle[playerid] = 0;
    inshop[playerid] = 0;
    remora[playerid] = 0;
    nplayers++;

	return 1;
}
//-------------------------------------------------------------------------
public OnPlayerText(playerid,text[])
{
  if(text[0] == '!') {
    new name[24], string[256];
    GetPlayerName(playerid, name, 24);
    format(string, sizeof(string), "%s (TEAM): %s", name, text[1]);

    for(new i = 0; i < MAX_PLAYERS; i++) {
          if(IsPlayerConnected(i)) {
                if(gTeam[i] == gTeam[playerid])
                SendClientMessage(i, GetPlayerColor(playerid), string);
                }
          }
	return 0;
	}
  return 1;
}
//-------------------------------------------------------------------------
public OnPlayerInfoChange(playerid)
{
printf("OnPlayerInfoChange(%d)");
return 1;
}
//-------------------------------------------------------------------------
public OnPlayerStateChange(playerid, newstate, oldstate)
{
new randSHOP=random(sizeof(gRandomWeapons));
new string[256];
new name[MAX_PLAYER_NAME];
new vehicleid = GetPlayerVehicleID(playerid);
if(newstate == PLAYER_STATE_DRIVER) {
if (vehicleid == 8 || vehicleid == 9 || vehicleid == 10) {
GetPlayerName(playerid,name, sizeof(name));
format(string, sizeof(string), "..:: %s entered into Offensive Vehicle ::..", name);
for(new i=0; i<MAX_PLAYERS; i++) {
if(gTeam[playerid] == TEAM_EVA && briefingex == 1 && briefing[playerid] == 1) {
SendClientMessage(i,COLOR_BLUE,string);
}
}
}
if ( vehicleid == 7) {
if(gTeam[playerid] == TEAM_POLICE) {
 if(GetPlayerScore(playerid) >= 2) {
  TogglePlayerControllable(playerid,0);
  removev[playerid] = SetTimerEx("ExitVehicle", 30000, 0, "d", playerid);
  invehicle[playerid] = 1;
  GetPlayerName(playerid,name, sizeof(name));
  format(string, sizeof(string), "- Welcome to SWAT Van Shop, %s; -", name);
  SendClientMessage(playerid, 0xFF8A00AA, string);
    SendClientMessage(playerid,0xFF8A00AA,"Type (/v)shop for view the weapons availables");
  SendClientMessage(playerid,COLOR_RED,"Type /exit for exit from the Vehicle Shop.");
	} else
{
   RemovePlayerFromVehicle(playerid);
   GameTextForPlayer(playerid,"~n~~b~You ~w~dont have ~b~enough points! ~w~Kill to earn and ~b~come back!",3000,3);
}
} else {
GivePlayerWeapon(playerid,gRandomWeapons[randSHOP],550);
}
}
}

printf("OnPlayerStateChange(%d, %d, %d)", playerid, newstate, oldstate);
return 1;
}
//-------------------------------------------------------------------------
public ExitVehicle(playerid) {

	if(invehicle[playerid] == 1) {
    invehicle[playerid] = 0;
    KillTimer(removev[playerid]);
    TogglePlayerControllable(playerid,1);
    RemovePlayerFromVehicle(playerid);
    SendClientMessage(playerid, 0xFF8A00AA, "You got removed from SWAT Van! Dont use it like a n00b!");
	}
	else if(inshop[playerid] == 1) {
	ResetVariables(playerid);
	}
	
	return 1;
}
//-------------------------------------------------------------------------
public OnPlayerInteriorChange(playerid,newinteriorid,oldinteriorid) {
new string[256],name[MAX_PLAYER_NAME];
GetPlayerName(playerid,name,sizeof(name));
if(oldinteriorid == 3 && newinteriorid == 0) {
format(string,sizeof(string),"- %s is out from the district. -",name);
for(new i=0; i<MAX_PLAYERS; i++) {
if(gTeam[i] != gTeam[playerid] || superbriefing[i] == 1) {
SendClientMessage(i,COLOR_BLUE,string);
return true;
}
}
}

return 1;
}
//-------------------------------------------------------------------------
public OnPlayerRequestSpawn(playerid)
{
        ClearAnimations(playerid);
        PlayerPlaySound(playerid,1057,0,0,0);
        return 1;
}
//-------------------------------------------------------------------------
public OnPlayerExitVehicle(playerid, vehicleid)
{
new string[256];
new name[MAX_PLAYER_NAME];
if (vehicleid == 8 || vehicleid == 9 || vehicleid == 10) {
GetPlayerName(playerid,name, sizeof(name));
format(string, sizeof(string), "..:: %s exited from Offensive Vehicle ::..", name);
for(new i=0; i<MAX_PLAYERS; i++) {
if(briefing[i] == 1 && briefingex == 1 && gTeam[i] != gTeam[playerid]) {
SendClientMessage(i,0xAA3333AA,string);
}
}
}
printf("OnPlayerExitVehicle(%d, %d)", playerid, vehicleid);
return 1;
}
//-------------------------------------------------------------------------
public OnPlayerSpawn(playerid)

{

new randSPAWN=random(sizeof(gRandomSpawns));
consecutive[playerid] = 0;
DisablePlayerCheckpoint(playerid);
SetPlayerInterior(playerid,3);
PlayerPlaySound(playerid, 1098, 0, 0, 0);

if(gTeam[playerid] == TEAM_EVA) {
SetPlayerColor(playerid,COLOR_RED); // Red
GameTextForPlayer(playerid,"~n~~n~~r~Go ~w~to the ~r~BIG CHECKPOINT!", 5000, 3);
SetPlayerCheckpoint(playerid,gRandomCheckpoints[randCHECK][CheckX],gRandomCheckpoints[randCHECK][CheckY],gRandomCheckpoints[randCHECK][CheckZ],5.0);

 }

else if(gTeam[playerid] == TEAM_POLICE) {

SetPlayerPos(playerid,gRandomSpawns[randSPAWN][PlayerX],gRandomSpawns[randSPAWN][PlayerY],gRandomSpawns[randSPAWN][PlayerZ]);
SetPlayerFacingAngle(playerid,gRandomSpawns[randSPAWN][PlayerAngle]);
SetPlayerColor(playerid,COLOR_BLUE); // Blue
SendClientMessage(playerid,0xFF8A00AA,"Type /armory to enter in your Personal Armory.");
GameTextForPlayer(playerid,"~n~~n~~b~Control ~w~the prisoners...", 5000, 3);
GivePlayerWeapon(playerid, 24, 2000);
GivePlayerWeapon(playerid, 3, 1);
if(remora[playerid] == 0) {
gPlayerCheckpointStatus[playerid] = CHECK_SHOP;
SetPlayerCheckpoint(playerid,257.5619,186.1184,1008.1719,2.5);
}else{
gPlayerCheckpointStatus[playerid] = CHECK_REMORA;
SetPlayerCheckpoint(playerid,gRandomCheckpoints[randCHECK][CheckX],gRandomCheckpoints[randCHECK][CheckY],gRandomCheckpoints[randCHECK][CheckZ],5.0);
remora[playerid] = 0;
}

 }

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

    if(gTeam[killerid]==TEAM_POLICE){scoredex++;if(scoredex==2){score2++;scoredex=0;}}
	consecutive[killerid]++;
	st++;
	GetPlayerName(killerid,name, sizeof(name));
	SetPlayerScore(killerid, GetPlayerScore(killerid) + 1);
	if(st != 1 && consecutive[killerid] != 5 && consecutive[killerid] !=6 && consecutive[killerid] !=7 && consecutive[killerid] !=8) {
    GameTextForPlayer(playerid, "~n~~y~Wasted!", 1000, 3);
    GameTextForPlayer(killerid, "~n~~y~Good shot!", 1000, 3);
    }
    else if(st == 1)
	{
        format(string, sizeof(string), "~y~%s ~w~made the first kill! +3 kills to him!",name);
        SetPlayerScore(killerid, GetPlayerScore(killerid) + 2);
        GameTextForAll(string, 6000, 6);
	}
    else if(consecutive[killerid] == 5)
    {
        format(string, sizeof(string), "~y~%s ~w~is rockin' out!",name);
        GameTextForAll(string, 6000, 6);
	}
	else if(consecutive[killerid] == 6)
	{
        format(string, sizeof(string), "OMG! ~y~%s ~w~is pwning you all!",name);
        GameTextForAll(string, 6000, 6);
	}
	else if(consecutive[killerid] == 7)
	{
        format(string, sizeof(string), "WOW! ~y~%s ~w~is an omicide fury!",name);
        GameTextForAll(string, 6000, 6);
	}
	else if(consecutive[killerid] >= 8)
	{
 		format(string, sizeof(string), "~y~%s~w~: the king of the server... 0.0",name);
        GameTextForAll(string, 6000, 6);
	}
    SendDeathMessage(killerid,playerid,reason);
	SetPlayerScore(killerid,GetPlayerScore(killerid)+1);
    GivePlayerMoney(killerid, 1000);
    GivePlayerMoney(playerid, -1000);
	} 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,classid)
{
PlayerPlaySound(playerid, 1058, 0, 0, 0);
SetPlayerInterior(playerid,3);
switch(classid) {
   case 0,1:

   {
   SetPlayerCameraPos(playerid, 200.8300,179.2358,1003.0324);
   SetPlayerPos(playerid, 203.4223,179.2181,1003.0324);
   SetPlayerFacingAngle(playerid, 87.5657);
   SetPlayerCameraLookAt(playerid, 200.8300,179.2358,1003.0324);
   GameTextForPlayer(playerid, "~n~~r~EVA Squad Prisoners", 5000, 3);
   }

   case 2,3:

   {
   SetPlayerCameraPos(playerid, 201.4807,158.2105,1003.0234);
   SetPlayerPos(playerid, 203.6180,158.1124,1003.0234);
   SetPlayerFacingAngle(playerid, 87.5657);
   SetPlayerCameraLookAt(playerid, 201.4807,158.2105,1003.0234);
   GameTextForPlayer(playerid, "~n~~r~EVA Squad Prisoners", 5000, 3);
   }

   case 4:

   {
   SetPlayerCameraPos(playerid, 260.1319,179.3298,1003.0234);
   SetPlayerPos(playerid, 265.5176,179.4147,1003.0234);
   SetPlayerFacingAngle(playerid, 88.8190);
   SetPlayerCameraLookAt(playerid, 260.1319,179.3298,1003.0234);
   GameTextForPlayer(playerid, "~n~~b~Cop~n~~n~~w~Weapons: ~b~Desert Eagle, Nitestick", 5000, 3);
   }
  }
return;
}
//-------------------------------------------------------------------------
public OnPlayerRequestClass(playerid, classid)
{
printf("OnPlayerRequestClass(%d, %d)", playerid, classid);
SetPlayerClass(playerid, classid);
SetupPlayerForClassSelection(playerid,classid);
ApplyAnimation(playerid,"DANCING","dnce_M_c",4.0,1,0,0,0,-1);
return 1;
}
//-------------------------------------------------------------------------
public OnPlayerEnterCheckpoint(playerid) {

new name[MAX_PLAYER_NAME];
new string[256];
GetPlayerName(playerid,name,sizeof(name));

if(gTeam[playerid] == TEAM_EVA) {
GameTextForAll("~y~EVA Team ~w~scored!", 5000, 6);
score1++;
format(string,sizeof(string),"Thanks a lot %s for your job!",name);
Checkpoint();
for(new i=0; i<MAX_PLAYERS; i++) {
if(gTeam[i] == TEAM_EVA) {
SendClientMessage(i,0xC10000AA,string);
GivePlayerMoney(playerid,5000);
SetPlayerHealth(i,0);return true;}}
} else {
if(gPlayerCheckpointStatus[playerid] == CHECK_SHOP) {
ShowMenuForPlayer(gMenu,playerid);
TogglePlayerControllable(playerid,0);
SendClientMessage(playerid, COLOR_GREEN, "Use the arrow keys to move through the menu, space to select or enter to exit.");
SendClientMessage(playerid, 0xFF8A00AA, "PS: if you dont exit the shop in 30 second you will be removed.");
removep[playerid] = SetTimerEx("ExitVehicle", 30000, 0, "d", playerid);
}else{
GameTextForPlayer(playerid,"~r~Defence ~y~this area!",5000,3);
}
}

return 1;
}
//-------------------------------------------------------------------------
public OnPlayerCommandText(playerid, cmdtext[])
{

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

 cmd = strtok(cmdtext, idx);
 
 if(strcmp(cmd, "/help", true)==0){
SendClientMessage(playerid,0xFFFF00AA,"This is a special Gamemode,");
SendClientMessage(playerid,0xFFFF00AA,"you can spawn in two different team: Team Eva and Team Cops");
SendClientMessage(playerid,0xFFFF00AA,"The first team will spawn in the cell zone of the Police District,");
SendClientMessage(playerid,0xFFFF00AA,"and must go to the Big Checkpoint at the Parking of the District for make points ;");
SendClientMessage(playerid,0xFFFF00AA,"while the second team will must kill the prisoners (EVA Team) for make points.");
SendClientMessage(playerid,0xFFFF00AA,"The first team that have more points at the end of the GM,");
SendClientMessage(playerid,0xFFFF00AA,"will win it. Numerous bonus and tips to discover will not lack sure… ");
return 1;
}

if(strcmp(cmd, "/about", true)==0){
SendClientMessage(playerid,0xFFFFFFAA,"Prison Break GM 0.1b");
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 /help /about /kill /score /heal ;");
SendClientMessage(playerid,0xFFFF00AA,"/armoryhelp /swatvanhelp /check /briefing ;");
SendClientMessage(playerid,0xFFFF00AA,"/superbriefing #; /armorylock /briefinglock");
return 1;
}

if(strcmp(cmd, "/armoryhelp", true)==0){
SendClientMessage(playerid,0xFFFF00AA,"If you are spawned and if you are of the PT, press /armory for enter in your");
SendClientMessage(playerid,0xFFFF00AA,"type /smokeb for buy a Smoke Bomb for 1000$;");
SendClientMessage(playerid,0xFFFF00AA,"type /grenades for buy a Grenades Pack for 1200$");
SendClientMessage(playerid,0xFFFF00AA,"type /charges for buy a Sachet Charges Pack for 2000$;");
return 1;
}

if(strcmp(cmd, "/swatvanhelp", true)==0){
SendClientMessage(playerid,0xFFFF00AA,"If you try to enter in the SWAT Van on the Bunker Parking,");
SendClientMessage(playerid,0xFFFF00AA,"press /ammunation if you want teleport yourself at LV Ammunation for 1000$;");
SendClientMessage(playerid,0xFFFF00AA,"press /sniping if you want teleport to Sniping Portal for 1200$; press /spistol");
SendClientMessage(playerid,0xFFFF00AA,"for buy a Silenced Pistol for 2000$;");
SendClientMessage(playerid,0xFFFF00AA,"If you have not bought nothing in 30 seconds, the relative invehicle 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,"/kill", true)==0){
SetPlayerHealth(playerid,0);
return 1;
}

if(strcmp(cmd, "/score", true)==0){
if(gTeam[playerid] == TEAM_EVA){
if(nplayers!=0){new tmp[256];
format(tmp,sizeof(tmp),"~n~~r~Your currently Team: ~w~%d points ~n~~b~Cops Team: ~w~%d points",score1,score2);
GameTextForAll(tmp,3000,3);}
}
if(gTeam[playerid] == TEAM_POLICE){
if(nplayers!=0){new tmp[256];
format(tmp,sizeof(tmp),"~n~~r~EVA Team: ~w~%d points ~n~~b~Your currently Team: ~w~%d points",score1,score2);
GameTextForAll(tmp,3000,3);}
}
return 1;
}

if(strcmp(cmd, "/armorylock", true)==0) {
if(IsPlayerAdmin(playerid) == 1) {
new pname[MAX_PLAYER_NAME];
GetPlayerName(playerid,pname, sizeof(pname));
 if(armory == 1) {
 armory = 0;
 format(string, sizeof(string), "The Admin %s has disabled the /armory command.", pname);
 SendClientMessageToAll(0xFF8A00AA,string);
} else {
armory = 1;
format(string, sizeof(string), "The Admin %s has enabled the /armory command.", pname);
SendClientMessageToAll(0xFF8A00AA,string);
}
} else {
SendClientMessage(playerid,COLOR_RED,"You arent admin!!!");
}
return 1;
}

if(strcmp(cmd,"/check", true)==0)
{
if(gTeam[playerid] == TEAM_POLICE) {
if(GetPlayerMoney(playerid) >= 10000) {
GivePlayerMoney(playerid,-1200);
new pid;
new tmp[256],name[MAX_PLAYER_NAME],playername[MAX_PLAYER_NAME];
GetPlayerName(playerid,name,sizeof(name));
tmp = strtok(cmdtext,idx);
if(!strlen(tmp)) {
remora[playerid] = 1;
DisablePlayerCheckpoint(playerid);
SetPlayerCheckpoint(playerid,gRandomCheckpoints[randCHECK][CheckX],gRandomCheckpoints[randCHECK][CheckY],gRandomCheckpoints[randCHECK][CheckZ],5.0);
gPlayerCheckpointStatus[playerid] = CHECK_REMORA;
format(string,sizeof(string),"- %s has activated the Remora Mode to himself. -",name);
for(new i=0; i<MAX_PLAYERS; i++) {
if(gTeam[i] == gTeam[playerid] || superbriefing[i] == 1) {
SendClientMessage(i,COLOR_BLUE,string);
return true;
}
}
return true;
}
pid = strval(tmp);
if(pid != INVALID_PLAYER_ID) {
GetPlayerName(pid,playername,sizeof(playername));
remora[pid] = 1;
DisablePlayerCheckpoint(pid);
SetPlayerCheckpoint(pid,gRandomCheckpoints[randCHECK][CheckX],gRandomCheckpoints[randCHECK][CheckY],gRandomCheckpoints[randCHECK][CheckZ],5.0);
gPlayerCheckpointStatus[pid] = CHECK_REMORA;
format(string,sizeof(string),"- %s has activated the Remora Mode to %s -",name,playername);
for(new i=0; i<MAX_PLAYERS; i++) {
if(gTeam[i] == gTeam[playerid] || superbriefing[i] == 1) {
SendClientMessage(i,COLOR_BLUE,string);
return true;
}
}
} else {
SendClientMessage(playerid,COLOR_RED,"This is an invalid playerID. Press TAB for see the all valids playerID");
}
} else {
SendClientMessage(playerid, 0xFF8A00AA, "You dont have enough money! Kill to earn and come back!");
}
} else {
SendClientMessage(playerid,0xFF8A00AA,"Only Team Police can use this command.");
}
return 1;
}

if(strcmp(cmd,"/briefing",true)==0) {
if(briefingex == 1) {
 if(briefing[playerid] == 1) {
 briefing[playerid] = 0;
 SendClientMessage(playerid,0xFF8A00AA,"You have disabled the Briefing Mode to yourself");
} else {
briefing[playerid] = 1;
SendClientMessage(playerid,0xFF8A00AA,"You have enabled the Briefing Mode to yourself");
}
} else {
SendClientMessage(playerid,COLOR_RED,"Briefing Mode is already disabled!");
}
return 1;
}

if(strcmp(cmd,"/superbriefing",true)==0) {
if(gTeam[playerid] == TEAM_EVA) {
new name[MAX_PLAYER_NAME]; GetPlayerName(playerid,name,sizeof(name));
new pid,tmp[256],playername[MAX_PLAYER_NAME];
GetPlayerName(pid,playername,sizeof(playername));
tmp = strtok(cmdtext,idx);
if(!strlen(tmp)) {
if(briefingex == 1) {
if(superbriefing[playerid] == 0) {
if(GetPlayerMoney(playerid) >= 10000) {
superbriefing[playerid] = 1;
format(string,sizeof(string),"- %s has enabled the SuperBriefing Mode to himself. -",name);
for(new i=0; i<MAX_PLAYERS; i++){if(gTeam[i] == gTeam[playerid]){SendClientMessage(i,0xFF8A00AA,string);}}
}else{SendClientMessage(playerid,0xFF8A00AA, "You dont have enough money! Kill to earn and come back!");}
}else{
superbriefing[playerid] = 0;
format(string,sizeof(string),"- %s has disabled the SuperBriefing Mode to himself. -",name);
for(new i=0; i<MAX_PLAYERS; i++){if(gTeam[i] == gTeam[playerid]){SendClientMessage(i,0xFF8A00AA,string);}}
}
return 1;
}
pid = strval(tmp);
if(pid != INVALID_PLAYER_ID) {
superbriefing[pid] = 1;
format(string,sizeof(string),"- %s has placed the SuperBriefing firmware to %s -",name,playername);
for(new i=0; i<MAX_PLAYERS; i++){if(gTeam[i] == gTeam[playerid]){SendClientMessage(i,0xFF8A00AA,string);}}
} else {
SendClientMessage(playerid,COLOR_RED,"This is an invalid playerID. Press TAB for see the all valids playerID");
}
} else {
SendClientMessage(playerid,COLOR_RED,"Briefing Mode is global disabled!");
}
} else {
SendClientMessage(playerid,0xFF8A00AA,"Only Team EVA can use this command.");
}
return 1;
}

if(strcmp(cmd,"/briefinglock",true)==0) {
if(IsPlayerAdmin(playerid) == 1) {
new pname[MAX_PLAYER_NAME];
GetPlayerName(playerid,pname, sizeof(pname));
 if(briefingex == 1) {
 briefingex = 0;
 format(string, sizeof(string), "The Admin %s has disabled the Briefing Mode.", pname);
 SendClientMessageToAll(0xFF8A00AA,string);
} else {
briefingex = 1;
format(string, sizeof(string), "The Admin %s has enabled the Briefing Mode.", pname);
SendClientMessageToAll(0xFF8A00AA,string);
}
} else {
SendClientMessage(playerid,COLOR_RED,"You arent admin!!!");
}
return 1;
}

if(strcmp(cmd,"/heal",true) == 0) {
if(gTeam[playerid] == TEAM_EVA) {
new playername[MAX_PLAYER_NAME];
new name[MAX_PLAYER_NAME];
new tmp[256];
new pid;
tmp = strtok(cmdtext,idx);
if(!strlen(tmp)) {
SendClientMessage(playerid,COLOR_RED,"Usage: /heal [playerid]");
return 1;
}
pid = strval(tmp);
GetPlayerName(pid,playername,sizeof(playername));
GetPlayerName(playerid,name, sizeof(name));
if(pid == playerid) {
SendClientMessage(playerid,COLOR_RED,"You cannot heal yourself.");
}
if(pid != INVALID_PLAYER_ID) {
SetPlayerHealth(pid,100);
new Float:health;
GetPlayerHealth(playerid,health);
SetPlayerHealth(playerid,health-25);
format(string,sizeof(string),"- %s has been healed by %s. -",playername,name);
for(new i=0; i<MAX_PLAYERS; i++) {
if(gTeam[i] == gTeam[playerid]) {
SendClientMessage(i,0xFF8A00AA,string);
return true;
}
}
} else {
SendClientMessage(playerid,COLOR_RED,"This is an invalid playerID. Press TAB for see the all valids playerID");
}
} else {
SendClientMessage(playerid,0xFF8A00AA,"Only Team EVA can use this command.");
}
return 1;
}

if(strcmp(cmd, "/armory", true)==0||strcmp(cmd,"/a",true)==0)
{
cmd=strtok(cmdtext,idx);
if(gTeam[playerid] == TEAM_POLICE) {
 if(armory == 1) {
if(inarmory[playerid]==1) {
if(strcmp(cmd, "smokeb", true,6) == 0)
{
if(GetPlayerMoney(playerid) >= 1000)
 {
  SendClientMessage(playerid, 0xFF8A00AA, "- You have bought a Smoke Bomb for 1000$. -");
  GivePlayerWeapon(playerid, 17, 1);
  GivePlayerMoney(playerid, -1000);
  inarmory[playerid] = 0;
}else{SendClientMessage(playerid, 0xFF8A00AA, "You dont have enough money! Kill to earn and come back!");}return 1;}

if(strcmp(cmd,"grenades", true,8)==0) {
  if(GetPlayerMoney(playerid) >= 1200){
  SendClientMessage(playerid, 0xFF8A00AA, "- You have bought a Grenades Pack for 1200$. -");
  GivePlayerWeapon(playerid, 16, 20);
  GivePlayerMoney(playerid, -1200);
  inarmory[playerid] = 0;
}else{SendClientMessage(playerid, 0xFF8A00AA, "You dont have enough money! Kill to earn and come back!");}return 1;}

if(strcmp(cmd, "charges", true,7) == 0)
{
if(GetPlayerMoney(playerid) >= 2000)
 {
  SendClientMessage(playerid, 0xFF8A00AA, "- You have bought a Sachet Charges for 2000$. -");
  GivePlayerWeapon(playerid, 39, 20);
  GivePlayerMoney(playerid, -2000);
  inarmory[playerid] = 0;
}else{SendClientMessage(playerid, 0xFF8A00AA, "You dont have enough money! Kill to earn and come back!");}return 1;}
}
inarmory[playerid] = 1;
new pname[MAX_PLAYER_NAME];
  GetPlayerName(playerid,pname, sizeof(pname));
  format(string, sizeof(string), "- Welcome to your Personal Armory, %s; -", pname);
  SendClientMessage(playerid, COLOR_RED, string);
  SendClientMessage(playerid, 0xFF8A00AA, "Usage: (/a)rmory [wname]");
  SendClientMessage(playerid, 0xFF8A00AA, "----------------------------------");
  SendClientMessage(playerid, 0xFF8A00AA, "- smokeb [1000$]");
  SendClientMessage(playerid, 0xFF8A00AA, "- grenades [1200$]");
  SendClientMessage(playerid, 0xFF8A00AA, "- charges [2000$]");
  SendClientMessage(playerid, 0xFF8A00AA, "----------------------------------");
}else{SendClientMessage(playerid,0xFF8A00AA,"This command has been disabled.");}
}else{SendClientMessage(playerid,0xFF8A00AA,"Only Team Police can use this command.");}
return 1;
}

if(strcmp(cmd,"/vshop",true)==0||strcmp(cmd,"/v",true)==0) {
cmd=strtok(cmdtext,idx);
if(invehicle[playerid]==1) {
if(strcmp(cmd, "ammunation", true,9) == 0||strcmp(cmd,"ammu",true,4)==0)
{

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

if(strcmp(cmd,"sniping",true,7)==0) {
if(GetPlayerMoney(playerid) >= 1200) {
new name[MAX_PLAYER_NAME];
GetPlayerName(playerid,name, sizeof(name));
 format(string, sizeof(string), "- %s teleported to Sniping Portal for 1200$. -",name);
 SendClientMessageToAll(0xFF8A00AA,string);
 GivePlayerMoney(playerid, -1200);
 invehicle[playerid] = 0;
 SetPlayerPos(playerid,2261.6462,2445.0271,46.9766);
 SetPlayerFacingAngle(playerid,89.9468);
 SetPlayerInterior(playerid,0);
 KillTimer(removev[playerid]);
}else{SendClientMessage(playerid, 0xFF8A00AA, "You dont have enough money! Kill to earn and come back!");}return 1;}


if(strcmp(cmd, "spistol", true,7) == 0)
{
if(GetPlayerMoney(playerid) >= 2000)
	{
        new name[MAX_PLAYER_NAME];
	    GetPlayerName(playerid,name, sizeof(name));
             format(string, sizeof(string), "- %s bought a Silenced Pistol for 2000$. -",name);
 SendClientMessageToAll(0xFF8A00AA,string);
 GivePlayerMoney(playerid, -2000);
 GivePlayerWeapon(playerid,33,500);
 invehicle[playerid] = 0;
 KillTimer(removev[playerid]);
}else{SendClientMessage(playerid, 0xFF8A00AA, "You dont have enough money! Kill to earn and come back!");}return 1;}
SendClientMessage(playerid, 0xFF8A00AA, "Usage: (/v)shop [wname]");
SendClientMessage(playerid, 0xFF8A00AA, "----------------------------------");
SendClientMessage(playerid, 0xFF8A00AA, "/ammunation [1000$]");
SendClientMessage(playerid, 0xFF8A00AA, "/sniping [1200$]");
SendClientMessage(playerid, 0xFF8A00AA, "/spistol [2000$]");
SendClientMessage(playerid, 0xFF8A00AA, "/exit");
SendClientMessage(playerid, 0xFF8A00AA, "----------------------------------");
}else{SendClientMessage(playerid,COLOR_RED,"You arent in the SWAT Van!");}
return 1;
}

if(strcmp(cmd, "/exit", true) == 0)
{
if(invehicle[playerid] == 1) {
     TogglePlayerControllable(playerid,1);
     RemovePlayerFromVehicle(playerid);
     KillTimer(removev[playerid]);}else{SendClientMessage(playerid,COLOR_RED,"You arent in the SWAT Van!");}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;
}
//-------------------------------------------------------------------------
stock CheckScore() {
KillTimer(gRoundTimer);
if(score1>score2) {GameTextForAll("The ~r~EVA Team ~y~wins!", 5000, 6);}
else if(score2>1){GameTextForAll("The ~b~Police Team ~y~wins!", 5000, 6);}
else if(score1==score2){GameTextForAll("~y~Incredible... DRAW!!!", 5000, 6);}
for(new i=0; i<MAX_PLAYERS; i++){TogglePlayerControllable(i,0);}
SetTimer("GameModeExitFunc",10000,0);
return 1;
}
//-------------------------------------------------------------------------
public GameModeExitFunc() {
SendClientMessageToAll(COLOR_ORANGE,"Thanks for have played at Prison Break GM 0.1b");
GameModeExit();
return 1;
}
//-------------------------------------------------------------------------
stock SetPlayerClass(playerid,classid) {
if(classid == 0 || classid == 1 || classid == 2 || classid == 3) {
gTeam[playerid] = TEAM_EVA;
superbriefing[playerid] = 0;
}
else if(classid == 4){
gTeam[playerid] = TEAM_POLICE;
superbriefing[playerid] = 0;
}
}