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