All pastes #830599 Raw Edit

Tour miniMission Filter Script v

public text v1 · immutable
#830599 ·published 2007-12-24 02:41 UTC
rendered paste body
//------------------------------------------------------------------------------
//
//   Tour miniMission Filter Script v1.0
//   Designed for SA-MP v0.2.1
//
//   Created by zeruel_angel
//   altered for busses buy c-middia
//   and to work with other racecheckpoint systems
//------------------------------------------------------------------------------
#include <a_samp>
enum bus_stops
	{
	Float:Size,
	Float:X,
	Float:Y,
	Float:Z
	}
#define COACH 437
#define BONUS 500
#define MAX_CASH 2000
#define MIN_CASH 1000
#define MAX_ESTACIONES 100
new EDSbus[MAX_ESTACIONES][bus_stops];
new busDestinations[]="busstops.txt";
new playerInbusMission[MAX_PLAYERS];
new Cantbusstop;
new buscontador[MAX_PLAYERS];
new busdest[MAX_PLAYERS];
new avisadobus[MAX_PLAYERS];
new buslinea[255];
forward terminarMission(playerid);
//------------------------------------------------------------------------------------------------------
public OnFilterScriptInit()
	{
	print("\n Tour Filter Script v1.0 Loading...\n***********************************\n      (Zeruel_Angel)\n");
	//cargo los checkpoints desde el archivo
	new File:file1;
 	new j=0;
 	new idx;
   	file1 = fopen(busDestinations,io_readwrite);
 	while	((fread(file1,buslinea,sizeof(buslinea),false))&&(j<MAX_ESTACIONES))
			{
	  		idx = 0;
			EDSbus[j][Size] = floatstr(strtok(buslinea,idx));
			EDSbus[j][X] = floatstr(strtok(buslinea,idx));
			EDSbus[j][Y] = floatstr(strtok(buslinea,idx));
			EDSbus[j][Z] = floatstr(strtok(buslinea,idx));
			j++;
			}
	fclose(file1);
	Cantbusstop=j;
	format(buslinea,sizeof(buslinea),"Cantidad total de Destinos cargados: %d", Cantbusstop);
	print(buslinea);
	for (new i=0;i<MAX_PLAYERS;i++)
	    {
	    avisadobus[i]=-1;
	    }
	print("Tour Filter Script fully Loaded\n**********************************\n\n");
	}
//------------------------------------------------------------------------------------------------------
public OnFilterScriptExit()
	{
    print("\n Tour Script UnLoaded\n********************************************\n\n");
	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;
}
//------------------------------------------------------------------------------------------------------
public terminarMission(playerid)
	{
//	GameTextForPlayer(playerid,"~r~Coach ~n~ ~w~MiniMision ~n~~w~cancelled",3000,4);
	SendClientMessage(playerid,0xFF0000FF,"Coach MiniMision cancelled");
//	DestroyVehicle(playerInbusMission[playerid]);
    playerInbusMission[playerid]=0;
    avisadobus[playerid]=-1;
    DisablePlayerRaceCheckpoint(playerid);
    buscontador[playerid]=0;
    return 1;
	}
//------------------------------------------------------------------------------------------------------
public OnPlayerStateChange(playerid, newstate, oldstate)
	{
	if (newstate==PLAYER_STATE_DRIVER && GetVehicleModel(GetPlayerVehicleID(playerid)) == 437 && avisadobus[playerid]==-1)
	    {
//		if (GetVehicleModel(GetPlayerVehicleID(playerid)) == 437)
//	        {
//	        if 	(avisadobus[playerid]==-1)
//	            {
//				GameTextForPlayer(playerid,"~w~Press ~b~Buttom 2~n~~w~to start ~r~Xoomer~n~~w~Minimission",3000,5);//SetTimerEx("MandarMensaje",5500,0,"%d",playerid);
				SendClientMessage(playerid,0x00FF00FF,"Press Buttom 2 to start Coach Minimission");
				}
			else
			    {
			    KillTimer(avisadobus[playerid]);
			    avisadobus[playerid]=-1;
//			    }
//		    }
	    }
	if 	(newstate==PLAYER_STATE_ONFOOT)
	    {
	    if 	((playerInbusMission[playerid]!=0)&&(avisadobus[playerid]==-1))
		    {
//		    GameTextForPlayer(playerid,"~You have ~r~10 sec ~n~~w~ to get a Truck",3000,4);
			SendClientMessage(playerid,0xFF0000FF,"You have 10 sec to get a Coach");
		    avisadobus[playerid]=SetTimerEx("terminarMission",10000,0,"%d",playerid);
		    }
	    }
	return 1;
	}
