Advertisement
Guest User

Untitled

a guest
Apr 17th, 2010
2,068
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 6.42 KB | None | 0 0
  1. ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  2. // Credits:
  3. // Script erstellt von Stas
  4. // Offizieller Scripter der Xtreme - RolePlay - Community
  5. // www.xtreme-roleplay.eu
  6. ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  7. // Einstellungen
  8. ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  9. #define MAX_NAGELBAENDER 15 // Maximale Anzahl von Nagelbaendern
  10. #define MAX_STRASSENSPERREN 15 // Maximale Anzahl von Strassensperren
  11. #define NAGELBAND_TIMER_INTERVALL 500 // Intervall für das Vergleichen der SpielerPosition und der Nagelband~(in Milliesekunden)
  12. ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  13. // globale Variablen
  14. ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  15. enum eNagelBand {
  16.     ID, Float:NagelBandX, Float:NagelBandY, Float:NagelBandZ, nErstellt
  17. };
  18. new NagelBand[MAX_NAGELBAENDER][eNagelBand];
  19. enum eStrassensperre {
  20.     ID, Float:StrassensperreX, Float:StrassensperreY, Float:StrassensperreZ, sErstellt
  21. };
  22. new Strassensperre[MAX_STRASSENSPERREN][eStrassensperre];
  23. ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  24. // CallBacks
  25. ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  26. forward NagelBand_Timer();
  27. public NagelBand_Timer() {
  28.     for (new playerid = 0; playerid < MAX_PLAYERS; playerid++) {
  29.         if(!IsPlayerInAnyVehicle(playerid) || IsPlayerNPC(playerid)) continue;
  30.         for(new i = 0; i < sizeof(NagelBand); i++) {
  31.             if(NagelBand[i][nErstellt] == 1) {
  32.                 if(IsPlayerInRangeOfPoint(playerid, 4, NagelBand[i][NagelBandX], NagelBand[i][NagelBandY], NagelBand[i][NagelBandZ])) {
  33.                     if(IsPlayerInAnyVehicle(playerid)) {
  34.                         new panels, doors, lights, tires;
  35.                         GetVehicleDamageStatus(GetPlayerVehicleID(playerid), panels, doors, lights, tires);
  36.                         tires = encode_tires(1, 1, 1, 1);
  37.                         UpdateVehicleDamageStatus(GetPlayerVehicleID(playerid), panels, doors, lights, tires);
  38.                     }
  39.                 }
  40.             }
  41.         }
  42.     }
  43.     return 1;
  44. }
  45. ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  46. // Funktionen
  47. ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  48. // Nagelband
  49. stock AddNagelBand(playerid) {
  50.     new Float:x, Float:y, Float:z, Float:a;
  51.     GetPlayerPos(playerid,x,y,z);
  52.     GetPlayerFacingAngle(playerid, a);
  53.     for(new i = 0; i < sizeof(NagelBand); i++) {
  54.         if(NagelBand[i][nErstellt] == 0) {
  55.             NagelBand[i][NagelBandX] = x;
  56.             NagelBand[i][NagelBandY] = y;
  57.             NagelBand[i][NagelBandZ] = z - 0.7;
  58.             NagelBand[i][nErstellt] = 1;
  59.             NagelBand[i][ID] = CreateObject(2899, x, y, z - 0.7, 0.0, 0.0, a - 90.0);
  60.             return 1;
  61.         }
  62.     }
  63.     return 0;
  64. }
  65. stock RemoveNagelBand(playerid) {
  66.     for(new i = 0; i < sizeof(NagelBand); i++) {
  67.         if(IsPlayerInRangeOfPoint(playerid, 3, NagelBand[i][NagelBandX], NagelBand[i][NagelBandY], NagelBand[i][NagelBandZ])) {
  68.             if(NagelBand[i][nErstellt] == 1) {
  69.                 NagelBand[i][nErstellt] = 0;
  70.                 NagelBand[i][NagelBandX] = 0.0;
  71.                 NagelBand[i][NagelBandY] = 0.0;
  72.                 NagelBand[i][NagelBandZ] = 0.0;
  73.                 DestroyObject(NagelBand[i][ID]);
  74.                 return 1;
  75.             }
  76.         }
  77.     }
  78.     return 0;
  79. }
  80. stock RemoveAllNagelBand() {
  81.     for(new i = 0; i < sizeof(NagelBand); i++) {
  82.         if(NagelBand[i][nErstellt] == 1) {
  83.             NagelBand[i][nErstellt] = 0;
  84.             NagelBand[i][NagelBandX] = 0.0;
  85.             NagelBand[i][NagelBandY] = 0.0;
  86.             NagelBand[i][NagelBandZ] = 0.0;
  87.             DestroyObject(NagelBand[i][ID]);
  88.         }
  89.     }
  90.     return 0;
  91. }
  92. stock CountNagelBand() {
  93.     new anzahl = 0;
  94.     for(new i = 0; i < sizeof(NagelBand); i++) {
  95.         if(NagelBand[i][nErstellt] == 1) anzahl++;
  96.     }
  97.     return anzahl;
  98. }
  99. // Straßensperre
  100. stock AddStrassensperre(playerid) {
  101.     new Float:x, Float:y, Float:z, Float:a;
  102.     GetPlayerPos(playerid,x,y,z);
  103.     GetPlayerFacingAngle(playerid, a);
  104.     for(new i = 0; i < sizeof(Strassensperre); i++) {
  105.         if(Strassensperre[i][sErstellt] == 0) {
  106.             Strassensperre[i][StrassensperreX] = x;
  107.             Strassensperre[i][StrassensperreY] = y;
  108.             Strassensperre[i][StrassensperreZ] = z;
  109.             Strassensperre[i][sErstellt] = 1;
  110.             Strassensperre[i][ID] = CreateObject(1459, x, y, z - 0.6, 0.0, 0.0, a - 180.0);
  111.             return 1;
  112.         }
  113.     }
  114.     return 0;
  115. }
  116. stock RemoveStrassensperre(playerid) {
  117.     for(new i = 0; i < sizeof(Strassensperre); i++) {
  118.         if(Strassensperre[i][sErstellt] == 1) {
  119.             if(IsPlayerInRangeOfPoint(playerid, 3, Strassensperre[i][StrassensperreX], Strassensperre[i][StrassensperreY], Strassensperre[i][StrassensperreZ])) {
  120.                 Strassensperre[i][sErstellt] = 0;
  121.                 Strassensperre[i][StrassensperreX] = 0.0;
  122.                 Strassensperre[i][StrassensperreY] = 0.0;
  123.                 Strassensperre[i][StrassensperreZ] = 0.0;
  124.                 DestroyObject(Strassensperre[i][ID]);
  125.                 return 1;
  126.             }
  127.         }
  128.     }
  129.     return 0;
  130. }
  131. stock RemoveAllStrassensperre() {
  132.     for(new i = 0; i < sizeof(Strassensperre); i++) {
  133.         if(Strassensperre[i][sErstellt] == 1) {
  134.             Strassensperre[i][sErstellt] = 0;
  135.             Strassensperre[i][StrassensperreX] = 0.0;
  136.             Strassensperre[i][StrassensperreY] = 0.0;
  137.             Strassensperre[i][StrassensperreZ] = 0.0;
  138.             DestroyObject(Strassensperre[i][ID]);
  139.         }
  140.     }
  141.     return 0;
  142. }
  143. stock CountStrassensperre() {
  144.     new anzahl = 0;
  145.     for(new i = 0; i < sizeof(Strassensperre); i++) {
  146.         if(Strassensperre[i][sErstellt] == 1) anzahl++;
  147.     }
  148.     return anzahl;
  149. }
  150. ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  151. // encode - Umwandlung
  152. ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  153. encode_tires(tires1, tires2, tires3, tires4) {
  154.  
  155.     return tires1 | (tires2 << 1) | (tires3 << 2) | (tires4 << 3);
  156.  
  157. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement