28.10.2014, 10:19
Quote:
Как мы знаем, строки функциями лучше не возвращать. Поэтому есть 3 выхода к одной задаче. Какой лучше?
1) Создаём общую глобальную переменную, для всех игроков одну. При вызове функции в неё запишется текст. А из того места, где мы вызывали эту функцию, мы используем эту глобальную переменную, соответственно после вызова функции. Минус: Возможно, что в ту долю секунды, между завершением функции и взятием данных из переменной, возможен вызов этой функции другим игроком, и переменная изменится и даст неверное значение. 2) Делаем на PVar'ах типа string. То же самое, но вместо глобальной переменной PVar, но уже каждому игроку. Здесь никто не перекроет значение. 3) Вместо написания функции в отдельном месте, перенесём её внутренности прямо в то место, откуда бы мы её вызывали. Минус: нужно будет размножать один и тот же код во многих местах. |
pawn Код:
RetStr(string[], size = sizeof(string))
{
if(strlen(string) == 0) return 0;
strins(string, "Не ", 0, size);
return 1;
}
public OnFilterScriptInit()
{
new string[64] = "выдумывай ху*ню!";
print(string);
RetStr(string);
print(string);
return 1;
}