rendered paste body//------------------------------------------------------------------------------
// ~ Counter Strike ~
//----------------------------- ~ by Mr.Hanky ~ --------------------------------
// v 0.1 b
//------------------------------------------------------------------------------
#include <a_samp>
#include <a_players>
#include <float>
#include <core>
#define COLOR_BLUE 0x1111AAFF
#define COLOR_GREEN 0x33AA33AA
#define SWAT 1
#define TERRORIST 2
#define CHECKPOINT_VUOTO 0
#define CHECKPOINT_PLANE 1
#define CHECKPOINT_BOMBA 2
#define CHECKPOINT_ESTERNO_SWAT 3
#define CHECKPOINT_ESTERNO_TERRORIST 4
#define MAX_STRING 0
#define Countdown 0
new var[MAX_PLAYERS];
new gPlayerCheckpointStatus[MAX_PLAYERS];
new gPlayerClass[MAX_PLAYERS];
forward SetPlayerToTeamColor(playerid);
forward SetupPlayerForClassSelection(playerid,classid);
forward SetPlayerTeamFromClass(playerid,classid);
//------------------------------------------------------------------------------
main()
{
print("\n----------------------------------");
print(" Counter Strike v0.1b");
print("----------------------------------\n");
}
//------------------------------------------------------------------------------
public OnGameModeInit()
{
ShowPlayerMarkers(0);
ShowNameTags(0);
SetWorldTime(24);
AllowInteriorWeapons(1);
SetGameModeText("Counter Strike v0.1b");
//SWAT
AddPlayerClass(285,1579.6685,-1635.6995,13.5605,89.9412,4,0,23,500,29,500); // s s1
AddPlayerClass(285,1544.0997,-1610.2698,13.3828,272.9296,4,0,23,500,25,500); // s s2
AddPlayerClass(285,1545.5385,-1654.2521,13.5594,78.6610,4,0,23,500,31,500); // s s3
AddPlayerClass(285,1543.1649,-1697.3383,13.5469,85.5543,4,0,23,500,33,500); // s s4
//TERRORISTI
AddPlayerClass(206,311.8878,976.1992,1960.9429,259.7892,4,0,23,500,29,500); // t s1
AddPlayerClass(206,319.8452,975.8804,1961.0165,84.0309,4,0,23,500,25,500); // t s2
AddPlayerClass(206,319.5009,983.7437,1959.2019,95.9377,4,0,23,500,31,500); // t s3
AddPlayerClass(206,312.2211,983.3724,1959.2875,271.6960,4,0,23,500,33,500); // t s4
//FURGONI SWAT
AddStaticVehicle(427,1602.0823,-1614.7030,13.6199,87.6595,0,1); // swat 1
AddStaticVehicle(427,1602.3500,-1624.3767,13.6227,89.0795,0,1); // swat 2
AddStaticVehicle(427,1565.9443,-1607.3998,13.5147,179.7105,0,1); // swat 3
//ELICOTTERI SWAT
AddStaticVehicle(497,1511.0199,-1702.8287,13.8730,359.8940,0,1); // eli 1
AddStaticVehicle(497,1517.3038,-1657.5931,13.3673,359.0219,0,1); // eli 2
//PARACADUTI
AddStaticPickup(371, 15,312.9704,1024.7319,1949.7430);
AddStaticPickup(371, 15,318.8942,1025.2085,1949.6331);
return 1;
}
//------------------------------------------------------------------------------
public OnGameModeExit()
{
GameModeExit();
return 1;
}
//------------------------------------------------------------------------------
public SetupPlayerForClassSelection(playerid,classid)
{
if(classid == 0 || classid == 1 || classid == 2 || classid == 3)
{
SetPlayerInterior(playerid,0);
SetPlayerPos(playerid,1544.2509,-1631.8453,13.3828);
SetPlayerFacingAngle(playerid,90);
SetPlayerCameraPos(playerid,1538.9763,-1632.2261,14.3828);
SetPlayerCameraLookAt(playerid,1544.2509,-1631.8453,13.3828);
}
else if(classid == 4 || classid == 5 || classid == 6 || classid == 7)
{
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 1;
}
//------------------------------------------------------------------------------
public SetupPlayerFromClass(playerid,classid)
{
if(classid == 0 || classid == 1 || classid == 2 || classid == 3)
{
SetPlayerColor(playerid,COLOR_BLUE);
}
else if(classid == 4 || classid == 5 || classid == 6 || classid == 7)
{
SetPlayerColor(playerid,COLOR_GREEN);
}
}
public OnPlayerRequestClass(playerid, classid)
{
SetupPlayerForClassSelection(playerid,classid);
gPlayerClass[playerid] = classid;
switch (classid) {
case 0:
{
GameTextForPlayer(playerid, "~b~SWAT ~n~~r~weapon: ~y~mp5", 1000, 3);
}
case 1:
{
GameTextForPlayer(playerid, "~b~SWAT ~n~~r~weapon: ~y~shotgun", 1000, 3);
}
case 2:
{
GameTextForPlayer(playerid, "~b~SWAT ~n~~r~weapon: ~y~m4", 1000, 3);
}
case 3:
{
GameTextForPlayer(playerid, "~b~SWAT ~n~~r~weapon: ~y~sniper", 1000, 3);
}
case 4:
{
GameTextForPlayer(playerid, "~g~TERRORIST ~n~~r~weapon: ~y~mp5", 1000, 3);
}
case 5:
{
GameTextForPlayer(playerid, "~g~TERRORIST ~n~~r~weapon: ~y~shotgun", 1000, 3);
}
case 6:
{
GameTextForPlayer(playerid, "~g~TERRORIST ~n~~r~weapon: ~y~m4", 1000, 3);
}
case 7:
{
GameTextForPlayer(playerid, "~g~TERRORIST ~n~~r~weapon: ~y~sniper", 1000, 3);
}
}
return 1;
}
//---------------------------------------------------------
public OnPlayerSpawn(playerid)
{
switch (gPlayerClass[playerid]) {
case 4,5,6,7:
{
SetPlayerInterior(playerid,9);
gPlayerCheckpointStatus[playerid] = CHECKPOINT_PLANE;
SetPlayerCheckpoint(playerid,315.7353,1035.6589,1945.1191,5.0);
GameTextForPlayer(playerid,"~w~Prendi un ~r~paracadute ~w~e preparati al lancio!",
6000,5);
}
case 0,1,2,3:
{
gPlayerCheckpointStatus[playerid] = CHECKPOINT_ESTERNO_SWAT;
SetPlayerCheckpoint(playerid,1298.4380,-799.4846,84.1406,5.0);
GameTextForPlayer(playerid,"~w~Difendi la ~r~casa ~w~di Madd Dog!",
6000,5);
}
}
return 1;
}
//------------------------------------------------------------------------------
public OnPlayerConnect(playerid)
{
SendClientMessage(playerid,0xFFFF00AA,"~Counter Strike~");
SendClientMessage(playerid,0xFFFF00AA,"by Mr.Hanky 2007");
SendDeathMessage(INVALID_PLAYER_ID,playerid,200);
return 1;
}
//------------------------------------------------------------------------------
public OnPlayerDisconnect(playerid)
{
SendDeathMessage(INVALID_PLAYER_ID,playerid,201);
var[playerid] = 0;
SetPlayerWantedLevel(playerid,0);
return 1;
}
//------------------------------------------------------------------------------
public OnPlayerEnterCheckpoint(playerid) {
switch (gPlayerCheckpointStatus[playerid]) {
case CHECKPOINT_PLANE:
{
SetPlayerInterior(playerid,0);
SetPlayerPos(playerid,1291.1661,-788.3045,596.4609);
SetPlayerCheckpoint(playerid,1257.6592,-785.3892,92.0302, 5.0);
gPlayerCheckpointStatus[playerid] = CHECKPOINT_ESTERNO_TERRORIST;
}
case CHECKPOINT_BOMBA:
{
DisablePlayerCheckpoint(playerid);
gPlayerCheckpointStatus[playerid] = CHECKPOINT_VUOTO;
}
case CHECKPOINT_ESTERNO_SWAT:
{
SetPlayerInterior(playerid,5);
SetPlayerPos(playerid,1299.0800,-795.2270,1084.0078);
DisablePlayerCheckpoint(playerid);
gPlayerCheckpointStatus[playerid] = CHECKPOINT_VUOTO;
}
case CHECKPOINT_ESTERNO_TERRORIST:
{
SetPlayerInterior(playerid,5);
SetPlayerPos(playerid,1263.0778,-785.3063,1091.9063);
DisablePlayerCheckpoint(playerid);
gPlayerCheckpointStatus[playerid] = CHECKPOINT_BOMBA;
SetPlayerCheckpoint(playerid,1246.6993,-803.7980,1084.0151,5.0);
}
default:
{
DisablePlayerCheckpoint(playerid);
}
}
return 1;
}
//------------------------------------------------------------------------------
public OnPlayerDeath(playerid,killerid,reason)
{
if(killerid == INVALID_PLAYER_ID)
{
SendDeathMessage(INVALID_PLAYER_ID,playerid,reason);
SetPlayerInterior(playerid,5);
SetPlayerPos(playerid,2595.5308,2336.9536,10.8203);
SetPlayerCameraPos(playerid,1250.2090,-807.5909,1084.8169);
SetPlayerCameraLookAt(playerid,1246.6993,-803.7980,1084.0151);
TogglePlayerControllable(playerid,0);
}
else
{
SendDeathMessage(killerid,playerid,reason);
SetPlayerScore(killerid,GetPlayerScore(killerid)+1);
SetPlayerInterior(playerid,5);
SetPlayerPos(playerid,2595.5308,2336.9536,10.8203);
SetPlayerCameraPos(playerid,1250.2090,-807.5909,1084.8169);
SetPlayerCameraLookAt(playerid,1246.6993,-803.7980,1084.0151);
TogglePlayerControllable(playerid,0);
}
return 1;
}
//------------------------------------------------------------------------------
public OnPlayerCommandText(playerid,cmdtext[])
{
new idx;
new cmdstr[20];
new attr1[20];
cmdstr = strtok(cmdtext,idx);
attr1 = strtok(cmdtext,idx);
if (strcmp(cmdstr, "/attiva", true)==0)
{
SetPlayerHealth(playerid,0);
}
if (IsPlayerInCheckpoint(playerid))
{
switch (gPlayerCheckpointStatus[playerid]) {
case CHECKPOINT_BOMBA:
{
if (strcmp(cmdstr, "/attiva", true)==0)
{
new var = 30;
new string[255];
new timer = SetTimer("Countdown",1000,1);
forward Countdown(); // Serve per la versione 0.2
public Countdown()
{
if(var == 0)
{
format(string,MAX_STRING,"~r~Via!");
KillTimer(timer);
}
else
{
format(string,MAX_STRING,"%d",var);
var --;
}
GameTextForAll(3,3000,string);
}
}
else if (strcmp(cmdstr, "/disattiva", true)==0)
{
KillTimer(timer);
}
}
}
return 1;
}
//------------------------------------------------------------------------------
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;
}