Guest User

Untitled

a guest
Jun 14th, 2016
112
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 8.55 KB | None | 0 0
  1. /*
  2. _ _
  3. | | | |_ ____ _ _ __ __ _
  4. | |_| \ \ /\ / / _` | '_ \ / _` |
  5. | _ |\ V V / (_| | | | | (_| |
  6. |_| |_| \_/\_/ \__,_|_| |_|\__, |
  7. |___/
  8.  
  9. Sosyal Medya Hesaplarım:
  10. - Facebook: http://www.facebook.com/EmirKoseoglu99
  11. - Twitter: http://www.twitter.com/EmirKoseoglu99
  12. - GTATurk: http://www.gtaturk.com/forum/profile/1011248/
  13.  
  14. ATM Sistemi (DINI)
  15. Bu sistem istek duyulduğundan dolayı yapılmıştır. Hırsız Polis sunucularına yapılmıştır.
  16. İndirdiğiniz için teşekkürler, iyi kullanımlar! :)
  17. */
  18.  
  19. #include <a_samp>
  20. #include <streamer>
  21. #include <sscanf2>
  22. #include <dini>
  23.  
  24. #define MAX_ATM (50)
  25. #define MAX_ATM_PARA (8000) //maximum 8000$ verir
  26. #define MIN_ATM_PARA (1000) //minimum 1000$ verir
  27. #define ATM_SOYGUN_SAYAC (25) //25 den geri sayar
  28. #define ATM_TEKRAR_SOYGUN (60) //ATM Tekrar 60 saniye sonra soyulabilir
  29.  
  30. enum atm_Info
  31. {
  32. Float:aaX,
  33. Float:aaY,
  34. Float:aaZ,
  35. Float:aaA,
  36. aID,
  37. aCP,
  38. bool: aDurum,
  39. Text3D:aLabel,
  40. aObje,
  41. aTime,
  42. aName[56]
  43. };
  44.  
  45. new
  46. ATMInfo[MAX_ATM][atm_Info],
  47. atm_class = 1,
  48. ATMTimer[MAX_PLAYERS],
  49. ATM_Sayac[MAX_PLAYERS] = ATM_SOYGUN_SAYAC,
  50. ATMCalinan[MAX_PLAYERS],
  51. ATMTimerX
  52. ;
  53.  
  54. #define dcmd(%1,%2,%3) if (!strcmp((%3)[1], #%1, true, (%2)) && ((((%3)[(%2) + 1] == '\0') && (dcmd_%1(playerid, ""))) || (((%3)[(%2) + 1] == ' ') && (dcmd_%1(playerid, (%3)[(%2) + 2]))))) return 1
  55.  
  56. public OnFilterScriptInit()
  57. {
  58. ATM_Yukle();
  59. print("\n--------------------------------------");
  60. print(" ATM Sistemi Aktif Edildi");
  61. print("--------------------------------------\n");
  62. ATMTimerX = SetTimer("ATM_TimeUpdater", 1000, true);
  63. return true;
  64. }
  65.  
  66. public OnFilterScriptExit()
  67. {
  68. print("\n--------------------------------------");
  69. print(" ATM Sistemi De-Aktif Edildi");
  70. print("--------------------------------------\n");
  71. DestroyATM();
  72. return true;
  73. }
  74.  
  75. public OnPlayerConnect(playerid)
  76. {
  77. KillTimer(ATMTimer[playerid]);
  78. ATM_Sayac[playerid] = ATM_SOYGUN_SAYAC;
  79. ATMCalinan[playerid] = 0;
  80. return true;
  81. }
  82.  
  83. public OnPlayerDisconnect(playerid, reason)
  84. {
  85. KillTimer(ATMTimer[playerid]);
  86. ATM_Sayac[playerid] = ATM_SOYGUN_SAYAC;
  87. return true;
  88. }
  89.  
  90. public OnPlayerCommandText(playerid, cmdtext[])
  91. {
  92. dcmd(atmekle, 7, cmdtext);
  93. dcmd(atmsil, 6, cmdtext);
  94. return false;
  95. }
  96.  
  97. dcmd_atmekle(playerid, params[])
  98. {
  99. new aNeym[56];
  100. if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, -1, "Bunun icin RCON Admin olmalisiniz!");
  101. if(sscanf(params, "s[56]", aNeym)) return SendClientMessage(playerid, -1, "Kullanım: /atmekle [ATM Adı]");
  102. if(atm_class >= MAX_ATM) return SendClientMessage(playerid, -1, "Maximum limite ulastiniz!");
  103. else {
  104. new
  105. string[126], Float: gPos[4];
  106. GetPlayerPos(playerid, gPos[0], gPos[1], gPos[2]);
  107. GetPlayerFacingAngle(playerid, gPos[3]);
  108. format(string, sizeof string, "ATM/ATM_%i.txt", atm_class);
  109. dini_Create(string);
  110. dini_Set(string, "isim", aNeym);
  111. dini_FloatSet(string, "atmx", gPos[0]);
  112. dini_FloatSet(string, "atmy", gPos[1]);
  113. dini_FloatSet(string, "atmz", gPos[2]);
  114. dini_FloatSet(string, "atma", gPos[3]);
  115. CreateATM(aNeym, gPos[0], gPos[1], gPos[2], gPos[3]);
  116. format(string, sizeof string, "Basariyla %s adli atm olusturdunuz. ATM ID: %d", aNeym, atm_class-1);
  117. SendClientMessage(playerid, -1, string);
  118. }
  119. return true;
  120. }
  121.  
  122. dcmd_atmsil(playerid, params[])
  123. {
  124. new aid;
  125. if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, -1, "Bunun icin RCON Admin olmalisiniz!");
  126. if(sscanf(params, "i", aid)) return SendClientMessage(playerid, -1, "Kullanım: /atmsil [ATM ID]");
  127. else {
  128. new
  129. string[126];
  130. format(string, sizeof string, "ATM/ATM_%i.txt", aid);
  131. dini_Remove(string);
  132. ATMInfo[aid][aaX] = -1;
  133. ATMInfo[aid][aaY] = -1;
  134. ATMInfo[aid][aaZ] = -1;
  135. ATMInfo[aid][aaA] = -1;
  136. ATMInfo[aid][aID] = -1;
  137. ATMInfo[aid][aDurum] = false;
  138. ATMInfo[aid][aTime] = -1;
  139. Delete3DTextLabel(ATMInfo[aid][aLabel]);
  140. DestroyDynamicCP(ATMInfo[aid][aCP]);
  141. DestroyDynamicObject(ATMInfo[aid][aObje]);
  142. atm_class--;
  143. if(atm_class == 0) atm_class = 1;
  144. }
  145. return true;
  146. }
  147.  
  148. forward ATM_Yukle(); public ATM_Yukle()
  149. {
  150. new
  151. string[126]
  152. ;
  153. for(new i = false; i <= MAX_ATM; i++)
  154. {
  155. format(string, sizeof string, "ATM/ATM_%i.txt", i);
  156. if(dini_Exists(string))
  157. {
  158. CreateATM(dini_Get(string, "isim"), floatstr(dini_Get(string, "atmx")), floatstr(dini_Get(string, "atmy")), floatstr(dini_Get(string, "atmz")), floatstr(dini_Get(string, "atma")));
  159. printf("ATM: %s yuklendi.", dini_Get(string, "isim"));
  160. }
  161. }
  162. return true;
  163. }
  164.  
  165. public OnPlayerLeaveCheckpoint(playerid){
  166. if(GetPVarInt(playerid, "ATM_Soydugu") > 0)
  167. {
  168. SetPVarInt(playerid, "ATM_Soydugu", 0);
  169. KillTimer(ATMTimer[playerid]);
  170. GameTextForPlayer(playerid, "", 2000, 5);
  171. ATM_Sayac[playerid] = ATM_SOYGUN_SAYAC;
  172. }
  173. return true;
  174. }
  175.  
  176. public OnPlayerEnterDynamicCP(playerid, checkpointid)
  177. {
  178. for(new i = false; i <= MAX_ATM; i++)
  179. {
  180. if(checkpointid == ATMInfo[i][aCP]){
  181. if(ATMInfo[i][aDurum] == false) return SendClientMessage(playerid, -1, "Bu ATM bir sure once soyulmus!");
  182. if(IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid, -1, "Bu sekilde ATM soyamazsiniz!");
  183. SetPVarInt(playerid, "ATM_Soydugu", i);
  184. KillTimer(ATMTimer[playerid]);
  185. ATMTimer[playerid] = SetTimerEx("ATM_Soyma", 1000, true, "d", playerid);
  186. return true;
  187. }
  188. }
  189. return true;
  190. }
  191.  
  192. forward ATM_Soyma(playerid); public ATM_Soyma(playerid)
  193. {
  194. new
  195. sString[126];
  196. SetPVarInt(playerid, "ATMcalinanMiktar", (random(MAX_ATM_PARA))+MIN_ATM_PARA);
  197. GivePlayerMoney(playerid, GetPVarInt(playerid, "ATMcalinanMiktar"));
  198. format(sString, 76, "~w~~h~soygun yapiliyor..~n~~y~- %d -~n~~w~~h~$%d+~g~$%d", ATM_Sayac[playerid], ATMCalinan[playerid], GetPVarInt(playerid, "ATMcalinanMiktar"));
  199. GameTextForPlayer(playerid, sString, 2000, 5);
  200. ATMCalinan[playerid] += GetPVarInt(playerid, "ATMcalinanMiktar");
  201. ATM_Sayac[playerid]--;
  202. if(ATM_Sayac[playerid] >= 24){
  203. ATMInfo[GetPVarInt(playerid, "ATM_Soydugu")][aDurum] = false;
  204. format(sString,156,"{ffffff}%s(%i)\n{ffffff}Durum: {d66d6d}Soyulmus", ATMInfo[GetPVarInt(playerid, "ATM_Soydugu")][aName], ATMInfo[GetPVarInt(playerid, "ATM_Soydugu")][aID]);
  205. Update3DTextLabelText(ATMInfo[GetPVarInt(playerid, "ATM_Soydugu")][aLabel], -1, sString);
  206. ATMInfo[GetPVarInt(playerid, "ATM_Soydugu")][aTime] = ATM_TEKRAR_SOYGUN;
  207. }
  208. if(ATM_Sayac[playerid] <= 0)
  209. {
  210. KillTimer(ATMTimer[playerid]);
  211. format(sString, 76, "~w~~h~soygun basarili!~n~~w~~h~calinan miktar: ~g~~h~$%d!", ATMCalinan[playerid]);
  212. GameTextForPlayer(playerid, sString, 2000, 5);
  213. ATM_Sayac[playerid] = ATM_SOYGUN_SAYAC;
  214. SetPVarInt(playerid, "ATM_Soydugu", 0);
  215. ATMCalinan[playerid] = 0;
  216. SetPVarInt(playerid, "ATMcalinanMiktar", 0);
  217. return true;
  218. }
  219. return true;
  220. }
  221.  
  222. forward ATM_TimeUpdater(); public ATM_TimeUpdater()
  223. {
  224. new
  225. uString[156];
  226. for (new i = false; i <= MAX_ATM; i++){
  227. if(ATMInfo[i][aTime] > 0){
  228. ATMInfo[i][aTime]--;
  229. if(ATMInfo[i][aTime] <= 1){
  230. format(uString,156,"{ffffff}%s(%i)\n{ffffff}Durum: {77c97d}Aktif", ATMInfo[i][aName], atm_class);
  231. Update3DTextLabelText(ATMInfo[i][aLabel], -1, uString);
  232. ATMInfo[i][aDurum] = true;
  233. ATMInfo[i][aTime] = 0;
  234. }
  235. }
  236. }
  237. return true;
  238. }
  239.  
  240.  
  241. stock DestroyATM()
  242. {
  243. for(new i = false; i <= MAX_ATM; i++)
  244. {
  245. ATMInfo[i][aaX] = -1;
  246. ATMInfo[i][aaY] = -1;
  247. ATMInfo[i][aaZ] = -1;
  248. ATMInfo[i][aaA] = -1;
  249. ATMInfo[i][aID] = -1;
  250. ATMInfo[i][aDurum] = false;
  251. ATMInfo[i][aTime] = -1;
  252. Delete3DTextLabel(ATMInfo[i][aLabel]);
  253. DestroyDynamicObject(ATMInfo[i][aObje]);
  254. DestroyDynamicCP(ATMInfo[i][aCP]);
  255. }
  256. atm_class = 1;
  257. KillTimer(ATMTimerX);
  258. return true;
  259. }
  260.  
  261. stock CreateATM(atmname[], Float:aaaX, Float:aaaY, Float:aaaZ, Float:aaaA){
  262. new atmName[100];
  263. format(atmName,76,"{ffffff}%s(%i)\n{ffffff}Durum: {77c97d}Aktif", atmname, atm_class);
  264. ATMInfo[atm_class][aaX] = aaaX;
  265. ATMInfo[atm_class][aaY] = aaaY;
  266. ATMInfo[atm_class][aaZ] = aaaZ;
  267. ATMInfo[atm_class][aaA] = aaaA;
  268. ATMInfo[atm_class][aID] = atm_class;
  269. ATMInfo[atm_class][aCP] = CreateDynamicCP(aaaX, aaaY, aaaZ, 1.0,-1,-1,-1,100.0);
  270. ATMInfo[atm_class][aDurum] = true;
  271. ATMInfo[atm_class][aTime] = 0;
  272. ATMInfo[atm_class][aLabel] = Create3DTextLabel(atmName, -1, aaaX, aaaY, aaaZ, 25.0, 0, 0);
  273. ATMInfo[atm_class][aObje] = CreateDynamicObject(2942, ATMInfo[atm_class][aaX], ATMInfo[atm_class][aaY], ATMInfo[atm_class][aaZ]-0.5, 0.0000000, 0.0000000, ATMInfo[atm_class][aaA]);
  274. format(ATMInfo[atm_class][aName], 56, "%s", atmname);
  275. atm_class++;
  276. return true;
  277. }
Advertisement
Add Comment
Please, Sign In to add comment