Доступ к архиву

Переход в группу "Пользователь"

300.00 ₽
Одноразовый платёж
Быстрый переход в группу "Пользователи", без надобности написания постов и ожидания.

Покупка дает возможность:
Быть полноправным участником форума
Нормальное копирование кода
Создавать темы
Скачивать файлы
Доступ к архиву Pawno-Info

Как правильно рассчитывать размер массива

Статус
В этой теме нельзя размещать новые ответы.

Danny_Marcelo

Компетентный
Доброго времени суток уважаемые пользователи Pawno Info.Я тут по немногу учусь pawn-скриптингу и многое уже начинаю понимать.Но пока ещё не научился понимать как подсчитывать размер в переменной.Хочу оптимизировать мод.Читал в разных темах,что нельзя использовать допустим string[256] (пример) или же MAX_PLAYERS.Но как самому посчитать размер для переменной? Допустим вот я для примера возьму команду /weap из мода Scorpion Rp.

Итак вот команда:

PHP:
if(strcmp(cmd, "/weap", true) == 0)
	{
		new g;
		tmp = strtok(cmdtext, idx);
		if(!strlen(tmp) && PlayerInfo[playerid][pAdmin] >= 1) return SCM(playerid, COLOR_GRAD2, "Используй /weap [id игрока]");
		g = ReturnUser(tmp);
		if (PlayerInfo[playerid][pAdmin] >= 1)
		{
			if(IsPlayerConnected(g))
			{
				if(g != INVALID_PLAYER_ID)
				{
					new weapons[14],ammos[14];
					new bigstring[512];
					GetPlayerWeaponData(g, 0, weapons[0], ammos[0]);
					GetPlayerWeaponData(g, 1, weapons[1], ammos[1]);
					GetPlayerWeaponData(g, 2, weapons[2], ammos[2]);
					GetPlayerWeaponData(g, 3, weapons[3], ammos[3]);
					GetPlayerWeaponData(g, 4, weapons[4], ammos[4]);
					GetPlayerWeaponData(g, 5, weapons[5], ammos[5]);
					GetPlayerWeaponData(g, 6, weapons[6], ammos[6]);
					GetPlayerWeaponData(g, 7, weapons[7], ammos[7]);
					GetPlayerWeaponData(g, 8, weapons[8], ammos[8]);
					GetPlayerWeaponData(g, 9, weapons[9], ammos[9]);
					GetPlayerWeaponData(g, 10, weapons[10], ammos[10]);
					GetPlayerWeaponData(g, 11, weapons[11], ammos[11]);
					GetPlayerWeaponData(g, 12, weapons[12], ammos[12]);
					new temp[64];
					format(bigstring,sizeof(bigstring),"{FFFFFF}Слот 0: \tWeaponid: %d\tAmmo: %d\n",weapons[0],ammos[0]);
					format(temp, sizeof(temp), "Слот 1: \tWeaponid: %d\tAmmo: %d\n",weapons[1],ammos[1]);
					strcat(bigstring, temp, sizeof(bigstring));
					format(temp, sizeof(temp), "Слот 2: \tWeaponid: %d\tAmmo: %d\n",weapons[2],ammos[2]);
					strcat(bigstring, temp, sizeof(bigstring));
					format(temp, sizeof(temp), "Слот 3: \tWeaponid: %d\tAmmo: %d\n",weapons[3],ammos[3]);
					strcat(bigstring, temp, sizeof(bigstring));
					format(temp, sizeof(temp), "Слот 4: \tWeaponid: %d\tAmmo: %d\n",weapons[4],ammos[4]);
					strcat(bigstring, temp, sizeof(bigstring));
					format(temp, sizeof(temp), "Слот 5: \tWeaponid: %d\tAmmo: %d\n",weapons[5],ammos[5]);
					strcat(bigstring, temp, sizeof(bigstring));
					format(temp, sizeof(temp), "Слот 6: \tWeaponid: %d\tAmmo: %d\n",weapons[6],ammos[6]);
					strcat(bigstring, temp, sizeof(bigstring));
					format(temp, sizeof(temp), "Слот 7: \tWeaponid: %d\tAmmo: %d\n",weapons[7],ammos[7]);
					strcat(bigstring, temp, sizeof(bigstring));
					format(temp, sizeof(temp), "Слот 8: \tWeaponid: %d\tAmmo: %d\n",weapons[8],ammos[8]);
					strcat(bigstring, temp, sizeof(bigstring));
					format(temp, sizeof(temp), "Слот 9: \tWeaponid: %d\tAmmo: %d\n",weapons[9],ammos[9]);
					strcat(bigstring, temp, sizeof(bigstring));
					format(temp, sizeof(temp), "Слот 10: \tWeaponid: %d\tAmmo: %d\n",weapons[10],ammos[10]);
					strcat(bigstring, temp, sizeof(bigstring));
					format(temp, sizeof(temp), "Слот 11: \tWeaponid: %d\tAmmo: %d\n",weapons[11],ammos[11]);
					strcat(bigstring, temp, sizeof(bigstring));
					format(temp, sizeof(temp), "Слот 12: \tWeaponid: %d\tAmmo: %d\n",weapons[12],ammos[12]);
					strcat(bigstring, temp, sizeof(bigstring));
					format(temp, sizeof(temp), "\n\n{9ACD32}Слот 2: \t%d\n",GunAC[g][2]);
					strcat(bigstring, temp, sizeof(bigstring));
					format(temp, sizeof(temp), "Слот 3: \t%d\n",GunAC[g][3]);
					strcat(bigstring, temp, sizeof(bigstring));
					format(temp, sizeof(temp), "Слот 4: \t%d\n",GunAC[g][4]);
					strcat(bigstring, temp, sizeof(bigstring));
					format(temp, sizeof(temp), "Слот 5: \t%d\n",GunAC[g][5]);
					strcat(bigstring, temp, sizeof(bigstring));
					format(temp, sizeof(temp), "Слот 6: \t%d\n",GunAC[g][6]);
					strcat(bigstring, temp, sizeof(bigstring));
					SPD(playerid, 1277, 0, PlayerInfo[g][pName], bigstring, "Закрыть", "");
					return true;
				}
			}
			else
			{
				SCM(playerid, COLOR_GRAD1, "Игрока с таким id нет");
			}
		}
		return true;
	}
Вот переменная в этой:

PHP:
new bigstring[512];
512 я поставил сам,до этого было

PHP:
new bigstring[1024];
Но это не дело с небес брать числа,так ведь? Вот как и где именно мне нужно рассчитывать для этой переменной я не могу понять.
Прошу объяснить мне это,только не готовое решение кидайте,а хочу объяснения максимально понятного.Ведь не могу же я всё время писать обо всём на форумы) Я считаю,что лучше самому делать.

Заранее благодарю за помощь.За любую помощь сразу даю + :)
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу