fix some dividend pool issue
This commit is contained in:
parent
ae01993db4
commit
4cb9be95fb
@ -52,11 +52,6 @@ static stock
|
|||||||
Float: p_PlayerShares [ MAX_PLAYERS ] [ MAX_STOCKS ]
|
Float: p_PlayerShares [ MAX_PLAYERS ] [ MAX_STOCKS ]
|
||||||
;
|
;
|
||||||
|
|
||||||
/* ** Forwards / Getters ** */
|
|
||||||
stock Float: StockMarket_GetCurrentPrice( stockid ) {
|
|
||||||
return g_stockMarketReportData[ stockid ] [ 0 ] [ E_PRICE ];
|
|
||||||
}
|
|
||||||
|
|
||||||
/* ** Hooks ** */
|
/* ** Hooks ** */
|
||||||
hook OnScriptInit( )
|
hook OnScriptInit( )
|
||||||
{
|
{
|
||||||
@ -347,10 +342,9 @@ thread StockMarket_OnShowShares( playerid )
|
|||||||
|
|
||||||
if ( Iter_Contains( stockmarkets, stockid ) )
|
if ( Iter_Contains( stockmarkets, stockid ) )
|
||||||
{
|
{
|
||||||
new Float: current_price = StockMarket_GetCurrentPrice( stockid );
|
new Float: current_price = g_stockMarketReportData[ stockid ] [ 1 ] [ E_PRICE ];
|
||||||
new Float: shares = cache_get_field_content_float( row, "SHARES" );
|
new Float: shares = cache_get_field_content_float( row, "SHARES" );
|
||||||
|
|
||||||
|
|
||||||
format(
|
format(
|
||||||
szLargeString, sizeof( szLargeString ),
|
szLargeString, sizeof( szLargeString ),
|
||||||
"%s%s (%s)\t%s\t%s\t"COL_GREEN"%s\n",
|
"%s%s (%s)\t%s\t%s\t"COL_GREEN"%s\n",
|
||||||
@ -442,10 +436,18 @@ thread Stock_UpdateMaximumShares( stockid )
|
|||||||
new
|
new
|
||||||
rows = cache_get_row_count( );
|
rows = cache_get_row_count( );
|
||||||
|
|
||||||
if ( rows ) {
|
if ( rows )
|
||||||
|
{
|
||||||
g_stockMarketData[ stockid ] [ E_MAX_SHARES ] = cache_get_field_content_float( 0, "SHARES_OWNED" ) + cache_get_field_content_float( 0, "SHARES_HELD" );
|
g_stockMarketData[ stockid ] [ E_MAX_SHARES ] = cache_get_field_content_float( 0, "SHARES_OWNED" ) + cache_get_field_content_float( 0, "SHARES_HELD" );
|
||||||
printf("%f shares", g_stockMarketData[ stockid ] [ E_MAX_SHARES ]);
|
|
||||||
} else {
|
// rows shown but still showing as 0 maximum shares? set it to the ipo issued amount
|
||||||
|
if ( ! g_stockMarketData[ stockid ] [ E_MAX_SHARES ] )
|
||||||
|
{
|
||||||
|
g_stockMarketData[ stockid ] [ E_MAX_SHARES ] = g_stockMarketData[ stockid ] [ E_IPO_SHARES ];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
g_stockMarketData[ stockid ] [ E_MAX_SHARES ] = g_stockMarketData[ stockid ] [ E_IPO_SHARES ];
|
g_stockMarketData[ stockid ] [ E_MAX_SHARES ] = g_stockMarketData[ stockid ] [ E_IPO_SHARES ];
|
||||||
}
|
}
|
||||||
return 1;
|
return 1;
|
||||||
@ -468,6 +470,8 @@ thread StockMarket_OnCancelOrder( playerid )
|
|||||||
|
|
||||||
mysql_single_query( sprintf( "DELETE FROM `STOCK_SELL_ORDERS` WHERE `STOCK_ID`=%d AND `USER_ID`=%d", stockid, player_account ) );
|
mysql_single_query( sprintf( "DELETE FROM `STOCK_SELL_ORDERS` WHERE `STOCK_ID`=%d AND `USER_ID`=%d", stockid, player_account ) );
|
||||||
StockMarket_GiveShares( stockid, player_account, shares );
|
StockMarket_GiveShares( stockid, player_account, shares );
|
||||||
|
|
||||||
|
SendServerMessage( playerid, "You have cancelled your order of to sell %s shares of %s.", number_format( shares, .decimals = 3 ), g_stockMarketData[ stockid ] [ E_NAME ] );
|
||||||
}
|
}
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
@ -566,9 +570,9 @@ stock StockMarket_UpdateEarnings( stockid, amount )
|
|||||||
if ( ! Iter_Contains( stockmarkets, stockid ) )
|
if ( ! Iter_Contains( stockmarkets, stockid ) )
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
printf( "Current Pool: %f, Prior Pool: %f", g_stockMarketReportData[ stockid ] [ 0 ] [ E_POOL ], g_stockMarketReportData[ stockid ] [ 1 ] [ E_POOL ] );
|
|
||||||
g_stockMarketReportData[ stockid ] [ 0 ] [ E_POOL ] += float( amount );
|
g_stockMarketReportData[ stockid ] [ 0 ] [ E_POOL ] += float( amount );
|
||||||
mysql_single_query( sprintf( "UPDATE `STOCK_REPORTS` SET `POOL` = `POOL` + %d WHERE `ID` = %d", g_stockMarketReportData[ stockid ] [ 0 ] [ E_POOL ], g_stockMarketReportData[ stockid ] [ 0 ] [ E_SQL_ID ] ) );
|
printf( "Current Pool: %f, Prior Pool: %f", g_stockMarketReportData[ stockid ] [ 0 ] [ E_POOL ], g_stockMarketReportData[ stockid ] [ 1 ] [ E_POOL ] );
|
||||||
|
mysql_single_query( sprintf( "UPDATE `STOCK_REPORTS` SET `POOL`=%f WHERE `ID` = %d", g_stockMarketReportData[ stockid ] [ 0 ] [ E_POOL ], g_stockMarketReportData[ stockid ] [ 0 ] [ E_SQL_ID ] ) );
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user