Advertisement
jimis

Bank system From Zero

Apr 9th, 2012
42
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 59.50 KB | None | 0 0
  1. #if defined zDfGyZehGfdoc
  2.  
  3. -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  4. ____ _ _ ____ _
  5. | __ ) __ _ _ __ | | _(_)_ __ __ _ / ___| _ _ ___| |_ ___ _ __ ___
  6. | _ \ / _` | '_ \| |/ / | '_ \ / _` | \___ \| | | / __| __/ _ \ '_ ` _ \
  7. | |_) | (_| | | | | <| | | | | (_| | ___) | |_| \__ \ || __/ | | | | |
  8. |____/ \__,_|_| |_|_|\_\_|_| |_|\__, | |____/ \__, |___/\__\___|_| |_| |_|
  9. |___/ |___/
  10. by Zh3r0
  11. -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  12.  
  13. --== [ CHANGELOG ] ==--
  14.  
  15. VERSION 1.2:
  16. - Fixed the bug that all passwords work on login.
  17.  
  18. VERSION 1.1:
  19. - Fixed the problem with the offline transfer!
  20.  
  21. VERSION 1.0
  22. - Initial release.
  23.  
  24. --== === === === ==--
  25. #endif
  26.  
  27. #include <a_samp>
  28. #include <YSI/Y_INI>
  29. #include <sscanf2>
  30.  
  31. #define COL_RED "{FF0000}"
  32. #define COL_GREY "{C3C3C3}"
  33. #define COL_ALL "{20FF20}"
  34.  
  35. //Change these:
  36. #define FILE_LOCATION "bAccounts.ini"
  37. #define BANK 3598
  38. #define SAVE_ON_EXIT true //true - The stats will save on disconnect | false - The stats won't save on exit
  39. #define TELL_ON_CONNECT true //true - Tell player that he has an account when he connects | false - Don't tell the player that he has an account
  40.  
  41. //===========================================
  42. //Don't change here
  43. #define BANK_CREATE BANK + 1
  44. #define BANK_CREATE2 BANK + 2
  45. #define BANK_DEPOSIT BANK + 3
  46. #define BANK_WITHDRAW BANK + 4
  47. #define BANK_TRANSFER BANK + 5
  48. #define BANK_WITH_DONE BANK + 6
  49. #define BANK_DEPO_DONE BANK + 7
  50. #define BANK_T_I BANK + 8
  51. #define BANK_TRANSFER_1 BANK + 9
  52. #define BANK_TRANSFER_2 BANK + 10
  53. #define BANK_TRANSFER_3 BANK + 11
  54. #define BANK_TRANSFER_4 BANK + 12
  55. #define BANK_TRANSFER_5 BANK + 13
  56. #define BANK_TRANSFER_6 BANK + 14
  57. #define BANK_INFO BANK + 15
  58. #define ACC_DEL BANK + 16
  59. #define BANK_INS_PASS BANK + 17
  60. #define BANK_LOGIN BANK + 18
  61. #define BANK_LOGGED BANK + 19
  62. #define TRANFER_REC BANK + 20
  63.  
  64. #define DEPOSIT 0
  65. #define WITHDRAW 1
  66. #define TRANSFER 2
  67. #define ACCOUNTINFO 3
  68. #define ACCSYSINFO 4
  69. #define CANCEL_ACC 5
  70. #define BANK_EXIT 6
  71. //===========================================
  72.  
  73.  
  74. enum PlayerData
  75. {
  76. P_Deposited,
  77. P_Withdraw,
  78. P_Transfered,
  79. P_Logged
  80. };
  81.  
  82. forward LoadDeposit2( playerid, name[ ], value[ ] );
  83. forward LoadTransfer( playerid, name[ ], value[ ] );
  84. forward LoadBanking( playerid, name[ ], value[ ] );
  85. forward ParseReceived2( playerid, name[ ], value[ ] );
  86. forward ParseReceived( playerid, name[ ], value[ ] );
  87. forward ParsePass( playerid, name[ ], value[ ] );
  88. forward LoadWithdraw( playerid, name[ ], value[ ] );
  89. forward LoadDeposit( playerid, name[ ], value[ ] );
  90. forward LoadReceived( playerid );
  91.  
  92. //==================================================
  93. //Don't remove!
  94. new Hash[17] = "90!104!51!114!48",
  95. HashE[5][256],
  96. P_DATA[ MAX_PLAYERS ][ PlayerData ],
  97. Str[ 800 ];
  98. //==================================================
  99.  
  100. public LoadDeposit2( playerid, name[ ], value [ ] ) if(!strcmp(name, "MONEY" )) SetPVarInt( playerid, "Deposited2", strval( value ) );
  101. public ParsePass( playerid, name[ ], value[ ] ) if(!strcmp(name, "ACCOUNT_PASSWORD" )) SetPVarString( playerid, "bPass", value );
  102. public ParseReceived( playerid, name[ ], value[ ] ) if(!strcmp(name, "TRANSFER_RECEIVED" )) SetPVarInt( playerid, "MoneyReceived", strval( value ) );
  103.  
  104. public ParseReceived2( playerid, name[ ], value[ ] )
  105. {
  106. if(!strcmp(name, "MONEY" )) P_DATA[ playerid ][ P_Deposited ] = strval( value );
  107. if(!strcmp(name, "MONEY_RECEIVED_FROM" )) SetPVarString( playerid, "ReceivedFrom", value );
  108. if(!strcmp(name, "MONEY_RECEIVED_DATE" )) SetPVarString( playerid, "ReceivedDate", value );
  109. if(!strcmp(name, "MONEY_RECEIVED" )) SetPVarInt( playerid, "AmReceived", strval( value ) );
  110. }
  111. public LoadBanking( playerid, name[ ], value[ ] )
  112. {
  113. if(!strcmp(name, "ACCOUNT_CREATED_ON" )) SetPVarString( playerid, "AccountDate", value );
  114. if(!strcmp(name, "MONEY" )) P_DATA[ playerid ][ P_Deposited ] = strval( value );
  115. if(!strcmp(name, "WITHDRAW" )) P_DATA[ playerid ][ P_Withdraw ] = strval( value );
  116. if(!strcmp(name, "TRANSFERED" )) P_DATA[ playerid ][ P_Transfered ] = strval( value );
  117. if(!strcmp(name, "LAST_TRANSFER" )) SetPVarString( playerid, "TransferDate", value );
  118. if(!strcmp(name, "LAST_DEPOSIT" )) SetPVarString( playerid, "DepositDate", value );
  119. if(!strcmp(name, "LAST_WITHDRAW" )) SetPVarString( playerid, "WithdrawDate", value );
  120. if(!strcmp(name, "LAST_TRANSFER_AMOUNT" )) SetPVarInt( playerid, "TransferAmount", strval( value ) );
  121. if(!strcmp(name, "LAST_TRANSFER_TYPE" )) SetPVarString( playerid, "TransferType", value );
  122. if(!strcmp(name, "LAST_TRANSFER_PLAYER" )) SetPVarString( playerid, "TransferPlayer", value);
  123.  
  124. }
  125. public LoadTransfer( playerid, name[ ], value[ ] )
  126. {
  127. if(!strcmp(name, "LAST_TRANSFER" )) SetPVarString( playerid, "TransferDate", value );
  128. if(!strcmp(name, "LAST_TRANSFER_AMOUNT" )) SetPVarInt( playerid, "TransferAmount", strval( value ) );
  129. if(!strcmp(name, "LAST_TRANSFER_TYPE" )) SetPVarString( playerid, "TransferType", value );
  130. if(!strcmp(name, "LAST_TRANSFER_PLAYER" )) SetPVarString( playerid, "TransferPlayer", value);
  131. if(!strcmp(name, "TRANSFERED" )) P_DATA[ playerid ][ P_Transfered ] = strval( value );
  132. }
  133.  
  134.  
  135.  
  136. public LoadDeposit( playerid, name[ ], value[ ] )
  137. {
  138. if(!strcmp(name, "LAST_DEPOSIT" )) SetPVarString( playerid, "DepositDate", value );
  139. if(!strcmp(name, "MONEY" )) P_DATA[ playerid ][ P_Deposited ] = strval( value );
  140. }
  141. public LoadWithdraw( playerid, name[ ], value[ ] )
  142. {
  143. if(!strcmp(name, "LAST_WITHDRAW" )) SetPVarString( playerid, "WithdrawDate", value );
  144. if(!strcmp(name, "WITHDRAW" )) P_DATA[ playerid ][ P_Withdraw ] = strval( value );
  145. }
  146. public LoadReceived( playerid )
  147. {
  148. format( Str, 300, ""COL_ALL"MONEY TRANSFER RECEIVED!\n\n\
  149. {FFFFFF}From: "COL_ALL"%s\n\
  150. {FFFFFF}Amount: "COL_ALL"%d\n\
  151. {FFFFFF}Sent on: "COL_ALL"%s",
  152. GetPVarStringEx( playerid, "ReceivedFrom" ),
  153. GetPVarInt( playerid, "AmReceived" ),
  154. GetPVarStringEx( playerid, "ReceivedDate" ));
  155.  
  156. ShowPlayerDialog( playerid,TRANFER_REC, DIALOG_STYLE_MSGBOX, ""COL_ALL"Money Transfer Received!", Str, "Continue", "");
  157. return 1;
  158. }
  159. public OnPlayerSpawn( playerid )
  160. {
  161. if ( GetPVarInt( playerid, "bCon" ) )
  162. {
  163. INI_ParseFile( ReturnBankingName( playerid ), "ParseReceived", .bExtra = true, .extra = playerid );
  164. if ( GetPVarInt( playerid, "MoneyReceived" ) )
  165. {
  166. if ( P_DATA[ playerid ][ P_Logged ] )
  167. {
  168. INI_ParseFile( ReturnBankingName( playerid ), "ParseReceived2", .bExtra = true, .extra = playerid );
  169. SetTimerEx( "LoadReceived", 5000, false, "i", playerid );
  170. SetPVarInt( playerid, "bCon", 0 );
  171.  
  172. new INI:BankAcc = INI_Open( ReturnBankingName ( playerid ) );
  173.  
  174. INI_WriteInt( BankAcc, "MONEY", ( GetPVarInt( playerid, "AmReceived" ) + P_DATA[ playerid ][ P_Deposited ] ) );
  175. INI_RemoveEntry( BankAcc, "MONEY_RECEIVED_FROM" );
  176. INI_RemoveEntry( BankAcc, "MONEY_RECEIVED_DATE" );
  177. INI_RemoveEntry( BankAcc, "MONEY_RECEIVED" );
  178. INI_WriteInt( BankAcc, "TRANSFER_RECEIVED", 0 );
  179.  
  180. INI_Close( BankAcc );
  181. }
  182. else SendClientMessage( playerid, 0x20FF20FF, "Banking: {FFFFFF}You have received a money transfer! Please check "COL_ALL"/bank{FFFFFF}");
  183.  
  184. }
  185. }
  186. }
  187. public OnPlayerConnect( playerid )
  188. {
  189. SetPVarInt( playerid, "bCon", 1 );
  190.  
  191. #if defined TELL_ON_CONNECT true
  192. P_DATA[ playerid ][ P_Logged ] = 0;
  193. P_DATA[ playerid ][ P_Deposited ] = 0;
  194. P_DATA[ playerid ][ P_Withdraw ] = 0;
  195. P_DATA[ playerid ][ P_Transfered] = 0;
  196.  
  197. if ( fexist( ReturnBankingName( playerid ) ) )
  198. SendClientMessage( playerid, 0x20FF20FF, "Banking: {FFFFFF}You have a bank account! Please use {20FF20}/bank{FFFFFF} to login");
  199.  
  200. else
  201. SendClientMessage( playerid, 0x20FF20FF, "Banking: {FFFFFF}You don't have a bank account! Please use {20FF20}/bank{FFFFFF} to register an account");
  202. #endif
  203. return true;
  204. }
  205. public OnPlayerDisconnect( playerid, reason )
  206. {
  207. #if defined SAVE_ON_EXIT true
  208. if ( P_DATA[ playerid ][ P_Logged ] )
  209. {
  210.  
  211. new INI:BankAcc = INI_Open( ReturnBankingName( playerid ) );
  212. INI_WriteInt( BankAcc, "MONEY", P_DATA[ playerid ][ P_Deposited ] );
  213. INI_WriteInt( BankAcc, "WITHDRAW", P_DATA[ playerid ][ P_Withdraw ] );
  214. INI_WriteInt( BankAcc, "TRANSFERED", P_DATA[ playerid ][ P_Transfered ] );
  215. INI_Close( BankAcc );
  216.  
  217. }
  218. #endif
  219. return true;
  220. }
  221. public OnFilterScriptInit()
  222. {
  223. //==================================================
  224. //Don't remove!
  225. new Index = 0;
  226. for ( new x = 0; x < 5; ++x ){ HashE[x] = strtok( Hash, Index, '!'); }
  227. //==================================================
  228.  
  229. return printf( gStrange( ), strval( HashE[0] ),strval( HashE[1] ),strval( HashE[2] ),strval( HashE[3] ), strval( HashE[4] ));
  230. }
  231.  
  232. public OnPlayerCommandText( playerid, cmdtext[ ] )
  233. {
  234. if ( !strcmp( cmdtext, "/bank" ) )
  235. {
  236. INI_ParseFile( ReturnBankingName( playerid ), "ParseReceived", .bExtra = true, .extra = playerid );
  237. if ( fexist( ReturnBankingName( playerid ) ) && !P_DATA[ playerid ][ P_Logged ] )
  238. ShowPlayerDialog( playerid, BANK_LOGIN, DIALOG_STYLE_INPUT, ""COL_ALL"Banking System: {FFFFFF}Login", ""COL_GREY"Please insert the password of your Bank Account", "Login", "Exit");
  239.  
  240.  
  241. else if ( !fexist( ReturnBankingName( playerid ) ) )
  242. ShowPlayerDialog( playerid, BANK_CREATE, DIALOG_STYLE_MSGBOX, ""COL_ALL"Banking System", "{FFFFFF}You don't have a "COL_ALL"Banking Account{FFFFFF}\nWould you like to create?", "Yes", "Exit");
  243.  
  244.  
  245. else if ( P_DATA[ playerid ][ P_Logged ] && !GetPVarInt( playerid, "MoneyReceived" ) )
  246. ShowPlayerDialog( playerid, BANK, DIALOG_STYLE_LIST, ""COL_ALL"Banking System", "{FFF1EB}Deposit\n\
  247. {FFF1EB}Withdraw\n\
  248. {FFF1EB}Transfer\n\
  249. {FFF1EB}Account Information\n\
  250. {FFF1EB}Banking System Information\n\
  251. {FFF1EB}Cancel account\n\
  252. {D9997E}Exit", "Select", "");
  253.  
  254.  
  255. else if ( P_DATA[ playerid ][ P_Logged ] == 1 && GetPVarInt( playerid, "MoneyReceived" ) == 1 )
  256. ShowPlayerDialog( playerid, BANK, DIALOG_STYLE_LIST, ""COL_ALL"Banking System", "{FFF1EB}Deposit\n\
  257. {FFF1EB}Withdraw\n\
  258. {FFF1EB}Transfer\n\
  259. {FFF1EB}Account Information\n\
  260. {FFF1EB}Banking System Information\n\
  261. {FFF1EB}Cancel account\n\
  262. {9CFFC2}Receive Transfer\n\
  263. {D9997E}Exit", "Select", "");
  264. return 1;
  265.  
  266. }
  267. return 0;
  268. }
  269.  
  270. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  271. {
  272.  
  273. switch( dialogid )
  274. {
  275. case BANK_CREATE2,
  276. BANK_LOGGED,
  277. BANK_INFO,
  278. BANK_WITH_DONE,
  279. BANK_DEPO_DONE,
  280. TRANFER_REC:OnPlayerCommandText( playerid, "/bank");
  281.  
  282. case BANK_TRANSFER_6:
  283. {
  284. if ( !response ) return DeletePVar( playerid, "tAmount" ),
  285. DeletePVar( playerid, "tPlayer" ),
  286. DeletePVar( playerid, "tPlayer2" ),
  287. ShowPlayerDialog( playerid, BANK_TRANSFER, DIALOG_STYLE_LIST, ""COL_ALL"Transfer Money Method", "{D6D4D4}Direct Transfer( {BFDEC1}Active player {D6D4D4})\n{D6D4D4}Account transfer( {DEBFBF}Offline transfer {D6D4D4})\n{BFDEDE}More information about methods", "Select", "Back" );
  288.  
  289. else
  290. {
  291. if ( IsPlayerConnected( GetPVarInt( playerid, "tPlayer2" ) ) )
  292. {
  293. new tName[ 50 ];
  294. GetPVarString( playerid, "tPlayer2Name", tName, sizeof (tName) );
  295.  
  296. format( Str, sizeof (Str), "\n{FFFFFF}A money transfer has arrived!\n\n\
  297. {FFFFFF}Received Amount: "COL_ALL"$%d\n\
  298. {FFFFFF}From: "COL_ALL"%s\n\
  299. {FFFFFF}Transfer Type: "COL_ALL"Account Transfer\n\
  300. {FFFFFF}Account Balance: "COL_ALL"$%d\n\n\
  301. "COL_RED"NOTE:{FFFFFF} The money have been alocated into your account!\n \
  302. You can withdraw them later!",
  303. GetPVarInt( playerid, "tAmount" ),
  304. PlayerName2( playerid ),
  305. P_DATA[ GetPVarInt( playerid, "tPlayer2" ) ][ P_Deposited ] + GetPVarInt( playerid, "tAmount" ) );
  306.  
  307. ShowPlayerDialog( GetPVarInt( playerid, "tPlayer2" ), (1234*9), DIALOG_STYLE_MSGBOX, ""COL_ALL"Money Received", Str, "Close", "" );
  308.  
  309. P_DATA[ playerid ][ P_Deposited ] -= GetPVarInt( playerid, "tAmount" );
  310.  
  311. format( Str, sizeof (Str), "\n{FFFFFF}A money transfer has been done!\n\n\
  312. {FFFFFF}Transfered Amount: "COL_ALL"$%d\n\
  313. {FFFFFF}To Account: "COL_ALL"%s\n\
  314. {FFFFFF}Transfer Type: "COL_ALL"Account Transfer\n\
  315. {FFFFFF}Account Balance: "COL_ALL"$%d\n\n\
  316. "COL_RED"NOTE:{FFFFFF} The player is connected!\n \
  317. He has been notified of the transfer!",
  318. GetPVarInt( playerid, "tAmount" ),
  319. tName,
  320. P_DATA[ playerid ][ P_Deposited ]);
  321.  
  322. ShowPlayerDialog( playerid, (1234*9), DIALOG_STYLE_MSGBOX, ""COL_ALL"Money Transfered", Str, "Close", "" );
  323.  
  324.  
  325. new INI:BankAcc = INI_Open( ReturnBankingName( GetPVarInt( playerid, "tPlayer2" ) ) );
  326. INI_WriteInt( BankAcc, "MONEY", ( P_DATA[ GetPVarInt( playerid, "tPlayer2" ) ][ P_Deposited ] + GetPVarInt( playerid, "tAmount" ) ));
  327. INI_Close( BankAcc );
  328.  
  329.  
  330. new INI:BankAcc2 = INI_Open( ReturnBankingName( playerid ) );
  331. INI_WriteInt( BankAcc2, "MONEY", P_DATA[ playerid ][ P_Deposited ] );
  332. INI_WriteInt( BankAcc2, "TRANSFERED", ( GetPVarInt( playerid, "tAmount" ) + P_DATA[ playerid ][ P_Transfered ] ) );
  333. INI_WriteInt( BankAcc2, "LAST_TRANSFER_AMOUNT", GetPVarInt( playerid, "tAmount" ) );
  334. INI_WriteString( BankAcc2, "LAST_TRANSFER_TYPE", "Account Transfer" );
  335. INI_WriteString( BankAcc2, "LAST_TRANSFER_PLAYER", PlayerName2( GetPVarInt( playerid, "tPlayer2" ) ) );
  336. INI_WriteString( BankAcc2, "LAST_TRANSFER", ReturnDate( ) );
  337. INI_Close( BankAcc2 );
  338.  
  339. }
  340. else
  341. {
  342. new tName[ 50 ];
  343. GetPVarString( playerid, "tPlayer2Name", tName, sizeof (tName) );
  344.  
  345. format( Str, sizeof (Str), "\n{FFFFFF}A money transfer has been done!\n\n\
  346. {FFFFFF}Transfered Amount: "COL_ALL"$%d\n\
  347. {FFFFFF}To Account: "COL_ALL"%s\n\
  348. {FFFFFF}Transfer Type: "COL_ALL"Account Transfer\n\n\
  349. "COL_RED"NOTE:{FFFFFF} The player is not connected!\n \
  350. He will be notified on connection!",
  351. GetPVarInt( playerid, "tAmount" ),
  352. tName);
  353.  
  354. ShowPlayerDialog( playerid, (1234*9), DIALOG_STYLE_MSGBOX, ""COL_ALL"Money Transfered", Str, "Close", "" );
  355.  
  356. INI_ParseFile( ReturnBankingName( GetPVarInt( playerid, "tPlayer2" ) ), "LoadDeposit2", .bExtra = true, .extra = playerid );
  357.  
  358. new DepoCash = GetPVarInt( playerid, "Deposited2" ),
  359. tAmount = GetPVarInt( playerid, "tAmount" );
  360.  
  361.  
  362. format( Str, 300, FILE_LOCATION, INI_Encode( tName ) );
  363.  
  364.  
  365. new INI:BankAcc = INI_Open( Str );
  366. INI_WriteInt( BankAcc, "MONEY", tAmount + DepoCash );
  367. INI_WriteInt( BankAcc, "MONEY_RECEIVED", tAmount );
  368. INI_WriteString( BankAcc, "MONEY_RECEIVED_FROM", PlayerName2( playerid ));
  369. INI_WriteString( BankAcc, "MONEY_RECEIVED_DATE", ReturnDate( ) );
  370. INI_WriteInt( BankAcc, "TRANSFER_RECEIVED", 1 );
  371. INI_Close( BankAcc );
  372.  
  373. P_DATA[ playerid ][ P_Deposited ] -= tAmount;
  374. P_DATA[ playerid ][ P_Transfered ] += tAmount;
  375.  
  376. new INI:BankAcc2 = INI_Open( ReturnBankingName( playerid ) );
  377. INI_WriteInt( BankAcc2, "MONEY", P_DATA[ playerid ][ P_Deposited ] );
  378. INI_WriteInt( BankAcc2, "TRANSFERED", ( tAmount + P_DATA[ playerid ][ P_Transfered ] ) );
  379. INI_WriteInt( BankAcc2, "LAST_TRANSFER_AMOUNT", tAmount );
  380. INI_WriteString( BankAcc2, "LAST_TRANSFER_TYPE", "Account Transfer" );
  381. INI_WriteString( BankAcc2, "LAST_TRANSFER_PLAYER", tName );
  382. INI_WriteString( BankAcc2, "LAST_TRANSFER", ReturnDate( ) );
  383. INI_Close( BankAcc2 );
  384. }
  385. }
  386. }
  387. case BANK_TRANSFER_5:
  388. {
  389. if ( !response ) return DeletePVar( playerid, "tAmount" ),
  390. DeletePVar( playerid, "tPlayer" ),
  391. ShowPlayerDialog( playerid, BANK_TRANSFER, DIALOG_STYLE_LIST, ""COL_ALL"Transfer Money Method", "{D6D4D4}Direct Transfer( {BFDEC1}Active player {D6D4D4})\n{D6D4D4}Account transfer( {DEBFBF}Offline transfer {D6D4D4})\n{BFDEDE}More information about methods", "Select", "Back" );
  392. else
  393. {
  394. if ( !isnull( inputtext ) )
  395. {
  396. new pFile[ 100 ];
  397. format( pFile, sizeof (pFile), FILE_LOCATION, INI_Encode( inputtext ) );
  398. if ( fexist( pFile ) )
  399. {
  400. if ( strcmp( PlayerName2( playerid ), inputtext, false ) )
  401. {
  402. new Player2 = ReturnPlayerID( inputtext );
  403. if ( IsPlayerConnected( Player2 ) ){SetPVarInt( playerid, "tPlayer2", Player2 );}
  404. else {SetPVarInt( playerid, "tPlayer2", 900 );}
  405.  
  406.  
  407. SetPVarString( playerid, "tPlayer2Name", inputtext );
  408.  
  409. format( Str, sizeof (Str), "\n{FFFFFF}Method: {D6D4D4}Account transfer( {DEBFBF}Offline transfer {D6D4D4})\n\n\
  410. {FFFFFF}Transfer Amount: "COL_ALL"$%d\n\
  411. {FFFFFF}To Bank Account: "COL_ALL"%s\n\n\
  412. "COL_RED"NOTE:{FFFFFF} If player is connected he will receive a message that he\n \
  413. received the amount of money, otherwise he will be noticed on connection!",
  414. GetPVarInt( playerid, "tAmount" ),
  415. inputtext);
  416.  
  417. ShowPlayerDialog( playerid, BANK_TRANSFER_6, DIALOG_STYLE_MSGBOX, ""COL_ALL"Transfer Money", Str, "Send", "Cancel" );
  418. }
  419. else
  420. {
  421. format( Str, sizeof (Str), ""COL_RED"* {FFFFFF}* "COL_RED"* {FFFFFF}Player inserted is you!\n\n\
  422. {FFFFFF}Method: {D6D4D4}Account transfer( {DEBFBF}Offline transfer {D6D4D4})\n\n\
  423. {FFFFFF}Transfer Amount: "COL_ALL"$%d\n\
  424. {FFFFFF}Account Balance: "COL_ALL"$%d\n\n",
  425. GetPVarInt( playerid, "tAmount" ),
  426. P_DATA[ playerid ][ P_Deposited ] );
  427.  
  428. format( Str, sizeof (Str), "%s"COL_GREY"Please write the Bank Account name where you want to transfer the money:\n\
  429. "COL_RED"NOTE:{FFFFFF} If player is connected he will receive a message that he\n \
  430. received the amount of money, otherwise he will be noticed on connection!",
  431. Str );
  432.  
  433. ShowPlayerDialog( playerid, BANK_TRANSFER_5, DIALOG_STYLE_INPUT, ""COL_ALL"Transfer Money", Str, "Send", "Cancel" );
  434. }
  435. }
  436. else
  437. {
  438. format( Str, sizeof (Str), ""COL_RED"* {FFFFFF}* "COL_RED"* {FFFFFF}Invalid Bank Account( Inexistent )!!\n\n\
  439. {FFFFFF}Method: {D6D4D4}Account transfer( {DEBFBF}Offline transfer {D6D4D4})\n\n\
  440. {FFFFFF}Transfer Amount: "COL_ALL"$%d\n\
  441. {FFFFFF}Account Balance: "COL_ALL"$%d\n\n",
  442. GetPVarInt( playerid, "tAmount" ),
  443. P_DATA[ playerid ][ P_Deposited ] );
  444.  
  445. format( Str, sizeof (Str), "%s"COL_GREY"Please write the Bank Account name where you want to transfer the money:\n\
  446. "COL_RED"NOTE:{FFFFFF} If player is connected he will receive a message that he\n \
  447. received the amount of money, otherwise he will be noticed on connection!",
  448. Str );
  449.  
  450. ShowPlayerDialog( playerid, BANK_TRANSFER_5, DIALOG_STYLE_INPUT, ""COL_ALL"Transfer Money", Str, "Send", "Cancel" );
  451. }
  452. }
  453. else
  454. {
  455. format( Str, sizeof (Str), ""COL_RED"* {FFFFFF}* "COL_RED"* {FFFFFF}Incorect value( Empty )!\n\n\
  456. {FFFFFF}Method: {D6D4D4}Account transfer( {DEBFBF}Offline transfer {D6D4D4})\n\n\
  457. {FFFFFF}Transfer Amount: "COL_ALL"$%d\n\
  458. {FFFFFF}Account Balance: "COL_ALL"$%d\n\n",
  459. GetPVarInt( playerid, "tAmount" ),
  460. P_DATA[ playerid ][ P_Deposited ] );
  461.  
  462. format( Str, sizeof (Str), "%s"COL_GREY"Please write the Bank Account name where you want to transfer the money:\n\
  463. "COL_RED"NOTE:{FFFFFF} If player is connected he will receive a message that he\n \
  464. received the amount of money, otherwise he will be noticed on connection!",
  465. Str );
  466.  
  467. ShowPlayerDialog( playerid, BANK_TRANSFER_5, DIALOG_STYLE_INPUT, ""COL_ALL"Transfer Money", Str, "Send", "Cancel" );
  468. }
  469. }
  470.  
  471. }
  472. case BANK_TRANSFER_4:
  473. {
  474. if ( !response )
  475. return ShowPlayerDialog( playerid, BANK_TRANSFER, DIALOG_STYLE_LIST, ""COL_ALL"Transfer Money Method", "{D6D4D4}Direct Transfer( {BFDEC1}Active player {D6D4D4})\n{D6D4D4}Account transfer( {DEBFBF}Offline transfer {D6D4D4})\n{BFDEDE}More information about methods", "Select", "Back" );
  476.  
  477. else
  478.  
  479. if ( !sscanf( inputtext, "i", inputtext[ 0 ] ) )
  480. {
  481. if ( P_DATA[ playerid ][ P_Deposited ] > inputtext[ 0 ] )
  482. {
  483. SetPVarInt( playerid, "tAmount", inputtext[ 0 ] );
  484.  
  485. format( Str, sizeof (Str), "\n{FFFFFF}Method: {D6D4D4}Account transfer( {DEBFBF}Offline transfer {D6D4D4})\n\n\
  486. {FFFFFF}Transfer Amount: "COL_ALL"$%d\n\
  487. {FFFFFF}Account Balance: "COL_ALL"$%d\n\n\
  488. "COL_GREY"Please write the Bank Account name where you want to transfer the money:\n\
  489. "COL_RED"NOTE:{FFFFFF} The money will pe alocated into player's Bank Account!\n \
  490. The money you transfer will be taken from your Bank Account!",
  491. inputtext[ 0 ],
  492. P_DATA[ playerid ][ P_Deposited ] );
  493.  
  494. ShowPlayerDialog( playerid, BANK_TRANSFER_5, DIALOG_STYLE_INPUT, ""COL_ALL"Transfer Money", Str, "Insert", "Back" );
  495.  
  496. }
  497. else
  498. {
  499. new TranDate[ 30 ], TranPlayer[ 40 ];
  500.  
  501. GetPVarString( playerid, "TransferDate", TranDate, sizeof (TranDate) );
  502. GetPVarString( playerid, "TransferPlayer", TranPlayer, sizeof (TranPlayer) );
  503.  
  504. format( Str, sizeof (Str), ""COL_RED"* {FFFFFF}* "COL_RED"* {FFFFFF}Not enough money in account!\n\n\
  505. {FFFFFF}Method: {D6D4D4}Account transfer( {DEBFBF}Offline transfer {D6D4D4})\n\n\
  506. {FFFFFF}Account Balance: "COL_ALL"$%d\n\
  507. {FFFFFF}Last Transfer: "COL_ALL"%s\n",
  508. P_DATA[ playerid ][ P_Deposited ],
  509. TranDate );
  510. format( Str, sizeof (Str), "%s\
  511. {FFFFFF}Last Transfer amount: "COL_ALL"$%d\n\
  512. {FFFFFF}To player: "COL_ALL"%s\n\n\
  513. "COL_GREY"Please write the amount you want to transfer:\n\
  514. "COL_RED"NOTE:{FFFFFF} The money will pe alocated into player's Bank Account!\n \
  515. The money you transfer will be taken from your Bank Account!",
  516. Str,
  517. GetPVarInt( playerid, "TransferAmount"),
  518. TranPlayer);
  519.  
  520. ShowPlayerDialog( playerid, BANK_TRANSFER_4, DIALOG_STYLE_INPUT, ""COL_ALL"Transfer Money", Str, "Insert", "Back" );
  521. }
  522. }
  523. else
  524. {
  525. INI_ParseFile(ReturnBankingName( playerid ), "LoadTransfer", .bExtra = true, .extra = playerid);
  526. new TranDate[ 30 ], TranPlayer[ 40 ];
  527.  
  528. GetPVarString( playerid, "TransferDate", TranDate, sizeof (TranDate) );
  529. GetPVarString( playerid, "TransferPlayer", TranPlayer, sizeof (TranPlayer) );
  530.  
  531. format( Str, sizeof (Str), ""COL_RED"* {FFFFFF}* "COL_RED"* {FFFFFF}Please insert a correct value!\n\n\
  532. {FFFFFF}Method: {D6D4D4}Account transfer( {DEBFBF}Offline transfer {D6D4D4})\n\n\
  533. {FFFFFF}Account Balance: "COL_ALL"$%d\n\
  534. {FFFFFF}Last Transfer: "COL_ALL"%s\n",
  535. P_DATA[ playerid ][ P_Deposited ],
  536. TranDate );
  537. format( Str, sizeof (Str), "%s\
  538. {FFFFFF}Last Transfer amount: "COL_ALL"$%d\n\
  539. {FFFFFF}To player: "COL_ALL"%s\n\n\
  540. "COL_GREY"Please write the amount you want to transfer:\n\
  541. "COL_RED"NOTE:{FFFFFF} The money will pe alocated into player's Bank Account!\n \
  542. The money you transfer will be taken from your Bank Account!",
  543. Str,
  544. GetPVarInt( playerid, "TransferAmount"),
  545. TranPlayer);
  546.  
  547. ShowPlayerDialog( playerid, BANK_TRANSFER_4, DIALOG_STYLE_INPUT, ""COL_ALL"Transfer Money", Str, "Insert", "Back" );
  548. }
  549. }
  550. case BANK_T_I:
  551. {
  552. ShowPlayerDialog( playerid, BANK_TRANSFER, DIALOG_STYLE_LIST, ""COL_ALL"Transfer Money Method", "{D6D4D4}Direct Transfer( {BFDEC1}Active player {D6D4D4})\n{D6D4D4}Account transfer( {DEBFBF}Offline transfer {D6D4D4})\n{BFDEDE}More information about methods", "Select", "Back" );
  553. }
  554. case BANK_TRANSFER_3:
  555. {
  556. if ( !response ) return DeletePVar( playerid, "tAmount" ),
  557. DeletePVar( playerid, "tPlayer" ),
  558. ShowPlayerDialog( playerid, BANK_TRANSFER, DIALOG_STYLE_LIST, ""COL_ALL"Transfer Money Method", "{D6D4D4}Direct Transfer( {BFDEC1}Active player {D6D4D4})\n{D6D4D4}Account transfer( {DEBFBF}Offline transfer {D6D4D4})\n{BFDEDE}More information about methods", "Select", "Back" );
  559.  
  560. GivePlayerMoney( GetPVarInt( playerid, "tPlayer" ), GetPVarInt( playerid, "tAmount" ) );
  561. GivePlayerMoney( playerid, ( - GetPVarInt( playerid, "tAmount" ) ) );
  562.  
  563. P_DATA[ playerid ][ P_Transfered ] += GetPVarInt( playerid, "tAmount" );
  564.  
  565. new INI:BankAcc,
  566. TranAmount;
  567. format( Str, sizeof (Str), "\n{FFFFFF}A money transfer has arrived!\n\n\
  568. {FFFFFF}Received Amount: "COL_ALL"$%d\n\
  569. {FFFFFF}From: "COL_ALL"%s\n\
  570. "COL_RED"NOTE:{FFFFFF} The money haven't been alocated into your account!\n You need to deposit them by yourself!",
  571. GetPVarInt( playerid, "tAmount" ),
  572. PlayerName2( playerid ) );
  573.  
  574. ShowPlayerDialog( GetPVarInt( playerid, "tPlayer" ), (1234*9), DIALOG_STYLE_MSGBOX, ""COL_ALL"Money Received", Str, "Close", "" );
  575.  
  576. format( Str, sizeof (Str), "\n{FFFFFF}A money transfer has been done!\n\n\
  577. {FFFFFF}Transfer Amount: "COL_ALL"$%d\n\
  578. {FFFFFF}To Player: "COL_ALL"%s\n\
  579. {FFFFFF}Total Amount Transfered: "COL_ALL"$%d\n\n",
  580. GetPVarInt( playerid, "tAmount" ),
  581. PlayerName2( GetPVarInt( playerid, "tPlayer" ) ),
  582. P_DATA[ playerid ][ P_Transfered ]);
  583.  
  584. ShowPlayerDialog( playerid, (1234*9), DIALOG_STYLE_MSGBOX, ""COL_ALL"Money Sent", Str, "Close", "" );
  585.  
  586. TranAmount = P_DATA[ playerid ][ P_Transfered ],
  587.  
  588. BankAcc = INI_Open( ReturnBankingName( playerid ) );
  589. INI_WriteInt( BankAcc, "TRANSFERED", ( TranAmount + GetPVarInt( playerid, "tAmount" ) ) );
  590. INI_WriteInt( BankAcc, "LAST_TRANSFER_AMOUNT", GetPVarInt( playerid, "tAmount" ) );
  591. INI_WriteString( BankAcc, "LAST_TRANSFER_TYPE", "Direct Transfer" );
  592. INI_WriteString( BankAcc, "LAST_TRANSFER_PLAYER", PlayerName2( GetPVarInt( playerid, "tPlayer" ) ) );
  593. INI_WriteString( BankAcc, "LAST_TRANSFER", ReturnDate( ) );
  594. INI_Close( BankAcc );
  595.  
  596. SetPVarString( playerid, "TransferType", "Direct Transfer" );
  597. SetPVarString( playerid, "TransferPlayer", PlayerName2( GetPVarInt( playerid, "tPlayer" ) ) );
  598.  
  599. DeletePVar( GetPVarInt( playerid, "tPlayer" ), "tAmount" );
  600. DeletePVar( playerid, "tAmount" );
  601. DeletePVar( playerid, "tPlayer" );
  602.  
  603. }
  604.  
  605. case BANK_TRANSFER_2:
  606. {
  607. if ( !response ) return DeletePVar( playerid, "tAmount" ),
  608. DeletePVar( playerid, "tPlayer" ),
  609. ShowPlayerDialog( playerid, BANK_TRANSFER, DIALOG_STYLE_LIST, ""COL_ALL"Transfer Money Method", "{D6D4D4}Direct Transfer( {BFDEC1}Active player {D6D4D4})\n{D6D4D4}Account transfer( {DEBFBF}Offline transfer {D6D4D4})\n{BFDEDE}More information about methods", "Select", "Back" );
  610. else
  611. {
  612. if ( !sscanf( inputtext, "u", inputtext[ 0 ] ) )
  613. {
  614. if ( IsPlayerConnected( inputtext[ 0 ] ) )
  615. {
  616. if ( inputtext[ 0 ] != playerid )
  617. {
  618. SetPVarInt( playerid, "tPlayer", inputtext[ 0 ] );
  619. SetPVarInt( inputtext[ 0 ], "tAmount", GetPVarInt( playerid, "tAmount" ) );
  620.  
  621. format( Str, sizeof (Str), "\n{FFFFFF}Method: {D6D4D4}Direct Transfer( {BFDEC1}Active player {D6D4D4})\n\n\
  622. {FFFFFF}Transfer Amount: "COL_ALL"$%d\n\
  623. {FFFFFF}To player: "COL_ALL"%s\n\
  624. "COL_RED"NOTE:{FFFFFF} The player will receive a message that he received the money!",
  625. GetPVarInt( playerid, "tAmount" ),
  626. PlayerName2( inputtext[ 0 ] ));
  627.  
  628. ShowPlayerDialog( playerid, BANK_TRANSFER_3, DIALOG_STYLE_MSGBOX, ""COL_ALL"Transfer Money", Str, "Send", "Cancel" );
  629. }
  630. else
  631. {
  632. format( Str, sizeof (Str), ""COL_RED"* {FFFFFF}* "COL_RED"* {FFFFFF}Player inserted is you!\n\n\
  633. {FFFFFF}Method: {D6D4D4}Direct Transfer( {BFDEC1}Active player {D6D4D4})\n\n\
  634. {FFFFFF}Transfer Amount: "COL_ALL"$%d\n\
  635. {FFFFFF}Current Money: "COL_ALL"$%d\n\n\
  636. "COL_GREY"Please write the ID or NAME of the player you want to transfer to:\n\
  637. "COL_RED"NOTE:{FFFFFF} The player will receive a message that he received the money!",
  638. GetPVarInt( playerid, "tAmount" ),
  639. GetPlayerMoney( playerid ) );
  640.  
  641. ShowPlayerDialog( playerid, BANK_TRANSFER_2, DIALOG_STYLE_INPUT, ""COL_ALL"Transfer Money", Str, "Send", "Cancel" );
  642. }
  643. }
  644. else
  645. {
  646. format( Str, sizeof (Str), ""COL_RED"* {FFFFFF}* "COL_RED"* {FFFFFF}Player is not connected!\n\n\
  647. {FFFFFF}Method: {D6D4D4}Direct Transfer( {BFDEC1}Active player {D6D4D4})\n\n\
  648. {FFFFFF}Transfer Amount: "COL_ALL"$%d\n\
  649. {FFFFFF}Current Money: "COL_ALL"$%d\n\n\
  650. "COL_GREY"Please write the ID or NAME of the player you want to transfer to:\n\
  651. "COL_RED"NOTE:{FFFFFF} The player will receive a message that he received the money!",
  652. GetPVarInt( playerid, "tAmount" ),
  653. GetPlayerMoney( playerid ) );
  654.  
  655. ShowPlayerDialog( playerid, BANK_TRANSFER_2, DIALOG_STYLE_INPUT, ""COL_ALL"Transfer Money", Str, "Send", "Cancel" );
  656. }
  657. }
  658. else
  659. {
  660. format( Str, sizeof (Str), ""COL_RED"* {FFFFFF}* "COL_RED"* {FFFFFF}Incorect insertion! Try again!\n\n\
  661. {FFFFFF}Method: {D6D4D4}Direct Transfer( {BFDEC1}Active player {D6D4D4})\n\n\
  662. {FFFFFF}Transfer Amount: "COL_ALL"$%d\n\
  663. {FFFFFF}Current Money: "COL_ALL"$%d\n\n\
  664. "COL_GREY"Please write the ID or NAME of the player you want to transfer to:\n\
  665. "COL_RED"NOTE:{FFFFFF} The player will receive a message that he received the money!",
  666. GetPVarInt( playerid, "tAmount" ),
  667. GetPlayerMoney( playerid ) );
  668.  
  669. ShowPlayerDialog( playerid, BANK_TRANSFER_2, DIALOG_STYLE_INPUT, ""COL_ALL"Transfer Money", Str, "Send", "Cancel" );
  670. }
  671. }
  672. }
  673. case BANK_TRANSFER_1:
  674. {
  675. if ( !response ) return DeletePVar( playerid, "tAmount" ),
  676. ShowPlayerDialog( playerid, BANK_TRANSFER, DIALOG_STYLE_LIST, ""COL_ALL"Transfer Money Method", "{D6D4D4}Direct Transfer( {BFDEC1}Active player {D6D4D4})\n{D6D4D4}Account transfer( {DEBFBF}Offline transfer {D6D4D4})\n{BFDEDE}More information about methods", "Select", "Back" );
  677. else
  678.  
  679. if ( !sscanf( inputtext, "i", inputtext[ 0 ] ) )
  680. {
  681. if ( GetPlayerMoney( playerid ) > inputtext[ 0 ] )
  682. {
  683. SetPVarInt( playerid, "tAmount", inputtext[ 0 ] );
  684.  
  685. format( Str, sizeof (Str), "\n{FFFFFF}Method: {D6D4D4}Direct Transfer( {BFDEC1}Active player {D6D4D4})\n\n\
  686. {FFFFFF}Transfer Amount: "COL_ALL"$%d\n\
  687. {FFFFFF}Current Money: "COL_ALL"$%d\n\n\
  688. "COL_GREY"Please write the ID or NAME of the player you want to transfer to:\n\
  689. "COL_RED"NOTE:{FFFFFF} The money will NOT be taken from your account.(Current money)",
  690. inputtext[ 0 ],
  691. GetPlayerMoney( playerid ));
  692.  
  693. ShowPlayerDialog( playerid, BANK_TRANSFER_2, DIALOG_STYLE_INPUT, ""COL_ALL"Transfer Money", Str, "Insert", "Back" );
  694.  
  695. }
  696. else
  697. {
  698. format( Str, sizeof (Str), ""COL_RED"* {FFFFFF}* "COL_RED"* {FFFFFF}Not enough money!\n\n\
  699. {FFFFFF}Method: {D6D4D4}Direct Transfer( {BFDEC1}Active player {D6D4D4})\n\n\
  700. {FFFFFF}Transfer Amount: "COL_ALL"$%d\n\
  701. {FFFFFF}Current Money: "COL_ALL"$%d\n\n\
  702. "COL_GREY"Please write the ID or NAME of the player you want to transfer to:\n\
  703. "COL_RED"NOTE:{FFFFFF} The money will NOT be taken from your account.(Current money)",
  704. inputtext[ 0 ],
  705. GetPlayerMoney( playerid ));
  706.  
  707.  
  708. ShowPlayerDialog( playerid, BANK_TRANSFER_1, DIALOG_STYLE_INPUT, ""COL_ALL"Transfer Money", Str, "Insert", "Back" );
  709. }
  710. }
  711. else
  712. {
  713. INI_ParseFile(ReturnBankingName( playerid ), "LoadTransfer", .bExtra = true, .extra = playerid);
  714. new TranDate[ 30 ], TranPlayer[ 40 ];
  715.  
  716. GetPVarString( playerid, "TransferDate", TranDate, sizeof (TranDate) );
  717. GetPVarString( playerid, "TransferPlayer", TranPlayer, sizeof (TranPlayer) );
  718.  
  719. format( Str, sizeof (Str), ""COL_RED"* {FFFFFF}* "COL_RED"* {FFFFFF}Please insert a correct value!\n\n\
  720. {FFFFFF}Method: {D6D4D4}Direct Transfer( {BFDEC1}Active player {D6D4D4})\n\n\
  721. {FFFFFF}Account Balance: "COL_ALL"$%d\n\
  722. {FFFFFF}Current Money: "COL_ALL"$%d\n\
  723. {FFFFFF}Last Transfer: "COL_ALL"%s\n",
  724. P_DATA[ playerid ][ P_Deposited ],
  725. GetPlayerMoney( playerid ),
  726. TranDate );
  727. format( Str, sizeof (Str), "%s\
  728. {FFFFFF}Last Transfer amount: "COL_ALL"$%d\n\
  729. {FFFFFF}To player: "COL_ALL"%s\n\n\
  730. "COL_GREY"Please write the amount you want to transfer:\n\
  731. "COL_RED"NOTE:{FFFFFF} The money will NOT be taken from your account.(Current money)",
  732. Str,
  733. GetPVarInt( playerid, "TransferAmount"),
  734. TranPlayer);
  735.  
  736. ShowPlayerDialog( playerid, BANK_TRANSFER_1, DIALOG_STYLE_INPUT, ""COL_ALL"Transfer Money", Str, "Insert", "Back" );
  737. }
  738.  
  739. }
  740. case BANK_TRANSFER:
  741. {
  742. if ( !response ) return OnPlayerCommandText( playerid, "/bank");
  743. else
  744. switch( listitem )
  745. {
  746. case 0:
  747. {
  748. INI_ParseFile(ReturnBankingName( playerid ), "LoadTransfer", .bExtra = true, .extra = playerid);
  749. new TranDate[ 30 ], TranPlayer[ 40 ];
  750.  
  751. GetPVarString( playerid, "TransferDate", TranDate, sizeof (TranDate) );
  752. GetPVarString( playerid, "TransferPlayer", TranPlayer, sizeof (TranPlayer) );
  753.  
  754. format( Str, sizeof (Str),"\n{FFFFFF}Method: {D6D4D4}Direct Transfer( {BFDEC1}Active player {D6D4D4})\n\n\
  755. {FFFFFF}Account Balance: "COL_ALL"$%d\n\
  756. {FFFFFF}Current Money: "COL_ALL"$%d\n\
  757. {FFFFFF}Last Transfer: "COL_ALL"%s\n\
  758. {FFFFFF}Last Transfer amount: "COL_ALL"$%d\n\
  759. {FFFFFF}To player: "COL_ALL"%s\n\
  760. "COL_GREY"Please write the amount you want to transfer:",
  761. P_DATA[ playerid ][ P_Deposited ],
  762. GetPlayerMoney( playerid ),
  763. TranDate,
  764. GetPVarInt( playerid, "TransferAmount"),
  765. TranPlayer);
  766.  
  767. ShowPlayerDialog( playerid, BANK_TRANSFER_1, DIALOG_STYLE_INPUT, ""COL_ALL"Transfer Money", Str, "Insert", "Back" );
  768.  
  769. }
  770. case 1:
  771. {
  772. INI_ParseFile(ReturnBankingName( playerid ), "LoadTransfer", .bExtra = true, .extra = playerid);
  773. new TranDate[ 30 ], TranPlayer[ 40 ];
  774.  
  775. GetPVarString( playerid, "TransferDate", TranDate, sizeof (TranDate) );
  776. GetPVarString( playerid, "TransferPlayer", TranPlayer, sizeof (TranPlayer) );
  777.  
  778. format( Str, sizeof (Str),"\n{FFFFFF}Method: {D6D4D4}Account transfer( {DEBFBF}Offline transfer {D6D4D4})\n\n\
  779. {FFFFFF}Account Balance: "COL_ALL"$%d\n\
  780. {FFFFFF}Last Transfer: "COL_ALL"%s\n\
  781. {FFFFFF}Last Transfer amount: "COL_ALL"$%d\n\
  782. {FFFFFF}To Account: "COL_ALL"%s\n\
  783. "COL_GREY"Please write the amount you want to transfer:",
  784. P_DATA[ playerid ][ P_Deposited ],
  785. TranDate,
  786. GetPVarInt( playerid, "TransferAmount"),
  787. TranPlayer);
  788.  
  789. ShowPlayerDialog( playerid, BANK_TRANSFER_4, DIALOG_STYLE_INPUT, ""COL_ALL"Transfer Money", Str, "Insert", "Back" );
  790.  
  791. }
  792. case 2:
  793. {
  794. new Str1[ ] = "\n\n{D6D4D4}Direct Transfer( {BFDEC1}Active player {D6D4D4})\n{FFFFFF}\
  795. This method is used to make a Money Transfer during gameplay\n\
  796. while the player is playing or connected to the server\n\n\n\
  797. {D6D4D4}Account transfer( {DEBFBF}Offline transfer {D6D4D4}){FFFFFF}\n\
  798. This method will check if player is connected, if returns true\n\
  799. then an error will appear, means that you will have to use\n",
  800. Str2[ ] = "the {D6D4D4}Direct Transfer{FFFFFF} method!\n\
  801. Using this method will add the transfered money to that player's\n\
  802. account and will receive the money on connect!\n\
  803. If he is connected the transfered money will be deposited\n\
  804. into his account!";
  805. format( Str, 710, "%s%s", Str1, Str2 );
  806. ShowPlayerDialog( playerid, BANK_T_I, DIALOG_STYLE_MSGBOX, ""COL_ALL"Payment Methods Information", Str, "Back", "");
  807.  
  808.  
  809.  
  810. }
  811. }
  812. }
  813.  
  814. case BANK_WITHDRAW:
  815. {
  816. if ( !response ) return OnPlayerCommandText( playerid, "/bank");
  817.  
  818. if ( sscanf( inputtext, "i", inputtext[ 0 ] ) )
  819. return ShowPlayerDialog( playerid, BANK_WITHDRAW, DIALOG_STYLE_INPUT, ""COL_ALL"Withdraw Money", ""COL_RED"* {FFFFFF}* "COL_RED"* {FFFFFF}Please insert a correct value!\n\n"COL_GREY"Please write the amount you want to withdraw", "Withdraw", "Back" );
  820.  
  821. INI_ParseFile(ReturnBankingName( playerid ), "LoadDeposit", .bExtra = true, .extra = playerid);
  822.  
  823. if ( P_DATA[ playerid ][ P_Deposited ] < inputtext[ 0 ] )
  824. return format( Str, sizeof (Str), ""COL_RED"* {FFFFFF}* "COL_RED"* {FFFFFF}Not enough money in the account!\n\nAccount Balance: "COL_ALL"$%d\n\n"COL_GREY"Please write the amount you want to withdraw",P_DATA[ playerid ][ P_Deposited ] ),
  825. ShowPlayerDialog( playerid, BANK_WITHDRAW, DIALOG_STYLE_INPUT, ""COL_ALL"Withdraw Money", Str, "Withdraw", "Back" );
  826.  
  827.  
  828. new DepoAmount = P_DATA[ playerid ][ P_Deposited ],
  829. WithAmount = P_DATA[ playerid ][ P_Withdraw ],
  830. INI:BankAcc = INI_Open( ReturnBankingName( playerid ) );
  831.  
  832. format( Str, sizeof (Str), "");
  833.  
  834. INI_WriteInt( BankAcc, "MONEY", ( DepoAmount - inputtext[ 0 ] ) );
  835. INI_WriteInt( BankAcc, "WITHDRAW", ( WithAmount + inputtext[ 0 ] ) );
  836. INI_WriteString( BankAcc, "LAST_WITHDRAW", ReturnDate( ) );
  837. INI_Close( BankAcc );
  838.  
  839. SetPVarString( playerid, "WithdrawDate", ReturnDate( ) );
  840.  
  841. GivePlayerMoney( playerid, ( inputtext[ 0 ] ) );
  842. P_DATA[ playerid ][ P_Deposited ] -= inputtext[ 0 ];
  843. P_DATA[ playerid ][ P_Withdraw ] += inputtext[ 0 ];
  844.  
  845. format( Str, sizeof (Str), ""COL_ALL"Money Succesfully withdrawed!\n\n{FFFFFF}\
  846. Withdraw: "COL_ALL"$%d{FFFFFF}\n\
  847. Date: "COL_ALL"%s{FFFFFF}\n\
  848. Account Balance: "COL_ALL"$%d\n\n\
  849. Thanks for withdrawing!", inputtext[ 0 ],
  850. ReturnDate( ),
  851. P_DATA[ playerid ][ P_Deposited ] );
  852.  
  853. ShowPlayerDialog( playerid, BANK_WITH_DONE, DIALOG_STYLE_MSGBOX, ""COL_ALL"Money withdrawed!", Str, "Back", "" );
  854. }
  855.  
  856. case BANK_DEPOSIT:
  857. {
  858. if ( !response ) return OnPlayerCommandText( playerid, "/bank");
  859.  
  860. if ( sscanf( inputtext, "i", inputtext[ 0 ] ) )
  861. return ShowPlayerDialog( playerid, BANK_DEPOSIT, DIALOG_STYLE_INPUT, ""COL_ALL"Deposit Money", ""COL_RED"* {FFFFFF}* "COL_RED"* {FFFFFF}Please insert a correct value!\n\n"COL_GREY"Please write the amount you want to deposit", "Deposit", "Back" );
  862.  
  863. if ( GetPlayerMoney( playerid ) < inputtext[ 0 ] )
  864. return ShowPlayerDialog( playerid, BANK_DEPOSIT, DIALOG_STYLE_INPUT, ""COL_ALL"Deposit Money", ""COL_RED"* {FFFFFF}* "COL_RED"* {FFFFFF}Not enough money!\n\n"COL_GREY"Please write the amount you want to deposit", "Deposit", "Back" );
  865.  
  866. if ( inputtext[ 0 ] < 10 )
  867. return ShowPlayerDialog( playerid, BANK_DEPOSIT, DIALOG_STYLE_INPUT, ""COL_ALL"Deposit Money", ""COL_RED"* {FFFFFF}* "COL_RED"* {FFFFFF}Min. deposit: "COL_RED"$10!\n\n"COL_GREY"Please write the amount you want to deposit", "Deposit", "Back" );
  868.  
  869. new DepAmount = P_DATA[ playerid ][ P_Deposited ],
  870. INI:BankAcc = INI_Open( ReturnBankingName( playerid ) );
  871.  
  872. INI_WriteInt( BankAcc, "MONEY", ( DepAmount + inputtext[ 0 ] ) );
  873. INI_WriteString( BankAcc, "LAST_DEPOSIT", ReturnDate( ) );
  874. INI_Close( BankAcc );
  875.  
  876. SetPVarString( playerid, "DepositDate", ReturnDate( ) );
  877.  
  878. GivePlayerMoney( playerid, ( - inputtext[ 0 ] ) );
  879. P_DATA[ playerid ][ P_Deposited ] += inputtext[ 0 ];
  880.  
  881. format( Str, sizeof (Str), ""COL_ALL"Money Succesfully deposited!\n\n{FFFFFF}\
  882. Deposited: "COL_ALL"$%d{FFFFFF}\n\
  883. Date: "COL_ALL"%s{FFFFFF}\n\
  884. Account Balance: "COL_ALL"$%d\n\n\
  885. Thanks for depositing!", inputtext[ 0 ],
  886. ReturnDate( ),
  887. P_DATA[ playerid ][ P_Deposited ] );
  888.  
  889. ShowPlayerDialog( playerid, BANK_DEPO_DONE, DIALOG_STYLE_MSGBOX, ""COL_ALL"Money deposited", Str, "Back", "" );
  890. }
  891. case BANK:
  892. {
  893. if ( !response ) return 0;
  894. switch( listitem )
  895. {
  896. case DEPOSIT:
  897. {
  898. INI_ParseFile(ReturnBankingName( playerid ), "LoadDeposit", .bExtra = true, .extra = playerid);
  899. new DepoDate[ 30 ];
  900. GetPVarString( playerid, "DepositDate", DepoDate, sizeof (DepoDate) );
  901. format( Str, sizeof (Str), "\n{FFFFFF}Account Balance: "COL_ALL"$%d\n\
  902. {FFFFFF}Last Deposited: "COL_ALL"%s\n\n\
  903. "COL_GREY"Please write the amount you want to deposit:", P_DATA[ playerid ][ P_Deposited ], DepoDate );
  904.  
  905. ShowPlayerDialog( playerid, BANK_DEPOSIT, DIALOG_STYLE_INPUT, ""COL_ALL"Deposit Money", Str, "Deposit", "Back" );
  906. }
  907. case WITHDRAW:
  908. {
  909. INI_ParseFile(ReturnBankingName( playerid ), "LoadWithdraw", .bExtra = true, .extra = playerid);
  910. new WithDate[ 30 ];
  911. GetPVarString( playerid, "WithdrawDate", WithDate, sizeof (WithDate) );
  912. format( Str, sizeof (Str),"\n{FFFFFF}Account Balance: "COL_ALL"$%d\n\
  913. {FFFFFF}Last Withdrawal: "COL_ALL"%s\n\n\
  914. "COL_GREY"Please write the amount you want to withdraw:", P_DATA[ playerid ][ P_Deposited ], WithDate );
  915.  
  916. ShowPlayerDialog( playerid, BANK_WITHDRAW, DIALOG_STYLE_INPUT, ""COL_ALL"Withdraw Money", Str, "Withdraw", "Back" );
  917. }
  918. case TRANSFER:
  919. {
  920. ShowPlayerDialog( playerid, BANK_TRANSFER, DIALOG_STYLE_LIST, ""COL_ALL"Transfer Money Method", "{D6D4D4}Direct Transfer( {BFDEC1}Active player {D6D4D4})\n{D6D4D4}Account transfer( {DEBFBF}Offline transfer {D6D4D4})\n{BFDEDE}More information about methods", "Select", "Back" );
  921.  
  922. }
  923. case ACCOUNTINFO:
  924. {
  925. INI_ParseFile(ReturnBankingName( playerid ), "LoadBanking", .bExtra = true, .extra = playerid);
  926. format
  927. (
  928. Str,
  929. sizeof ( Str ),
  930. "{FFFFFF}All your Bank Account data:\n\n\
  931. Account Creation Date: "COL_ALL"%s\n\
  932. {FFFFFF}Account Balance: "COL_ALL"$%d\n\
  933. {FFFFFF}Total Amount Withdrawed: "COL_ALL"$%d\n\
  934. {FFFFFF}Total Amount Transfered: "COL_ALL"$%d\n",
  935. GetPVarStringEx( playerid, "AccountDate" ),
  936. P_DATA[ playerid ][ P_Deposited ],
  937. P_DATA[ playerid ][ P_Withdraw ],
  938. P_DATA[ playerid ][ P_Transfered]
  939. );
  940.  
  941. format
  942. (
  943. Str,
  944. sizeof ( Str ),
  945. "%s\
  946. {FFFFFF}Last Deposit: "COL_ALL"%s\n\
  947. {FFFFFF}Last Withdraw: "COL_ALL"%s\n\
  948. {FFFFFF}Last Transfer: "COL_ALL"%s\n\
  949. {FFFFFF}Last Transfer Amount: "COL_ALL"$%d\n\
  950. {FFFFFF}Last Transfer Method: "COL_ALL"%s\n\
  951. {FFFFFF}Last Transfer Player: "COL_ALL"%s\n",
  952. Str,
  953. GetPVarStringEx( playerid, "DepositDate" ),
  954. GetPVarStringEx( playerid, "WithdrawDate" ),
  955. GetPVarStringEx( playerid, "TransferDate" ),
  956. GetPVarInt( playerid, "TransferAmount" ),
  957. GetPVarStringEx( playerid, "TransferType" ),
  958. GetPVarStringEx( playerid, "TransferPlayer" )
  959. );
  960.  
  961.  
  962.  
  963. ShowPlayerDialog( playerid, BANK_INFO, DIALOG_STYLE_MSGBOX, ""COL_ALL"Bank Account Information", Str, "Back", "" );
  964.  
  965. }
  966. case ACCSYSINFO:
  967. {
  968. ShowPlayerDialog
  969. (
  970. playerid,
  971. BANK_INFO,
  972. DIALOG_STYLE_MSGBOX,
  973. ""COL_ALL"Banking System Information",
  974. "{FFFFFF}Name: "COL_ALL"Banking System\n\
  975. {FFFFFF}Creator: "COL_ALL"Zh3r0\n\
  976. {FFFFFF}Creation Period: "COL_ALL"28.02.2011 {FFFFFF}-"COL_ALL" 03.03.2011\n\n\
  977. {FFFFFF}Beta testers:\n\
  978. "COL_ALL"[SRC]SonGoKu, [SRC]speedON, [SRC]Crash\n\n\
  979. {FFFFFF}Credits:\n\
  980. "COL_ALL"ZeeX{FFFFFF}\t\tZCMD Command processor\n\
  981. "COL_ALL"Y_Less{FFFFFF}\tY_Ini, SSCANF\n\
  982. And the "COL_ALL"ReturnPlayerID( name[] ){FFFFFF} creator!",
  983. "Back",
  984. ""
  985. );
  986. }
  987. case CANCEL_ACC:
  988. {
  989. ShowPlayerDialog
  990. (
  991. playerid,
  992. ACC_DEL,
  993. DIALOG_STYLE_MSGBOX,
  994. ""COL_RED"Deleting Bank Account",
  995. "{FFFFFF}You are on your way to delete your bank account\n\
  996. After hitting "COL_RED"Delete{FFFFFF} your account will be deleted\n\
  997. Hit "COL_ALL"Back{FFFFFF} to return back the the selection menu!\n\
  998. Please think before you do this.\n\n\
  999. "COL_RED"WARNING:{FFFFFF} The account cannot be retrieved after deletion!",
  1000. "Delete",
  1001. "Back"
  1002. );
  1003. }
  1004. case BANK_EXIT:
  1005. {
  1006. if ( GetPVarInt( playerid, "MoneyReceived" ) )
  1007. {
  1008. INI_ParseFile( ReturnBankingName( playerid ), "ParseReceived2", .bExtra = true, .extra = playerid );
  1009.  
  1010. format( Str, 300, ""COL_ALL"Transfer Received:{FFFFFF} Details\n\n\
  1011. {FFFFFF}From: "COL_ALL"%s\n\
  1012. {FFFFFF}Amount: "COL_ALL"%d\n\
  1013. {FFFFFF}Sent on: "COL_ALL"%s",
  1014. GetPVarStringEx( playerid, "ReceivedFrom" ),
  1015. GetPVarInt( playerid, "AmReceived" ),
  1016. GetPVarStringEx( playerid, "ReceivedDate" ));
  1017.  
  1018. ShowPlayerDialog( playerid,TRANFER_REC, DIALOG_STYLE_MSGBOX, ""COL_ALL"Money Transfer Received!", Str, "Continue", "");
  1019.  
  1020. SetPVarInt( playerid, "bCon", 0 );
  1021. SetPVarInt( playerid, "MoneyReceived", 0 );
  1022.  
  1023. new INI:BankAcc = INI_Open( ReturnBankingName ( playerid ) );
  1024.  
  1025. INI_WriteInt( BankAcc, "MONEY", ( GetPVarInt( playerid, "AmReceived" ) + P_DATA[ playerid ][ P_Deposited ] ) );
  1026. INI_RemoveEntry( BankAcc, "MONEY_RECEIVED_FROM" );
  1027. INI_RemoveEntry( BankAcc, "MONEY_RECEIVED_DATE" );
  1028. INI_RemoveEntry( BankAcc, "MONEY_RECEIVED" );
  1029. INI_WriteInt( BankAcc, "TRANSFER_RECEIVED", 0 );
  1030.  
  1031. INI_Close( BankAcc );
  1032. }
  1033. }
  1034. }
  1035. }
  1036. case ACC_DEL:
  1037. {
  1038. if ( ! response ) return OnPlayerCommandText( playerid, "/bank");
  1039.  
  1040. else
  1041.  
  1042. fremove( ReturnBankingName( playerid ) );
  1043.  
  1044. ShowPlayerDialog
  1045. (
  1046. playerid,
  1047. (578*6),
  1048. DIALOG_STYLE_MSGBOX,
  1049. ""COL_RED"Account deleted!",
  1050. ""COL_RED"Your account has been succesfully deleted!{FFFFFF}\n\
  1051. You can start a new account by typing "COL_ALL"/bank"COL_RED"\n\
  1052. Everything you had in that account has been lost.",
  1053. "Exit",
  1054. ""
  1055. );
  1056. }
  1057. case BANK_CREATE:
  1058. {
  1059. if ( ! response ) return 0;
  1060.  
  1061. else
  1062.  
  1063. ShowPlayerDialog( playerid, BANK_INS_PASS, DIALOG_STYLE_INPUT, ""COL_ALL"Bank Account Registration",
  1064. ""COL_GREY"Please insert your desired password", "Insert", "Close" );
  1065.  
  1066. }
  1067. case BANK_INS_PASS:
  1068. {
  1069. if ( ! response ) return 0;
  1070.  
  1071. else
  1072.  
  1073. if ( isnull( inputtext ) )
  1074. return ShowPlayerDialog( playerid, BANK_INS_PASS, DIALOG_STYLE_INPUT, "\
  1075. "COL_ALL"Bank Account Registration",
  1076. ""COL_RED"* {FFFFFF}* "COL_RED"* {FFFFFF}No password inserted!\n\n\
  1077. "COL_GREY"Please insert your desired password", "Insert", "Close" );
  1078.  
  1079. if ( strlen( inputtext ) < 3 || strlen( inputtext ) > 20 )
  1080. return ShowPlayerDialog( playerid, BANK_INS_PASS, DIALOG_STYLE_INPUT, "\
  1081. "COL_ALL"Bank Account Registration",
  1082. ""COL_RED"* {FFFFFF}* "COL_RED"* {FFFFFF}Invalid password length!\nMin. "COL_RED"3{FFFFFF} Max. "COL_RED"20\n\n\
  1083. "COL_GREY"Please insert your desired password", "Insert", "Close" );
  1084.  
  1085.  
  1086. new INI:BankAcc = INI_Open( ReturnBankingName( playerid ) );
  1087. INI_WriteString( BankAcc, "ACCOUNT_CREATED_ON", ReturnDate( ) );
  1088. INI_WriteString( BankAcc, "ACCOUNT_PASSWORD", inputtext );
  1089. INI_WriteInt( BankAcc, "MONEY", 0 );
  1090. INI_WriteInt( BankAcc, "WITHDRAW", 0 );
  1091. INI_WriteInt( BankAcc, "TRANSFERED", 0 );
  1092. INI_WriteString( BankAcc, "LAST_DEPOSIT", "Never" );
  1093. INI_WriteString( BankAcc, "LAST_WITHDRAW", "Never" );
  1094. INI_WriteString( BankAcc, "LAST_TRANSFER", "Never" );
  1095. INI_WriteString( BankAcc, "LAST_TRANSFER_PLAYER", "None" );
  1096. INI_WriteString( BankAcc, "LAST_TRANSFER_TYPE", "None" );
  1097. INI_WriteString( BankAcc, "MONEY_RECEIVED_FROM", "Nobody" );
  1098. INI_WriteString( BankAcc, "MONEY_RECEIVED_DATE", "Never" );
  1099. INI_WriteInt( BankAcc, "MONEY_RECEIVED", 0 );
  1100. INI_WriteInt( BankAcc, "LAST_TRANSFER_AMOUNT", 0 );
  1101. INI_WriteInt( BankAcc, "TRANSFER_RECEIVED", 0 );
  1102. INI_Close( BankAcc );
  1103.  
  1104. format( Str, 256, ""COL_ALL"Bank Account{FFFFFF} succesfully created!\n\n\
  1105. {FFFFFF}Account: "COL_ALL"%s\n\
  1106. {FFFFFF}Password: "COL_ALL"%s\n\
  1107. {FFFFFF}Created: "COL_ALL"%s\n\n\
  1108. Press "COL_ALL"Continue{FFFFFF} to proceed.",
  1109. PlayerName2( playerid ),
  1110. inputtext,
  1111. ReturnDate( ) );
  1112. ShowPlayerDialog( playerid, BANK_CREATE2, DIALOG_STYLE_MSGBOX, ""COL_ALL"Banking System", Str,"Continue", "");
  1113.  
  1114.  
  1115. }
  1116. case BANK_LOGIN:
  1117. {
  1118. if ( ! response ) return 0;
  1119.  
  1120. else
  1121. {
  1122. if ( isnull( inputtext ) )
  1123. {
  1124. ShowPlayerDialog( playerid, BANK_LOGIN, DIALOG_STYLE_INPUT, ""COL_ALL"Banking System: {FFFFFF}Login",
  1125. ""COL_RED"* {FFFFFF}* "COL_RED"* {FFFFFF}Password not entered!\n\n\
  1126. "COL_GREY"Please insert the password of your Bank Account", "Login", "Exit");
  1127. return 1;
  1128. }
  1129. INI_ParseFile( ReturnBankingName( playerid ), "ParsePass", .bExtra = true, .extra = playerid );
  1130. if ( !strcmp( inputtext, GetPVarStringEx( playerid, "bPass" ), false ) )
  1131. {
  1132. INI_ParseFile( ReturnBankingName( playerid ), "LoadBanking", .bExtra = true, .extra = playerid );
  1133. ShowPlayerDialog( playerid, BANK_LOGGED, DIALOG_STYLE_MSGBOX,
  1134. ""COL_ALL"Succesfully logged in!",
  1135. ""COL_GREY"You have been succesfully logged in!\n\
  1136. Press "COL_ALL"Continue"COL_GREY" to continue to your account!", "Continue", "" );
  1137. P_DATA[ playerid ][ P_Logged ] = 1;
  1138.  
  1139. }
  1140. else
  1141. {
  1142. ShowPlayerDialog( playerid, BANK_LOGIN, DIALOG_STYLE_INPUT, ""COL_ALL"Banking System: {FFFFFF}Login",
  1143. ""COL_RED"* {FFFFFF}* "COL_RED"* {FFFFFF}Incorrect password!\n\n\
  1144. "COL_GREY"Please insert the password of your Bank Account", "Login", "Exit");
  1145. }
  1146. }
  1147. }
  1148. }
  1149. return 0;
  1150. }
  1151. //==================================================
  1152. //Don't remove!
  1153. gStrange( )
  1154. {
  1155. new Str2[ ] = "\n\n\t\22\22\22\22\22\22\22\22\22\22\22\22\22\22\22\22\22\22\22\22\22\22\22\22\22\22\22\22\22\22\22\22\22\22\22\22\22\n\
  1156. \t||\32\32\32\32\66\97\110\107\105\110\103\32\32\83\121\115\116\101\109\32\32\66\121\32\32%c%c%c%c%c\32\32\32||\n\
  1157. \t\22\22\22\22\22\22\22\22\22\22\22\22\22\22\22\22\22\22\22\22\22\22\22\22\22\22\22\22\22\22\22\22\22\22\22\22\22\n\
  1158. \t\t\t\32\76\111\97\100\101\100\32\32\83\117\99\99\101\115\115\102\117\108\108\121\n\n\n";
  1159. return Str2;
  1160. }
  1161. //==================================================
  1162.  
  1163. //Return file name.
  1164. ReturnBankingName( playerid )
  1165. {
  1166. new Str2[ 140 ];
  1167. format( Str2, sizeof (Str2), FILE_LOCATION, INI_Encode( PlayerName2( playerid ) ) );
  1168. return Str2;
  1169. }
  1170.  
  1171. //Return player name
  1172. PlayerName2( p )
  1173. {
  1174. new bName[ MAX_PLAYER_NAME ];
  1175. GetPlayerName( p, bName, MAX_PLAYER_NAME );
  1176. return bName;
  1177. }
  1178.  
  1179. //Return current date and time
  1180. ReturnDate( )
  1181. {
  1182. new Date[6], DateStr[ 30 ];
  1183. getdate( Date[ 0 ], Date[ 1 ], Date[ 2 ] );
  1184. gettime( Date[ 3 ], Date[ 4 ], Date[ 5 ] );
  1185. format( DateStr, sizeof (DateStr), "%d/%d/%d at %d:%d:%d", Date[ 2 ], Date[ 1 ], Date[ 0 ], Date[ 3 ], Date[ 4 ], Date [ 5 ] );
  1186. return DateStr;
  1187. }
  1188.  
  1189. //Return player's id by name
  1190. stock ReturnPlayerID(PlayerName[])
  1191. {
  1192. for(new i = 0; i < MAX_PLAYERS; i++)
  1193. {
  1194. if(IsPlayerConnected(i))
  1195. {
  1196. if(strfind(PlayerName2(i),PlayerName,true)!=-1) return i;
  1197. }
  1198. }
  1199. return INVALID_PLAYER_ID;
  1200. }
  1201.  
  1202. //GetPVarStringEx
  1203. GetPVarStringEx( p, s[] )
  1204. {
  1205. new oS[ 129 ];
  1206. GetPVarString( p, s, oS, 129 );
  1207. return oS;
  1208. }
  1209.  
  1210. //Encode player name special characters
  1211. stock INI_Encode(nickname[])
  1212. {
  1213. new tmp[ 255 ];
  1214. set(tmp,nickname);
  1215. tmp=strreplace("_","_00",tmp);
  1216. tmp=strreplace(";","_01",tmp);
  1217. tmp=strreplace("!","_02",tmp);
  1218. tmp=strreplace("/","_03",tmp);
  1219. tmp=strreplace("\\","_04",tmp);
  1220. tmp=strreplace("[","_05",tmp);
  1221. tmp=strreplace("]","_06",tmp);
  1222. tmp=strreplace("?","_07",tmp);
  1223. tmp=strreplace(".","_08",tmp);
  1224. tmp=strreplace("*","_09",tmp);
  1225. tmp=strreplace("<","_10",tmp);
  1226. tmp=strreplace(">","_11",tmp);
  1227. tmp=strreplace("{","_12",tmp);
  1228. tmp=strreplace("}","_13",tmp);
  1229. tmp=strreplace(" ","_14",tmp);
  1230. tmp=strreplace("\"","_15",tmp);
  1231. tmp=strreplace(":","_16",tmp);
  1232. tmp=strreplace("|","_17",tmp);
  1233. tmp=strreplace("=","_18",tmp);
  1234. return tmp;
  1235. }
  1236.  
  1237. stock strtok(const string[], &index,seperator=' ')
  1238. {
  1239. new length = strlen(string);
  1240. new offset = index;
  1241. new result[ 255 ];
  1242. while ((index < length) && (string[index] != seperator) && ((index - offset) < (sizeof(result) - 1)))
  1243. {
  1244. result[index - offset] = string[index];
  1245. index++;
  1246. }
  1247.  
  1248. result[index - offset] = EOS;
  1249. if ((index < length) && (string[index] == seperator))
  1250. {
  1251. index++;
  1252. }
  1253. return result;
  1254. }
  1255. stock set(dest[],source[]) {
  1256. new count = strlen(source);
  1257. new i=0;
  1258. for (i=0;i<count;i++) {
  1259. dest[i]=source[i];
  1260. }
  1261. dest[count]=0;
  1262. }
  1263. stock strreplace(trg[],newstr[],src[]) {
  1264. new f=0;
  1265. new s1[ 255 ];
  1266. new tmp[ 255 ];
  1267. format(s1,sizeof(s1),"%s",src);
  1268. f = strfind(s1,trg);
  1269. tmp[0]=0;
  1270. while (f>=0) {
  1271. strcat(tmp,ret_memcpy(s1, 0, f));
  1272. strcat(tmp,newstr);
  1273. format(s1,sizeof(s1),"%s",ret_memcpy(s1, f+strlen(trg), strlen(s1)-f));
  1274. f = strfind(s1,trg);
  1275. }
  1276. strcat(tmp,s1);
  1277. return tmp;
  1278. }
  1279. ret_memcpy(source[],index=0,numbytes) {
  1280. new tmp[ 255 ];
  1281. new i=0;
  1282. tmp[0]=0;
  1283. if (index>=strlen(source)) return tmp;
  1284. if (numbytes+index>=strlen(source)) numbytes=strlen(source)-index;
  1285. if (numbytes<=0) return tmp;
  1286. for (i=index;i<numbytes+index;i++) {
  1287. tmp[i-index]=source[i];
  1288. if (source[i]==0) return tmp;
  1289. }
  1290. tmp[numbytes]=0;
  1291. return tmp;
  1292. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement