Хочу упаковать координаты например такого вида:
Можно наверное вставлять их в массив и там упаковывать а потом использовать где надо, но можно еще как то лучше это сделать?Код:SetPlayerPos(playerid, 1461.6449, -1717.6471, 14.0469)
Хочу упаковать координаты например такого вида:
Можно наверное вставлять их в массив и там упаковывать а потом использовать где надо, но можно еще как то лучше это сделать?Код:SetPlayerPos(playerid, 1461.6449, -1717.6471, 14.0469)
А зачем?
Связаться со мной в VK можно через личные сообщения этой группы
Заказы не принимаю
Широко известно, что идеи стоят 0.8333 цента каждая (исходя из рыночной цены 10 центов за дюжину).
Великих идей полно, на них нет спроса.
Воплощение идеи в законченную игру требует долгой работы,
таланта, терпения и креативности, не говоря уж о затратах денег, времени и ресурсов.
Предложить идею просто, воплотить – вот в чём проблема
Steve Pavlina
PHP код:
#define MAX_COUNT_COORD (100) // максимальное кол-во ячеек с координатами
#define COUNT_PACK_COORD (3) // кол-во значений в одной ячейке (x, y, z) = 3
new coord_save[MAX_COUNT_COORD][COUNT_PACK_COORD] =
{
{ 0.0, 0.0, 5.0 },
{ 2.0, 2.0, 5.0 }
};
// ну и примеры вывода/ввода информации ячеек
// юзаем первую строку координат для спавна
SetPlayerPos(playerid, coord_save[0][0], coord_save[0][1], coord_save[0][2]);
// записываем в первую(нулевую) ячейку координаты
coord_save[0][0] = x;
coord_save[0][1] = y;
coord_save[0][2] = z;
Последний раз редактировалось vovandolg; 08.06.2017 в 10:19.
[Anticheat]___Invisible Fly Hack
[Anticheat]____Weapon/Ammo Hack
[Function]______ResetPlayerWeaponSlot
[Function]_______FIX_SetPlayerAmmo
[ServerMod]______TDM | Zombie Apokalypse
Упаковать их более лучше не получится, поскольку все вещественные числа занимают полностью 4 байта, следовательно, упаковать их можно только в массив. Однако помните, что скорость к двумерному массиву меньше, чем скорость к одномерному. Таким образом, вы можете упаковать их в один массив.
К тому же, можно сделать макросы, которые помогут вам.PHP код:
const COUNT_PACK=3;
new array[MAX_ITEMS] = {0.0, 0.0, 5.0, 2.0, 2.0, 5.0};
new index;
SetPlayerPos(playerid, array[index], array[index+1], array[index+2]);
// Для перехода к другому элементу.
index += COUNT_PACK;
array[index] = x;
array[index+1] = y;
array[index+2] = z;
PHP код:
#define GetPackedArrayX(%1,%2) (%1[(%2)])
#define GetPackedArrayY(%1,%2) (%1[(%2)+1])
#define GetPackedArrayZ(%1,%2) (%1[(%2)+2])
#define SetPackedArrayX(%1,%2,%3) (%1[(%2)] = (%3))
#define SetPackedArrayY(%1,%2,%3) (%1[(%2)+1] = (%3))
#define SetPackedArrayZ(%1,%2,%3) (%1[(%2)+2] = (%3))
#define GetNextPackedItem(%1) ((%1) + COUNT_PACK)
LowRider (09.06.2017)
Сейчас бы убивать читаемость и усложнять код ради сохранения десятка байт -_-
Связаться со мной в VK можно через личные сообщения этой группы
Заказы не принимаю
Широко известно, что идеи стоят 0.8333 цента каждая (исходя из рыночной цены 10 центов за дюжину).
Великих идей полно, на них нет спроса.
Воплощение идеи в законченную игру требует долгой работы,
таланта, терпения и креативности, не говоря уж о затратах денег, времени и ресурсов.
Предложить идею просто, воплотить – вот в чём проблема
Steve Pavlina
LowRider (09.06.2017)
[Anticheat]___Invisible Fly Hack
[Anticheat]____Weapon/Ammo Hack
[Function]______ResetPlayerWeaponSlot
[Function]_______FIX_SetPlayerAmmo
[ServerMod]______TDM | Zombie Apokalypse
Тогда ещё для понятности писать так =)
PHP код:
new array[MAX_ITEMS] =
{
0.0, 0.0, 5.0,
2.0, 2.0, 5.0
};
[Anticheat]___Invisible Fly Hack
[Anticheat]____Weapon/Ammo Hack
[Function]______ResetPlayerWeaponSlot
[Function]_______FIX_SetPlayerAmmo
[ServerMod]______TDM | Zombie Apokalypse
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)