press F to pickup furniture
This commit is contained in:
parent
9e9beef18c
commit
395bd7c86f
@ -44,3 +44,5 @@
|
|||||||
- Called when a player leaves a gang
|
- Called when a player leaves a gang
|
||||||
- `OnPlayerEnterHouse( playerid, houseid )`
|
- `OnPlayerEnterHouse( playerid, houseid )`
|
||||||
- Called when a player enters a house
|
- Called when a player enters a house
|
||||||
|
- `OnPlayerAttemptBurglary( playerid, houseid, businessid )`
|
||||||
|
- Called when a player attempts to break into a business/house
|
||||||
|
@ -42,8 +42,10 @@ hook OnPlayerDriveVehicle( playerid, vehicleid )
|
|||||||
|
|
||||||
if ( model == 498 && p_Class[ playerid ] != CLASS_POLICE )
|
if ( model == 498 && p_Class[ playerid ] != CLASS_POLICE )
|
||||||
{
|
{
|
||||||
format( szSmallString, sizeof( szSmallString ), "vburg_%d_items", vehicleid );
|
new num_furniture = GetGVarInt( sprintf( "vburg_%d_items", vehicleid ) );
|
||||||
if ( GetGVarInt( szSmallString ) > 0 )
|
new cash_value = GetGVarInt( sprintf( "vburg_%d_cash", vehicleid ) );
|
||||||
|
|
||||||
|
if ( num_furniture > 0 )
|
||||||
{
|
{
|
||||||
new
|
new
|
||||||
Float: X, Float: Y, Float: Z,
|
Float: X, Float: Y, Float: Z,
|
||||||
@ -53,7 +55,7 @@ hook OnPlayerDriveVehicle( playerid, vehicleid )
|
|||||||
|
|
||||||
Beep( playerid );
|
Beep( playerid );
|
||||||
GameTextForPlayer( playerid, "Go to the truck blip on your radar for money!", 3000, 1 );
|
GameTextForPlayer( playerid, "Go to the truck blip on your radar for money!", 3000, 1 );
|
||||||
SendServerMessage( playerid, "Note! You have %d stolen goods that you can export for money!", GetGVarInt( szSmallString ) );
|
SendServerMessage( playerid, "You have %d stolen goods that you can export for "COL_GOLD"%s"COL_WHITE"!", num_furniture, cash_format( cash_value ) );
|
||||||
|
|
||||||
static
|
static
|
||||||
szCity[ MAX_ZONE_NAME ],
|
szCity[ MAX_ZONE_NAME ],
|
||||||
@ -94,12 +96,12 @@ hook OnPlayerStateChange( playerid, newstate, oldstate )
|
|||||||
{
|
{
|
||||||
if ( newstate != PLAYER_STATE_DRIVER && oldstate == PLAYER_STATE_DRIVER ) // Driver has a new state?
|
if ( newstate != PLAYER_STATE_DRIVER && oldstate == PLAYER_STATE_DRIVER ) // Driver has a new state?
|
||||||
{
|
{
|
||||||
if ( p_PawnStoreExport[ playerid ] != 0xFFFF )
|
if ( p_PawnStoreExport[ playerid ] != -1 )
|
||||||
{
|
{
|
||||||
DestroyDynamicMapIcon( p_PawnStoreMapIcon[ playerid ] );
|
DestroyDynamicMapIcon( p_PawnStoreMapIcon[ playerid ] );
|
||||||
p_PawnStoreMapIcon[ playerid ] = 0xFFFF;
|
p_PawnStoreMapIcon[ playerid ] = -1;
|
||||||
DestroyDynamicRaceCP( p_PawnStoreExport[ playerid ] );
|
DestroyDynamicRaceCP( p_PawnStoreExport[ playerid ] );
|
||||||
p_PawnStoreExport[ playerid ] = 0xFFFF;
|
p_PawnStoreExport[ playerid ] = -1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return 1;
|
return 1;
|
||||||
@ -114,34 +116,21 @@ hook OnPlayerEnterDynRaceCP( playerid, checkpointid )
|
|||||||
new vehicleid = GetPlayerVehicleID( playerid );
|
new vehicleid = GetPlayerVehicleID( playerid );
|
||||||
if ( GetVehicleModel( vehicleid ) == 498 )
|
if ( GetVehicleModel( vehicleid ) == 498 )
|
||||||
{
|
{
|
||||||
new
|
new cash_earned = GetGVarInt( sprintf( "vburg_%d_cash", vehicleid ) );
|
||||||
szItems[ 18 ],
|
new num_furniture = GetGVarInt( sprintf( "vburg_%d_items", vehicleid ) );
|
||||||
cashEarned,
|
new score = floatround( num_furniture / 2 );
|
||||||
items, score
|
|
||||||
;
|
|
||||||
format( szItems, sizeof( szItems ), "vburg_%d_items", vehicleid );
|
|
||||||
for( new i; i < GetGVarInt( szItems ) + 1; i++ )
|
|
||||||
{
|
|
||||||
format( szSmallString, sizeof( szSmallString ), "vburg_%d_%d", vehicleid, i );
|
|
||||||
if ( GetGVarInt( szSmallString ) != 0 )
|
|
||||||
{
|
|
||||||
cashEarned += floatround( float( g_houseFurniture[ GetGVarInt( szSmallString ) ] [ E_COST ] ) * 0.5 );
|
|
||||||
DeleteGVar( szSmallString );
|
|
||||||
}
|
|
||||||
}
|
|
||||||
items = GetGVarInt( szItems );
|
|
||||||
score = floatround( items / 2 );
|
|
||||||
GivePlayerScore( playerid, score == 0 ? 1 : score );
|
GivePlayerScore( playerid, score == 0 ? 1 : score );
|
||||||
//GivePlayerExperience( playerid, E_BURGLAR, float( items ) * 0.2 );
|
//GivePlayerExperience( playerid, E_BURGLAR, float( num_furniture ) * 0.2 );
|
||||||
DestroyDynamicMapIcon( p_PawnStoreMapIcon[ playerid ] );
|
DestroyDynamicMapIcon( p_PawnStoreMapIcon[ playerid ] );
|
||||||
p_PawnStoreMapIcon[ playerid ] = 0xFFFF;
|
p_PawnStoreMapIcon[ playerid ] = -1;
|
||||||
DestroyDynamicRaceCP( p_PawnStoreExport[ playerid ] );
|
DestroyDynamicRaceCP( p_PawnStoreExport[ playerid ] );
|
||||||
p_PawnStoreExport[ playerid ] = 0xFFFF;
|
p_PawnStoreExport[ playerid ] = -1;
|
||||||
GivePlayerCash( playerid, cashEarned );
|
GivePlayerCash( playerid, cash_earned );
|
||||||
StockMarket_UpdateEarnings( E_STOCK_PAWN_STORE, cashEarned, 1.0 );
|
StockMarket_UpdateEarnings( E_STOCK_PAWN_STORE, cash_earned, 1.0 );
|
||||||
GivePlayerWantedLevel( playerid, items * 2 );
|
GivePlayerWantedLevel( playerid, num_furniture * 2 );
|
||||||
SendServerMessage( playerid, "You have sold %d furniture item(s) to the Pawn Store, earning you "COL_GOLD"%s"COL_WHITE".", GetGVarInt( szItems ), cash_format( cashEarned ) );
|
SendServerMessage( playerid, "You have sold %d furniture item(s) to the Pawn Store, earning you "COL_GOLD"%s"COL_WHITE".", num_furniture, cash_format( cash_earned ) );
|
||||||
DeleteGVar( szItems );
|
ResetVehicleBurglaryData( vehicleid );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return 1;
|
return 1;
|
||||||
@ -200,6 +189,54 @@ hook OnProgressCompleted( playerid, progressid, params )
|
|||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
hook OnPlayerEnterHouse( playerid, houseid )
|
||||||
|
{
|
||||||
|
// alert burglar of any furniture
|
||||||
|
if ( ! IsPlayerHomeOwner( playerid, houseid ) && IsPlayerJob( playerid, JOB_BURGLAR ) && GetPlayerClass( playerid ) == CLASS_CIVILIAN ) {
|
||||||
|
if ( Iter_Count( housefurniture[ houseid ] ) ) {
|
||||||
|
ShowPlayerHelpDialog( playerid, 4000, "This house has furniture to rob.~n~~n~Type ~g~~h~/burglar steal~w~ near the furniture you want to steal." );
|
||||||
|
} else {
|
||||||
|
ShowPlayerHelpDialog( playerid, 4000, "~r~This house has no furniture to rob." );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
hook OnPlayerAttemptBurglary( playerid, houseid, businessid )
|
||||||
|
{
|
||||||
|
new current_time = GetServerTime( );
|
||||||
|
new crackpw_cooldown = GetPVarInt( playerid, "crack_housepw_cool" );
|
||||||
|
|
||||||
|
if ( crackpw_cooldown > current_time ) {
|
||||||
|
return SendError( playerid, "You are unable to attempt a house break-in for %d seconds.", crackpw_cooldown - current_time ), 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
print("Attempt Breakin");
|
||||||
|
|
||||||
|
if ( IsValidHouse( houseid ) )
|
||||||
|
{
|
||||||
|
if ( current_time > g_houseData[ houseid ] [ E_CRACKED_TS ] && g_houseData[ houseid ] [ E_CRACKED ] )
|
||||||
|
g_houseData[ houseid ] [ E_CRACKED ] = false; // The Virus Is Disabled.
|
||||||
|
|
||||||
|
if ( g_houseData[ houseid ] [ E_CRACKED_WAIT ] > current_time )
|
||||||
|
return print("1"), SendError( playerid, "This house had its password recently had a cracker run through. Come back later." ), 0;
|
||||||
|
|
||||||
|
if ( g_houseData[ houseid ] [ E_CRACKED ] || g_houseData[ houseid ] [ E_BEING_CRACKED ] )
|
||||||
|
return print("2"), SendError( playerid, "This house is currently being cracked or is already cracked." ), 0;
|
||||||
|
|
||||||
|
if ( IsHouseOnFire( houseid ) )
|
||||||
|
return print("3"), SendError( playerid, "This house is on fire, you cannot crack it!" ), 0;
|
||||||
|
|
||||||
|
print("Attempt Breakin2");
|
||||||
|
g_houseData[ houseid ] [ E_BEING_CRACKED ] = true;
|
||||||
|
p_HouseCrackingPW[ playerid ] = houseid;
|
||||||
|
SetPVarInt( playerid, "crack_housepw_cool", current_time + 40 );
|
||||||
|
ShowProgressBar( playerid, "Cracking Password", PROGRESS_CRACKING, 7500, COLOR_WHITE );
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
hook OnVehicleCreated( vehicleid, model_id )
|
hook OnVehicleCreated( vehicleid, model_id )
|
||||||
{
|
{
|
||||||
if ( model_id == 498 )
|
if ( model_id == 498 )
|
||||||
@ -248,34 +285,88 @@ hook OnPlayerEnterDynArea( playerid, areaid )
|
|||||||
return SendError( playerid, "You aren't holding anything!" );
|
return SendError( playerid, "You aren't holding anything!" );
|
||||||
}
|
}
|
||||||
|
|
||||||
format( szSmallString, sizeof( szSmallString ), "vburg_%d_items", attached_vehicle );
|
new stolen_furniture_count = GetGVarInt( sprintf( "vburg_%d_items", attached_vehicle ) );
|
||||||
|
|
||||||
if ( GetGVarInt( szSmallString ) >= MAX_BURGLARY_SLOTS ) {
|
if ( stolen_furniture_count >= MAX_BURGLARY_SLOTS ) {
|
||||||
return SendError( playerid, "You can only carry %d items in this vehicle.", MAX_BURGLARY_SLOTS );
|
return SendError( playerid, "You can only carry %d items in this vehicle.", MAX_BURGLARY_SLOTS );
|
||||||
}
|
}
|
||||||
|
|
||||||
new
|
static
|
||||||
Float: angle;
|
Float: angle;
|
||||||
|
|
||||||
GetVehicleZAngle( attached_vehicle, angle );
|
GetVehicleZAngle( attached_vehicle, angle );
|
||||||
|
|
||||||
SetGVarInt( szSmallString, GetGVarInt( szSmallString ) + 1 );
|
new stolen_furniture_id = GetPVarInt( playerid, "stolen_fid" );
|
||||||
SetGVarInt( sprintf( "vburg_%d_%d", attached_vehicle, GetGVarInt( szSmallString ) ), GetPVarInt( playerid, "stolen_fid" ) );
|
new stolen_furniture_value = floatround( float( g_houseFurniture[ stolen_furniture_id ] [ E_COST ] ) * 0.5 );
|
||||||
|
new stolen_cash_accumulative = GetGVarInt( sprintf( "vburg_%d_cash", attached_vehicle ) );
|
||||||
|
|
||||||
|
SetGVarInt( sprintf( "vburg_%d_items", attached_vehicle ), stolen_furniture_count + 1 );
|
||||||
|
SetGVarInt( sprintf( "vburg_%d_cash", attached_vehicle ), stolen_cash_accumulative + stolen_furniture_value );
|
||||||
|
|
||||||
RemovePlayerAttachedObject( playerid, 3 );
|
RemovePlayerAttachedObject( playerid, 3 );
|
||||||
ClearAnimations( playerid );
|
ClearAnimations( playerid );
|
||||||
SetPlayerSpecialAction( playerid, SPECIAL_ACTION_NONE );
|
SetPlayerSpecialAction( playerid, SPECIAL_ACTION_NONE );
|
||||||
DeletePVar( playerid, "stolen_fid" );
|
|
||||||
|
|
||||||
SetPlayerFacingAngle( playerid, angle );
|
SetPlayerFacingAngle( playerid, angle );
|
||||||
SendServerMessage( playerid, "You have placed a "COL_GREY"%s"COL_WHITE" in this Boxville. "COL_ORANGE"[%d/%d]", g_houseFurniture[ GetPVarInt( playerid, "stolen_fid" ) ] [ E_NAME ], GetGVarInt( szSmallString ), MAX_BURGLARY_SLOTS );
|
SendServerMessage( playerid, "You have placed a "COL_GREY"%s"COL_WHITE" in this Boxville. "COL_ORANGE"[%d/%d]", g_houseFurniture[ stolen_furniture_id ] [ E_NAME ], stolen_furniture_count + 1, MAX_BURGLARY_SLOTS );
|
||||||
|
|
||||||
ApplyAnimation( playerid, "CARRY", "putdwn105", 4.0, 0, 0, 0, 0, 0 );
|
ApplyAnimation( playerid, "CARRY", "putdwn105", 4.0, 0, 0, 0, 0, 0 );
|
||||||
|
DeletePVar( playerid, "stolen_fid" );
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
hook OnPlayerKeyStateChange( playerid, newkeys, oldkeys )
|
||||||
|
{
|
||||||
|
if ( PRESSED( KEY_SECONDARY_ATTACK ) && IsPlayerJob( playerid, JOB_BURGLAR ) && GetPlayerClass( playerid ) == CLASS_CIVILIAN )
|
||||||
|
{
|
||||||
|
new
|
||||||
|
houseid = GetPlayerEnteredHouse( playerid );
|
||||||
|
|
||||||
|
if ( IsValidHouse( houseid ) && ! IsPlayerHomeOwner( playerid, houseid ) )
|
||||||
|
{
|
||||||
|
new Float: distance = 99999.99, furniture_slot = ITER_NONE;
|
||||||
|
new objectid = GetClosestFurniture( houseid, playerid, distance, furniture_slot );
|
||||||
|
new modelid = Streamer_GetIntData( STREAMER_TYPE_OBJECT, objectid, E_STREAMER_MODEL_ID );
|
||||||
|
new furniture_id = getFurnitureID( modelid );
|
||||||
|
|
||||||
|
if ( objectid == INVALID_OBJECT_ID || furniture_slot == ITER_NONE )
|
||||||
|
return SendError( playerid, "No furniture is in this house." );
|
||||||
|
|
||||||
|
if ( distance > 3.0 )
|
||||||
|
return SendError( playerid, "You are not close to any furniture." );
|
||||||
|
|
||||||
|
if ( g_houseFurniture[ furniture_id ] [ E_CATEGORY ] != FC_ELECTRONIC && g_houseFurniture[ furniture_id ] [ E_CATEGORY ] != FC_WEAPONS )
|
||||||
|
return ShowPlayerHelpDialog( playerid, 3000, "The furniture you're near is not an electronic." );
|
||||||
|
|
||||||
|
if ( IsPlayerAttachedObjectSlotUsed( playerid, 3 ) )
|
||||||
|
return ShowPlayerHelpDialog( playerid, 3000, "Your hands are busy at the moment." );
|
||||||
|
|
||||||
|
if ( IsPointToPoint( 150.0, g_houseData[ houseid ] [ E_EX ], g_houseData[ houseid ] [ E_EY ], g_houseData[ houseid ] [ E_EZ ], -2480.1426, 5.5302, 25.6172 ) )
|
||||||
|
return ShowPlayerHelpDialog( playerid, 3000, "~r~This house is protected from burglaries." );
|
||||||
|
|
||||||
|
new Float: playerZ, Float: furnitureZ;
|
||||||
|
GetPlayerPos( playerid, playerZ, playerZ, playerZ );
|
||||||
|
GetDynamicObjectPos( objectid, furnitureZ, furnitureZ, furnitureZ );
|
||||||
|
|
||||||
|
// apply animation
|
||||||
|
if ( playerZ - furnitureZ <= 0.0 ) ApplyAnimation( playerid, "CARRY", "liftup105", 4.0, 0, 0, 0, 0, 0 );
|
||||||
|
else if ( playerZ - furnitureZ <= 0.45 ) ApplyAnimation( playerid, "CARRY", "liftup05", 4.0, 0, 0, 0, 0, 0 );
|
||||||
|
else ApplyAnimation( playerid, "CARRY", "liftup", 4.0, 0, 0, 0, 0, 0 );
|
||||||
|
|
||||||
|
// Alert
|
||||||
|
SendServerMessage( playerid, "You have stolen a "COL_GREY"%s"COL_WHITE". Store it in a Boxville to transport the item.", g_houseFurniture[ furniture_id ] [ E_NAME ] );
|
||||||
|
SetPlayerSpecialAction( playerid, SPECIAL_ACTION_CARRY );
|
||||||
|
SetPVarInt( playerid, "stolen_fid", furniture_id );
|
||||||
|
SetPlayerAttachedObject( playerid, 3, 1220, 5, 0.043999, 0.222999, 0.207000, 14.400002, 15.799994, 0.000000, 0.572999, 0.662000, 0.665000 );
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
/* ** Commands ** */
|
/* ** Commands ** */
|
||||||
CMD:burglar( playerid, params[ ] )
|
CMD:burglar( playerid, params[ ] )
|
||||||
{
|
{
|
||||||
@ -285,7 +376,6 @@ CMD:burglar( playerid, params[ ] )
|
|||||||
if ( isnull( params ) ) return SendUsage( playerid, "/burglar [CRACKPW/STEAL/STORE]" );
|
if ( isnull( params ) ) return SendUsage( playerid, "/burglar [CRACKPW/STEAL/STORE]" );
|
||||||
else if ( strmatch( params, "crackpw" ) )
|
else if ( strmatch( params, "crackpw" ) )
|
||||||
{
|
{
|
||||||
if ( GetPVarInt( playerid, "crackpw_cool" ) > g_iTime ) return SendError( playerid, "You must wait 40 seconds before using this command again." );
|
|
||||||
|
|
||||||
// businesses
|
// businesses
|
||||||
/*foreach ( new handle : business )
|
/*foreach ( new handle : business )
|
||||||
@ -316,81 +406,6 @@ CMD:burglar( playerid, params[ ] )
|
|||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
}*/
|
}*/
|
||||||
|
|
||||||
// houses
|
|
||||||
foreach ( new i : houses )
|
|
||||||
{
|
|
||||||
if ( IsPlayerInDynamicCP( playerid, g_houseData[ i ] [ E_CHECKPOINT ] [ 0 ] ) && !strmatch( g_houseData[ i ] [ E_OWNER ], ReturnPlayerName( playerid ) ) )
|
|
||||||
{
|
|
||||||
if ( g_iTime > g_houseData[ i ] [ E_CRACKED_TS ] && g_houseData[ i ] [ E_CRACKED ] ) g_houseData[ i ] [ E_CRACKED ] = false; // The Virus Is Disabled.
|
|
||||||
|
|
||||||
if ( g_houseData[ i ] [ E_CRACKED_WAIT ] > g_iTime )
|
|
||||||
return SendError( playerid, "This house had its password recently had a cracker run through. Come back later." );
|
|
||||||
|
|
||||||
if ( strmatch( g_houseData[ i ] [ E_PASSWORD ], "N/A" ) )
|
|
||||||
return SendError( playerid, "This house does not require cracking as it doesn't have a password." );
|
|
||||||
|
|
||||||
if ( g_houseData[ i ] [ E_CRACKED ] || g_houseData[ i ] [ E_BEING_CRACKED ] )
|
|
||||||
return SendError( playerid, "This house is currently being cracked or is already cracked." );
|
|
||||||
|
|
||||||
if ( IsHouseOnFire( i ) )
|
|
||||||
return SendError( playerid, "This house is on fire, you cannot crack it!" ), 1;
|
|
||||||
|
|
||||||
g_houseData[ i ] [ E_BEING_CRACKED ] = true;
|
|
||||||
p_HouseCrackingPW[ playerid ] = i;
|
|
||||||
SetPVarInt( playerid, "crackpw_cool", g_iTime + 40 );
|
|
||||||
ShowProgressBar( playerid, "Cracking Password", PROGRESS_CRACKING, 7500, COLOR_WHITE );
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// businesses
|
|
||||||
SendError( playerid, "You are not standing in any house or business checkpoint." );
|
|
||||||
}
|
|
||||||
else if ( strmatch( params, "steal" ) )
|
|
||||||
{
|
|
||||||
new houseid = p_InHouse[ playerid ];
|
|
||||||
|
|
||||||
if ( houseid == -1 )
|
|
||||||
return SendError( playerid, "You're not inside any house." );
|
|
||||||
|
|
||||||
if ( IsPlayerHomeOwner( playerid, houseid ) )
|
|
||||||
return SendError( playerid, "You can't steal a piece of furniture from your house!" );
|
|
||||||
|
|
||||||
new Float: distance = 99999.99, furniture_slot = ITER_NONE;
|
|
||||||
new objectid = GetClosestFurniture( houseid, playerid, distance, furniture_slot );
|
|
||||||
new modelid = Streamer_GetIntData( STREAMER_TYPE_OBJECT, objectid, E_STREAMER_MODEL_ID );
|
|
||||||
new furniture_id = getFurnitureID( modelid );
|
|
||||||
|
|
||||||
if ( objectid == INVALID_OBJECT_ID || furniture_slot == ITER_NONE )
|
|
||||||
return SendError( playerid, "No furniture is in this house." );
|
|
||||||
|
|
||||||
if ( distance > 3.0 )
|
|
||||||
return SendError( playerid, "You are not close to any furniture." );
|
|
||||||
|
|
||||||
if ( g_houseFurniture[ furniture_id ] [ E_CATEGORY ] != FC_ELECTRONIC && g_houseFurniture[ furniture_id ] [ E_CATEGORY ] != FC_WEAPONS )
|
|
||||||
return SendError( playerid, "The furniture you're near is not an electronic." );
|
|
||||||
|
|
||||||
if ( IsPlayerAttachedObjectSlotUsed( playerid, 3 ) )
|
|
||||||
return SendError( playerid, "Your hands are busy at the moment." );
|
|
||||||
|
|
||||||
if ( IsPointToPoint( 150.0, g_houseData[ houseid ] [ E_EX ], g_houseData[ houseid ] [ E_EY ], g_houseData[ houseid ] [ E_EZ ], -2480.1426, 5.5302, 25.6172 ) )
|
|
||||||
return SendError( playerid, "This house is prohibited from burglarly features as it is too close to the Pawn Store." );
|
|
||||||
|
|
||||||
new Float: playerZ, Float: furnitureZ;
|
|
||||||
GetPlayerPos( playerid, playerZ, playerZ, playerZ );
|
|
||||||
GetDynamicObjectPos( objectid, furnitureZ, furnitureZ, furnitureZ );
|
|
||||||
|
|
||||||
// apply animation
|
|
||||||
if ( playerZ - furnitureZ <= 0.0 ) ApplyAnimation( playerid, "CARRY", "liftup105", 4.0, 0, 0, 0, 0, 0 );
|
|
||||||
else if ( playerZ - furnitureZ <= 0.45 ) ApplyAnimation( playerid, "CARRY", "liftup05", 4.0, 0, 0, 0, 0, 0 );
|
|
||||||
else ApplyAnimation( playerid, "CARRY", "liftup", 4.0, 0, 0, 0, 0, 0 );
|
|
||||||
|
|
||||||
// Alert
|
|
||||||
SendServerMessage( playerid, "You have stolen a "COL_GREY"%s"COL_WHITE". Store it in a Boxville to transport the item.", g_houseFurniture[ furniture_id ] [ E_NAME ] );
|
|
||||||
SetPlayerSpecialAction( playerid, SPECIAL_ACTION_CARRY );
|
|
||||||
SetPVarInt( playerid, "stolen_fid", furniture_id );
|
|
||||||
SetPlayerAttachedObject( playerid, 3, 1220, 5, 0.043999, 0.222999, 0.207000, 14.400002, 15.799994, 0.000000, 0.572999, 0.662000, 0.665000 );
|
|
||||||
}
|
}
|
||||||
else SendUsage( playerid, "/burglar [CRACKPW/STEAL]" );
|
else SendUsage( playerid, "/burglar [CRACKPW/STEAL]" );
|
||||||
return 1;
|
return 1;
|
||||||
@ -436,17 +451,8 @@ CMD:bruteforce( playerid, params[ ] )
|
|||||||
|
|
||||||
stock ResetVehicleBurglaryData( vehicleid )
|
stock ResetVehicleBurglaryData( vehicleid )
|
||||||
{
|
{
|
||||||
if ( GetVehicleModel( vehicleid ) != 498 )
|
DeleteGVar( sprintf( "vburg_%d_cash", vehicleid ) );
|
||||||
return 0;
|
DeleteGVar( sprintf( "vburg_%d_items", vehicleid ) );
|
||||||
|
|
||||||
new szString[ 18 ];
|
|
||||||
|
|
||||||
for( new i; i < MAX_BURGLARY_SLOTS; i++ ) {
|
|
||||||
format( szString, sizeof( szString ), "vburg_%d_%d", vehicleid, i ), DeleteGVar( szString );
|
|
||||||
}
|
|
||||||
|
|
||||||
format( szString, sizeof( szString ), "vburg_%d_items", vehicleid );
|
|
||||||
DeleteGVar( szString );
|
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -24,6 +24,8 @@
|
|||||||
|
|
||||||
/* ** Macros ** */
|
/* ** Macros ** */
|
||||||
#define IsPlayerHomeOwner(%0,%1) ( strmatch( g_houseData[ %1 ] [ E_OWNER ], ReturnPlayerName( %0 ) ) )
|
#define IsPlayerHomeOwner(%0,%1) ( strmatch( g_houseData[ %1 ] [ E_OWNER ], ReturnPlayerName( %0 ) ) )
|
||||||
|
#define IsValidHouse(%0) ( 0 <= %0 < MAX_HOUSES && Iter_Contains( houses, %0 ) )
|
||||||
|
#define GetPlayerEnteredHouse(%0) ( p_InHouse[ %0 ] )
|
||||||
|
|
||||||
/* ** Variables ** */
|
/* ** Variables ** */
|
||||||
enum E_HOUSE_DATA
|
enum E_HOUSE_DATA
|
||||||
|
@ -6607,24 +6607,17 @@ public OnPlayerEnterDynamicCP( playerid, checkpointid )
|
|||||||
|
|
||||||
new is_owner = strmatch( g_houseData[ i ] [ E_OWNER ], ReturnPlayerName( playerid ) );
|
new is_owner = strmatch( g_houseData[ i ] [ E_OWNER ], ReturnPlayerName( playerid ) );
|
||||||
|
|
||||||
new is_locked = ! g_houseData[ i ] [ E_CRACKED ] && !strmatch( g_houseData[ i ] [ E_PASSWORD ], "N/A" ) && ! is_owner;
|
if ( ! g_houseData[ i ] [ E_CRACKED ] && ! strmatch( g_houseData[ i ] [ E_PASSWORD ], "N/A" ) && ! is_owner )
|
||||||
|
|
||||||
if ( ! CallLocalFunction( "OnPlayerTryEnterHouse", "ddd", playerid, i, is_locked ) )
|
|
||||||
{
|
{
|
||||||
|
if ( IsPlayerJob( playerid, JOB_BURGLAR ) || GetPlayerClass( playerid ) == CLASS_POLICE ) {
|
||||||
|
CallLocalFunction( "OnPlayerAttemptBurglary", "ddd", playerid, houseid, -1 ); // attempting a break in as a burglar/cop
|
||||||
|
}
|
||||||
|
|
||||||
p_PasswordedHouse[ playerid ] = i;
|
p_PasswordedHouse[ playerid ] = i;
|
||||||
ShowPlayerDialog( playerid, DIALOG_HOUSE_PW, DIALOG_STYLE_PASSWORD, "{FFFFFF}House Authentication", ""COL_GREEN"This house is password locked!\n"COL_WHITE"You may only enter this house if you enter the correct password.", "Enter", "Cancel" );
|
ShowPlayerDialog( playerid, DIALOG_HOUSE_PW, DIALOG_STYLE_PASSWORD, "{FFFFFF}House Authentication", ""COL_GREEN"This house is password locked!\n"COL_WHITE"You may only enter this house if you enter the correct password.", "Enter", "Cancel" );
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
// alert burglar of any furniture
|
|
||||||
if ( ! is_owner && p_Job{ playerid } == JOB_BURGLAR && p_Class[ playerid ] == CLASS_CIVILIAN ) {
|
|
||||||
if ( Iter_Count( housefurniture[ i ] ) ) {
|
|
||||||
ShowPlayerHelpDialog( playerid, 4000, "This house has furniture to rob.~n~~n~Type ~g~~h~/burglar steal~w~ near the furniture you want to steal." );
|
|
||||||
} else {
|
|
||||||
ShowPlayerHelpDialog( playerid, 4000, "~r~This house has no furniture to rob." );
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
p_InHouse[ playerid ] = i;
|
p_InHouse[ playerid ] = i;
|
||||||
UpdatePlayerEntranceExitTick( playerid );
|
UpdatePlayerEntranceExitTick( playerid );
|
||||||
SetPlayerVirtualWorld( playerid, g_houseData[ i ] [ E_WORLD ] );
|
SetPlayerVirtualWorld( playerid, g_houseData[ i ] [ E_WORLD ] );
|
||||||
|
Loading…
Reference in New Issue
Block a user