SkayBr

Fs Bancario Por Skay

Apr 25th, 2022 (edited)
242
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 11.15 KB | None | 0 0
  1. /*~~~~~~~~~~~~[INCLUDES]~~~~~~~~~~~~*/
  2. #include <a_samp>
  3. #include <zcmd>
  4. #include <DOF2>
  5. #define FILTERSCRIPT
  6. #if defined FILTERSCRIPT
  7. /*~~~~~~~~~~~~~[DEFINES]~~~~~~~~~~~~*/
  8. #define Spd ShowPlayerDialog
  9. #define Msg SendClientMessage
  10. #define DialogBanco 970
  11.  
  12. #define BBB 0xFFFFFFFF
  13. #define VAV 0xFF0000FF
  14. #define VVV 0x3CB371FF
  15. #define ZZZ 0x00C2ECFF
  16. #define AAA 0xFFFF00FF
  17. #define CCC 0xCECECEFF
  18. /*~~~~~~~~~~~~[VARIAVES]~~~~~~~~~~~~*/
  19. enum pinfo{
  20. Banco
  21. };
  22. new Str[500];
  23.  
  24. new InfoBank[MAX_PLAYERS][pinfo];
  25.  
  26. public OnFilterScriptInit()
  27. {
  28. print("\n ======================================================");
  29. print(" | |");
  30. print(" | FilterScript Banco DOF2 Versao Completa |");
  31. print(" | |");
  32. print(" | * Criador:SkayBr * |");
  33. print(" | |");
  34. print(" ======================================================\n");
  35. /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
  36. CreateObject(2942, 1928.5932, -1784.4282, 13.1647, 0.0000, 0.0000, 89.8000);
  37. Create3DTextLabel("Use: /Banco", BBB, 1928.5932, -1784.4282, 13.1647, 25,0);
  38. return 1;
  39. }
  40. public OnFilterScriptExit()
  41. {
  42. for(new i = 0; i < MAX_PLAYERS; ++i)
  43. {
  44. SalvarBanco(i);
  45. }
  46. DOF2_Exit();
  47. return 1;
  48. }
  49.  
  50. public OnPlayerRequestClass(playerid, classid)
  51. {
  52. InfoBank[playerid][Banco] = DOF2_GetInt(PachBanco(playerid),"Banco");
  53. Msg(playerid,AAA,"[FS] • Banco ON");
  54. return 1;
  55. }
  56. public OnPlayerDisconnect(playerid, reason)
  57. {
  58. SalvarBanco(playerid);
  59. return 1;
  60. }
  61. public OnPlayerEnterCheckpoint(playerid)
  62. {
  63. if(IsPlayerInRangeOfPoint(playerid, 3.0,1928.5932, -1784.4282, 13.1647)) return DisablePlayerCheckpoint(playerid);
  64. return 1;
  65. }
  66. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  67. {
  68. if(dialogid == DialogBanco)
  69. {
  70. if(response)
  71. {
  72. if(listitem == 0)/*[Depositar]*/
  73. {
  74. format(Str, sizeof(Str), "Saldo Bancario: {FFFFFF}R${32CD32}%s\n\n{FFFFFF}Quanto deseja depositar?",ConvertReal(InfoBank[playerid][Banco]));
  75. Spd(playerid,DialogBanco+1,1,"Depositar", Str, "Selet","Voltar");
  76. }
  77. if(listitem == 1)/*[Sacar]*/
  78. {
  79. format(Str, sizeof(Str), "Saldo Bancario: {FFFFFF}R${32CD32}%s\n\n{FFFFFF}Quanto deseja Sacar?",ConvertReal(InfoBank[playerid][Banco]));
  80. Spd(playerid,DialogBanco+2,1,"Sacar", Str, "Selet","Voltar");
  81. }
  82. if(listitem == 2)/*[Saldo Banco]*/
  83. {
  84. format(Str, sizeof(Str),"Saldo Bancario: {FFFFFF}R${32CD32}%s",ConvertReal(InfoBank[playerid][Banco]));
  85. Spd(playerid,DialogBanco+3,0,"Saldo Banco", Str, "Voltar",#);
  86. }
  87. if(listitem == 3)/*[Transferir]*/
  88. {
  89. format(Str, sizeof(Str),"Digite o ID do jogador que deseja tranferir o dinheiro",ConvertReal(InfoBank[playerid][Banco]));
  90. Spd(playerid,DialogBanco+4,1,"Transferir", Str, "Selet","Voltar");
  91. }
  92. }
  93. }
  94. if(dialogid == DialogBanco+1)
  95. {
  96. if(response)
  97. {
  98. /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
  99. if(!IsNumeric(inputtext)) return SendClientMessage(playerid, CCC, "{Banco] • Digite Apenas Numeros!");
  100. if(strlen(inputtext) > 7) return SendClientMessage(playerid, CCC, "{Banco] • Valor Invalido!");
  101. if(GetPlayerMoney(playerid) < strval(inputtext)) return Msg(playerid,CCC,"[Banco] • Você não pode depositar mais do que tem!");
  102. /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
  103. new Anterior = InfoBank[playerid][Banco];
  104. InfoBank[playerid][Banco] += strval(inputtext);
  105. GivePlayerMoney(playerid, - strval(inputtext));
  106. /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
  107. Msg(playerid,VVV,"~~~~~~~~~~~~~~~~~~[ INFO BANCO ]~~~~~~~~~~~~~~~~~~");
  108. format(Str, sizeof(Str),"Voce depositou {FFFFFF}R${32CD32}%s{FFFFFF}, na sua conta bancaria",ConvertReal(strval(inputtext)));
  109. Msg(playerid,-1,Str);
  110. format(Str, sizeof(Str),"Saldo bancario atual: {FFFFFF}R${32CD32}%s",ConvertReal(InfoBank[playerid][Banco]));
  111. Msg(playerid,-1,Str);
  112. format(Str, sizeof(Str),"Saldo bancario anterior: {FFFFFF}R${32CD32}%s",ConvertReal(Anterior));
  113. Msg(playerid,-1,Str);
  114. Msg(playerid,VVV,"~~~~~~~~~~~~~~~~~~[ INFO BANCO ]~~~~~~~~~~~~~~~~~~");
  115. /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
  116. }
  117. else
  118. {
  119. BancoEx(playerid);
  120. }
  121. }
  122. if(dialogid == DialogBanco+2)
  123. {
  124. if(response)
  125. {
  126. /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
  127. if(!IsNumeric(inputtext)) return SendClientMessage(playerid, CCC, "{Banco] • Digite Apenas Numeros!");
  128. if(strlen(inputtext) > 7) return SendClientMessage(playerid, CCC, "{Banco] • Valor Invalido!");
  129. if(InfoBank[playerid][Banco] < strval(inputtext)) return Msg(playerid,CCC,"[Banco] • Você não pode sacar mais do que tem!");
  130. /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
  131. new Anterior = InfoBank[playerid][Banco];
  132. GivePlayerMoney(playerid, strval(inputtext));
  133. InfoBank[playerid][Banco] -= strval(inputtext);
  134. /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
  135. Msg(playerid,VVV,"~~~~~~~~~~~~~~~~~~[ INFO BANCO ]~~~~~~~~~~~~~~~~~~");
  136. format(Str, sizeof(Str),"Voce Sacou {FFFFFF}R${32CD32}%s, {FFFFFF}na sua conta bancaria",ConvertReal(strval(inputtext)));
  137. Msg(playerid,-1,Str);
  138. format(Str, sizeof(Str),"Saldo bancario atual {FFFFFF}R${32CD32}%s",ConvertReal(InfoBank[playerid][Banco]));
  139. Msg(playerid,-1,Str);
  140. format(Str, sizeof(Str),"Saldo bancario anterior {FFFFFF}R${32CD32}%s",ConvertReal(Anterior));
  141. Msg(playerid,-1,Str);
  142. Msg(playerid,VVV,"~~~~~~~~~~~~~~~~~~[ INFO BANCO ]~~~~~~~~~~~~~~~~~~");
  143. /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
  144. }
  145. else
  146. {
  147. BancoEx(playerid);
  148. }
  149. }
  150. if(dialogid == DialogBanco+3)
  151. {
  152. if(response)
  153. {
  154. BancoEx(playerid);
  155. }
  156. }
  157. if(dialogid == DialogBanco+4)
  158. {
  159. if(response)
  160. {
  161. /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
  162. new id;
  163. id = strval(inputtext);
  164. /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
  165. if(!IsNumeric(inputtext)) return SendClientMessage(playerid, CCC, "{Banco] • ID Invalido!");
  166. if(strlen(inputtext) > 3) return SendClientMessage(playerid, CCC, "{Banco] • ID Invalido!");
  167. if(!IsPlayerConnected(id)) return SendClientMessage(playerid, VAV, "[Banco] • Jogador Offline");
  168. if(id == playerid) return SendClientMessage(playerid, CCC, "[Banco] • Voce nao pode trasnferir dinheiro para si mesmo!");
  169. /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
  170. format(Str, sizeof(Str),"Saldo Bancario: {FFFFFF}R${32CD32}%s\n\n{FFFFFF}Transferir Dineheiro para {00C2EC}%s\n\n{FFFFFF}Quanto deseja traferir?",ConvertReal(InfoBank[playerid][Banco]),pName(id));
  171. Spd(playerid,DialogBanco+5,1,"Transferir", Str, "Selet","Voltar");
  172. SetPVarInt(playerid, "IdTransferiu", id);
  173. /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
  174. }
  175. }
  176. if(dialogid == DialogBanco+5)
  177. {
  178. /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
  179. if(!IsNumeric(inputtext)) return SendClientMessage(playerid, CCC, "{Banco] • Digite Apenas Numeros!");
  180. if(strlen(inputtext) > 3) return SendClientMessage(playerid, CCC, "{Banco] • ID Invalido!");
  181. if(InfoBank[playerid][Banco] < strval(inputtext)) return Msg(playerid,CCC,"[Banco] • Você não pode tranferir mais do que tem!");
  182. /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
  183. new Anterior = InfoBank[playerid][Banco];
  184.  
  185. InfoBank[playerid][Banco] -= strval(inputtext);
  186. InfoBank[GetPVarInt(playerid, "IdTransferiu")][Banco] += strval(inputtext);
  187. /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
  188. Msg(playerid,VVV,"~~~~~~~~~~~~~~~~~~[ INFO BANCO ]~~~~~~~~~~~~~~~~~~");
  189. format(Str, sizeof(Str),"Voce transferiu {FFFFFF}R${32CD32}%s{FFFFFF}, Para: {00C2EC}%s",ConvertReal(strval(inputtext)), pName(GetPVarInt(playerid, "IdTransferiu")));
  190. Msg(playerid,-1,Str);
  191. format(Str, sizeof(Str),"Saldo bancario atual {FFFFFF}R${32CD32}%s",ConvertReal(InfoBank[playerid][Banco]));
  192. Msg(playerid,-1,Str);
  193. format(Str, sizeof(Str),"Saldo bancario anterior {FFFFFF}R${32CD32}%s",ConvertReal(Anterior));
  194. Msg(playerid,-1,Str);
  195. Msg(playerid,VVV,"~~~~~~~~~~~~~~~~~~[ INFO BANCO ]~~~~~~~~~~~~~~~~~~");
  196. /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
  197. format(Str,sizeof(Str), "[Banco] • Voce recebeu {FFFFFF}R${32CD32}%s{FFFF00}, na sua conta bancaria do jogador %s",ConvertReal(strval(inputtext)),pName(playerid));
  198. Msg(GetPVarInt(playerid, "IdTransferiu"),AAA, Str);
  199. DeletePVar(playerid, "IdTransferiu");
  200. /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
  201. }
  202. return 1;
  203. }
  204. /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~[COMANDO]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
  205. CMD:banco(playerid)
  206. {
  207. if(IsPlayerInRangeOfPoint(playerid, 2.0,1928.5932, -1784.4282, 13.1647))
  208. {
  209. BancoEx(playerid);
  210. }
  211. else
  212. {
  213. Msg(playerid,CCC,"Voce nao esta no banco ou uma caixa eletronica, Use: /lcaixa");
  214. }
  215. return 1;
  216. }
  217. /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~[COMANDO]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
  218. CMD:lcaixa(playerid)
  219. {
  220. SetPlayerCheckpoint(playerid, 1928.5932, -1784.4282, 13.1647, 2.0);
  221. Msg(playerid,AAA,"[Gps] • Caixa eletronica localizada no mapa");
  222. return 1;
  223. }
  224. /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~[FUNCOES]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
  225. BancoEx(playerid)
  226. {
  227. Spd(playerid,DialogBanco,2,"Banco","Depositar Dinheiro\nSacar Dinheiro\nSaldo Bancario\nTransferir Dinheiro","Selet","Exit");
  228. return 1;
  229. }
  230. /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~[FUNCOES]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
  231. SalvarBanco(playerid)
  232. {
  233. if(!DOF2_FileExists(PachBanco(playerid))) DOF2_CreateFile(PachBanco(playerid));
  234. DOF2_SetInt(PachBanco(playerid),"Banco",InfoBank[playerid][Banco]);/*[]*/
  235. DOF2_SaveFile();
  236. return 1;
  237. }
  238. /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~[FUNCOES]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
  239. PachBanco(playerid)
  240. {
  241. new string[100];
  242. format(string, 100, "Banco/%s.ini", pName(playerid));
  243. return string;
  244. }
  245. /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~[FUNCOES]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
  246. pName(playerid)
  247. {
  248. new Nome[MAX_PLAYER_NAME];
  249. GetPlayerName(playerid, Nome, MAX_PLAYER_NAME);
  250. return Nome;
  251. }
  252. /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~[FUNCOES]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
  253. ConvertReal(value, const text[] = ".")
  254. {
  255. new Var[20];
  256. format(Var, sizeof(Var), "%d", value);
  257. for(new X = strlen(Var) - 3; X > 0; X -= 3)
  258. strins(Var, text, X);
  259. format(Var, sizeof(Var), "%s", Var);
  260. return Var;
  261. }
  262. /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~[FUNCOES]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
  263. IsNumeric(const string[])
  264. {
  265. for (new i = 0, j = strlen(string); i < j; i++)
  266. {
  267. if (string[i] > '9' || string[i] < '0') return 0;
  268. }
  269. return 1;
  270. }
  271. /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~[FUNCOES]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
  272. #endif
Add Comment
Please, Sign In to add comment