All pastes #467838 Raw Edit

Unnamed

public text v1 · immutable
·published 2007-05-02 19:11 UTC
rendered paste body
//------------------------------------------------------------------------------

//

// San Fierro TDM. A Team Deathmtach 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

#define COLOR_GREEN 0x33AA33AA

#define COLOR_RED 0xAA3333AA

#define COLOR_YELLOW 0xFFFF00AA

#define COLOR_PINK 0xFF66FFAA

#define COLOR_BLUE 0x0000BBAA

#define COLOR_LIGHTBLUE 0x33CCFFAA

#define COLOR_DARKRED 0x660000AA

#define COLOR_ORANGE 0xFF9900AA

#define COLOR_PURPLE 0x9B30FF

#define COLOR_WHITE  0xFFFFFF
//Team Defines

#define TEAM_STUNTER 0

#define TEAM_PIMP 1

#define TEAM_GOLFER 2

#define TEAM_TRIAD 3

#define TEAM_MECHANIC 4

#define TEAM_VALET 5

#define TEAM_MEDIC 6

#define TEAM_FBI 7



// Round duration

new gRoundTime = 3600000; // 60 mins

//new gRoundTime = 900000; //15 mins

//new gRoundTime = 300000; // 5 mins



//------------------------------------------------------------------------------

main()

{

	print("\n----------------------------------");

	print("  SFTDM by Cam (2006)\n");

	print("----------------------------------\n");

}



//------------------------------------------------------------------------------



public OnGameModeInit()

{

	SetGameModeText("San Fierro TDM");

	SetTeamCount(7);

	ShowNameTags(1);

	ShowPlayerMarkers(1);

	SetWorldTime(18);



	AddPlayerClass(60,1921.8248,-1404.1094,13.5703,268.8936,22,272,25,40,4,1); //Stunter

	AddPlayerClass(249,-2653.6443,1388.2767,7.1301,212.8453,23,272,29,270,5,1); //Pimp

	AddPlayerClass(259,-2642.2583,-274.9985,7.5393,135.0036,25,40,32,250,9,1); //Golfer

	AddPlayerClass(118,-2157.2119,649.5484,52.3672,267.0820,24,70,31,250,4,1); //Triad

	AddPlayerClass(50,-1377.4271,466.0897,7.1875,1.0348,22,272,30,300,9,1); //Mechanic

	AddPlayerClass(253,-1754.9976,958.5851,24.8828,163.2550,25,40,24,70,4,1); //Valet

	AddPlayerClass(274,-2665.4282,635.6348,14.4531,179.8403,33,40,23,272,4,1); //Medic

    AddPlayerClass(286,-1635.0077,665.8105,7.1875,264.2244,29,300,22,170,3,1); //FBI

    AddStaticVehicle(522,1913.1875,-1415.7065,13.1354,29.2271,6,25); //Nrg500

    AddStaticVehicle(522,1915.4531,-1415.6125,13.1330,32.1960,7,79); //Nrg500

    AddStaticVehicle(522,1917.6331,-1415.3016,13.1412,31.2608,3,8); //Nrg500

    AddStaticVehicle(522,1911.1105,-1416.0217,13.1390,19.9360,8,82); //Nrg500

    AddStaticVehicle(471,1881.6776,-1369.1628,13.0517,177.3715,103,111); //Quad

    AddStaticVehicle(471,1883.1843,-1369.2076,13.0507,180.8963,120,114); //Quad

    AddStaticVehicle(471,1884.6907,-1369.2875,13.0503,178.2688,74,91); //Quad

    AddStaticVehicle(471,1886.2025,-1369.3645,13.0509,179.2402,120,112); //Quad

    AddStaticVehicle(443,1864.5282,-1400.1382,14.1169,181.5446,20,1); //Packer

    AddStaticVehicle(443,1868.4196,-1400.1382,14.1463,183.6005,24,1); //Packer

//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(370, 15, -2209.4707,294.1174,35.1172); // jetpack

	AddStaticPickup(370, 15, -1765.4392,-174.7473,3.5547); // jetpack

	SetTimer("GameModeExitFunc", gRoundTime, 0);

	return 1;

 }



