Guest User

LemonBank By Lemonpunch

a guest
Oct 14th, 2013
166
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 8.14 KB | None | 0 0
  1. /*
  2. Lemon Bank
  3. coded by LemonPunch.
  4.  
  5. NOTE : You need to create a folder named 'lemonbank' at scriptfiles folder!
  6. */
  7.  
  8. #include <a_samp>
  9. #include <YSI\y_ini>
  10. #include <YSI\y_commands>
  11.  
  12. #define DIALOG_BANK (898)
  13. // #define DIALOG_BALANCE (899)
  14. #define DIALOG_DEPOSIT (901)
  15. #define DIALOG_WITHDRAW (903)
  16. #define DIALOG_BANK2 (8989)
  17. #define DIALOG_BANK3 (8990)
  18.  
  19. new
  20. bankMoney[ MAX_PLAYERS ],
  21. bool: bAcc[ MAX_PLAYERS char ];
  22.  
  23. forward parsePlayerBank( playerid, name[ ], value[ ] );
  24. public parsePlayerBank( playerid, name[ ], value[ ] ) {
  25. INI_Int( "bankMoney", bankMoney[ playerid ] );
  26. return true;
  27. }
  28.  
  29. stock bankFile( playerid ) {
  30. new
  31. file[ 72 ],
  32. name[ 24 ];
  33. GetPlayerName( playerid, name, 24 );
  34. format( file, sizeof ( file ), "lemonpunch/%s.ini", name );
  35. return file;
  36. }
  37.  
  38. stock isNumeric( const str[ ] ) {
  39. new
  40. i = 0,
  41. j = strlen( str );
  42. for ( ; i < j; ++ i ) {
  43. if ( str[ i ] < '0' || str[ i ] > '9' ) {
  44. return false;
  45. }
  46. }
  47. return true;
  48. }
  49.  
  50. public OnPlayerConnect( playerid ) {
  51. if ( fexist( bankFile( playerid ) ) ) {
  52. INI_ParseFile( bankFile( playerid ), "parsePlayerBank", .bExtra = true, .extra = playerid );
  53. bAcc{ playerid } = true;
  54. }
  55. else {
  56. bAcc{ playerid } = false;
  57. }
  58. return true;
  59. }
  60.  
  61. public OnPlayerDisconnect( playerid, reason ) {
  62. if ( bAcc{ playerid } ) {
  63. new
  64. INI: file = INI_Open( bankFile( playerid ) );
  65. INI_WriteInt( file, "bankMoney", bankMoney[ playerid ] );
  66. INI_Close( file );
  67. }
  68. return 1;
  69. }
  70.  
  71.  
  72. CMD:bank( playerid, params[ ] ) {
  73. if ( !bAcc{ playerid } ) {
  74. ShowPlayerDialog( playerid, DIALOG_BANK2, DIALOG_STYLE_MSGBOX, "{FFFFFF}Bank Account",
  75. "{FFFFFF}You don't have a bank account yet.\nWould you like to create a bank account?", "Yes", "No" );
  76. return true;
  77. }
  78. else {
  79. ShowPlayerDialog( playerid, DIALOG_BANK, DIALOG_STYLE_LIST, "{FFFFFF}Bank Account",
  80. "{FFFFFF}Balance\nDeposit\nWithdraw", "Select", "Cancel" );
  81. return true;
  82. }
  83. }
  84.  
  85. public OnDialogResponse( playerid, dialogid, response, listitem, inputtext[ ] ) {
  86. switch ( dialogid ) {
  87. case DIALOG_BANK2 : {
  88. if ( response ) {
  89. new
  90. INI:file = INI_Open( bankFile( playerid ) );
  91. INI_WriteInt( file, "bankMoney", 0 );
  92. INI_Close( file );
  93. bAcc{ playerid } = true;
  94. ShowPlayerDialog( playerid, DIALOG_BANK3, DIALOG_STYLE_MSGBOX, "{FFFFFF}Bank Account",
  95. "{FFFFFF}Your bank account has been created. Would you like to deposit some of your money now?", "Yes", "No" );
  96. }
  97. }
  98. case DIALOG_BANK3 : {
  99. if ( response ) {
  100. ShowPlayerDialog( playerid, DIALOG_BANK, DIALOG_STYLE_LIST, "{FFFFFF}Bank Account",
  101. "{FFFFFF}Balance\nDeposit\nWithdraw", "Select", "Cancel" );
  102. }
  103. }
  104. case DIALOG_BANK : {
  105. if ( response ) {
  106. new
  107. str[ 250 ];
  108. switch ( listitem ) {
  109. case 0 : { // Balance
  110. format( str, sizeof ( str ), "{FFFFFF}Bank Balance : {33FF33}$%i", bankMoney[ playerid ] );
  111. ShowPlayerDialog( playerid, DIALOG_BANK3, DIALOG_STYLE_MSGBOX, "{FFFFFF}Balance", str, "Return", "Exit" );
  112. }
  113. case 1 : { // Deposit
  114. format( str, sizeof ( str ),
  115. "{FFFFFF}Write the amount of money that you want to deposit at the blank field below! \n\n\
  116. {FFFFFF}Current Balance : {33FF33}$%d", bankMoney[ playerid ] );
  117. ShowPlayerDialog( playerid, DIALOG_DEPOSIT, DIALOG_STYLE_INPUT, "{FFFFFF}Deposit",
  118. str, "Deposit", "Cancel" );
  119. }
  120. case 2 : { // Withdraw
  121. format( str, sizeof ( str ),
  122. "{FFFFFF}Write the amount of money that you want to withdraw at the blank field below! \n\n\
  123. {FFFFFF}Current Balance : {33FF33}$%d", bankMoney[ playerid ] );
  124. ShowPlayerDialog( playerid, DIALOG_WITHDRAW, DIALOG_STYLE_INPUT, "{FFFFFF}Withdraw",
  125. str, "Withdraw", "Cancel" );
  126. }
  127. }
  128. }
  129. }
  130. case DIALOG_DEPOSIT : {
  131. if ( response ) {
  132. new
  133. str[ 300 ];
  134. if ( !isNumeric( inputtext ) ) {
  135. format( str, sizeof ( str ),
  136. "{FF3333}ERROR: {FFFFFF}The input must be a number! \n\
  137. {FFFFFF}Write the amount of money that you want to deposit at the blank field below! \n\n\
  138. {FFFFFF}Current Balance : {33FF33}$%d", bankMoney[ playerid ] );
  139. ShowPlayerDialog( playerid, DIALOG_DEPOSIT, DIALOG_STYLE_INPUT, "{FFFFFF}Deposit",
  140. str, "Deposit", "Cancel" );
  141. return true;
  142. }
  143. if ( strval( inputtext ) < 0 || strval( inputtext ) > 10000000 ) {
  144. format( str, sizeof ( str ),
  145. "{FF3333}ERROR: {FFFFFF}Valid amount : 0 - 10000000 < 10 million >! \n\
  146. {FFFFFF}Write the amount of money that you want to deposit at the blank field below! \n\n\
  147. {FFFFFF}Current Balance : {33FF33}$%d", bankMoney[ playerid ] );
  148. ShowPlayerDialog( playerid, DIALOG_DEPOSIT, DIALOG_STYLE_INPUT, "{FFFFFF}Deposit",
  149. str, "Deposit", "Cancel" );
  150. return true;
  151. }
  152. if ( strval( inputtext ) > GetPlayerMoney( playerid ) ) {
  153. format( str, sizeof ( str ),
  154. "{FF3333}ERROR: {FFFFFF}You don't have that much money! \n\
  155. {FFFFFF}Write the amount of money that you want to deposit at the blank field below! \n\n\
  156. {FFFFFF}Current Balance : {33FF33}$%d", bankMoney[ playerid ] );
  157. ShowPlayerDialog( playerid, DIALOG_DEPOSIT, DIALOG_STYLE_INPUT, "{FFFFFF}Deposit",
  158. str, "Deposit", "Cancel" );
  159. return true;
  160. }
  161. bankMoney[ playerid ] = ( bankMoney[ playerid ] + strval( inputtext ) );
  162. new
  163. INI: file = INI_Open( bankFile( playerid ) );
  164. INI_WriteInt( file, "bankMoney", bankMoney[ playerid ] );
  165. INI_Close( file );
  166. format( str, sizeof ( str ), "{FFFFFF}You have deposited {33FF33}$%i {FFFFFF}to your bank account! \n\n\
  167. {FFFFFF}Bank Balance : {33FF33}$%i", strval( inputtext ), bankMoney[ playerid ] );
  168. GivePlayerMoney( playerid, - strval( inputtext ) );
  169. ShowPlayerDialog( playerid, DIALOG_BANK3, DIALOG_STYLE_MSGBOX, "{FFFFFF}Deposit", str, "Return", "Exit" );
  170. }
  171. }
  172. case DIALOG_WITHDRAW : {
  173. if ( response ) {
  174. new
  175. str[ 300 ];
  176. if ( !isNumeric( inputtext ) ) {
  177. format( str, sizeof ( str ),
  178. "{FF3333}ERROR: {FFFFFF}The input must be a number! \n\
  179. {FFFFFF}Write the amount of money that you want to withdraw at the blank field below! \n\n\
  180. {FFFFFF}Current Balance : {33FF33}$%d", bankMoney[ playerid ] );
  181. ShowPlayerDialog( playerid, DIALOG_WITHDRAW, DIALOG_STYLE_INPUT, "{FFFFFF}Withdraw",
  182. str, "Withdraw", "Cancel" );
  183. return true;
  184. }
  185. if ( strval( inputtext ) < 0 || strval( inputtext ) > 10000000 ) {
  186. format( str, sizeof ( str ),
  187. "{FF3333}ERROR: {FFFFFF}Valid amount : 0 - 10000000 < 10 million >! \n\
  188. {FFFFFF}Write the amount of money that you want to withdraw at the blank field below! \n\n\
  189. {FFFFFF}Current Balance : {33FF33}$%d", bankMoney[ playerid ] );
  190. ShowPlayerDialog( playerid, DIALOG_WITHDRAW, DIALOG_STYLE_INPUT, "{FFFFFF}Withdraw",
  191. str, "Deposit", "Cancel" );
  192. return true;
  193. }
  194. if ( strval( inputtext ) > bankMoney[ playerid ] ) {
  195. format( str, sizeof ( str ),
  196. "{FF3333}ERROR: {FFFFFF}You don't have that much money in your bank account! \n\
  197. {FFFFFF}Write the amount of money that you want to withdraw at the blank field below! \n\n\
  198. {FFFFFF}Current Balance : {33FF33}$%d", bankMoney[ playerid ] );
  199. ShowPlayerDialog( playerid, DIALOG_WITHDRAW, DIALOG_STYLE_INPUT, "{FFFFFF}Withdraw",
  200. str, "Withdraw", "Cancel" );
  201. return true;
  202. }
  203. bankMoney[ playerid ] = ( bankMoney[ playerid ] - strval( inputtext ) );
  204. new
  205. INI: file = INI_Open( bankFile( playerid ) );
  206. INI_WriteInt( file, "bankMoney", bankMoney[ playerid ] );
  207. INI_Close( file );
  208. format( str, sizeof ( str ), "{FFFFFF}You have withdrawn {33FF33}$%i {FFFFFF}from your bank account! \n\n\
  209. {FFFFFF}Bank Balance : {33FF33}$%i", strval( inputtext ), bankMoney[ playerid ] );
  210. GivePlayerMoney( playerid, strval( inputtext ) );
  211. ShowPlayerDialog( playerid, DIALOG_BANK3, DIALOG_STYLE_MSGBOX, "{FFFFFF}Withdraw", str, "Return", "Exit" );
  212. }
  213. }
  214. }
  215. return true;
  216. }
Add Comment
Please, Sign In to add comment