robotmonkey

SA-MP - rTurret Example Filterscript

Jul 14th, 2014
340
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 11.37 KB | None | 0 0
  1. // ================================================================
  2. //  rTurret v1.0 Example Filterscript
  3. //      Created for SA-MP 0.3z
  4. //      © 2014 by Corekt/robotmonkey
  5. // ================================================================
  6.  
  7. #define FILTERSCRIPT
  8. #include <a_samp>
  9. #include <rturret>
  10. #include <zcmd>
  11. #include <sscanf2>
  12.  
  13. public OnPlayerSpawn(playerid)
  14. {
  15.     return 1;
  16. }
  17.  
  18. public OnPlayerDeath(playerid, killerid, reason)
  19. {
  20.     return 1;
  21. }
  22.  
  23. public OnTurretCreate(turretid)
  24. {
  25.     new
  26.         txt[16];
  27.        
  28.     format(txt, sizeof(txt), "Turret %d", turretid);
  29.     SetTurretText(turretid, -1, txt);
  30.     return 1;
  31. }
  32.  
  33. public OnTurretHitPlayer(turretid, playerid)
  34. {
  35.     return 1;
  36. }
  37.  
  38. CMD:turretcmds(playerid, params[])
  39. {
  40.     SendClientMessage(playerid, -1, "==========rTurret Commands Index==========");
  41.     SendClientMessage(playerid, -1, "/createturret /setturretbehavior /setturretrotspeed /activateturret /activateallturrets /deactivateturret");
  42.     SendClientMessage(playerid, -1, "/deactivateallturrets /toggleturretcheckarea /toggleturretplaysound /toggleturretvisible /toggleturretaim3d");
  43.     SendClientMessage(playerid, -1, "/toggleturretpredictiveaim /setturrettext /setturretrate /destroyturret /deactivateallturrets");
  44.     SendClientMessage(playerid, -1, "==========================================");
  45.     return 1;
  46. }
  47.  
  48. CMD:createturret(playerid, params[])
  49. {
  50.     new
  51.         msg[64],
  52.         turretid,
  53.         Float:range,
  54.         rate, Float:speed, Float:dmg,
  55.         Float:x, Float:y, Float:z, Float:a;
  56.        
  57.     if (sscanf(params, "fdff", range, rate, speed, dmg))
  58.         return SendClientMessage(playerid, -1, "USAGE: /createturret [range] [rate] [speed] [dmg]");
  59.        
  60.     GetPlayerPos(playerid, x, y, z);
  61.     GetPlayerFacingAngle(playerid, a);
  62.     turretid =
  63.         CreateTurret(TURRET_BEHAVIOR_STATIONARY, INVALID_PLAYER_ID,
  64.         x + (2 * floatsin(-a, degrees)), y + (2 * floatcos(-a, degrees)), z - 1, .rz = a + 90, .range = range, .rate = rate, .speed = speed, .dmg = dmg);
  65.     if (turretid != INVALID_TURRET) {
  66.         format(msg, sizeof(msg), "Created Turret %d", turretid);
  67.         SendClientMessage(playerid, -1, msg);
  68.     } else
  69.         SendClientMessage(playerid, -1, "Error; Could not create Turret");
  70.     return 1;
  71. }
  72.  
  73. CMD:setturretbehavior(playerid, params[])
  74. {
  75.     new
  76.         msg[64],
  77.         turretid,
  78.         behavior;
  79.        
  80.     if (sscanf(params, "dd", turretid, behavior) || behavior < 0 || behavior >= TURRET_BEHAVIOR_MAX) {
  81.         format(msg, sizeof(msg), "USAGE: /setturretbehavior [turretid] [behavior (0-%d)]", TURRET_BEHAVIOR_MAX - 1);
  82.         return SendClientMessage(playerid, -1, msg);
  83.     }
  84.        
  85.     if (!IsValidTurret(turretid))
  86.         return SendClientMessage(playerid, -1, "ERROR: Invalid turret.");
  87.        
  88.     format(msg, sizeof(msg), "Turret %d behavior set to %d.", turretid, behavior);
  89.     SetTurretBehavior(turretid, behavior);
  90.     SendClientMessage(playerid, -1, msg);
  91.     return 1;
  92. }
  93.  
  94. CMD:setturretrotspeed(playerid, params[])
  95. {
  96.     new
  97.         msg[128],
  98.         turretid,
  99.         Float:speed;
  100.        
  101.     if (sscanf(params, "df", turretid, speed))
  102.         return SendClientMessage(playerid, -1, "USAGE: /setturretrotspeed [turretid] [speed]");
  103.        
  104.     if (!SetTurretRotSpeed(turretid, speed))
  105.         return SendClientMessage(playerid, -1, "ERROR: Invalid turret.");
  106.        
  107.     format(msg, sizeof(msg), "Turret %d's rotate speed (for turret rotation behaviors) set to %f", turretid, speed);
  108.     SendClientMessage(playerid, -1, msg);
  109.     return 1;
  110. }
  111.  
  112. CMD:activateturret(playerid, params[])
  113. {
  114.     new
  115.         msg[64],
  116.         turretid;
  117.        
  118.     if (sscanf(params, "d", turretid))
  119.         return SendClientMessage(playerid, -1, "USAGE: /activateturret [turretid]");
  120.        
  121.     if (!IsValidTurret(turretid))
  122.         return SendClientMessage(playerid, -1, "ERROR: Invalid turret.");
  123.        
  124.     if (ToggleTurretActive(turretid, 1))
  125.         format(msg, sizeof(msg), "Activated Turret %d.", turretid);
  126.     else
  127.         format(msg, sizeof(msg), "ERROR: Turret %d is already active.", turretid);
  128.        
  129.     SendClientMessage(playerid, -1, msg);
  130.     return 1;
  131. }
  132.  
  133. CMD:activateallturrets(playerid, params[])
  134. {
  135.     new
  136.         count,
  137.         msg[64];
  138.        
  139.     foreach(new i : rTurrets)
  140.         if (ToggleTurretActive(i, 1))
  141.             count++;
  142.            
  143.     format(msg, sizeof(msg), "Activated %d turret(s).", count);
  144.     SendClientMessage(playerid, -1, msg);
  145.     return 1;
  146. }
  147.  
  148. CMD:deactivateturret(playerid, params[])
  149. {
  150.     new
  151.         msg[64],
  152.         turretid;
  153.        
  154.     if (sscanf(params, "d", turretid))
  155.         return SendClientMessage(playerid, -1, "USAGE: /deactivateturret [turretid]");
  156.        
  157.     if (!IsValidTurret(turretid))
  158.         return SendClientMessage(playerid, -1, "ERROR: Invalid turret.");
  159.        
  160.     if (ToggleTurretActive(turretid, 0))
  161.         format(msg, sizeof(msg), "Deactivated Turret %d.", turretid);
  162.     else
  163.         format(msg, sizeof(msg), "ERROR: Turret %d is already deactivated.", turretid);
  164.        
  165.     SendClientMessage(playerid, -1, msg);
  166.     return 1;
  167. }
  168.  
  169. CMD:deactivateallturrets(playerid, params[])
  170. {
  171.     new
  172.         count,
  173.         msg[64];
  174.        
  175.     foreach(new i : rTurrets)
  176.         if (ToggleTurretActive(i, 0))
  177.             count++;
  178.            
  179.     format(msg, sizeof(msg), "Deactivated %d turret(s).", count);
  180.     SendClientMessage(playerid, -1, msg);
  181.     return 1;
  182. }
  183.  
  184. CMD:toggleturretcheckarea(playerid, params[])
  185. {
  186.     new
  187.         msg[128],
  188.         toggle,
  189.         turretid;
  190.        
  191.     if (sscanf(params, "dd", turretid, toggle) || (toggle != 0 && toggle != 1))
  192.         return SendClientMessage(playerid, -1, "USAGE: /toggleturretcheckarea [turretid] [0/1]");
  193.        
  194.     if (!IsValidTurret(turretid))
  195.         return SendClientMessage(playerid, -1, "ERROR: Invalid turret.");
  196.        
  197.     if (ToggleTurretCheckArea(turretid, toggle))
  198.         format(msg, sizeof(msg), "Successfully toggled Turret Check Area (%d) for Turret %d.", toggle, turretid);
  199.     else
  200.         format(msg, sizeof(msg), "ERROR: Could not toggle Turret Check Area (%d) for Turret %d", toggle, turretid);
  201.        
  202.     SendClientMessage(playerid, -1, msg);
  203.     return 1;
  204. }
  205.  
  206. CMD:toggleturretplaysound(playerid, params[])
  207. {
  208.     new
  209.         msg[128],
  210.         toggle,
  211.         turretid;
  212.        
  213.     if (sscanf(params, "dd", turretid, toggle) || (toggle != 0 && toggle != 1))
  214.         return SendClientMessage(playerid, -1, "USAGE: /toggleturretplaysound [turretid] [0/1]");
  215.        
  216.     if (!IsValidTurret(turretid))
  217.         return SendClientMessage(playerid, -1, "ERROR: Invalid turret.");
  218.        
  219.     if (ToggleTurretPlaySound(turretid, toggle))
  220.         format(msg, sizeof(msg), "Successfully toggled Turret Sound (%d) for Turret %d.", toggle, turretid);
  221.     else
  222.         format(msg, sizeof(msg), "ERROR: Could not toggle Turret Sound (%d) for Turret %d", toggle, turretid);
  223.        
  224.     SendClientMessage(playerid, -1, msg);
  225.     return 1;
  226. }
  227.  
  228. CMD:toggleturretvisible(playerid, params[])
  229. {
  230.     new
  231.         msg[128],
  232.         toggle,
  233.         turretid;
  234.        
  235.     if (sscanf(params, "dd", turretid, toggle) || (toggle != 0 && toggle != 1))
  236.         return SendClientMessage(playerid, -1, "USAGE: /toggleturretvisible [turretid] [0/1]");
  237.        
  238.     if (!IsValidTurret(turretid))
  239.         return SendClientMessage(playerid, -1, "ERROR: Invalid turret.");
  240.        
  241.     if (ToggleTurretVisible(turretid, toggle))
  242.         format(msg, sizeof(msg), "Successfully toggled Turret Visibility (%d) for Turret %d.", toggle, turretid);
  243.     else
  244.         format(msg, sizeof(msg), "ERROR: Could not toggle Turret Visibility (%d) for Turret %d", toggle, turretid);
  245.        
  246.     SendClientMessage(playerid, -1, msg);
  247.     return 1;
  248. }
  249.  
  250. CMD:toggleturretaim3d(playerid, params[])
  251. {
  252.     new
  253.         msg[128],
  254.         toggle,
  255.         turretid;
  256.        
  257.     if (sscanf(params, "dd", turretid, toggle) || (toggle != 0 && toggle != 1))
  258.         return SendClientMessage(playerid, -1, "USAGE: /toggleturretaim3d [turretid] [0/1]");
  259.        
  260.     if (!IsValidTurret(turretid))
  261.         return SendClientMessage(playerid, -1, "ERROR: Invalid turret.");
  262.        
  263.     if (ToggleTurretAim3dSpace(turretid, toggle))
  264.         format(msg, sizeof(msg), "Successfully toggled Turret Aim 3D Space (%d) for Turret %d.", toggle, turretid);
  265.     else
  266.         format(msg, sizeof(msg), "ERROR: Could not toggle Turret Aim 3D Space (%d) for Turret %d", toggle, turretid);
  267.        
  268.     SendClientMessage(playerid, -1, msg);
  269.     return 1;
  270. }
  271.  
  272. CMD:toggleturretpredictiveaim(playerid, params[])
  273. {
  274.     new
  275.         msg[128],
  276.         toggle,
  277.         turretid;
  278.        
  279.     if (sscanf(params, "dd", turretid, toggle) || (toggle != 0 && toggle != 1))
  280.         return SendClientMessage(playerid, -1, "USAGE: /toggleturretpredictiveaim [turretid] [0/1]");
  281.        
  282.     if (!IsValidTurret(turretid))
  283.         return SendClientMessage(playerid, -1, "ERROR: Invalid turret.");
  284.        
  285.     if (ToggleTurretPredictiveAim(turretid, toggle))
  286.         format(msg, sizeof(msg), "Successfully toggled Turret Predictive Aim (%d) for Turret %d.", toggle, turretid);
  287.     else
  288.         format(msg, sizeof(msg), "ERROR: Could not toggle Turret Predictive Aim (%d) for Turret %d", toggle, turretid);
  289.        
  290.     SendClientMessage(playerid, -1, msg);
  291.     return 1;
  292. }
  293.  
  294. CMD:setturrettext(playerid, params[])
  295. {
  296.     new
  297.         color,
  298.         msg[128],
  299.         turretid,
  300.         text[64];
  301.        
  302.     if (sscanf(params, "dds[64]", turretid, color, text))
  303.         return SendClientMessage(playerid, -1, "USAGE: /setturrettext [turretid] [color] [text]");
  304.        
  305.     if (!SetTurretText(turretid, color, text))
  306.         return SendClientMessage(playerid, -1, "ERROR: Invalid turret.");
  307.     else {
  308.         format(msg, sizeof(msg), "Turret %d text (color: %d) set to %s", turretid, color, text);
  309.         SendClientMessage(playerid, color, msg);
  310.     }
  311.     return 1;
  312. }
  313.  
  314. CMD:setturretrate(playerid, params[])
  315. {
  316.     new
  317.         rate,
  318.         msg[64],
  319.         turretid;
  320.        
  321.     if (sscanf(params, "dd", turretid, rate))
  322.         return SendClientMessage(playerid, -1, "USAGE: /setturretrate [turretid] [rate]");
  323.        
  324.     if (!SetTurretFireRate(turretid, rate))
  325.         return SendClientMessage(playerid, -1, "ERROR: Invalid turret.");
  326.     else {
  327.         format(msg, sizeof(msg), "Turret %d's fire rate set to %d", turretid, rate);
  328.         SendClientMessage(playerid, -1, msg);
  329.     }
  330.     return 1;
  331. }
  332.  
  333. CMD:destroyturret(playerid, params[])
  334. {
  335.     new
  336.         msg[64],
  337.         turretid;
  338.        
  339.     if (sscanf(params, "d", turretid))
  340.         return SendClientMessage(playerid, -1, "USAGE: /destroyturret [turret ID]");
  341.        
  342.     if (DestroyTurret(turretid))
  343.         format(msg, sizeof(msg), "Destroyed Turret %d", turretid);
  344.     else
  345.         format(msg, sizeof(msg), "ERROR: Could not destroy Turret %d", turretid);
  346.        
  347.     SendClientMessage(playerid, -1, msg);
  348.     return 1;
  349. }
  350.  
  351. CMD:destroyallturrets(playerid, params[])
  352. {
  353.     new
  354.         next,
  355.         count,
  356.         msg[64];
  357.        
  358.     foreach(new i : rTurrets) {
  359.         if (DestroyTurret(i, next)) {
  360.             count++;
  361.             i = next;
  362.         }
  363.     }
  364.     format(msg, sizeof(msg), "Destroyed %d turrets.", count);
  365.     SendClientMessage(playerid, -1, msg);
  366.     return 1;
  367. }
Advertisement
Add Comment
Please, Sign In to add comment