1
0

atm-robbing.inc 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120
  1. new bool:isPlayerRobbingATM[MAX_PLAYERS];
  2. new PlayerBar:RobbingATM[MAX_PLAYERS];
  3. new robatmtimer[MAX_PLAYERS];
  4. new UsedRobATM[MAX_PLAYERS];
  5. forward cancelrobbingatm(playerid);
  6. public cancelrobbingatm(playerid)
  7. {
  8. isPlayerRobbingATM[playerid] = false;
  9. SetPlayerProgressBarValue(playerid, RobbingATM[playerid], 0);
  10. HidePlayerProgressBar(playerid, RobbingATM[playerid]);
  11. KillTimer(robatmtimer[playerid]);
  12. foreach( new i: Player )
  13. {
  14. //if(IsPlayerConnected(i)) // Foreach type "Player" contains the IDS of players that are connected. So this is redundant. //
  15. //{
  16. if(PlayerInfo[i][pMember] == 1)
  17. {
  18. SetPlayerMarkerForPlayer(i, playerid, TCOLOR_WHITE);
  19. SetPlayerToTeamColor(playerid);
  20. backupType[playerid] = 0;
  21. }
  22. //}
  23. }
  24. return 1;
  25. }
  26. Hook:atm_OnPlayerConnect(playerid)
  27. {
  28. RobbingATM[playerid] = CreatePlayerProgressBar(playerid, 290.0, 340.00, 65.0, 5.0, 0xFFFF00AA, 100.0, BAR_DIRECTION_RIGHT);
  29. isPlayerRobbingATM[playerid] = false;
  30. return 1;
  31. }
  32. Hook:atm_OnPlayerDisconnect(playerid, reason)
  33. {
  34. cancelrobbingatm(playerid);
  35. DestroyPlayerProgressBar(playerid, RobbingATM[playerid]);
  36. return 1;
  37. }
  38. Hook:atm_OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
  39. {
  40. if((newkeys & KEY_SPRINT) && !(oldkeys & KEY_SPRINT))
  41. {
  42. if(isPlayerRobbingATM[playerid] != false)
  43. {
  44. if(GetPlayerProgressBarValue(playerid, RobbingATM[playerid]) < 100)
  45. {
  46. SetPlayerProgressBarValue(playerid, RobbingATM[playerid], GetPlayerProgressBarValue(playerid, RobbingATM[playerid])+0.75);
  47. if(GetPlayerProgressBarValue(playerid, RobbingATM[playerid]) >= 100)
  48. {
  49. new str[1024];
  50. new cashmoney = random(5000) + 5000;
  51. GiveMoney(playerid, cashmoney);
  52. format(str, sizeof(str), "You've successfully robbed %d from the ATM.", cashmoney);
  53. SendClientMessage(playerid, COLOR_LIGHTBLUE, str);
  54. HidePlayerProgressBar(playerid, RobbingATM[playerid]);
  55. isPlayerRobbingATM[playerid] = false;
  56. foreach( new i: Player )
  57. {
  58. //if(IsPlayerConnected(i)) // Foreach type "Player" contains the IDS of players that are connected. So this is redundant. //
  59. //{
  60. if(PlayerInfo[i][pMember] == 1)
  61. {
  62. SetPlayerMarkerForPlayer(i, playerid, TCOLOR_WHITE);
  63. SetPlayerToTeamColor(playerid);
  64. backupType[playerid] = 0;
  65. }
  66. //}
  67. }
  68. }
  69. }
  70. }
  71. }
  72. return 1;
  73. }
  74. Hook:atm_OnPlayerUpdate(playerid)
  75. {
  76. if(isPlayerRobbingATM[playerid] == true && !IsAtATM(playerid))
  77. {
  78. cancelrobbingatm(playerid);
  79. SendClientMessage(playerid, COLOR_GREY, "You've moved away from ATM so you stopped robbing it!");
  80. }
  81. return 1;
  82. }
  83. CMD:robatm(playerid, params[])
  84. {
  85. new str[1024];
  86. new now = gettime();
  87. if(!IsAtATM(playerid)) return SendClientMessage(playerid, COLOR_GRAD2, "You are not at an ATM machine.");
  88. if(PlayerInfo[playerid][pScrew] < 1) return SendClientMessage(playerid, COLOR_GREY, "You need a screwdriver to do this.");
  89. if(IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid, COLOR_GREY, "You can't use that command whilst being in a vehicle!");
  90. if(now < (UsedRobATM[playerid] + 250))
  91. {
  92. format(str, sizeof(str), "You have to wait %d seconds before you can use this command again!", (UsedRobATM[playerid] + 250) - now);
  93. SendClientMessage(playerid, COLOR_GREY, str);
  94. return 1;
  95. }
  96. isPlayerRobbingATM[playerid] = true;
  97. SetPlayerProgressBarValue(playerid, RobbingATM[playerid], 0);
  98. ShowPlayerProgressBar(playerid, RobbingATM[playerid]);
  99. SendClientMessage(playerid, -1, "You are now robbing ATM! Press {FF0000}SPACE {FFFFFF}repeatedly to rob it.");
  100. format(str, sizeof(str), "HQ: All units, camera has recorded %s's face (( DO NOT MG THE NAME )) robbing an ATM, check your GPS for the location!", PlayerICName(playerid));
  101. SendRadioMessage(1, TEAM_BLUE_COLOR, str);
  102. foreach( new i: Player )
  103. {
  104. if(IsPlayerConnected(i))
  105. {
  106. if(PlayerInfo[i][pMember] == 1 && !CheckForJammer(i))
  107. {
  108. SetPlayerMarkerForPlayer(i, playerid, 0x2641FEFF);
  109. }
  110. }
  111. }
  112. UsedRobATM[playerid] = gettime();
  113. return 1;
  114. }