commit
36d39e8e76
@ -213,6 +213,7 @@
|
|||||||
#define DIALOG_VIP_MAIN 1204
|
#define DIALOG_VIP_MAIN 1204
|
||||||
#define DIALOG_XPMARKET_SELL 1205
|
#define DIALOG_XPMARKET_SELL 1205
|
||||||
#define DIALOG_BUY_VIP_MAIN 1206
|
#define DIALOG_BUY_VIP_MAIN 1206
|
||||||
|
#define DIALOG_BOOMBOX_PLAY 1207
|
||||||
|
|
||||||
/* ** Hooks ** */
|
/* ** Hooks ** */
|
||||||
hook OnDialogResponse( playerid, dialogid, response, listitem, inputtext[ ] )
|
hook OnDialogResponse( playerid, dialogid, response, listitem, inputtext[ ] )
|
||||||
|
@ -68,6 +68,7 @@
|
|||||||
#include "irresistible\cnr\features\shamal.pwn"
|
#include "irresistible\cnr\features\shamal.pwn"
|
||||||
#include "irresistible\cnr\features\billboards.pwn"
|
#include "irresistible\cnr\features\billboards.pwn"
|
||||||
#include "irresistible\cnr\features\trolley_car.pwn"
|
#include "irresistible\cnr\features\trolley_car.pwn"
|
||||||
|
#include "irresistible\cnr\features\boom_box.pwn"
|
||||||
|
|
||||||
// pool
|
// pool
|
||||||
#include "irresistible\cnr\features\pool.pwn"
|
#include "irresistible\cnr\features\pool.pwn"
|
||||||
|
159
gamemodes/irresistible/cnr/features/boom_box.pwn
Normal file
159
gamemodes/irresistible/cnr/features/boom_box.pwn
Normal file
@ -0,0 +1,159 @@
|
|||||||
|
/*
|
||||||
|
* Irresistible Gaming 2018
|
||||||
|
* Developed by Night
|
||||||
|
* Module: cnr\features\boom_box.pwn
|
||||||
|
* Purpose: boombox related feature
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* ** Includes ** */
|
||||||
|
#include < YSI\y_hooks >
|
||||||
|
|
||||||
|
/* ** Definitions ** */
|
||||||
|
#define DEFAULT_BOOMBOX_RANGE ( 50.0 )
|
||||||
|
|
||||||
|
/* ** Variables ** */
|
||||||
|
enum E_BOOMBOX_DATA
|
||||||
|
{
|
||||||
|
E_OBJECT, Text3D: E_LABEL, E_MUSIC_AREA,
|
||||||
|
E_URL[ 128 ],
|
||||||
|
Float: E_X, Float: E_Y, Float: E_Z
|
||||||
|
};
|
||||||
|
|
||||||
|
static stock
|
||||||
|
g_boomboxData [ MAX_PLAYERS ] [ E_BOOMBOX_DATA ]
|
||||||
|
;
|
||||||
|
|
||||||
|
/* ** Hooks ** */
|
||||||
|
hook OnPlayerDisconnect( playerid, reason )
|
||||||
|
{
|
||||||
|
p_UsingBoombox{ playerid } = false;
|
||||||
|
p_Boombox{ playerid } = false;
|
||||||
|
Boombox_Destroy( playerid );
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
hook OnPlayerEnterDynArea( playerid, areaid )
|
||||||
|
{
|
||||||
|
foreach ( new i : Player )
|
||||||
|
{
|
||||||
|
if ( IsValidDynamicArea( g_boomboxData[ i ] [ E_MUSIC_AREA ] ) )
|
||||||
|
{
|
||||||
|
if ( areaid == g_boomboxData[ i ] [ E_MUSIC_AREA ] )
|
||||||
|
{
|
||||||
|
// start the music
|
||||||
|
PlayAudioStreamForPlayer( playerid, g_boomboxData[ i ] [ E_URL ], g_boomboxData[ i ] [ E_X ], g_boomboxData[ i ] [ E_Y ], g_boomboxData[ i ] [ E_Z ], DEFAULT_BOOMBOX_RANGE, 1 );
|
||||||
|
SendServerMessage( playerid, "You are now listening to a nearby boombox!" );
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
hook OnPlayerLeaveDynArea( playerid, areaid )
|
||||||
|
{
|
||||||
|
foreach ( new i : Player )
|
||||||
|
{
|
||||||
|
if ( IsValidDynamicArea( g_boomboxData[ i ] [ E_MUSIC_AREA ] ) )
|
||||||
|
{
|
||||||
|
if ( areaid == g_boomboxData[ i ] [ E_MUSIC_AREA ] )
|
||||||
|
{
|
||||||
|
// stop the music
|
||||||
|
StopAudioStreamForPlayer( playerid );
|
||||||
|
SendServerMessage( playerid, "You stopped listening to a nearby boombox!" );
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
hook OnDialogResponse( playerid, dialogid, response, listitem, inputtext[ ] )
|
||||||
|
{
|
||||||
|
if ( ( dialogid == DIALOG_BOOMBOX_PLAY ) && response )
|
||||||
|
{
|
||||||
|
static
|
||||||
|
Float: X, Float: Y, Float: Z, Float: Angle;
|
||||||
|
|
||||||
|
if ( isnull( inputtext ) ) return SendError( playerid, "Looks like you didn't provide any URL.");
|
||||||
|
if ( GetPlayerPos( playerid, X, Y, Z ) && GetPlayerFacingAngle( playerid, Angle ) )
|
||||||
|
{
|
||||||
|
Boombox_Create( playerid, inputtext, X, Y, Z, Angle );
|
||||||
|
p_UsingBoombox{ playerid } = true;
|
||||||
|
|
||||||
|
SendServerMessage( playerid, "If the stream doesn't respond then it must be offline. Use "COL_GREY"/boombox stop"COL_WHITE" to stop the stream." );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ** Commands ** */
|
||||||
|
CMD:boombox( playerid, params[ ] )
|
||||||
|
{
|
||||||
|
if ( ! GetPlayerBoombox( playerid ) )
|
||||||
|
return SendError( playerid, "You can buy Boombox at Supa Save or a 24/7 store." );
|
||||||
|
if ( IsPlayerInAnyVehicle(playerid) )
|
||||||
|
return SendError( playerid, "You cannot use Boombox inside of a vehicle.");
|
||||||
|
|
||||||
|
if ( strmatch( params, "play" ) )
|
||||||
|
{
|
||||||
|
if ( IsPlayerUsingBoombox( playerid ) ) return SendError( playerid, "You are already using Boombox." );
|
||||||
|
if ( IsPlayerNearBoombox( playerid ) ) return SendError( playerid, "You cannot be near another Boombox if you wish to create your own." );
|
||||||
|
|
||||||
|
ShowPlayerDialog( playerid, DIALOG_BOOMBOX_PLAY, DIALOG_STYLE_INPUT, ""COL_WHITE"Boombox", ""COL_WHITE"Enter the URL below, and streaming will begin.\n\n"COL_ORANGE"Please note, if there isn't a response. It's likely to be an invalid URL.", "Stream", "Back" );
|
||||||
|
}
|
||||||
|
else if ( strmatch( params, "stop" ) )
|
||||||
|
{
|
||||||
|
if ( ! IsPlayerUsingBoombox( playerid ) ) return SendError( playerid, "You are not using Boombox." );
|
||||||
|
|
||||||
|
StopAudioStreamForPlayer( playerid );
|
||||||
|
Boombox_Destroy( playerid );
|
||||||
|
SendServerMessage( playerid, "You have removed your Boombox.");
|
||||||
|
p_UsingBoombox{ playerid } = false;
|
||||||
|
}
|
||||||
|
else SendUsage( playerid, "/boombox [PLAY/STOP]" );
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ** Functions ** */
|
||||||
|
stock IsPlayerUsingBoombox( playerid ) return p_UsingBoombox{ playerid };
|
||||||
|
|
||||||
|
stock GetPlayerBoombox( playerid ) return p_Boombox{ playerid };
|
||||||
|
|
||||||
|
stock Boombox_Destroy( playerid )
|
||||||
|
{
|
||||||
|
g_boomboxData[ playerid ] [ E_X ] = 0.0;
|
||||||
|
g_boomboxData[ playerid ] [ E_Y ] = 0.0;
|
||||||
|
g_boomboxData[ playerid ] [ E_Z ] = 0.0;
|
||||||
|
g_boomboxData[ playerid ] [ E_URL ] [ 0 ] = '\0';
|
||||||
|
|
||||||
|
DestroyDynamicObject( g_boomboxData[ playerid ] [ E_OBJECT ] );
|
||||||
|
DestroyDynamic3DTextLabel( g_boomboxData[ playerid ] [ E_LABEL ] );
|
||||||
|
DestroyDynamicArea( g_boomboxData[ playerid ] [ E_MUSIC_AREA ] );
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
stock Boombox_Create( playerid, szURL[ ], Float: X, Float: Y, Float: Z, Float: Angle, Float: fDistance = DEFAULT_BOOMBOX_RANGE )
|
||||||
|
{
|
||||||
|
format( g_boomboxData[ playerid ] [ E_URL ], 128, "%s", szURL );
|
||||||
|
|
||||||
|
g_boomboxData[ playerid ] [ E_X ] = X;
|
||||||
|
g_boomboxData[ playerid ] [ E_Y ] = Y;
|
||||||
|
g_boomboxData[ playerid ] [ E_Z ] = Z;
|
||||||
|
|
||||||
|
g_boomboxData[ playerid ] [ E_OBJECT ] = CreateDynamicObject( 2103, X, Y, Z - 0.92, 0, 0, 0, GetPlayerVirtualWorld( playerid ), GetPlayerInterior( playerid ), -1, Angle );
|
||||||
|
g_boomboxData[ playerid ] [ E_LABEL ] = CreateDynamic3DTextLabel( sprintf( "%s(%d)'s Boombox", ReturnPlayerName( playerid ), playerid ), COLOR_GOLD, X, Y, Z, 10, .worldid = GetPlayerVirtualWorld( playerid ), .interiorid = GetPlayerInterior( playerid ) );
|
||||||
|
g_boomboxData[ playerid ] [ E_MUSIC_AREA ] = CreateDynamicSphere( X, Y, Z, fDistance, .worldid = GetPlayerVirtualWorld( playerid ), .interiorid = GetPlayerInterior( playerid ) );
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
stock IsPlayerNearBoombox( playerid )
|
||||||
|
{
|
||||||
|
foreach ( new i : Player ) {
|
||||||
|
if ( GetPlayerDistanceFromPoint( playerid, g_boomboxData[ i ] [ E_X ], g_boomboxData[ i ] [ E_Y ], g_boomboxData[ i ] [ E_Z ] ) < DEFAULT_BOOMBOX_RANGE ) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
@ -11,7 +11,7 @@
|
|||||||
/* ** Definitions ** */
|
/* ** Definitions ** */
|
||||||
#define MAX_FIRES ( 10 )
|
#define MAX_FIRES ( 10 )
|
||||||
|
|
||||||
#define FIRE_EXTINGUISH_PAYOUT ( 4000 )
|
#define FIRE_EXTINGUISH_PAYOUT ( 6000 )
|
||||||
|
|
||||||
/* ** Variables ** */
|
/* ** Variables ** */
|
||||||
enum E_FIRE_DATA
|
enum E_FIRE_DATA
|
||||||
@ -91,7 +91,7 @@ hook OnPlayerUpdateEx( playerid )
|
|||||||
ach_HandleExtinguishedFires( playerid );
|
ach_HandleExtinguishedFires( playerid );
|
||||||
SendClientMessageToAllFormatted( -1, "{A83434}[FIREMAN]"COL_WHITE" %s(%d) has earned "COL_GOLD"%s"COL_WHITE" for extinguishing a house fire.", ReturnPlayerName( playerid ), playerid, cash_format( money_earned ) );
|
SendClientMessageToAllFormatted( -1, "{A83434}[FIREMAN]"COL_WHITE" %s(%d) has earned "COL_GOLD"%s"COL_WHITE" for extinguishing a house fire.", ReturnPlayerName( playerid ), playerid, cash_format( money_earned ) );
|
||||||
GivePlayerScore( playerid, 2 );
|
GivePlayerScore( playerid, 2 );
|
||||||
//GivePlayerExperience( playerid, E_FIREMAN );
|
GivePlayerExperience( playerid, E_ROLEPLAY, 0.5 );
|
||||||
GivePlayerCash( playerid, money_earned );
|
GivePlayerCash( playerid, money_earned );
|
||||||
StockMarket_UpdateEarnings( E_STOCK_GOVERNMENT, money_earned, 0.15 );
|
StockMarket_UpdateEarnings( E_STOCK_GOVERNMENT, money_earned, 0.15 );
|
||||||
HouseFire_Remove( i );
|
HouseFire_Remove( i );
|
||||||
|
File diff suppressed because it is too large
Load Diff
@ -171,7 +171,7 @@ hook OnPlayerEnterDynRaceCP( playerid, checkpointid )
|
|||||||
//SendServerMessage( playerid, "You've made "COL_GOLD"%s"COL_WHITE" from exporting. Go and pick another box up!" );
|
//SendServerMessage( playerid, "You've made "COL_GOLD"%s"COL_WHITE" from exporting. Go and pick another box up!" );
|
||||||
GivePlayerCash( playerid, cash );
|
GivePlayerCash( playerid, cash );
|
||||||
GivePlayerScore( playerid, 5 );
|
GivePlayerScore( playerid, 5 );
|
||||||
GivePlayerExperience( playerid, E_ROLEPLAY );
|
GivePlayerExperience( playerid, E_ROLEPLAY, 1.0 + fDistance / 1000.0 );
|
||||||
|
|
||||||
DestroyDynamicMapIcon( p_LumberjackMapIcon[ playerid ] );
|
DestroyDynamicMapIcon( p_LumberjackMapIcon[ playerid ] );
|
||||||
p_LumberjackMapIcon[ playerid ] = CreateDynamicMapIconEx( -2330.8535, -113.9084, 34.00, 51, 0, MAPICON_GLOBAL, 6000.0, { -1 }, { -1 }, aPlayer );
|
p_LumberjackMapIcon[ playerid ] = CreateDynamicMapIconEx( -2330.8535, -113.9084, 34.00, 51, 0, MAPICON_GLOBAL, 6000.0, { -1 }, { -1 }, aPlayer );
|
||||||
@ -243,6 +243,7 @@ CMD:wood( playerid, params[ ] )
|
|||||||
g_treeData[ i ] [ E_CHOPPED ] = true;
|
g_treeData[ i ] [ E_CHOPPED ] = true;
|
||||||
count++;
|
count++;
|
||||||
GivePlayerCash( playerid, 250 );
|
GivePlayerCash( playerid, 250 );
|
||||||
|
GivePlayerExperience( playerid, E_ROLEPLAY, 0.4 );
|
||||||
SendServerMessage( playerid, "Tree successfully chopped into smaller pieces. Go to the wood chipper and type "COL_ORANGE"/wood chip{FFFFFF}!" );
|
SendServerMessage( playerid, "Tree successfully chopped into smaller pieces. Go to the wood chipper and type "COL_ORANGE"/wood chip{FFFFFF}!" );
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -304,6 +304,7 @@ public OnMethamphetamineCooking( playerid, vehicleid, last_chemical )
|
|||||||
ShowPlayerHelpDialog( playerid, 5000, "The process is done. Bag it up and do another round if you wish." );
|
ShowPlayerHelpDialog( playerid, 5000, "The process is done. Bag it up and do another round if you wish." );
|
||||||
SendServerMessage( playerid, "Process is done. Bag it up, and do another round if you wish. Export it for money." );
|
SendServerMessage( playerid, "Process is done. Bag it up, and do another round if you wish. Export it for money." );
|
||||||
GivePlayerWantedLevel( playerid, 12 );
|
GivePlayerWantedLevel( playerid, 12 );
|
||||||
|
GivePlayerExperience( playerid, E_ROLEPLAY );
|
||||||
GivePlayerScore( playerid, 3 );
|
GivePlayerScore( playerid, 3 );
|
||||||
ach_HandleMethYielded( playerid );
|
ach_HandleMethYielded( playerid );
|
||||||
SetGVarInt( "meth_yield", CreateDynamicObject( 1579, 2083.684082, 1233.945922, 414.875244, 0.000000, 0.000000, 90.000000, GetPlayerVirtualWorld( playerid ) ), vehicleid );
|
SetGVarInt( "meth_yield", CreateDynamicObject( 1579, 2083.684082, 1233.945922, 414.875244, 0.000000, 0.000000, 90.000000, GetPlayerVirtualWorld( playerid ) ), vehicleid );
|
||||||
@ -415,6 +416,7 @@ CMD:meth( playerid, params[ ] )
|
|||||||
cashEarned = p_Methamphetamine{ playerid } * ( 5000 + random( 1000 ) );
|
cashEarned = p_Methamphetamine{ playerid } * ( 5000 + random( 1000 ) );
|
||||||
|
|
||||||
GivePlayerCash( playerid, cashEarned );
|
GivePlayerCash( playerid, cashEarned );
|
||||||
|
GivePlayerExperience( playerid, E_ROLEPLAY, float( p_Methamphetamine{ playerid } ) * 0.2 );
|
||||||
StockMarket_UpdateEarnings( E_STOCK_CLUCKIN_BELL, cashEarned, .factor = 0.3 );
|
StockMarket_UpdateEarnings( E_STOCK_CLUCKIN_BELL, cashEarned, .factor = 0.3 );
|
||||||
SendServerMessage( playerid, "You have exported %d bags of meth, earning you "COL_GOLD"%s"COL_WHITE".", p_Methamphetamine{ playerid }, cash_format( cashEarned ) );
|
SendServerMessage( playerid, "You have exported %d bags of meth, earning you "COL_GOLD"%s"COL_WHITE".", p_Methamphetamine{ playerid }, cash_format( cashEarned ) );
|
||||||
p_Methamphetamine{ playerid } = 0;
|
p_Methamphetamine{ playerid } = 0;
|
||||||
|
@ -185,7 +185,7 @@ hook OnPlayerEnterDynRaceCP( playerid, checkpointid )
|
|||||||
GivePlayerScore( playerid, 1 + floatround( p_PilotDistance[ playerid ] / 1000.0 ) );
|
GivePlayerScore( playerid, 1 + floatround( p_PilotDistance[ playerid ] / 1000.0 ) );
|
||||||
StockMarket_UpdateEarnings( E_STOCK_AVIATION, cash_earned, stock_dividend_allocation );
|
StockMarket_UpdateEarnings( E_STOCK_AVIATION, cash_earned, stock_dividend_allocation );
|
||||||
GivePlayerCash( playerid, cash_earned );
|
GivePlayerCash( playerid, cash_earned );
|
||||||
GivePlayerExperience( playerid, E_ROLEPLAY );
|
GivePlayerExperience( playerid, E_ROLEPLAY, 1.0 + p_PilotDistance[ playerid ] / 1000.0 );
|
||||||
|
|
||||||
ShowPlayerHelpDialog( playerid, 5000, "You have earned ~y~%s ~w~for exporting %s!", cash_format( cash_earned ), g_CargoName[ p_PilotCargo[ playerid ] ] );
|
ShowPlayerHelpDialog( playerid, 5000, "You have earned ~y~%s ~w~for exporting %s!", cash_format( cash_earned ), g_CargoName[ p_PilotCargo[ playerid ] ] );
|
||||||
StopPlayerPilotWork( playerid );
|
StopPlayerPilotWork( playerid );
|
||||||
|
@ -134,7 +134,7 @@ hook OnPlayerEnterDynRaceCP( playerid, checkpointid )
|
|||||||
|
|
||||||
GivePlayerScore( playerid, 1 + floatround( p_TrainDistance[ playerid ] / 1000.0 ) );
|
GivePlayerScore( playerid, 1 + floatround( p_TrainDistance[ playerid ] / 1000.0 ) );
|
||||||
GivePlayerCash( playerid, iCashEarned );
|
GivePlayerCash( playerid, iCashEarned );
|
||||||
GivePlayerExperience( playerid, E_ROLEPLAY );
|
GivePlayerExperience( playerid, E_ROLEPLAY, 1.0 + p_TrainDistance[ playerid ] / 1000.0 );
|
||||||
|
|
||||||
ach_HandleTrainMissions( playerid );
|
ach_HandleTrainMissions( playerid );
|
||||||
|
|
||||||
|
@ -181,7 +181,7 @@ hook OnPlayerEnterDynRaceCP( playerid, checkpointid )
|
|||||||
GivePlayerScore( playerid, 1 + floatround( p_TruckingDistance[ playerid ] / 1000.0 ) );
|
GivePlayerScore( playerid, 1 + floatround( p_TruckingDistance[ playerid ] / 1000.0 ) );
|
||||||
StockMarket_UpdateEarnings( E_STOCK_TRUCKING_COMPANY, iCashEarned, .factor = 1.0 );
|
StockMarket_UpdateEarnings( E_STOCK_TRUCKING_COMPANY, iCashEarned, .factor = 1.0 );
|
||||||
GivePlayerCash( playerid, iCashEarned );
|
GivePlayerCash( playerid, iCashEarned );
|
||||||
GivePlayerExperience( playerid, E_ROLEPLAY );
|
GivePlayerExperience( playerid, E_ROLEPLAY, 1.0 + p_TruckingDistance[ playerid ] / 1000.0 );
|
||||||
|
|
||||||
p_TruckingDistance [ playerid ] = 0.0;
|
p_TruckingDistance [ playerid ] = 0.0;
|
||||||
p_hasTruckingJob { playerid } = false;
|
p_hasTruckingJob { playerid } = false;
|
||||||
|
@ -24,7 +24,8 @@ enum E_SHOP_ITEMS
|
|||||||
SHOP_ITEM_DRILL,
|
SHOP_ITEM_DRILL,
|
||||||
SHOP_ITEM_METAL_MELTER,
|
SHOP_ITEM_METAL_MELTER,
|
||||||
SHOP_ITEM_WEED_SEED,
|
SHOP_ITEM_WEED_SEED,
|
||||||
SHOP_ITEM_FIREWORKS
|
SHOP_ITEM_FIREWORKS,
|
||||||
|
SHOP_ITEM_BOOMBOX
|
||||||
}
|
}
|
||||||
|
|
||||||
enum E_SHOP_DATA
|
enum E_SHOP_DATA
|
||||||
@ -49,7 +50,8 @@ new
|
|||||||
{ SHOP_ITEM_MONEY_CASE, false, "Money Case", "Increases robbing amount", 1, 4500 }, // [1250]
|
{ SHOP_ITEM_MONEY_CASE, false, "Money Case", "Increases robbing amount", 1, 4500 }, // [1250]
|
||||||
{ SHOP_ITEM_DRILL, true , "Thermal Drill", "Halves safe cracking time", 1, 5000 },
|
{ SHOP_ITEM_DRILL, true , "Thermal Drill", "Halves safe cracking time", 1, 5000 },
|
||||||
{ SHOP_ITEM_METAL_MELTER, true , "Metal Melter", "/breakout", 4, 7500 },
|
{ SHOP_ITEM_METAL_MELTER, true , "Metal Melter", "/breakout", 4, 7500 },
|
||||||
{ SHOP_ITEM_FIREWORKS, true , "Firework", "/fireworks", 0, 50000 }
|
{ SHOP_ITEM_FIREWORKS, true , "Firework", "/fireworks", 0, 50000 },
|
||||||
|
{ SHOP_ITEM_BOOMBOX, false, "Boombox", "/boombox", 1, 15000 }
|
||||||
},
|
},
|
||||||
g_playerShopItems [ MAX_PLAYERS ] [ E_SHOP_ITEMS ] // gradually move to this
|
g_playerShopItems [ MAX_PLAYERS ] [ E_SHOP_ITEMS ] // gradually move to this
|
||||||
;
|
;
|
||||||
@ -102,6 +104,11 @@ hook OnDialogResponse( playerid, dialogid, response, listitem, inputtext[ ] )
|
|||||||
{
|
{
|
||||||
GivePlayerFireworks( playerid, 1 );
|
GivePlayerFireworks( playerid, 1 );
|
||||||
}
|
}
|
||||||
|
case SHOP_ITEM_BOOMBOX:
|
||||||
|
{
|
||||||
|
if ( p_Boombox{ playerid } == true ) return SendError( playerid, "You have already purchased this item." );
|
||||||
|
p_Boombox{ playerid } = true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
GivePlayerCash( playerid, -( g_shopItemData[ listitem ] [ E_PRICE ] ) );
|
GivePlayerCash( playerid, -( g_shopItemData[ listitem ] [ E_PRICE ] ) );
|
||||||
SendServerMessage( playerid, "You have bought a "COL_GREY"%s"COL_WHITE" for "COL_GOLD"%s"COL_WHITE".", g_shopItemData[ listitem ] [ E_NAME ], cash_format( g_shopItemData[ listitem ] [ E_PRICE ] ) );
|
SendServerMessage( playerid, "You have bought a "COL_GREY"%s"COL_WHITE" for "COL_GOLD"%s"COL_WHITE".", g_shopItemData[ listitem ] [ E_NAME ], cash_format( g_shopItemData[ listitem ] [ E_PRICE ] ) );
|
||||||
@ -191,6 +198,7 @@ stock GetShopItemAmount( playerid, id )
|
|||||||
case SHOP_ITEM_METAL_MELTER: return p_MetalMelter[ playerid ];
|
case SHOP_ITEM_METAL_MELTER: return p_MetalMelter[ playerid ];
|
||||||
case SHOP_ITEM_WEED_SEED: return g_playerShopItems[ playerid ] [ SHOP_ITEM_WEED_SEED ];
|
case SHOP_ITEM_WEED_SEED: return g_playerShopItems[ playerid ] [ SHOP_ITEM_WEED_SEED ];
|
||||||
case SHOP_ITEM_FIREWORKS: return p_Fireworks[ playerid ];
|
case SHOP_ITEM_FIREWORKS: return p_Fireworks[ playerid ];
|
||||||
|
case SHOP_ITEM_BOOMBOX: return p_Boombox[ playerid ];
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@ -213,6 +221,7 @@ stock SetPlayerShopItemAmount( playerid, id, value )
|
|||||||
case SHOP_ITEM_METAL_MELTER: p_MetalMelter[ playerid ] = value;
|
case SHOP_ITEM_METAL_MELTER: p_MetalMelter[ playerid ] = value;
|
||||||
case SHOP_ITEM_WEED_SEED: g_playerShopItems[ playerid ] [ SHOP_ITEM_WEED_SEED ] = value;
|
case SHOP_ITEM_WEED_SEED: g_playerShopItems[ playerid ] [ SHOP_ITEM_WEED_SEED ] = value;
|
||||||
case SHOP_ITEM_FIREWORKS: p_Fireworks[ playerid ] = value;
|
case SHOP_ITEM_FIREWORKS: p_Fireworks[ playerid ] = value;
|
||||||
|
case SHOP_ITEM_BOOMBOX: p_Boombox[ playerid ] = !!value;
|
||||||
}
|
}
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
@ -113,7 +113,7 @@ hook OnScriptInit( )
|
|||||||
CreateMultipleRobberies( "Church", ROBBERY_SAFE_PAY, 2390.926757, 3195.784179, 1016.920837, -90.00000, 39, 40, 41, 62, 24 );
|
CreateMultipleRobberies( "Church", ROBBERY_SAFE_PAY, 2390.926757, 3195.784179, 1016.920837, -90.00000, 39, 40, 41, 62, 24 );
|
||||||
CreateRobberyNPC( "Priest", ROBBERY_BOT_PAY, 2383.1968,3193.2842,1017.7320,1.0113, 68, 39, 40, 41, 62, 24 );
|
CreateRobberyNPC( "Priest", ROBBERY_BOT_PAY, 2383.1968,3193.2842,1017.7320,1.0113, 68, 39, 40, 41, 62, 24 );
|
||||||
|
|
||||||
CreateMultipleRobberies( "Hotel de Solanum", ROBBERY_SAFE_PAY, -1967.766357, 1367.773925, 6.879500000, 86.700000, 0 );
|
CreateMultipleRobberies( "Hotel da Novic", ROBBERY_SAFE_PAY, -1967.766357, 1367.773925, 6.879500000, 86.700000, 0 );
|
||||||
CreateRobberyNPC( "Hotel Bartender", ROBBERY_BOT_PAY, -1944.5562,1362.2947,7.3546,86.4801, 126, 0 );
|
CreateRobberyNPC( "Hotel Bartender", ROBBERY_BOT_PAY, -1944.5562,1362.2947,7.3546,86.4801, 126, 0 );
|
||||||
|
|
||||||
CreateMultipleRobberies( "Vehicle Dealership", ROBBERY_SAFE_PAY, -1862.799682, -652.836608, 1001.578125, -89.80000, 0 );
|
CreateMultipleRobberies( "Vehicle Dealership", ROBBERY_SAFE_PAY, -1862.799682, -652.836608, 1001.578125, -89.80000, 0 );
|
||||||
|
@ -209,7 +209,9 @@ new
|
|||||||
p_TazingImmunity [ MAX_PLAYERS ],
|
p_TazingImmunity [ MAX_PLAYERS ],
|
||||||
p_PlayerAltBind [ MAX_PLAYERS ] = { -1, ... },
|
p_PlayerAltBind [ MAX_PLAYERS ] = { -1, ... },
|
||||||
p_PlayerAltBindTick [ MAX_PLAYERS ],
|
p_PlayerAltBindTick [ MAX_PLAYERS ],
|
||||||
p_AimedAtPolice [ MAX_PLAYERS ]
|
p_AimedAtPolice [ MAX_PLAYERS ],
|
||||||
|
bool: p_UsingBoombox [ MAX_PLAYERS char ],
|
||||||
|
bool: p_Boombox [ MAX_PLAYERS char ]
|
||||||
;
|
;
|
||||||
|
|
||||||
/* ** Getters And Setters** */
|
/* ** Getters And Setters** */
|
||||||
|
@ -3672,9 +3672,9 @@ hook OnScriptInit( )
|
|||||||
CreateDynamicObject( 19353, -1971.630371, 1345.444091, 4.487493, 0.000000, 0.000000, 132.000106 );
|
CreateDynamicObject( 19353, -1971.630371, 1345.444091, 4.487493, 0.000000, 0.000000, 132.000106 );
|
||||||
CreateDynamicObject( 19353, -1972.768188, 1342.837890, 4.487494, 0.000000, 0.000000, 0.300101 );
|
CreateDynamicObject( 19353, -1972.768188, 1342.837890, 4.487494, 0.000000, 0.000000, 0.300101 );
|
||||||
CreateDynamicObject( 19353, -1972.757202, 1340.717895, 4.487494, 0.000000, 0.000000, 0.300101 );
|
CreateDynamicObject( 19353, -1972.757202, 1340.717895, 4.487494, 0.000000, 0.000000, 0.300101 );
|
||||||
SetDynamicObjectMaterialText( CreateDynamicObject( 3074, -1966.0687, 1345.0089, 3.1941, 0.0000, 0.0000, -78.5715 ), 0, "Solanum", 130, "Times New Roman", 18, 1, -1, 0, 1);
|
SetDynamicObjectMaterialText( CreateDynamicObject( 3074, -1966.0687, 1345.0089, 3.1941, 0.0000, 0.0000, -78.5715 ), 0, "Novic", 130, "Times New Roman", 18, 1, -1, 0, 1);
|
||||||
SetDynamicObjectMaterialText( CreateDynamicObject( 3074, -1969.9720, 1341.4737, 3.1941, 0.0000, 0.0000, -16.3579 ), 0, "Hotel", 130, "Times New Roman", 18, 1, -1, 0, 1);
|
SetDynamicObjectMaterialText( CreateDynamicObject( 3074, -1969.9720, 1341.4737, 3.1941, 0.0000, 0.0000, -16.3579 ), 0, "Hotel", 130, "Times New Roman", 18, 1, -1, 0, 1);
|
||||||
SetDynamicObjectMaterialText( CreateDynamicObject( 3074, -1968.2480, 1343.4796, 3.5041, 0.0000, 0.0000, -47.5979 ), 0, "de", 130, "Times New Roman", 24, 1, -1, 0, 1);
|
SetDynamicObjectMaterialText( CreateDynamicObject( 3074, -1968.2480, 1343.4796, 3.5041, 0.0000, 0.0000, -47.5979 ), 0, "da", 130, "Times New Roman", 24, 1, -1, 0, 1);
|
||||||
|
|
||||||
// Freefall
|
// Freefall
|
||||||
SetDynamicObjectMaterial( CreateDynamicObject( 19355, -1758.228759, 860.904357, 31.404382, 0.000000, 0.000000, 90.000000 ), 0, 9900, "pointysfe", "pointy_sfe", 0 );
|
SetDynamicObjectMaterial( CreateDynamicObject( 19355, -1758.228759, 860.904357, 31.404382, 0.000000, 0.000000, 90.000000 ), 0, 9900, "pointysfe", "pointy_sfe", 0 );
|
||||||
|
@ -5295,6 +5295,7 @@ public OnDialogResponse( playerid, dialogid, response, listitem, inputtext[ ] )
|
|||||||
strcat( szCMDS, ""COL_GREY"/labelinfo{FFFFFF} - Displays your label text with the 32 character limit.\n"\
|
strcat( szCMDS, ""COL_GREY"/labelinfo{FFFFFF} - Displays your label text with the 32 character limit.\n"\
|
||||||
""COL_GREY"/radio{FFFFFF} - Shows the list of radio stations you can listen to.\n"\
|
""COL_GREY"/radio{FFFFFF} - Shows the list of radio stations you can listen to.\n"\
|
||||||
""COL_GREY"/stopradio{FFFFFF} - Stops the radio from playing.\n"\
|
""COL_GREY"/stopradio{FFFFFF} - Stops the radio from playing.\n"\
|
||||||
|
""COL_GREY"/boombox{FFFFFF} - Places a boombox at your position which plays music in small area.\n"\
|
||||||
""COL_GREY"/moviemode{FFFFFF} - Toggles movie mode so you can record without all the text on the screen." );
|
""COL_GREY"/moviemode{FFFFFF} - Toggles movie mode so you can record without all the text on the screen." );
|
||||||
ShowPlayerDialog( playerid, DIALOG_CMDS_REDIRECT, DIALOG_STYLE_MSGBOX, "{FFFFFF}Miscellaneous Commands", szCMDS, "Okay", "Back" );
|
ShowPlayerDialog( playerid, DIALOG_CMDS_REDIRECT, DIALOG_STYLE_MSGBOX, "{FFFFFF}Miscellaneous Commands", szCMDS, "Okay", "Back" );
|
||||||
}
|
}
|
||||||
|
@ -2,8 +2,11 @@
|
|||||||
(+) Adds CAC mode and new locations for the duel system (Stev).
|
(+) Adds CAC mode and new locations for the duel system (Stev).
|
||||||
(+) Adds /givearmour for level 5s (Nemesis).
|
(+) Adds /givearmour for level 5s (Nemesis).
|
||||||
(+) Adds roleplay level. Get benefits to minijobs by levelling it up. E.g. higher success mining.
|
(+) Adds roleplay level. Get benefits to minijobs by levelling it up. E.g. higher success mining.
|
||||||
|
(+) Adds a boombox system. Buy one at Supa Save and play music locally with your friends.
|
||||||
|
(+) Hotel da Novic rooms come now prefurnished.
|
||||||
(/) Inactive accounts will get removed now after 1 year.
|
(/) Inactive accounts will get removed now after 1 year.
|
||||||
(/) Oldschool class selection has been restored.
|
(/) Oldschool class selection has been restored.
|
||||||
(/) "/vip" has been reformatted (Night).
|
(/) "/vip" has been reformatted (Night).
|
||||||
(*) Fix global message spam with slot machines.
|
(*) Fix global message spam with slot machines.
|
||||||
(*) Fix issue with features being shown and unavoidable on register.
|
(*) Fix issue with features being shown and unavoidable on register.
|
||||||
|
(*) Meth now pays roleplay experience.
|
Loading…
Reference in New Issue
Block a user