Advertisement
Guest User

FS Sistema de Banco

a guest
Nov 9th, 2014
527
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 15.60 KB | None | 0 0
  1. //Includes
  2. #include <a_samp>
  3. #include <YSI\y_ini>
  4. #include <sscanf2>
  5. #include <zcmd>
  6. #include <streamer>
  7. //Define Dialogos
  8. #define DialogoRegistrarBanco 0
  9. #define DialogoLogarBanco 1
  10. #define DialogoMenuBanco 2
  11. #define DialogoDepositar 3
  12. #define DialogoSacar 4
  13. #define DialogoMudarSenhaBanco 5
  14. #define DialogoSaldo 6
  15. #define DialogoAutoLogin 7
  16. #define DialogoRegistradoComSucesso 8
  17. #define DialogoMudarSenha 9
  18. #define DialogoVoltarMenu 10
  19. #define DialogoEmprestimo 11
  20. #define DialogoPedirEmprestimo 12
  21. #define DialogoPagarEmprestimo 13
  22. #define DialogoStatusEmprestimo 14
  23. //Define Macros
  24. #define SCM SendClientMessage
  25. #define SCMA SendClientMessageToAll
  26. #define SPD ShowPlayerDialog
  27. //Define Cores
  28. #define Vermelho 0xFF0000FF
  29. #define Amarelo 0xFFFF00FF
  30. #define Azul 0x0000FFFF
  31. #define Verde 0x00FF00FF
  32. #define Branco 0xFFFFFFFF
  33. //Define Arquivo
  34. #define ArquivoBanco "Banco/%s.ini"
  35. //Enums
  36. enum BancoInfo
  37. {
  38. SenhaBanco,
  39. DinheiroBanco,
  40. bool:Registrado,
  41. bool:AutoLogin,
  42. Emprestado
  43. }
  44. //News
  45. new Banco[MAX_PLAYERS][BancoInfo];
  46. new Linha[200];
  47. //Stocks
  48. stock Arquivobanco(playerid)
  49. {
  50. new Arquivo[128], NomeBanco[MAX_PLAYER_NAME];
  51. GetPlayerName(playerid, NomeBanco, sizeof(NomeBanco));
  52. format(Arquivo, sizeof(Arquivo), ArquivoBanco, NomeBanco);
  53. return Arquivo;
  54. }
  55. //Comandos
  56. CMD:banco(playerid)
  57. {
  58. if(fexist(Arquivobanco(playerid)))
  59. {
  60. if(Banco[playerid][AutoLogin] == false) return SPD(playerid, DialogoLogarBanco, DIALOG_STYLE_PASSWORD, "Banco Central", "{FFFFFF}Você já Possui uma conta no Banco!\nColoque abaixo a sua senha para logar!\nVocê pode optar por logar Automáticamente no Banco ou não !", "Logar", "Cancelar");
  61. if(Banco[playerid][AutoLogin] == true) return SPD(playerid, DialogoMenuBanco, DIALOG_STYLE_LIST, "Banco Central", "Depositar\nSacar\nSaldo\nMudarSenha\nLogarAuto\nEmpréstimo", "Selecionar", "Cancelar");
  62. }
  63. else
  64. {
  65. SPD(playerid, DialogoRegistrarBanco, DIALOG_STYLE_PASSWORD, "Banco Central", "{FFFFFF}Você ainda não possui uma conta no banco\n{FFFFFF}Você gostaria de criar uma?\n{FF0000}Use Somentes Números !", "Registrar", "Cancelar");
  66. }
  67. return 1;
  68. }
  69. //Forwards
  70. forward CarregarBanco_user(playerid, name[], value[]);
  71. forward ChecarEmprestimo(playerid);
  72. //Publics
  73. public ChecarEmprestimo(playerid)
  74. {
  75. if(Banco[playerid][Emprestado] > 1)
  76. {
  77. format(Linha, sizeof(Linha), "[BANCO]: Você pagou o empréstimo de: R$ %d", Banco[playerid][Emprestado]);
  78. SCM(playerid, Vermelho, Linha);
  79. GivePlayerMoney(playerid, - Banco[playerid][Emprestado]);
  80. Banco[playerid][Emprestado] = 0;
  81. }
  82. SCMA(Verde, "[BANCO]: Todos os Empréstimos Serão Pagos Agora !!");
  83. return 1;
  84. }
  85. public CarregarBanco_user(playerid, name[], value[])
  86. {
  87. INI_Int("Senha", Banco[playerid][SenhaBanco]);
  88. INI_Int("Dinheiro", Banco[playerid][DinheiroBanco]);
  89. INI_Bool("Registrado", Banco[playerid][Registrado]);
  90. INI_Bool("AutoLogin", Banco[playerid][AutoLogin]);
  91. INI_Int("Emprestado", Banco[playerid][Emprestado]);
  92. return 1;
  93. }
  94. public OnPlayerConnect(playerid)
  95. {
  96. if(Banco[playerid][Emprestado] > 1)
  97. {
  98. format(Linha, sizeof(Linha), "[BANCO]: Você pegou emprestado R$ %d, Trate de Pagar Logo!", Banco[playerid][Emprestado]);
  99. SCM(playerid, Vermelho, Linha);
  100. }
  101. return 1;
  102. }
  103. public OnPlayerDisconnect(playerid, reason)
  104. {
  105. new INI:FileBanco = INI_Open(Arquivobanco(playerid));
  106. INI_SetTag(FileBanco, "DadosBancario");
  107. INI_WriteInt(FileBanco, "Senha", Banco[playerid][SenhaBanco]);
  108. INI_WriteInt(FileBanco, "Dinheiro", Banco[playerid][DinheiroBanco]);
  109. INI_WriteBool(FileBanco, "Registrado", Banco[playerid][Registrado]);
  110. INI_WriteBool(FileBanco, "AutoLogin", Banco[playerid][AutoLogin]);
  111. INI_WriteInt(FileBanco, "Emprestado", Banco[playerid][Emprestado]);
  112. INI_Close(FileBanco);
  113. return 1;
  114. }
  115. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  116. {
  117. switch(dialogid)
  118. {
  119. case DialogoRegistrarBanco:
  120. {
  121. if(!strval(inputtext)) return SCM(playerid, Vermelho, "[BANCO]: Use Somentes Números !");
  122. if(!response) return SCM(playerid, Vermelho, "[BANCO]: Você cancelou se registrar!");
  123. else
  124. {
  125. SPD(playerid, DialogoRegistradoComSucesso, DIALOG_STYLE_MSGBOX, "Banco Central", "{FFFFFF}Você se registrou com sucesso!\nAgora use esta mesma senha para se logar sempre!", "Ok", "");
  126. Banco[playerid][SenhaBanco] = strval(inputtext);
  127. Banco[playerid][Registrado] = true;
  128. new INI:FileBanco = INI_Open(Arquivobanco(playerid));
  129. INI_WriteInt(FileBanco, "Senha", Banco[playerid][SenhaBanco]);
  130. }
  131. SPD(playerid, DialogoLogarBanco, DIALOG_STYLE_PASSWORD, "Banco Central", "{FFFFFF}Você já Possui uma conta no Banco!\nColoque abaixo a sua senha para logar!\nVocê pode optar por logar Automáticamente no Banco ou não !", "Logar", "Cancelar");
  132. }
  133. case DialogoLogarBanco:
  134. {
  135. if(!strval(inputtext)) return SCM(playerid, Vermelho, "[BANCO]: Use Somentes Números !");
  136. if(!response) return SCM(playerid, Vermelho, "[BANCO]: Você cancelou se logar!");
  137. else
  138. {
  139. if(strcmp(inputtext, Banco[playerid][SenhaBanco], false))
  140. {
  141. INI_ParseFile(Arquivobanco(playerid),"CarregarBanco_%s", .bExtra = true, .extra = playerid);
  142. SPD(playerid, DialogoMenuBanco, DIALOG_STYLE_LIST, "Banco Central", "Depositar\nSacar\nSaldo\nMudarSenha\nLogarAuto\nEmpréstimo", "Selecionar", "Cancelar");
  143. }
  144. else
  145. {
  146. SPD(playerid, DialogoLogarBanco, DIALOG_STYLE_PASSWORD,"Banco Central", "{FFFFFF}Você já Possui uma conta no Banco!\n{FF0000}Você errou sua senha tente novamente!\n{FFFFFF}Use Somentes Números !", "Logar", "Cancelar");
  147. }
  148. return 1;
  149. }
  150. }
  151. case DialogoMenuBanco:
  152. {
  153. if(!response) return SCM(playerid, Vermelho, "[BANCO]: Você cancelou o Menu do Banco!");
  154. switch(listitem)
  155. {
  156. case 0:
  157. {
  158. format(Linha, sizeof(Linha), "{FFFFFF}Você possui agora em mão:{00FF00} R$ %d\nVocê possui agora no Banco: {00FF00}R$ %d\n{FFFFFF}Coloque abaixo um valor para depositar de 1 - 1000000", GetPlayerMoney(playerid), Banco[playerid][DinheiroBanco]);
  159. SPD(playerid, DialogoDepositar, DIALOG_STYLE_INPUT, "Banco Central", Linha, "Depositar", "Voltar");
  160. }
  161. case 1:
  162. {
  163. format(Linha, sizeof(Linha), "{FFFFFF}Você possui agora em mão:{00FF00} R$ %d\nVocê possui agora no Banco: {00FF00}R$ %d\n{FFFFFF}Coloque Abaixo um Valor para Sacar de 1 - 500000", GetPlayerMoney(playerid), Banco[playerid][DinheiroBanco]);
  164. SPD(playerid, DialogoSacar, DIALOG_STYLE_INPUT, "Banco Central", Linha, "Sacar", "Voltar");
  165. }
  166. case 2:
  167. {
  168. format(Linha, sizeof(Linha), "{FFFFFF}Você possui agora em mão:{00FF00} R$ %d\n{FFFFFF}Você possui agora no Banco: {00FF00}R$ %d", GetPlayerMoney(playerid), Banco[playerid][DinheiroBanco]);
  169. SPD(playerid, DialogoSaldo, DIALOG_STYLE_MSGBOX, "Banco Central", Linha, "Ok", "Voltar");
  170. }
  171. case 3:
  172. {
  173. SPD(playerid, DialogoMudarSenha, DIALOG_STYLE_MSGBOX, "Banco Central", "{FFFFFF}Você realmente quer mudar de senha?\nSe tiver total certeza aperte em Sim\nCuidado a escolha não pode ser alterada depois!", "Sim", "Voltar");
  174. }
  175. case 4:
  176. {
  177. SPD(playerid, DialogoAutoLogin, DIALOG_STYLE_MSGBOX, "Banco Central", "Aqui Você pode escolher se você quer ou não se logar automáticamente!\nVocê não precisará mas ficar colocando senha para se logar!", "Ativar", "Desativar");
  178. }
  179. case 5:
  180. {
  181. SPD(playerid, DialogoPedirEmprestimo, DIALOG_STYLE_LIST, "Banco Central", "Pedir Emprestimo\nPagar Emprestimo\nStatus do Emprestimo", "Selecionar", "Cancelar");
  182. }
  183. }
  184. }
  185. case DialogoDepositar:
  186. {
  187. if(!strval(inputtext)) return SCM(playerid, Vermelho, "[BANCO]: Use Apenas Números, Maiores que 0!");
  188. if(!response) return SPD(playerid, DialogoMenuBanco, DIALOG_STYLE_LIST, "Banco Central", "Depositar\nSacar\nSaldo\nMudarSenha\nLogarAuto\nEmpréstimo", "Selecionar", "Cancelar");
  189. else
  190. {
  191. if(strval(inputtext) < 0) return SPD(playerid, DialogoDepositar, DIALOG_STYLE_INPUT, "Banco Central", "{FFFFFF}Coloque Apenas Números Maiores que 0\nColoque Abaixo o Valor do Depósito!", "Depositar", "Cancelar");
  192. if(strval(inputtext) > GetPlayerMoney(playerid)) return SPD(playerid, DialogoDepositar, DIALOG_STYLE_INPUT, "Banco Central", "{FFFFFF}Coloque Apenas Números Maiores que 0\nColoque Abaixo o Valor do Depósito!\n{FF0000}Você não possui tudo isso!", "Depositar", "Cancelar");
  193. {
  194. Banco[playerid][DinheiroBanco] += strval(inputtext);
  195. GivePlayerMoney(playerid, - strval(inputtext));
  196. SPD(playerid, DialogoVoltarMenu, DIALOG_STYLE_MSGBOX, "Banco Central", "Transação Efetuada com sucesso!\nVocê deseja voltar ao menu?\nSe quiser voltar ao menu aperte em Voltar e se não quiser aperte Sair!", "Voltar", "Sair");
  197. }
  198. }
  199. }
  200. case DialogoSacar:
  201. {
  202. if(!strval(inputtext)) return SCM(playerid, Vermelho, "[BANCO]: Use Apenas Números, Maiores que 0!");
  203. if(!response) return SPD(playerid, DialogoMenuBanco, DIALOG_STYLE_LIST, "Banco Central", "Depositar\nSacar\nSaldo\nMudarSenha\nLogarAuto\nEmpréstimo", "Selecionar", "Cancelar");
  204. else
  205. {
  206. if(strval(inputtext) < 0) return SPD(playerid, DialogoSacar, DIALOG_STYLE_INPUT, "Banco Central", "{FFFFFF}Coloque Apenas números Maiores que 0!\nAbaixo Coloque o Valor do Saque!\n\n", "Sacar", "Cancelar");
  207. if(strval(inputtext) > Banco[playerid][DinheiroBanco]) return SPD(playerid, DialogoSacar, DIALOG_STYLE_INPUT, "Banco Central", "{FFFFFF}Coloque Apenas números Maiores que 0!\nAbaixo Coloque o Valor do Saque!\n{FF0000}Você não possui tudo isso!", "Sacar", "Cancelar");
  208. {
  209. Banco[playerid][DinheiroBanco] -= strval(inputtext);
  210. GivePlayerMoney(playerid, strval(inputtext));
  211. SPD(playerid, DialogoVoltarMenu, DIALOG_STYLE_MSGBOX, "Banco Central", "Transação Efetuada com sucesso!\nVocê deseja voltar ao menu?\nSe quiser voltar ao menu aperte em Voltar e se não quiser aperte Sair!", "Voltar", "Sair");
  212. }
  213. }
  214. }
  215. case DialogoSaldo:
  216. {
  217. if(response) return SPD(playerid, DialogoMenuBanco, DIALOG_STYLE_LIST, "Banco Central", "Depositar\nSacar\nSaldo\nMudarSenha\nLogarAuto\nEmpréstimo", "Selecionar", "Cancelar");
  218. if(!response) return SPD(playerid, DialogoMenuBanco, DIALOG_STYLE_LIST, "Banco Central", "Depositar\nSacar\nSaldo\nMudarSenha\nLogarAuto\nEmpréstimo", "Selecionar", "Cancelar");
  219. }
  220. case DialogoMudarSenha:
  221. {
  222. if(response) return SPD(playerid, DialogoMudarSenhaBanco, DIALOG_STYLE_INPUT, "Banco Central", "{FFFFFF}Você tem certeza que quer alterar sua senha?\nSe estiver certeza coloque sua senha abaixo e aperte Mudar Senha!", "Mudar Senha", "Voltar");
  223. if(!response) return SPD(playerid, DialogoMenuBanco, DIALOG_STYLE_LIST, "Banco Central", "Depositar\nSacar\nSaldo\nMudarSenha\nLogarAuto\nEmpréstimo", "Selecionar", "Cancelar");
  224. }
  225. case DialogoMudarSenhaBanco:
  226. {
  227. if(!strval(inputtext)) return SCM(playerid, Vermelho, "[BANCO]: Use Apenas Números, Maiores que 0!");
  228. if(!response) return SPD(playerid, DialogoMenuBanco, DIALOG_STYLE_LIST, "Banco Central", "Depositar\nSacar\nSaldo\nMudarSenha\nLogarAuto\nEmpréstimo", "Selecionar", "Cancelar");
  229. else
  230. {
  231. Banco[playerid][SenhaBanco] = strval(inputtext);
  232. SPD(playerid, DialogoVoltarMenu, DIALOG_STYLE_MSGBOX, "Banco Central", "Transação Efetuada com sucesso!\nVocê deseja voltar ao menu?\nSe quiser voltar ao menu aperte em Voltar e se não quiser aperte Sair!", "Voltar", "Sair");
  233. }
  234. }
  235. case DialogoAutoLogin:
  236. {
  237. if(response)
  238. {
  239. Banco[playerid][AutoLogin] = true;
  240. SPD(playerid, DialogoMenuBanco, DIALOG_STYLE_LIST, "Banco Central", "Depositar\nSacar\nSaldo\nMudarSenha\nLogarAuto\nEmpréstimo", "Selecionar", "Cancelar");
  241. }
  242. else if(!response)
  243. {
  244. Banco[playerid][AutoLogin] = false;
  245. SPD(playerid, DialogoMenuBanco, DIALOG_STYLE_LIST, "Banco Central", "Depositar\nSacar\nSaldo\nMudarSenha\nLogarAuto\nEmpréstimo", "Selecionar", "Cancelar");
  246. }
  247. }
  248. case DialogoVoltarMenu:
  249. {
  250. if(response) return SPD(playerid, DialogoMenuBanco, DIALOG_STYLE_LIST, "Banco Central", "Depositar\nSacar\nSaldo\nMudarSenha\nLogarAuto\nEmpréstimo", "Selecionar", "Cancelar");
  251. if(!response) return SCM(playerid, Vermelho, "[BANCO]: Você desistiu de voltar ao menu bancário!");
  252. }
  253. case DialogoEmprestimo:
  254. {
  255. if(!strval(inputtext)) return SCM(playerid, Vermelho, "[BANCO]: Use Apenas Números, Maiores que 0!");
  256. if(Banco[playerid][Emprestado] > 1) return SCM(playerid, Vermelho, "[BANCO]: Você já tem um empréstimo,pague-o para pedir empréstimo de novo!");
  257. if(!response) return SPD(playerid, DialogoMenuBanco, DIALOG_STYLE_LIST, "Banco Central", "Depositar\nSacar\nSaldo\nMudarSenha\nLogarAuto\nEmpréstimo", "Selecionar", "Cancelar");
  258. else
  259. {
  260. if(strval(inputtext) < 1 || strval(inputtext) > 100001) return SPD(playerid, DialogoEmprestimo, DIALOG_STYLE_LIST, "Banco Central", "Escolha um Valor maior que 1 Para pedir um empréstimo\nA Cada 1 Hora será verificado se você há dinheiro\nSe você tiver o dinheiro do Empréstimo será cobrado e retirado!\nEscolha um valor maior que 1 e menos que 100000!", "Emprestimo", "Voltar");
  261. Banco[playerid][Emprestado] = strval(inputtext);
  262. GivePlayerMoney(playerid, strval(inputtext));
  263. SetTimerEx("ChecarEmprestimo", 3600000, true, "i", playerid);
  264. }
  265. }
  266. case DialogoPedirEmprestimo:
  267. {
  268. if(!response) return SPD(playerid, DialogoMenuBanco, DIALOG_STYLE_LIST, "Banco Central", "Depositar\nSacar\nSaldo\nMudarSenha\nLogarAuto\nEmpréstimo", "Selecionar", "Cancelar");
  269. switch(listitem)
  270. {
  271. case 0:
  272. {
  273. SPD(playerid, DialogoEmprestimo, DIALOG_STYLE_INPUT, "Banco Central", "Escolha um Valor maior que 1 Para pedir um empréstimo\nA Cada 1 Hora será verificado se você há dinheiro\nSe você tiver o dinheiro do Empréstimo será cobrado e retirado!\nEscolha um valor maior que 1 e menos que 100000!", "Emprestimo", "Voltar");
  274. }
  275. case 1:
  276. {
  277. format(Linha, sizeof(Linha), "Você está Devendo para o Banco: R$ %d\nCaso você pague,poderá pedir outro!", Banco[playerid][Emprestado]);
  278. SPD(playerid, DialogoPagarEmprestimo, DIALOG_STYLE_MSGBOX, "Banco Central", Linha, "Pagar", "Voltar");
  279. }
  280. case 2:
  281. {
  282. format(Linha, sizeof(Linha), "Você está devendo para o Banco: R$ %d\nSe você não estiver endividado parabéns!", Banco[playerid][Emprestado]);
  283. SPD(playerid, DialogoStatusEmprestimo, DIALOG_STYLE_MSGBOX, "Banco Central", Linha, "Ok", "Voltar");
  284. }
  285. }
  286. }
  287. case DialogoStatusEmprestimo:
  288. {
  289. if(!response) return SPD(playerid, DialogoMenuBanco, DIALOG_STYLE_LIST, "Banco Central", "Depositar\nSacar\nSaldo\nMudarSenha\nLogarAuto\nEmpréstimo", "Selecionar", "Cancelar");
  290. }
  291. case DialogoPagarEmprestimo:
  292. {
  293. if(!response) return SPD(playerid, DialogoMenuBanco, DIALOG_STYLE_LIST, "Banco Central", "Depositar\nSacar\nSaldo\nMudarSenha\nLogarAuto\nEmpréstimo", "Selecionar", "Cancelar");
  294. else
  295. {
  296. if(Banco[playerid][Emprestado] > 1)
  297. {
  298. GivePlayerMoney(playerid, - Banco[playerid][Emprestado]);
  299. SCM(playerid, Vermelho, "[BANCO]: Você pagou todos os seus empréstimos parabens!");
  300. Banco[playerid][Emprestado] = 0;
  301. }
  302. else
  303. {
  304. SCM(playerid, Vermelho, "[BANCO]: Você não está devendo nada então não precisa pagar!");
  305. }
  306. }
  307. }
  308. }
  309. return 1;
  310. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement