Больше трехмерного на сколько я знаю не существует.
Двумерный массив не сильно отличается от простого.
В каждой ячейки простого массива 1 место для записи числа, символа.
Так Двумерный массив дает в 1 ячейке больше места, то есть больше одного это уже зависит от того сколько вы укажите.
Покажу на картинке так как думаю меня не все поняли.
Я создал двумерный массив с тремя ячейками в трех.
Как видите массив преобразовался в каждую ячейку добавились еще три.
Вот как это выглядит в коде.
new iMassive[3][3] =
{
{1, 2, 3}, //iMassive[0]
{4, 5, 6}, //iMassive[1]
{7, 8, 9} //iMassive[2]
};
Расскажу про трехмерный массив.
Он повторяет такие же действия что и двумерный.
То есть в двумерном мы ставили в каждую ячейку еще три, а в трехмерном будет
2 ячейки в каждой по 2 и еще в которых по 2 еще 2.
Рассмотрим на картинке, у кого хорошо развито логическое мышление поймет,
хотя мне и то было сложновато.
Видим трехмерный массив.
В 2 ячейки добавили еще 2 и в 2 добавленные еще по 2.
Вот как это выглядит в коде.
new iMasive[2][2][2] =
{
{
{
1,
2
},
{
3,
4
}
},
{
{
5,
6
},
{
7,
8
}
}
};
//или
new Massive[2][2][2] =
{
{{1, 2}, {3, 4}},
{{5, 6}, {7, 8}}
};
На этом теория законченна, перейдем к примерам:
Двумерный массив:
/* Plugin generated by AMXX-Studio */
#include <amxmodx>
#include <amxmisc>
#define PLUGIN "New Plug-In"
#define VERSION "0.1"
#define AUTHOR "Mon[str]"
enum _:INFO_SCORE
{
FRAGS = 0,
DEATHS //1
};
//Объявим двумерный массив с размеом 33, 2
new g_iInfo[33][INFO_SCORE];
public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR);
//Зарегистрируем евент смерти
register_event("DeathMsg", "Event_DeathMessage", "a");
//Зарегистрируем команду для показа нашей информации
register_clcmd("say /score", "score");
}
public client_connect(id)
{
//Обнуляем при коннекте
g_iInfo[id][FRAGS] = 0;
g_iInfo[id][DEATHS] = 0
}
public Event_DeathMessage()
{
new iKiller = read_data(1);
new iVictim = read_data(2);
//Плюсуем фраги убившему
g_iInfo[iKiller][FRAGS]++;
//Плюсуем смерти погибшему
g_iInfo[iVictim][DEATHS]++;
}
public client_disconnect(id)
{
//Обнуляем при дисконнекте
g_iInfo[id][FRAGS] = 0;
g_iInfo[id][DEATHS] = 0
}
public score(id)
{
//Выводим
client_print(id, print_chat, "Your Frags: %d, Your Deaths: %d", g_iInfo[id][FRAGS], g_iInfo[id][DEATHS])
//Блокируем команду в чат
return 1;
}
Этот код будет считать ваши смерти и убийства и выводить при желании.
Грубо говоря для каждого игрока по 2 ячейки это убийства и смерти.
Трехмерный:
/* Plugin generated by AMXX-Studio */
#include <amxmodx>
#include <amxmisc>
#define PLUGIN "New Plug-In"
#define VERSION "0.1"
#define AUTHOR "Mon[str]"
#define IS_HEDSHORT 0
#define IS_SUICIDE 0
#define NORM 1
enum _:SCORE
{
FRAGS = 0,
DEATHS //1
};
//Объявим трехмерный массив с размеом 33, 2, 2
new g_iInfo[33][SCORE][2];
public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR);
//Зарегистрируем евент смерти
register_event("DeathMsg", "Event_DeathMessage", "a");
//Зарегистрируем команду для показа нашей информации
register_clcmd("say /score", "score");
}
public client_connect(id)
{
//Обнуляем при коннекте
g_iInfo[id][FRAGS][IS_HEDSHORT] = 0;
g_iInfo[id][FRAGS][NORM] = 0;
g_iInfo[id][DEATHS][IS_SUICIDE] = 0;
g_iInfo[id][DEATHS][NORM] = 0;
}
public Event_DeathMessage()
{
new iKiller = read_data(1);
new iVictim = read_data(2);
new is_headshort = read_data(3);
if(is_headshort)
g_iInfo[iKiller][FRAGS][IS_HEDSHORT]++;
else
g_iInfo[iKiller][FRAGS][NORM]++;
if(iVictim == iKiller)
g_iInfo[iVictim][DEATHS][IS_SUICIDE]++;
else
g_iInfo[iVictim][DEATHS][NORM]++
}
public client_disconnect(id)
{
//Обнуляем при дисконнекте
g_iInfo[id][FRAGS][IS_HEDSHORT] = 0;
g_iInfo[id][FRAGS][NORM] = 0;
g_iInfo[id][DEATHS][IS_SUICIDE] = 0;
g_iInfo[id][DEATHS][NORM] = 0;
}
public score(id)
{
//Выводим
client_print(id, print_chat, "Your Frags: %d, HeadShort: %d; Your Deaths: %d, Suicide: %d", g_iInfo[id][FRAGS][NORM], g_iInfo[id][FRAGS][IS_HEDSHORT], g_iInfo[id][DEATHS][NORM], g_iInfo[id][DEATHS][IS_SUICIDE])
//Блокируем команду в чат
return 1;
}
Этот код похож на предыдущий, но в него добавились еще одни цифры, это сколько раз вы убили в голову и сколько раз вы совершили самоубийство.