07.03.2017, 10:47
Quote:
|
Появилась нужда создать функцию с "универсальным" аргументом.
То бишь, чтоб в неё можно было указать как строку, так и число: PHP Code:
Думал парсер написать, но беда в том, что строку можно передать не только как строку, но и как массив (количество мер в массиве известно заранее и оно всегда одинаковое). Хотя, возможно, это не лыжи не едут, а я... В общем, есть у кого какие идеи для реализации подобного? UPD: Нужно это для того, чтоб создать функцию для обработки массива с данными игрока. То бишь, каждого пункта из перечисления: PHP Code:
Можно, конечно, для каждой конкретной переменной (или конкретного "типа данных") написать свою функцию, но это уже на крайний случай. |
Единственным выходом вижу написание индивидуальных функций для каждого члена перечисления для изменения/получения текущего значения.
Вот наработки без парсера (его нормально сделать не получилось), если вдруг кому интересно:
PHP Code:
enum e_PLAYER_INFO
{
pID,
pName[MAX_PLAYER_NAME],
...
};
new pInfo[MAX_PLAYERS][e_PLAYER_INFO];
stock GetPlayerInfo(playerid, e_PLAYER_INFO:key, &{_, Float}:value)
{
value = pInfo[playerid][key];
return 1;
}
stock SetPlayerInfo(playerid, e_PLAYER_INFO:key, {_, Float}:value)
{
pInfo[playerid][key] = value;
return 1;
}
stock SetPlayerInfoString(playerid, e_PLAYER_INFO:key, string[], size)
{
format(pInfo[playerid][key], size, string);
return 1;
}
stock GetPlayerInfoString(playerid, e_PLAYER_INFO:key, buff[], size = sizeof(buff))
{
buff[0] = '\0';
strcat(buff, pInfo[playerid][key], size);
return 1;
}


