adds a confirmation dialog before selling a house

This commit is contained in:
Steven Howard 2018-10-09 09:32:26 +01:00
parent 91bf3157a0
commit 7f4a463235
2 changed files with 21 additions and 9 deletions

View File

@ -208,6 +208,7 @@
#define DIALOG_IC_SELLORDERS 1198 #define DIALOG_IC_SELLORDERS 1198
#define DIALOG_IC_BUY 1199 #define DIALOG_IC_BUY 1199
#define DIALOG_COMPONENTS_SELL 1200 #define DIALOG_COMPONENTS_SELL 1200
#define DIALOG_HOUSE_SELL 1201
/* ** Hooks ** */ /* ** Hooks ** */
hook OnDialogResponse( playerid, dialogid, response, listitem, inputtext[ ] ) hook OnDialogResponse( playerid, dialogid, response, listitem, inputtext[ ] )

View File

@ -103,7 +103,24 @@ hook OnScriptInit( )
hook OnDialogResponse( playerid, dialogid, response, listitem, inputtext[ ] ) hook OnDialogResponse( playerid, dialogid, response, listitem, inputtext[ ] )
{ {
if ( dialogid == DIALOG_HOUSE_CONFIG && response ) if ( dialogid == DIALOG_HOUSE_SELL && response )
{
new
ID = GetPVarInt( playerid, "house_sell_id" );
format( szBigString, sizeof( szBigString ), "[SELL] [%s] %s | %s | %d\r\n", getCurrentDate( ), ReturnPlayerName( playerid ), g_houseData[ ID ][ E_OWNER ], ID );
AddFileLogLine( "log_houses.txt", szBigString );
p_OwnedHouses[ playerid ] --;
SetHouseForAuction( ID );
GivePlayerCash( playerid, ( g_houseData[ ID ] [ E_COST ] / 2 ) );
SetPlayerPos( playerid, g_houseData[ ID ] [ E_EX ], g_houseData[ ID ] [ E_EY ], g_houseData[ ID ] [ E_EZ ] );
SetPlayerInterior( playerid, 0 ), SetPlayerVirtualWorld( playerid, 0 );
SendServerMessage( playerid, "You have successfully sold your house for "COL_GOLD"%s", cash_format( ( g_houseData[ ID ] [ E_COST ] / 2 ) ) );
DeletePVar( playerid, "house_sell_id" );
return 1;
}
else if ( dialogid == DIALOG_HOUSE_CONFIG && response )
{ {
if ( p_InHouse[ playerid ] == -1 ) return SendError( playerid, "You're not inside any house." ); if ( p_InHouse[ playerid ] == -1 ) return SendError( playerid, "You're not inside any house." );
if ( !strmatch( g_houseData[ p_InHouse[ playerid ] ] [ E_OWNER ], ReturnPlayerName( playerid ) ) ) return SendError( playerid, "You are not the owner of this house." ); if ( !strmatch( g_houseData[ p_InHouse[ playerid ] ] [ E_OWNER ], ReturnPlayerName( playerid ) ) ) return SendError( playerid, "You are not the owner of this house." );
@ -461,14 +478,8 @@ CMD:h( playerid, params[ ] )
else if ( !strmatch( g_houseData[ ID ] [ E_OWNER ], ReturnPlayerName( playerid ) ) ) return SendError( playerid, "You are not the owner of this house." ); else if ( !strmatch( g_houseData[ ID ] [ E_OWNER ], ReturnPlayerName( playerid ) ) ) return SendError( playerid, "You are not the owner of this house." );
else else
{ {
format( szBigString, sizeof( szBigString ), "[SELL] [%s] %s | %s | %d\r\n", getCurrentDate( ), ReturnPlayerName( playerid ), g_houseData[ ID ][ E_OWNER ], ID ); SetPVarInt( playerid, "house_sell_id", ID );
AddFileLogLine( "log_houses.txt", szBigString ); ShowPlayerDialog( playerid, DIALOG_HOUSE_SELL, DIALOG_STYLE_MSGBOX, ""COL_WHITE"Sell House", sprintf( ""COL_WHITE"Are you sure you want to sell this house for "COL_GOLD"%s"COL_WHITE"?", cash_format( ( g_houseData[ ID ] [ E_COST ] / 2 ) ) ), "Sell", "Cancel" );
p_OwnedHouses[ playerid ] --;
SetHouseForAuction( ID );
GivePlayerCash( playerid, ( g_houseData[ ID ] [ E_COST ] / 2 ) );
SetPlayerPos( playerid, g_houseData[ ID ] [ E_EX ], g_houseData[ ID ] [ E_EY ], g_houseData[ ID ] [ E_EZ ] );
SetPlayerInterior( playerid, 0 ), SetPlayerVirtualWorld( playerid, 0 );
SendServerMessage( playerid, "You have successfully sold your house for "COL_GOLD"%s", cash_format( ( g_houseData[ ID ] [ E_COST ] / 2 ) ) );
} }
return 1; return 1;
} }