//------------------------------------------------------------------------------



public OnPlayerConnect(playerid)

{

 GameTextForPlayer(playerid,"San Fierro: ~r~TDM",2500,5);


	SetPlayerColor(playerid, COLOR_GREY); // Set the player's color to inactive

	GivePlayerMoney(playerid, 10000);


 new string[256];

	new name[MAX_PLAYER_NAME];

 	GetPlayerName(playerid,name, sizeof(name));

	format(string, sizeof(string), ".:Bienvenue:. Profité bien de mon serveur, pour plus d'info taper /aide", name);

	SendClientMessage(playerid, COLOR_LIGHTBLUE ,string);


	return 1;

}





//------------------------------------------------------------------------------



public OnPlayerSpawn(playerid)

{

	SetPlayerInterior(playerid,0);

	if(gTeam[playerid] == TEAM_STUNTER) {

	SetPlayerColor(playerid,COLOR_GREEN); // Green

		}

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

	SetPlayerColor(playerid,COLOR_RED); // Red

		}

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

	SetPlayerColor(playerid,COLOR_YELLOW); // Yellow

		}

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

	SetPlayerColor(playerid,COLOR_PINK); // Pink

		}

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

	SetPlayerColor(playerid,COLOR_BLUE); // Blue

		}

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

	SetPlayerColor(playerid,COLOR_LIGHTBLUE); // Light Blue

		}

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

	SetPlayerColor(playerid,COLOR_DARKRED); // Dark Red

		}

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

	SetPlayerColor(playerid,COLOR_ORANGE); // Orange

	}

	return 1;

}



//------------------------------------------------------------------------------



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, 1000);

}

		else {

			//Team Killer!

		new warning[256];

		format(warning, sizeof(warning), "Be careful! You have been punished for teamkilling.");

		SendClientMessage(killerid, 0xFFFF00AA, warning);

		SendDeathMessage(killerid,playerid,reason);

		GivePlayerMoney(killerid, -1000);

		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);

    PlayerPlaySound(playerid,1097,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~Stunter", 500, 3);

			}

		case 1:

		    {

				GameTextForPlayer(playerid, "~g~Pimp", 500, 3);

			}

		case 2:

	        {

				GameTextForPlayer(playerid, "~g~Golfer", 500, 3);

			}

		case 3:

	        {

				GameTextForPlayer(playerid, "~g~Triad", 500, 3);

			}

		case 4:

	        {

				GameTextForPlayer(playerid, "~g~Mechanic", 500, 3);

			}

		case 5:

	        {

				GameTextForPlayer(playerid, "~g~Valet", 500, 3);

			}

		case 6:

	        {

				GameTextForPlayer(playerid, "~g~Medic", 500, 3);

			}

		case 7:

	        {

				GameTextForPlayer(playerid, "~g~FBI", 500, 3);

	}

}

	return 1;

}



//------------------------------------------------------------------------------



public GameModeExitFunc()

 {

	GameModeExit();

	return 1;

 }



//------------------------------------------------------------------------------



SetPlayerClass(playerid, classid) {

	if(classid == 0) {

	gTeam[playerid] = TEAM_STUNTER;

	} else if(classid == 1) {

	gTeam[playerid] = TEAM_PIMP;

	} else if(classid == 2) {

	gTeam[playerid] = TEAM_GOLFER;

	} else if(classid == 3) {

	gTeam[playerid] = TEAM_TRIAD;

	} else if(classid == 4) {

	gTeam[playerid] = TEAM_MECHANIC;

	} else if(classid == 5) {

 	gTeam[playerid] = TEAM_VALET;

	} else if(classid == 6) {

 	gTeam[playerid] = TEAM_MEDIC;

 	} else if(classid == 7) {

 	gTeam[playerid] = TEAM_FBI;

	}

}



//------------------------------------------------------------------------------

