Guest User

Bullet Hole v2

a guest
Aug 1st, 2014
1,267
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include    <a_samp>
  2. #include    <zcmd>
  3. #define     MAX_HOLES   700
  4.  
  5. enum hInfo
  6. {
  7.     hCreated,
  8.     Float:hX,
  9.     Float:hY,
  10.     Float:hZ,
  11.     hCount,
  12.     hObject,
  13. };
  14. new HoleInfo[MAX_HOLES][hInfo];
  15.  
  16. public OnFilterScriptInit()
  17. {
  18.     for(new i; i < MAX_HOLES; i++) { i = 0; return 1;}
  19.     print("\n--------------------------------------");
  20.     print(" Blank Filterscript by your name here");
  21.     print("--------------------------------------\n");
  22.     return 1;
  23. }
  24.  
  25. stock CreateHole(Float:x, Float:y, Float:z, Float:rx, Float:ry, Float:Angle)
  26. {
  27.     for(new i = 0; i < sizeof(HoleInfo); i++)
  28.     {
  29.         if(HoleInfo[i][hCreated] == 0)
  30.         {
  31.             HoleInfo[i][hCreated]=1;
  32.             HoleInfo[i][hX]=x;
  33.             HoleInfo[i][hY]=y;
  34.             HoleInfo[i][hZ]=z;
  35.             HoleInfo[i][hObject] = CreateObject(19185, x, y, z, rx, ry, Angle);
  36.             HoleInfo[i][hCount] += 1;
  37.             SetObjectMaterial(HoleInfo[i][hObject], 0, 19341, "egg_texts", "easter_egg01", 0xFF000000);
  38.             return 1;
  39.         }
  40.         if(HoleInfo[i][hCount] == MAX_HOLES) { return DeleteAllHoles(); }
  41.     }
  42.     return 0;
  43. }
  44.  
  45. CMD:clear(playerid, params[])
  46. {
  47.     DeleteAllHoles();
  48.     return 1;
  49. }
  50.  
  51. stock DeleteAllHoles()
  52. {
  53.     for(new i = 0; i < sizeof(HoleInfo); i++)
  54.     {
  55.         if(HoleInfo[i][hCreated] == 1)
  56.         {
  57.             HoleInfo[i][hCreated]=0;
  58.             HoleInfo[i][hX]=0.0;
  59.             HoleInfo[i][hY]=0.0;
  60.             HoleInfo[i][hZ]=0.0;
  61.             HoleInfo[i][hCount] = 0;
  62.             DestroyObject(HoleInfo[i][hObject]);
  63.         }
  64.     }
  65.     return 0;
  66. }
  67.  
  68.  
  69. public OnFilterScriptExit()
  70. {
  71.     return 1;
  72. }
  73.  
  74. GetXYInFrontOfPlayer(playerid, &Float:x, &Float:y, Float:distance)
  75. {
  76.     new Float:a;
  77.     GetPlayerPos(playerid, x, y, a);
  78.     GetPlayerFacingAngle(playerid, a);
  79.     if (GetPlayerVehicleID(playerid))
  80.     {
  81.       GetVehicleZAngle(GetPlayerVehicleID(playerid), a);
  82.     }
  83.     x += (distance * floatsin(-a, degrees));
  84.     y += (distance * floatcos(-a, degrees));
  85. }
  86.  
  87. CMD:gun(playerid, params[])
  88. {
  89.     GivePlayerWeapon(playerid, 24, 100);
  90.     GivePlayerWeapon(playerid, 34, 100);
  91.     GivePlayerWeapon(playerid, 38, 100);
  92.     return 1;
  93. }
  94.  
  95. public OnPlayerWeaponShot(playerid, weaponid, hittype, hitid, Float:fX, Float:fY, Float:fZ)
  96. {
  97.     if(weaponid == 37 || weaponid == 36 || weaponid == 35) return 1;
  98.     else{
  99.         if(hittype == 0 && fX != 0)
  100.         {
  101.             new Float: A, Float: rX, Float: rY;
  102.             GetXYInFrontOfPlayer(playerid, rX, rY, 5.0);
  103.             GetPlayerFacingAngle(playerid, A);
  104.             CreateHole(fX, fY, fZ, rX, rY, A-90);
  105.         }
  106.     }
  107.     return 1;
  108. }
Advertisement
Add Comment
Please, Sign In to add comment