Advertisement
Hugo7

Code banque

Dec 3rd, 2015
387
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Batch 6.85 KB | None | 0 0
  1. @echo off
  2. ::
  3. :: Script batch créé par Hugo afin de gérer les crédits et placements des autres joueurs.
  4. ::                            Banque Centrale Hugolandienne.
  5. ::
  6.  
  7. :: #Quelques trucs techniques
  8. color 07
  9. if not exist backup\ md backup\
  10. set d=%~dp0
  11. cd /d %d%
  12. mode con cols=100 lines=50
  13. for /f "tokens=1,2,* delims=/" %%D in ("%date%") do set date2=%%D-%%E-%%F
  14. ::
  15.  
  16. :menu
  17. set c=INDEF
  18. :: #Affichage du menu principal
  19. cls
  20. title Panel: Banque Centrale Hugolandienne
  21. echo.
  22. echo                          ^|BANQUE logiciel par Hugo^|
  23. echo.
  24. echo Avant toute chose, v‚rifiez que l'utilisateur existe dans la db, sinon faites "ca <pseudo>".
  25. echo Tapez ? pour l'aide.
  26. echo.
  27. echo.
  28. set/p c=%cd%\credits.db^>
  29. ::
  30.  
  31. :: #Traitement de la commande
  32. for /f "tokens=1,2,3,4,5 delims= " %%D in ("%c%") do (
  33. set cmd=%%D
  34. set arg1=%%E
  35. set arg2=%%F
  36. set arg3=%%G
  37. set arg4=%%H
  38. )
  39. if /i %cmd%==INDEF goto menu
  40. if /i %cmd%==voir goto voir
  41. if /i %cmd%==cr goto credit
  42. if /i %cmd%==ca goto creerligne
  43. if /i %cmd%==re goto remboursement
  44. if /i %cmd%==cl goto clear
  45. if /i %cmd%==tx goto taux
  46. if /i %cmd%==? goto help
  47. if /i %cmd%==sortir exit
  48. pause
  49. goto menu
  50. ::
  51.  
  52. exit
  53.  
  54. :help
  55. echo.
  56. echo.
  57. echo.
  58. echo Liste des commandes:
  59. echo.
  60. echo - voir ^<pseudo^>
  61. echo     Affiche des informations sur le compte en banque du joueur cible.
  62. echo.
  63. echo - cr ^<pseudo^> ^<montant^> ^<d‚lai^> ^<int‚rets^>
  64. echo     Ajoute un cr‚dit au nom du joueur cible. V‚rifier que le compte existe.
  65. echo.
  66. echo - re ^<pseudo^> ^<montant^>
  67. echo     Le joueur a rembours‚ le montant, ou le montant a ‚t‚ pr‚lev‚ de force.
  68. echo.
  69. echo - cl ^<pseudo^>
  70. echo     Efface toutes les dettes du joueur cible, apres une audiance au tribunal par exemple.
  71. echo.
  72. echo - ca ^<pseudo^>
  73. echo     Cr‚e une entr‚e vierge dans la db si le pseudo n'y est pas. Ne pas faire si il existe.
  74. echo     C'est … faire avant de cr‚er un cr‚dit si le joueur n'a pas encore son entr‚e.
  75. echo.
  76. echo - tx ^<nombre^>
  77. echo     Si un nombre est sp‚cifi‚, modifie le taux du placement, c'est … dire le %% que la banque
  78. echo     verse chaque mois … tous les comptes de placements. Les placements d'argent sont g‚r‚s par le
  79. echo     plugin Boseconomy IG, mais pas les int‚rets que verse la banque aux joueurs ayant plac‚ de
  80. echo     l'argent. Ne pas sp‚cifier le "%%".
  81. echo     Si rien n'est sp‚cifi‚, affiche le taux actuel.
  82. echo.
  83. echo - sortir
  84. echo     Sortir du logiciel.
  85. echo.
  86. echo.
  87. pause
  88. goto menu
  89.  
  90.  
  91. :voir
  92. :: Trouve puis décortique la ligne correspondante au pseudo
  93. for /f "eol=# tokens=1,2,3,4,5 delims=:" %%S in ('type credits.db ^| find /i "%arg1%:"') do (
  94.  
  95.  if "%%T"=="" (
  96.  echo Compte inexistant
  97.  goto menu
  98.  )
  99.  
  100. cls
  101. echo.
  102. echo.
  103. echo %arg1% a %%T pieces … rembourser dans un d‚lai de %%U, avec un taux de %%V%% d'int‚rets chaque mois depuis le %%W.
  104. pause
  105. )
  106. ::
  107.  
  108.  
  109. goto menu
  110.  
  111.  
  112. :credit
  113. :: Création d'un nouveau crédit
  114.  
  115. if "%arg4%"=="" goto menu
  116.  
  117. cls
  118. echo.
  119. echo.
  120. echo Vous allez d‚finir un credit de %arg2% pieces … %arg1% avec un d‚lai de %arg3%.
  121. echo Le taux d'int‚rets sera de %arg4%%% par mois.
  122. echo Attention: ce sera rajout‚ aux autres cr‚dits, le d‚lai sera remplac‚!
  123. pause
  124.  
  125. :: #Récupération du montant à rembourser
  126. for /f "eol=# tokens=1,2,3,4,5 delims=:" %%S in ('type credits.db ^| find /i "%arg1%:"') do (
  127. set anciencredit=%%T
  128. )
  129. ::
  130.  
  131. :: #Définition du nouveau montant à rembourser
  132. set /a nouveaucredit=%anciencredit%+%arg2%
  133. ::
  134.  
  135. :: #On réécrit les lignes des autres comptes afin de virer la ligne du joueur actuel
  136. for /f "eol=# tokens=1,2,3,4,5 delims=:" %%V in ('type credits.db') do (
  137. if /i not "%%V"=="%arg1%" (
  138. echo %%V:%%W:%%X:%%Y:%%Z>>out.temp
  139. )
  140. )
  141. ::
  142.  
  143. :: #Puis on ajoute la ligne
  144.     rem pseudo:montant:délai:intérêts:date
  145. echo %arg1%:%nouveaucredit%:%arg3%:%arg4%:%date2%>>out.temp
  146. ::
  147.  
  148. :: #Backup de l'anciene db, puis renommage de la db actuelle
  149. del /q backup\credits.db
  150. move /Y credits.db backup\
  151. ren out.temp credits.db
  152. ::
  153.  
  154. cls
  155. echo.
  156. echo.
  157. echo Le compte de l'utilisateur a ‚t‚ modifi‚ dans la database.
  158.  
  159. :: #Puis on va à VOIR pour voir le montant actuel.
  160. goto voir
  161.  
  162.  
  163.  
  164. :remboursement
  165. :: Quand le joueur a remboursé une partie de ses dettes, ou quand ça a été prélevé de force.
  166.  
  167. if "%arg2%"=="" goto menu
  168.  
  169. setlocal enabledelayedexpansion enableextensions
  170. for /f "eol=# tokens=1,2,3,4,5 delims=:" %%V in ('type credits.db') do (
  171.  
  172. :: #On réécrit les lignes des autres comptes afin de virer la ligne du joueur actuel
  173. if /i not "%%V"=="%arg1%" (
  174. echo %%V:%%W:%%X:%%Y:%%Z>>out.temp
  175. )
  176.  
  177. :: #Recherche de la ligne correspondante, puis calcul du nouveau montant à rembourser. Enfin, on écrit.
  178. if /i "%%V"=="%arg1%" (
  179. set actuel=%%W
  180. set /a diff=!actuel!-!arg2!
  181. echo %%V:!diff!:%%X:%%Y:%%Z>>out.temp
  182. )
  183.  
  184. )
  185.  
  186. :: #Backup de l'anciene db, puis renommage de la db actuelle
  187. del /q backup\credits.db
  188. move /Y credits.db backup\
  189. ren out.temp credits.db
  190. ::
  191.  
  192. cls
  193. echo.
  194. echo.
  195. echo Le cr‚dit de %arg1% a bien ‚t‚ rembours‚ de %arg2%!
  196. pause
  197. :: #Puis on va à VOIR pour voir le montant actuel.
  198. goto voir
  199.  
  200.  
  201. :clear
  202. :: Pour remttre à 0 les crédits d'un joueur
  203. if "%arg1%"=="" goto menu
  204.  
  205. echo %cmd% %arg1% %arg2% %arg3% %arg4%
  206. for /f "eol=# tokens=1,2,3,4,5 delims=:" %%V in (credits.db) do (
  207. :: #On réécrit les lignes des autres comptes afin de virer la ligne du joueur actuel
  208. if /i not "%%V"=="%arg1%" echo %%V:%%W:%%X:%%Y:%%Z>>out.temp
  209.  
  210. :: #Recherche de la ligne correspondante, puis on écrit 0:0:0:null.
  211. if /i "%%V"=="%arg1%" echo %%V:0:0:0:null>>out.temp
  212.  
  213. echo.
  214. )
  215.  
  216.  
  217. :: #Backup de l'anciene db, puis renommage de la db actuelle
  218. del /q backup\credits.db
  219. move /Y credits.db backup\
  220. ren out.temp credits.db
  221. ::
  222.  
  223. cls
  224. echo.
  225. echo.
  226. echo Le cr‚dit de %arg1% a ‚t‚ remis … 0!
  227. pause
  228. goto menu
  229.  
  230.  
  231. :creerligne
  232. :: Afin d'ajouter un utilisateur à la DB, opération à faire avant toute chose.
  233. :: On vérifie si l'utiisateur n'y est pas déjà, et on l'ajoute.
  234. type credits.db | find /i "%arg1%" || echo %arg1%:0:0:0:null >>credits.db
  235. :: Traduction de cette syntaxe bizarre:
  236. :: Ouvrir credits.db et y chercher %arg1%. Si find ne renvoie rien, créer la ligne.
  237. ::                   |                                           ||
  238. cls
  239. echo.
  240. echo.
  241. echo %arg1% ajout‚.
  242. pause
  243. goto menu
  244.  
  245.  
  246. :taux
  247. :: Affiche ou modifie le taux (%) que la banqe verse chaque mois aux joueurs ayant placé de l'argent à la banque.
  248. :: Les placements (sauf les intérêts) sont gérés par un plugin.
  249.  
  250. :: Si un argument est spécifié...
  251. if not "%arg1%"=="" (
  252. :: ...alors on modifie...
  253. echo %arg1%^^%%>tauxplacement.txt
  254. cls
  255. echo.
  256. echo.
  257. echo Taux modifi‚ … %arg1%%%
  258. )
  259. :: ... sinon on affiche.
  260. if "%arg1%"=="" (
  261. set /p taux=<tauxplacement.txt
  262. cls
  263. echo.
  264. echo.
  265. echo La banque doit verser %taux% du placement de chaque joueur aux joueurs concern‚s.
  266. pause
  267. )
  268. goto menu
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement