Advertisement
srdjan

San Andreas Maps

Sep 5th, 2011
919
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 10.74 KB | None | 0 0
  1. // 1.0 San Andreas Map
  2. // Made by Srdjan on 03/09/2011
  3.  
  4. #include <a_samp>
  5.  
  6. new CheckingMap [MAX_PLAYERS];
  7. new OldPlayerVehID [MAX_PLAYERS];
  8. new OldPlayerSeat [MAX_PLAYERS];
  9. new Float: OldPos [MAX_PLAYERS][3];
  10. new OldInt [MAX_PLAYERS];
  11. new MapTimer [MAX_PLAYERS];
  12. new Float: CameraPos [MAX_PLAYERS][3];
  13. new Float: LookAt [MAX_PLAYERS][3];
  14. new Float: Degrees [MAX_PLAYERS];
  15. new MovePlayerTimer [MAX_PLAYERS];
  16. new Text: MapsTD;
  17. new Text: Coords [MAX_PLAYERS];
  18. new Text: MapsAltimeterPlus;
  19. new Text: MapsAltimeterMinus;
  20. new Text: MapsAltimeterLines;
  21. new Altitude [MAX_PLAYERS];
  22. new Text: MapsMainAltLine [MAX_PLAYERS];
  23.  
  24. enum Zones
  25. {
  26.     ZoneName [28],
  27.     Float: ZoneCoords[6]
  28. };
  29.  
  30. new Location [][Zones] =
  31. {
  32.     {"Los Santos",                  {44.60, -2892.90, 2997.00, -768.00}},
  33.     {"Las Venturas",                {869.40, 596.30, 2997.00, 2993.80}},
  34.     {"Bone County",                 {-480.50, 596.30, 869.40, 2993.80}},
  35.     {"Tierra Robada",               {-2997.40, 1659.60, -480.50, 2993.80}},
  36.     {"Tierra Robada",               {-1213.90, 596.30, -480.50, 1659.60}},
  37.     {"San Fierro",                  {-2997.40, -1115.50, -1213.90, 1659.60}},
  38.     {"Red County",                  {-1213.90,-768.00, 2997.00, 596.30}},
  39.     {"Flint County",                {-1213.90,-2892.90, 44.60, -768.00}},
  40.     {"Whetstone",                   {-2997.40, -2892.90, -1213.90, -1115.50}}
  41. };
  42.  
  43. forward CheckKeys (playerid);
  44. forward MovePlayer (playerid);
  45.  
  46. public OnFilterScriptInit ()
  47. {
  48.     MapsTD = TextDrawCreate (10.0, 440.0, "San Andreas Maps, all rights reserved.");
  49.     TextDrawSetShadow (MapsTD, 0);
  50.     TextDrawUseBox (MapsTD, 1);
  51.     TextDrawBoxColor (MapsTD, 0x00000022);
  52.     TextDrawLetterSize (MapsTD, 0.3, 0.7);
  53.     TextDrawTextSize (MapsTD, 300, 400);
  54.    
  55.     MapsAltimeterPlus = TextDrawCreate (10.0, 100.0, "~b~+");
  56.     TextDrawSetShadow (MapsAltimeterPlus, 0);
  57.     TextDrawLetterSize (MapsAltimeterPlus, 0.3, 0.7);
  58.     TextDrawUseBox (MapsAltimeterPlus, 1);
  59.     TextDrawBoxColor (MapsAltimeterPlus, 0xFFFFFFAA);
  60.     TextDrawTextSize (MapsAltimeterPlus, 17.0, 8.0);
  61.    
  62.     MapsAltimeterMinus = TextDrawCreate (11.0, 200.0, "~b~-");
  63.     TextDrawSetShadow (MapsAltimeterMinus, 0);
  64.     TextDrawLetterSize (MapsAltimeterMinus, 0.3, 0.7);
  65.     TextDrawUseBox (MapsAltimeterMinus, 1);
  66.     TextDrawBoxColor (MapsAltimeterMinus, 0xFFFFFFAA);
  67.     TextDrawTextSize (MapsAltimeterMinus, 17.0, 8.0);
  68.    
  69.     MapsAltimeterLines = TextDrawCreate (10.7, 109.0, "-~n~-~n~-~n~-~n~-~n~-~n~-~n~-~n~-~n~-~n~-~n~-~n~-~n~-");
  70.     TextDrawSetShadow (MapsAltimeterLines, 0);
  71.     TextDrawLetterSize (MapsAltimeterLines, 0.4, 0.7);
  72.    
  73.     for (new i = 0; i < MAX_PLAYERS; i++)
  74.     {
  75.         Coords [i] = TextDrawCreate (400.0, 430.0, "  Location: ~n~Coordinates:");
  76.         TextDrawSetShadow (Coords [i], 0);
  77.         TextDrawLetterSize (Coords [i], 0.3, 0.7);
  78.  
  79.         MapsMainAltLine [i] = TextDrawCreate (9.7, 102.8, " ");
  80.         TextDrawLetterSize (MapsMainAltLine [i], 0.6, 0.7);
  81.        
  82.         Degrees [i] = 0.0;
  83.         CheckingMap [i] = 0;
  84.         LookAt [i][0] = 0.0;
  85.         LookAt [i][1] = 0.0;
  86.         LookAt [i][2] = 0.0;
  87.     }
  88.    
  89.     printf ("\nSan Andreas Map by Srdjan loaded.\n");
  90.     return 1;
  91. }
  92.  
  93. public OnPlayerCommandText (playerid, cmdtext[])
  94. {
  95.     if (!strcmp (cmdtext, "/map on", false))
  96.     {
  97.         if (CheckingMap [playerid]) return 1;
  98.         CheckingMap [playerid] = 1;
  99.         if (IsPlayerInAnyVehicle (playerid))
  100.         {
  101.             OldPlayerVehID [playerid] = GetPlayerVehicleID (playerid);
  102.             OldPlayerSeat [playerid] = GetPlayerVehicleSeat (playerid);
  103.         }
  104.  
  105.         OldInt [playerid] = GetPlayerInterior (playerid);
  106.         GetPlayerPos (playerid, OldPos [playerid][0], OldPos [playerid][1], OldPos [playerid][2]);
  107.         MapTimer [playerid] = SetTimerEx ("CheckKeys", 100, 1, "d", playerid);
  108.  
  109.         CheckMap (playerid);
  110.         return 1;
  111.     }
  112.    
  113.     if (!strcmp (cmdtext, "/map off", false))
  114.     {
  115.         if (!CheckingMap [playerid]) return 1;
  116.         CheckingMap [playerid] = 0;
  117.         TogglePlayerControllable (playerid, 1);
  118.         SetPlayerPos (playerid, OldPos [playerid][0], OldPos [playerid][1], OldPos [playerid][2]);
  119.         SetPlayerInterior (playerid, OldInt [playerid]);
  120.         SetCameraBehindPlayer (playerid);
  121.         KillTimer (MapTimer [playerid]);
  122.         KillTimer (MovePlayerTimer [playerid]);
  123.         TextDrawHideForPlayer (playerid, MapsTD);
  124.         TextDrawHideForPlayer (playerid, Coords [playerid]);
  125.         TextDrawHideForPlayer (playerid, MapsAltimeterPlus);
  126.         TextDrawHideForPlayer (playerid, MapsAltimeterMinus);
  127.         TextDrawHideForPlayer (playerid, MapsAltimeterLines);
  128.         TextDrawHideForPlayer (playerid, MapsMainAltLine [playerid]);
  129.         if (OldPlayerVehID [playerid] > 0)
  130.         {
  131.             PutPlayerInVehicle (playerid, OldPlayerVehID [playerid], OldPlayerSeat [playerid]);
  132.         }
  133.         return 1;
  134.     }
  135.     return 0;
  136. }
  137.  
  138. public CheckKeys (playerid)
  139. {
  140.     new keys, updown, leftright, boost;
  141.     GetPlayerKeys (playerid, keys, updown, leftright);
  142.     if (!CheckingMap [playerid]) return 1;
  143.  
  144.     if (updown == KEY_UP)
  145.     {
  146.         if (keys == KEY_WALK)
  147.         {
  148.             if (CameraPos [playerid][2] >= 35.0)
  149.             {
  150.                 CameraPos [playerid][2] = CameraPos [playerid][2] - 10.0;
  151.                 Altitude [playerid] --;
  152.             }
  153.         }
  154.         else
  155.         {
  156.             if (CameraPos [playerid][2] < 75.0)
  157.             {
  158.                 boost = 2;
  159.             }
  160.             else if (CameraPos [playerid][2] < 150.0)
  161.             {
  162.                 boost = 5;
  163.             }
  164.             else if (CameraPos [playerid][2] < 300.0)
  165.             {
  166.                 boost = 10;
  167.             }
  168.             else if (CameraPos [playerid][2] <= 505.0)
  169.             {
  170.                 boost = 20;
  171.             }
  172.         }
  173.  
  174.         CameraPos [playerid][0] = CameraPos [playerid][0] + (boost * floatsin (-Degrees [playerid], degrees));
  175.         CameraPos [playerid][1] = CameraPos [playerid][1] + (boost * floatcos (-Degrees [playerid], degrees));
  176.  
  177.         MovePlayerCamera (playerid);
  178.     }
  179.     else if (updown == KEY_DOWN)
  180.     {
  181.         if (keys == KEY_WALK)
  182.         {
  183.             if (CameraPos [playerid][2] < 500.0)
  184.             {
  185.                 CameraPos [playerid][2] = CameraPos [playerid][2] + 10.0;
  186.                 Altitude [playerid] ++;
  187.             }
  188.         }
  189.         else
  190.         {
  191.             if (CameraPos [playerid][2] < 75.0)
  192.             {
  193.                 boost = 2;
  194.             }
  195.             else if (CameraPos [playerid][2] < 150.0)
  196.             {
  197.                 boost = 5;
  198.             }
  199.             else if (CameraPos [playerid][2] < 300.0)
  200.             {
  201.                 boost = 10;
  202.             }
  203.             else if (CameraPos [playerid][2] <= 505.0)
  204.             {
  205.                 boost = 20;
  206.             }
  207.         }
  208.        
  209.         CameraPos [playerid][0] = CameraPos [playerid][0] - (boost * floatsin (-Degrees [playerid], degrees));
  210.         CameraPos [playerid][1] = CameraPos [playerid][1] - (boost * floatcos (-Degrees [playerid], degrees));
  211.  
  212.         MovePlayerCamera (playerid);
  213.     }
  214.  
  215.     if (leftright == KEY_LEFT)
  216.     {
  217.         if (keys == KEY_WALK)
  218.         {
  219.             Degrees [playerid] = Degrees [playerid] + 5.0;
  220.             if (Degrees [playerid] == 360)
  221.             {
  222.                 Degrees [playerid] = 0;
  223.             }
  224.         }
  225.         else
  226.         {
  227.             if (CameraPos [playerid][2] < 75.0)
  228.             {
  229.                 boost = 2;
  230.             }
  231.             else if (CameraPos [playerid][2] < 150.0)
  232.             {
  233.                 boost = 5;
  234.             }
  235.             else if (CameraPos [playerid][2] < 300.0)
  236.             {
  237.                 boost = 10;
  238.             }
  239.             else if (CameraPos [playerid][2] <= 505.0)
  240.             {
  241.                 boost = 20;
  242.             }
  243.         }
  244.  
  245.         CameraPos [playerid][0] = CameraPos [playerid][0] + (boost * floatsin (-Degrees [playerid] - 90.0, degrees));
  246.         CameraPos [playerid][1] = CameraPos [playerid][1] + (boost * floatcos (-Degrees [playerid] - 90.0, degrees));
  247.  
  248.         MovePlayerCamera (playerid);
  249.     }
  250.     else if (leftright == KEY_RIGHT)
  251.     {
  252.         if (keys == KEY_WALK)
  253.         {
  254.             Degrees [playerid] = Degrees [playerid] - 5.0;
  255.             if (Degrees [playerid] < 0)
  256.             {
  257.                 Degrees [playerid] = 355;
  258.             }
  259.         }
  260.         else
  261.         {
  262.             if (CameraPos [playerid][2] < 75.0)
  263.             {
  264.                 boost = 2;
  265.             }
  266.             else if (CameraPos [playerid][2] < 150.0)
  267.             {
  268.                 boost = 5;
  269.             }
  270.             else if (CameraPos [playerid][2] < 300.0)
  271.             {
  272.                 boost = 10;
  273.             }
  274.             else if (CameraPos [playerid][2] <= 505.0)
  275.             {
  276.                 boost = 20;
  277.             }
  278.         }
  279.        
  280.         CameraPos [playerid][0] = CameraPos [playerid][0] + (boost * floatsin (-Degrees [playerid] + 90.0, degrees));
  281.         CameraPos [playerid][1] = CameraPos [playerid][1] + (boost * floatcos (-Degrees [playerid] + 90.0, degrees));
  282.  
  283.         MovePlayerCamera (playerid);
  284.     }
  285.    
  286.     MovePlayerCamera (playerid);
  287.    
  288.     return 1;
  289. }
  290.  
  291. MovePlayerCamera (playerid)
  292. {
  293.     new str[128];
  294.     format (str, sizeof (str), "    Location: %s~n~Coordinates: x = %.2f   y = %.2f", LocationName (playerid), CameraPos [playerid][0], CameraPos [playerid][1]);
  295.     TextDrawSetString (Coords [playerid], str);
  296.     TextDrawShowForPlayer (playerid, Coords [playerid]);
  297.     TextDrawSetString (MapsMainAltLine [playerid], AltimeterLine (Altitude [playerid]));
  298.     TextDrawShowForPlayer (playerid, MapsMainAltLine [playerid]);
  299.     SetPlayerCameraPos (playerid, CameraPos [playerid][0], CameraPos [playerid][1], CameraPos [playerid][2]);
  300.     SetPlayerCameraLookAt (playerid, CameraPos [playerid][0] + (floatsin (-Degrees [playerid], degrees)), CameraPos [playerid][1] + (floatcos (-Degrees [playerid], degrees)), 0.0);
  301. }
  302.  
  303. AltimeterLine (Alt)
  304. {
  305.     new str[64], k;
  306.    
  307.     if (Alt > 43)
  308.     {
  309.         Alt = Alt - 5;
  310.         k++;
  311.     }
  312.     while (Alt > 23)
  313.     {
  314.         Alt = Alt - 4;
  315.         k++;
  316.     }
  317.     while (Alt > 2)
  318.     {
  319.         Alt = Alt - 3;
  320.         k++;
  321.     }
  322.  
  323.     for (new i = 0; i <= k; i++)
  324.     {
  325.         strcat (str, "~n~", sizeof (str));
  326.     }
  327.     strcat (str, "~r~-", sizeof (str));
  328.     return str;
  329. }
  330.  
  331. CheckMap (playerid)
  332. {
  333.     TextDrawShowForPlayer (playerid, MapsTD);
  334.     TextDrawShowForPlayer (playerid, Coords [playerid]);
  335.     TextDrawShowForPlayer (playerid, MapsAltimeterPlus);
  336.     TextDrawShowForPlayer (playerid, MapsAltimeterMinus);
  337.     TextDrawShowForPlayer (playerid, MapsAltimeterLines);
  338.     TextDrawShowForPlayer (playerid, MapsMainAltLine [playerid]);
  339.     Altitude [playerid] = 8;
  340.     SetPlayerInterior (playerid, 0);
  341.     CameraPos [playerid][0] = 0.0;
  342.     CameraPos [playerid][1] = 0.0;
  343.     CameraPos [playerid][2] = 100.0;
  344.     SetPlayerPos (playerid, 0.0, 0.0, -10.0);
  345.     SetPlayerCameraPos (playerid, 0.0, 0.0, 100.0);
  346.     SetPlayerCameraLookAt (playerid, 0.0, 0.1, 0.0);
  347.     TogglePlayerControllable (playerid, 0);
  348.     MovePlayerTimer [playerid] = SetTimerEx ("MovePlayer", 500, 1, "d", playerid);
  349. }
  350.  
  351. public MovePlayer (playerid)
  352. {
  353.     SetPlayerPos (playerid, CameraPos [playerid][0], CameraPos [playerid][1], -50.0);
  354.     return 1;
  355. }
  356.  
  357. LocationName (playerid)
  358. {
  359.     new Float:x, Float:y, Float:z;
  360.     GetPlayerPos (playerid, x, y, z);
  361.     new str[28];
  362.     for (new i = 0; i != sizeof (Location); i++)
  363.     {
  364.         if (x >= Location [i][ZoneCoords][0] && x <= Location [i][ZoneCoords][2] && y >= Location [i][ZoneCoords][1] && y <= Location [i][ZoneCoords][3])
  365.         {
  366.             format (str, sizeof (str), "%s", Location [i][ZoneName]);
  367.         }
  368.     }
  369.     return str;
  370. }
  371.  
  372. public OnPlayerDisconnect (playerid, reason)
  373. {
  374.     OnPlayerCommandText (playerid, "/map off");
  375.     return 1;
  376. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement