From 747781fb89092f3d9e4bf9a5edc8ab458fb23564 Mon Sep 17 00:00:00 2001 From: Atemo Date: Thu, 7 Feb 2019 16:26:06 +0100 Subject: [PATCH] Fixed bg_get_data script command (#3921) * In some cases the command didn't return the members ID for 'type 1' --- src/map/script.cpp | 37 +++++++++++++++++++------------------ 1 file changed, 19 insertions(+), 18 deletions(-) diff --git a/src/map/script.cpp b/src/map/script.cpp index 4111bf2eaf..53d9f2bf72 100644 --- a/src/map/script.cpp +++ b/src/map/script.cpp @@ -19637,28 +19637,29 @@ BUILDIN_FUNC(bg_updatescore) BUILDIN_FUNC(bg_get_data) { - struct battleground_data *bg; - int bg_id = script_getnum(st,2), - type = script_getnum(st,3), i; + struct battleground_data *bg = bg_team_search( script_getnum(st, 2) ); - if( (bg = bg_team_search(bg_id)) == NULL ) - { - script_pushint(st,0); + if (bg == NULL) { + script_pushint(st, 0); return SCRIPT_CMD_SUCCESS; } + int i, j, type = script_getnum(st, 3); - switch( type ) - { - case 0: script_pushint(st, bg->count); break; - case 1: - for (i = 0; bg->members[i].sd != NULL; i++) - mapreg_setreg(reference_uid(add_str("$@arenamembers"), i), bg->members[i].sd->bl.id); - mapreg_setreg(add_str("$@arenamemberscount"), i); - script_pushint(st, i); - break; - default: - ShowError("script:bg_get_data: unknown data identifier %d\n", type); - break; + switch( type ) { + case 0: + script_pushint(st, bg->count); + break; + case 1: + for (i = 0, j = 0; i < ARRAYLENGTH(bg->members); i++) { + if (bg->members[i].sd != NULL) + mapreg_setreg(reference_uid(add_str("$@arenamembers"), j++), bg->members[i].sd->bl.id); + } + mapreg_setreg(add_str("$@arenamemberscount"), j); + script_pushint(st, j); + break; + default: + ShowError("script:bg_get_data: unknown data identifier %d\n", type); + break; } return SCRIPT_CMD_SUCCESS;