PDA

Просмотр полной версии : [Вопрос] Очистка enum



Edward Morra
09.02.2017, 12:08
У меня возник такой вопрос ребят.
Если в enum много перменных, как то очистить их разом все ? Ибо каждую переменную обнулять это ж долго...

VVWVV
09.02.2017, 12:15
Есть два варианта:
1) Вариант от ziggi:


enum SomeEuum {
line1, line2
};
new SomeGlobalVar[10][SomeEnum];
new NULL_SomeEnum[SomeEnum];

main()
{
SomeGlobalVar[0] = NULL_SomeEnum;
}


2) memset (http://pro-pawn.ru/showthread.php?14919-memset-%D1%81%D0%B0%D0%BC%D0%B0%D1%8F-%D0%B1%D1%8B%D1%81%D1%82%D1%80%D0%B0%D1%8F-%D1%84%D1%83%D0%BD%D0%BA%D1%86%D0%B8%D1%8F&p=82311&viewfull=1#post82311)

Edward Morra
09.02.2017, 12:59
Есть два варианта:
1) Вариант от ziggi:


enum SomeEuum {
line1, line2
};
new SomeGlobalVar[10][SomeEnum];
new NULL_SomeEnum[SomeEnum];

main()
{
SomeGlobalVar[0] = NULL_SomeEnum;
}


2) memset (http://pro-pawn.ru/showthread.php?14919-memset-%D1%81%D0%B0%D0%BC%D0%B0%D1%8F-%D0%B1%D1%8B%D1%81%D1%82%D1%80%D0%B0%D1%8F-%D1%84%D1%83%D0%BD%D0%BA%D1%86%D0%B8%D1%8F&p=82311&viewfull=1#post82311)

1 вариант чистит полностью весь enum.
А допустим если мне нужно очистить все переменные ячейки по n'ым номером?
Допустим есть enum с хранением тачек сервера. И мне надо обнулить 188 номер все переменные...

Edward Morra
09.02.2017, 17:20
Есть два варианта:
1) Вариант от ziggi:


enum SomeEuum {
line1, line2
};
new SomeGlobalVar[10][SomeEnum];
new NULL_SomeEnum[SomeEnum];

main()
{
SomeGlobalVar[0] = NULL_SomeEnum;
}


2) memset (http://pro-pawn.ru/showthread.php?14919-memset-%D1%81%D0%B0%D0%BC%D0%B0%D1%8F-%D0%B1%D1%8B%D1%81%D1%82%D1%80%D0%B0%D1%8F-%D1%84%D1%83%D0%BD%D0%BA%D1%86%D0%B8%D1%8F&p=82311&viewfull=1#post82311)

Ругается на

memset(VehicleInfo[vehid],0,VehicleInfo);

new.pwn(99834) : error 059: function argument may not have a default value (variable "size")
new.pwn(99834) : error 059: function argument may not have a default value (variable "size")

Nexius_Tailer
09.02.2017, 18:25
Есть два варианта:
1) Вариант от ziggi:
Насколько я помню, его предлагали ещё гораздо раньше на официальном форуме


1 вариант чистит полностью весь enum.
А допустим если мне нужно очистить все переменные ячейки по n'ым номером?
Допустим есть enum с хранением тачек сервера. И мне надо обнулить 188 номер все переменные...
Так указывай ид нужной тачки в первой мере массива, т.е.:

enum vInfo
{
line1,
line2
}

new
VehicleInfo[MAX_VEHICLES][vInfo],
NULL_VehicleInfo[vInfo];

main()
{
VehicleInfo[188] = NULL_VehicleInfo; //
}
И будет идти обнуление данных для конкретного ида

vovandolg
09.02.2017, 19:17
1 вариант чистит полностью весь enum.
А допустим если мне нужно очистить все переменные ячейки по n'ым номером?
Допустим есть enum с хранением тачек сервера. И мне надо обнулить 188 номер все переменные...

Берёшь включаешь мозги, копируешь вариант от ziggy, спариваешь его с циклом и вуаля)

Long-
10.02.2017, 14:06
for(new player_information:e; e < player_information; ++e) pInfo[playerid][e] = 0;
?

vovandolg
11.02.2017, 09:41
enum vInfo
{
line1,
line2
}

new
VehicleInfo[MAX_VEHICLES][vInfo],
NULL_VehicleInfo[vInfo];

main()
{
for (new v = 1; v < MAX_VEHICLES; v++) VehicleInfo[v] = NULL_VehicleInfo;
}