All pastes #283131 Raw Edit

Mine

public text v1 · immutable
#283131 ·published 2006-12-18 03:06 UTC
rendered paste body
//------------------------------------------------------------------------------
//
// CasCade AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
//
//------------------------------------------------------------------------------

#include <a_samp>
#include <core>
#include <float>
#include <string>
//Global stuff and defines
static gTeam[MAX_PLAYERS];
new gPlayerClass[MAX_PLAYERS];
new gPlayerName[MAX_PLAYERS];






//how many random respawns?

//Color Defines
#define COLOR_RED 0xAA3333AA
#define COLOR_GREY 0xAFAFAFAA
#define COLOR_GREEN 0x33AA33AA
#define COLOR_YELLOW 0xFFFF00AA
#define COLOR_PINK 0xFF66FFAA
#define COLOR_BLUE 0x0000BBAA
#define COLOR_LIGHTBLUE 0x33CCFFAA
#define COLOR_CYAN 0x00BFF3AA
#define COLOR_BLACK 0x000000AA
#define COLOR_WHITE 0xFFFFFFAA
//team colors
#define COLOR_TEAM_0 0x008000AA

#define SLOTS 64

//other colors
#define COLOR_ERROR 0xed1c24AA
#define COLOR_COMMAND 0x8c6239AA

//Team Defines
#define TEAM_GROVE 0

// Round duration
new gRoundTime = 3600000; // 60 mins
//new gRoundTime = 1800000; // 30 mins
//new gRoundTime = 600000; //10 mins
//new gRoundTime = 300000; // 5 mins
//new gRoundTime = 120000; // 2 mins
//new gRoundTime = 60000; // 1 min

//for stat
static points[MAX_PLAYERS];
static frags[MAX_PLAYERS];
static frags2[MAX_PLAYERS];
static frags3[MAX_PLAYERS];
static deaths[MAX_PLAYERS];
static suicides[MAX_PLAYERS];
static teamkills[MAX_PLAYERS];
static lastkill[MAX_PLAYERS];
static tknow[MAX_PLAYERS];

// others variables
new firstblood = 0;
//------------------------------------------------------------------------------


enum SavePlayerPosEnum {
Float:LastX,
Float:LastY,
Float:LastZ
}

new SavePlayerPos[SLOTS][SavePlayerPosEnum];
new SpeedMode = 0; // 0 for KPH, 1 for MPH
new UpdateSeconds = 1; // How frequent do you want it to be updated

// Aight, create the main function
public UpdateSpeed(){
new Float:x,Float:y,Float:z;
new Float:distance,value,string[256];
for(new i=0; i<SLOTS; i++){
if(IsPlayerConnected(i) && IsPlayerInAnyVehicle(i)){
GetPlayerPos(i, x, y, z);
distance = floatsqroot(floatpower(floatabs(floatsub(x,SavePlayerPos[i][LastX])),2)+floatpower(floatabs(floatsub(y,SavePlayerPos[i][LastY])),2)+floatpower(floatabs(floatsub(z,SavePlayerPos[i][LastZ])),2));
    // Distance: meters in the last second
value = floatround(distance * 3600);
if(UpdateSeconds > 1){
value = floatround(value / UpdateSeconds);
}
// meters an hour
if(SpeedMode){
format(string,sizeof(string),"~w~~n~~n~~n~~n~~n ~                                                                                                 %d~b~ MPH",floatround(value/1600));
GameTextForPlayer(i, string, 1100, 5);
}
else{
format(string,sizeof(string)," ~w~~n~~n~~n~~n~~n~                                                                                                 %d~b~ KPH",floatround(value/1000));
GameTextForPlayer(i, string, 1100, 5);
}
SavePlayerPos[i][LastX] = x;
SavePlayerPos[i][LastY] = y;
SavePlayerPos[i][LastZ] = z;
} // End is-player-connected
} // End for-loop
} // eind UpdateSpeed function


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

public OnGameModeInit()
{
	SetGameModeText("CasCadev2");
	SetTeamCount(5);
	ShowNameTags(1);
	ShowPlayerMarkers(1);
	SetWorldTime(0);
	
	SetTimer("UpdateSpeed", UpdateSeconds*1000, 1);
//plaerys
AddPlayerClass(0,2132.4121,-2536.4038,13.5469,111.1774,0,0,0,0,0,0); // CJ

AddStaticVehicle(522,2123.2026,-2527.3862,13.0882,62.4994,39,106); //
AddStaticVehicle(522,2123.6189,-2528.4333,13.1088,79.2440,3,8); //
AddStaticVehicle(522,2125.9673,-2533.0466,13.0931,82.3011,3,3); //
AddStaticVehicle(522,2127.6990,-2535.6804,13.1039,90.2036,6,25); //
AddStaticVehicle(522,2126.9175,-2534.0007,13.1120,98.7090,36,105); //
AddStaticVehicle(522,2125.1218,-2531.6829,13.0973,71.4905,51,118); //
AddStaticVehicle(522,2124.2190,-2529.6416,13.0927,63.8774,8,82); //
AddStaticVehicle(522,2124.8855,-2530.7578,13.1047,87.9929,7,79); //
AddStaticVehicle(492,1860.1366,-2533.9419,13.3287,182.7711,77,26); //
AddStaticVehicle(492,1856.6786,-2534.0286,13.3287,183.7594,81,27); //
AddStaticVehicle(492,1853.3475,-2534.0879,13.3286,181.3177,49,59); //
AddStaticVehicle(492,1850.0713,-2533.9578,13.3287,179.0984,28,56); //
AddStaticVehicle(492,1846.7659,-2533.5789,13.3287,177.9715,24,55); //
AddStaticVehicle(492,1843.5038,-2533.3787,13.3287,180.1439,52,69); //
AddStaticVehicle(492,1840.3088,-2532.9866,13.3287,178.8853,71,107); //
AddStaticVehicle(492,1836.6188,-2532.6848,13.3286,176.6951,28,56); //
AddStaticVehicle(492,1833.5382,-2532.5706,13.3287,180.1681,77,26); //
AddStaticVehicle(492,1830.2914,-2532.5203,13.3287,175.4893,30,26); //
AddStaticVehicle(492,1827.0634,-2532.3333,13.3286,175.7366,81,27); //
AddStaticVehicle(492,1823.7020,-2532.0574,13.3287,178.1983,24,55); //
AddStaticVehicle(492,1820.5004,-2531.8794,13.3287,178.2981,77,26); //
AddStaticVehicle(492,1817.0135,-2531.6465,13.3286,176.7285,49,59); //
AddStaticVehicle(492,1813.9845,-2531.2793,13.3287,174.5810,52,69); //
AddStaticVehicle(492,1810.9539,-2530.8455,13.3287,174.8950,71,107); //
AddStaticVehicle(492,1808.0800,-2530.7285,13.3287,174.9229,30,26); //
AddStaticVehicle(492,1804.8567,-2530.4041,13.3285,173.4897,52,69); //
AddStaticVehicle(556,1861.9713,-2553.7000,13.9219,268.1597,1,1); //
AddStaticVehicle(556,1855.8337,-2553.6846,13.9219,270.8506,1,1); //
AddStaticVehicle(556,1849.7653,-2553.8696,13.9244,270.3508,1,1); //
AddStaticVehicle(556,1843.6615,-2554.0000,13.9260,270.8062,1,1); //
AddStaticVehicle(556,1837.6217,-2554.1387,13.9221,272.9526,1,1); //
AddStaticVehicle(556,1831.4670,-2554.3594,13.9245,273.5332,1,1); //
AddStaticVehicle(556,1825.0380,-2554.6265,13.9219,272.2701,1,1); //




	SetTimer("GameModeShowWinTeam", gRoundTime-7000, 0);
	SetTimer("GameModeExitFunc", gRoundTime, 0);

	return 1;
 }


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

