Advertisement
2k6Simon

Rustler

Nov 3rd, 2011
98
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 1.78 KB | None | 0 0
  1. #include <a_samp>
  2. #include "gen/foreach.pwn"
  3.  
  4. public OnFilterScriptInit() {
  5.     print("Rustler Test");
  6. }
  7.  
  8. public OnPlayerKeyStateChange(playerid, newkeys, oldkeys) {
  9.     if (newkeys & KEY_FIRE) {
  10.         new iPlayerVehicle = GetPlayerVehicleID(playerid);
  11.        
  12.         if (iPlayerVehicle) {
  13.             antiRustler(iPlayerVehicle);
  14.         }
  15.     }
  16.    
  17.     return 1;
  18. }
  19.  
  20. antiRustler(iVehicle) {
  21.     new
  22.         Float:vehicleX,
  23.         Float:vehicleY,
  24.         Float:vehicleZ,
  25.        
  26.         Float:velocityX,
  27.         Float:velocityY,
  28.         Float:velocityZ,
  29.        
  30.         Float:velocityLen;
  31.    
  32.     GetVehiclePos(iVehicle, vehicleX, vehicleY, vehicleZ);
  33.     GetVehicleVelocity(iVehicle, velocityX, velocityY, velocityZ);
  34.    
  35.     #define SQU(%0) ((%0)*(%0))
  36.     velocityLen = floatsqroot(SQU(velocityX) + SQU(velocityY) + SQU(velocityZ));
  37.     #undef  SQU
  38.    
  39.     velocityX /= velocityLen; velocityY /= velocityLen; velocityZ /= velocityLen;
  40.    
  41.     printf("velocity\r\n\tX: %f\r\n\tY: %f\r\n\tZ: %f\r\n\tlen: %f", velocityX, velocityY, velocityZ, velocityLen);
  42.    
  43.     foreach(Player, i) {
  44.         if (IsVehicleStreamedIn(iVehicle, i)) {
  45.             new  
  46.                 Float:playerX,
  47.                 Float:playerY,
  48.                 Float:playerZ,
  49.                 Float:projectedX,
  50.                 Float:projectedY,
  51.                 Float:projectedZ,
  52.                 Float:distance;
  53.                
  54.             GetPlayerPos(i, playerX, playerY, playerZ);
  55.  
  56.             #define SQU(%0) ((%0)*(%0))
  57.             distance = floatsqroot(SQU(vehicleX - playerX) + SQU(vehicleY - playerY) + SQU(vehicleZ - playerZ));
  58.             #undef  SQU
  59.            
  60.             projectedX = vehicleX + (velocityX * distance);
  61.             projectedY = vehicleY + (velocityY * distance);
  62.             projectedZ = vehicleZ + (velocityZ * distance);
  63.            
  64.             if (IsPlayerInRangeOfPoint(i, 3.0, projectedX, projectedY, projectedZ)) {
  65.                 SetVehicleVelocity(iVehicle, velocityX, velocityY, velocityZ + 2.5); SendClientMessage(i, -1, "[debug] You were shooting at someone in vehicle");
  66.             }
  67.         }
  68.     }
  69. }
  70.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement