//------------------------------------------------------------------------------ // ~ Counter Strike ~ //----------------------------- ~ by Mr.Hanky ~ -------------------------------- // v 0.1 b //------------------------------------------------------------------------------ #include #include #include #include #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; }