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