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