All pastes #766236 Raw Edit

Unnamed

public text v1 · immutable
·published 2007-11-08 18:56 UTC
rendered paste body
#include <a_samp>

forward Timer();
forward SetPlayerPosWithObjects(playerid,Float:x,Float:y,Float:z);
/*
	SetPlayerPosWithObjects usage in your gamemode:

		CallRemoteFunction("SetPlayerPosWithObjects","ifff",playerid,newx,newy,newz);
*/

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

enum object_info
{
	modelid,
	Float:ox,
	Float:oy,
	Float:oz,
	Float:orx,
	Float:ory,
	Float:orz,
	Float:viewdist
}

new Objects[][object_info] = {
	{18561,2144.536,219.774,96.610,0.0,-50.707,78.750,1000.0},
	{18561,2160.385,302.393,199.429,0.0,-50.707,78.750,1000.0},
	{18561,2176.311,385.233,302.507,0.0,-50.707,78.750,1000.0},
	{18561,2191.929,466.520,403.554,0.0,-50.707,78.750,1000.0},
	{18561,2222.052,620.418,595.136,0.0,-50.707,78.750,1000.0},
	{18561,2252.540,775.754,788.535,0.0,-50.707,78.750,1000.0},
	{8355,2281.653,925.724,889.109,-0.859,0.859,-10.313,1000.0},
	{978,2285.031,859.012,890.688,0.0,-0.859,259.455,1000.0},
	{978,2254.263,864.579,891.167,0.0,-3.438,258.750,1000.0},
	{972,2264.756,941.051,888.944,0.0,0.0,-11.250,1000.0},
	{972,2269.390,964.203,888.990,0.0,0.0,-11.250,1000.0},
	{972,2289.337,971.526,888.447,0.0,0.0,78.991,1000.0},
	{972,2297.588,958.280,888.214,0.0,0.0,3.464,1000.0},
	{972,2296.031,935.001,888.652,0.0,0.0,-9.427,1000.0},
	{972,2260.002,917.143,889.467,-1.719,0.0,-11.250,1000.0},
	{972,2255.373,893.113,889.836,0.0,0.0,-11.250,1000.0},
	{972,2252.000,875.933,890.184,-1.719,0.0,-11.250,1000.0},
	{972,2291.657,911.017,888.903,-1.719,0.0,-11.250,1000.0},
	{972,2286.856,886.821,889.425,-0.859,0.0,-11.250,1000.0},
	{972,2284.619,874.316,889.656,-0.859,-1.719,-11.250,1000.0},
	{3252,2097.387,116.693,22.931,0.0,0.0,0.0,1000.0},
	{4550,2064.992,-86.471,28.499,0.0,0.0,0.0,1000.0},
	{4726,2064.579,-87.388,237.683,0.0,0.0,0.0,1000.0},
	{1633,2119.345,157.469,16.894,-28.361,0.0,168.750,1000.0},
	{1633,2123.640,156.685,16.821,-28.361,0.0,168.750,1000.0},
	{1633,2128.016,155.861,16.769,-28.361,0.0,168.750,1000.0},
	{1633,2132.325,154.953,16.725,-28.361,0.0,168.750,1000.0},
	{1633,2136.672,154.061,16.756,-28.361,0.0,168.750,1000.0},
	{1633,2141.324,153.201,16.801,-28.361,0.0,168.750,1000.0},
	{1634,2122.350,149.934,17.061,-7.735,0.0,168.750,1000.0},
	{1634,2118.081,150.715,17.061,-7.735,0.0,168.750,1000.0},
	{1634,2126.699,149.182,17.011,-7.735,0.0,168.750,1000.0},
	{1634,2130.945,147.960,16.916,-7.735,0.0,168.750,1000.0},
	{1634,2135.293,147.202,16.876,-7.735,0.0,168.750,1000.0},
	{1634,2140.011,146.354,16.732,-7.735,0.0,168.750,1000.0},
	{5401,2087.454,-112.191,-0.028,5.157,0.0,34.945,1000.0},
	{1696,2073.520,-119.158,3.348,6.016,-5.157,120.312,1000.0},
	{3458,2050.252,-132.237,5.544,-7.735,18.908,31.172,1000.0},
	{3364,2032.758,-145.241,12.956,-6.875,0.0,22.500,1000.0},
	{3402,2014.986,-152.255,12.713,0.0,0.0,26.720,1000.0},
	{3627,1985.082,-168.707,8.712,0.0,0.0,117.734,1000.0},
	{3469,1948.725,-184.045,3.089,0.0,0.0,115.938,1000.0},
	{3565,1928.339,-197.583,5.869,0.0,0.0,34.532,1000.0},
	{3565,1922.782,-202.841,5.866,0.0,0.0,50.861,1000.0},
	{3565,1919.701,-208.407,5.888,0.0,0.0,68.050,1000.0},
	{3566,1915.277,-218.878,3.953,-5.157,0.0,156.641,1000.0},
	{1391,1934.435,-292.619,33.792,-41.253,0.0,0.0,1000.0},
	{7073,1878.727,-243.070,25.933,0.0,-15.470,8.594,1000.0},
	{618,1881.466,-242.022,14.159,0.0,0.0,0.0,1000.0},
	{1634,2117.041,145.563,20.109,13.751,0.0,168.750,1000.0},
	{1634,2121.393,144.802,20.101,13.751,0.0,168.750,1000.0},
	{1634,2125.642,144.029,19.989,13.751,0.0,168.750,1000.0},
	{1634,2129.899,143.267,20.048,13.751,0.0,168.750,1000.0},
	{1634,2134.273,142.291,19.971,13.751,0.0,168.750,1000.0},
	{1634,2138.978,141.657,19.805,13.751,0.0,168.750,1000.0},
	{1684,2090.517,-236.569,12.421,-10.313,-14.610,-90.000,1000.0},
	{11469,2090.468,-222.575,8.038,-0.859,11.173,0.0,1000.0},
	{1634,2091.505,-210.836,13.994,14.610,9.454,3.438,1000.0},
	{3359,2091.827,-198.298,14.041,0.0,-0.859,91.719,1000.0},
	{3375,2092.183,-174.194,4.572,0.0,0.0,90.000,1000.0},
	{2745,2082.806,-163.338,10.245,0.0,0.0,168.750,1000.0},
	{971,2092.267,-152.419,4.510,-86.803,-0.859,0.0,1000.0},
	{3406,2096.495,-147.762,4.019,82.506,-7.735,-213.750,1000.0},
	{3241,2102.198,-142.439,0.557,0.0,0.0,-45.000,1000.0},
	{3417,2109.181,-134.812,0.781,0.0,0.0,45.000,1000.0},
	{3456,2132.336,-118.628,-0.479,0.0,0.0,-56.250,1000.0}
};


enum player_info
{
	objid[sizeof(Objects)],
	bool:view[sizeof(Objects)]
}
new Player[MAX_PLAYERS][player_info];

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

bool:IsInReach(Float:x,Float:y,Float:z,Float:x2,Float:y2,Float:z2,Float:dist)
{
	x = (x > x2) ? x - x2 : x2 - x;
	if(x > dist) return false;
	y = (y > y2) ? y - y2 : y2 - y;
	if(y > dist) return false;
	z = (z > z2) ? z - z2 : z2 - z;
	if(z > dist) return false;
	return true;
}

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

new timer;

public OnFilterScriptInit()
{
	print("Countryside Objects [FS] By Andre9977 Loaded!");
	timer = SetTimer("Timer",500,1);
	return 1;
}

public OnFilterScriptExit()
{
	for(new i = 0; i < MAX_PLAYERS; i++)
	{
		for(new o = 0; o < sizeof(Objects); o++)
		{
			if(Player[i][view][o])
			{
				Player[i][view][o] = false;
				DestroyPlayerObject(i,Player[i][objid][o]);
			}
		}
	}
	
	KillTimer(timer);
}

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

public OnPlayerConnect(playerid)
{
	for(new i = 0; i < sizeof(Objects); i++) Player[playerid][view][i] = false;
}

public OnPlayerDisconnect(playerid)
{
	for(new i = 0; i < sizeof(Objects); i++)
	{
		if(Player[playerid][view][i])
		{
			Player[playerid][view][i] = false;
			DestroyPlayerObject(playerid,Player[playerid][objid][i]);
		}
	}
}

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

public Timer()
{
	for(new i = 0; i < MAX_PLAYERS; i++)
		if(IsPlayerConnected(i))
		    PlayerObjectUpdate(i);
}

