Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- static characterBuy(
- player: PlayerMp,
- amount: number,
- vban: number = null,
- cashOnly: boolean = false,
- bankOnly: boolean = false
- ) {
- console.log('characterBuy', player.name, amount, cashOnly, bankOnly);
- // player has bank account with enough money
- let bankAccountsPromise: any = BankAccountModule.getBankAccountsforPlayer(
- player
- );
- return bankAccountsPromise.then((accounts: any) => {
- let bankAccount: any = null;
- accounts.forEach((account: any) => {
- if (account.main) {
- bankAccount = account;
- return;
- }
- });
- if (!bankAccount && bankOnly) {
- player.call(
- 'openUiAlert',
- 'Kauf fehlgeschlagen',
- 'Der Kauf konnte nicht abgeschlossen, Sie verfügen über kein Haupt-Konto.'
- );
- return false;
- }
- // enough cash money, when allowed
- if (!bankOnly && player.db.money >= amount) {
- console.log('not bankOnly anbd can pay cash');
- if (vban) {
- // transfer money to vban
- let vbanPromise: any = this.putMoneyOnVban(vban, amount);
- vbanPromise.then((value: boolean) => {
- if (value) {
- player.db.money -= amount;
- // emit tax
- ServerModuleInstance.eventBus.emit(
- 'taxPurchaseCharacter',
- player,
- 'vban',
- amount
- );
- player.call(
- 'openUiAlert',
- 'Kauf erfolgreich',
- 'Der Kauf wurde erfolgreich abgeschlossen, Sie haben Bar bezahlt.'
- );
- } else {
- player.call(
- 'openUiAlert',
- 'VBAN Ungültig',
- 'Die verwendet VBAN Nummer konnte nicht gefunden werden.'
- );
- return;
- }
- });
- } else {
- // transfer money to nowhere, gov
- player.db.money -= amount;
- // emit tax
- ServerModuleInstance.eventBus.emit(
- 'taxPurchaseCharacter',
- player,
- 'gov',
- amount
- );
- player.call(
- 'openUiAlert',
- 'Kauf erfolgreich',
- 'Der Kauf wurde erfolgreich abgeschlossen, Sie haben Bar bezahlt.'
- );
- }
- return;
- }
- // value can be paid only with cash
- if (cashOnly) {
- console.log('cash only and can not pay');
- player.call(
- 'openUiAlert',
- 'Kauf fehglgeschlagen',
- 'Der Kauf konnte nicht vollzogen werden, da Sie nicht über genügen Bargeld verfügen.'
- );
- console.log('can only be paid with cash', player.name, amount);
- return false;
- }
- // validate bank account with enough money
- if (accounts.length > 0) {
- let response = false;
- accounts.forEach((account: any) => {
- if (account.main && account.money >= amount) {
- response = true;
- account.money -= amount;
- account.save();
- if (vban) {
- ServerModuleInstance.eventBus.emit(
- 'taxPurchaseCharacter',
- player,
- 'vban',
- amount
- );
- } else {
- ServerModuleInstance.eventBus.emit(
- 'taxPurchaseCharacter',
- player,
- 'gov',
- amount
- );
- }
- player.call(
- 'openUiAlert',
- 'Kauf erfolgreich',
- 'Der Kauf wurde erfolgreich abgeschlossen, die Zahlung wurde über dein Konto vollzogen.'
- );
- return;
- }
- });
- if (!response) {
- player.call(
- 'openUiAlert',
- 'Kauf fehlgeschlagen',
- 'Der Kauf konnte nicht vollzogen werden, da der Betrag Ihr Guthaben überschreitet.'
- );
- console.log('could not find bank account with enough money');
- }
- return response;
- } else {
- player.call(
- 'openUiAlert',
- 'Kauf fehlgeschlagen',
- 'Der Kauf konnte nicht vollzogen werden, da Sie über kein Bankkonto verfügen.'
- );
- console.log('can not buy, no bank account');
- return false;
- }
- });
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement