* move gang bank, player bank into its own modules

* save player money each time a cash flow occurs (beta)
This commit is contained in:
Lorenc Pekaj 2019-01-01 22:33:06 +11:00
parent 2ed679b149
commit bdb6bda5bc
7 changed files with 373 additions and 313 deletions

View File

@ -20,7 +20,7 @@ static stock
p_Cash [ MAX_PLAYERS ]; p_Cash [ MAX_PLAYERS ];
/* ** Forwards ** */ /* ** Forwards ** */
forward OnPlayerMoneyChanged ( playerid, before_amount, after_amount ); forward OnPlayerMoneyChanged ( playerid, amount );
/* ** Hooks ** */ /* ** Hooks ** */
hook OnVehicleMod( playerid, vehicleid, componentid ) hook OnVehicleMod( playerid, vehicleid, componentid )
@ -232,50 +232,24 @@ hook OnVehicleRespray( playerid, vehicleid, color1, color2 )
/* ** Functions ** */ /* ** Functions ** */
stock GivePlayerCash( playerid, money ) stock GivePlayerCash( playerid, money )
{ {
if ( CallRemoteFunction( "OnPlayerMoneyChanged", "ddd", playerid, p_Cash[ playerid ], p_Cash[ playerid ] + money ) )
{
p_Cash[ playerid ] += money; p_Cash[ playerid ] += money;
ResetPlayerMoney( playerid ); ResetPlayerMoney( playerid );
GivePlayerMoney( playerid, p_Cash[ playerid ] ); GivePlayerMoney( playerid, p_Cash[ playerid ] );
} CallRemoteFunction( "OnPlayerMoneyChanged", "dd", playerid, money );
#if defined DEBUG_MODE
else
{
printf( "GivePlayerCash( %d, %d ) prevented [Reason: OnPlayerMoneyChanged returned 0]", playerid, money );
}
#endif
} }
stock SetPlayerCash( playerid, money ) stock SetPlayerCash( playerid, money )
{ {
if ( CallRemoteFunction( "OnPlayerMoneyChanged", "ddd", playerid, p_Cash[ playerid ], money ) )
{
p_Cash[ playerid ] = money; p_Cash[ playerid ] = money;
ResetPlayerMoney( playerid ); ResetPlayerMoney( playerid );
GivePlayerMoney( playerid, p_Cash[ playerid ] ); GivePlayerMoney( playerid, p_Cash[ playerid ] );
}
#if defined DEBUG_MODE
else
{
printf( "SetPlayerCash( %d, %d ) prevented [Reason: OnPlayerMoneyChanged returned 0]", playerid, money );
}
#endif
} }
stock ResetPlayerCash( playerid ) stock ResetPlayerCash( playerid )
{ {
if ( CallRemoteFunction( "OnPlayerMoneyChanged", "ddd", playerid, p_Cash[ playerid ], 0 ) )
{
p_Cash[ playerid ] = 0; p_Cash[ playerid ] = 0;
ResetPlayerMoney( playerid ); ResetPlayerMoney( playerid );
GivePlayerMoney( playerid, p_Cash[ playerid ] ); GivePlayerMoney( playerid, p_Cash[ playerid ] );
}
#if defined DEBUG_MODE
else
{
printf( "ResetPlayerCash( %d ) prevented [Reason: OnPlayerMoneyChanged returned 0]", playerid );
}
#endif
} }
stock GetPlayerCash( playerid ) stock GetPlayerCash( playerid )

View File

@ -7,6 +7,7 @@
/* ** Includes ** */ /* ** Includes ** */
#include "irresistible\cnr\features\gangs\gangs.pwn" #include "irresistible\cnr\features\gangs\gangs.pwn"
#include "irresistible\cnr\features\gangs\gbank.pwn"
#include "irresistible\cnr\features\gangs\facilities.pwn" #include "irresistible\cnr\features\gangs\facilities.pwn"
#include "irresistible\cnr\features\gangs\turfs.pwn" #include "irresistible\cnr\features\gangs\turfs.pwn"
#include "irresistible\cnr\features\gangs\cannon.pwn" #include "irresistible\cnr\features\gangs\cannon.pwn"

View File

@ -0,0 +1,178 @@
/*
* Irresistible Gaming (c) 2018
* Developed by Lorenc
* Module: irresistible\cnr\features\gangs\gbank.pwn
* Purpose: banking system for gangs
*/
/* ** Includes ** */
#include < YSI\y_hooks >
/* ** Definitions ** */
/* ** Variables ** */
/* ** Hooks ** */
hook OnDialogResponse( playerid, dialogid, response, listitem, inputtext[ ] )
{
if ( dialogid == DIALOG_BANK_MENU && response )
{
new
gangid = p_GangID[ playerid ];
if ( IsPlayerJailed( playerid ) )
return SendError( playerid, "You cannot use this while you're in jail." );
if ( gangid == INVALID_GANG_ID && listitem > 2 )
return SendError( playerid, "You are not in any gang!" );
switch( listitem )
{
case 3:
{
format( szBigString, sizeof( szBigString ), "{FFFFFF}Enter the amount that you are willing to withdraw from your gang bank account.\n\n"COL_GREY"Current Balance:"COL_WHITE" %s", cash_format( g_gangData[ gangid ] [ E_BANK ] ) );
ShowPlayerDialog( playerid, DIALOG_GANG_BANK_WITHDRAW, DIALOG_STYLE_INPUT, "{FFFFFF}Gang Account", szBigString, "Withdraw", "Back" );
}
case 4:
{
format( szBigString, sizeof( szBigString ), "{FFFFFF}Enter the amount that you are willing to deposit into your gang bank account below.\n\n"COL_GREY"Current Balance:"COL_WHITE" %s", cash_format( g_gangData[ gangid ] [ E_BANK ] ) );
ShowPlayerDialog( playerid, DIALOG_GANG_BANK_DEPOSIT, DIALOG_STYLE_INPUT, "{FFFFFF}Gang Account", szBigString, "Deposit", "Back" );
}
case 5:
{
format( szBigString, sizeof( szBigString ), ""COL_GREY"Current Balance:"COL_WHITE" %s\n"COL_GREY"Current Money:{FFFFFF} %s", cash_format( g_gangData[ gangid ] [ E_BANK ] ), cash_format( GetPlayerCash( playerid ) ) );
ShowPlayerDialog( playerid, DIALOG_GANG_BANK_INFO, DIALOG_STYLE_MSGBOX, "{FFFFFF}Gang Account", szBigString, "Ok", "Back" );
}
}
return 1;
}
else if ( dialogid == DIALOG_GANG_BANK_WITHDRAW )
{
if ( !response )
return ShowPlayerBankMenuDialog( playerid );
new
iWithdraw,
gangid = p_GangID[ playerid ]
;
if ( gangid == INVALID_GANG_ID )
return SendError( playerid, "You must be in a gang to use this feature." );
if ( IsPlayerJailed( playerid ) )
return SendError( playerid, "You cannot use this while you're in jail." );
if ( !IsPlayerGangLeader( playerid, gangid ) )
return ShowPlayerBankMenuDialog( playerid ), SendError( playerid, "You must be the gang leader to use this feature." );
if ( strmatch( inputtext, "MAX" ) || strmatch( inputtext, "ALL" ) )
{
iWithdraw = g_gangData[ gangid ] [ E_BANK ];
}
else if ( sscanf( inputtext, "d", iWithdraw ) )
{
format( szBigString, sizeof( szBigString ), "{FFFFFF}Enter the amount that you are willing to withdraw from your gang bank account.\n\n"COL_RED"Invalid amount entered!\n\n"COL_GREY"Current Balance:"COL_WHITE" %s", cash_format( g_gangData[ gangid ] [ E_BANK ] ) );
return ShowPlayerDialog(playerid, DIALOG_GANG_BANK_WITHDRAW, DIALOG_STYLE_INPUT, "{FFFFFF}Gang Account", szBigString, "Withdraw", "Back");
}
// double check quantity
if ( iWithdraw > 99999999 || iWithdraw <= 0 )
{
format( szBigString, sizeof( szBigString ), "{FFFFFF}Enter the amount that you are willing to withdraw from your gang bank account.\n\n"COL_RED"Invalid amount entered!\n\n"COL_GREY"Current Balance:"COL_WHITE" %s", cash_format( g_gangData[ gangid ] [ E_BANK ] ) );
ShowPlayerDialog(playerid, DIALOG_GANG_BANK_WITHDRAW, DIALOG_STYLE_INPUT, "{FFFFFF}Gang Account", szBigString, "Withdraw", "Back");
}
else if ( iWithdraw > g_gangData[ gangid ] [ E_BANK ] )
{
format( szBigString, sizeof( szBigString ), "{FFFFFF}Enter the amount that you are willing to withdraw from your gang bank account.\n\n"COL_RED"Insufficient balance, therefore withdrawal failed.\n\n"COL_GREY"Current Balance:"COL_WHITE" %s", cash_format( g_gangData[ gangid ] [ E_BANK ] ) );
ShowPlayerDialog(playerid, DIALOG_GANG_BANK_WITHDRAW, DIALOG_STYLE_INPUT, "{FFFFFF}Gang Account", szBigString, "Withdraw", "Back");
}
else
{
g_gangData[ gangid ] [ E_BANK ] -= iWithdraw;
GivePlayerCash( playerid, iWithdraw );
SaveGangData( gangid );
// transaction
format( szNormalString, sizeof( szNormalString ), "INSERT INTO `TRANSACTIONS` (`TO_ID`, `FROM_ID`, `CASH`, `NATURE`) VALUES (%d, %d, %d, 'gang withdraw')", p_AccountID[ playerid ], g_gangData[ gangid ] [ E_SQL_ID ], iWithdraw );
mysql_single_query( szNormalString );
// withdraw
SendClientMessageToGang( gangid, g_gangData[ gangid ] [ E_COLOR ], "[GANG]"COL_GREY" %s(%d) has withdrawn %s from the gang bank account.", ReturnPlayerName( playerid ), playerid, cash_format( iWithdraw ), "%%" );
format( szBigString, sizeof( szBigString ), ""COL_GREY"Amount Withdrawn:"COL_WHITE" %s\n"COL_GREY"Current Balance:"COL_WHITE" %s\n"COL_GREY"Current Money:{FFFFFF} %s", cash_format( iWithdraw ), cash_format( g_gangData[ gangid ] [ E_BANK ] ), cash_format( GetPlayerCash( playerid ) ) );
ShowPlayerDialog( playerid, DIALOG_GANG_BANK_INFO, DIALOG_STYLE_MSGBOX, "{FFFFFF}Gang Account", szBigString, "Ok", "Back" );
}
return 1;
}
else if ( dialogid == DIALOG_GANG_BANK_DEPOSIT )
{
if ( ! response )
return ShowPlayerBankMenuDialog( playerid );
if ( ! IsPlayerSecurityVerified( playerid ) )
return SendError( playerid, "You must be verified in order to use this feature. "COL_YELLOW"(use /verify)" );
new
iDeposit,
gangid = p_GangID[ playerid ]
;
if ( gangid == INVALID_GANG_ID )
return SendError( playerid, "You must be in a gang to use this feature." );
if ( IsPlayerJailed( playerid ) )
return SendError( playerid, "You cannot use this while you're in jail." );
if ( strmatch( inputtext, "MAX" ) || strmatch( inputtext, "ALL" ) )
{
iDeposit = GetPlayerCash( playerid );
}
else if ( sscanf( inputtext, "d", iDeposit ) )
{
format( szBigString, sizeof( szBigString ), "{FFFFFF}Enter the amount that you are willing to deposit into your gang bank account below.\n\n"COL_RED"Invalid amount entered!\n\n"COL_GREY"Current Balance:"COL_WHITE" %s", cash_format( g_gangData[ gangid ] [ E_BANK ] ) );
ShowPlayerDialog(playerid, DIALOG_GANG_BANK_DEPOSIT, DIALOG_STYLE_INPUT, "{FFFFFF}Gang Account", szBigString, "Deposit", "Back");
}
// double check
if ( iDeposit > 99999999 || iDeposit < 1 )
{
format( szBigString, sizeof( szBigString ), "{FFFFFF}Enter the amount that you are willing to deposit into your gang bank account below.\n\n"COL_RED"Invalid amount entered!\n\n"COL_GREY"Current Balance:"COL_WHITE" %s", cash_format( g_gangData[ gangid ] [ E_BANK ] ) );
ShowPlayerDialog( playerid, DIALOG_GANG_BANK_DEPOSIT, DIALOG_STYLE_INPUT, "{FFFFFF}Gang Account", szBigString, "Deposit", "Back" );
}
else if ( iDeposit > GetPlayerCash( playerid ) )
{
format( szBigString, sizeof( szBigString ), "{FFFFFF}Enter the amount that you are willing to deposit into your gang bank account below.\n\n"COL_RED"Insufficient balance, therefore deposition failed.\n\n"COL_GREY"Current Balance:"COL_WHITE" %s", cash_format( g_gangData[ gangid ] [ E_BANK ] ) );
ShowPlayerDialog(playerid, DIALOG_GANG_BANK_DEPOSIT, DIALOG_STYLE_INPUT, "{FFFFFF}Gang Account", szBigString, "Deposit", "Back");
}
else
{
g_gangData[ gangid ] [ E_BANK ] += iDeposit;
GivePlayerCash( playerid, -iDeposit );
SaveGangData( gangid );
// transaction
format( szNormalString, sizeof( szNormalString ), "INSERT INTO `TRANSACTIONS` (`TO_ID`, `FROM_ID`, `CASH`, `NATURE`) VALUES (%d, %d, %d, 'gang deposit')", p_AccountID[ playerid ], g_gangData[ gangid ] [ E_SQL_ID ], iDeposit );
mysql_single_query( szNormalString );
// deposit
SendClientMessageToGang( gangid, g_gangData[ gangid ] [ E_COLOR ], "[GANG]"COL_GREY" %s(%d) has deposited %s into the gang bank account.", ReturnPlayerName( playerid ), playerid, cash_format( iDeposit ) );
format( szBigString, sizeof( szBigString ), ""COL_GREY"Amount Deposited:"COL_WHITE" %s\n"COL_GREY"Current Balance:"COL_WHITE" %s\n"COL_GREY"Current Money:{FFFFFF} %s", cash_format( iDeposit ), cash_format( g_gangData[ gangid ] [ E_BANK ] ), cash_format( GetPlayerCash( playerid ) ) );
ShowPlayerDialog( playerid, DIALOG_GANG_BANK_INFO, DIALOG_STYLE_MSGBOX, "{FFFFFF}Gang Account", szBigString, "Ok", "Back" );
}
return 1;
}
return 1;
}
/* ** Functions ** */
stock ShowPlayerGangBankMenuDialog( playerid )
{
new
gangid = p_GangID[ playerid ];
if ( gangid != -1 && Iter_Contains( gangs, gangid ) ) {
format( szBigString, sizeof( szBigString ), "Withdraw\nDeposit\nAccount Information\n{%06x}Gang Bank Withdraw\n{%06x}Gang Bank Deposit\n{%06x}Gang Bank Balance", g_gangData[ gangid ] [ E_COLOR ] >>> 8, g_gangData[ gangid ] [ E_COLOR ] >>> 8, g_gangData[ gangid ] [ E_COLOR ] >>> 8 );
return ShowPlayerDialog( playerid, DIALOG_BANK_MENU, DIALOG_STYLE_LIST, "{FFFFFF}Account", szBigString, "Select", "Cancel" );
} else {
return 0;
}
}

View File

@ -7,6 +7,7 @@
/* ** Includes ** */ /* ** Includes ** */
#include "irresistible\cnr\features\player\experience.pwn" #include "irresistible\cnr\features\player\experience.pwn"
#include "irresistible\cnr\features\player\bank.pwn"
#include "irresistible\cnr\features\player\player_settings.pwn" #include "irresistible\cnr\features\player\player_settings.pwn"
#include "irresistible\cnr\features\player\irresistibleguard.pwn" #include "irresistible\cnr\features\player\irresistibleguard.pwn"
#include "irresistible\cnr\features\player\streaks.pwn" #include "irresistible\cnr\features\player\streaks.pwn"

View File

@ -0,0 +1,168 @@
/*
* Irresistible Gaming (c) 2018
* Developed by Lorenc
* Module: irresistible\cnr\features\player\bank.pwn
* Purpose: banking system for players
*/
/* ** Includes ** */
#include < YSI\y_hooks >
/* ** Macros ** */
#define GetPlayerTotalCash(%0) ( GetPlayerBankMoney( %0 ) + GetPlayerCash( %0 ) ) // Bank Money and Money
/* ** Variables ** */
static stock p_BankMoney [ MAX_PLAYERS ];
/* ** Hooks ** */
hook OnDialogResponse( playerid, dialogid, response, listitem, inputtext[ ] )
{
if ( dialogid == DIALOG_BANK_MENU && response )
{
if ( IsPlayerJailed( playerid ) )
return SendError( playerid, "You cannot use this while you're in jail." );
switch( listitem )
{
case 0:
{
format( szBigString, sizeof( szBigString ), "{FFFFFF}Enter the amount that you are willing to withdraw from your bank account.\n\n"COL_GREY"Current Balance:"COL_WHITE" %s", cash_format( p_BankMoney[ playerid ] ) );
ShowPlayerDialog( playerid, DIALOG_BANK_WITHDRAW, DIALOG_STYLE_INPUT, "{FFFFFF}Personal Account", szBigString, "Withdraw", "Back" );
}
case 1:
{
format( szBigString, sizeof( szBigString ), "{FFFFFF}Enter the amount that you are willing to deposit into your bank account below.\n\n"COL_GREY"Current Balance:"COL_WHITE" %s", cash_format( p_BankMoney[ playerid ] ) );
ShowPlayerDialog( playerid, DIALOG_BANK_DEPOSIT, DIALOG_STYLE_INPUT, "{FFFFFF}Personal Account", szBigString, "Deposit", "Back" );
}
case 2:
{
format( szBigString, sizeof( szBigString ), ""COL_GREY"Current Balance:"COL_WHITE" %s\n"COL_GREY"Current Money:{FFFFFF} %s", cash_format( p_BankMoney[ playerid ] ), cash_format( GetPlayerCash( playerid ) ) );
ShowPlayerDialog( playerid, DIALOG_BANK_INFO, DIALOG_STYLE_MSGBOX, "{FFFFFF}Personal Account", szBigString, "Ok", "Back" );
}
// ... cases 3, 4, 5 handled in cnr\features\gangs\gbank.pwn
}
return 1;
}
else if ( dialogid == DIALOG_BANK_WITHDRAW )
{
if ( IsPlayerJailed( playerid ) ) return SendError( playerid, "You cannot use this while you're in jail." );
if ( ! response ) return ShowPlayerBankMenuDialog( playerid );
new
money_withdraw[ 24 ];
format( money_withdraw, sizeof( money_withdraw ), "%s", inputtext );
if ( strmatch( money_withdraw, "MAX" ) || strmatch( money_withdraw, "ALL" ) ) {
format( money_withdraw, sizeof( money_withdraw ), "%d", p_BankMoney[ playerid ] );
}
if ( ! strlen( money_withdraw ) )
{
format( szBigString, sizeof( szBigString ), "{FFFFFF}Enter the amount that you are willing to withdraw from your bank account.\n\n"COL_RED"Invalid amount entered!\n\n"COL_GREY"Current Balance:"COL_WHITE" %s", cash_format( p_BankMoney[ playerid ] ) );
ShowPlayerDialog( playerid, DIALOG_BANK_WITHDRAW, DIALOG_STYLE_INPUT, "{FFFFFF}Personal Account", szBigString, "Withdraw", "Back" );
}
else if ( ! IsNumeric( money_withdraw ) ) {
format( szBigString, sizeof( szBigString ), "{FFFFFF}Enter the amount that you are willing to withdraw from your bank account.\n\n"COL_RED"Invalid amount entered!\n\n"COL_GREY"Current Balance:"COL_WHITE" %s", cash_format( p_BankMoney[ playerid ] ) );
ShowPlayerDialog( playerid, DIALOG_BANK_WITHDRAW, DIALOG_STYLE_INPUT, "{FFFFFF}Personal Account", szBigString, "Withdraw", "Back" );
}
else if ( strval( money_withdraw ) > 99999999 || strval( money_withdraw ) <= 0 )
{
format( szBigString, sizeof( szBigString ), "{FFFFFF}Enter the amount that you are willing to withdraw from your bank account.\n\n"COL_RED"Invalid amount entered!\n\n"COL_GREY"Current Balance:"COL_WHITE" %s", cash_format( p_BankMoney[ playerid ] ) );
ShowPlayerDialog( playerid, DIALOG_BANK_WITHDRAW, DIALOG_STYLE_INPUT, "{FFFFFF}Personal Account", szBigString, "Withdraw", "Back" );
}
else if ( strval( money_withdraw ) > p_BankMoney[ playerid ] ) {
format( szBigString, sizeof( szBigString ), "{FFFFFF}Enter the amount that you are willing to withdraw from your bank account.\n\n"COL_RED"Insufficient balance, therefore withdrawal failed.\n\n"COL_GREY"Current Balance:"COL_WHITE" %s", cash_format( p_BankMoney[ playerid ] ) );
ShowPlayerDialog( playerid, DIALOG_BANK_WITHDRAW, DIALOG_STYLE_INPUT, "{FFFFFF}Personal Account", szBigString, "Withdraw", "Back" );
}
else
{
new iWithdraw = strval( money_withdraw );
p_BankMoney[ playerid ] -= iWithdraw;
GivePlayerCash( playerid, iWithdraw );
format( szBigString, sizeof( szBigString ), ""COL_GREY"Amount Withdrawn:"COL_WHITE" %s\n"COL_GREY"Current Balance:"COL_WHITE" %s\n"COL_GREY"Current Money:{FFFFFF} %s", cash_format( iWithdraw ), cash_format( p_BankMoney[ playerid ] ), cash_format( GetPlayerCash( playerid ) ) );
ShowPlayerDialog( playerid, DIALOG_BANK_INFO, DIALOG_STYLE_MSGBOX, "{FFFFFF}Personal Account", szBigString, "Ok", "Back" );
}
return 1;
}
else if ( dialogid == DIALOG_BANK_DEPOSIT )
{
if ( IsPlayerJailed( playerid ) ) return SendError( playerid, "You cannot use this while you're in jail." );
if ( response )
{
new
money_deposit[ 24 ];
format( money_deposit, sizeof( money_deposit ), "%s", inputtext );
// quick deposite feature
if ( strmatch( money_deposit, "MAX" ) || strmatch( money_deposit, "ALL" ) ) {
format( money_deposit, sizeof( money_deposit ), "%d", GetPlayerCash( playerid ) );
}
// validate amount
if ( !strlen( money_deposit ) ) {
format( szBigString, sizeof( szBigString ), "{FFFFFF}Enter the amount that you are willing to deposit into your bank account below.\n\n"COL_RED"Invalid amount entered!\n\n"COL_GREY"Current Balance:"COL_WHITE" %s", cash_format( p_BankMoney[ playerid ] ) );
ShowPlayerDialog( playerid, DIALOG_BANK_DEPOSIT, DIALOG_STYLE_INPUT, "{FFFFFF}Personal Account", szBigString, "Deposit", "Back" );
}
else if ( ! IsNumeric( money_deposit ) ) {
format( szBigString, sizeof( szBigString ), "{FFFFFF}Enter the amount that you are willing to deposit into your bank account below.\n\n"COL_RED"Invalid amount entered!\n\n"COL_GREY"Current Balance:"COL_WHITE" %s", cash_format( p_BankMoney[ playerid ] ) );
ShowPlayerDialog( playerid, DIALOG_BANK_DEPOSIT, DIALOG_STYLE_INPUT, "{FFFFFF}Personal Account", szBigString, "Deposit", "Back" );
}
else if ( strval( money_deposit ) > GetPlayerCash( playerid ) ) {
format( szBigString, sizeof( szBigString ), "{FFFFFF}Enter the amount that you are willing to deposit into your bank account below.\n\n"COL_RED"Insufficient balance, therefore deposition failed.\n\n"COL_GREY"Current Balance:"COL_WHITE" %s", cash_format( p_BankMoney[ playerid ] ) );
ShowPlayerDialog( playerid, DIALOG_BANK_DEPOSIT, DIALOG_STYLE_INPUT, "{FFFFFF}Personal Account", szBigString, "Deposit", "Back" );
}
else if ( strval( money_deposit ) > 99999999 || strval( money_deposit ) <= 0 )
{
format( szBigString, sizeof( szBigString ), "{FFFFFF}Enter the amount that you are willing to deposit into your bank account below.\n\n"COL_RED"Invalid amount entered!\n\n"COL_GREY"Current Balance:"COL_WHITE" %s", cash_format( p_BankMoney[ playerid ] ) );
ShowPlayerDialog( playerid, DIALOG_BANK_DEPOSIT, DIALOG_STYLE_INPUT, "{FFFFFF}Personal Account", szBigString, "Deposit", "Back" );
}
else
{
new iDeposit = strval( money_deposit );
p_BankMoney[ playerid ] += iDeposit;
GivePlayerCash( playerid, -iDeposit );
format( szBigString, sizeof( szBigString ), ""COL_GREY"Amount Deposited:"COL_WHITE" %s\n"COL_GREY"Current Balance:"COL_WHITE" %s\n"COL_GREY"Current Money:{FFFFFF} %s", cash_format( iDeposit ), cash_format( p_BankMoney[ playerid ] ), cash_format( GetPlayerCash( playerid ) ) );
ShowPlayerDialog( playerid, DIALOG_BANK_INFO, DIALOG_STYLE_MSGBOX, "{FFFFFF}Personal Account", szBigString, "Ok", "Back" );
}
}
else ShowPlayerBankMenuDialog( playerid );
}
else if ( ( dialogid == DIALOG_BANK_INFO || dialogid == DIALOG_GANG_BANK_INFO ) && !response )
{
if ( IsPlayerJailed( playerid ) )
return SendError( playerid, "You cannot use this while you're in jail." );
return ShowPlayerBankMenuDialog( playerid );
}
return 1;
}
hook OnPlayerDisconnect( playerid, reason ) {
p_BankMoney[ playerid ] = 0;
return 1;
}
/* ** Functions ** */
stock GetPlayerBankMoney( playerid ) {
return p_BankMoney[ playerid ];
}
stock SetPlayerBankMoney( playerid, money ) {
p_BankMoney[ playerid ] = money;
}
stock GivePlayerBankMoney( playerid, money ) {
p_BankMoney[ playerid ] += money;
}
stock ShowPlayerBankMenuDialog( playerid )
{
if ( ! ShowPlayerGangBankMenuDialog( playerid ) ) {
return ShowPlayerDialog( playerid, DIALOG_BANK_MENU, DIALOG_STYLE_LIST, "{FFFFFF}Account", "Withdraw\nDeposit\nAccount Information", "Select", "Cancel" );
} else {
return 1;
}
}

View File

@ -43,7 +43,6 @@ new
bool: p_pausedToLoad [ MAX_PLAYERS char ], bool: p_pausedToLoad [ MAX_PLAYERS char ],
bool: p_CantUseReport [ MAX_PLAYERS char ], bool: p_CantUseReport [ MAX_PLAYERS char ],
p_pausedToLoadTimer [ MAX_PLAYERS ], p_pausedToLoadTimer [ MAX_PLAYERS ],
p_BankMoney [ MAX_PLAYERS ],
p_OwnedHouses [ MAX_PLAYERS ], p_OwnedHouses [ MAX_PLAYERS ],
p_OwnedVehicles [ MAX_PLAYERS ], p_OwnedVehicles [ MAX_PLAYERS ],
p_OwnedBusinesses [ MAX_PLAYERS ], p_OwnedBusinesses [ MAX_PLAYERS ],
@ -228,7 +227,3 @@ stock IsPlayerJailed( playerid ) return p_Jailed{ playerid };
stock IsPlayerAdminOnDuty( playerid ) return p_AdminOnDuty{ playerid }; stock IsPlayerAdminOnDuty( playerid ) return p_AdminOnDuty{ playerid };
stock IsPlayerLoggedIn( playerid ) return p_PlayerLogged{ playerid }; stock IsPlayerLoggedIn( playerid ) return p_PlayerLogged{ playerid };
stock GivePlayerBankMoney( playerid, money ) {
p_BankMoney[ playerid ] += money;
}

View File

@ -63,7 +63,6 @@ new bool: False = false;
#define hasTickcountPassed(%1,%2) ((GetTickCount()-%1)>(%2)) #define hasTickcountPassed(%1,%2) ((GetTickCount()-%1)>(%2))
#define Ach_Unlock(%0,%1) (%0 >= %1 ?("{6EF83C}"):("{FFFFFF}")) #define Ach_Unlock(%0,%1) (%0 >= %1 ?("{6EF83C}"):("{FFFFFF}"))
#define UpdatePlayerTime(%0) SetPlayerTime(%0,floatround(g_WorldClockSeconds/60),g_WorldClockSeconds-floatround((g_WorldClockSeconds/60)*60)) #define UpdatePlayerTime(%0) SetPlayerTime(%0,floatround(g_WorldClockSeconds/60),g_WorldClockSeconds-floatround((g_WorldClockSeconds/60)*60))
#define GetPlayerTotalCash(%0) (p_BankMoney[%0] + GetPlayerCash(%0)) // Bank Money and Money
#define Achievement:: ach_ #define Achievement:: ach_
#define IsPlayerInEntrance(%0,%1) (p_LastEnteredEntrance[%0]==(%1)) #define IsPlayerInEntrance(%0,%1) (p_LastEnteredEntrance[%0]==(%1))
#define IsPlayerInPlayerGang(%0,%1) (p_Class[%0] == p_Class[%1] && p_Class[%0] == CLASS_CIVILIAN && p_GangID[%0] == p_GangID[%1] && p_GangID[%0] != INVALID_GANG_ID) #define IsPlayerInPlayerGang(%0,%1) (p_Class[%0] == p_Class[%1] && p_Class[%0] == CLASS_CIVILIAN && p_GangID[%0] == p_GangID[%1] && p_GangID[%0] != INVALID_GANG_ID)
@ -854,7 +853,6 @@ public OnPlayerDisconnect( playerid, reason )
p_OwnedVehicles [ playerid ] = 0; p_OwnedVehicles [ playerid ] = 0;
p_ToggledViewPM { playerid } = false; p_ToggledViewPM { playerid } = false;
p_VIPExpiretime [ playerid ] = 0; p_VIPExpiretime [ playerid ] = 0;
p_BankMoney [ playerid ] = 0;
p_Kills [ playerid ] = 0; p_Kills [ playerid ] = 0;
p_Deaths [ playerid ] = 0; p_Deaths [ playerid ] = 0;
p_VIPLevel [ playerid ] = 0; p_VIPLevel [ playerid ] = 0;
@ -3311,7 +3309,7 @@ CMD:richlist( playerid, params[ ] )
new new
rich_player = g_richList[ i ] [ 0 ]; rich_player = g_richList[ i ] [ 0 ];
format( szLargeString, sizeof( szLargeString ), "%s%s(%d)\t"COL_GOLD"%s\t{666666}%s\n", szLargeString, ReturnPlayerName( rich_player ), rich_player, cash_format( GetPlayerCash( rich_player ) ), cash_format( p_BankMoney[ rich_player ] ) ); format( szLargeString, sizeof( szLargeString ), "%s%s(%d)\t"COL_GOLD"%s\t{666666}%s\n", szLargeString, ReturnPlayerName( rich_player ), rich_player, cash_format( GetPlayerCash( rich_player ) ), cash_format( GetPlayerBankMoney( rich_player ) ) );
is_empty = false; is_empty = false;
} }
@ -5280,8 +5278,13 @@ function unpause_Player( playerid )
} }
#if defined AC_INCLUDED #if defined AC_INCLUDED
public OnPlayerMoneyChanged( playerid, before_amount, after_amount ) public OnPlayerMoneyChanged( playerid, amount )
{ {
// save player money on each monetary movement
if ( IsPlayerLoggedIn( playerid ) )
{
mysql_single_query( sprintf( "UPDATE `USERS` SET `CASH` = %d, `BANKMONEY` = %d WHERE `ID` = %d", GetPlayerCash( playerid ), GetPlayerBankMoney( playerid ), GetPlayerAccountID( playerid ) ) );
}
return 1; return 1;
} }
@ -5461,7 +5464,7 @@ thread OnAttemptPlayerLogin( playerid, password[ ] )
} }
p_AdminLevel[ playerid ] = cache_get_field_content_int( 0, "ADMINLEVEL", dbHandle ); p_AdminLevel[ playerid ] = cache_get_field_content_int( 0, "ADMINLEVEL", dbHandle );
p_BankMoney[ playerid ] = cache_get_field_content_int( 0, "BANKMONEY", dbHandle ); SetPlayerBankMoney( playerid, cache_get_field_content_int( 0, "BANKMONEY", dbHandle ) );
p_Kills[ playerid ] = cache_get_field_content_int( 0, "KILLS", dbHandle ); p_Kills[ playerid ] = cache_get_field_content_int( 0, "KILLS", dbHandle );
p_Deaths[ playerid ] = cache_get_field_content_int( 0, "DEATHS", dbHandle ); p_Deaths[ playerid ] = cache_get_field_content_int( 0, "DEATHS", dbHandle );
p_VIPLevel[ playerid ] = cache_get_field_content_int( 0, "VIP_PACKAGE", dbHandle ); p_VIPLevel[ playerid ] = cache_get_field_content_int( 0, "VIP_PACKAGE", dbHandle );
@ -5638,10 +5641,8 @@ stock randomString(strDest[], strLen = 10)
public OnDialogResponse( playerid, dialogid, response, listitem, inputtext[ ] ) public OnDialogResponse( playerid, dialogid, response, listitem, inputtext[ ] )
{ {
new static
Query[ 256 ], szBigQuery[ 764 ];
szBigQuery[ 764 ]
;
if ( g_DialogLogging ) printf( "[DIALOG_LOG] %s(%d) - %d, %d, %d, %s", ReturnPlayerName( playerid ), playerid, dialogid, response, listitem, inputtext ); if ( g_DialogLogging ) printf( "[DIALOG_LOG] %s(%d) - %d, %d, %d, %s", ReturnPlayerName( playerid ), playerid, dialogid, response, listitem, inputtext );
@ -5820,251 +5821,6 @@ public OnDialogResponse( playerid, dialogid, response, listitem, inputtext[ ] )
SendServerMessage( playerid, "Since you like deathmatch, passive mode has been automatically enabled for you!" ); SendServerMessage( playerid, "Since you like deathmatch, passive mode has been automatically enabled for you!" );
} }
}*/ }*/
if ( ( dialogid == DIALOG_BANK_MENU ) && response )
{
new
gangid = p_GangID[ playerid ];
if ( IsPlayerJailed( playerid ) )
return SendError( playerid, "You cannot use this while you're in jail." );
if ( gangid == INVALID_GANG_ID && listitem > 2 )
return SendError( playerid, "You are not in any gang!" );
switch( listitem )
{
case 0:
{
format( Query, sizeof( Query ), "{FFFFFF}Enter the amount that you are willing to withdraw from your bank account.\n\n"COL_GREY"Current Balance:"COL_WHITE" %s", cash_format( p_BankMoney[ playerid ] ) );
ShowPlayerDialog(playerid, DIALOG_BANK_WITHDRAW, DIALOG_STYLE_INPUT, "{FFFFFF}Personal Account", Query, "Withdraw", "Back");
}
case 1:
{
format( Query, sizeof( Query ), "{FFFFFF}Enter the amount that you are willing to deposit into your bank account below.\n\n"COL_GREY"Current Balance:"COL_WHITE" %s", cash_format( p_BankMoney[ playerid ] ) );
ShowPlayerDialog(playerid, DIALOG_BANK_DEPOSIT, DIALOG_STYLE_INPUT, "{FFFFFF}Personal Account", Query, "Deposit", "Back");
}
case 2:
{
format( Query, sizeof( Query ), ""COL_GREY"Current Balance:"COL_WHITE" %s\n"COL_GREY"Current Money:{FFFFFF} %s", cash_format( p_BankMoney[ playerid ] ), cash_format( GetPlayerCash( playerid ) ) );
ShowPlayerDialog(playerid, DIALOG_BANK_INFO, DIALOG_STYLE_MSGBOX, "{FFFFFF}Personal Account", Query, "Ok", "Back");
}
case 3:
{
format( Query, sizeof( Query ), "{FFFFFF}Enter the amount that you are willing to withdraw from your gang bank account.\n\n"COL_GREY"Current Balance:"COL_WHITE" %s", cash_format( g_gangData[ gangid ] [ E_BANK ] ) );
ShowPlayerDialog(playerid, DIALOG_GANG_BANK_WITHDRAW, DIALOG_STYLE_INPUT, "{FFFFFF}Gang Account", Query, "Withdraw", "Back");
}
case 4:
{
format( Query, sizeof( Query ), "{FFFFFF}Enter the amount that you are willing to deposit into your gang bank account below.\n\n"COL_GREY"Current Balance:"COL_WHITE" %s", cash_format( g_gangData[ gangid ] [ E_BANK ] ) );
ShowPlayerDialog(playerid, DIALOG_GANG_BANK_DEPOSIT, DIALOG_STYLE_INPUT, "{FFFFFF}Gang Account", Query, "Deposit", "Back");
}
case 5:
{
format( Query, sizeof( Query ), ""COL_GREY"Current Balance:"COL_WHITE" %s\n"COL_GREY"Current Money:{FFFFFF} %s", cash_format( g_gangData[ gangid ] [ E_BANK ] ), cash_format( GetPlayerCash( playerid ) ) );
ShowPlayerDialog(playerid, DIALOG_GANG_BANK_INFO, DIALOG_STYLE_MSGBOX, "{FFFFFF}Gang Account", Query, "Ok", "Back");
}
}
}
if (dialogid == DIALOG_BANK_WITHDRAW)
{
if ( IsPlayerJailed( playerid ) ) return SendError( playerid, "You cannot use this while you're in jail." );
if (response)
{
new
money_withdraw[ 24 ];
format( money_withdraw, sizeof( money_withdraw ), "%s", inputtext );
if ( strmatch( money_withdraw, "MAX" ) || strmatch( money_withdraw, "ALL" ) ) format( money_withdraw, sizeof( money_withdraw ), "%d", p_BankMoney[ playerid ] );
if (!strlen(money_withdraw))
{
format( Query, sizeof( Query ), "{FFFFFF}Enter the amount that you are willing to withdraw from your bank account.\n\n"COL_RED"Invalid amount entered!\n\n"COL_GREY"Current Balance:"COL_WHITE" %s", cash_format( p_BankMoney[ playerid ] ) );
ShowPlayerDialog(playerid, DIALOG_BANK_WITHDRAW, DIALOG_STYLE_INPUT, "{FFFFFF}Personal Account", Query, "Withdraw", "Back");
}
else if (!IsNumeric(money_withdraw)) {
format( Query, sizeof( Query ), "{FFFFFF}Enter the amount that you are willing to withdraw from your bank account.\n\n"COL_RED"Invalid amount entered!\n\n"COL_GREY"Current Balance:"COL_WHITE" %s", cash_format( p_BankMoney[ playerid ] ) );
ShowPlayerDialog(playerid, DIALOG_BANK_WITHDRAW, DIALOG_STYLE_INPUT, "{FFFFFF}Personal Account", Query, "Withdraw", "Back");
}
else if ( strval( money_withdraw ) > 99999999 || strval( money_withdraw ) <= 0 )
{
format( Query, sizeof( Query ), "{FFFFFF}Enter the amount that you are willing to withdraw from your bank account.\n\n"COL_RED"Invalid amount entered!\n\n"COL_GREY"Current Balance:"COL_WHITE" %s", cash_format( p_BankMoney[ playerid ] ) );
ShowPlayerDialog(playerid, DIALOG_BANK_WITHDRAW, DIALOG_STYLE_INPUT, "{FFFFFF}Personal Account", Query, "Withdraw", "Back");
}
else if (strval(money_withdraw) > p_BankMoney[ playerid ]) {
format( Query, sizeof( Query ), "{FFFFFF}Enter the amount that you are willing to withdraw from your bank account.\n\n"COL_RED"Insufficient balance, therefore withdrawal failed.\n\n"COL_GREY"Current Balance:"COL_WHITE" %s", cash_format( p_BankMoney[ playerid ] ) );
ShowPlayerDialog(playerid, DIALOG_BANK_WITHDRAW, DIALOG_STYLE_INPUT, "{FFFFFF}Personal Account", Query, "Withdraw", "Back");
}
else {
new iWithdraw = strval( money_withdraw );
p_BankMoney[ playerid ] -= iWithdraw;
GivePlayerCash( playerid, iWithdraw );
format( Query, sizeof( Query ), ""COL_GREY"Amount Withdrawn:"COL_WHITE" %s\n"COL_GREY"Current Balance:"COL_WHITE" %s\n"COL_GREY"Current Money:{FFFFFF} %s", cash_format( iWithdraw ), cash_format( p_BankMoney[ playerid ] ), cash_format( GetPlayerCash( playerid ) ) );
ShowPlayerDialog( playerid, DIALOG_BANK_INFO, DIALOG_STYLE_MSGBOX, "{FFFFFF}Personal Account", Query, "Ok", "Back" );
}
}
else ShowPlayerBankMenuDialog( playerid );
}
if ( dialogid == DIALOG_BANK_DEPOSIT )
{
if ( IsPlayerJailed( playerid ) ) return SendError( playerid, "You cannot use this while you're in jail." );
if ( response )
{
new
money_deposit[ 24 ];
format( money_deposit, sizeof( money_deposit ), "%s", inputtext );
if ( strmatch( money_deposit, "MAX" ) || strmatch( money_deposit, "ALL" ) ) format( money_deposit, sizeof( money_deposit ), "%d", GetPlayerCash( playerid ) );
if (!strlen(money_deposit)) {
format( Query, sizeof( Query ), "{FFFFFF}Enter the amount that you are willing to deposit into your bank account below.\n\n"COL_RED"Invalid amount entered!\n\n"COL_GREY"Current Balance:"COL_WHITE" %s", cash_format( p_BankMoney[ playerid ] ) );
ShowPlayerDialog(playerid, DIALOG_BANK_DEPOSIT, DIALOG_STYLE_INPUT, "{FFFFFF}Personal Account", Query, "Deposit", "Back");
}
else if (!IsNumeric(money_deposit)) {
format( Query, sizeof( Query ), "{FFFFFF}Enter the amount that you are willing to deposit into your bank account below.\n\n"COL_RED"Invalid amount entered!\n\n"COL_GREY"Current Balance:"COL_WHITE" %s", cash_format( p_BankMoney[ playerid ] ) );
ShowPlayerDialog(playerid, DIALOG_BANK_DEPOSIT, DIALOG_STYLE_INPUT, "{FFFFFF}Personal Account", Query, "Deposit", "Back");
}
else if (strval(money_deposit) > GetPlayerCash( playerid )) {
format( Query, sizeof( Query ), "{FFFFFF}Enter the amount that you are willing to deposit into your bank account below.\n\n"COL_RED"Insufficient balance, therefore deposition failed.\n\n"COL_GREY"Current Balance:"COL_WHITE" %s", cash_format( p_BankMoney[ playerid ] ) );
ShowPlayerDialog(playerid, DIALOG_BANK_DEPOSIT, DIALOG_STYLE_INPUT, "{FFFFFF}Personal Account", Query, "Deposit", "Back");
}
else if ( strval( money_deposit ) > 99999999 || strval( money_deposit ) <= 0 )
{
format( Query, sizeof( Query ), "{FFFFFF}Enter the amount that you are willing to deposit into your bank account below.\n\n"COL_RED"Invalid amount entered!\n\n"COL_GREY"Current Balance:"COL_WHITE" %s", cash_format( p_BankMoney[ playerid ] ) );
ShowPlayerDialog( playerid, DIALOG_BANK_DEPOSIT, DIALOG_STYLE_INPUT, "{FFFFFF}Personal Account", Query, "Deposit", "Back" );
}
else {
new iDeposit = strval( money_deposit );
p_BankMoney[ playerid ] += iDeposit;
GivePlayerCash( playerid, -iDeposit );
format( Query, sizeof( Query ), ""COL_GREY"Amount Deposited:"COL_WHITE" %s\n"COL_GREY"Current Balance:"COL_WHITE" %s\n"COL_GREY"Current Money:{FFFFFF} %s", cash_format( iDeposit ), cash_format( p_BankMoney[ playerid ] ), cash_format( GetPlayerCash( playerid ) ) );
ShowPlayerDialog( playerid, DIALOG_BANK_INFO, DIALOG_STYLE_MSGBOX, "{FFFFFF}Personal Account", Query, "Ok", "Back" );
}
}
else ShowPlayerBankMenuDialog( playerid );
}
if ( ( dialogid == DIALOG_BANK_INFO || dialogid == DIALOG_GANG_BANK_INFO ) && !response )
{
if ( IsPlayerJailed( playerid ) )
return SendError( playerid, "You cannot use this while you're in jail." );
return ShowPlayerBankMenuDialog( playerid );
}
if ( dialogid == DIALOG_GANG_BANK_WITHDRAW )
{
if ( !response )
return ShowPlayerBankMenuDialog( playerid );
new
iWithdraw,
gangid = p_GangID[ playerid ]
;
if ( gangid == INVALID_GANG_ID )
return SendError( playerid, "You must be in a gang to use this feature." );
if ( IsPlayerJailed( playerid ) )
return SendError( playerid, "You cannot use this while you're in jail." );
if ( !IsPlayerGangLeader( playerid, gangid ) )
return ShowPlayerBankMenuDialog( playerid ), SendError( playerid, "You must be the gang leader to use this feature." );
if ( strmatch( inputtext, "MAX" ) || strmatch( inputtext, "ALL" ) )
{
iWithdraw = g_gangData[ gangid ] [ E_BANK ];
}
else if ( sscanf( inputtext, "d", iWithdraw ) )
{
format( Query, sizeof( Query ), "{FFFFFF}Enter the amount that you are willing to withdraw from your gang bank account.\n\n"COL_RED"Invalid amount entered!\n\n"COL_GREY"Current Balance:"COL_WHITE" %s", cash_format( g_gangData[ gangid ] [ E_BANK ] ) );
return ShowPlayerDialog(playerid, DIALOG_GANG_BANK_WITHDRAW, DIALOG_STYLE_INPUT, "{FFFFFF}Gang Account", Query, "Withdraw", "Back");
}
// double check quantity
if ( iWithdraw > 99999999 || iWithdraw <= 0 )
{
format( Query, sizeof( Query ), "{FFFFFF}Enter the amount that you are willing to withdraw from your gang bank account.\n\n"COL_RED"Invalid amount entered!\n\n"COL_GREY"Current Balance:"COL_WHITE" %s", cash_format( g_gangData[ gangid ] [ E_BANK ] ) );
ShowPlayerDialog(playerid, DIALOG_GANG_BANK_WITHDRAW, DIALOG_STYLE_INPUT, "{FFFFFF}Gang Account", Query, "Withdraw", "Back");
}
else if ( iWithdraw > g_gangData[ gangid ] [ E_BANK ] )
{
format( Query, sizeof( Query ), "{FFFFFF}Enter the amount that you are willing to withdraw from your gang bank account.\n\n"COL_RED"Insufficient balance, therefore withdrawal failed.\n\n"COL_GREY"Current Balance:"COL_WHITE" %s", cash_format( g_gangData[ gangid ] [ E_BANK ] ) );
ShowPlayerDialog(playerid, DIALOG_GANG_BANK_WITHDRAW, DIALOG_STYLE_INPUT, "{FFFFFF}Gang Account", Query, "Withdraw", "Back");
}
else
{
g_gangData[ gangid ] [ E_BANK ] -= iWithdraw;
GivePlayerCash( playerid, iWithdraw );
SaveGangData( gangid );
// transaction
format( szNormalString, sizeof( szNormalString ), "INSERT INTO `TRANSACTIONS` (`TO_ID`, `FROM_ID`, `CASH`, `NATURE`) VALUES (%d, %d, %d, 'gang withdraw')", p_AccountID[ playerid ], g_gangData[ gangid ] [ E_SQL_ID ], iWithdraw );
mysql_single_query( szNormalString );
// withdraw
SendClientMessageToGang( gangid, g_gangData[ gangid ] [ E_COLOR ], "[GANG]"COL_GREY" %s(%d) has withdrawn %s from the gang bank account.", ReturnPlayerName( playerid ), playerid, cash_format( iWithdraw ), "%%" );
format( Query, sizeof( Query ), ""COL_GREY"Amount Withdrawn:"COL_WHITE" %s\n"COL_GREY"Current Balance:"COL_WHITE" %s\n"COL_GREY"Current Money:{FFFFFF} %s", cash_format( iWithdraw ), cash_format( g_gangData[ gangid ] [ E_BANK ] ), cash_format( GetPlayerCash( playerid ) ) );
ShowPlayerDialog( playerid, DIALOG_GANG_BANK_INFO, DIALOG_STYLE_MSGBOX, "{FFFFFF}Gang Account", Query, "Ok", "Back" );
}
return 1;
}
if ( dialogid == DIALOG_GANG_BANK_DEPOSIT )
{
if ( !response )
return ShowPlayerBankMenuDialog( playerid );
if ( ! IsPlayerSecurityVerified( playerid ) )
return SendError( playerid, "You must be verified in order to use this feature. "COL_YELLOW"(use /verify)" );
new
iDeposit,
gangid = p_GangID[ playerid ]
;
if ( gangid == INVALID_GANG_ID )
return SendError( playerid, "You must be in a gang to use this feature." );
if ( IsPlayerJailed( playerid ) )
return SendError( playerid, "You cannot use this while you're in jail." );
if ( strmatch( inputtext, "MAX" ) || strmatch( inputtext, "ALL" ) )
{
iDeposit = GetPlayerCash( playerid );
}
else if ( sscanf( inputtext, "d", iDeposit ) )
{
format( Query, sizeof( Query ), "{FFFFFF}Enter the amount that you are willing to deposit into your gang bank account below.\n\n"COL_RED"Invalid amount entered!\n\n"COL_GREY"Current Balance:"COL_WHITE" %s", cash_format( g_gangData[ gangid ] [ E_BANK ] ) );
ShowPlayerDialog(playerid, DIALOG_GANG_BANK_DEPOSIT, DIALOG_STYLE_INPUT, "{FFFFFF}Gang Account", Query, "Deposit", "Back");
}
// double check
if ( iDeposit > 99999999 || iDeposit < 1 )
{
format( Query, sizeof( Query ), "{FFFFFF}Enter the amount that you are willing to deposit into your gang bank account below.\n\n"COL_RED"Invalid amount entered!\n\n"COL_GREY"Current Balance:"COL_WHITE" %s", cash_format( g_gangData[ gangid ] [ E_BANK ] ) );
ShowPlayerDialog( playerid, DIALOG_GANG_BANK_DEPOSIT, DIALOG_STYLE_INPUT, "{FFFFFF}Gang Account", Query, "Deposit", "Back" );
}
else if ( iDeposit > GetPlayerCash( playerid ) )
{
format( Query, sizeof( Query ), "{FFFFFF}Enter the amount that you are willing to deposit into your gang bank account below.\n\n"COL_RED"Insufficient balance, therefore deposition failed.\n\n"COL_GREY"Current Balance:"COL_WHITE" %s", cash_format( g_gangData[ gangid ] [ E_BANK ] ) );
ShowPlayerDialog(playerid, DIALOG_GANG_BANK_DEPOSIT, DIALOG_STYLE_INPUT, "{FFFFFF}Gang Account", Query, "Deposit", "Back");
}
else
{
g_gangData[ gangid ] [ E_BANK ] += iDeposit;
GivePlayerCash( playerid, -iDeposit );
SaveGangData( gangid );
// transaction
format( szNormalString, sizeof( szNormalString ), "INSERT INTO `TRANSACTIONS` (`TO_ID`, `FROM_ID`, `CASH`, `NATURE`) VALUES (%d, %d, %d, 'gang deposit')", p_AccountID[ playerid ], g_gangData[ gangid ] [ E_SQL_ID ], iDeposit );
mysql_single_query( szNormalString );
// deposit
SendClientMessageToGang( gangid, g_gangData[ gangid ] [ E_COLOR ], "[GANG]"COL_GREY" %s(%d) has deposited %s into the gang bank account.", ReturnPlayerName( playerid ), playerid, cash_format( iDeposit ) );
format( Query, sizeof( Query ), ""COL_GREY"Amount Deposited:"COL_WHITE" %s\n"COL_GREY"Current Balance:"COL_WHITE" %s\n"COL_GREY"Current Money:{FFFFFF} %s", cash_format( iDeposit ), cash_format( g_gangData[ gangid ] [ E_BANK ] ), cash_format( GetPlayerCash( playerid ) ) );
ShowPlayerDialog( playerid, DIALOG_GANG_BANK_INFO, DIALOG_STYLE_MSGBOX, "{FFFFFF}Gang Account", Query, "Ok", "Back" );
}
return 1;
}
if ( dialogid == DIALOG_HOUSES ) if ( dialogid == DIALOG_HOUSES )
{ {
if ( ! response ) if ( ! response )
@ -6599,7 +6355,7 @@ public OnDialogResponse( playerid, dialogid, response, listitem, inputtext[ ] )
""COL_GREY"Kills:{FFFFFF} %d\n"\ ""COL_GREY"Kills:{FFFFFF} %d\n"\
""COL_GREY"Deaths:{FFFFFF} %d\n"\ ""COL_GREY"Deaths:{FFFFFF} %d\n"\
""COL_GREY"Ratio (K/D):{FFFFFF} %0.2f\n", ""COL_GREY"Ratio (K/D):{FFFFFF} %0.2f\n",
GetPlayerScore( pID ), number_format( total_experience, .decimals = 0 ), cash_format( GetPlayerCash( pID ) ), cash_format( p_BankMoney[ pID ] ), p_Kills[ pID ], p_Deaths[ pID ], floatdiv( p_Kills[ pID ], p_Deaths[ pID ] ) ); GetPlayerScore( pID ), number_format( total_experience, .decimals = 0 ), cash_format( GetPlayerCash( pID ) ), cash_format( GetPlayerBankMoney( pID ) ), p_Kills[ pID ], p_Deaths[ pID ], floatdiv( p_Kills[ pID ], p_Deaths[ pID ] ) );
format( szLargeString, 800, "%s"COL_GREY"Owned Houses:{FFFFFF} %d (Limit %d)\n"\ format( szLargeString, 800, "%s"COL_GREY"Owned Houses:{FFFFFF} %d (Limit %d)\n"\
""COL_GREY"Owned Vehicles:{FFFFFF} %d (Limit %d)\n"\ ""COL_GREY"Owned Vehicles:{FFFFFF} %d (Limit %d)\n"\
@ -7155,9 +6911,9 @@ stock SavePlayerData( playerid, bool: logout = false )
if ( IsPlayerCuffed( playerid ) || IsPlayerTazed( playerid ) || IsPlayerTied( playerid ) || p_LeftCuffed{ playerid } || p_QuitToAvoidTimestamp[ playerid ] > g_iTime ) if ( IsPlayerCuffed( playerid ) || IsPlayerTazed( playerid ) || IsPlayerTied( playerid ) || p_LeftCuffed{ playerid } || p_QuitToAvoidTimestamp[ playerid ] > g_iTime )
bQuitToAvoid = true; bQuitToAvoid = true;
format( Query, sizeof( Query ), "UPDATE `USERS` SET `SCORE`=%d,`CASH`=%d,`ADMINLEVEL`=%d,`BANKMONEY`=%d,`OWNEDHOUSES`=%d,`KILLS`=%d,`DEATHS`=%d,`VIP_PACKAGE`=%d,`OWNEDCARS`=%d,`LASTLOGGED`=%d,`VIP_EXPIRE`=%d,`LAST_SKIN`=%d,`BURGLARIES`=%d,`UPTIME`=%d,`ARRESTS`=%d,`CITY`=%d,`METH`=%d,`SODA`=%d,`ACID`=%d,`GAS`=%d,", format( Query, sizeof( Query ), "UPDATE `USERS` SET `SCORE`=%d,`ADMINLEVEL`=%d,`OWNEDHOUSES`=%d,`KILLS`=%d,`DEATHS`=%d,`VIP_PACKAGE`=%d,`OWNEDCARS`=%d,`LASTLOGGED`=%d,`VIP_EXPIRE`=%d,`LAST_SKIN`=%d,`BURGLARIES`=%d,`UPTIME`=%d,`ARRESTS`=%d,`CITY`=%d,`METH`=%d,`SODA`=%d,`ACID`=%d,`GAS`=%d,",
GetPlayerScore( playerid ), GetPlayerCash( playerid ), p_AdminLevel[ playerid ], GetPlayerScore( playerid ), p_AdminLevel[ playerid ],
p_BankMoney[ playerid ], p_OwnedHouses[ playerid ], p_Kills[ playerid ], p_OwnedHouses[ playerid ], p_Kills[ playerid ],
p_Deaths[ playerid ], p_VIPLevel[ playerid ], p_Deaths[ playerid ], p_VIPLevel[ playerid ],
p_OwnedVehicles[ playerid ], g_iTime, p_VIPExpiretime[ playerid ], p_OwnedVehicles[ playerid ], g_iTime, p_VIPExpiretime[ playerid ],
p_LastSkin[ playerid ], p_Burglaries[ playerid ], p_Uptime[ playerid ], p_LastSkin[ playerid ], p_Burglaries[ playerid ], p_Uptime[ playerid ],
@ -8955,19 +8711,6 @@ stock IsPlayerInCasino( playerid ) {
return ( GetPlayerInterior( playerid ) == 10 && GetPlayerVirtualWorld( playerid ) == 23 ) || ( GetPlayerInterior( playerid ) == 1 && GetPlayerVirtualWorld( playerid ) == 82 ); return ( GetPlayerInterior( playerid ) == 10 && GetPlayerVirtualWorld( playerid ) == 23 ) || ( GetPlayerInterior( playerid ) == 1 && GetPlayerVirtualWorld( playerid ) == 82 );
} }
stock ShowPlayerBankMenuDialog( playerid )
{
new
gangid = p_GangID[ playerid ];
if ( gangid != -1 && Iter_Contains( gangs, gangid ) ) {
format( szBigString, sizeof( szBigString ), "Withdraw\nDeposit\nAccount Information\n{%06x}Gang Bank Withdraw\n{%06x}Gang Bank Deposit\n{%06x}Gang Bank Balance", g_gangData[ gangid ] [ E_COLOR ] >>> 8, g_gangData[ gangid ] [ E_COLOR ] >>> 8, g_gangData[ gangid ] [ E_COLOR ] >>> 8 );
return ShowPlayerDialog( playerid, DIALOG_BANK_MENU, DIALOG_STYLE_LIST, "{FFFFFF}Account", szBigString, "Select", "Cancel" );
}
return ShowPlayerDialog( playerid, DIALOG_BANK_MENU, DIALOG_STYLE_LIST, "{FFFFFF}Account", "Withdraw\nDeposit\nAccount Information", "Select", "Cancel" );
}
stock SetPlayerPosition( playerid, Float: x, Float: y, Float: z, interiorid = 0, worldid = 0 ) stock SetPlayerPosition( playerid, Float: x, Float: y, Float: z, interiorid = 0, worldid = 0 )
{ {
new new