invisible walls

This commit is contained in:
Lorenc Pekaj 2019-02-17 10:29:14 +11:00
parent 46554c9417
commit d45a8e539a

View File

@ -10,7 +10,7 @@
[ ] Make pickups work [ ] Make pickups work
[ ] Messages fix [ ] Messages fix
[ ] Prize pool deposit [ ] Prize pool deposit
[ ] Invisible walls [X] Invisible walls
[ ] Make areas [ ] Make areas
[ ] Hide player name tags / checkpoints [ ] Hide player name tags / checkpoints
*/ */
@ -89,7 +89,12 @@ enum E_BR_LOBBY_DATA
Float: E_B_MIN_Y, Float: E_B_MAX_X, Float: E_B_MAX_Y, Float: E_B_MIN_Y, Float: E_B_MAX_X, Float: E_B_MAX_Y,
E_BOMB_TICK, E_BOMB_TICK,
E_PICKUPS[ BR_MAX_PICKUPS ], E_VEHICLES[ BR_MAX_VEHICLES ], E_VEHICLES[ BR_MAX_VEHICLES ],
};
enum E_BR_PICKUP_DATA
{
E_PICKUP, E_WEAPON_ID,
}; };
enum E_BR_AREA_DATA enum E_BR_AREA_DATA
@ -100,9 +105,8 @@ enum E_BR_AREA_DATA
static const static const
// where all the area data is stored // where all the area data is stored
br_areaData [ 2 ] [ E_BR_AREA_DATA ] = br_areaData [ ] [ E_BR_AREA_DATA ] =
{ {
{ "San Fierro", -2799.0, -358.0, -1400.0, 1513.0 },
{ "Fort Carson", -394.0, 956.0, 164.0, 1254.0 } { "Fort Carson", -394.0, 956.0, 164.0, 1254.0 }
} }
; ;
@ -110,6 +114,7 @@ static const
static stock static stock
// lobby data & info // lobby data & info
br_lobbyData [ BR_MAX_LOBBIES ] [ E_BR_LOBBY_DATA ], br_lobbyData [ BR_MAX_LOBBIES ] [ E_BR_LOBBY_DATA ],
br_lobbyPickupData [ BR_MAX_LOBBIES ] [ BR_MAX_PICKUPS ] [ E_BR_PICKUP_DATA ],
br_wallBorderObjectUp [ BR_MAX_LOBBIES ] [ 4 ] [ 4 ], br_wallBorderObjectUp [ BR_MAX_LOBBIES ] [ 4 ] [ 4 ],
br_wallBorderObjectDown [ BR_MAX_LOBBIES ] [ 4 ] [ 4 ], br_wallBorderObjectDown [ BR_MAX_LOBBIES ] [ 4 ] [ 4 ],
br_wallBorderObjectLeft [ BR_MAX_LOBBIES ] [ 4 ] [ 4 ], br_wallBorderObjectLeft [ BR_MAX_LOBBIES ] [ 4 ] [ 4 ],
@ -146,6 +151,18 @@ hook OnPlayerDisconnect( playerid, reason )
return 1; return 1;
} }
hook OnPlayerPickUpDynPickup( playerid, pickupid )
{
new
lobbyid = p_battleRoyaleLobby[ playerid ];
if ( BR_IsValidLobby( lobbyid ) )
{
}
return 1;
}
#if defined AC_INCLUDED #if defined AC_INCLUDED
hook OnPlayerDeathEx( playerid, killerid, reason, Float: damage, bodypart ) hook OnPlayerDeathEx( playerid, killerid, reason, Float: damage, bodypart )
#else #else
@ -627,9 +644,10 @@ static stock BattleRoyale_RemovePlayer( playerid, bool: respawn, bool: remove_fr
// toggle checkpoints etc // toggle checkpoints etc
Streamer_ToggleAllItems( playerid, STREAMER_TYPE_CP, true ); Streamer_ToggleAllItems( playerid, STREAMER_TYPE_CP, true );
Streamer_ToggleAllItems( playerid, STREAMER_TYPE_RACE_CP, true ); //Streamer_ToggleAllItems( playerid, STREAMER_TYPE_RACE_CP, true );
Streamer_ToggleAllItems( playerid, STREAMER_TYPE_MAP_ICON, true ); Streamer_ToggleAllItems( playerid, STREAMER_TYPE_MAP_ICON, true );
Streamer_ToggleAllItems( playerid, STREAMER_TYPE_3D_TEXT_LABEL, true ); Streamer_ToggleAllItems( playerid, STREAMER_TYPE_3D_TEXT_LABEL, true );
BattleRoyale_PlayerTags( playerid, lobbyid, true );
// perform neccessary operations/checks on the lobby // perform neccessary operations/checks on the lobby
if ( remove_from_iterator ) if ( remove_from_iterator )
@ -719,15 +737,17 @@ static stock BattleRoyale_StartGame( lobbyid )
// load the player into the area // load the player into the area
foreach ( new playerid : battleroyaleplayers[ lobbyid ] ) foreach ( new playerid : battleroyaleplayers[ lobbyid ] )
{ {
// respawn player
p_battleRoyaleStatus[ playerid ] = E_STATUS_WAITING; p_battleRoyaleStatus[ playerid ] = E_STATUS_WAITING;
TogglePlayerSpectating( playerid, true ); TogglePlayerSpectating( playerid, true );
// hide default cnr things // hide default cnr things
Turf_HideAllGangZones( playerid ); Turf_HideAllGangZones( playerid );
Streamer_ToggleAllItems( playerid, STREAMER_TYPE_CP, false ); Streamer_ToggleAllItems( playerid, STREAMER_TYPE_CP, false );
Streamer_ToggleAllItems( playerid, STREAMER_TYPE_RACE_CP, false ); //Streamer_ToggleAllItems( playerid, STREAMER_TYPE_RACE_CP, false );
Streamer_ToggleAllItems( playerid, STREAMER_TYPE_MAP_ICON, false ); Streamer_ToggleAllItems( playerid, STREAMER_TYPE_MAP_ICON, false );
Streamer_ToggleAllItems( playerid, STREAMER_TYPE_3D_TEXT_LABEL, false ); Streamer_ToggleAllItems( playerid, STREAMER_TYPE_3D_TEXT_LABEL, false );
BattleRoyale_PlayerTags( playerid, lobbyid, false );
Streamer_Update( playerid ); Streamer_Update( playerid );
// show the battle royal playable zone // show the battle royal playable zone
@ -986,14 +1006,20 @@ static stock BattleRoyale_CreateBorder( lobbyid )
for ( new z = 0; z < sizeof( br_wallBorderObjectUp[ ] [ ] ); z ++ ) for ( new z = 0; z < sizeof( br_wallBorderObjectUp[ ] [ ] ); z ++ )
{ {
br_wallBorderObjectUp[ lobbyid ] [ i ] [ z ] = CreateDynamicObject( 18754, br_areaData[ areaid ] [ E_MIN_X ] + 240.0 * float( i ), br_areaData[ areaid ] [ E_MAX_Y ], 240.0 * float( z ), 0.0, -90.0, 90.0, .worldid = BR_GetWorld( lobbyid ) ); br_wallBorderObjectUp[ lobbyid ] [ i ] [ z ] = CreateDynamicObject( 18754, br_areaData[ areaid ] [ E_MIN_X ] + 240.0 * float( i ), br_areaData[ areaid ] [ E_MAX_Y ], 240.0 * float( z ), 0.0, -90.0, 90.0, .worldid = BR_GetWorld( lobbyid ) );
br_wallBorderObjectDown[ lobbyid ] [ i ] [ z ] = CreateDynamicObject( 18754, br_areaData[ areaid ] [ E_MIN_X ] + 240.0 * float( i ), br_areaData[ areaid ] [ E_MIN_Y ], 240.0 * float( z ), 0.0, -90.0, 90.0, .worldid = BR_GetWorld( lobbyid ) ); SetDynamicObjectMaterialText( br_wallBorderObjectUp[ lobbyid ] [ i ] [ z ], 0, " ", 140, "Arial", 64, 1, -32256, 0, 1 );
br_wallBorderObjectLeft[ lobbyid ] [ i ] [ z ] = CreateDynamicObject( 18754, br_areaData[ areaid ] [ E_MIN_X ], br_areaData[ areaid ] [ E_MAX_Y ] - 240.0 * float( i ), 240.0 * float( z ), 0.0, -90.0, 0.0, .worldid = BR_GetWorld( lobbyid ) ); SetDynamicObjectMaterialText( br_wallBorderObjectUp[ lobbyid ] [ i ] [ z ], 1, " ", 140, "Arial", 64, 1, -32256, 0, 1 );
br_wallBorderObjectRight[ lobbyid ] [ i ] [ z ] = CreateDynamicObject( 18754, br_areaData[ areaid ] [ E_MAX_X ], br_areaData[ areaid ] [ E_MAX_Y ] - 240.0 * float( i ), 240.0 * float( z ), 0.0, -90.0, 0.0, .worldid = BR_GetWorld( lobbyid ) );
SetDynamicObjectMaterial( br_wallBorderObjectUp[ lobbyid ] [ i ] [ z ], 0, 3925, "weemap", "chevron_red_64HVa", -65536 ); br_wallBorderObjectDown[ lobbyid ] [ i ] [ z ] = CreateDynamicObject( 18754, br_areaData[ areaid ] [ E_MIN_X ] + 240.0 * float( i ), br_areaData[ areaid ] [ E_MIN_Y ], 240.0 * float( z ), 0.0, -90.0, 90.0, .worldid = BR_GetWorld( lobbyid ) );
SetDynamicObjectMaterial( br_wallBorderObjectDown[ lobbyid ] [ i ] [ z ], 0, 3925, "weemap", "chevron_red_64HVa", -65536 ); SetDynamicObjectMaterialText( br_wallBorderObjectDown[ lobbyid ] [ i ] [ z ], 0, " ", 140, "Arial", 64, 1, -32256, 0, 1 );
SetDynamicObjectMaterial( br_wallBorderObjectLeft[ lobbyid ] [ i ] [ z ], 0, 3925, "weemap", "chevron_red_64HVa", -65536 ); SetDynamicObjectMaterialText( br_wallBorderObjectDown[ lobbyid ] [ i ] [ z ], 1, " ", 140, "Arial", 64, 1, -32256, 0, 1 );
SetDynamicObjectMaterial( br_wallBorderObjectRight[ lobbyid ] [ i ] [ z ], 0, 3925, "weemap", "chevron_red_64HVa", -65536 );
br_wallBorderObjectLeft[ lobbyid ] [ i ] [ z ] = CreateDynamicObject( 18754, br_areaData[ areaid ] [ E_MIN_X ], br_areaData[ areaid ] [ E_MAX_Y ] - 240.0 * float( i ), 240.0 * float( z ), 0.0, -90.0, 0.0, .worldid = BR_GetWorld( lobbyid ) );
SetDynamicObjectMaterialText( br_wallBorderObjectLeft[ lobbyid ] [ i ] [ z ], 0, " ", 140, "Arial", 64, 1, -32256, 0, 1 );
SetDynamicObjectMaterialText( br_wallBorderObjectLeft[ lobbyid ] [ i ] [ z ], 1, " ", 140, "Arial", 64, 1, -32256, 0, 1 );
br_wallBorderObjectRight[ lobbyid ] [ i ] [ z ] = CreateDynamicObject( 18754, br_areaData[ areaid ] [ E_MAX_X ], br_areaData[ areaid ] [ E_MAX_Y ] - 240.0 * float( i ), 240.0 * float( z ), 0.0, -90.0, 0.0, .worldid = BR_GetWorld( lobbyid ) );
SetDynamicObjectMaterialText( br_wallBorderObjectRight[ lobbyid ] [ i ] [ z ], 0, " ", 140, "Arial", 64, 1, -32256, 0, 1 );
SetDynamicObjectMaterialText( br_wallBorderObjectRight[ lobbyid ] [ i ] [ z ], 1, " ", 140, "Arial", 64, 1, -32256, 0, 1 );
} }
} }
} }
@ -1050,7 +1076,8 @@ static stock BattleRoyale_GenerateEntities( lobbyid )
MapAndreas_FindZ_For2DCoord( X, Y, Z ); MapAndreas_FindZ_For2DCoord( X, Y, Z );
br_lobbyData[ lobbyid ] [ E_PICKUPS ] [ i ] = CreateDynamicPickup( GetWeaponModel( weaponid ), 1, X, Y, Z + 1.0, .worldid = BR_GetWorld( lobbyid ) ); br_lobbyPickupData[ lobbyid ] [ i ] [ E_WEAPON_ID ] = weaponid;
br_lobbyPickupData[ lobbyid ] [ i ] [ E_PICKUP ] = CreateDynamicPickup( GetWeaponModel( weaponid ), 1, X, Y, Z + 1.0, .worldid = BR_GetWorld( lobbyid ) );
} }
// generate random cars // generate random cars
@ -1075,8 +1102,8 @@ static stock BattleRoyale_DestroyEntities( lobbyid )
for ( new i = 0; i < BR_MAX_PICKUPS; i ++ ) for ( new i = 0; i < BR_MAX_PICKUPS; i ++ )
{ {
// destroy pickup // destroy pickup
DestroyDynamicPickup( br_lobbyData[ lobbyid ] [ E_PICKUPS ] [ i ] ); DestroyDynamicPickup( br_lobbyPickupData[ lobbyid ] [ i ] [ E_PICKUP ] );
br_lobbyData[ lobbyid ] [ E_PICKUPS ] [ i ] = -1; br_lobbyPickupData[ lobbyid ] [ i ] [ E_PICKUP ] = -1;
// destroy vehicles (do it in the same loop) // destroy vehicles (do it in the same loop)
if ( i < BR_MAX_VEHICLES ) if ( i < BR_MAX_VEHICLES )
@ -1104,3 +1131,11 @@ stock BattleRoyale_SMF( lobbyid, colour, const format[ ], va_args<> )
stock IsPlayerInBattleRoyale( playerid ) { stock IsPlayerInBattleRoyale( playerid ) {
return BR_IsValidLobby( p_battleRoyaleLobby[ playerid ] ); return BR_IsValidLobby( p_battleRoyaleLobby[ playerid ] );
} }
stock BattleRoyale_PlayerTags( playerid, lobbyid, bool: toggle ) {
foreach ( new x : battleroyaleplayers[ lobbyid ] ) {
ShowPlayerNameTagForPlayer( playerid, x, toggle );
if ( toggle ) SetPlayerColorToTeam( x );
SetPlayerMarkerForPlayer( playerid, x, toggle ? GetPlayerColor( x ) : setAlpha( GetPlayerColor( x ), 0x00 ) );
}
}