Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #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] = {
- //{2634, 2144.2114, 1627.3164, 994.2532, 0.0000, 0.0000, 0.0000, 200.0},
- ///////////////////////////////////////////////////////
- (980, 785.29998779297, -1152.3000488281, 25.299999237061, 0, 0, 270);
- (980, 756.09997558594, -1280.5, 15.300000190735, 0, 0, 359.99584960938);
- (987, 775.79998779297, -1310, 13.300000190735, 0, 0, 0);
- (987, 763.79998779297, -1309.6999511719, 13.300000190735, 0, 0, 0);
- (987, 767.5322265625, -1371.4453125, 9.2926416397095, 0, 0, 0);
- (987, 751.90002441406, -1309.4000244141, 13.300000190735, 0, 0, 0);
- (987, 739.79998779297, -1309.4000244141, 13.300000190735, 0, 0, 0);
- (987, 727.70001220703, -1309.5, 13.300000190735, 0, 0, 0);
- (987, 715.59997558594, -1309.5, 13.300000190735, 0, 0, 0);
- (987, 703.5, -1309.5, 13.300000190735, 0, 0, 0);
- (987, 691.5, -1309.5, 13.39999961853, 0, 0, 0);
- (987, 679.5, -1309.5, 13.39999961853, 0, 0, 0);
- (987, 647.90002441406, -1309.3000488281, 13.300000190735, 0, 0, 0);
- (987, 659.20001220703, -1309.5999755859, 12.60000038147, 0, 0, 0);
- (987, 674.79998779297, -1309.4000244141, 13.39999961853, 0, 0, 0);
- (987, 648, -1297.6999511719, 13.699999809265, 0, 0, 268);
- (987, 698, -1318.0999755859, -62.799999237061, 0, 0, 265.99584960938);
- (987, 648.20001220703, -1285.5999755859, 15, 0, 0, 268);
- (987, 648, -1274.1999511719, 15.699999809265, 0, 0, 272);
- (987, 646.79998779297, -1262.3000488281, 16, 0, 0, 276);
- (987, 645.29998779297, -1250.8000488281, 16.200000762939, 0, 0, 276);
- (987, 644, -1238.9000244141, 16.89999961853, 0, 0, 276);
- (987, 643.29998779297, -1232.6999511719, 17.39999961853, 0, 0, 276);
- (987, 653.40002441406, -1235.3000488281, 16.39999961853, 0, 0, 166);
- (987, 666.09997558594, -1219.4000244141, 14.89999961853, 0, 0, 4);
- (987, 666.20001220703, -1219.1999511719, 19.60000038147, 0, 0, 4);
- (987, 666.20001220703, -1219, 24.60000038147, 0, 0, 4);
- (987, 673.29998779297, -1218.6999511719, 25.299999237061, 0, 0, 37.996215820313);
- (987, 682.70001220703, -1211.4000244141, 25.299999237061, 0, 0, 38);
- (987, 686.29998779297, -1208.5999755859, 25.299999237061, 0, 0, 38);
- (987, 701.70001220703, -1206.9000244141, 27.200000762939, 0, 0, 138);
- (987, 701.70001220703, -1206.8000488281, 17.200000762939, 0, 0, 138);
- (987, 701.70001220703, -1206.8000488281, 22.200000762939, 0, 0, 138);
- (987, 708, -1196.8000488281, 19.700000762939, 0, 0, 240);
- (987, 720.29998779297, -1176.3000488281, 19.700000762939, 0, 0, 240);
- (987, 714.29998779297, -1186.5, 19.700000762939, 0, 0, 237.99609375);
- (987, 726.20001220703, -1165.9000244141, 19.700000762939, 0, 0, 240);
- (987, 731.79998779297, -1155.1999511719, 19.799999237061, 0, 0, 242);
- (987, 737.40002441406, -1144.5999755859, 19.799999237061, 0, 0, 242);
- (987, 782.90002441406, -1142.5, 25.799999237061, 0, 0, 179.99450683594);
- (987, 707.90002441406, -1196.6999511719, 24.700000762939, 0, 0, 240);
- (987, 714.29998779297, -1186.5, 24.700000762939, 0, 0, 238);
- (987, 720.29998779297, -1176.1999511719, 24.700000762939, 0, 0, 240);
- (987, 726.09997558594, -1165.9000244141, 24.700000762939, 0, 0, 240);
- (987, 731.70001220703, -1155.3000488281, 24.700000762939, 0, 0, 242);
- (987, 737.20001220703, -1144.5999755859, 24.799999237061, 0, 0, 242);
- (987, 771, -1142.5, 25.799999237061, 0, 0, 180);
- (987, 759.09997558594, -1142.3000488281, 25.299999237061, 0, 0, 180);
- (987, 752.09997558594, -1142.3000488281, 25, 0, 0, 180);
- (987, 746, -1142.0999755859, 19.89999961853, 0, 0, 206);
- (987, 754.615234375, -1158.43359375, 17.681871414185, 0, 0, 0);
- (987, 745.90002441406, -1142, 24.89999961853, 0, 0, 206);
- (987, 787.40002441406, -1310.0999755859, 13.300000190735, 0, 0, 90);
- (987, 787.40002441406, -1298.0999755859, 13.300000190735, 0, 0, 89.9990234375);
- (987, 787.5, -1250.3000488281, 13.39999961853, 0, 0, 90);
- (987, 787.40002441406, -1286.0999755859, 13.300000190735, 0, 0, 90);
- (987, 787.5, -1274.1999511719, 13.300000190735, 0, 0, 90);
- (987, 787.5, -1262.3000488281, 13.300000190735, 0, 0, 90);
- (987, 787.5, -1238.3000488281, 13.89999961853, 0, 0, 90);
- (987, 787.5, -1226.3000488281, 14.5, 0, 0, 90);
- (987, 787.29998779297, -1214.4000244141, 16.10000038147, 0, 0, 90);
- (987, 787.29998779297, -1202.4000244141, 18, 0, 0, 90);
- (987, 787.5, -1190.4000244141, 20, 0, 0, 90);
- (987, 787.5, -1178.4000244141, 21.60000038147, 0, 0, 90);
- (987, 787.29998779297, -1174.1999511719, 23.299999237061, 0, 0, 90);
- (17324, 756, -1292.4000244141, 12.60000038147, 0, 0, 179.99499511719);
- ///////////////////////////////////////////////////////
- };
- 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(" Loaded successful.");
- timer = SetTimer("Timer",1000,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 OnPlayerSpawn(playerid)
- PlayerObjectUpdate(playerid);
Advertisement
Add Comment
Please, Sign In to add comment