Здравствуйте!
Подскажите, пожалуйста, почему после сортировки в массиве на всех картах одинаковое значение?
Логи до сортировки:
Логи после сортировки:
Вот исходник:
Подскажите, пожалуйста, почему после сортировки в массиве на всех картах одинаковое значение?
Логи до сортировки:
Код:
cs_assault - 5
de_dust2_2x2 - 10
de_nuke - 5
de_train - 3
de_dust2 - 7
Код:
1. de_dust2_2x2 - 7
2. de_dust2 - 7
3. cs_assault - 7
4. de_nuke - 7
5. de_train - 7
Код:
#include mylibr
enum _:STRUCT {
MAP[ 32 ],
COUNT
}
new const MAPS[ ][ STRUCT ] = {
{ "cs_assault", 5 },
{ "de_dust2_2x2", 10 },
{ "de_nuke", 5 },
{ "de_train", 3 },
{ "de_dust2", 7 },
};
new Array:g_aMaps;
new g_eMapsData[ STRUCT ];
public plugin_init( ) {
g_aMaps = ArrayCreate( STRUCT );
for( new i; i < sizeof( MAPS ); i++ ) {
copy(g_eMapsData[MAP], charsmax(g_eMapsData[MAP]), MAPS[i][MAP]);
g_eMapsData[COUNT] = MAPS[i][COUNT];
set_log("", _, "test_maps", false, "%s - %d", g_eMapsData[MAP], g_eMapsData[COUNT]);
ArrayPushArray(g_aMaps, g_eMapsData);
}
ArraySort(g_aMaps, "callback_arraysort" );
new iSize = ArraySize(g_aMaps);
for(new i; i < iSize; i++) {
ArrayGetArray(g_aMaps, i, g_eMapsData, cm(g_eMapsData));
set_log("", _, "test_sortings", false, "%d. %s - %d", i + 1, g_eMapsData[MAP], g_eMapsData[COUNT]);
}
}
public callback_arraysort( Array:array, elem1, elem2 )
{
new data1[ STRUCT ];
ArrayGetArray( array, elem1, data1 );
new data2[ STRUCT ];
ArrayGetArray( array, elem2, data2 );
if( data1[ COUNT ] > data2[ COUNT ] ) {
return -1;
} else if( data1[ COUNT ] < data2[ COUNT ] ) {
return 1;
} else {
return 0;
}
}