Guest User

Dynamic Rob Bank System By Shomy

a guest
Dec 20th, 2017
357
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.15 KB | None | 0 0
  1. /*
  2. Dynamic Rob Bank System
  3. By Shomy
  4. Potreban folder "Robs" u scriptfiles
  5.  
  6. */
  7.  
  8. // = Include
  9.  
  10. #include < a_samp >
  11. #include < YSI\y_ini >
  12. #include < YSI\y_commands >
  13. #include < sscanf2 >
  14.  
  15. // = Define
  16.  
  17. #define MAX_ROBS 5
  18. #undef MAX_PLAYERS
  19. #define MAX_PLAYERS 50 // Prilagoditi
  20.  
  21. #define ROB_FILE "/Robs/%d.ini"
  22.  
  23. #define SCM SendClientMessage
  24. #define SCMTA SendClientMessageToAll
  25. #define SPD ShowPlayerDialog
  26. #define DSI DIALOG_STYLE_INPUT
  27.  
  28. #define MONEY_MIN 10000
  29. #define MONEY_MAX 30000
  30.  
  31. #define DIALOG_CREATEROB
  32.  
  33. // = Enum
  34.  
  35. enum rInfo
  36. {
  37. Float:PosX,
  38. Float:PosY,
  39. Float:PosZ,
  40. RobVreme,
  41. Opljackana
  42. }
  43.  
  44. // = News
  45.  
  46. new RobInfo[ MAX_ROBS ][ rInfo ];
  47. new Text3D:RobLabel[ sizeof(RobInfo) ];
  48. new KreiraniRobovi = 0;
  49. new PreostaloVreme[ MAX_PLAYERS ];
  50. new PlayerText:RobTD[MAX_PLAYERS][1];
  51. new bool:RobUToku;
  52. new RobTimer[ MAX_PLAYERS ];
  53.  
  54. // = Publics
  55.  
  56. forward Pljackana(id);
  57. public Pljackana(id)
  58. {
  59. RobInfo[ id ][ Opljackana ] = 0;
  60. return 1;
  61. }
  62. public OnPlayerSpawn(playerid)
  63. {
  64. PreloadAnimLib(playerid,"BOMBER");
  65. return 1;
  66. }
  67. forward Rob(playerid, id);
  68. public Rob(playerid, id)
  69. {
  70. PreostaloVreme[ playerid ] -= 1;
  71. new str[ 25 ], dobijeninovac;
  72. PlayAnim(playerid, "BOMBER", "BOM_Plant", 4.0, 0, 0, 0, 0, 0, 1);
  73. PlayerTextDrawShow(playerid, RobTD[ playerid ][ 0 ]);
  74. format(str,sizeof(str), "Preostalo vreme: %d", PreostaloVreme[ playerid ]);
  75. PlayerTextDrawSetString(playerid, RobTD[ playerid ][ 0 ], str);
  76. if(PreostaloVreme[ playerid ] == 0)
  77. {
  78. KillTimer(RobTimer[ playerid ]);
  79. dobijeninovac = RandomEx(MONEY_MIN, MONEY_MAX), GivePlayerMoney(playerid, dobijeninovac);
  80. TogglePlayerControllable(playerid, 1);
  81. ClearAnimations(playerid);
  82. RobInfo[ id ][ Opljackana ] = 1;
  83. SetTimer("Pljackana", 300000, false);
  84. PlayerTextDrawHide(playerid, RobTD[ playerid ][ 0 ]);
  85. new str1[ 50 ];
  86. format(str1,sizeof(str1), "Uspesno ste opljackali %d$ iz banke.", dobijeninovac);
  87. SCM(playerid, -1, str1);
  88. RobUToku = false;
  89. }
  90. return 1;
  91. }
  92. public OnPlayerConnect(playerid)
  93. {
  94. RobTD[playerid][0] = CreatePlayerTextDraw(playerid, 232.117645, 27.250003, "Preostalo_vreme_-_60s");
  95. PlayerTextDrawLetterSize(playerid, RobTD[playerid][0], 0.400000, 1.600000);
  96. PlayerTextDrawAlignment(playerid, RobTD[playerid][0], 1);
  97. PlayerTextDrawColor(playerid, RobTD[playerid][0], -1);
  98. PlayerTextDrawSetShadow(playerid, RobTD[playerid][0], 0);
  99. PlayerTextDrawSetOutline(playerid, RobTD[playerid][0], 1);
  100. PlayerTextDrawBackgroundColor(playerid, RobTD[playerid][0], 255);
  101. PlayerTextDrawFont(playerid, RobTD[playerid][0], 1);
  102. PlayerTextDrawSetProportional(playerid, RobTD[playerid][0], 1);
  103. PlayerTextDrawSetShadow(playerid, RobTD[playerid][0], 0);
  104. return 1;
  105. }
  106.  
  107. // = CMDS
  108.  
  109. YCMD:kreirajrob(playerid, params[], help)
  110. {
  111. #pragma unused help
  112. new vreme, Float:X, Float:Y, Float:Z;
  113. if(!IsPlayerAdmin(playerid)) return SCM(playerid, -1, "Niste RCON Admin.");
  114. if(KreiraniRobovi > MAX_ROBS) return SCM(playerid, -1, "Prestigli ste limit.");
  115. if(sscanf(params, "d", vreme)) return SCM(playerid, -1, "Koristite /kreirajrob [ Vreme ( sekunde ) ]");
  116. if(vreme < 60 || vreme > 200) return SCM(playerid, -1, "Vreme ne moze biti manje od 60 ili vece od 200.");
  117. GetPlayerPos(playerid, X,Y,Z);
  118. RobLabel[ KreiraniRobovi+1 ] = Create3DTextLabel("/robbank", 0x008080FF, X,Y,Z, 10, 0, 0);
  119. RobInfo[ KreiraniRobovi+1 ][ PosX ] = X;
  120. RobInfo[ KreiraniRobovi+1 ][ PosY ] = Y;
  121. RobInfo[ KreiraniRobovi+1 ][ PosZ ] = Z;
  122. RobInfo[ KreiraniRobovi+1 ][ RobVreme ] = vreme;
  123. SaveRob(KreiraniRobovi+1);
  124. KreiraniRobovi++;
  125. return 1;
  126. }
  127. YCMD:robbank(playerid, params[], help)
  128. {
  129. #pragma unused help
  130. if(RobUToku) return SCM(playerid, -1, "Rob banke je vec u toku.");
  131. for(new i; i < MAX_ROBS; i++)
  132. {
  133. if(IsPlayerInRangeOfPoint(playerid, 2.0, RobInfo[ i ][ PosX ], RobInfo[ i ][ PosY ], RobInfo[ i ][ PosZ ]))
  134. {
  135. if(RobInfo[ i ][ Opljackana ] == 0)
  136. {
  137. RobTimer[ playerid ] = SetTimerEx("Rob", 1000, true, "i", playerid);
  138. PreostaloVreme[ playerid ] = RobInfo[ i ][ RobVreme ];
  139. SCMTA(-1, "[ROB] Pljacka banke u toku. Mole se gradjani da se ne priblizavaju banci.");
  140. RobUToku = true;
  141. TogglePlayerControllable(playerid, 0);
  142. }
  143. else return SCM(playerid, -1, "Nije proslo 5 minuta od pljackanja te banke.");
  144. }
  145. }
  146. return 1;
  147. }
  148.  
  149. // = Stock
  150.  
  151. stock SaveRob(id)
  152. {
  153. new rFile[ 60 ];
  154. format(rFile, sizeof(rFile), ROB_FILE, id);
  155. new INI:File = INI_Open(rFile);
  156. INI_WriteFloat(File, "Lokacija X", RobInfo[ id ][ PosX ]);
  157. INI_WriteFloat(File, "Lokacija Y", RobInfo[ id ][ PosY ]);
  158. INI_WriteFloat(File, "Lokacija Z", RobInfo[ id ][ PosZ ]);
  159. INI_WriteInt(File, "Rob Vreme", RobInfo[ id ][ RobVreme ]);
  160. INI_Close(File);
  161. return 1;
  162. }
  163.  
  164. // = Funkcije
  165.  
  166. RandomEx(min,max) { // NIJE MOJA FUNKCIJA
  167. return (min+random(max));
  168. }
  169.  
  170. PlayAnim(playerid, animlib[], animname[], Float:fDelta, loop, lockx, locky, freeze, time, forcesync)
  171. {
  172. ApplyAnimation(playerid, animlib, animname, fDelta, loop, lockx, locky, freeze, time, forcesync);
  173. }
  174.  
  175. PreloadAnimLib(playerid, animlib[])
  176. {
  177. ApplyAnimation(playerid,animlib,"null",0.0,0,0,0,0,0,1);
  178. }
Add Comment
Please, Sign In to add comment