public OnPlayerConnect(playerid)
{
//	print("onconnect");
	GameTextForPlayer(playerid,"CAsCaDE",2500,5);
	SendClientMessage(playerid,COLOR_GREEN, "Jump As Far As You CAn");
	GameTextForPlayer(playerid, "CasCadeV2", 10000, 1);
	GivePlayerMoney(playerid, 1111);
//	print("onconnect1");
	points[playerid]=0;
	frags[playerid]=0;
	frags2[playerid]=0;
	frags3[playerid]=0;
	deaths[playerid]=0;
	suicides[playerid]=0;
	lastkill[playerid]=0;
	tknow[playerid]=0;
	SetPlayerColor(playerid, COLOR_GREY); // Set the player's color to inactive
	GetPlayerName(playerid, gPlayerName[playerid], MAX_PLAYER_NAME);
//	print("onconnectend");
	return 1;
}
//------------------------------------------------------------------------------
public OnPlayerDisconnect(playerid)
{
//	print("ondisconnect");
	gPlayerName[playerid] = 0;
	return 1;
}
//========================================================================

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

public OnPlayerSpawn(playerid)
{
//	print("onspawn");
//	SetPlayerInterior(playerid,0);

print("GameModeInit()");
   SetGameModeText("~r~Stay In Da Airport");
    SetPlayerWorldBounds(playerid,2151.0100,1533.3934,-2426.9827,-2621.2578); //world bounds
	switch (gTeam[playerid]) {
	    case 0: {SetPlayerColor(playerid,COLOR_TEAM_0);}
    }
	return 1;
}


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


//======

public OnPlayerDeath(playerid, killerid, reason)
{
	new name[MAX_PLAYER_NAME];
	new warning[256];
	new tempstring[256];
	new string[256];
	new deathreason[20];
    new Float: phealth;
    new killyes=0,bon1yes=0;
	new killer[MAX_PLAYER_NAME];
	GetPlayerName(playerid, name, sizeof(name));
	GetWeaponName(reason, deathreason, 20);
	SendDeathMessage(killerid,playerid,reason);
	if (killerid == INVALID_PLAYER_ID) {
/*	    switch (reason) {
			case WEAPON_DROWN:
				format(string, sizeof(string), "*** %s drowned.", name);
			default:
			{
			    if (strlen(deathreason) > 0) {
					format(string, sizeof(string), "*** %s died. (%s)", name, deathreason);
				} else {
				    format(string, sizeof(string), "*** %s died.", name);
				}
			}
		}
*/
		suicides[playerid]++;
		frags2[playerid]=0;
		frags3[playerid]=0;
	}
	else {
	    if (GetPlayerState(killerid) == 2 && reason != '1') {
			SetPlayerHealth(killerid,0);
			SendClientMessage(killerid,0xAA3333AA, "THAT IS NOT ALLOWED!!!");
//			SendDeathMessage(killerid,playerid,reason);
			return 1;
		}
		GetPlayerName(killerid, killer, sizeof(killer));

		if (gTeam[playerid] == gTeam[killerid]) {
		/*	if (strlen(deathreason) > 0) {
				format(string, sizeof(string), "*** %s killed team-mate %s. (%s)", killer, name, deathreason);
			} else {
				format(string, sizeof(string), "*** %s killed team-mate %s.", killer, name);
			}
			
			SetPlayerScore(killerid, GetPlayerScore(killerid) - 1);
        */  GivePlayerMoney(killerid, -1000);
			if (teamkills[killerid] == 0) {
	            format(warning, sizeof(warning), "Be careful! You have been punished for teamkilling %s.", name);
				SendClientMessage(killerid, 0xFFFF00AA, warning);
			} else if (teamkills[killerid] == 1) {
				SetPlayerInterior(killerid,6);
         	    SetPlayerPos(killerid,264.6296,77.1372,1001.0390);
		 		ResetPlayerWeapons(killerid);
				SendClientMessage(killerid, 0xFFFF00AA, "You will be rescued after 2 minutes.");
				SendClientMessage(killerid, 0xFFFF00AA, "You can type /rescue to rescue at this moment (price: $5.000) or type /kill to die.");
				SetTimer("RescueTK", 120000, 1);
				//SetTimer("RescueTK", 15000, 1);
				tknow[killerid]=1;
            } else {
				SendClientMessage(killerid, 0xFFFF00AA, "Kick for you. Teamkill - bad.");
				Kick(killerid);
			}
			teamkills[killerid]++;
			points[killerid]--;
			frags2[playerid]=0;
			frags3[playerid]=0;
		} else {
		    killyes=1;
		/*    if (strlen(deathreason) > 0) {
				format(string, sizeof(string), "*** %s killed %s. (%s)", killer, name, deathreason);
			} else {
				format(string, sizeof(string), "*** %s killed %s.", killer, name);
			}
			SetPlayerScore(killerid, GetPlayerScore(killerid) + 1);
          */GivePlayerMoney(killerid, 2000);
			frags[killerid]++;
			frags2[killerid]++;
			frags3[killerid]++;
			points[killerid]++;
			frags2[playerid]=0;
			frags3[playerid]=0;
			if (GetTickCount() - lastkill[killerid] < 15000) {
				bon1yes=1;
			} else {
			    frags3[killerid]=1;
			}
		}
	}
	points[playerid]--;
	deaths[playerid]++;
 //   SendClientMessageToAll(COLOR_RED, string);
   //format(string, sizeof(string), "(debug)LAST kill %d, raznica=%d, bonus-%d",lastkill[killerid],(tickcount()-lastkill[killerid])/1000,bon1yes);
   // SendClientMessageToAll(COLOR_GREY, string);
	SetPlayerColor(playerid,COLOR_GREY);
	if (killyes) {
		    if (!firstblood) {
		        firstblood++;
 				format(string, sizeof(string), "First Blood! (+5000) (%s)",killer);
				SendClientMessageToAll(COLOR_LIGHTBLUE, string);
				GivePlayerMoney(killerid, 5000);
		    }
  		if (bon1yes==1) {
		    switch (frags3[killerid]) {
				case 2: {
 					format(string, sizeof(string), "DOUBLE KILL! (+2000) (%s)",killer);
					SendClientMessageToAll(COLOR_PINK, string);
					GivePlayerMoney(killerid, 2000);
				}
				case 3: {
 					format(string, sizeof(string), "TRIPLE KILL! (+3000) (%s)",killer);
					SendClientMessageToAll(COLOR_PINK, string);
				 	GivePlayerMoney(killerid, 3000);
				}
				case 4: {
 					format(string, sizeof(string), "Tquadruple KILL! (+4000) (%s)",killer);
					SendClientMessageToAll(COLOR_PINK, string);
				 	GivePlayerMoney(killerid, 4000);
				}
 				case 5: {
 					format(string, sizeof(string), "Quintuple KILL! (+5000) (%s)",killer);
					SendClientMessageToAll(COLOR_PINK, string);
				 	GivePlayerMoney(killerid, 5000);
				}
 				case 6..100: {
 					format(string, sizeof(string), "Inconceivable KILL! (+10000) (%s)",killer);
					SendClientMessageToAll(COLOR_PINK, string);
				 	GivePlayerMoney(killerid, 10000);
				}
			}
		  }
		  GetPlayerHealth(killerid, phealth);
		  format(tempstring, sizeof(tempstring), "*** %s have %2.f hp.", killer, phealth);
 		  SendClientMessage(playerid,COLOR_GREY, tempstring);
		    switch (frags2[killerid]) {
				case 3: {
 					format(string, sizeof(string), "KILLING SPREE! (+1000) (%s)",killer);
					SendClientMessageToAll(COLOR_LIGHTBLUE, string);
					GivePlayerMoney(killerid, 1000);
				}
				case 4: {
 					format(string, sizeof(string), "DOMINATING! (+2000) (%s)",killer);
					SendClientMessageToAll(COLOR_LIGHTBLUE, string);
					GivePlayerMoney(killerid, 2000);
				}
				case 5: {
 					format(string, sizeof(string), "MEGA KILL! (+3000) (%s)",killer);
					SendClientMessageToAll(COLOR_LIGHTBLUE, string);
					GivePlayerMoney(killerid, 2000);
				}
				case 6: {
 					format(string, sizeof(string), "UNSTOPPABLE! (+4000) (%s)",killer);
					SendClientMessageToAll(COLOR_LIGHTBLUE, string);
					GivePlayerMoney(killerid, 2000);
				}
				case 7: {
 					format(string, sizeof(string), "WICKED SICK! (+5000) (%s)",killer);
					SendClientMessageToAll(COLOR_LIGHTBLUE, string);
					GivePlayerMoney(killerid, 2000);
				}
				case 8: {
 					format(string, sizeof(string), "MOSNTER KILL! (+6000) (%s)",killer);
					SendClientMessageToAll(COLOR_LIGHTBLUE, string);
					GivePlayerMoney(killerid, 2000);
				}
 				case 9..100: {
 					format(string, sizeof(string), "GODLIKE! (+10000) (%s)",killer);
					SendClientMessageToAll(COLOR_LIGHTBLUE, string);
				 	GivePlayerMoney(killerid, 10000);
				}
			}
		lastkill[killerid]=GetTickCount();
	 }
	SetPlayerScore(playerid,points[playerid]);
//	points[playerid]=100;
	SetPlayerScore(killerid,points[killerid]);
	 return 1;
}
//------------------------------------------------------------------------------

public SetupPlayerForClassSelection(playerid)
{
//	SetPlayerInterior(playerid,10);
		SetPlayerPos(playerid,2489.2221,-1656.2525,13.3606);
		SetPlayerFacingAngle(playerid, 180.0);
		SetPlayerCameraPos(playerid,2489.3806,-1661.4866,13.3359);
		SetPlayerCameraLookAt(playerid,2489.2221,-1656.2525,13.3606);
}

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

public OnPlayerRequestClass(playerid, classid)
{
	SetPlayerClass(playerid, classid);
	SetupPlayerForClassSelection(playerid);
	gPlayerClass[playerid] = classid;
	switch (classid) {
	    case 0..2:   {
				SetPlayerFacingAngle(playerid, 180.0);
			 	SetPlayerPos(playerid,2489.2221,-1656.2525,13.3606);
				SetPlayerCameraPos(playerid,2489.3806,-1661.4866,13.3359);
				SetPlayerCameraLookAt(playerid,2489.2221,-1656.2525,13.3606);
			GameTextForPlayer(playerid, "~g~CJ", 1000, 3);


		}
    }
	return 1;
}

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

public GameModeExitFunc()
 {
	GameModeExit();
	return 1;
 }

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


//------------------------------------------------------------------------------
SetPlayerClass(playerid, classid) {
	switch (classid) {
	    case 0..1: {gTeam[playerid] = TEAM_GROVE;}
    }
}
//------------------------------------------------------------------------------



//-----------------------------------------------------------------------------
public GetPlayerId(playername[])
{
	for (new i = 0; i < MAX_PLAYERS; i++) {
	// printf("zaproc-%s,tekyshee-%s",playername,gPlayerName[i]);
		if ((IsPlayerConnected(i)) && (strcmp(playername, gPlayerName[i], false) == 0)) return i;
	}
	return  -1;
}
//-----------------------------------------------------------------------------
public IsNumeric(const string[])
{
	for (new i = 0, j = strlen(string); i < j; i++) {
    	if (string[i] > '9' || string[i] < '0') return 0;
	}
	return 1;
}
//-----------------------------------------------------------------------------

public RescueTK()
 {
	for (new i = 0; i < MAX_PLAYERS; i++) {
		if (IsPlayerConnected(i) && tknow[i]== 1) {
            SetPlayerInterior(i,0);
		    SetPlayerPos(i,1553.0318,-1675.4394,16.1953);
			tknow[i]=0;
		}
	}
				
 }