add stock
This commit is contained in:
parent
24364d6c2d
commit
e7aab90583
@ -5,16 +5,6 @@
|
||||
* Purpose: Battle Royale minigame implementation for SA-MP
|
||||
*/
|
||||
|
||||
/*
|
||||
TODO:
|
||||
[X] Make pickups work
|
||||
[ ] Messages fix
|
||||
[X] Prize pool deposit
|
||||
[X] Invisible walls
|
||||
[ ] Make areas
|
||||
[X] Hide player name tags / checkpoints
|
||||
*/
|
||||
|
||||
/* ** Includes ** */
|
||||
#include < YSI\y_hooks >
|
||||
#include < YSI\y_iterate >
|
||||
@ -115,7 +105,7 @@ static const
|
||||
{ "Tierra Robada", -2989.5, 2074.5, -1144.5, 2990.5, 150, 10 },
|
||||
{ "Red County", -276.0, -1024.0, 2997.0, 694.0, 150, 20 },
|
||||
{ "Bone County", -1848.0, 565.0, 1061.0, 2956.0, BR_MAX_PICKUPS, BR_MAX_VEHICLES },
|
||||
{ "Flint County", -2988.0, -2988.5, 170, -634.5, BR_MAX_PICKUPS, BR_MAX_VEHICLES }
|
||||
{ "Flint County", -2988.0, -2988.5, 170.0, -634.5, BR_MAX_PICKUPS, BR_MAX_VEHICLES }
|
||||
}
|
||||
;
|
||||
|
||||
@ -296,6 +286,8 @@ hook OnDialogResponse( playerid, dialogid, response, listitem, inputtext[ ] )
|
||||
}
|
||||
|
||||
GivePlayerCash( playerid, -10000 );
|
||||
br_lobbyData[ lobbyid ] [ E_PRIZE_POOL ] += 10000;
|
||||
|
||||
BattleRoyale_JoinLobby( playerid, lobbyid );
|
||||
BattleRoyale_SendMessageAll( "%s(%d) has created a Battle Royale lobby!", ReturnPlayerName( playerid ), playerid );
|
||||
|
||||
@ -372,6 +364,14 @@ hook OnDialogResponse( playerid, dialogid, response, listitem, inputtext[ ] )
|
||||
}
|
||||
return BattleRoyale_EditLobby( playerid, lobbyid );
|
||||
}
|
||||
else if ( listitem == 9 ) // start lobby option
|
||||
{
|
||||
if ( Iter_Count( battleroyaleplayers[ lobbyid ] ) < 2 ) {
|
||||
return SendError( playerid, "You need at least 2 players in your lobby to start this match." );
|
||||
}
|
||||
BattleRoyale_StartGame( lobbyid );
|
||||
return BattleRoyale_EditLobby( playerid, lobbyid );
|
||||
}
|
||||
else
|
||||
{
|
||||
SetPVarInt( playerid, "editing_field", listitem );
|
||||
@ -540,11 +540,16 @@ CMD:battleroyale( playerid, params[ ] )
|
||||
}
|
||||
else if ( strmatch( params, "start" ) )
|
||||
{
|
||||
if ( Iter_Count( battleroyaleplayers[ lobbyid ] ) < 2 ) {
|
||||
return SendError( playerid, "You need at least 2 players in your lobby to start this match." );
|
||||
}
|
||||
return BattleRoyale_StartGame( lobbyid );
|
||||
}
|
||||
else if ( strmatch ( params, "leave" ) )
|
||||
{
|
||||
return BattleRoyale_RemovePlayer( playerid, true );
|
||||
BattleRoyale_SendMessage( lobbyid, "%s(%d) has disconnected from the match!", ReturnPlayerName( playerid ), playerid );
|
||||
BattleRoyale_RemovePlayer( playerid, true );
|
||||
return 1;
|
||||
}
|
||||
else if ( ! strcmp( params, "donate", false, 6 ) )
|
||||
{
|
||||
@ -578,7 +583,8 @@ static stock BattleRoyale_CreateLobby( playerid )
|
||||
|
||||
br_lobbyData[ lobbyid ] [ E_LIMIT ] = 6;
|
||||
br_lobbyData[ lobbyid ] [ E_AREA_ID ] = 0;
|
||||
br_lobbyData[ lobbyid ] [ E_ENTRY_FEE ] = 1000;
|
||||
br_lobbyData[ lobbyid ] [ E_ENTRY_FEE ] = 10000;
|
||||
br_lobbyData[ lobbyid ] [ E_PRIZE_POOL ] = 0;
|
||||
br_lobbyData[ lobbyid ] [ E_HOST ] = playerid;
|
||||
br_lobbyData[ lobbyid ] [ E_STATUS ] = E_STATUS_WAITING;
|
||||
|
||||
@ -611,7 +617,8 @@ static stock BattleRoyale_EditLobby( playerid, lobbyid )
|
||||
"Health\t"COL_GREY"%0.2f%%\n" \
|
||||
"Armour\t"COL_GREY"%0.2f%%\n" \
|
||||
"Walking Weapons Only\t%s\n" \
|
||||
"CAC Only\t%s\n",
|
||||
"CAC Only\t%s\n" \
|
||||
""COL_PURPLE"Start Match\t"COL_PURPLE">>>",
|
||||
br_lobbyData[ lobbyid ] [ E_NAME ],
|
||||
br_lobbyData[ lobbyid ] [ E_PASSWORD ],
|
||||
br_lobbyData[ lobbyid ] [ E_LIMIT ],
|
||||
@ -740,9 +747,13 @@ hook OnPlayerStreamIn( playerid, forplayerid )
|
||||
|
||||
static stock BattleRoyale_EndGame( lobbyid )
|
||||
{
|
||||
new prize = floatround( float( br_lobbyData[ lobbyid ] [ E_PRIZE_POOL ] ) / float( Iter_Count( battleroyaleplayers[ lobbyid ] ) ), floatround_ceil );
|
||||
new fees_incurred = floatround( float( br_lobbyData[ lobbyid ] [ E_PRIZE_POOL ] ) * 0.2 );
|
||||
|
||||
new Float: distribution = floatround( float( prize ) / float( br_lobbyData[ lobbyid ] [ E_PRIZE_POOL ] ) * 100.0 );
|
||||
new prize = floatround( float( br_lobbyData[ lobbyid ] [ E_PRIZE_POOL ] - fees_incurred ) / float( Iter_Count( battleroyaleplayers[ lobbyid ] ) ), floatround_ceil );
|
||||
|
||||
new Float: distribution = floatround( float( prize ) / float( br_lobbyData[ lobbyid ] [ E_PRIZE_POOL ] - fees_incurred ) * 100.0 );
|
||||
|
||||
StockMarket_UpdateEarnings( E_STOCK_BATTLE_ROYAL_CENTER, fees_incurred, 0.5 );
|
||||
|
||||
foreach ( new playerid : battleroyaleplayers[ lobbyid ] )
|
||||
{
|
||||
|
@ -63,7 +63,8 @@ enum
|
||||
E_STOCK_PAWN_STORE,
|
||||
E_STOCK_CASINO,
|
||||
E_STOCK_GOVERNMENT,
|
||||
E_STOCK_AVIATION
|
||||
E_STOCK_AVIATION,
|
||||
E_STOCK_BATTLE_ROYAL_CENTER
|
||||
};
|
||||
|
||||
static stock
|
||||
@ -93,6 +94,7 @@ hook OnScriptInit( )
|
||||
CreateStockMarket( E_STOCK_CASINO, "Casino", "CAS", 100000.0, 990.0, 7500.0, 100000.0, 150.0, "Money lost by players gambling" );
|
||||
CreateStockMarket( E_STOCK_GOVERNMENT, "Government", "GOV", 100000.0, 750.0, 7500.0, 100000.0, 150.0, "Fireman and LEO activities" );
|
||||
CreateStockMarket( E_STOCK_AVIATION, "Elitas Travel", "ET", 100000.0, 50.0, 500.0, 100000.0, 20.0, "Completed pilot missions and intercity travel" );
|
||||
CreateStockMarket( E_STOCK_BATTLE_ROYAL_CENTER, "Battle Royale Center", "BRC", 100000.0, 50.0, 500.0, 100000.0, 20.0, "Battle Royale minigame fees" );
|
||||
|
||||
// force inactive share holders to sell their shares on startup
|
||||
mysql_tquery( dbHandle, sprintf( "SELECT so.* FROM `STOCK_OWNERS` so JOIN `USERS` u ON so.`USER_ID`=u.`ID` WHERE UNIX_TIMESTAMP()-u.`LASTLOGGED` > 604800 AND so.`USER_ID` != %d", STOCK_MM_USER_ID ), "StockMarket_ForceShareSale", "" );
|
||||
|
Loading…
Reference in New Issue
Block a user