//------------------------------------------------------------------------------------------------------
/*
  ProximaEstacion(playerid)
	{
 	new index = busdest[playerid];
	DisablePlayerRaceCheckpoint(playerid);
//	playerInbusMission[playerid]=CreateVehicle(584,0.0,0.0,0.0,0.0,0,1,-1);
//	AttachTrailerToVehicle(playerInbusMission[playerid],GetPlayerVehicleID(playerid));
	playerInbusMission[playerid]=1;
	SetPlayerRaceCheckpoint(playerid,0,EDSbus[index][X],EDSbus[index][Y],EDSbus[index][Z],1716.7765,1391.4298,10.2873,EDSbus[index][Size]);
	//FALTA LO DEL TRAILER
	return 1;
	}
*/
//------------------------------------------------------------------------------------------------------
  Refineria(playerid)
	{
	DisablePlayerRaceCheckpoint(playerid);
	new index = random(Cantbusstop);
	busdest[playerid]=index;
	SetPlayerRaceCheckpoint(playerid,0,1716.7765,1391.4298,10.2873,EDSbus[index][X],EDSbus[index][Y],EDSbus[index][Z],EDSbus[index][Size]);
	return 1;
	}
//------------------------------------------------------------------------------------------------------
  MissionIni(playerid)
    {
//    GameTextForPlayer(playerid,"~r~Coach ~w~MiniMision ~w~starts!~n~ go to the ~n~~r~LV Coach Station",3000,4);
	SendClientMessage(playerid,0x00FF00FF,"Coach MiniMision starts! go to the LV Coach Station");
    Refineria(playerid);
    playerInbusMission[playerid]=-1;
    return 1;
    }
//------------------------------------------------------------------------------------------------------
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
	{
	if ((newkeys==KEY_SUBMISSION)&&(IsPlayerInAnyVehicle(playerid))&&(GetPlayerState(playerid)==PLAYER_STATE_DRIVER))
	    {
	    if (GetVehicleModel(GetPlayerVehicleID(playerid)) == 437)
	        {
    	    if 	(playerInbusMission[playerid]==0)
	        	{
	        	MissionIni(playerid);
	        	}
			else
			    {
				terminarMission(playerid);
			    }
		    }
	    }
	}
//------------------------------------------------------------------------------------------------------
public OnPlayerEnterRaceCheckpoint(playerid)
	{
    new vid = GetPlayerVehicleID(playerid);
	if 	(playerInbusMission[playerid]==-1 && GetVehicleModel(GetPlayerVehicleID(playerid)) == 437)
	    {
		SendClientMessage(playerid,0x00FF00FF,"The passangers are on the Coach Take it to the Destination");
  //	ProximaEstacion(playerid);
  //
		new index = busdest[playerid];
		DisablePlayerRaceCheckpoint(playerid);
		playerInbusMission[playerid]=1;
		SetPlayerRaceCheckpoint(playerid,0,EDSbus[index][X],EDSbus[index][Y],EDSbus[index][Z],1716.7765,1391.4298,10.2873,EDSbus[index][Size]);
  //
//		}
// 		else
//		    {
// 			SendClientMessage(playerid,0xFF0000FF,"You need a Coach");
//		    }
   		return 1;
   	}
//  GetVehicleModel(vid)  == COACH
//	if 	(GetVehicleModel(GetPlayerVehicleID(playerid) == 437) && playerInbusMission[playerid]!=0)
	if 	((GetVehicleModel(vid) == COACH) && playerInbusMission[playerid]==1)

	    {
//	    if (IsPlayerInAnyVehicle(playerid))
//	        {
//	    	if 	((GetVehicleModel(GetPlayerVehicleID(playerid)) == 437))
//				&&(IsTrailerAttachedToVehicle(GetPlayerVehicleID(playerid)))
//				&&(GetVehicleTrailer(GetPlayerVehicleID(playerid))==playerInbusMission[playerid]))
//	        	{
	     	    buscontador[playerid]++;
				new cash=(random(MAX_CASH-MIN_CASH)+MIN_CASH);
				GivePlayerMoney(playerid,cash);
//				DestroyVehicle(playerInbusMission[playerid]);
				playerInbusMission[playerid]=-1;
				Refineria(playerid);
				if 	((((buscontador[playerid]/5)*5)==buscontador[playerid])&&(buscontador[playerid]!=0))
				    {
				    new string[255];
				    format(string,sizeof(string),"You get a ~r~BONUS ~w~ every 5 times!.~n~You made %d tours, your bonus is ~n~~b~$%d",buscontador[playerid],buscontador[playerid]*BONUS);
//					SendClientMessage(playerid,0x0000FFFF,"You need a truck");
				    GameTextForPlayer(playerid,string,3000,3);
				    }
				else
				    {
					GameTextForPlayer(playerid,"~w~Passengers deployed ! Here is your cash! ~n~Go back to ~r~Las Venturas",5000,3);
					SendClientMessage(playerid,0x0000FFFF,"Passengers deployed ! Here is your cash ! Go back to Las Venturas");
					}
	 	    	}
//	    	}
//		}
	return 1;
	}
//------------------------------------------------------------------------------------------------------
public OnPlayerDisconnect(playerid)
	{
	if 	(playerInbusMission[playerid]!=0)
	    {
		terminarMission(playerid);
		}
	return 1;
	}