underwoker
25.07.2014, 02:30
Доброго времени суток! Делал систему кое-чего с использованием чекпоинтов стримера координаты которых хранились в таком массиве
enum partinfo
{
Float:PartPos[3]
}
new PartInfo[][partinfo] =
{
{1301.3738, -1301.1459, 18.8723},
{1301.3729, -1295.5941, 18.8703},
{1306.6167, -1301.1685, 18.8723},
{1306.6167, -1295.5470, 18.8703},
{1310.9929, -1300.9169, 18.8723},
{1310.9919, -1295.5013, 18.8703},
{1316.5524, -1300.8939, 18.8723},
{1316.5524, -1295.4950, 18.8703}
};
И мне выдавало ошибки указывая на первую строчку координат в массиве:
C:\Users\\Desktop\Ìîä\\gamemodes\.pwn(441) : warning 227: more initiallers than enum fields
C:\Users\\Desktop\Ìîä\\gamemodes\.pwn(441) : warning 213: tag mismatch
C:\Users\\Desktop\Ìîä\\gamemodes\.pwn(441) : warning 227: more initiallers than enum fields
C:\Users\\Desktop\Ìîä\\gamemodes\.pwn(441) : warning 213: tag mismatch
C:\Users\\Desktop\Ìîä\\gamemodes\.pwn(441) : error 018: initialization data exceeds declared size
Поискав в гугле, я даже не нашел варнинга 227 в списке всех ошибок и варнингов Pawn. Везде, хоть таких мест было мало, советовали сделать из
enum partinfo
{
Float:PartPos[3]
}
enum partinfo
{
Float:PartPosX,
Float:PartPosY,
Float:PartPosZ
}
Так и правда, все начинало работать. Но я не мог с этим смириться, и решил добиться чего хотел. Методом проб и ошибок вышло так
enum partinfo
{
Float:PartPos[3]
}
new PartInfo[][partinfo] =
{
{{1301.3738, -1301.1459, 18.8723},},
{{1301.3729, -1295.5941, 18.8703},},
{{1306.6167, -1301.1685, 18.8723},},
{{1306.6167, -1295.5470, 18.8703},},
{{1310.9929, -1300.9169, 18.8723},},
{{1310.9919, -1295.5013, 18.8703},},
{{1316.5524, -1300.8939, 18.8723},},
{{1316.5524, -1295.4950, 18.8703}}
};
А главное - все работало и не выдавало варнингов и ошибок.
Собсна вопрос: ПОЧЕМУ? :pardon:
enum partinfo
{
Float:PartPos[3]
}
new PartInfo[][partinfo] =
{
{1301.3738, -1301.1459, 18.8723},
{1301.3729, -1295.5941, 18.8703},
{1306.6167, -1301.1685, 18.8723},
{1306.6167, -1295.5470, 18.8703},
{1310.9929, -1300.9169, 18.8723},
{1310.9919, -1295.5013, 18.8703},
{1316.5524, -1300.8939, 18.8723},
{1316.5524, -1295.4950, 18.8703}
};
И мне выдавало ошибки указывая на первую строчку координат в массиве:
C:\Users\\Desktop\Ìîä\\gamemodes\.pwn(441) : warning 227: more initiallers than enum fields
C:\Users\\Desktop\Ìîä\\gamemodes\.pwn(441) : warning 213: tag mismatch
C:\Users\\Desktop\Ìîä\\gamemodes\.pwn(441) : warning 227: more initiallers than enum fields
C:\Users\\Desktop\Ìîä\\gamemodes\.pwn(441) : warning 213: tag mismatch
C:\Users\\Desktop\Ìîä\\gamemodes\.pwn(441) : error 018: initialization data exceeds declared size
Поискав в гугле, я даже не нашел варнинга 227 в списке всех ошибок и варнингов Pawn. Везде, хоть таких мест было мало, советовали сделать из
enum partinfo
{
Float:PartPos[3]
}
enum partinfo
{
Float:PartPosX,
Float:PartPosY,
Float:PartPosZ
}
Так и правда, все начинало работать. Но я не мог с этим смириться, и решил добиться чего хотел. Методом проб и ошибок вышло так
enum partinfo
{
Float:PartPos[3]
}
new PartInfo[][partinfo] =
{
{{1301.3738, -1301.1459, 18.8723},},
{{1301.3729, -1295.5941, 18.8703},},
{{1306.6167, -1301.1685, 18.8723},},
{{1306.6167, -1295.5470, 18.8703},},
{{1310.9929, -1300.9169, 18.8723},},
{{1310.9919, -1295.5013, 18.8703},},
{{1316.5524, -1300.8939, 18.8723},},
{{1316.5524, -1295.4950, 18.8703}}
};
А главное - все работало и не выдавало варнингов и ошибок.
Собсна вопрос: ПОЧЕМУ? :pardon: