Правила форума Гаранты форума
Размещение рекламы AMX-X компилятор

Здравствуйте, гость Вход | Регистрация

Наши новости:

14-дек
24-апр
10-апр
11-апр

> Информационная доска

Данный раздел предназначен для обсуждения, а также решения технических проблем связанных с серверной частью. Обсуждения касательно игровых клиентов ведутся здесь.

1. Во время создания новой темы аккуратно оформляйте её, не допускайте грамматических ошибок.
2. Описывая проблему старайтесь, как можно больше рассказать о ней, а так же о действиях с сервером после которых она возникла, по возможности подкрепите информацию логами.
3. Если вопрос касается проблемы в работе сервера, то обязательно прикрепляйте список плагинов (введите в консоли сервера: meta list и amxx plugins), настройки server.cfg, логи. Так же указывайте операционную систему, версию HLDS (введите к консоли сервера: version) и где хостится сервер.

Длинную информацию скрывайте под спойлер.

Сортировка двумерного массива

Статус пользователя mOdest
сообщение 28.7.2019, 8:29
Сообщение #1


Стаж: 7 лет 8 месяцев

Сообщений: 1255
Благодарностей: 255
Полезность: 79

всем привет. задача этой темы - выяснить, как отсортировать двумерный массив, чтобы (например) после сортировки, айди игрока сместилось вместе с его фрагами (сортировка по фрагам), а не осталось на своем месте. проблема в том, что массив не динамический, а статический. то есть, к большему сожалению, порядок массива идёт по возрастанию (проблема павн). нуждаюсь в вашей помощи, необходимо отсортировать массив, при сортировке запомнить айди игрока для вывода в худ (и/или меню). можно использовать mysql, но этот метод на десерт (не предлагайте)

код сортировки одномерного массива (для примера, может что-то даст)

Cкрытый текст
Код:
#include <amxmodx>

#define MAX_TOP 5

new Kills[MAX_PLAYERS + 1];

public plugin_init()
{
new str[128];

for(new i = 1; i <= MaxClients; i++)
Kills[i] = random_num(0, 999);

BubbleSort(Kills);

for(new i; i < MAX_TOP; i++)
format(str, sizeof str, "%s /перенос/ %d", str, Kills[i+1])

}

BubbleSort(array[], len = sizeof(array))
{
for (new i = 0; i < len - 1; i++)
{
for (new j = 0; j < len - i - 1; j++)
{
if (array[j] < array[j + 1])
{
new temp = array[j];
array[j] = array[j + 1];
array[j + 1] = temp;
}
}
}
}


Отредактировал: mOdest, - 28.7.2019, 9:58
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
Статус пользователя mOdest
сообщение 28.7.2019, 10:24
Сообщение #2


Стаж: 7 лет 8 месяцев

Сообщений: 1255
Благодарностей: 255
Полезность: 79

всё, сообразил. код в первом посте немного корявый, но если кому-то нужна сортировка - берите, на баги с выводом не обращайте внимание
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
  Ответить в данную темуНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: