Другие языки программирования и технологии

Как правильно называется штука в Pawn записываемая в таком виде: enum Array[][n] { N }. Впервые вижу такую конструкцию.

Массивы объявляются через ключевое слово new, а не enum
Юрий Бурцев
Юрий Бурцев
317
Лучший ответ
На самом деле это очень старая функция
Эдвард-Эдуардович Банокин На самом деле просто над данным модом работал другой скриптер и просто ошибся тегом, и вместо new он поставил enum. Теперь то всё стало на свои места. Не правильный тут код вообще был.
Эдвард-Эдуардович Банокин Глеб Овдеенко, enum не такой формат записи имеет.
Эдвард-Эдуардович Банокин Тег: new arr[] в Pawn - - это как char arr[] в С/С++.
Эдвард-Эдуардович Банокин Есть небольшие особенности и отличия Pawn от С/С++, например что в последних enum идёт как перечисление порядкового номера начиная с 0, когда в Pawn можно в ней хранить данные, как если бы это была struct или class в С/С++.
Эдвард-Эдуардович Банокин Тогда не понимаю эту конструкцию вообще с enum'ом, именно 128 строка, сложно её понять..)
enum - структура
new объявление переменной/массива.
Эдвард-Эдуардович Банокин да, так правильней)
enum - это структура.

Это что-то типо группы, в которую можно записывать отдельные предметы, например: костюмы на разные части тела игрока.

enum _:PLAYER_COSTUMES
{
szCostumeName_Head[32], // голова
szCostumeName_Back[32], // спина
szCostumeName_Legs[32] // ноги,
iEntity, // id entity костюма
bool:b_Hide // Надет или не надет костюм?
};

Ну это как пример, далее можно всё это дело выгрузить в динамичный массив :Array или :Trie и дальше уже с этим работать..

Также enum ведёт автоматический подсчёт:

enum
{
test1,
test2,
test3
};
В данном случае test1 = 0, test2 = 1, test3 = 2

enum
{
test1 = -2,
test2,
test3
};
В данном случае test1 = -2, test2 = -1, test3 = 0

enum (+=50)
{
test1 = 0,
test2,
test3
};
В данном случае test1 = 0, test2 = 50, test3 = 100


Также если enum как-нибудь обозвать, то можно узнать кол-во предметов в нём:
enum HelloWorld
{
test1,
test2,
test3,
test4
};
new MyNewArray[HelloWorld];
В данном случае в MyNewArray 4 ячейки, т.е. MyNewArray[HelloWorld] эквивалентно MyNewArray[4], т.к. в enum HelloWorld 4 предмета..


Также легко работать с бит суммой:
enum (<<=1)
{
BitSum1 = 1,
BitSum2,
BitSum3,
BitSum4
};

BitSum1 = 1 или же (1<<0)
BitSum2 = 2 или же (1<<1)
BitSum3 = 4 или же (1<<2)
BitSum4 = 8 или же (1<<3)


На твоём скрине, очевидно, ошибка на 128 строке. Там должно быть new, а не enum, т.к. там двумерный массив.
И*
Иван ******
924

Похожие вопросы