PlayerObjectUpdate(playerid)
{
	new Float:pos[3];
	GetPlayerPos(playerid,pos[0],pos[1],pos[2]);
	for(new i = 0; i < sizeof(Objects); i++)
	{
	    if(!Player[playerid][view][i])
	    {
	        if(IsInReach(pos[0],pos[1],pos[2],Objects[i][ox],Objects[i][oy],Objects[i][oz],Objects[i][viewdist]))
	        {
	            Player[playerid][view][i] = true;
	            Player[playerid][objid][i] = CreatePlayerObject(playerid,Objects[i][modelid],Objects[i][ox],Objects[i][oy],Objects[i][oz],Objects[i][orx],Objects[i][ory],Objects[i][orz]);
	        }
	    } else if(!IsInReach(pos[0],pos[1],pos[2],Objects[i][ox],Objects[i][oy],Objects[i][oz],Objects[i][viewdist]))
	    {
            Player[playerid][view][i] = false;
            DestroyPlayerObject(playerid,Player[playerid][objid][i]);
	    }
	}
}

public SetPlayerPosWithObjects(playerid,Float:x,Float:y,Float:z)
{
	for(new i = 0; i < sizeof(Objects); i++)
	{
	    if(!Player[playerid][view][i])
	    {
	        if(IsInReach(x,y,z,Objects[i][ox],Objects[i][oy],Objects[i][oz],Objects[i][viewdist]))
	        {
	            Player[playerid][view][i] = true;
	            Player[playerid][objid][i] = CreatePlayerObject(playerid,Objects[i][modelid],Objects[i][ox],Objects[i][oy],Objects[i][oz],Objects[i][orx],Objects[i][ory],Objects[i][orz]);
	        }
	    } else if(!IsInReach(x,y,z,Objects[i][ox],Objects[i][oy],Objects[i][oz],Objects[i][viewdist]))
	    {
            Player[playerid][view][i] = false;
            DestroyPlayerObject(playerid,Player[playerid][objid][i]);
	    }
	}
	SetPlayerPos(playerid,Float:x,Float:y,Float:z);
}
public OnPlayerCommandText(playerid,cmdtext[])
{
// FUNFALL
	if(strcmp(cmdtext, "/funfall", true) == 0)
    {
    if(IsPlayerInAnyVehicle(playerid) && GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
    {
        SetVehiclePos(GetPlayerVehicleID(playerid), 2288.6184,965.1677,891.5116);
    }
    else
    {
        SetPlayerPos(playerid, 2288.6184,965.1677,889.5116);
    }
    SendClientMessage(playerid, 0x00FFFFAA, "Welcome to the fun fall!");
    SendClientMessage(playerid, 0x00FFFFAA, "If You need a parachute, feel free to /para!");
    return 1;
    }
// OBSTACLE
    if(strcmp(cmdtext, "/obstacle1", true) == 0)
    {
    if(IsPlayerInAnyVehicle(playerid) && GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
    {
        SetVehiclePos(GetPlayerVehicleID(playerid), 2142.4729,-79.0658,2.9201);
    }
    else
    {
        SetPlayerPos(playerid, 2142.4729,-79.0658,2.9201);
    }
    SendClientMessage(playerid, 0x00FFFFAA, "You have teleported to Obstacle Course 1");
    return 1;
    }
// OBSTACLE 2
    if(strcmp(cmdtext, "/obstacle2", true) == 0)
{
    if(IsPlayerInAnyVehicle(playerid) && GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
    {
        SetVehiclePos(GetPlayerVehicleID(playerid), 2092.4531,-251.3484,19.5383);
    }
    else
    {
        SetPlayerPos(playerid, 2092.4531,-251.3484,19.5383);
    }
    SendClientMessage(playerid, 0x00FFFFAA, "You have teleported to Obstacle Course 2");
    return 1;
}
// Para
    if(strcmp(cmdtext, "/para", true) == 0)
    {
	GivePlayerWeapon(playerid, 46, 1);
	return 1;
    }
// Parachute
    if(strcmp(cmdtext, "/parachute", true) == 0)
    {
	GivePlayerWeapon(playerid, 46, 1);
	return 1;
    }
// Andre9977


	return 0;
}
public OnPlayerSpawn(playerid)
	PlayerObjectUpdate(playerid);