Advertisement
Guest User

Untitled

a guest
Jan 22nd, 2018
86
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. static characterBuy(
  2.     player: PlayerMp,
  3.     amount: number,
  4.     vban: number = null,
  5.     cashOnly: boolean = false,
  6.     bankOnly: boolean = false
  7. ) {
  8.     console.log('characterBuy', player.name, amount, cashOnly, bankOnly);
  9.  
  10.     // player has bank account with enough money
  11.     let bankAccountsPromise: any = BankAccountModule.getBankAccountsforPlayer(
  12.         player
  13.     );
  14.  
  15.     return bankAccountsPromise.then((accounts: any) => {
  16.         let bankAccount: any = null;
  17.         accounts.forEach((account: any) => {
  18.             if (account.main) {
  19.                 bankAccount = account;
  20.                 return;
  21.             }
  22.         });
  23.  
  24.         if (!bankAccount && bankOnly) {
  25.             player.call(
  26.                 'openUiAlert',
  27.                 'Kauf fehlgeschlagen',
  28.                 'Der Kauf konnte nicht abgeschlossen, Sie verfügen über kein Haupt-Konto.'
  29.             );
  30.             return false;
  31.         }
  32.  
  33.         // enough cash money, when allowed
  34.         if (!bankOnly && player.db.money >= amount) {
  35.             console.log('not bankOnly anbd can pay cash');
  36.             if (vban) {
  37.                 // transfer money to vban
  38.                 let vbanPromise: any = this.putMoneyOnVban(vban, amount);
  39.                 vbanPromise.then((value: boolean) => {
  40.                     if (value) {
  41.                         player.db.money -= amount;
  42.                         // emit tax
  43.                         ServerModuleInstance.eventBus.emit(
  44.                             'taxPurchaseCharacter',
  45.                             player,
  46.                             'vban',
  47.                             amount
  48.                         );
  49.                         player.call(
  50.                             'openUiAlert',
  51.                             'Kauf erfolgreich',
  52.                             'Der Kauf wurde erfolgreich abgeschlossen, Sie haben Bar bezahlt.'
  53.                         );
  54.                     } else {
  55.                         player.call(
  56.                             'openUiAlert',
  57.                             'VBAN Ungültig',
  58.                             'Die verwendet VBAN Nummer konnte nicht gefunden werden.'
  59.                         );
  60.                         return;
  61.                     }
  62.                 });
  63.             } else {
  64.                 // transfer money to nowhere, gov
  65.                 player.db.money -= amount;
  66.                 // emit tax
  67.                 ServerModuleInstance.eventBus.emit(
  68.                     'taxPurchaseCharacter',
  69.                     player,
  70.                     'gov',
  71.                     amount
  72.                 );
  73.                 player.call(
  74.                     'openUiAlert',
  75.                     'Kauf erfolgreich',
  76.                     'Der Kauf wurde erfolgreich abgeschlossen, Sie haben Bar bezahlt.'
  77.                 );
  78.             }
  79.             return;
  80.         }
  81.  
  82.         // value can be paid only with cash
  83.         if (cashOnly) {
  84.             console.log('cash only and can not pay');
  85.             player.call(
  86.                 'openUiAlert',
  87.                 'Kauf fehglgeschlagen',
  88.                 'Der Kauf konnte nicht vollzogen werden, da Sie nicht über genügen Bargeld verfügen.'
  89.             );
  90.             console.log('can only be paid with cash', player.name, amount);
  91.             return false;
  92.         }
  93.  
  94.         // validate bank account with enough money
  95.         if (accounts.length > 0) {
  96.             let response = false;
  97.             accounts.forEach((account: any) => {
  98.                 if (account.main && account.money >= amount) {
  99.                     response = true;
  100.                     account.money -= amount;
  101.                     account.save();
  102.                     if (vban) {
  103.                         ServerModuleInstance.eventBus.emit(
  104.                             'taxPurchaseCharacter',
  105.                             player,
  106.                             'vban',
  107.                             amount
  108.                         );
  109.                     } else {
  110.                         ServerModuleInstance.eventBus.emit(
  111.                             'taxPurchaseCharacter',
  112.                             player,
  113.                             'gov',
  114.                             amount
  115.                         );
  116.                     }
  117.                     player.call(
  118.                         'openUiAlert',
  119.                         'Kauf erfolgreich',
  120.                         'Der Kauf wurde erfolgreich abgeschlossen, die Zahlung wurde über dein Konto vollzogen.'
  121.                     );
  122.                     return;
  123.                 }
  124.             });
  125.             if (!response) {
  126.                 player.call(
  127.                     'openUiAlert',
  128.                     'Kauf fehlgeschlagen',
  129.                     'Der Kauf konnte nicht vollzogen werden, da der Betrag Ihr Guthaben überschreitet.'
  130.                 );
  131.                 console.log('could not find bank account with enough money');
  132.             }
  133.             return response;
  134.         } else {
  135.             player.call(
  136.                 'openUiAlert',
  137.                 'Kauf fehlgeschlagen',
  138.                 'Der Kauf konnte nicht vollzogen werden, da Sie über kein Bankkonto verfügen.'
  139.             );
  140.             console.log('can not buy, no bank account');
  141.             return false;
  142.         }
  143.     });
  144. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement