new tax system
This commit is contained in:
parent
26189aca7c
commit
12bd572765
@ -13,7 +13,7 @@
|
||||
*/
|
||||
|
||||
#pragma compat 1
|
||||
#pragma option -d3
|
||||
// #pragma option -d3
|
||||
#pragma dynamic 7200000
|
||||
// #define DEBUG_MODE
|
||||
|
||||
@ -115,7 +115,6 @@ native gpci ( playerid, serial[ ], len );
|
||||
// #define ITER_NONE -1
|
||||
|
||||
/* Dynamic Macros */
|
||||
//#define GetTaxRate() (GetGVarFloat("taxrate"))
|
||||
#define IsDoubleXP() (GetGVarInt("doublexp")!=0)
|
||||
#define IsProxiesBanned() (GetGVarInt("proxyban")!=0)
|
||||
|
||||
@ -2102,7 +2101,7 @@ new
|
||||
g_casinoRewardsItems[ ] [ E_REWARDS_DATA ] = {
|
||||
{ "Fireworks", 2500.0 },
|
||||
{ "10 Explosive Bullets", 5000.0 },
|
||||
{ "No Tax For 1 Hour", 25000.0 },
|
||||
// { "No Tax For 1 Hour", 25000.0 },
|
||||
{ "Highroller Access", 200000.0 }
|
||||
},
|
||||
g_casinoRewardsShopItems[ ] = {
|
||||
@ -3031,7 +3030,7 @@ new
|
||||
p_AntiEmpSpam [ MAX_PLAYERS ],
|
||||
bool: p_inPaintBall [ MAX_PLAYERS char ],
|
||||
p_Scissors [ MAX_PLAYERS ],
|
||||
p_TaxTime [ MAX_PLAYERS ],
|
||||
// p_TaxTime [ MAX_PLAYERS ],
|
||||
bool: p_GPSToggled [ MAX_PLAYERS char ],
|
||||
p_GPSTimer [ MAX_PLAYERS ] = { 0xFF, ... },
|
||||
p_GPSLocation [ MAX_PLAYERS ],
|
||||
@ -3270,7 +3269,7 @@ stock Float: distanceFromSafe( iPlayer, iRobbery, &Float: fDistance = Float: 0x7
|
||||
static
|
||||
Float: fX, Float: fY, Float: fZ;
|
||||
|
||||
if ( iRobbery == -1 )
|
||||
if ( ! Iter_Contains( RobberyCount, iRobbery ) )
|
||||
return fDistance;
|
||||
|
||||
if ( g_robberyData[ iRobbery ] [ E_WORLD ] != -1 && g_robberyData[ iRobbery ] [ E_WORLD ] != GetPlayerVirtualWorld( iPlayer ) )
|
||||
@ -3334,7 +3333,10 @@ public OnGameModeInit()
|
||||
}
|
||||
|
||||
/* ** Server Variables ** */
|
||||
AddServerVariable( "taxrate", "5.0", GLOBAL_VARTYPE_FLOAT );
|
||||
AddServerVariable( "taxtime", "0", GLOBAL_VARTYPE_INT );
|
||||
AddServerVariable( "taxrate", "1.0", GLOBAL_VARTYPE_FLOAT );
|
||||
AddServerVariable( "taxprofit", "0.0", GLOBAL_VARTYPE_FLOAT );
|
||||
AddServerVariable( "taxprofit_prev", "0.0", GLOBAL_VARTYPE_FLOAT );
|
||||
AddServerVariable( "doublexp", "0", GLOBAL_VARTYPE_INT );
|
||||
AddServerVariable( "eventbank", "0", GLOBAL_VARTYPE_INT );
|
||||
AddServerVariable( "eventhost", "0", GLOBAL_VARTYPE_INT );
|
||||
@ -4283,8 +4285,24 @@ public OnGameModeInit()
|
||||
g_apartmentElevatorDoor2[ level ] = CreateDynamicObject( 18757, -1955.05, 1361.64, Z, 0.00, 0.00, -90.00 );
|
||||
}
|
||||
|
||||
// Houses
|
||||
SetDynamicObjectMaterialText( CreateDynamicObject( 10447, -2550.1719, 54.5625, 14.3906, 0.00, 0.00, 0.00, .streamdistance = 500.0, .priority = 100 ), 40, "The Lost", 7, "Times New Roman", 24, 1, -1, -16777216, 1 ); // The Lost
|
||||
// The Lost And Damned
|
||||
tmpVariable = CreateDynamicObject( 10447, -2550.173339, 54.568466, 14.390675, 0.000000, 0.000000, 0.000000, .streamdistance = 500.0, .priority = 100 );
|
||||
SetDynamicObjectMaterial( tmpVariable, 8, 10969, "scum_sfse", "ws_apartmentbrown1", 0 );
|
||||
SetDynamicObjectMaterial( tmpVariable, 14, 10969, "scum_sfse", "ws_apartmentbrown2", 0 );
|
||||
SetDynamicObjectMaterial( tmpVariable, 5, 8399, "vgs_shops", "vegasclubmural_128", 0 );
|
||||
SetDynamicObjectMaterial( tmpVariable, 6, 8399, "vgs_shops", "vegasclubmural_128", 0 );
|
||||
SetDynamicObjectMaterialText( tmpVariable, 7, "The Lost", 120, "Arial", 80, 1, -1, -11980516, 1 );
|
||||
CreateDynamicObject( 1536, -2587.711425, 58.402435, 3.336049, 0.000000, 0.000000, 90.000000, -1, -1, -1 );
|
||||
CreateDynamicObject( 1536, -2587.741455, 61.402610, 3.336049, 0.000000, 0.000000, -90.000000, -1, -1, -1 );
|
||||
tmpVariable = CreateDynamicObject( 3525, -2588.295654, 58.166000, 4.775937, 0.000000, 0.000000, -90.000000, -1, -1, -1 );
|
||||
SetDynamicObjectMaterial( tmpVariable, 2, 8463, "vgseland", "tiadbuddhagold", 0 );
|
||||
SetDynamicObjectMaterial( tmpVariable, 1, 17298, "weefarmcuntw", "sjmbigold2", 0 );
|
||||
tmpVariable = CreateDynamicObject( 3525, -2588.345703, 61.656021, 4.775937, 0.000000, 0.000000, -90.000000, -1, -1, -1 );
|
||||
SetDynamicObjectMaterial( tmpVariable, 1, 17298, "weefarmcuntw", "sjmbigold2", 0 );
|
||||
SetDynamicObjectMaterial( tmpVariable, 2, 8463, "vgseland", "tiadbuddhagold", 0 );
|
||||
tmpVariable = CreateDynamicObject( 3524, -2587.017578, 59.971229, 4.842026, 35.399997, 0.000000, -90.000000, -1, -1, -1 );
|
||||
SetDynamicObjectMaterial( tmpVariable, 2, 8463, "vgseland", "tiadbuddhagold", 0 );
|
||||
SetDynamicObjectMaterialText( tmpVariable, 1, "a", 0, "arial", 0, 0, 0, 0, 0 );
|
||||
|
||||
// Lumberjack
|
||||
SetDynamicObjectMaterial( CreateDynamicObject( 12814, -2337.1, -94.00, 34.28, 0.0, 0.0, 270.0, .streamdistance = 500.0, .priority = 100 ), 0, 19381, "all_walls", "desgreengrass" );
|
||||
@ -4430,7 +4448,7 @@ public OnGameModeInit()
|
||||
mysql_function_query( dbHandle, "DELETE g FROM `GARAGES` g JOIN `USERS` u ON u.`ID` = g.`OWNER` WHERE UNIX_TIMESTAMP()-u.`LASTLOGGED` > 1209600;", true, "onRemoveInactiveRows", "d", 6 );
|
||||
|
||||
// Remove 25% of wealth off 2 weeks inactive players.
|
||||
mysql_function_query( dbHandle, "UPDATE `USERS` SET `CASH`=`CASH`*0.75,`BANKMONEY`=`BANKMONEY`*0.75 WHERE UNIX_TIMESTAMP()-`LASTLOGGED`>1209600", true, "onRemoveInactiveRows", "d", 7 );
|
||||
// mysql_function_query( dbHandle, "UPDATE `USERS` SET `CASH`=`CASH`*0.75,`BANKMONEY`=`BANKMONEY`*0.75 WHERE UNIX_TIMESTAMP()-`LASTLOGGED`>1209600", true, "onRemoveInactiveRows", "d", 7 );
|
||||
#endif
|
||||
|
||||
/* ** Houses/Bribes/ETC **/
|
||||
@ -4876,6 +4894,12 @@ public OnServerUpdate( )
|
||||
g_randomMessageTick = g_iTime + 30;
|
||||
}
|
||||
|
||||
// Time For Tax?
|
||||
if ( g_iTime >= GetGVarInt( "taxtime" ) ) {
|
||||
UpdateServerVariable( "taxtime", g_iTime + 86400, 0.0, "", GLOBAL_VARTYPE_INT );
|
||||
BeginEconomyTax( );
|
||||
}
|
||||
|
||||
// Happy Hour
|
||||
new
|
||||
playersOnline = Iter_Count(Player);
|
||||
@ -5436,6 +5460,11 @@ public OnServerUpdate( )
|
||||
// Restore and Replenish Stuff
|
||||
if ( g_iTime > g_RestoreRobberiesBribes )
|
||||
{
|
||||
#if defined WEAPON_DROP_ENABLED
|
||||
// Replenish Weapon Drops
|
||||
ClearInactiveWeaponDrops( g_iTime );
|
||||
#endif
|
||||
|
||||
// Replenish Bribes
|
||||
foreach(new bribeid : BribeCount) if ( ( GetTickCount( ) - g_bribeData[ bribeid ] [ E_TIMESTAMP ] ) > MAX_BRIBE_WAIT && g_bribeData[ bribeid ] [ E_DISABLED ] == true )
|
||||
UpdateDynamic3DTextLabelText( g_bribeData[ bribeid ] [ E_LABEL ], COLOR_GOLD, sprintf( "Bribe(%d)", bribeid ) ), g_bribeData[ bribeid ] [ E_DISABLED ] = false;
|
||||
@ -5456,7 +5485,6 @@ public OnServerUpdate( )
|
||||
ReplaceObjectModel( g_atmData[ i ] [ E_OBJECT ], 19324 );
|
||||
}
|
||||
|
||||
|
||||
// Replenish product
|
||||
foreach (new businessid : business)
|
||||
{
|
||||
@ -5647,11 +5675,11 @@ public ZoneTimer( )
|
||||
// Money Grub
|
||||
if ( Iter_Contains( gangs, owner_gang ) )
|
||||
{
|
||||
if ( g_gangData[ owner_gang ] [ E_BANK ] > 250000 )
|
||||
{
|
||||
new afk_opmembers, online_opmembers = GetOnlineGangMembers( owner_gang, .afk_members = afk_opmembers );
|
||||
new zone_money = Turf_GetProfitability( z, online_opmembers - afk_opmembers );
|
||||
new afk_opmembers, online_opmembers = GetOnlineGangMembers( owner_gang, .afk_members = afk_opmembers );
|
||||
new zone_money = Turf_GetProfitability( z, online_opmembers - afk_opmembers );
|
||||
|
||||
if ( g_gangData[ owner_gang ] [ E_BANK ] > zone_money )
|
||||
{
|
||||
// deduct from gang bank and give to op, take 10% as fee
|
||||
g_gangData[ owner_gang ] [ E_BANK ] -= zone_money;
|
||||
SaveGangData( owner_gang );
|
||||
@ -7292,7 +7320,72 @@ public OnPlayerTakePlayerDamage( playerid, issuerid, &Float: amount, weaponid, b
|
||||
function hidedamagetd_Timer( playerid )
|
||||
return PlayerTextDrawHide( playerid, p_DamageTD[ playerid ] );
|
||||
|
||||
stock GetPlayerTax( playerid, &Float: tax_percentage_formula = 0.0 )
|
||||
stock BeginEconomyTax( starting = 1 ) {
|
||||
mysql_function_query( dbHandle, "SELECT USER_CASH, BIZ_CASH, GANG_CASH FROM (SELECT (SUM(BANKMONEY)+SUM(CASH)) USER_CASH FROM USERS) A CROSS JOIN (SELECT SUM(BANK) BIZ_CASH FROM BUSINESSES) B CROSS JOIN (SELECT SUM(BANK) GANG_CASH FROM GANGS) C", true, "OnTaxEconomy", "i", starting );
|
||||
}
|
||||
|
||||
thread OnTaxEconomy( starting )
|
||||
{
|
||||
new rows;
|
||||
cache_get_data( rows, tmpVariable );
|
||||
if ( ! rows ) return 1;
|
||||
|
||||
new user_cash = cache_get_field_content_int( 0, "USER_CASH", dbHandle );
|
||||
new biz_cash = cache_get_field_content_int( 0, "BIZ_CASH", dbHandle );
|
||||
new gang_cash = cache_get_field_content_int( 0, "GANG_CASH", dbHandle );
|
||||
|
||||
// total_thousands
|
||||
new Float: total_thousands = float( user_cash + biz_cash + gang_cash ) / 1000000.0;
|
||||
|
||||
// step
|
||||
if ( starting == 1 )
|
||||
{
|
||||
new Float: tax_rate = GetGVarFloat( "taxrate" ) / 100.0; // 1%
|
||||
|
||||
// players
|
||||
foreach ( new playerid : Player ) {
|
||||
new
|
||||
player_tax = floatround( float( GetPlayerTotalCash( playerid ) ) * tax_rate );
|
||||
|
||||
if ( player_tax > 0 ) {
|
||||
ShowPlayerHelpDialog( playerid, 5000, sprintf( "~w~You have paid ~r~%s~w~ in tax", number_format( player_tax ) ) );
|
||||
GivePlayerCash( playerid, -player_tax );
|
||||
}
|
||||
}
|
||||
|
||||
// businesses
|
||||
foreach ( new businessid : business ) {
|
||||
new business_tax = floatround( float( g_businessData[ businessid ] [ E_BANK ] ) * tax_rate );
|
||||
if ( business_tax > 0 ) g_businessData[ businessid ] [ E_BANK ] -= business_tax;
|
||||
}
|
||||
|
||||
// gangs
|
||||
foreach ( new gangid : gangs ) {
|
||||
new gang_tax = floatround( float( g_gangData[ gangid ] [ E_BANK ] ) * tax_rate );
|
||||
if ( gang_tax > 0 ) g_gangData[ gangid ] [ E_BANK ] -= gang_tax;
|
||||
}
|
||||
|
||||
// queries
|
||||
mysql_single_query( sprintf( "UPDATE `USERS` SET `CASH`=`CASH`*%f,`BANKMONEY`=`BANKMONEY`*%f WHERE `ONLINE`=0 AND (`BANKMONEY`+`CASH`)>0", 1.0 - tax_rate, 1.0 - tax_rate ) );
|
||||
mysql_single_query( sprintf( "UPDATE `BUSINESSES` SET `BANK`=`BANK`*%f WHERE `BANK`>0", 1.0 - tax_rate ) );
|
||||
mysql_single_query( sprintf( "UPDATE `GANGS` SET `BANK`=`BANK`*%f WHERE `BANK`>0", 1.0 - tax_rate ) );
|
||||
|
||||
// set current economy money
|
||||
SetGVarFloat( "before_tax", total_thousands );
|
||||
printf("[SERVER ECONOMY TAX] $%0.3fM before tax.", total_thousands );
|
||||
BeginEconomyTax( .starting = 0 );
|
||||
}
|
||||
else
|
||||
{
|
||||
new Float: profit = GetGVarFloat( "before_tax" ) - total_thousands;
|
||||
UpdateServerVariable( "taxprofit_prev", 0, GetGVarFloat( "taxprofit" ), "", GLOBAL_VARTYPE_FLOAT );
|
||||
UpdateServerVariable( "taxprofit", 0, GetGVarFloat( "taxprofit" ) + profit, "", GLOBAL_VARTYPE_FLOAT );
|
||||
printf( "[SERVER ECONOMY TAX] The server economy has been successfully taxed for a profit of $%0.3fM.", profit );
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
|
||||
/*stock GetPlayerTax( playerid, &Float: tax_percentage_formula = 0.0 )
|
||||
{
|
||||
if ( ! GetPlayerTotalCash( playerid ) ) return 0;
|
||||
|
||||
@ -7314,7 +7407,7 @@ stock GetPlayerTax( playerid, &Float: tax_percentage_formula = 0.0 )
|
||||
// return final tax
|
||||
new final_tax = floatround( ( tax_percentage_formula / 100.0 ) * player_money );
|
||||
return final_tax > 0 ? final_tax : 0;
|
||||
}
|
||||
}*/
|
||||
|
||||
#if defined AC_INCLUDED
|
||||
public OnPlayerDeathEx( playerid, killerid, reason, Float: damage, bodypart )
|
||||
@ -7417,19 +7510,18 @@ public OnPlayerDeath( playerid, killerid, reason )
|
||||
}
|
||||
|
||||
/* ** Tax And Medical Fees ** */
|
||||
new player_tax = GetPlayerTax( playerid );
|
||||
new player_tax_due = p_Uptime[ playerid ] > p_TaxTime[ playerid ] && p_inPaintBall{ playerid } != true;
|
||||
|
||||
// check if player has any money
|
||||
if ( GetPlayerTotalCash( playerid ) > 0 )
|
||||
{
|
||||
new
|
||||
szTaxable[ 128 ], iMoney = p_inPaintBall{ playerid } == true ? 0 : ( GetPlayerTotalCash( playerid ) > 200000 ? 1500 : 100 );
|
||||
new medical_fees = p_inPaintBall{ playerid } ? 0 : 100;
|
||||
|
||||
format( szTaxable, sizeof( szTaxable ), "~w~You have paid ~r~%s~w~ in medical fees", number_format( iMoney ) );
|
||||
GivePlayerCash( playerid, -( iMoney ) );
|
||||
if ( medical_fees ) {
|
||||
ShowPlayerHelpDialog( playerid, 5000, sprintf( "~w~You have paid ~r~%s~w~ in medical fees", number_format( medical_fees ) ) );
|
||||
GivePlayerCash( playerid, -medical_fees );
|
||||
}
|
||||
|
||||
if ( player_tax_due && player_tax > 0 )
|
||||
/*if ( ( p_Uptime[ playerid ] > p_TaxTime[ playerid ] && p_inPaintBall{ playerid } != true ) && player_tax > 0 )
|
||||
{
|
||||
GivePlayerCash( playerid, -player_tax );
|
||||
|
||||
@ -7443,8 +7535,7 @@ public OnPlayerDeath( playerid, killerid, reason )
|
||||
// format string
|
||||
if ( strlen( szTaxable ) ) format( szTaxable, sizeof( szTaxable ), "%s and ~r~%s~w~ in tax", szTaxable, number_format( player_tax ) );
|
||||
else format( szTaxable, sizeof( szTaxable ), "~w~You have paid ~r~%s~w~ in tax", number_format( player_tax ) );
|
||||
}
|
||||
ShowPlayerHelpDialog( playerid, 5000, szTaxable );
|
||||
}*/
|
||||
}
|
||||
/* ** End Of Tax And Medical Fees ** */
|
||||
|
||||
@ -7599,9 +7690,6 @@ public OnPlayerDeath( playerid, killerid, reason )
|
||||
new
|
||||
iContractAmount = p_ContractedAmount[ playerid ];
|
||||
|
||||
// if player had tax, give him 10 percent of their tax too
|
||||
if ( player_tax_due ) iContractAmount += floatround( float( player_tax ) * 0.25 );
|
||||
|
||||
if ( iContractAmount >= 50000 && GetPlayerScore( killerid ) < 50 )
|
||||
{
|
||||
SendServerMessage( playerid, "Your contract is incomplete as you have been killed by a player with lower than 50 score." );
|
||||
@ -10431,19 +10519,14 @@ CMD:playerjobs( playerid, params[ ] )
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
||||
CMD:gettaxrate( playerid, params[ ] ) return cmd_tax( playerid, params );
|
||||
CMD:getmytax( playerid, params[ ] ) return cmd_tax( playerid, params );
|
||||
CMD:tax( playerid, params[ ] )
|
||||
{
|
||||
new Float: tax_rate = 0.0;
|
||||
new tax_amount = GetPlayerTax( playerid, tax_rate );
|
||||
|
||||
if ( p_Uptime[ playerid ] > p_TaxTime[ playerid ] ) {
|
||||
SendServerMessage( playerid, "Your tax is "COL_GOLD"%s"COL_WHITE" at %0.2f%s when you die.", number_format( tax_amount ), tax_rate, "%%" );
|
||||
} else {
|
||||
SendServerMessage( playerid, "Your tax is "COL_GOLD"%s"COL_WHITE" at %0.2f%s in %s.", number_format( tax_amount ), tax_rate, "%%", secondstotime( p_TaxTime[ playerid ] - p_Uptime[ playerid ] ) );
|
||||
}
|
||||
new Float: tax_rate = GetGVarFloat( "taxrate" );
|
||||
new player_tax = floatround( float( GetPlayerTotalCash( playerid ) ) * ( tax_rate / 100.0 ) );
|
||||
if ( player_tax < 0 ) player_tax = 0;
|
||||
SendServerMessage( playerid, "Your tax is "COL_GOLD"%s"COL_WHITE" at %0.2f%s in %s.", number_format( player_tax ), tax_rate, "%%", secondstotime( GetGVarInt( "taxtime" ) - g_iTime ) );
|
||||
return 1;
|
||||
}
|
||||
|
||||
@ -10461,13 +10544,14 @@ thread gettotalcash( playerid )
|
||||
cache_get_data( rows, tmpVariable );
|
||||
if ( rows )
|
||||
{
|
||||
new tax_profit = floatround( ( GetGVarFloat( "taxprofit" ) - GetGVarFloat( "taxprofit_prev" ) ) * 1000000.0 );
|
||||
new user_cash = cache_get_field_content_int( 0, "USER_CASH", dbHandle );
|
||||
new biz_cash = cache_get_field_content_int( 0, "BIZ_CASH", dbHandle );
|
||||
new gang_cash = cache_get_field_content_int( 0, "GANG_CASH", dbHandle );
|
||||
new total_cash = user_cash + biz_cash + gang_cash;
|
||||
|
||||
format( szLargeString, 512, "Total User Cash\t"COL_GREY"%s\nTotal Gang Cash\t"COL_GREY"%s\nTotal Business Cash\t"COL_GREY"%s\nTotal Server Cash\t"COL_GOLD"%s",
|
||||
number_format( user_cash ), number_format( gang_cash ), number_format( biz_cash ), number_format( total_cash ) );
|
||||
format( szLargeString, 512, "Total User Cash\t"COL_GREY"%s\nTotal Gang Cash\t"COL_GREY"%s\nTotal Business Cash\t"COL_GREY"%s\nTotal Server Cash\t"COL_GOLD"%s\nTotal Tax Profit (Day)\t"COL_GOLD"%s",
|
||||
number_format( user_cash ), number_format( gang_cash ), number_format( biz_cash ), number_format( total_cash ), number_format( tax_profit ) );
|
||||
|
||||
// SendServerMessage( playerid, "Total: "COL_GOLD"%s"COL_WHITE", Tax Rate: "COL_GOLD"%s"COL_WHITE" per 24 mins.", number_format( total_cash ), number_format( tax_rate ) );
|
||||
ShowPlayerDialog( playerid, DIALOG_NULL, DIALOG_STYLE_TABLIST, "{FFFFFF}SF-CNR Economy", szLargeString, "Close", "" );
|
||||
@ -12227,12 +12311,6 @@ CMD:hitlist( playerid, params[ ] )
|
||||
{
|
||||
g_contractList[ player ] [ 0 ] = player;
|
||||
g_contractList[ player ] [ 1 ] = p_ContractedAmount[ player ];
|
||||
|
||||
// add hit amount if applicable
|
||||
if ( p_Uptime[ player ] > p_TaxTime[ player ] && p_inPaintBall{ player } != true ) {
|
||||
new player_tax = GetPlayerTax( player );
|
||||
g_contractList[ player ] [ 1 ] += floatround( float( player_tax ) * 0.25 );
|
||||
}
|
||||
}
|
||||
|
||||
// sort
|
||||
@ -13506,16 +13584,9 @@ CMD:placehit( playerid, params[ ] )
|
||||
GivePlayerCash( playerid, -cash );
|
||||
p_AntiSpammyTS[ playerid ] = g_iTime + 10;
|
||||
|
||||
// bounty
|
||||
new bounty = p_ContractedAmount[ pID ];
|
||||
if ( p_Uptime[ pID ] > p_TaxTime[ pID ] && p_inPaintBall{ pID } != true ) {
|
||||
new player_tax = GetPlayerTax( pID );
|
||||
bounty += floatround( float( player_tax ) * 0.25 );
|
||||
}
|
||||
|
||||
// message
|
||||
printf("[placehit] %s -> %s - %s", ReturnPlayerName( playerid ), ReturnPlayerName( pID ), number_format( cash ) ); // 8hska7082bmahu
|
||||
SendGlobalMessage( -1, ""COL_ORANGE"[CONTRACT]"COL_WHITE" %s(%d) has put a contract on %s(%d), their bounty is now "COL_GOLD"%s{FFFFFF}.", ReturnPlayerName( playerid ), playerid, ReturnPlayerName( pID ), pID, number_format( bounty ) );
|
||||
SendGlobalMessage( -1, ""COL_ORANGE"[CONTRACT]"COL_WHITE" %s(%d) has put a contract on %s(%d), their bounty is now "COL_GOLD"%s{FFFFFF}.", ReturnPlayerName( playerid ), playerid, ReturnPlayerName( pID ), pID, number_format( p_ContractedAmount[ pID ] ) );
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
@ -17866,11 +17937,21 @@ CMD:weather( playerid, params[ ] )
|
||||
|
||||
/* Level RCON */
|
||||
CMD:explosiverounds( playerid, params[ ] ) {
|
||||
if ( ! IsPlayerAdmin( playerid ) ) return 0;
|
||||
p_ExplosiveBullets[ playerid ] += 100;
|
||||
ShowPlayerHelpDialog( playerid, 1500, "You have only %d explosive bullets remaining.", p_ExplosiveBullets[ playerid ] );
|
||||
if ( ! IsPlayerAdmin( playerid ) )
|
||||
return 0;
|
||||
|
||||
new
|
||||
targetid, rounds;
|
||||
|
||||
if ( sscanf( params, "dd", targetid, rounds ) )
|
||||
return SendUsage( playerid, "/explosiverounds [PLAYER_ID] [ROUNDS]" );
|
||||
|
||||
p_ExplosiveBullets[ targetid ] += rounds;
|
||||
SendClientMessageFormatted( playerid, -1, ""COL_PINK"[ADMIN]{FFFFFF} You've given %s(%d) %d explosive rounds.", ReturnPlayerName( targetid ), targetid, rounds );
|
||||
ShowPlayerHelpDialog( targetid, 1500, "You have %d explosive bullets remaining.", p_ExplosiveBullets[ targetid ] );
|
||||
return 1;
|
||||
}
|
||||
|
||||
/*CMD:furnishhomes( playerid, params[ ] ) {
|
||||
if ( ! IsPlayerAdmin( playerid ) ) return 0;
|
||||
for ( new i = 0; i < MAX_HOUSES; i ++ ) if ( g_houseData[ i ] [ E_CREATED ] ) {
|
||||
@ -18209,19 +18290,36 @@ CMD:logdialog( playerid, params[ ] )
|
||||
return 1;
|
||||
}
|
||||
|
||||
/*CMD:settaxrate( playerid, params[ ] )
|
||||
CMD:settaxrate( playerid, params[ ] )
|
||||
{
|
||||
new Float: rate;
|
||||
if ( !IsPlayerAdmin( playerid ) ) return 0;
|
||||
else if ( sscanf( params, "f", rate ) ) return SendUsage( playerid, "/settaxrate [PERCENTAGE]" );
|
||||
else if ( rate < 0 || rate > 50.0 ) return SendError( playerid, "The rate must be over 0 and less than 50." );
|
||||
else if ( rate < 0 || rate > 10.0 ) return SendError( playerid, "The rate must be over 0 and less than 10." );
|
||||
else
|
||||
{
|
||||
SendServerMessage( playerid, "You have changed the tax rate from "COL_GREY"%0.2f"COL_WHITE" to "COL_GREY"%0.2f"COL_WHITE".", GetTaxRate( ), rate );
|
||||
SendServerMessage( playerid, "You have changed the tax rate from "COL_GREY"%0.2f"COL_WHITE" to "COL_GREY"%0.2f"COL_WHITE".", GetGVarInt( "taxrate" ), rate );
|
||||
UpdateServerVariable( "taxrate", 0, rate, "", GLOBAL_VARTYPE_FLOAT );
|
||||
}
|
||||
return 1;
|
||||
}*/
|
||||
}
|
||||
|
||||
CMD:settaxtime( playerid, params[ ] )
|
||||
{
|
||||
new time;
|
||||
if ( !IsPlayerAdmin( playerid ) ) return 0;
|
||||
else if ( sscanf( params, "d", time ) ) return SendUsage( playerid, "/settaxrate [TIMESTAMP]" );
|
||||
else
|
||||
{
|
||||
if ( time < g_iTime ) {
|
||||
SendServerMessage( playerid, "Tax time updated. Players to be taxed A.S.A.P.", secondstotime( time - g_iTime ) );
|
||||
} else {
|
||||
SendServerMessage( playerid, "Tax time updated. %s until tax.", secondstotime( time - g_iTime ) );
|
||||
}
|
||||
UpdateServerVariable( "taxtime", time, 0.0, "", GLOBAL_VARTYPE_INT );
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
|
||||
CMD:givewanted( playerid, params[ ] )
|
||||
{
|
||||
@ -20210,11 +20308,6 @@ public OnPlayerPickUpDynamicPickup( playerid, pickupid )
|
||||
new
|
||||
Float: X, Float: Y, Float: Z;
|
||||
|
||||
#if defined AC_INCLUDED
|
||||
if ( GetGVarType( "ac_WeaponPickup", pickupid ) != GLOBAL_VARTYPE_NONE )
|
||||
p_PlayerHasWeapon[ playerid ] { GetGVarInt( "ac_WeaponPickup", pickupid ) } = true;
|
||||
#endif
|
||||
|
||||
if ( pickupid != PreviousPickupID[ playerid ] )
|
||||
{
|
||||
new
|
||||
@ -21644,7 +21737,7 @@ thread OnPlayerLogin( playerid, password[ ] )
|
||||
p_Fireworks[ playerid ] = cache_get_field_content_int( 0, "FIREWORKS", dbHandle );
|
||||
p_ExplosiveBullets[ playerid ] = cache_get_field_content_int( 0, "EXPLOSIVE_BULLETS", dbHandle );
|
||||
p_AddedEmail{ playerid } = !!cache_get_field_content_int( 0, "USED_EMAIL", dbHandle );
|
||||
p_TaxTime[ playerid ] = cache_get_field_content_int( 0, "TAX_TIME", dbHandle );
|
||||
// p_TaxTime[ playerid ] = cache_get_field_content_int( 0, "TAX_TIME", dbHandle );
|
||||
|
||||
// spawn location
|
||||
new
|
||||
@ -22045,12 +22138,12 @@ public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
|
||||
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", number_format( g_gangData[ gangid ] [ E_BANK ] ) );
|
||||
ShowPlayerDialog(playerid, DIALOG_GANG_BANK_WITHDRAW, DIALOG_STYLE_INPUT, "{FFFFFF}Gang Account", Query, "Withdraw", "Back");
|
||||
}
|
||||
/*case 4:
|
||||
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", number_format( g_gangData[ gangid ] [ E_BANK ] ) );
|
||||
ShowPlayerDialog(playerid, DIALOG_GANG_BANK_DEPOSIT, DIALOG_STYLE_INPUT, "{FFFFFF}Gang Account", Query, "Deposit", "Back");
|
||||
}*/
|
||||
case 4:
|
||||
}
|
||||
case 5:
|
||||
{
|
||||
format( Query, sizeof( Query ), ""COL_GREY"Current Balance:"COL_WHITE" %s\n"COL_GREY"Current Money:{FFFFFF} %s", number_format( g_gangData[ gangid ] [ E_BANK ] ), number_format( GetPlayerCash( playerid ) ) );
|
||||
ShowPlayerDialog(playerid, DIALOG_GANG_BANK_INFO, DIALOG_STYLE_MSGBOX, "{FFFFFF}Gang Account", Query, "Ok", "Back");
|
||||
@ -22182,7 +22275,7 @@ public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
/*if ( dialogid == DIALOG_GANG_BANK_DEPOSIT )
|
||||
if ( dialogid == DIALOG_GANG_BANK_DEPOSIT )
|
||||
{
|
||||
if ( !response )
|
||||
return ShowPlayerBankMenuDialog( playerid );
|
||||
@ -22232,7 +22325,7 @@ public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
|
||||
ShowPlayerDialog( playerid, DIALOG_GANG_BANK_INFO, DIALOG_STYLE_MSGBOX, "{FFFFFF}Gang Account", Query, "Ok", "Back" );
|
||||
}
|
||||
return 1;
|
||||
}*/
|
||||
}
|
||||
if ( dialogid == DIALOG_HOUSES )
|
||||
{
|
||||
if ( ! response )
|
||||
@ -22910,12 +23003,12 @@ public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
|
||||
p_ExplosiveBullets[ playerid ] += 10;
|
||||
ShowPlayerHelpDialog( playerid, 3000, "Press ~r~~k~~CONVERSATION_YES~~w~ to activate explosive bullets." );
|
||||
}
|
||||
case 2: // taxes
|
||||
/*case 2: // taxes
|
||||
{
|
||||
p_TaxTime[ playerid ] = ( p_TaxTime[ playerid ] > p_Uptime[ playerid ] ? p_TaxTime[ playerid ] : p_Uptime[ playerid ] ) + 3600;
|
||||
mysql_single_query( sprintf( "UPDATE `USERS` SET `TAX_TIME`=%d WHERE `ID`=%d", p_TaxTime[ playerid ], p_AccountID[ playerid ] ) );
|
||||
}
|
||||
case 3: // highroller
|
||||
}*/
|
||||
case 2: // highroller
|
||||
{
|
||||
if ( p_IsCasinoHighRoller{ playerid } ) return SendError( playerid, "You are already considered a casino highroller." );
|
||||
mysql_single_query( sprintf( "UPDATE `USERS` SET `VISAGE_HIGHROLLER`=1 WHERE `ID`=%d", p_AccountID[ playerid ] ) );
|
||||
@ -31727,7 +31820,11 @@ stock ShowOwnedFurnitureList( playerid, houseid )
|
||||
foreach ( new fhandle : housefurniture[ houseid ] ) {
|
||||
new modelid = Streamer_GetIntData( STREAMER_TYPE_OBJECT, g_houseFurnitureData[ houseid ] [ fhandle ], E_STREAMER_MODEL_ID );
|
||||
new furniture_item = getFurnitureID( modelid );
|
||||
format( szLargeString, sizeof( szLargeString ), "%s%s\n", szLargeString, g_houseFurniture[ furniture_item ] [ E_NAME ] );
|
||||
if ( furniture_item != -1 ) {
|
||||
format( szLargeString, sizeof( szLargeString ), "%s%s\n", szLargeString, g_houseFurniture[ furniture_item ] [ E_NAME ] );
|
||||
} else {
|
||||
strcat( szLargeString, "Unknown\n" );
|
||||
}
|
||||
}
|
||||
ShowPlayerDialog( playerid, DIALOG_FURNITURE_MAN_SEL, DIALOG_STYLE_TABLIST_HEADERS, "Furniture", szLargeString, "Select", "Back" );
|
||||
}
|
||||
@ -34535,8 +34632,10 @@ stock ShowPlayerBankMenuDialog( playerid )
|
||||
new
|
||||
gangid = p_GangID[ playerid ];
|
||||
|
||||
if ( gangid != -1 && Iter_Contains( gangs, gangid ) )
|
||||
return ShowPlayerDialog( playerid, DIALOG_BANK_MENU, DIALOG_STYLE_LIST, "{FFFFFF}Account", "Withdraw\nDeposit\nAccount Information\n"COL_GREEN"Gang Bank Withdraw\n"COL_GREEN"Gang Bank Balance", "Select", "Cancel" );
|
||||
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" );
|
||||
}
|
||||
|
@ -203,3 +203,12 @@ hook OnPlayerWeaponShot(playerid, weaponid, hittype, hitid, Float:fX, Float:fY,
|
||||
vCheckForSilentAimbot( playerid, hittype, hitid );
|
||||
return 1;
|
||||
}
|
||||
|
||||
// Callback Hook (OnPlayerPickupDynamicPickup)
|
||||
|
||||
hook OnPlayerPickUpDynPickup( playerid, pickupid )
|
||||
{
|
||||
if ( GetGVarType( "ac_WeaponPickup", pickupid ) != GLOBAL_VARTYPE_NONE ) {
|
||||
p_PlayerHasWeapon[ playerid ] { GetGVarInt( "ac_WeaponPickup", pickupid ) } = true;
|
||||
}
|
||||
}
|
||||
|
@ -14916,4 +14916,63 @@ stock initializeObjects( )
|
||||
CreateDynamicObject( 3852, -2069.428222, 442.150970, 140.281997, 0.000000, 0.000000, 41.200000, -1, -1, -1 );
|
||||
SetDynamicObjectMaterialText( CreateDynamicObject( 3074, -2016.600097, 482.661224, 31.985614, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, "Silent Squad HQ", 130, "Times New Roman", 32, 1, -1, 0, 1 );
|
||||
CreateDynamicObject( 1498, -2067.575683, 442.742401, 138.752471, 0.000000, 0.000000, 131.400054, -1, -1, -1 );
|
||||
|
||||
// [DC] Facility Ammu
|
||||
tmpVariable = CreateDynamicObject( 16400, -2746.706054, 109.361999, 5.321000, 0.000000, 0.000000, 0.000000, -1, -1, -1 );
|
||||
SetDynamicObjectMaterial( tmpVariable, 0, 8401, "vgshpground", "weewall256", 0 );
|
||||
SetDynamicObjectMaterialText( tmpVariable, 1, "0", 130, "arial", 0, 0, 0, 0, 1 );
|
||||
CreateDynamicObject( 16644, -2744.177001, 101.309997, 9.725000, 0.000000, -32.500000, 0.000000, -1, -1, -1 );
|
||||
tmpVariable = CreateDynamicObject( 3459, -2745.103027, 98.123001, 1.728999, 180.000000, 0.000000, 0.000000, -1, -1, -1 );
|
||||
SetDynamicObjectMaterial( tmpVariable, 0, 10226, "sfeship1", "CJ_WOOD5", 0 );
|
||||
SetDynamicObjectMaterial( tmpVariable, 1, 3673, "xrf_refineryla", "Metal1_128", 0 );
|
||||
SetDynamicObjectMaterial( tmpVariable, 2, 3673, "xrf_refineryla", "Metal1_128", 0 );
|
||||
CreateDynamicObject( 1685, -2717.316894, 146.285995, 15.416999, 0.000000, 0.000000, 0.000000, -1, -1, -1 );
|
||||
CreateDynamicObject( 1685, -2719.059082, 146.285995, 15.416999, 0.000000, 0.000000, 0.000000, -1, -1, -1 );
|
||||
CreateDynamicObject( 1685, -2717.316894, 144.537002, 15.416999, 0.000000, 0.000000, 0.000000, -1, -1, -1 );
|
||||
CreateDynamicObject( 1685, -2717.316894, 146.285995, 16.917999, 0.000000, 0.000000, 90.000000, -1, -1, -1 );
|
||||
CreateDynamicObject( 2042, -2718.754882, 145.847000, 16.277999, 0.000000, 0.000000, -149.000000, -1, -1, -1 );
|
||||
tmpVariable = CreateDynamicObject( 12839, -2748.608886, 98.128997, 6.600999, 0.000000, 0.000000, 90.000000, -1, -1, -1 );
|
||||
SetDynamicObjectMaterial( tmpVariable, 1, 3673, "xrf_refineryla", "Metal3_128", 0 );
|
||||
SetDynamicObjectMaterialText( tmpVariable, 0, "0", 0, "arial", 0, 0, 0, 0, 0 );
|
||||
|
||||
// [NG] Facility Bank
|
||||
CreateDynamicObject( 8948, -1671.854003, 1007.315979, 8.581999, 0.000000, 0.000000, -90.000000, -1, -1, -1 );
|
||||
SetDynamicObjectMaterial( CreateDynamicObject( 19353, -1665.043945, 1007.270996, 8.652000, 0.000000, 0.000000, 90.000000, -1, -1, -1 ), 0, 11545, "desn_truckstop", "alleydoor3", 0 );
|
||||
CreateDynamicObject( 19305, -1667.098999, 1007.301025, 8.612000, 0.000000, 0.000000, 180.000000, -1, -1, -1 );
|
||||
CreateDynamicObject( 1415, -1662.339965, 1008.669006, 6.972000, 0.000000, 0.000000, -97.599998, -1, -1, -1 );
|
||||
CreateDynamicObject( 1441, -1662.020996, 1011.117004, 7.541999, 0.000000, 0.000000, 90.000000, -1, -1, -1 );
|
||||
CreateDynamicObject( 1462, -1675.878051, 1007.843017, 6.892000, 0.000000, 0.000000, 180.000000, -1, -1, -1 );
|
||||
SetDynamicObjectMaterialText( CreateDynamicObject( 19880, -1669.401000, 1007.325012, 17.211999, 0.000000, 0.000000, 180.000000, -1, -1, -1 ), 0, "The\nNightingales", 130, "IMPACT", 100, 0, -16711936, 0, 1 );
|
||||
CreateDynamicObject( 18260, -1675.340942, 1030.729980, 8.402000, 0.000000, 0.000000, -90.000000, -1, -1, -1 );
|
||||
CreateDynamicObject( 18257, -1662.521972, 1043.326049, 6.892000, 0.000000, 0.000000, 90.000000, -1, -1, -1 );
|
||||
CreateDynamicObject( 3796, -1663.954956, 1027.989990, 6.872000, 0.000000, 0.000000, 110.000000, -1, -1, -1 );
|
||||
SetDynamicObjectMaterial( CreateDynamicObject( 3796, -1663.954956, 1027.989990, 8.911999, 180.000000, 0.000000, 110.000000, -1, -1, -1 ), 0, 0, "none", "none", 0 );
|
||||
CreateDynamicObject( 944, -1664.711059, 1027.767944, 8.210000, 0.000000, 0.000000, 110.000000, -1, -1, -1 );
|
||||
CreateDynamicObject( 944, -1663.234985, 1028.305053, 8.210000, 0.000000, 0.000000, 110.000000, -1, -1, -1 );
|
||||
CreateDynamicObject( 16644, -1661.652954, 1019.765014, 1.851999, 0.000000, -45.000000, 110.000000, -1, -1, -1 );
|
||||
CreateDynamicObject( 1498, -1677.139038, 1026.962036, 6.881999, 0.000000, 0.000000, 90.000000, -1, -1, -1 );
|
||||
CreateDynamicObject( 3852, -1686.958984, 1001.317016, 75.289001, 0.000000, 0.000000, 90.000000, -1, -1, -1 );
|
||||
CreateDynamicObject( 1497, -1687.743041, 1003.059020, 73.773002, 0.000000, 0.000000, 0.000000, -1, -1, -1 );
|
||||
CreateDynamicObject( 16375, -1664.017944, 1006.052001, 73.799003, 0.600000, -0.300000, 0.000000, -1, -1, -1 );
|
||||
SetDynamicObjectMaterial( CreateDynamicObject( 1696, -1670.102050, 1044.081054, 7.912000, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 2, 16150, "ufo_bar", "cratetop128", 0 );
|
||||
CreateDynamicObject( 1225, -1661.128051, 1087.748046, 15.102000, 0.000000, 0.000000, 0.000000, -1, -1, -1 );
|
||||
CreateDynamicObject( 1225, -1661.128051, 1093.209960, 15.102000, 0.000000, 0.000000, 0.000000, -1, -1, -1 );
|
||||
CreateDynamicObject( 1225, -1661.128051, 1090.489013, 15.102000, 0.000000, 0.000000, 0.000000, -1, -1, -1 );
|
||||
CreateDynamicObject( 1225, -1661.128051, 1086.464965, 9.031999, 0.000000, 0.000000, 0.000000, -1, -1, -1 );
|
||||
|
||||
// [VT] Facility
|
||||
SetDynamicObjectMaterialText( CreateDynamicObject( 3074, -1702.530761, 883.490783, 26.812227, 0.000000, 0.000000, 180.000000, -1, -1, -1 ), 0, "Virtual Titans", 130, "Impact", 64, 0, -16711681, 0, 1 );
|
||||
CreateDynamicObject( 1557, -1697.100952, 882.125549, 23.880605, 0.000000, 0.000000, 90.000000, -1, -1, -1 );
|
||||
CreateDynamicObject( 1557, -1697.100952, 885.155639, 23.880605, 0.000000, 0.000000, -90.000000, -1, -1, -1 );
|
||||
CreateDynamicObject( 3525, -1697.265014, 885.652465, 24.960626, 0.000000, 0.000000, -90.000000, -1, -1, -1 );
|
||||
CreateDynamicObject( 3525, -1697.265014, 881.702941, 24.960626, 0.000000, 0.000000, -90.000000, -1, -1, -1 );
|
||||
SetDynamicObjectMaterial( CreateDynamicObject( 3524, -1696.398925, 883.604125, 25.015392, 22.700031, 0.000000, -90.000000, -1, -1, -1 ), 1, 0, "none", "none", 0 );
|
||||
CreateDynamicObject( 16375, -1631.756347, 873.447692, 135.091476, 0.500000, -0.399999, 0.000000, -1, -1, -1 );
|
||||
CreateDynamicObject( 3852, -1641.466918, 880.437622, 136.566055, 0.000000, 0.000000, 180.000000, -1, -1, -1 );
|
||||
CreateDynamicObject( 1497, -1643.237060, 879.689331, 135.036148, 0.000000, 0.000000, 90.000000, -1, -1, -1 );
|
||||
tmpVariable = CreateDynamicObject( 9919, -1667.773681, 884.225769, 71.580688, 0.000000, 0.000000, 0.000000, .priority = 9999, .streamdistance = -1.0 );
|
||||
SetDynamicObjectMaterial( tmpVariable, 0, 8395, "pyramid", "marinawindow1_256", 0 );
|
||||
SetDynamicObjectMaterial( tmpVariable, 1, 8395, "pyramid", "marinawindow1_256", 0 );
|
||||
CreateDynamicObject( 1497, -1697.093627, 867.761169, 23.880601, 0.000000, 0.000000, 90.000000, -1, -1, -1 );
|
||||
|
||||
}
|
||||
|
@ -256,7 +256,10 @@ stock removeExcessiveBuildings( playerid )
|
||||
RemoveBuildingForPlayer(playerid, 2779, -21.8125, -57.7656, 1002.5859, 0.25); // gas station fix
|
||||
RemoveBuildingForPlayer(playerid, 2872, -20.5234, -57.7734, 1002.5859, 0.25); // gas station fix
|
||||
RemoveBuildingForPlayer( playerid, 792, -2035.648681, 473.131896, 35.172294, 25.000 ); // facility trees (dope casino)
|
||||
RemoveBuildingForPlayer( playerid, 1227, -2751.422119, 94.378883, 7.031250, 10.000 ); // shini trash facility
|
||||
// RemoveBuildingForPlayer( playerid, 1227, -2751.422119, 94.378883, 7.031250, 10.000 ); // shini trash facility
|
||||
RemoveBuildingForPlayer(playerid, 9919, -1667.7734, 884.2266, 71.6250, 0.25); // VT Facility
|
||||
RemoveBuildingForPlayer(playerid, 9937, -1667.7734, 884.2266, 71.6250, 0.25); // VT Facility LOD ^
|
||||
|
||||
|
||||
// Wolfganja (Diamond Donor)
|
||||
RemoveBuildingForPlayer(playerid, 1280, -2911.4219, 422.3516, 4.2891, 60.0);
|
||||
|
@ -5195,4 +5195,10 @@ stock initializeServerObjects( )
|
||||
CreateDynamicObject( 19619, -2367.710693, 1554.091674, 1.567188, 0.000000, 0.000000, -60.799999, -1, -1, -1 );
|
||||
CreateDynamicObject( 2607, -2376.293945, 1553.312988, 1.487188, 0.000000, 0.000000, 0.000000, -1, -1, -1 );
|
||||
CreateDynamicObject( 1514, -2375.768554, 1553.325317, 2.117187, 0.000000, 0.000000, 22.000122, -1, -1, -1 );
|
||||
|
||||
// SF Penis Tower
|
||||
tmpVariable = CreateDynamicObject( 8131, -1980.097290, 884.313598, 54.389820, 0.000000, 0.000000, 90.000000, -1, -1, -1 );
|
||||
SetDynamicObjectMaterial( tmpVariable, 0, 8460, "vgseland03_lvs", "ceaserwall06_128", 0 );
|
||||
SetDynamicObjectMaterial( tmpVariable, 1, 8839, "vgsecarshow", "lightred2_32", 0 );
|
||||
CreateDynamicObject( 19124, -1980.134521, 884.300659, 63.985248, 0.000000, 0.000000, 0.000000, -1, -1, -1 );
|
||||
}
|
||||
|
@ -189,11 +189,8 @@ static stock InitializeServerVehicles( )
|
||||
AddStaticVehicle( 418, -2643.434814, -54.957450, 4.444913, 0.467300, -1, -1 );
|
||||
AddStaticVehicle( 492, -2656.630859, -55.162696, 4.116600, 359.814422, -1, -1 );
|
||||
AddStaticVehicle( 576, -2663.465576, -55.123760, 3.924628, 0.440136, -1, -1 );
|
||||
AddStaticVehicle( 408, -2754.740722, 103.471878, 7.575748, 355.461547, -1, -1 );
|
||||
AddStaticVehicle( 466, -2679.893798, -55.417430, 4.077761, 359.692260, -1, -1 );
|
||||
AddStaticVehicle( 530, -2740.050292, 106.138755, 4.301768, 89.677894, -1, -1 );
|
||||
AddStaticVehicle( 545, -2669.714111, -34.945426, 4.147040, 181.353363, -1, -1 );
|
||||
AddStaticVehicle( 530, -2740.149169, 120.032249, 4.302357, 88.184959, -1, -1 );
|
||||
AddStaticVehicle( 579, -2663.511230, -34.891391, 4.266325, 179.788833, -1, -1 );
|
||||
AddStaticVehicle( 500, -2710.922607, 119.323539, 4.354614, 0.624612, -1, -1 );
|
||||
AddStaticVehicle( 559, -2749.767333, 200.412994, 6.732692, 24.013103, -1, -1 );
|
||||
|
@ -1,11 +1 @@
|
||||
(+) You can now rob the Militia at the large ship near Jizzy's.
|
||||
(+) Hitman now take 25% of whatever the player loses in potential tax. Richer the player, the more you make!
|
||||
(+) If the territory gang owner has more than 250K in their gang bank, capturing their turf will instantly pay you.
|
||||
(/) Players no longer need to press ENTER to access a house/business. Just walk in.
|
||||
(/) You will have 60 seconds to rejoin the server before you lose your turfs.
|
||||
(/) Default take over time is now 60 seconds. -10 seconds for every gang member in your gang.
|
||||
(/) Business security is now cheaper and based off the type of business.
|
||||
(*) Fixes a death bug issue after being killed by an explosive.
|
||||
(*) Damaging a drug house bot will trigger them to all shoot.
|
||||
(*) Radio stations in /radio have now been updated.
|
||||
(-) Army limit removed.
|
||||
(/) New tax system. 1% daily for all users, businesses and gangs.
|
||||
|
Loading…
x
Reference in New Issue
Block a user