rendered paste body//------------------------------------------------------------------------------
//
// Los Santos SplinterCell Mod A script for SA-MP 0.1
//
//------------------------------------------------------------------------------
#include <a_samp>
#include <core>
#include <float>
//Global stuff and defines for our gamemode
static gTeam[MAX_PLAYERS]; // Tracks the team assignment for each player
new gPlayerClass[MAX_PLAYERS];
//Color Defines
#define COLOR_GREY 0xAFAFAFAA // GREY
#define COLOR_GREEN 0x33AA33AA // GREEN
#define COLOR_RED 0xAA3333AA // RED
#define COLOR_YELLOW 0xFFFF00AA // YELLOW
#define COLOR_PINK 0xFF66FFAA // PINK
#define COLOR_BLUE 0x0000BBAA // BLUE
#define COLOR_LIGHTBLUE 0x33CCFFAA // LIGHT BLUE
#define COLOR_DARKRED 0x660000AA // DARKRED
#define COLOR_ORANGE 0xFF9900AA // ORANGE
//Team Defines
#define TEAM_CURE 0
#define TEAM_LOUBARD 1
#define TEAM_TRUAND 2
#define TEAM_CHAUD 3
#define TEAM_TRIAD 4
#define TEAM_SECU 5
#define TEAM_VEUVE 6
#define TEAM_SWAT 7
// Round duration
new gRoundTime = 3600000; // 60 mins
//new gRoundTime = 900000; //15 mins
//new gRoundTime = 300000; // 5 mins
//------------------------------------------------------------------------------
main()
{
print("\n----------------------------------");
print(" SplinterCell Mode by JoEyFaYa (2007)\n");
print("----------------------------------\n");
}
//------------------------------------------------------------------------------
public OnGameModeInit()
{
SetTimer("ShowPlayerMarkers", 15000, 1);
SetGameModeText("SplinterCell");
SetTeamCount(7);
ShowNameTags(0);
ShowPlayerMarkers(1);
SetWorldTime(23);
AddPlayerClass(68,2345.6934,-1169.8510,28.0401,6.8849,10,1,23,500,0,0); //Cure
AddPlayerClass(100,2398.6985,-1226.9771,25.1383,8.8497,23,500,4,1,0,0); //Loubard
AddPlayerClass(111,2676.4399,-1200.1429,66.6137,4.2319,23,500,1,1,0,0); //Truand
AddPlayerClass(117,2790.0710,-1096.4911,30.7188,137.9252,23,500,8,1,0,0); //Triad
AddPlayerClass(125,2841.0806,-1348.3073,11.0625,181.3626,23,500,4,1,0,0); //Chaud
AddPlayerClass(165,2758.6675,-1548.5178,24.7010,103.1295,23,500,3,1,0,0); //Secu
AddPlayerClass(169,2499.0159,-1684.9193,13.4304,16.9498,23,500,12,1,0,0); //Veuve
AddPlayerClass(285,2236.8396,-1689.9382,13.9553,88.1376,23,500,5,1,0,0); //Swat
//Trains
// AddStaticVehicle(537,-1943.3127,158.0254,27.0006,357.3614,121,1);
// AddStaticVehicle(569,-1943.3127,158.0254,27.0006,357.3614,121,1);
// AddStaticVehicle(569,-1943.3127,158.0254,27.0006,357.3614,121,1);
// AddStaticVehicle(569,-1943.3127,158.0254,27.0006,357.3614,121,1);
//Pickups
AddStaticPickup(1242, 2, 2349.6914,-1245.1322,22.5000); // Armor
AddStaticPickup(358, 2, 2328.1755,-1244.5586,22.5000); // Sniper Rifle
AddStaticPickup(358, 2, 2524.1218,-1208.1589,57.2766); // Sniper Rifle
AddStaticPickup(1242, 2, 2594.7200,-1216.6533,57.7492); // Armor
AddStaticPickup(355, 2, 2764.7842,-1193.1119,69.4063); // AK47
AddStaticPickup(1242, 2, 2773.4343,-1333.6852,46.5000); // Armor
AddStaticPickup(355, 2, 2835.4785,-1459.4193,40.7010); // AK47
AddStaticPickup(358, 2, 2835.9512,-1463.8110,40.7010); // Sniper Rifle
AddStaticPickup(1242, 2, 2517.8362,-1722.5385,18.5821); // Armor
AddStaticPickup(355, 2, 2316.6748,-1631.7311,14.6323); // AK47
AddStaticPickup(355, 2, 2537.4392,-1435.8475,24.0000); // AK47
AddStaticPickup(358, 2, 2505.1653,-1470.5105,29.7266); // Sniper Rifle
SetTimer("GameModeExitFunc", gRoundTime, 0);
return 1;
}
//------------------------------------------------------------------------------
public OnPlayerConnect(playerid)
{
SendClientMessage(playerid, COLOR_LIGHTBLUE, "Bienvenue sur JoEyFaYa SplinterCell Mode Tapez /exp pour + d'infos.");
GivePlayerMoney(playerid, 10000);
SetPlayerColor(playerid, COLOR_GREY); // Set the player's color to inactive
return 1;
}
//------------------------------------------------------------------------------
public OnPlayerSpawn(playerid)
{
SetPlayerInterior(playerid,0);
if(gTeam[playerid] == TEAM_CURE) {
SetPlayerColor(playerid,COLOR_GREEN); // Green
}
else if(gTeam[playerid] == TEAM_LOUBARD) {
SetPlayerColor(playerid,COLOR_RED); // Red
}
else if(gTeam[playerid] == TEAM_TRUAND) {
SetPlayerColor(playerid,COLOR_YELLOW); // Yellow
}
else if(gTeam[playerid] == TEAM_TRIAD) {
SetPlayerColor(playerid,COLOR_PINK); // Pink
}
else if(gTeam[playerid] == TEAM_CHAUD) {
SetPlayerColor(playerid,COLOR_BLUE); // Blue
}
else if(gTeam[playerid] == TEAM_SECU) {
SetPlayerColor(playerid,COLOR_LIGHTBLUE); // Light Blue
}
else if(gTeam[playerid] == TEAM_VEUVE) {
SetPlayerColor(playerid,COLOR_DARKRED); // Dark Red
}
else if(gTeam[playerid] == TEAM_SWAT) {
SetPlayerColor(playerid,COLOR_ORANGE); // Orange
}
return 1;
}
SetPlayerWorldBounds(playerid, 2219.1531, 2293.4001,2847.6179, 2850.6711);
//------------------------------------------------------------------------------
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);
GivePlayerMoney(killerid, 3000);
}
else {
//Team Killer!
new warning[256];
format(warning, sizeof(warning), "Attention tu a été sanctionner pour avoir tué un membre de ton équipe");
SendClientMessage(killerid, 0xFFFF00AA, warning);
SendDeathMessage(killerid,playerid,reason);
GivePlayerMoney(killerid, -1500);
SetPlayerScore(killerid, GetPlayerScore(killerid) - 1);
}
}
return 1;
}
//------------------------------------------------------------------------------
public SetupPlayerForClassSelection(playerid)
{
SetPlayerInterior(playerid,14);
SetPlayerPos(playerid,258.4893,-41.4008,1002.0234);
SetPlayerFacingAngle(playerid, 90.0);
SetPlayerCameraPos(playerid,256.0815,-43.0475,1003.0234);
SetPlayerCameraLookAt(playerid,258.4893,-41.4008,1002.0234);
}
//------------------------------------------------------------------------------
public OnPlayerRequestClass(playerid, classid)
{
SetPlayerClass(playerid, classid);
SetupPlayerForClassSelection(playerid);
gPlayerClass[playerid] = classid;
switch (classid) {
case 0:
{
GameTextForPlayer(playerid, "~g~Le Pape", 1000, 3);
}
case 1:
{
GameTextForPlayer(playerid, "~g~Loubard", 1000, 3);
}
case 2:
{
GameTextForPlayer(playerid, "~g~Truand", 1000, 3);
}
case 3:
{
GameTextForPlayer(playerid, "~g~Rouleau De Printemps", 1000, 3);
}
case 4:
{
GameTextForPlayer(playerid, "~g~Jesus Malsain", 1000, 3);
}
case 5:
{
GameTextForPlayer(playerid, "~g~Agent de Secu", 1000, 3);
}
case 6:
{
GameTextForPlayer(playerid, "~g~Veuve Noire", 1000, 3);
}
case 7:
{
GameTextForPlayer(playerid, "~g~SWAT Boy", 1000, 3);
}
}
return 1;
}
//------------------------------------------------------------------------------
public GameModeExitFunc()
{
GameModeExit();
return 1;
}
//------------------------------------------------------------------------------
SetPlayerClass(playerid, classid) {
if(classid == 0) {
gTeam[playerid] = TEAM_CURE;
} else if(classid == 1) {
gTeam[playerid] = TEAM_LOUBARD;
} else if(classid == 2) {
gTeam[playerid] = TEAM_TRUAND;
} else if(classid == 3) {
gTeam[playerid] = TEAM_TRIAD;
} else if(classid == 4) {
gTeam[playerid] = TEAM_CHAUD;
} else if(classid == 5) {
gTeam[playerid] = TEAM_SECU;
} else if(classid == 6) {
gTeam[playerid] = TEAM_VEUVE;
} else if(classid == 7) {
gTeam[playerid] = TEAM_SWAT;
}
}
//------------------------------------------------------------------------------
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;
}
public OnPlayerCommandText(playerid, cmdtext[])
{
new cmd[256];
new idx;
cmd = strtok(cmdtext, idx);
if(strcmp(cmd, "/exp", true) == 0) {
SendClientMessage(playerid, COLOR_LIGHTBLUE, "SplinterCell : Tuer le maximum d'ennemi tout en restant discret.Leur posisitons s'affiche toutes les 15sec");
SendClientMessage(playerid, COLOR_LIGHTBLUE, "Vous trouverez un peu partout sur la map des armes & des pare-balles cherchez bien ;)");
SendClientMessage(playerid, COLOR_LIGHTBLUE, "Taper /armes pour voir la liste des armes que vous pouvez acheter");
return 1;
}
if(strcmp(cmd, "/isu", true) == 0) {
GameTextForAll("Je te vois :D", 2000, 5);
return 1;
}
if (strcmp(cmdtext, "/armes", true)==0){
SendClientMessage(playerid, COLOR_RED, "Voici les armes possibles");
SendClientMessage(playerid, COLOR_ORANGE, "Tronconneuse 500$ tape : /tronco");
SendClientMessage(playerid, COLOR_ORANGE, "MP5 800$ Tape : /mp5");
SendClientMessage(playerid, COLOR_ORANGE, "AK47 1100$ Tape : /ak");
SendClientMessage(playerid, COLOR_ORANGE, "Sniper 1400$ Tape : /snip");
SendClientMessage(playerid, COLOR_ORANGE, "Lance Flamme 1800$ Tape : /lf");
}
if(strcmp(cmdtext, "/tronco", true)==0){
GivePlayerWeapon(playerid,9 ,1);
GivePlayerMoney(playerid, -500);//argent pour acheter l'arme
SendClientMessage(playerid, 0xFFFF00AA, "Tu as une Tronconneuse !");
}
else if(strcmp(cmdtext, "/mp5", true)==0){
GivePlayerWeapon(playerid,29 ,150);
GivePlayerMoney(playerid, -800);//argent pour acheter l'arme
SendClientMessage(playerid, 0xFFFF00AA, "Tu as une MP5 !");
}
else if(strcmp(cmdtext, "/ak", true)==0){
GivePlayerWeapon(playerid,30 ,100);
GivePlayerMoney(playerid, -1100);//argent pour acheter l'arme
SendClientMessage(playerid, 0xFFFF00AA, "Tu as un AK47 !");
}
else if(strcmp(cmdtext, "/snip", true)==0){
GivePlayerWeapon(playerid,34 ,100);
GivePlayerMoney(playerid, -1400);//argent pour acheter l'arme
SendClientMessage(playerid, 0xFFFF00AA, "Tu as un sniper !");
}
else if(strcmp(cmdtext, "/lf", true)==0){
GivePlayerWeapon(playerid,37 ,500);
GivePlayerMoney(playerid, -1800);//argent pour acheter l'arme
SendClientMessage(playerid, 0xFFFF00AA, "Tu as un lance flamme !");
}
// PROCESS OTHER COMMANDS
return 1;
}
//------------------------------------------------------------------------------