edit area & validation checks
This commit is contained in:
parent
a92ce1182c
commit
2ef9f24062
@ -6,21 +6,21 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
/*
|
||||||
https://github.com/RIDE-2DAY/GZ_Shapes/blob/master/GZ_ShapesALS.inc
|
[ ] https://github.com/RIDE-2DAY/GZ_Shapes/blob/master/GZ_ShapesALS.inc
|
||||||
1. Player creates lobby
|
[ ] Player creates lobby
|
||||||
- Lobby can be CAC only
|
[X] Lobby can be CAC only
|
||||||
- Player can select area
|
[X] Player can select area
|
||||||
- Player can select speed in which the circle shrinks
|
[ ] Player can select speed in which the circle shrinks
|
||||||
- Player can select between running weapons, walking weapons or both (as drops)
|
[X] Player can select between running weapons, walking weapons or both (as drops)
|
||||||
- Player can make an entry fee, this entry fee gets added to a prize pool
|
[X] Player can make an entry fee, this entry fee gets added to a prize pool
|
||||||
|
|
||||||
2. Players join the lobby, you teleport to an island
|
[ ] Players join the lobby, you teleport to an island
|
||||||
- After the maximum slots are achieved, the game will start
|
[ ] After the maximum slots are achieved, the game will start
|
||||||
- Host can start the match forcefully
|
[ ] Host can start the match forcefully
|
||||||
3. Plane in the middle, you have a parachute, jump out
|
|
||||||
4. Stay within red zone, if you leave it you get killed
|
|
||||||
5. Last man standing wins ...
|
|
||||||
|
|
||||||
|
[ ] Plane in the middle, you have a parachute, jump out
|
||||||
|
[ ] Stay within red zone, if you leave it you get killed
|
||||||
|
[ ] Last man standing wins ...
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/* ** Includes ** */
|
/* ** Includes ** */
|
||||||
@ -36,6 +36,7 @@ https://github.com/RIDE-2DAY/GZ_Shapes/blob/master/GZ_ShapesALS.inc
|
|||||||
#define DIALOG_BR_LOBBY ( 6373 )
|
#define DIALOG_BR_LOBBY ( 6373 )
|
||||||
#define DIALOG_BR_LOBBY_EDIT ( 6374 )
|
#define DIALOG_BR_LOBBY_EDIT ( 6374 )
|
||||||
#define DIALOG_BR_LOBBY_EDIT_ENTRY ( 6375 )
|
#define DIALOG_BR_LOBBY_EDIT_ENTRY ( 6375 )
|
||||||
|
#define DIALOG_BR_SELECT_AREA ( 6376 )
|
||||||
|
|
||||||
/* ** Constants ** */
|
/* ** Constants ** */
|
||||||
static const
|
static const
|
||||||
@ -62,7 +63,7 @@ enum E_BR_LOBBY_DATA
|
|||||||
{
|
{
|
||||||
E_NAME[ 24 ], E_HOST, E_PASSWORD[ 5 ],
|
E_NAME[ 24 ], E_HOST, E_PASSWORD[ 5 ],
|
||||||
E_LIMIT, E_AREA_ID, E_BR_LOBBY_STATUS: E_STATUS,
|
E_LIMIT, E_AREA_ID, E_BR_LOBBY_STATUS: E_STATUS,
|
||||||
E_ENTRY_FEE,
|
E_ENTRY_FEE, E_PRIZE_POOL,
|
||||||
|
|
||||||
Float: E_ARMOUR, Float: E_HEALTH,
|
Float: E_ARMOUR, Float: E_HEALTH,
|
||||||
|
|
||||||
@ -141,7 +142,11 @@ hook OnDialogResponse( playerid, dialogid, response, listitem, inputtext[ ] )
|
|||||||
return BattleRoyale_ShowLobbies( playerid ), SendError( playerid, "You need %s to join this lobby.", cash_format( br_lobbyData[ l ] [ E_ENTRY_FEE ] ) );
|
return BattleRoyale_ShowLobbies( playerid ), SendError( playerid, "You need %s to join this lobby.", cash_format( br_lobbyData[ l ] [ E_ENTRY_FEE ] ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// add entry fee to the pool
|
||||||
GivePlayerCash( playerid, -br_lobbyData[ l ] [ E_ENTRY_FEE ] );
|
GivePlayerCash( playerid, -br_lobbyData[ l ] [ E_ENTRY_FEE ] );
|
||||||
|
br_lobbyData[ l ] [ E_PRIZE_POOL ] += br_lobbyData[ l ] [ E_ENTRY_FEE ];
|
||||||
|
|
||||||
|
// join the player to the lobby
|
||||||
return BattleRoyale_JoinLobby( playerid, l ), 1;
|
return BattleRoyale_JoinLobby( playerid, l ), 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -167,9 +172,13 @@ hook OnDialogResponse( playerid, dialogid, response, listitem, inputtext[ ] )
|
|||||||
{
|
{
|
||||||
new lobbyid = p_battleRoyaleLobby[ playerid ];
|
new lobbyid = p_battleRoyaleLobby[ playerid ];
|
||||||
|
|
||||||
|
if ( ! BR_IsHost( playerid, lobbyid ) ) {
|
||||||
|
return SendError( playerid, "You cannot edit this lobby as you are no longer the host." );
|
||||||
|
}
|
||||||
|
|
||||||
if ( listitem == 3 ) // select an area
|
if ( listitem == 3 ) // select an area
|
||||||
{
|
{
|
||||||
// TODO: select an area
|
return BattleRoyale_EditArea( playerid );
|
||||||
}
|
}
|
||||||
else if ( listitem == 7 ) // select walking weapon mode
|
else if ( listitem == 7 ) // select walking weapon mode
|
||||||
{
|
{
|
||||||
@ -193,6 +202,23 @@ hook OnDialogResponse( playerid, dialogid, response, listitem, inputtext[ ] )
|
|||||||
return ShowPlayerDialog( playerid, DIALOG_BR_LOBBY_EDIT_ENTRY, DIALOG_STYLE_INPUT, ""COL_WHITE"Battle Royale", "Please enter a value for this field:", "Submit", "Back" );
|
return ShowPlayerDialog( playerid, DIALOG_BR_LOBBY_EDIT_ENTRY, DIALOG_STYLE_INPUT, ""COL_WHITE"Battle Royale", "Please enter a value for this field:", "Submit", "Back" );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
else if ( dialogid == DIALOG_BR_SELECT_AREA )
|
||||||
|
{
|
||||||
|
if ( ! response ) {
|
||||||
|
return BattleRoyale_EditLobby( playerid, p_battleRoyaleLobby[ playerid ] );
|
||||||
|
}
|
||||||
|
|
||||||
|
new
|
||||||
|
lobbyid = p_battleRoyaleLobby[ playerid ];
|
||||||
|
|
||||||
|
if ( ! BR_IsHost( playerid, lobbyid ) ) {
|
||||||
|
return SendError( playerid, "You cannot edit this lobby as you are no longer the host." );
|
||||||
|
}
|
||||||
|
|
||||||
|
br_lobbyData[ lobbyid ] [ E_AREA_ID ] = listitem;
|
||||||
|
SendServerMessage( playerid, "You have set the area to %s.", br_areaData[ listitem ] [ E_NAME ] );
|
||||||
|
return BattleRoyale_EditLobby( playerid, lobbyid );
|
||||||
|
}
|
||||||
else if ( dialogid == DIALOG_BR_LOBBY_EDIT_ENTRY )
|
else if ( dialogid == DIALOG_BR_LOBBY_EDIT_ENTRY )
|
||||||
{
|
{
|
||||||
if ( ! response ) {
|
if ( ! response ) {
|
||||||
@ -201,6 +227,10 @@ hook OnDialogResponse( playerid, dialogid, response, listitem, inputtext[ ] )
|
|||||||
|
|
||||||
new lobbyid = p_battleRoyaleLobby[ playerid ];
|
new lobbyid = p_battleRoyaleLobby[ playerid ];
|
||||||
|
|
||||||
|
if ( ! BR_IsHost( playerid, lobbyid ) ) {
|
||||||
|
return SendError( playerid, "You cannot edit this lobby as you are no longer the host." );
|
||||||
|
}
|
||||||
|
|
||||||
new editing_field = GetPVarInt( playerid, "editing_field" );
|
new editing_field = GetPVarInt( playerid, "editing_field" );
|
||||||
|
|
||||||
switch ( editing_field )
|
switch ( editing_field )
|
||||||
@ -374,6 +404,19 @@ static stock BattleRoyale_EditLobby( playerid, lobbyid )
|
|||||||
return ShowPlayerDialog( playerid, DIALOG_BR_LOBBY_EDIT, DIALOG_STYLE_TABLIST_HEADERS, ""COL_WHITE"Battle Royale", szLargeString, "Select", "Close" );
|
return ShowPlayerDialog( playerid, DIALOG_BR_LOBBY_EDIT, DIALOG_STYLE_TABLIST_HEADERS, ""COL_WHITE"Battle Royale", szLargeString, "Select", "Close" );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static stock BattleRoyale_EditArea( playerid )
|
||||||
|
{
|
||||||
|
static
|
||||||
|
areas[ 512 ];
|
||||||
|
|
||||||
|
if ( areas[ 0 ] == '\0' ) {
|
||||||
|
for ( new i = 0; i < sizeof( br_areaData ); i ++ ) {
|
||||||
|
format( areas, sizeof( areas ), "%s%s\n", areas, br_areaData[ i ] [ E_NAME ] );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return ShowPlayerDialog( playerid, DIALOG_BR_SELECT_AREA, DIALOG_STYLE_LIST, ""COL_WHITE"Battle Royale", areas, "Select", "Close" );
|
||||||
|
}
|
||||||
|
|
||||||
static stock BattleRoyale_JoinLobby( playerid, lobbyid )
|
static stock BattleRoyale_JoinLobby( playerid, lobbyid )
|
||||||
{
|
{
|
||||||
// TODO:
|
// TODO:
|
||||||
@ -439,4 +482,8 @@ static stock BattleRoyale_DestroyLobby( lobbyid )
|
|||||||
|
|
||||||
static stock BR_IsValidLobby( lobbyid ) {
|
static stock BR_IsValidLobby( lobbyid ) {
|
||||||
return 0 <= lobbyid < BR_MAX_LOBBIES && Iter_Contains( battleroyale, lobbyid );
|
return 0 <= lobbyid < BR_MAX_LOBBIES && Iter_Contains( battleroyale, lobbyid );
|
||||||
|
}
|
||||||
|
|
||||||
|
static stock BR_IsHost( playerid, lobbyid ) {
|
||||||
|
return BR_IsValidLobby( lobbyid ) && br_lobbyData[ lobbyid ] [ E_HOST ] == playerid;
|
||||||
}
|
}
|
Loading…
Reference in New Issue
Block a user