public OnPlayerCommandText(playerid, cmdtext[]){


if(strcmp(cmdtext, "/Katana", true)==0){
GivePlayerWeapon(playerid,8 ,1);
GivePlayerMoney(playerid, -50);//argent pour acheter l'arme
SendClientMessage(playerid, 0xFFFF00AA, "Tu as une Katana !");

}

else if(strcmp(cmdtext, "/Grenades", true)==0){
GivePlayerWeapon(playerid,16 ,25);
GivePlayerMoney(playerid, -50);//argent pour acheter l'arme
SendClientMessage(playerid, 0xFFFF00AA, "Tu as des grenades !");

}

else if(strcmp(cmdtext, "/AK47", true)==0){
GivePlayerWeapon(playerid,30 ,100);
GivePlayerMoney(playerid, -100);//argent pour acheter l'arme
SendClientMessage(playerid, 0xFFFF00AA, "Tu as AK47 !");

}
else if(strcmp(cmdtext, "/sniper", true)==0){
GivePlayerWeapon(playerid,34 ,20);
GivePlayerMoney(playerid, -100);//argent pour acheter l'arme
SendClientMessage(playerid, 0xFFFF00AA, "Tu as un sniper !");

}
else if(strcmp(cmdtext, "/minigun", true)==0){
GivePlayerWeapon(playerid,38 ,800);
GivePlayerMoney(playerid, -200);//argent pour acheter l'arme
SendClientMessage(playerid, 0xFFFF00AA, "Tu as un minigun !");

}
else if(strcmp(cmdtext, "/Parachute", true)==0){
GivePlayerWeapon(playerid,46 ,1);
GivePlayerMoney(playerid, -50);//argent pour acheter l'arme
SendClientMessage(playerid, 0xFFFF00AA, "Tu as un parachute !");

}

//--------------------------- Teleportation ------------------------------------

else if(strcmp(cmdtext,"/chiliad", true)==0){
if(IsPlayerInAnyVehicle(playerid)){
new Float:X;
new Float:Y;
new Float:Z;
new VehicleID;
GetPlayerPos(playerid, X, Y, Z);//observe où le joueur se situe
VehicleID = GetPlayerVehicleID(playerid);//pareil pour le véhicule
SetVehiclePos(VehicleID,-2329.6187,-1608.4329,483.7257);//pose la voiture
} else {
new Float:X;
new Float:Y;
new Float:Z;
GetPlayerPos(playerid, X, Y, Z);//pour le joueur
SetPlayerPos(playerid,-2329.6187,-1608.4329,483.7257);//idem

}

}

else if(strcmp(cmdtext,"/stunt", true)==0){
if(IsPlayerInAnyVehicle(playerid)){
new Float:X;
new Float:Y;
new Float:Z;
new VehicleID;
GetPlayerPos(playerid, X, Y, Z);//observe où le joueur se situe
VehicleID = GetPlayerVehicleID(playerid);//pareil pour le véhicule
SetVehiclePos(VehicleID,1921.8248,-1404.1094,13.5703);//pose la voiture
} else {
new Float:X;
new Float:Y;
new Float:Z;
GetPlayerPos(playerid, X, Y, Z);//pour le joueur
SetPlayerPos(playerid,1921.8248,-1404.1094,13.5703);//idem

}

//--------------------------- /aide --------------------------------------------

if (strcmp(cmdtext, "/aide", true)==0){
        SendClientMessage(playerid, COLOR_LIGHTBLUE, "Pour commencer prenez connaisance du but en tapant /but");
        SendClientMessage(playerid, COLOR_LIGHTBLUE, "Pour connaitre les teleportation, tapez /teleportation?");
        SendClientMessage(playerid, COLOR_LIGHTBLUE, "Pour conaitre la liste d'arme, tapez /arme?");
        SendClientMessage(playerid, COLOR_LIGHTBLUE, "Pour voir toute les commandes possible tapez /commande?");
		SendClientMessage(playerid, COLOR_LIGHTBLUE, "Sinon bon jeu sur mon serveur !!!");

}

if (strcmp(cmdtext, "/but", true)==0){
        SendClientMessage(playerid, COLOR_GREY, "Le but est de faire du stunt mais le droit de tuer est autorisé amusez vous bien");

}


if (strcmp(cmdtext, "/teleportation?", true)==0){
        SendClientMessage(playerid, COLOR_LIGHTBLUE, "Voici les teleportations possible");
        SendClientMessage(playerid, COLOR_LIGHTBLUE, "/chiliad");

}

if (strcmp(cmdtext, "/arme?", true)==0){
        SendClientMessage(playerid, COLOR_ORANGE, "Voici les armes possibles");
        SendClientMessage(playerid, COLOR_ORANGE, "/katana");
        SendClientMessage(playerid, COLOR_ORANGE, "/Grenades");
        SendClientMessage(playerid, COLOR_ORANGE, "/AK47");
        SendClientMessage(playerid, COLOR_ORANGE, "/sniper");
        SendClientMessage(playerid, COLOR_ORANGE, "/minigun");
        SendClientMessage(playerid, COLOR_ORANGE, "/Parachute");

}

if (strcmp(cmdtext, "/commande?", true)==0){
        SendClientMessage(playerid, COLOR_ORANGE, "Voici les commandes possibles");
        SendClientMessage(playerid, COLOR_ORANGE, "/cam1");
        SendClientMessage(playerid, COLOR_ORANGE, "/arme?");
        SendClientMessage(playerid, COLOR_ORANGE, "/teleportation?");
        SendClientMessage(playerid, COLOR_ORANGE, "/lock");
        SendClientMessage(playerid, COLOR_ORANGE, "/unlock");
}

//--------------------------- Fermer voiture -----------------------------------

if (strcmp(cmdtext, "/lock", true)==0)
{
if(IsPlayerInAnyVehicle(playerid))
{
new State=GetPlayerState(playerid);
if(State!=PLAYER_STATE_DRIVER)
{
SendClientMessage(playerid,0xFFFF00AA,"You can only lock the doors as the driver.");
return 1;
}
new i;
for(i=0;i<MAX_PLAYERS;i++)
{
if(i != playerid)
{
SetVehicleParamsForPlayer(GetPlayerVehicleID(playerid),i, 0, 1);
}
}
SendClientMessage(playerid, 0xFFFF00AA, "Vehicle locked!");
new Float:pX, Float:pY, Float:pZ;
GetPlayerPos(playerid,pX,pY,pZ);
PlayerPlaySound(playerid,1056,pX,pY,pZ);
}
else
{
SendClientMessage(playerid, 0xFFFF00AA, "You're not in a vehicle!");
}
return 1;
}


if (strcmp(cmdtext, "/unlock", true)==0)
{
if(IsPlayerInAnyVehicle(playerid))
{
new State=GetPlayerState(playerid);
if(State!=PLAYER_STATE_DRIVER)
{
SendClientMessage(playerid,0xFFFF00AA,"You can only unlock the doors as the driver.");
return 1;
}
new i;
for(i=0;i<MAX_PLAYERS;i++)
{
SetVehicleParamsForPlayer(GetPlayerVehicleID(playerid),i, 0, 0);
}
SendClientMessage(playerid, 0xFFFF00AA, "Vehicle unlocked!");
new Float:pX, Float:pY, Float:pZ;
GetPlayerPos(playerid,pX,pY,pZ);
PlayerPlaySound(playerid,1057,pX,pY,pZ);
}
else
{
SendClientMessage(playerid, 0xFFFF00AA, "You're not in a vehicle!");

	}

//--------------------------- Camera -------------------------------------------

if (strcmp(cmdtext, "/cam1", true) == 0)
{
SetPlayerCameraPos(playerid, 1891.8055,-1326.2717,49.4141);
SetPlayerCameraLookAt(playerid, 1910.9456,-1406.7506,13.5703);

}

else if (strcmp(cmdtext, "/cam2", true) == 0)
{
SetPlayerCameraPos(playerid, 1967.3646,-1449.4124,36.0548);
SetPlayerCameraLookAt(playerid, 1921.8248,-1404.1094,13.5703);

}

else if (strcmp(cmdtext, "/cam3", true) == 0)
{
SetPlayerCameraPos(playerid, 1843.7532,-1421.8038,38.8977);
SetPlayerCameraLookAt(playerid, 1910.9456,-1406.7506,13.5703);

}

return 1;
}
}
}