Можеш всичко да подадеш като масив към функция, стига да запазиш организацията на данните, за да може функцията да ги обработи. Най-лесно ще ти е да си създадеш някакъв "псевдо" enum. Също така, дори и да не го направиш, а решиш да си го използваш както в момента, проблемът идва от параметрите във функцията.
Код за потвърждение: Избери целия код
enum _:TaskData {
iAimGrav,
iAimVec[3]
};
public cmdTask(id) {
/*! Some Example Code Above */
new iArray[TaskData];
iArray[iAimGrav] = grav;
iArray[iAimVec][0] = aimvec[0];
iArray[iAimVec][1] = aimvec[1];
iArray[iAimVec][2] = aimvec[2];
set_task(1.0, "fwTask", 34753, iArray, sizeof(iArray));
}
public fwTask(iArray[TaskData], iTaskId) {
// do your stuff
}
Не съм сигурен дали слагането на бонус скоби за многомерен масив би проработило. Горният пример, според мен, е най-оптималният вариант след Array модула.